- gets content of
master
branch ofpoa-network-consensus-contracts
repo - compiles all POA Network contracts
- gets binary code of POA Network Consensus contract
- gets spec.json from
sokol
branch ofchain-spec
repo - generates custom private, public key and password of MoC and save them to
./keys/moc
folder - updates spec.json with new MoC and binary code of POA Network Consensus contracts
- starts MoC Parity node
- deploys secondary POA Network contracts
- gets content of
master
branch ofpoa-scripts-moc
repo - generates one initial key with password and copies it to
./keys/initial_keys
folder - gets content of
core
branch ofpoa-dapps-keys-generation
repo - launches Ceremony DApp locally built from the repo
- runs e2e tests on Ceremony DApp
- saves generated production keys with Ceremony DApp to
./keys
folder - runs validator node
- gets content of
core
branch ofpoa-dapps-validators
repo - launches Validators DApp locally built from the repo
- runs e2e tests on Validators DApp
- gets content of
core
branch ofpoa-dapps-voting
repo - launches Voting DApp locally built from the repo
- runs e2e tests on Governance DApp
- Linux, Mac OS
- NodeJS@10
- Parity 2.6.5+
- Google Chrome
There are some options to start POA Network test setup depending on your needs:
- Start MoC node - launches only MoC node, generates initial key
- Launch DApps - launches Ceremony, Validators, Governance DApps
- Check Emission Funds balance - checks whether Emission Funds balance is not zero
- Launch Ceremony - conducts Ceremony
- Set validator data - set validators personal data with Validators DApp
- Add validator from Governance - add new validator from Governance
- Launch added validator node - start new validator's node
npm i
npm run start-moc-setup
At the successful end of POA test setup start you'll see this message: ### POA test setup is configured ###
- RPC of Parity node with unlocked MoC account will be on
https://localhost:8545
- Spec of the network is generated to
./spec
folder - MoC keystore file, password, private key are generated to
./keys/moc
folder - Parity config of MoC node is generated to
./nodes/parity-moc/moc.toml
file - Addresses of governance smart contracts are generated to
./submodules/poa-network-consensus-contracts/contracts.json
- ABI of smart contracts are generated to
./submodules/poa-network-consensus-contracts/build/contracts
Note: can be started after the previous step is completed
npm run launch-dapps
For Ubuntu users: if you encounter any errors during DApps launching, try to increase max_user_watches
limit and repeat steps:
$ npm run stop-test-setup
$ echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf
$ sudo sysctl -p
$ npm run start-moc-setup
$ npm run launch-dapps
- Ceremony DApp is started on
https://localhost:3000
- Validators DApp is started on
https://localhost:3001
- Governance DApp is started on
https://localhost:3002
Note: can be started after the previous step is completed
npm run check-emission-funds-balance
- no errors returned
Note: can be started after the "Launch DApps" step is completed
For Ubuntu users: you should first install and use X virtual framebuffer if you want to move all graphical operations to the virtual memory without showing any screen output.
sudo apt-get -y install xvfb
export DISPLAY=:99.0
sudo start-stop-daemon --start --quiet --pidfile /var/run/xvfb.pid --make-pidfile --background --exec /usr/bin/Xvfb -- :99 -screen 0 1024x768x24 -ac +extension GLX +render -noreset
npm run launch-ceremony-light
- one initial key is generated
- initial key password, private key are generated to
.keys/initial_keys
folder - e2e test of Ceremony DApp is executed
- mining address, password, and private key are copied to
./keys/mining_keys
folder - payout address, password, and private key are copied to
./keys/payout_keys
folder - voting address, password, and private key are copied to
./keys/voting_keys
folder - initial key is removed
- most ETH from initial key is transferred to voting keys
- validator node is started at RPC port
8550
Note: can be started after the previous step is completed
npm run set-validators-data-light
- one validator filled the form with mock personal data in Validator DApp
Note: can be started after the previous step is completed
npm run add-validator
- New validator is added to validators' set through Governance DApp
Note: can be started after the previous step is completed
npm run start-new-validator-node
- New validator node is started at RPC port
8553
npm run stop-test-setup
For Ubuntu users: you should also stop virtual framebuffer if you started it before.
sudo start-stop-daemon --stop --quiet --pidfile /var/run/xvfb.pid --remove-pidfile