Skip to content

Commit cc16041

Browse files
committed
Update README.md
1 parent 5a13a86 commit cc16041

File tree

1 file changed

+215
-37
lines changed

1 file changed

+215
-37
lines changed

README.md

Lines changed: 215 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -18,17 +18,23 @@ This dramatically speeds up local development - you can build rippled natively o
1818

1919
### Key Features
2020

21-
- Create multi-validator networks with custom configurations
22-
- Start, stop, and remove networks with simple commands
23-
- Update individual nodes to different versions
24-
- Enable/disable amendments on specific nodes
25-
- Support for both XRPL and Xahau protocols
26-
- Use locally built binaries instead of building in Docker
21+
- **Multi-Validator Networks**: Create Docker-based networks with configurable validators and peer nodes
22+
- **Local Native Networks**: Run networks as native processes without Docker for faster development
23+
- **Standalone Ledgers**: Quick single-node setup for testing and development
24+
- **Version Management**: Update individual nodes to different versions for upgrade testing
25+
- **Amendment Control**: Enable/disable amendments on specific nodes for feature testing
26+
- **Protocol Support**: Full support for both XRPL and Xahau protocols
27+
- **Database Options**: Choose between NuDB (persistent) and Memory (fast testing) databases
28+
- **Network Explorer**: Built-in web UI for monitoring your local networks (port 4000)
29+
- **IPFS Integration**: Optional IPFS server deployment with standalone ledgers
30+
- **Custom Binaries**: Use locally built binaries instead of building in Docker
31+
- **Genesis Mode**: Create genesis networks with custom amendment initialization
32+
- **Flexible Configuration**: Configure quorum, network IDs, log levels, and more
2733

2834
### Current Versions
2935

30-
- Ripple: `2.3.0`
31-
- Xahau: `2024.11.18-release+1141`
36+
- XRPL: `2.6.1`
37+
- Xahau: `2025.7.9-release+1951`
3238

3339
## Prerequisites
3440

@@ -54,80 +60,252 @@ export PATH="/usr/local/bin:$PATH"
5460

5561
## Usage
5662

57-
The CLI provides several commands to manage XRPLD networks and standalone ledgers:
63+
The CLI provides several commands to manage XRPLD networks and standalone ledgers.
5864

5965
### Available Protocols
6066

61-
- xrpl
62-
- xahau
67+
- `xrpl` - XRP Ledger protocol
68+
- `xahau` - Xahau ledger protocol
6369

64-
### Create a new Network
70+
## Commands
6571

66-
To create a network or standalone ledger, use the `create:network` command followed by the name of the network or standalone ledger.
72+
### Network Management Commands
73+
74+
#### Create a Multi-Validator Network
75+
76+
Create a Docker-based multi-validator network with custom configuration:
6777

6878
```bash
69-
xrpld-netgen create:network --protocol [PROTOCOL] --build_version [BUILD_VERSION] --validators [NUM_VALIDATORS]
79+
xrpld-netgen create:network [OPTIONS]
7080
```
7181

72-
### Start a Network or Standalone Ledger
82+
**Options:**
83+
- `--protocol` - Protocol to use: "xrpl" or "xahau" (default: "xahau")
84+
- `--num_validators` - Number of validator nodes (default: 3)
85+
- `--num_peers` - Number of peer nodes (default: 1)
86+
- `--build_version` - Specific version to deploy (optional)
87+
- `--network_id` - Network identifier (default: 21339 for xahau, 21337 for xrpl)
88+
- `--log_level` - Log level: "warning", "debug", "trace" (default: "trace")
89+
- `--genesis` - Enable genesis mode (default: false)
90+
- `--quorum` - Consensus quorum requirement (default: num_validators - 1)
91+
- `--nodedb_type` - Database type: "Memory" or "NuDB" (default: "NuDB")
92+
- `--local` - Create local network without Docker (runs natively)
93+
- `--binary_name` - Custom xrpld binary name (default: "xrpld")
94+
- `--build_server` - Build server URL (auto-detected by protocol)
95+
96+
**Examples:**
97+
```bash
98+
# Create a 5-validator XRPL network
99+
xrpld-netgen create:network --protocol xrpl --num_validators 5 --num_peers 2
73100

74-
To start a network or standalone ledger, use the `up` command followed by the name of the network or standalone ledger.
101+
# Create a Xahau network with specific version
102+
xrpld-netgen create:network --protocol xahau --build_version 2025.7.9-release+1951
103+
104+
# Create a local network (no Docker, native processes)
105+
xrpld-netgen create:network --protocol xahau --local
106+
107+
# Create with Memory database for faster testing
108+
xrpld-netgen create:network --nodedb_type Memory
109+
```
110+
111+
#### Start a Network
112+
113+
Start a previously created network:
75114

76115
```bash
77-
xrpld-netgen up --name [PROTOCOL] + [BUILD_VERSION]
116+
xrpld-netgen up --name [NETWORK_NAME]
78117
```
79118

80-
### Stop a Network or Standalone Ledger
119+
**Example:**
120+
```bash
121+
xrpld-netgen up --name xahau-2025.7.9-release+1951
122+
```
123+
124+
#### Stop a Network
81125

82-
To stop a running network or standalone ledger, use the `down` command followed by the name of the network or standalone ledger.
126+
Stop a running network:
83127

84128
```bash
85-
xrpld-netgen down --name [PROTOCOL] + [BUILD_VERSION]
129+
xrpld-netgen down --name [NETWORK_NAME]
86130
```
87131

88-
### Remove a Network or Standalone Ledger
132+
#### Remove a Network
89133

90-
To remove an existing network or standalone ledger, use the `remove` command followed by the name of the network or standalone ledger.
134+
Completely remove a network and all its data:
91135

92136
```bash
93-
xrpld-netgen remove --name [PROTOCOL] + [BUILD_VERSION]
137+
xrpld-netgen remove --name [NETWORK_NAME]
94138
```
95139

96-
### Update a Node in the Network
140+
#### Update a Node
141+
142+
Update a specific node to a different version:
143+
144+
```bash
145+
xrpld-netgen update:node --name [NETWORK_NAME] --node_id [NODE_ID] --node_type [NODE_TYPE] --build_version [VERSION]
146+
```
97147

98-
To update a node in the network, use the `update:version` command followed by the node ID and the new version.
148+
**Options:**
149+
- `--name` - Network name (required)
150+
- `--node_id` - Node identifier, e.g., "vnode1", "pnode1" (required)
151+
- `--node_type` - "validator" or "peer" (required)
152+
- `--build_version` - New version to update to (optional)
153+
- `--build_server` - Build server URL (optional)
99154

155+
**Example:**
100156
```bash
101-
xrpld-netgen update:version --node_id [NODE_ID] --node_type [NODE_TYPE] --version [NEW_VERSION]
157+
xrpld-netgen update:node --name xahau-2025.7.9 --node_id vnode1 --node_type validator --build_version 2025.7.10
102158
```
103159

104-
### Enable an Amendment on a Node
160+
#### Enable Amendment
105161

106-
To enable an amendment on a node, use the `enable:amendment` command followed by the amendment name and node ID.
162+
Enable a specific amendment on a node:
107163

108164
```bash
109-
xrpld-netgen enable:amendment --amendment_name [AMENDMENT_NAME] --node_id [NODE_ID] --node_type [NODE_TYPE]
165+
xrpld-netgen enable:amendment --name [NETWORK_NAME] --amendment_name [AMENDMENT] --node_id [NODE_ID] --node_type [NODE_TYPE]
110166
```
111167

112-
### Create a Standalone Ledger
168+
**Supported Amendments:**
169+
Hooks, URIToken, Import, Remit, ZeroB2M, Clawback, fixXahauV1, fixNFTokenRemint, and 40+ more.
113170

114-
To create a standalone ledger, use the `up:standalone` command with the necessary parameters.
171+
**Example:**
172+
```bash
173+
xrpld-netgen enable:amendment --name xahau-2025.7.9 --amendment_name Hooks --node_id vnode1 --node_type validator
174+
```
115175

176+
---
177+
178+
### Local Network Commands
179+
180+
#### Start a Local Network
181+
182+
Create and start a network using native processes (no Docker):
183+
184+
```bash
185+
xrpld-netgen up:local [OPTIONS]
186+
```
187+
188+
**Options:**
189+
- `--protocol` - Protocol: "xrpl" or "xahau" (default: "xahau")
190+
- `--log_level` - Log level: "warning", "debug", "trace" (default: "trace")
191+
- `--network_id` - Network identifier (default: 21339)
192+
- `--nodedb_type` - Database type: "Memory" or "NuDB" (default: "NuDB")
193+
- `--public_key` - Validator list public key
194+
- `--import_key` - Import validator list key
195+
196+
**Example:**
116197
```bash
117-
xrpld-netgen up:standalone --version [BUILD_VERSION]
198+
xrpld-netgen up:local --protocol xahau --nodedb_type Memory
118199
```
119200

120-
> If version is omitted then the current release is built
201+
#### View Local Network Logs
121202

122-
### Remove a Standalone Ledger
203+
View logs from a local network:
123204

124-
To remove a standalone ledger, use the `down:standalone` command.
205+
```bash
206+
xrpld-netgen logs:local [--node NODE_ID]
207+
```
125208

209+
**Example:**
126210
```bash
127-
xrpld-netgen down:standalone --name [PROTOCOL] + [BUILD_VERSION]
211+
# View all logs
212+
xrpld-netgen logs:local
213+
214+
# View specific node logs
215+
xrpld-netgen logs:local --node vnode1
128216
```
129217

130-
> `name` is not required when running current release
218+
---
219+
220+
### Standalone Ledger Commands
221+
222+
#### Create a Standalone Ledger
223+
224+
Create and start a single-node standalone ledger:
225+
226+
```bash
227+
xrpld-netgen up:standalone [OPTIONS]
228+
```
229+
230+
**Options:**
231+
- `--protocol` - Protocol: "xrpl" or "xahau" (default: "xahau")
232+
- `--version` - Build version (optional, uses current release if omitted)
233+
- `--build_type` - Build type: "image" or "binary" (default: "binary")
234+
- `--log_level` - Log level: "warning", "debug", "trace" (default: "trace")
235+
- `--network_id` - Network identifier (default: 21339 for xahau, 1 for xrpl)
236+
- `--nodedb_type` - Database type: "Memory" or "NuDB" (default: "NuDB")
237+
- `--ipfs` - Include IPFS server in deployment (default: false)
238+
- `--deploy` - Deploy as Docker image to registry (default: false)
239+
- `--server` - Build server URL (optional)
240+
- `--public_key` - Validator list public key
241+
- `--import_key` - Import validator list key
242+
243+
**Examples:**
244+
```bash
245+
# Create standalone with current version
246+
xrpld-netgen up:standalone --protocol xahau
247+
248+
# Create with specific version and IPFS
249+
xrpld-netgen up:standalone --protocol xahau --version 2025.7.9-release+1951 --ipfs
250+
251+
# Create with Memory database for testing
252+
xrpld-netgen up:standalone --protocol xrpl --nodedb_type Memory
253+
```
254+
255+
#### Stop a Standalone Ledger
256+
257+
Stop and remove a standalone ledger:
258+
259+
```bash
260+
xrpld-netgen down:standalone [OPTIONS]
261+
```
262+
263+
**Options:**
264+
- `--protocol` - Protocol: "xrpl" or "xahau" (default: "xahau")
265+
- `--version` - Build version (optional)
266+
- `--name` - Specific network name (optional)
267+
268+
**Example:**
269+
```bash
270+
xrpld-netgen down:standalone --protocol xahau --version 2025.7.9-release+1951
271+
```
272+
273+
#### View Standalone Logs
274+
275+
View logs from a standalone ledger:
276+
277+
```bash
278+
xrpld-netgen logs:standalone
279+
```
280+
281+
---
282+
283+
## Additional Features
284+
285+
### Network Explorer UI
286+
287+
All networks (multi-validator, local, and standalone) automatically include a Network Explorer UI accessible at [http://localhost:4000](http://localhost:4000). This provides real-time monitoring of your local network.
288+
289+
### IPFS Integration
290+
291+
When using the `--ipfs` flag with standalone ledgers, an IPFS server is deployed with the following ports:
292+
- **4001**: IPFS swarm port
293+
- **5001**: IPFS API port
294+
- **8080**: IPFS gateway port
295+
296+
### Database Options
297+
298+
Choose between two database types:
299+
- **NuDB** (default): Persistent database, slower but preserves data
300+
- **Memory**: In-memory database, faster for testing, data lost on restart
301+
302+
### Genesis Mode
303+
304+
Use the `--genesis` flag when creating networks to enable genesis mode, which affects how amendments are initialized.
305+
306+
### Custom Binaries
307+
308+
Use locally built xrpld binaries with the `--binary_name` option or by placing your binary in the expected location. This is significantly faster than building inside Docker containers.
131309

132310
## Support
133311

0 commit comments

Comments
 (0)