@@ -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