This collection of scripts launches a local EOSIO network with multiple node configurations. There is also an automated boot sequence that utilizes a temporary "bios" node to launch the chain, deploy system contracts and set a schedule with three active block producer nodes.
This project can be useful as a development environment for system contracts.
- 0.1.0
Basic knowledge about Docker, Docker Compose, and Shell Script is required.
Some things you need before getting started:
- Clone this repo using
git clone --depth=1 https://github.com/eoscostarica/eosio-network-bootstrap.git <YOUR_PROJECT_NAME>
- Move to the appropriate directory:
cd <YOUR_PROJECT_NAME>
. - Set the environment variables
EOS_PUB_KEY
&EOS_PRIV_KEY
- Enter command
make run
Once installed you can run make run
, you can check the services running on:
api-node
at http://localhost/v1/chain/get_info
Within the download you'll find the following directories and files
.
├── Dockerfile ........................... Docker File
├── docker-compose.yml ................... Docker Compose
├── makefile ............................. Makefile
├── services ............................. Node configurations
│ ├── api-node ........................... API node (other node have same structure)
│ | ├── config.ini ....................... Nodeos Configuration File
│ | ├── genesis.json ..................... Genesis JSON (must be the same for other nodes)
│ | └── start.sh ......................... Script to start node with config params
│ ├── bios ............................... Temporary Bios Node Configuration
│ | ├── config.ini ....................... Nodeos Configuration File
│ | ├── genesis.json ..................... Genesis JSON (must be the same for other nodes)
│ | ├── start.sh ......................... Script to start node with config params
│ | └── utils ........................... Boot process specific scripts
│ │ ├── bios.sh ........................ Boot sequence script
│ │ ├── schedule.json .................. Block Producer Schedule to propose
│ | └── vault.sh ....................... Vault script for secure key storage
│ ├── vault .............................. Vault Service
│ | └── config ........................... Valut Configuration
│ │ └── vault.json ..................... Valut Configuration
│ └── wallet ............................. KEOSD Wallet Service
│ └── start.sh ........................ Wallet Start Script
├── kubernetes/ .......................... Kubernetes Definitions Dir
├── mkutils/ ............................. Make Utils
└── README.md ............................ This File
After the pod for the vault has been initiated, make sure you do:
- Make a port-forward to the vault.
- Make sure you set an environment variable called VAULT_URL with the url from the port-forward.
source services/bios/utils/vault.sh
and call theinit
function passing the path where you want to to store the keys fileinit vault_keys.json
which should not only create the keys but unseal the vault and leave it ready to store and serve secrets
Please Read EOS Costa Rica's Open Source Contributing Guidelines.
Please report bugs big and small by opening an issue
Thanks goes to these wonderful people who support this project!
Daniel Prado 💻 🚇 |
Xavier Fernandez 💻 📖 🤔 |
MIT © EOS Costa Rica
EOS Costa Rica is an independently-owned, self-funded, bare-metal Genesis EOS block producer that develops solution using EOSIO and provides infrastructure for EOSIO blockchains. We support open source software for our community while offering enterprise solutions and custom blockchain development for our clients.