- gets content of
masterbranch ofpoa-network-consensus-contractsrepo - compiles all POA Network contracts
- gets binary code of POA Network Consensus contract
- gets spec.json from
sokolbranch ofchain-specrepo - generates custom private, public key and password of MoC and save them to
./keys/mocfolder - 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
masterbranch ofpoa-scripts-mocrepo - generates one initial key with password and copies it to
./keys/initial_keysfolder - gets content of
corebranch ofpoa-dapps-keys-generationrepo - launches Ceremony DApp locally built from the repo
- runs e2e tests on Ceremony DApp
- saves generated production keys with Ceremony DApp to
./keysfolder - runs validator node
- gets content of
corebranch ofpoa-dapps-validatorsrepo - launches Validators DApp locally built from the repo
- runs e2e tests on Validators DApp
- gets content of
corebranch ofpoa-dapps-votingrepo - launches Voting DApp locally built from the repo
- runs e2e tests on Governance DApp
- Linux, Mac OS
- Parity 1.9.2+
- 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
- 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 inpm 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
http://localhost:8545 - Spec of the network is generated to
./specfolder - MoC keystore file, password, private key are generated to
./keys/mocfolder - Parity config of MoC node is generated to
./nodes/parity-moc/moc.tomlfile - 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
http://localhost:3000 - Validators DApp is started on
http://localhost:3001 - Governance DApp is started on
http://localhost:3002
Note: can be started after the previous 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_keysfolder - e2e test of Ceremony DApp is executed
- mining address, password, and private key are copied to
./keys/mining_keysfolder - payout address, password, and private key are copied to
./keys/payout_keysfolder - voting address, password, and private key are copied to
./keys/voting_keysfolder - 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