Nodesuite: A Swiss Army Knife for EOSIO Networks
Nodesuite is a set of Ansible playbooks used by EOS Detroit internally for managing EOSIO nodes and services. The team decided it would benefit the EOSIO ecosystem more if our daily efforts, which are subsidized by EOSIO networks at large, could be leveraged by developers and operators looking to set up their own EOSIO infrastructure. To that end, today Nodesuite will be available publicly for the first time in a soft launch. There is still a lot of work to be done in order to incorporate all of the innovation across EOSIO into a one-stop tool that is easy to set up and maintain. If you are a power-user looking to automate simple tasks in your EOSIO deployment, please join us in contributing to the project! Pull requests, bug reports, and general conceptual discussion are all welcomed on GitHub and the EOS Detroit Telegram group.
Nodesuite encapsulates the work required to initialize an Ubuntu 18.04 system, prepare EOSIO binaries, and configure an EOSIO node into easy-to-use playbooks and configuration mappings.
Out of the box, Nodesuite supports the following EOSIO networks, including their respective testnets:
- eos: the first and largest EOSIO network.
- wax: a commercial eosio network focused on NFT adoption and gaming.
- fio: a customized eosio network focused on improving usability of cryptocurrencies.
- telos: a governed EOSIO network that is cheap to develop on.
- proton: a custom eosio network for improving usability of banks.
Nodesuite also supports the following modes:
- producer: Block Producer node and reward claiming
- seed: Seed node for block propagation
- v1_history: Full v1 history API node
- hyperion: v2 API system for indexing, storing and retrieving an EOSIO blockchain’s historical data
- oracle: Runs Delphi oracle as a follow-on process.
Using the provided bootstrap python script, each team or individual leveraging the Nodesuite Core is able to keep their private configuration data separate from the core repository, allowing them to benefit from new changes upstream without having the hassle of merging that into their own fork of Nodesuite with their own configurations variables set.
Instead, Nodesuite creates symbolic links from your private configurations into the locations expected by the Ansible engine, allowing configurations to be stored in a separate, private git repository. By leveraging Ansible Vault, secret configs (such as keys or passwords) can be kept in their own encrypted vault stored in the private git repository that each Nodesuite user can access control to suit their own needs.
Feel free to use, experiment, and provide feedback on the project, with the understanding that this is a work in progress. There won’t be a stable tag for some time while we work towards finishing our 2020 roadmap and adding test coverage to the project.
The code and documentation is now available here on GitHub. Please let us know your thoughts!
CEO, EOS Detroit