Ethereum AuRa (POA) Chain Load Test
Workflow
Installation
npm install
pip install -r requirements.txt
sudo pip install ansible
Configure cloud provider
Google Cloud Engine
Setup credentials
Setup 3 following variable in .env (see .env.example):
-
GCE_SERVICE_ACCOUNT - your service account name from
IAM & Admin
→Service Accounts
section -
GCE_KEY_PATH - path to your service account keys
-
GCE_PROJECT_ID - project number from
Home
section
Setup SSH key
-
Generate a new ssh key pair
-
Rename user (before @ sign) in .pub file to
ubuntu
. For ex., if your key in .pub file ends withVitalik@Vitaliks-MacBook-Pro.local
, replace it withubuntu@Vitaliks-MacBook-Pro.local
. -
Go to
Compute Engine
→Metadata
→SSH keys
and paste your .pub key there.
Setup Firewall rules
-
Go to
VPC Network
→Firewall rules
-
Add a rule with:
-
Name: peer
-
Target tags: peer-node
-
Protocols/ports: tcp:8080,8545,8546,30303; udp:30301
-
-
Add another rule:
-
Name: validator
-
Target tags: validator-node
-
Protocols/ports: tcp:8545,8546,30303; udp:30301
-
group_vars/all
Fill required values in -
provider - [gcloud, aws, do]
-
map - chain map name from
./maps
folder (without.yml
extension) -
username - ubuntu username
-
home - home folder for validator user
-
genesis_network_name - the same name as in chain specification file
spec.json
-
timestamp - timestamp for a generated config (do not set manually, generated by
make generate
command) -
agent secret - secret word to protect access to publicly exposed agent http interface
Bootstrap a network
-
make generate
node generator.js ← generates keys an chain map -
make create
python providers/create.py ← launches instances in a cloud -
make fetch
python providers/fetch.py ← fetches metadata from created instances -
make chain
ansible-playbook -i hosts.txt chain.yml ← provises cloud instances with software and configs
Now you should have your chain launched and sealing blocks.
Test
Use agent client.js to schedule agent jobs.
TODO
Results Collection
TODO