symbol-bootstrap icon indicating copy to clipboard operation
symbol-bootstrap copied to clipboard

Multimodule - Symbol Network (WIP)

Open fboucquez opened this issue 3 years ago • 0 comments

This big PR changes bootstrap in 2 ways.

  • In changes the single module repo to a multimodule mono repo using Lerna. The CLI and the Core Lib have been split.
  • It adds the symbol-network core lib and CLI.

The new top-level readme explains better.

Network CLI

To try this new CLI you can check out this branch and build as instructed in the readme.

Alternatively, I would be keeping "alpha" npm packages while testing the new packages and Lerna deployment.

npm install -g symbol-bootstrap@multimodule
npm install -g symbol-network@multimodule
symbol-network verify
mkdir my-network
cd my-network
symbol-network init

And follow the instructions...

At the end of the wizard, you will have your network and nodes configured locally ready to be deployed in the cloud provider you desire. This PR doesn't include node deployment as there could be a lot of options. Atm, the user needs to define how to deploy (terraform, bash scripts, ansible scripts, etc). In the last step, the user would need to do is to push the node's folders into each VPS box and ssh a "symbol-bootstrap start".

Bootstrap changes

There has been a number of upgrades to bootstrap. They are not breaking change for mainnet and testnet nodes, only for new "bootstrap" private networks:

  • custom preset cached on target

  • --preset bootstrap is not the default anymore.

  • Moved assemblies to own common folder.

  • Improved configuration testing

  • Renamed bootstrap preset for dualCurrency. Added singleCurrency preset.

  • Preset and assemblies can mix and match.

  • User can now provide a custom network and assembly preset.

  • Improved how balances can be provided on nemesis block

  • Removed node-forge and sshpk

  • Removed unused certificate files after generating

  • Removed unused genesis state files after generating

  • Nemesis seed is shared across the different nodes avoiding duplicated files.

  • Improved unit testing

  • Wizard allows custom networks

  • Upgraded github nemtech to symbol links

  • Fixes #60

  • Fixes #245

  • Fixes #80

  • Fixes #252

The new bootstrap version starts from 1.1.0, network version would start from 0.0.1 (until is stable enough to bump the major version)

TODOs:

  • Add link command at network level so you can link all your nodes to an existing network with one command (accounts are linked in the nemesis block when creating new network)
  • Code documentation
  • Unit tests around the new network tool.

Related:

  • https://github.com/nemgrouplimited/symbol-desktop-wallet/pull/1568
  • https://github.com/symbol/symbol-explorer/pull/921

fboucquez avatar Jul 12 '21 21:07 fboucquez