CLI tools to create node clusters for new or existing Symbol networks. This cli handles the creation and distribution of the nemesis block.
Why this tool?
To handle dozens or hundreds of Symbol Nodes in "cattle" style, where nodes are created and managed in bundles.
If you are creating a Symbol node for the first time, please have look at the symbol-bootstrap cli.
For more information, checkout this guide/blog post.
- Node 12.0.0+
- Docker 18.3.0+
- Docker Compose 1.25.0+
- Symbol Bootstrap 1.1.4+.
Before installing this tool, you need to install the symbol-bootstrap cli first. Please follow the Please follow the instructions.
$ npm install -g symbol-network $ symbol-network COMMAND running command... $ symbol-network (-v|--version|version) symbol-network/0.0.1 linux-x64 node-v12.22.9 $ symbol-network --help [COMMAND] USAGE $ symbol-network COMMAND ...
After installing the tool. Run:
$ mkdir my-network-workspace $ cd my-network-workspace $ symbol-network verify $ symbol-network init
and follow the instructions.
The wizard style CLI will guide you in the process of creating the nodes. The tool creates a bunch of files and folders.
When creating nodes to an existing network the files and folders are:
network-input.yml: This file is created by the
symbol-network init. It generates and defines the initial node layout, describing how many nodes of each type you want to create.
network.yml: This file is created by the
symbol-network expandNodesand maintained by the following commands. It's the "expansion" of
network-input.ymlfile where each node layed out individually. It defines your node cluster.
nodes: The folder that contains the final node configurations ready to deploy. The folder is created and maintained by the
key-store.yml: A file that stores the private keys and voting key files of the nodes. This file is created by the default private data storage. This can be extended to store data somewhere else, like for example AWS Secrets.
In addition, for new networks, you will see the following files and folders are:
custom-network-preset.yml: This files defines the configuration of it. It's the
--preset mainnet/testnetfor your new network. You can share this file with other members that want to connect to your new private network.
nemesis-target: The target of the nemesis node. You can use this initial node to try the network before deploying the final nodes.
nemesis-seed: The seed folder copied from the
nemesis-target. You can share with other members that want to connect to your network.
If you want to contribute to this tool, clone this repo, and run:
npm install -g
symbol-network runs from the source code. You can now try your features after changing the code.
Pull Requests are appreciated! Please follow the contributing guidelines.
Note: cloning this repo is only for people that want to tune the tool in a way it cannot be configured. If this is your case, please provide a feature request.
General users should install this tool like any other node module.
To format the source code, verify/fix lint issues, and generate the commands docs, run:
npm run style:fix
Symbol Network is a personal project maintained on my free time.
If you like it, please consider supporting it by delegating your Symbol account to my node:
name: symbol-node-dual-1.tawa.solutions publicKey: 6DB275B83F4839768821FF621DD90358F99A84EC61EB7DE1F6947E5B0926B9BB
If you don't like it, let me know by creating issues on GitHub. Pull Requests are welcome!
symbol-network autocomplete- display autocomplete installation instructions
symbol-network configureNodes- This is the last step of the node cluster setup that generates and updates each node's configuration.
symbol-network displayResolvedNetworkPreset- It displays the resolved network preset (Bootstrap's shared + custom-network-preset.yml).
symbol-network expandNodes- This "one-time" command is the second step configuring the node cluster for an existing an network or a new network.
symbol-network generateNemesis- This "one-time" command is the third step when creating a new network after running the "expandNodes" command.
symbol-network healthCheck- It health checks the nodes of the network once the network is running by performing several remote tests.
symbol-network help- display help for symbol-network
symbol-network init- This command is the first step configuring the node cluster for an existing an network or a new network.
symbol-network link- It announces VRF and Voting Link transactions for all the nodes to the network for each node with 'Peer' or 'Voting' roles. This command finalizes the node registration to an existing network.
symbol-network listServices- It lists all the known services.
symbol-network verify- It tests the installed software in the current computer reporting if there is any missing dependency, invalid version, or software related issue.