README
¶
wasp-cluster
wasp-cluster is a tool that allows to easily run a cluster of Wasp nodes
in a single host, to experiment with smart contracts in a controlled environment.
Note: wasp-cluster is intended for testing purposes, and is not
suitable for running a cluster in a production environment.
Before
Make sure you have all needed binaries compiled and installed in the system path:
wasp(Wasp server)wasp-cli(CLI client for the Wasp node)wasp-cluster(this tool)
You can find instructions in the main README file.
Initialize the cluster configuration
wasp-cluster init my-cluster
This will create a directory named my-cluster, containing the cluster
configuration file (cluster.json) and one subdirectory for each node.
my-cluster/
├── cluster.json
├── wasp0
│ └── config.json
├── wasp1
│ └── config.json
├── wasp2
│ └── config.json
└── wasp3
└── config.json
By default the cluster contains 4 Wasp nodes. You can change this with the
-n parameter. E.g.: wasp-cluster init my-cluster -n 2.
If you need to change the default configuration of the nodes, you can do so now,
by editing the config.json files.
Note: by default wasp-cluster configures all nodes to store the database in
main memory: all data will be lost when the cluster is stopped (remember that
this tool is used primarily for testing). If you need a persistent database,
change the inMemory setting in all config.json files.
Start the cluster
cd my-cluster
wasp-cluster start
(Alternatively: wasp-cluster start my-cluster.)
When done using the cluster, press Ctrl-C to stop it.
Connecting to an existing Goshimmer network
By default, wasp-cluster provides a mock Goshimmer node to operate a
simulated ledger without the need for consensus. This is good
for quick tests, but is far from how the ledger works in a production
environment.
To connect the Wasp cluster to a more realistic environment (e.g. to be able to
persist the ledger), you can use the docker-network tool available
in the Goshimmer repository in order to start a cluster of Goshimmer nodes.
Example steps:
-
Edit
<goshimmer>/tools/docker-network/docker-compose.ymladdingtxstreamto all lines with--node.enablePlugins=.... (Just add,txstreamat the end of the line.) -
Start a Goshimmer network of 2 nodes:
cd <goshimmer>/tools/docker-network
./run.sh 2 0
- In another console, initialize a cluster of 4 Wasp nodes (
-n 4) with no mock Goshimmer node (-g).
wasp-cluster init my-cluster -n 4 -g
- Start the Wasp cluster:
$ cd my-cluster
$ wasp-cluster start
Running a disposable cluster
If you just need to do a quick test, you can run a disposable cluster of nodes with the default configuration with the command:
wasp-cluster start -d
No need to call init first; this command will automatically initialize the
cluster configuration in a temporary directory, which will be removed when the
cluster is stopped.
Documentation
¶
There is no documentation for this package.