├── README.md ├── common_start.sh ├── geth-poa ├── .gitignore ├── Dockerfile ├── Dockerfile-unstable ├── common_start.sh ├── genesis.json ├── keys │ ├── dev-key.json │ ├── dev-key2.json │ └── dev-key3.json ├── password.txt └── start.sh ├── kovan └── start.sh ├── parity-instantseal ├── Dockerfile ├── common_start.sh ├── dev-key.json ├── instant-seal-chain-spec.json ├── instant-seal-config.toml └── start.sh ├── parity-poa ├── Dockerfile ├── aura-chain-spec.json ├── aura-config.toml ├── common_start.sh ├── dev-key.json └── start.sh ├── rinkeby ├── .gitignore ├── install.sh └── start.sh ├── rockaway ├── Dockerfile ├── bootnode │ └── Dockerfile ├── build.sh ├── cluster.json ├── genesis.json ├── genesis.template.json ├── sealer │ └── Dockerfile └── start.sh ├── ropsten ├── .gitignore ├── install.sh └── start.sh └── spam-villa ├── .gitignore ├── Dockerfile ├── burner.sol ├── docker-compose.yml ├── requirements.txt ├── spam-villa.py └── testnet-keys.env /README.md: -------------------------------------------------------------------------------- 1 | # Augur's Ethereum Nodes 2 | 3 | Here shall live the various docker images for the ethereum nodes that we run 4 | for testnets and our own private chains. 5 | -------------------------------------------------------------------------------- /common_start.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | declare -i NODE_PID 4 | declare -i TAIL_PID 5 | 6 | read -r -d INITIAL_TX_DATA << --EOF 7 | { 8 | "jsonrpc":"2.0", 9 | "method":"eth_sendTransaction", 10 | "params": [{ 11 | "value": "0x0", 12 | "to":"0x0000000000000000000000000000000000000000", 13 | "from":"${UNLOCK_ACCOUNT}", 14 | "data":"0x", 15 | "gasPrice":"0x1" 16 | }], 17 | "id": 1 18 | } 19 | --EOF 20 | 21 | 22 | node_cleanup() { 23 | kill $TAIL_PID $NODE_PID > /dev/null 2>&1 24 | } 25 | 26 | node_wait() { 27 | wait $NODE_PID 28 | } 29 | 30 | trap node_cleanup INT TERM 31 | 32 | eth_call() { 33 | local response 34 | response=$(curl --silent --show-error localhost:$RPCPORT -H "Content-Type: application/json" -X POST --data "${response}" 2>&1) 35 | if [[ \ 36 | "${response}" == *'"error":'* || \ 37 | "${response}" == *'Connection refused'* || \ 38 | "${response}" == *'bad method'* \ 39 | ]] ; then 40 | echo "not ready" 41 | else 42 | echo "ready" 43 | fi 44 | } 45 | 46 | eth_running() { 47 | kill -0 $NODE_PID > /dev/null 2>&1 48 | } 49 | 50 | node_detect_ready() { 51 | while eth_running && [[ $(eth_call $INITIAL_TX_DATA) == "not ready" ]] ; do sleep 1; done 52 | } 53 | 54 | start() { 55 | node_start 56 | 57 | node_detect_ready & 58 | wait $! 59 | 60 | if ! eth_running ; then 61 | >&2 echo "Failed to start Ethereum Node, exiting" 62 | RESULT=1 63 | else 64 | echo -e "\e[32mEthereum Node up and running!\e[0m" 65 | node_wait 66 | RESULT=0 67 | fi 68 | 69 | node_cleanup 70 | exit $RESULT 71 | } 72 | 73 | -------------------------------------------------------------------------------- /geth-poa/.gitignore: -------------------------------------------------------------------------------- 1 | chain/ 2 | geth.log 3 | -------------------------------------------------------------------------------- /geth-poa/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM ethereum/client-go:v1.8.27 2 | 3 | RUN apk update \ 4 | && apk add bash curl coreutils 5 | 6 | COPY genesis.json /geth/genesis.json 7 | COPY password.txt /geth/password.txt 8 | ADD keys /geth/keys 9 | 10 | WORKDIR / 11 | COPY ./common_start.sh /common_start.sh 12 | COPY start.sh /start.sh 13 | RUN chmod +x /start.sh 14 | ENTRYPOINT [ "/start.sh" ] 15 | 16 | # start.sh uses ENV variables 17 | # NETWORK_ID to set chain id, default=12346 18 | # PERIOD_TIME to set period, block time in seconds. Default=0, instant seal 19 | # docker image build --tag augurproject/geth-dev-node . 20 | # docker push augurproject/geth-dev-node:latest 21 | # docker container run --rm -it -p 8545:8545 --name geth-dev-node geth-dev-node 22 | #-p 8545:8545 ethereum/client-go --dev --ws --wsapi eth,net,web3,personal,txpool --wsport 8546 --rpc --rpcapi eth,net,web3,personal,miner,txpool --rpcaddr 0.0.0.0 --targetgaslimit 7500000 23 | # To connect in a separate terminal: geth attach http://127.0.0.1:8545 24 | # To persist the chain, volume mount over /geth/chain, such as `-v $HOME/.geth-chain:/geth/chain` 25 | -------------------------------------------------------------------------------- /geth-poa/Dockerfile-unstable: -------------------------------------------------------------------------------- 1 | FROM ethereum/client-go:latest 2 | 3 | RUN apk update \ 4 | && apk add bash curl 5 | 6 | COPY genesis.json /geth/genesis.json 7 | COPY password.txt /geth/password.txt 8 | ADD keys /geth/keys 9 | RUN geth --datadir /geth/chain --keystore /geth/keys init /geth/genesis.json 10 | 11 | WORKDIR / 12 | COPY ./common_start.sh /common_start.sh 13 | COPY start.sh /start.sh 14 | RUN chmod +x /start.sh 15 | ENTRYPOINT [ "/start.sh" ] 16 | 17 | # docker image build --tag geth-dev-node . 18 | # docker container run --rm -it -p 8545:8545 --name geth-dev-node geth-dev-node 19 | #-p 8545:8545 ethereum/client-go --dev --ws --wsapi eth,net,web3,personal,txpool --wsport 8546 --rpc --rpcapi eth,net,web3,personal,miner,txpool --rpcaddr 0.0.0.0 --targetgaslimit 7500000 20 | # To connect in a separate terminal: geth attach http://127.0.0.1:8545 21 | -------------------------------------------------------------------------------- /geth-poa/common_start.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | declare -i NODE_PID 4 | 5 | read -r -d INITIAL_TX_DATA << --EOF 6 | { 7 | "jsonrpc":"2.0", 8 | "method":"eth_sendTransaction", 9 | "params": [{ 10 | "value": "0x0", 11 | "to":"0x0000000000000000000000000000000000000000", 12 | "from":"${UNLOCK_ACCOUNT}", 13 | "data":"0x", 14 | "gasPrice":"0x1" 15 | }], 16 | "id": 1 17 | } 18 | --EOF 19 | 20 | 21 | node_cleanup() { 22 | kill $NODE_PID > /dev/null 2>&1 23 | } 24 | 25 | node_wait() { 26 | wait $NODE_PID 27 | } 28 | 29 | trap node_cleanup INT TERM 30 | 31 | eth_call() { 32 | local response 33 | response=$(curl --silent --show-error localhost:$RPCPORT -H "Content-Type: application/json" -X POST --data "${response}" 2>&1) 34 | if [[ \ 35 | "${response}" == *'"error":'* || \ 36 | "${response}" == *'Connection refused'* || \ 37 | "${response}" == *'bad method'* \ 38 | ]] ; then 39 | echo "not ready" 40 | else 41 | echo "ready" 42 | fi 43 | } 44 | 45 | eth_running() { 46 | kill -0 $NODE_PID > /dev/null 2>&1 47 | } 48 | 49 | node_detect_ready() { 50 | while eth_running && [[ $(eth_call $INITIAL_TX_DATA) == "not ready" ]] ; do sleep 1; done 51 | } 52 | 53 | start() { 54 | setup_chain_dir 55 | node_start 56 | 57 | node_detect_ready & 58 | wait $! 59 | 60 | if ! eth_running ; then 61 | >&2 echo "Failed to start Ethereum Node, exiting" 62 | RESULT=1 63 | else 64 | echo -e "\e[32mEthereum Node up and running!\e[0m" 65 | node_wait 66 | RESULT=0 67 | fi 68 | 69 | node_cleanup 70 | exit $RESULT 71 | } 72 | 73 | -------------------------------------------------------------------------------- /geth-poa/genesis.json: -------------------------------------------------------------------------------- 1 | { 2 | "config": { 3 | "chainId": NETWORK_ID, 4 | "homesteadBlock": 0, 5 | "eip150Block": 0, 6 | "eip150Hash": "0x0000000000000000000000000000000000000000000000000000000000000000", 7 | "eip155Block": 0, 8 | "eip158Block": 0, 9 | "byzantiumBlock": 0, 10 | "petersburgBlock": 0, 11 | "constantinopleBlock": 0, 12 | "clique": { 13 | "period": PERIOD_TIME, 14 | "epoch": 30000 15 | } 16 | }, 17 | "nonce": "0x0", 18 | "timestamp": "0x59e50516", 19 | "extraData": "0x4175677572000000000000000000000000000000000000000000000000000000913da4198e6be1d5f5e4a40d0667f70c0b5430eb0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", 20 | "gasLimit": "0x7270E0", 21 | "difficulty": "0x1", 22 | "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", 23 | "coinbase": "0x0000000000000000000000000000000000000000", 24 | "alloc": { 25 | "0000000000000000000000000000000000000000": { "balance": "0x1" }, 26 | "0000000000000000000000000000000000000001": { "balance": "0x1" }, 27 | "0000000000000000000000000000000000000002": { "balance": "0x1" }, 28 | "0000000000000000000000000000000000000003": { "balance": "0x1" }, 29 | "0000000000000000000000000000000000000004": { "balance": "0x1" }, 30 | "0000000000000000000000000000000000000005": { "balance": "0x1" }, 31 | "0000000000000000000000000000000000000006": { "balance": "0x1" }, 32 | "0000000000000000000000000000000000000007": { "balance": "0x1" }, 33 | "0000000000000000000000000000000000000008": { "balance": "0x1" }, 34 | "a7d1c6947d5a372747bca5fb449e52a22fd9ff28": { "balance": "0x000000000000000000000000000000000000000000000020000000000000000" }, 35 | "913da4198e6be1d5f5e4a40d0667f70c0b5430eb": { "balance": "0x000000000000000000000000000000000000000000000020000000000000000" }, 36 | "bd355a7e5a7adb23b51f54027e624bfe0e238df6": { "balance": "0x000000000000000000000000000000000000000000000020000000000000000" }, 37 | "e4ec477bc4abd2b18225bb8cba14bf57867f082b": { "balance": "0x000000000000000000000000000000000000000000000020000000000000000" }, 38 | "40075b21ee1fc506207ac45c006d68114dae9967": { "balance": "0x000000000000000000000000000000000000000000000020000000000000000" }, 39 | "d1a8d03498407db8299bc912ffc0196564fe91e9": { "balance": "0x000000000000000000000000000000000000000000000020000000000000000" }, 40 | "5eb11f4561da21e9070b8f664fc70aec62ec29d5": { "balance": "0x000000000000000000000000000000000000000000000020000000000000000" }, 41 | "53c3d9be61c8375b34970801c5bd4d1a87860343": { "balance": "0x000000000000000000000000000000000000000000000020000000000000000" }, 42 | "9d4c6d4b84cd046381923c9bc136d6ff1fe292d9": { "balance": "0x000000000000000000000000000000000000000000000020000000000000000" } 43 | }, 44 | "number": "0x0", 45 | "gasUsed": "0x0", 46 | "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000" 47 | } 48 | -------------------------------------------------------------------------------- /geth-poa/keys/dev-key.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "21c82dac-65cd-df3f-9750-f36073fcc51a", 3 | "version": 3, 4 | "crypto": { 5 | "cipher": "aes-128-ctr", 6 | "cipherparams": { 7 | "iv": "b821de8c19c6b14ec38353026612049f" 8 | }, 9 | "ciphertext": "0e7cacb926f126344b0a4c606b2fc981fb5ef26867a297e370008dd8a8200e60", 10 | "kdf": "pbkdf2", 11 | "kdfparams": { 12 | "c": 10240, 13 | "dklen": 32, 14 | "prf": "hmac-sha256", 15 | "salt": "a8dd39be8552b82416d7af150f3d25bb1850660e63b512b5bc94d0685e31ff92" 16 | }, 17 | "mac": "4a2153a0a6ac6479e30dd4259f54e047cd872190ca463cfbf1393e171ab6a26a" 18 | }, 19 | "address": "913da4198e6be1d5f5e4a40d0667f70c0b5430eb", 20 | "name": "", 21 | "meta": "{}" 22 | } 23 | -------------------------------------------------------------------------------- /geth-poa/keys/dev-key2.json: -------------------------------------------------------------------------------- 1 | { 2 | "address": "9d4c6d4b84cd046381923c9bc136d6ff1fe292d9", 3 | "crypto": { 4 | "cipher": "aes-128-ctr", 5 | "ciphertext": "c63913686d51b6ac694267903d98e8224064f2a8f2d2cc99a34bd1132bbb70d9", 6 | "cipherparams": { 7 | "iv": "433f9aa673e09d7191fbcd00231215db" 8 | }, 9 | "kdf": "scrypt", 10 | "kdfparams": { 11 | "dklen": 32, 12 | "n": 262144, 13 | "p": 1, 14 | "r": 8, 15 | "salt": "4afca02a6f675c296a8b1f92bcc7d3b029a9d1c65b0bb03ccc189d261b091bb6" 16 | }, 17 | "mac": "623c7a1de7efbf27f33e70e2c4310a1a32e85e5d37c9021c83a199ff15b113c4" 18 | }, 19 | "id": "02255d30-1c66-4e50-8706-bbca9dcbd7cd", 20 | "version": 3 21 | } 22 | -------------------------------------------------------------------------------- /geth-poa/keys/dev-key3.json: -------------------------------------------------------------------------------- 1 | { 2 | "address": "bd355a7e5a7adb23b51f54027e624bfe0e238df6", 3 | "crypto": { 4 | "cipher": "aes-128-ctr", 5 | "ciphertext": "544b7a145202f9afd983575dd6c6cabcb73318731b549313c47e60db8cba963d", 6 | "cipherparams": { 7 | "iv": "396527861a1d5fed99a69c31e21ba370" 8 | }, 9 | "kdf": "scrypt", 10 | "kdfparams": { 11 | "dklen": 32, 12 | "n": 262144, 13 | "p": 1, 14 | "r": 8, 15 | "salt": "06289f02d458d78f94558ffc4c7fbbe641209235e5cb80be117e27fcab3e7d7a" 16 | }, 17 | "mac": "8096448e90530f1db401c9ab6c03cc35a76f91761826110d11f8b430ab31cd7b" 18 | }, 19 | "id": "850eb29b-9b10-462d-955c-9375c8a4afb3", 20 | "version": 3 21 | } 22 | -------------------------------------------------------------------------------- /geth-poa/password.txt: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /geth-poa/start.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | RPCPORT=8545 4 | WSPORT=8546 5 | if [[ "${ROOT}" == "" ]] ; then ROOT="/geth" ; fi 6 | [[ "${UNLOCK_ACCOUNT}" != "" ]] || UNLOCK_ACCOUNT="0x913da4198e6be1d5f5e4a40d0667f70c0b5430eb,0x9d4c6d4b84cd046381923c9bc136d6ff1fe292d9,0xbd355a7e5a7adb23b51f54027e624bfe0e238df6" 7 | 8 | ROOT=$(readlink -f $ROOT) 9 | 10 | source ./common_start.sh 11 | 12 | node_start() { 13 | # geth is dumb and won't let us run it in the background, and nohup redirects to file when run in a script 14 | 15 | nohup geth \ 16 | --networkid "$(cat "$ROOT/networkid")" \ 17 | --datadir "${ROOT}/chain" \ 18 | --keystore "${ROOT}/keys" \ 19 | --password "${ROOT}/password.txt" \ 20 | --unlock "${UNLOCK_ACCOUNT}" \ 21 | --verbosity ${GETH_VERBOSITY:-2} --mine \ 22 | --ws --wsapi eth,net,web3,personal,txpool --wsaddr 0.0.0.0 --wsport $WSPORT --wsorigins '*' \ 23 | --rpc --rpcapi eth,net,web3,personal,miner,txpool --rpcaddr 0.0.0.0 --rpcport $RPCPORT --rpccorsdomain '*' --rpcvhosts '*' \ 24 | --nodiscover \ 25 | --targetgaslimit 7500000 < /dev/null > $ROOT/geth.log 2>&1 & 26 | NODE_PID=$! 27 | 28 | stdbuf -o0 tail -F $ROOT/geth.log 2>/dev/null & 29 | TAIL_PID=$! 30 | } 31 | 32 | setup_chain_template() { 33 | if [ ! -d "${ROOT}/chain-template" ]; then 34 | PERIOD_TIME="${PERIOD_TIME:-0}" 35 | NETWORK_ID="${NETWORK_ID:-12346}" 36 | echo "Setting up Genesis with Network ID: $NETWORK_ID" 37 | echo "Setting up Genesis with Period Time: $PERIOD_TIME" 38 | sed -i -r "s/NETWORK_ID/$NETWORK_ID/" ${ROOT}/genesis.json 39 | sed -i -r "s/PERIOD_TIME/$PERIOD_TIME/" ${ROOT}/genesis.json 40 | geth --nodiscover --datadir "${ROOT}/chain-template" --keystore "${ROOT}/keys" init "${ROOT}/genesis.json" 41 | 42 | echo $NETWORK_ID > "${ROOT}/networkid" 43 | fi 44 | } 45 | 46 | setup_chain_dir() { 47 | # to enable volume mounts to persist data, we need to take some specific 48 | # actions, detecting when one is present and new, vs present and old 49 | # vs not present 50 | if [ ! -d ${ROOT}/chain ]; then 51 | setup_chain_template 52 | echo "${ROOT}/chain not mounted, transactions will be ephemeral" 53 | mv ${ROOT}/chain-template ${ROOT}/chain 54 | else 55 | # Chain dir exists 56 | if [ -d ${ROOT}/chain/geth/chaindata ]; then 57 | if [ ! -f "${ROOT}/networkid" ]; then 58 | echo ${NETWORK_ID:-12346} > "${ROOT}/networkid" 59 | fi 60 | echo "${ROOT}/chain-template mounted and has prior blockchain state, restored" 61 | else 62 | setup_chain_template 63 | echo "${ROOT}/chain-template mounted, but uninitialized. Copying chaindata template" 64 | mv ${ROOT}/chain-template/* ${ROOT}/chain 65 | fi 66 | fi 67 | } 68 | 69 | start 70 | -------------------------------------------------------------------------------- /kovan/start.sh: -------------------------------------------------------------------------------- 1 | docker run --name ethereum -d -ti --rm \ 2 | -p 80:8180 -p 8545:8545 -p 8546:8546 -p 30303:30303 -p 30303:30303/udp \ 3 | -v /root/.local:/root/.local \ 4 | parity/parity:v1.8.0 \ 5 | --chain kovan \ 6 | --public-node \ 7 | --ui-hosts kovan.augur.net,localhost \ 8 | --ui-interface all \ 9 | --ws-interface all \ 10 | --ws-apis web3,eth,net,personal,parity \ 11 | --ws-origins all \ 12 | --jsonrpc-interface all \ 13 | --jsonrpc-apis web3,eth,net,personal,parity \ 14 | --jsonrpc-cors "*" 15 | -------------------------------------------------------------------------------- /parity-instantseal/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM parity/parity:v2.3.2 2 | 3 | USER root 4 | 5 | # install all dependencies 6 | RUN apt-get update \ 7 | && apt-get install --yes --no-install-recommends curl \ 8 | && rm -rf /var/lib/apt/lists/* 9 | 10 | WORKDIR / 11 | COPY dev-key.json /home/parity/keys/InstantSealChain/dev-key.json 12 | COPY instant-seal-chain-spec.json /home/parity/instant-seal-chain-spec.json 13 | COPY instant-seal-config.toml /home/parity/instant-seal-config.toml 14 | COPY ./common_start.sh /common_start.sh 15 | COPY start.sh /start.sh 16 | RUN echo "" > /home/parity/password 17 | RUN chmod +x /start.sh 18 | RUN chown -R parity /home/parity 19 | 20 | ENTRYPOINT [ "/start.sh" ] 21 | 22 | USER parity 23 | 24 | # docker image build --tag parity-dev-node . 25 | # docker container run --rm -it -p 8000:8000 -p 8001:8001 -p 8545:8545 -p 8180:8180 --name parity-dev-node parity-dev-node 26 | -------------------------------------------------------------------------------- /parity-instantseal/common_start.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | declare -i NODE_PID 4 | declare -i TAIL_PID 5 | 6 | read -r -d INITIAL_TX_DATA << --EOF 7 | { 8 | "jsonrpc":"2.0", 9 | "method":"eth_sendTransaction", 10 | "params": [{ 11 | "value": "0x0", 12 | "to":"0x0000000000000000000000000000000000000000", 13 | "from":"${UNLOCK_ACCOUNT}", 14 | "data":"0x", 15 | "gasPrice":"0x1" 16 | }], 17 | "id": 1 18 | } 19 | --EOF 20 | 21 | 22 | node_cleanup() { 23 | kill $TAIL_PID $NODE_PID > /dev/null 2>&1 24 | } 25 | 26 | node_wait() { 27 | wait $NODE_PID 28 | } 29 | 30 | trap node_cleanup INT TERM 31 | 32 | eth_call() { 33 | local response 34 | response=$(curl --silent --show-error localhost:$RPCPORT -H "Content-Type: application/json" -X POST --data "${response}" 2>&1) 35 | if [[ \ 36 | "${response}" == *'"error":'* || \ 37 | "${response}" == *'Connection refused'* || \ 38 | "${response}" == *'bad method'* \ 39 | ]] ; then 40 | echo "not ready" 41 | else 42 | echo "ready" 43 | fi 44 | } 45 | 46 | eth_running() { 47 | kill -0 $NODE_PID > /dev/null 2>&1 48 | } 49 | 50 | node_detect_ready() { 51 | while eth_running && [[ $(eth_call $INITIAL_TX_DATA) == "not ready" ]] ; do sleep 1; done 52 | } 53 | 54 | start() { 55 | node_start 56 | 57 | node_detect_ready & 58 | wait $! 59 | 60 | if ! eth_running ; then 61 | >&2 echo "Failed to start Ethereum Node, exiting" 62 | RESULT=1 63 | else 64 | echo -e "\e[32mEthereum Node up and running!\e[0m" 65 | node_wait 66 | RESULT=0 67 | fi 68 | 69 | node_cleanup 70 | exit $RESULT 71 | } 72 | -------------------------------------------------------------------------------- /parity-instantseal/dev-key.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "21c82dac-65cd-df3f-9750-f36073fcc51a", 3 | "version": 3, 4 | "crypto": { 5 | "cipher": "aes-128-ctr", 6 | "cipherparams": { 7 | "iv": "b821de8c19c6b14ec38353026612049f" 8 | }, 9 | "ciphertext": "0e7cacb926f126344b0a4c606b2fc981fb5ef26867a297e370008dd8a8200e60", 10 | "kdf": "pbkdf2", 11 | "kdfparams": { 12 | "c": 10240, 13 | "dklen": 32, 14 | "prf": "hmac-sha256", 15 | "salt": "a8dd39be8552b82416d7af150f3d25bb1850660e63b512b5bc94d0685e31ff92" 16 | }, 17 | "mac": "4a2153a0a6ac6479e30dd4259f54e047cd872190ca463cfbf1393e171ab6a26a" 18 | }, 19 | "address": "913da4198e6be1d5f5e4a40d0667f70c0b5430eb", 20 | "name": "", 21 | "meta": "{}" 22 | } 23 | -------------------------------------------------------------------------------- /parity-instantseal/instant-seal-chain-spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "InstantSealChain", 3 | "engine": { 4 | "instantSeal": null 5 | }, 6 | "params": { 7 | "gasLimitBoundDivisor": "0x0400", 8 | "accountStartNonce": "0x0", 9 | "maximumExtraDataSize": "0x20", 10 | "minGasLimit": "0x1388", 11 | "networkID" : "0x11", 12 | "registrar" : "0x0000000000000000000000000000000000001337", 13 | "eip150Transition": "0x0", 14 | "eip160Transition": "0x0", 15 | "eip161abcTransition": "0x0", 16 | "eip161dTransition": "0x0", 17 | "eip155Transition": "0x0", 18 | "eip98Transition": "0x7fffffffffffff", 19 | "maxCodeSize": 24576, 20 | "maxCodeSizeTransition": "0x0", 21 | "eip140Transition": "0x0", 22 | "eip211Transition": "0x0", 23 | "eip214Transition": "0x0", 24 | "eip658Transition": "0x0", 25 | "wasmActivationTransition": "0x0", 26 | 27 | "eip145Transition": "0x0", 28 | "eip1014Transition": "0x0", 29 | "eip1052Transition": "0x0" 30 | }, 31 | "genesis": { 32 | "seal": { 33 | "generic": "0x0" 34 | }, 35 | "difficulty": "0x20000", 36 | "author": "0x0000000000000000000000000000000000000000", 37 | "timestamp": "0x00", 38 | "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", 39 | "extraData": "0x", 40 | "gasLimit": "0x7270E0" 41 | }, 42 | "accounts": { 43 | "0x0000000000000000000000000000000000000001": { "balance": "1", "builtin": { "name": "ecrecover", "pricing": { "linear": { "base": 3000, "word": 0 } } } }, 44 | "0x0000000000000000000000000000000000000002": { "balance": "1", "builtin": { "name": "sha256", "pricing": { "linear": { "base": 60, "word": 12 } } } }, 45 | "0x0000000000000000000000000000000000000003": { "balance": "1", "builtin": { "name": "ripemd160", "pricing": { "linear": { "base": 600, "word": 120 } } } }, 46 | "0x0000000000000000000000000000000000000004": { "balance": "1", "builtin": { "name": "identity", "pricing": { "linear": { "base": 15, "word": 3 } } } }, 47 | "0x913da4198e6be1d5f5e4a40d0667f70c0b5430eb": { "balance": "0xffffffffffffffffffffffffffffffff"}, 48 | "0xbd355a7e5a7adb23b51f54027e624bfe0e238df6": { "balance": "0xffffffffffffffffffffffffffffffff"}, 49 | "0xe4ec477bc4abd2b18225bb8cba14bf57867f082b": { "balance": "0xffffffffffffffffffffffffffffffff"}, 50 | "0x40075b21ee1fc506207ac45c006d68114dae9967": { "balance": "0xffffffffffffffffffffffffffffffff"}, 51 | "0xd1a8d03498407db8299bc912ffc0196564fe91e9": { "balance": "0xffffffffffffffffffffffffffffffff"}, 52 | "0x5eb11f4561da21e9070b8f664fc70aec62ec29d5": { "balance": "0xffffffffffffffffffffffffffffffff"}, 53 | "0x53c3d9be61c8375b34970801c5bd4d1a87860343": { "balance": "0xffffffffffffffffffffffffffffffff"}, 54 | "0x9d4c6d4b84cd046381923c9bc136d6ff1fe292d9": { "balance": "0xffffffffffffffffffffffffffffffff"} 55 | } 56 | } 57 | -------------------------------------------------------------------------------- /parity-instantseal/instant-seal-config.toml: -------------------------------------------------------------------------------- 1 | [parity] 2 | # Local Development Chain 3 | chain = "/home/parity/instant-seal-chain-spec.json" 4 | # Forces Parity to run even if there are known issues regarding consensus. Not recommended. 5 | no_consensus = true 6 | # Blockchain and settings will be stored in /parity. 7 | base_path = "/home/parity" 8 | # Parity databases will be stored in /parity/chains. 9 | db_path = "/home/parity/chains" 10 | # Your encrypted private keys will be stored in /parity/keys. 11 | keys_path = "/home/parity/keys" 12 | # Parity will not save local transaction queue to disk. 13 | no_persistent_txqueue = true 14 | 15 | [account] 16 | # From: [0x913da4198e6be1d5f5e4a40d0667f70c0b5430eb] you'll be able to send tranasactions without password. 17 | unlock = ["0x913da4198e6be1d5f5e4a40d0667f70c0b5430eb"] 18 | # File at /parity/password should contain passwords to unlock your accounts. One password per line. 19 | password = ["/home/parity/password"] 20 | 21 | [network] 22 | # Enable or disable new peers discovery. 23 | discovery = false 24 | # Connect only to reserved nodes. 25 | reserved_only = true 26 | 27 | [rpc] 28 | # JSON-RPC will be listening for connections on IP 0.0.0.0. 29 | interface = "all" 30 | # Allows Cross-Origin Requests from domain '*'. 31 | cors = ["*"] 32 | # Only selected APIs will be exposed over this interface. 33 | apis = ["all"] 34 | # Allow connections only using specified addresses. 35 | hosts = ["all"] 36 | 37 | [websockets] 38 | # JSON-RPC will be listening for connections on IP 0.0.0.0. 39 | interface = "all" 40 | # Allows connecting from Origin '*'. 41 | origins = ["all"] 42 | # Only selected APIs will be exposed over this interface. 43 | apis = ["all"] 44 | # Allow connections only using specified addresses. 45 | hosts = ["all"] 46 | 47 | [ipc] 48 | # You won't be able to use IPC to interact with Parity. 49 | disable = true 50 | 51 | [secretstore] 52 | # You won't be able to encrypt and decrypt secrets. 53 | disable = true 54 | 55 | [ipfs] 56 | # You won't be able to hash-query blockchain data. 57 | enable = false 58 | 59 | [mining] 60 | reseal_min_period = 0 61 | min_gas_price = 1 62 | # Targeting 7500000 gas per block when sealing a new block. 63 | gas_floor_target = "7500000" 64 | # Gas limit will be raised at most by 7500000 gas. 65 | gas_cap = "7500000" 66 | # Parity will reject transactions above 7500000 gas. 67 | tx_gas_limit = "7500000" 68 | 69 | [footprint] 70 | # Significant speed up but unclean exit is unrecoverable (disables DB WAL). 71 | fast_and_loose = true 72 | 73 | [snapshots] 74 | # Disables automatic periodic snapshots. 75 | disable_periodic = true 76 | -------------------------------------------------------------------------------- /parity-instantseal/start.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | RPCPORT=8545 4 | WSPORT=8546 5 | 6 | source ./common_start.sh 7 | 8 | node_start() { 9 | # launch parity in the background 10 | /bin/parity --config /home/parity/instant-seal-config.toml & 11 | NODE_PID=$! 12 | } 13 | 14 | start 15 | -------------------------------------------------------------------------------- /parity-poa/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM parity/parity:v2.3.2 2 | 3 | USER root 4 | 5 | # install all dependencies 6 | RUN apt-get update \ 7 | && apt-get install --yes --no-install-recommends curl \ 8 | && rm -rf /var/lib/apt/lists/* 9 | 10 | COPY ./common_start.sh /common_start.sh 11 | COPY start.sh /start.sh 12 | RUN chmod +x /start.sh 13 | 14 | 15 | WORKDIR / 16 | COPY dev-key.json /home/parity/keys/AuraChain/dev-key.json 17 | COPY aura-chain-spec.json /home/parity/aura-chain-spec.json 18 | COPY aura-config.toml /home/parity/aura-config.toml 19 | RUN echo "" > /home/parity/password 20 | 21 | RUN chown -R parity /home/parity 22 | 23 | ENTRYPOINT [ "/start.sh" ] 24 | 25 | USER parity 26 | 27 | # docker image build --tag parity-dev-node . 28 | # docker container run --rm -it -p 8000:8000 -p 8001:8001 -p 8545:8545 -p 8180:8180 --name parity-dev-node parity-dev-node 29 | -------------------------------------------------------------------------------- /parity-poa/aura-chain-spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "AuraChain", 3 | "engine": { 4 | "authorityRound": { 5 | "params": { 6 | "stepDuration": "1", 7 | "validators" : { "list": [ "0x913da4198e6be1d5f5e4a40d0667f70c0b5430eb" ] } 8 | } 9 | } 10 | }, 11 | "params": { 12 | "gasLimitBoundDivisor": "0x0400", 13 | "accountStartNonce": "0x0", 14 | "maximumExtraDataSize": "0x20", 15 | "minGasLimit": "0x1388", 16 | "networkID" : "0x11", 17 | "registrar" : "0x0000000000000000000000000000000000001337", 18 | "eip150Transition": "0x0", 19 | "eip160Transition": "0x0", 20 | "eip161abcTransition": "0x0", 21 | "eip161dTransition": "0x0", 22 | "eip155Transition": "0x0", 23 | "eip98Transition": "0x7fffffffffffff", 24 | "maxCodeSize": 24576, 25 | "maxCodeSizeTransition": "0x0", 26 | "eip140Transition": "0x0", 27 | "eip211Transition": "0x0", 28 | "eip214Transition": "0x0", 29 | "eip658Transition": "0x0", 30 | "wasmActivationTransition": "0x0", 31 | 32 | "eip145Transition": "0x0", 33 | "eip1014Transition": "0x0", 34 | "eip1052Transition": "0x0" 35 | }, 36 | "genesis": { 37 | "seal": { 38 | "authorityRound": { 39 | "step": "0x0", 40 | "signature": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" 41 | } 42 | }, 43 | "difficulty": "0x20000", 44 | "gasLimit": "0x7270E0" 45 | }, 46 | "accounts": { 47 | "0x0000000000000000000000000000000000000001": { "balance": "1", "builtin": { "name": "ecrecover", "pricing": { "linear": { "base": 3000, "word": 0 } } } }, 48 | "0x0000000000000000000000000000000000000002": { "balance": "1", "builtin": { "name": "sha256", "pricing": { "linear": { "base": 60, "word": 12 } } } }, 49 | "0x0000000000000000000000000000000000000003": { "balance": "1", "builtin": { "name": "ripemd160", "pricing": { "linear": { "base": 600, "word": 120 } } } }, 50 | "0x0000000000000000000000000000000000000004": { "balance": "1", "builtin": { "name": "identity", "pricing": { "linear": { "base": 15, "word": 3 } } } }, 51 | "0xa7d1c6947d5a372747bca5fb449e52a22fd9ff28": { "balance": "0xffffffffffffffffffffffffffffffff" }, 52 | "0x913da4198e6be1d5f5e4a40d0667f70c0b5430eb": { "balance": "0xffffffffffffffffffffffffffffffff"}, 53 | "0xbd355a7e5a7adb23b51f54027e624bfe0e238df6": { "balance": "0xffffffffffffffffffffffffffffffff"}, 54 | "0xe4ec477bc4abd2b18225bb8cba14bf57867f082b": { "balance": "0xffffffffffffffffffffffffffffffff"}, 55 | "0x40075b21ee1fc506207ac45c006d68114dae9967": { "balance": "0xffffffffffffffffffffffffffffffff"}, 56 | "0xd1a8d03498407db8299bc912ffc0196564fe91e9": { "balance": "0xffffffffffffffffffffffffffffffff"}, 57 | "0x5eb11f4561da21e9070b8f664fc70aec62ec29d5": { "balance": "0xffffffffffffffffffffffffffffffff"}, 58 | "0x53c3d9be61c8375b34970801c5bd4d1a87860343": { "balance": "0xffffffffffffffffffffffffffffffff"}, 59 | "0x9d4c6d4b84cd046381923c9bc136d6ff1fe292d9": { "balance": "0xffffffffffffffffffffffffffffffff"} 60 | } 61 | } 62 | -------------------------------------------------------------------------------- /parity-poa/aura-config.toml: -------------------------------------------------------------------------------- 1 | [parity] 2 | # Custom Chain 3 | chain = "/home/parity/aura-chain-spec.json" 4 | # Forces Parity to run even if there are known issues regarding consensus. Not recommended. 5 | no_consensus = true 6 | # Blockchain and settings will be stored in /home/parity. 7 | base_path = "/home/parity" 8 | # Parity databases will be stored in /home/parity/chains. 9 | db_path = "/home/parity/chains" 10 | # Your encrypted private keys will be stored in /home/parity/keys. 11 | keys_path = "/home/parity/keys" 12 | # Parity will not save local transaction queue to disk. 13 | no_persistent_txqueue = true 14 | 15 | [account] 16 | # From: [0x913da4198e6be1d5f5e4a40d0667f70c0b5430eb] you'll be able to send tranasactions without password. 17 | unlock = ["0x913da4198e6be1d5f5e4a40d0667f70c0b5430eb"] 18 | # File at /home/parity/password should contain passwords to unlock your accounts. One password per line. 19 | password = ["/home/parity/password"] 20 | 21 | [network] 22 | # Enable or disable new peers discovery. 23 | discovery = false 24 | # Connect only to reserved nodes. 25 | reserved_only = true 26 | 27 | [rpc] 28 | # JSON-RPC will be listening for connections on IP 0.0.0.0. 29 | interface = "all" 30 | # Allows Cross-Origin Requests from domain '*'. 31 | cors = ["*"] 32 | # Only selected APIs will be exposed over this interface. 33 | apis = ["all"] 34 | # Allow connections only using specified addresses. 35 | hosts = ["all"] 36 | 37 | [websockets] 38 | # JSON-RPC will be listening for connections on IP 0.0.0.0. 39 | interface = "all" 40 | # Allows connecting from Origin '*'. 41 | origins = ["all"] 42 | # Only selected APIs will be exposed over this interface. 43 | apis = ["all"] 44 | # Allow connections only using specified addresses. 45 | hosts = ["all"] 46 | 47 | [ipc] 48 | # You won't be able to use IPC to interact with Parity. 49 | disable = true 50 | 51 | [secretstore] 52 | # You won't be able to encrypt and decrypt secrets. 53 | disable = true 54 | 55 | [ipfs] 56 | # You won't be able to hash-query blockchain data. 57 | enable = false 58 | 59 | [dapps] 60 | # You won't be able to access any web Dapps. 61 | disable = true 62 | 63 | [mining] 64 | engine_signer = "0x913da4198e6be1d5f5e4a40d0667f70c0b5430eb" 65 | min_gas_price = 1 66 | # Targeting 7500000 gas per block when sealing a new block. 67 | gas_floor_target = "7500000" 68 | # Gas limit will be raised at most by 7500000 gas. 69 | gas_cap = "7500000" 70 | # Parity will reject transactions above 7500000 gas. 71 | tx_gas_limit = "7500000" 72 | 73 | [footprint] 74 | # Significant speed up but unclean exit is unrecoverable (disables DB WAL). 75 | fast_and_loose = true 76 | 77 | [snapshots] 78 | # Disables automatic periodic snapshots. 79 | disable_periodic = true 80 | -------------------------------------------------------------------------------- /parity-poa/common_start.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | declare -i NODE_PID 4 | declare -i TAIL_PID 5 | 6 | read -r -d INITIAL_TX_DATA << --EOF 7 | { 8 | "jsonrpc":"2.0", 9 | "method":"eth_sendTransaction", 10 | "params": [{ 11 | "value": "0x0", 12 | "to":"0x0000000000000000000000000000000000000000", 13 | "from":"${UNLOCK_ACCOUNT}", 14 | "data":"0x", 15 | "gasPrice":"0x1" 16 | }], 17 | "id": 1 18 | } 19 | --EOF 20 | 21 | 22 | node_cleanup() { 23 | kill $TAIL_PID $NODE_PID > /dev/null 2>&1 24 | } 25 | 26 | node_wait() { 27 | wait $NODE_PID 28 | } 29 | 30 | trap node_cleanup INT TERM 31 | 32 | eth_call() { 33 | local response 34 | response=$(curl --silent --show-error localhost:$RPCPORT -H "Content-Type: application/json" -X POST --data "${response}" 2>&1) 35 | if [[ \ 36 | "${response}" == *'"error":'* || \ 37 | "${response}" == *'Connection refused'* || \ 38 | "${response}" == *'bad method'* \ 39 | ]] ; then 40 | echo "not ready" 41 | else 42 | echo "ready" 43 | fi 44 | } 45 | 46 | eth_running() { 47 | kill -0 $NODE_PID > /dev/null 2>&1 48 | } 49 | 50 | node_detect_ready() { 51 | while eth_running && [[ $(eth_call $INITIAL_TX_DATA) == "not ready" ]] ; do sleep 1; done 52 | } 53 | 54 | start() { 55 | node_start 56 | 57 | node_detect_ready & 58 | wait $! 59 | 60 | if ! eth_running ; then 61 | >&2 echo "Failed to start Ethereum Node, exiting" 62 | RESULT=1 63 | else 64 | echo -e "\e[32mEthereum Node up and running!\e[0m" 65 | node_wait 66 | RESULT=0 67 | fi 68 | 69 | node_cleanup 70 | exit $RESULT 71 | } 72 | -------------------------------------------------------------------------------- /parity-poa/dev-key.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "21c82dac-65cd-df3f-9750-f36073fcc51a", 3 | "version": 3, 4 | "crypto": { 5 | "cipher": "aes-128-ctr", 6 | "cipherparams": { 7 | "iv": "b821de8c19c6b14ec38353026612049f" 8 | }, 9 | "ciphertext": "0e7cacb926f126344b0a4c606b2fc981fb5ef26867a297e370008dd8a8200e60", 10 | "kdf": "pbkdf2", 11 | "kdfparams": { 12 | "c": 10240, 13 | "dklen": 32, 14 | "prf": "hmac-sha256", 15 | "salt": "a8dd39be8552b82416d7af150f3d25bb1850660e63b512b5bc94d0685e31ff92" 16 | }, 17 | "mac": "4a2153a0a6ac6479e30dd4259f54e047cd872190ca463cfbf1393e171ab6a26a" 18 | }, 19 | "address": "913da4198e6be1d5f5e4a40d0667f70c0b5430eb", 20 | "name": "", 21 | "meta": "{}" 22 | } 23 | -------------------------------------------------------------------------------- /parity-poa/start.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | RPCPORT=8545 4 | WSPORT=8546 5 | 6 | source ./common_start.sh 7 | 8 | node_start() { 9 | # launch parity in the background 10 | /bin/parity --config /home/parity/aura-config.toml & 11 | NODE_PID=$! 12 | } 13 | 14 | start 15 | -------------------------------------------------------------------------------- /rinkeby/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AugurProject/ethereum-nodes/de8615c92e6990e30d616f3791602cfa4a8cde62/rinkeby/.gitignore -------------------------------------------------------------------------------- /rinkeby/install.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | apt update 4 | apt install docker.io 5 | 6 | -------------------------------------------------------------------------------- /rinkeby/start.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | docker run -d -p 8545:8545 -p 8546:8546 -p 30303:30303 -it \ 4 | -v /root/rinkeby:/root/.ethereum ethereum/client-go \ 5 | --fast --rinkeby --cache 16 \ 6 | --wsorigins ‘*’ --ws --wsapi eth,net,web3,personal,txpool --wsport 8546 --wsaddr 0.0.0.0 \ 7 | --rpc --rpcapi eth,net,web3,personal,txpool --rpcaddr 0.0.0.0 --maxpeers 128 8 | 9 | -------------------------------------------------------------------------------- /rockaway/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM ethereum/client-go:latest 2 | ARG mode 3 | ARG name 4 | ARG genesis_file=genesis.json 5 | 6 | RUN apk update \ 7 | && apk add bash curl jq 8 | 9 | COPY ${genesis_file} /geth/genesis.json 10 | RUN geth --datadir /geth/chain --keystore /geth/keys init /geth/genesis.json 11 | ENV ETHEREUM_MODE=${mode} 12 | ENV ETHEREUM_NODE_NAME=${name} 13 | 14 | WORKDIR / 15 | COPY start.sh /start.sh 16 | RUN chmod +x /start.sh 17 | ENTRYPOINT [ "/start.sh" ] 18 | 19 | # docker image build --tag geth-dev-node . 20 | # docker container run --rm -it -p 8545:8545 --name geth-dev-node geth-dev-node 21 | #-p 8545:8545 ethereum/client-go --dev --ws --wsapi eth,net,web3,personal --wsport 8546 --rpc --rpcapi eth,net,web3,personal,miner --rpcaddr 0.0.0.0 --targetgaslimit 7500000 22 | # To connect in a separate terminal: geth attach http://127.0.0.1:8545 23 | -------------------------------------------------------------------------------- /rockaway/bootnode/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM augur/rockaway-geth-node:latest 2 | ARG mode=bootnode 3 | ARG name="Rockaway Bootnode" 4 | -------------------------------------------------------------------------------- /rockaway/build.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | docker image build --tag augur/rockaway-geth-node:latest -f Dockerfile . 3 | docker image build --tag augur/rockaway-bootnode:latest -f bootnode/Dockerfile . 4 | docker image build --tag augur/rockaway-sealer:latest -f sealer/Dockerfile . 5 | -------------------------------------------------------------------------------- /rockaway/cluster.json: -------------------------------------------------------------------------------- 1 | { 2 | "bootnodes": { 3 | "Rockaway Bootnode 1": { 4 | "files": { 5 | "nodekey": "bootnode.key" 6 | } 7 | } 8 | }, 9 | "sealers": { 10 | "Rockaway Sealer 1": { 11 | "unlock": "sealer 1" 12 | }, 13 | "Rockaway Sealer 2": { 14 | "unlock": "sealer 2" 15 | }, 16 | "Rockaway Sealer 3": { 17 | "unlock": "sealer 3" 18 | } 19 | }, 20 | "accounts": { 21 | "sealer 1": { 22 | "files": { 23 | "password": "passwords/e3b5b8576a10356f42c865e1a99cdf78e90fef23.txt", 24 | "key": "keystore/UTC--2017-11-04T00-06-54.236275853Z--e3b5b8576a10356f42c865e1a99cdf78e90fef23" 25 | }, 26 | "address": "e3b5b8576a10356f42c865e1a99cdf78e90fef23", 27 | "prefund": true 28 | }, 29 | "sealer 2": { 30 | "files": { 31 | "password": "passwords/397bafd3de7662027689bca193ffc6ad68ff9316.txt", 32 | "key": "UTC--2017-11-04T00-07-03.829975414Z--397bafd3de7662027689bca193ffc6ad68ff9316" 33 | }, 34 | "address": "397bafd3de7662027689bca193ffc6ad68ff9316", 35 | "prefund": true 36 | }, 37 | "sealer 3": { 38 | "files": { 39 | "password": "passwords/45fe5396232c23f032d23c8d954df12561c80bd9.txt", 40 | "key": "UTC--2017-11-06T23-00-27.383457080Z--45fe5396232c23f032d23c8d954df12561c80bd9" 41 | }, 42 | "address": "45fe5396232c23f032d23c8d954df12561c80bd9", 43 | "prefund": true 44 | }, 45 | "publisher": { 46 | "files": { 47 | "password": "passwords/19ee5fe99219d0b3e3e79b4688dc75a3d5d0982f.txt", 48 | "key": "UTC--2017-11-06T23-10-41.004675460Z--19ee5fe99219d0b3e3e79b4688dc75a3d5d0982f" 49 | }, 50 | "address": "19ee5fe99219d0b3e3e79b4688dc75a3d5d0982f", 51 | "prefund": true 52 | } 53 | } 54 | 55 | } 56 | 57 | -------------------------------------------------------------------------------- /rockaway/genesis.json: -------------------------------------------------------------------------------- 1 | { 2 | "config": { 3 | "chainId": 17185, 4 | "homesteadBlock": 1, 5 | "eip150Block": 2, 6 | "eip150Hash": "0x0000000000000000000000000000000000000000000000000000000000000000", 7 | "eip155Block": 3, 8 | "eip158Block": 3, 9 | "byzantiumBlock": 4, 10 | "clique": { 11 | "period": 15, 12 | "epoch": 30000 13 | } 14 | }, 15 | "nonce": "0x0", 16 | "timestamp": "0x5a01088a", 17 | "extraData": "0x446973636f2d506172726f742121210000000000000000000000000000000000397bafd3de7662027689bca193ffc6ad68ff931645fe5396232c23f032d23c8d954df12561c80bd9e3b5b8576a10356f42c865e1a99cdf78e90fef230000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", 18 | "gasLimit": "0x663BE0", 19 | "difficulty": "0x1", 20 | "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", 21 | "coinbase": "0x0000000000000000000000000000000000000000", 22 | "alloc": { 23 | "0000000000000000000000000000000000000000": { 24 | "balance": "0x1" 25 | }, 26 | "0000000000000000000000000000000000000001": { 27 | "balance": "0x1" 28 | }, 29 | "0000000000000000000000000000000000000002": { 30 | "balance": "0x1" 31 | }, 32 | "0000000000000000000000000000000000000003": { 33 | "balance": "0x1" 34 | }, 35 | "0000000000000000000000000000000000000004": { 36 | "balance": "0x1" 37 | }, 38 | "0000000000000000000000000000000000000005": { 39 | "balance": "0x1" 40 | }, 41 | "0000000000000000000000000000000000000006": { 42 | "balance": "0x1" 43 | }, 44 | "0000000000000000000000000000000000000007": { 45 | "balance": "0x1" 46 | }, 47 | "0000000000000000000000000000000000000008": { 48 | "balance": "0x1" 49 | }, 50 | "0000000000000000000000000000000000000009": { 51 | "balance": "0x1" 52 | }, 53 | "000000000000000000000000000000000000000a": { 54 | "balance": "0x1" 55 | }, 56 | "000000000000000000000000000000000000000b": { 57 | "balance": "0x1" 58 | }, 59 | "000000000000000000000000000000000000000c": { 60 | "balance": "0x1" 61 | }, 62 | "000000000000000000000000000000000000000d": { 63 | "balance": "0x1" 64 | }, 65 | "000000000000000000000000000000000000000e": { 66 | "balance": "0x1" 67 | }, 68 | "000000000000000000000000000000000000000f": { 69 | "balance": "0x1" 70 | }, 71 | "0000000000000000000000000000000000000010": { 72 | "balance": "0x1" 73 | }, 74 | "0000000000000000000000000000000000000011": { 75 | "balance": "0x1" 76 | }, 77 | "0000000000000000000000000000000000000012": { 78 | "balance": "0x1" 79 | }, 80 | "0000000000000000000000000000000000000013": { 81 | "balance": "0x1" 82 | }, 83 | "0000000000000000000000000000000000000014": { 84 | "balance": "0x1" 85 | }, 86 | "0000000000000000000000000000000000000015": { 87 | "balance": "0x1" 88 | }, 89 | "0000000000000000000000000000000000000016": { 90 | "balance": "0x1" 91 | }, 92 | "0000000000000000000000000000000000000017": { 93 | "balance": "0x1" 94 | }, 95 | "0000000000000000000000000000000000000018": { 96 | "balance": "0x1" 97 | }, 98 | "0000000000000000000000000000000000000019": { 99 | "balance": "0x1" 100 | }, 101 | "000000000000000000000000000000000000001a": { 102 | "balance": "0x1" 103 | }, 104 | "000000000000000000000000000000000000001b": { 105 | "balance": "0x1" 106 | }, 107 | "000000000000000000000000000000000000001c": { 108 | "balance": "0x1" 109 | }, 110 | "000000000000000000000000000000000000001d": { 111 | "balance": "0x1" 112 | }, 113 | "000000000000000000000000000000000000001e": { 114 | "balance": "0x1" 115 | }, 116 | "000000000000000000000000000000000000001f": { 117 | "balance": "0x1" 118 | }, 119 | "0000000000000000000000000000000000000020": { 120 | "balance": "0x1" 121 | }, 122 | "0000000000000000000000000000000000000021": { 123 | "balance": "0x1" 124 | }, 125 | "0000000000000000000000000000000000000022": { 126 | "balance": "0x1" 127 | }, 128 | "0000000000000000000000000000000000000023": { 129 | "balance": "0x1" 130 | }, 131 | "0000000000000000000000000000000000000024": { 132 | "balance": "0x1" 133 | }, 134 | "0000000000000000000000000000000000000025": { 135 | "balance": "0x1" 136 | }, 137 | "0000000000000000000000000000000000000026": { 138 | "balance": "0x1" 139 | }, 140 | "0000000000000000000000000000000000000027": { 141 | "balance": "0x1" 142 | }, 143 | "0000000000000000000000000000000000000028": { 144 | "balance": "0x1" 145 | }, 146 | "0000000000000000000000000000000000000029": { 147 | "balance": "0x1" 148 | }, 149 | "000000000000000000000000000000000000002a": { 150 | "balance": "0x1" 151 | }, 152 | "000000000000000000000000000000000000002b": { 153 | "balance": "0x1" 154 | }, 155 | "000000000000000000000000000000000000002c": { 156 | "balance": "0x1" 157 | }, 158 | "000000000000000000000000000000000000002d": { 159 | "balance": "0x1" 160 | }, 161 | "000000000000000000000000000000000000002e": { 162 | "balance": "0x1" 163 | }, 164 | "000000000000000000000000000000000000002f": { 165 | "balance": "0x1" 166 | }, 167 | "0000000000000000000000000000000000000030": { 168 | "balance": "0x1" 169 | }, 170 | "0000000000000000000000000000000000000031": { 171 | "balance": "0x1" 172 | }, 173 | "0000000000000000000000000000000000000032": { 174 | "balance": "0x1" 175 | }, 176 | "0000000000000000000000000000000000000033": { 177 | "balance": "0x1" 178 | }, 179 | "0000000000000000000000000000000000000034": { 180 | "balance": "0x1" 181 | }, 182 | "0000000000000000000000000000000000000035": { 183 | "balance": "0x1" 184 | }, 185 | "0000000000000000000000000000000000000036": { 186 | "balance": "0x1" 187 | }, 188 | "0000000000000000000000000000000000000037": { 189 | "balance": "0x1" 190 | }, 191 | "0000000000000000000000000000000000000038": { 192 | "balance": "0x1" 193 | }, 194 | "0000000000000000000000000000000000000039": { 195 | "balance": "0x1" 196 | }, 197 | "000000000000000000000000000000000000003a": { 198 | "balance": "0x1" 199 | }, 200 | "000000000000000000000000000000000000003b": { 201 | "balance": "0x1" 202 | }, 203 | "000000000000000000000000000000000000003c": { 204 | "balance": "0x1" 205 | }, 206 | "000000000000000000000000000000000000003d": { 207 | "balance": "0x1" 208 | }, 209 | "000000000000000000000000000000000000003e": { 210 | "balance": "0x1" 211 | }, 212 | "000000000000000000000000000000000000003f": { 213 | "balance": "0x1" 214 | }, 215 | "0000000000000000000000000000000000000040": { 216 | "balance": "0x1" 217 | }, 218 | "0000000000000000000000000000000000000041": { 219 | "balance": "0x1" 220 | }, 221 | "0000000000000000000000000000000000000042": { 222 | "balance": "0x1" 223 | }, 224 | "0000000000000000000000000000000000000043": { 225 | "balance": "0x1" 226 | }, 227 | "0000000000000000000000000000000000000044": { 228 | "balance": "0x1" 229 | }, 230 | "0000000000000000000000000000000000000045": { 231 | "balance": "0x1" 232 | }, 233 | "0000000000000000000000000000000000000046": { 234 | "balance": "0x1" 235 | }, 236 | "0000000000000000000000000000000000000047": { 237 | "balance": "0x1" 238 | }, 239 | "0000000000000000000000000000000000000048": { 240 | "balance": "0x1" 241 | }, 242 | "0000000000000000000000000000000000000049": { 243 | "balance": "0x1" 244 | }, 245 | "000000000000000000000000000000000000004a": { 246 | "balance": "0x1" 247 | }, 248 | "000000000000000000000000000000000000004b": { 249 | "balance": "0x1" 250 | }, 251 | "000000000000000000000000000000000000004c": { 252 | "balance": "0x1" 253 | }, 254 | "000000000000000000000000000000000000004d": { 255 | "balance": "0x1" 256 | }, 257 | "000000000000000000000000000000000000004e": { 258 | "balance": "0x1" 259 | }, 260 | "000000000000000000000000000000000000004f": { 261 | "balance": "0x1" 262 | }, 263 | "0000000000000000000000000000000000000050": { 264 | "balance": "0x1" 265 | }, 266 | "0000000000000000000000000000000000000051": { 267 | "balance": "0x1" 268 | }, 269 | "0000000000000000000000000000000000000052": { 270 | "balance": "0x1" 271 | }, 272 | "0000000000000000000000000000000000000053": { 273 | "balance": "0x1" 274 | }, 275 | "0000000000000000000000000000000000000054": { 276 | "balance": "0x1" 277 | }, 278 | "0000000000000000000000000000000000000055": { 279 | "balance": "0x1" 280 | }, 281 | "0000000000000000000000000000000000000056": { 282 | "balance": "0x1" 283 | }, 284 | "0000000000000000000000000000000000000057": { 285 | "balance": "0x1" 286 | }, 287 | "0000000000000000000000000000000000000058": { 288 | "balance": "0x1" 289 | }, 290 | "0000000000000000000000000000000000000059": { 291 | "balance": "0x1" 292 | }, 293 | "000000000000000000000000000000000000005a": { 294 | "balance": "0x1" 295 | }, 296 | "000000000000000000000000000000000000005b": { 297 | "balance": "0x1" 298 | }, 299 | "000000000000000000000000000000000000005c": { 300 | "balance": "0x1" 301 | }, 302 | "000000000000000000000000000000000000005d": { 303 | "balance": "0x1" 304 | }, 305 | "000000000000000000000000000000000000005e": { 306 | "balance": "0x1" 307 | }, 308 | "000000000000000000000000000000000000005f": { 309 | "balance": "0x1" 310 | }, 311 | "0000000000000000000000000000000000000060": { 312 | "balance": "0x1" 313 | }, 314 | "0000000000000000000000000000000000000061": { 315 | "balance": "0x1" 316 | }, 317 | "0000000000000000000000000000000000000062": { 318 | "balance": "0x1" 319 | }, 320 | "0000000000000000000000000000000000000063": { 321 | "balance": "0x1" 322 | }, 323 | "0000000000000000000000000000000000000064": { 324 | "balance": "0x1" 325 | }, 326 | "0000000000000000000000000000000000000065": { 327 | "balance": "0x1" 328 | }, 329 | "0000000000000000000000000000000000000066": { 330 | "balance": "0x1" 331 | }, 332 | "0000000000000000000000000000000000000067": { 333 | "balance": "0x1" 334 | }, 335 | "0000000000000000000000000000000000000068": { 336 | "balance": "0x1" 337 | }, 338 | "0000000000000000000000000000000000000069": { 339 | "balance": "0x1" 340 | }, 341 | "000000000000000000000000000000000000006a": { 342 | "balance": "0x1" 343 | }, 344 | "000000000000000000000000000000000000006b": { 345 | "balance": "0x1" 346 | }, 347 | "000000000000000000000000000000000000006c": { 348 | "balance": "0x1" 349 | }, 350 | "000000000000000000000000000000000000006d": { 351 | "balance": "0x1" 352 | }, 353 | "000000000000000000000000000000000000006e": { 354 | "balance": "0x1" 355 | }, 356 | "000000000000000000000000000000000000006f": { 357 | "balance": "0x1" 358 | }, 359 | "0000000000000000000000000000000000000070": { 360 | "balance": "0x1" 361 | }, 362 | "0000000000000000000000000000000000000071": { 363 | "balance": "0x1" 364 | }, 365 | "0000000000000000000000000000000000000072": { 366 | "balance": "0x1" 367 | }, 368 | "0000000000000000000000000000000000000073": { 369 | "balance": "0x1" 370 | }, 371 | "0000000000000000000000000000000000000074": { 372 | "balance": "0x1" 373 | }, 374 | "0000000000000000000000000000000000000075": { 375 | "balance": "0x1" 376 | }, 377 | "0000000000000000000000000000000000000076": { 378 | "balance": "0x1" 379 | }, 380 | "0000000000000000000000000000000000000077": { 381 | "balance": "0x1" 382 | }, 383 | "0000000000000000000000000000000000000078": { 384 | "balance": "0x1" 385 | }, 386 | "0000000000000000000000000000000000000079": { 387 | "balance": "0x1" 388 | }, 389 | "000000000000000000000000000000000000007a": { 390 | "balance": "0x1" 391 | }, 392 | "000000000000000000000000000000000000007b": { 393 | "balance": "0x1" 394 | }, 395 | "000000000000000000000000000000000000007c": { 396 | "balance": "0x1" 397 | }, 398 | "000000000000000000000000000000000000007d": { 399 | "balance": "0x1" 400 | }, 401 | "000000000000000000000000000000000000007e": { 402 | "balance": "0x1" 403 | }, 404 | "000000000000000000000000000000000000007f": { 405 | "balance": "0x1" 406 | }, 407 | "0000000000000000000000000000000000000080": { 408 | "balance": "0x1" 409 | }, 410 | "0000000000000000000000000000000000000081": { 411 | "balance": "0x1" 412 | }, 413 | "0000000000000000000000000000000000000082": { 414 | "balance": "0x1" 415 | }, 416 | "0000000000000000000000000000000000000083": { 417 | "balance": "0x1" 418 | }, 419 | "0000000000000000000000000000000000000084": { 420 | "balance": "0x1" 421 | }, 422 | "0000000000000000000000000000000000000085": { 423 | "balance": "0x1" 424 | }, 425 | "0000000000000000000000000000000000000086": { 426 | "balance": "0x1" 427 | }, 428 | "0000000000000000000000000000000000000087": { 429 | "balance": "0x1" 430 | }, 431 | "0000000000000000000000000000000000000088": { 432 | "balance": "0x1" 433 | }, 434 | "0000000000000000000000000000000000000089": { 435 | "balance": "0x1" 436 | }, 437 | "000000000000000000000000000000000000008a": { 438 | "balance": "0x1" 439 | }, 440 | "000000000000000000000000000000000000008b": { 441 | "balance": "0x1" 442 | }, 443 | "000000000000000000000000000000000000008c": { 444 | "balance": "0x1" 445 | }, 446 | "000000000000000000000000000000000000008d": { 447 | "balance": "0x1" 448 | }, 449 | "000000000000000000000000000000000000008e": { 450 | "balance": "0x1" 451 | }, 452 | "000000000000000000000000000000000000008f": { 453 | "balance": "0x1" 454 | }, 455 | "0000000000000000000000000000000000000090": { 456 | "balance": "0x1" 457 | }, 458 | "0000000000000000000000000000000000000091": { 459 | "balance": "0x1" 460 | }, 461 | "0000000000000000000000000000000000000092": { 462 | "balance": "0x1" 463 | }, 464 | "0000000000000000000000000000000000000093": { 465 | "balance": "0x1" 466 | }, 467 | "0000000000000000000000000000000000000094": { 468 | "balance": "0x1" 469 | }, 470 | "0000000000000000000000000000000000000095": { 471 | "balance": "0x1" 472 | }, 473 | "0000000000000000000000000000000000000096": { 474 | "balance": "0x1" 475 | }, 476 | "0000000000000000000000000000000000000097": { 477 | "balance": "0x1" 478 | }, 479 | "0000000000000000000000000000000000000098": { 480 | "balance": "0x1" 481 | }, 482 | "0000000000000000000000000000000000000099": { 483 | "balance": "0x1" 484 | }, 485 | "000000000000000000000000000000000000009a": { 486 | "balance": "0x1" 487 | }, 488 | "000000000000000000000000000000000000009b": { 489 | "balance": "0x1" 490 | }, 491 | "000000000000000000000000000000000000009c": { 492 | "balance": "0x1" 493 | }, 494 | "000000000000000000000000000000000000009d": { 495 | "balance": "0x1" 496 | }, 497 | "000000000000000000000000000000000000009e": { 498 | "balance": "0x1" 499 | }, 500 | "000000000000000000000000000000000000009f": { 501 | "balance": "0x1" 502 | }, 503 | "00000000000000000000000000000000000000a0": { 504 | "balance": "0x1" 505 | }, 506 | "00000000000000000000000000000000000000a1": { 507 | "balance": "0x1" 508 | }, 509 | "00000000000000000000000000000000000000a2": { 510 | "balance": "0x1" 511 | }, 512 | "00000000000000000000000000000000000000a3": { 513 | "balance": "0x1" 514 | }, 515 | "00000000000000000000000000000000000000a4": { 516 | "balance": "0x1" 517 | }, 518 | "00000000000000000000000000000000000000a5": { 519 | "balance": "0x1" 520 | }, 521 | "00000000000000000000000000000000000000a6": { 522 | "balance": "0x1" 523 | }, 524 | "00000000000000000000000000000000000000a7": { 525 | "balance": "0x1" 526 | }, 527 | "00000000000000000000000000000000000000a8": { 528 | "balance": "0x1" 529 | }, 530 | "00000000000000000000000000000000000000a9": { 531 | "balance": "0x1" 532 | }, 533 | "00000000000000000000000000000000000000aa": { 534 | "balance": "0x1" 535 | }, 536 | "00000000000000000000000000000000000000ab": { 537 | "balance": "0x1" 538 | }, 539 | "00000000000000000000000000000000000000ac": { 540 | "balance": "0x1" 541 | }, 542 | "00000000000000000000000000000000000000ad": { 543 | "balance": "0x1" 544 | }, 545 | "00000000000000000000000000000000000000ae": { 546 | "balance": "0x1" 547 | }, 548 | "00000000000000000000000000000000000000af": { 549 | "balance": "0x1" 550 | }, 551 | "00000000000000000000000000000000000000b0": { 552 | "balance": "0x1" 553 | }, 554 | "00000000000000000000000000000000000000b1": { 555 | "balance": "0x1" 556 | }, 557 | "00000000000000000000000000000000000000b2": { 558 | "balance": "0x1" 559 | }, 560 | "00000000000000000000000000000000000000b3": { 561 | "balance": "0x1" 562 | }, 563 | "00000000000000000000000000000000000000b4": { 564 | "balance": "0x1" 565 | }, 566 | "00000000000000000000000000000000000000b5": { 567 | "balance": "0x1" 568 | }, 569 | "00000000000000000000000000000000000000b6": { 570 | "balance": "0x1" 571 | }, 572 | "00000000000000000000000000000000000000b7": { 573 | "balance": "0x1" 574 | }, 575 | "00000000000000000000000000000000000000b8": { 576 | "balance": "0x1" 577 | }, 578 | "00000000000000000000000000000000000000b9": { 579 | "balance": "0x1" 580 | }, 581 | "00000000000000000000000000000000000000ba": { 582 | "balance": "0x1" 583 | }, 584 | "00000000000000000000000000000000000000bb": { 585 | "balance": "0x1" 586 | }, 587 | "00000000000000000000000000000000000000bc": { 588 | "balance": "0x1" 589 | }, 590 | "00000000000000000000000000000000000000bd": { 591 | "balance": "0x1" 592 | }, 593 | "00000000000000000000000000000000000000be": { 594 | "balance": "0x1" 595 | }, 596 | "00000000000000000000000000000000000000bf": { 597 | "balance": "0x1" 598 | }, 599 | "00000000000000000000000000000000000000c0": { 600 | "balance": "0x1" 601 | }, 602 | "00000000000000000000000000000000000000c1": { 603 | "balance": "0x1" 604 | }, 605 | "00000000000000000000000000000000000000c2": { 606 | "balance": "0x1" 607 | }, 608 | "00000000000000000000000000000000000000c3": { 609 | "balance": "0x1" 610 | }, 611 | "00000000000000000000000000000000000000c4": { 612 | "balance": "0x1" 613 | }, 614 | "00000000000000000000000000000000000000c5": { 615 | "balance": "0x1" 616 | }, 617 | "00000000000000000000000000000000000000c6": { 618 | "balance": "0x1" 619 | }, 620 | "00000000000000000000000000000000000000c7": { 621 | "balance": "0x1" 622 | }, 623 | "00000000000000000000000000000000000000c8": { 624 | "balance": "0x1" 625 | }, 626 | "00000000000000000000000000000000000000c9": { 627 | "balance": "0x1" 628 | }, 629 | "00000000000000000000000000000000000000ca": { 630 | "balance": "0x1" 631 | }, 632 | "00000000000000000000000000000000000000cb": { 633 | "balance": "0x1" 634 | }, 635 | "00000000000000000000000000000000000000cc": { 636 | "balance": "0x1" 637 | }, 638 | "00000000000000000000000000000000000000cd": { 639 | "balance": "0x1" 640 | }, 641 | "00000000000000000000000000000000000000ce": { 642 | "balance": "0x1" 643 | }, 644 | "00000000000000000000000000000000000000cf": { 645 | "balance": "0x1" 646 | }, 647 | "00000000000000000000000000000000000000d0": { 648 | "balance": "0x1" 649 | }, 650 | "00000000000000000000000000000000000000d1": { 651 | "balance": "0x1" 652 | }, 653 | "00000000000000000000000000000000000000d2": { 654 | "balance": "0x1" 655 | }, 656 | "00000000000000000000000000000000000000d3": { 657 | "balance": "0x1" 658 | }, 659 | "00000000000000000000000000000000000000d4": { 660 | "balance": "0x1" 661 | }, 662 | "00000000000000000000000000000000000000d5": { 663 | "balance": "0x1" 664 | }, 665 | "00000000000000000000000000000000000000d6": { 666 | "balance": "0x1" 667 | }, 668 | "00000000000000000000000000000000000000d7": { 669 | "balance": "0x1" 670 | }, 671 | "00000000000000000000000000000000000000d8": { 672 | "balance": "0x1" 673 | }, 674 | "00000000000000000000000000000000000000d9": { 675 | "balance": "0x1" 676 | }, 677 | "00000000000000000000000000000000000000da": { 678 | "balance": "0x1" 679 | }, 680 | "00000000000000000000000000000000000000db": { 681 | "balance": "0x1" 682 | }, 683 | "00000000000000000000000000000000000000dc": { 684 | "balance": "0x1" 685 | }, 686 | "00000000000000000000000000000000000000dd": { 687 | "balance": "0x1" 688 | }, 689 | "00000000000000000000000000000000000000de": { 690 | "balance": "0x1" 691 | }, 692 | "00000000000000000000000000000000000000df": { 693 | "balance": "0x1" 694 | }, 695 | "00000000000000000000000000000000000000e0": { 696 | "balance": "0x1" 697 | }, 698 | "00000000000000000000000000000000000000e1": { 699 | "balance": "0x1" 700 | }, 701 | "00000000000000000000000000000000000000e2": { 702 | "balance": "0x1" 703 | }, 704 | "00000000000000000000000000000000000000e3": { 705 | "balance": "0x1" 706 | }, 707 | "00000000000000000000000000000000000000e4": { 708 | "balance": "0x1" 709 | }, 710 | "00000000000000000000000000000000000000e5": { 711 | "balance": "0x1" 712 | }, 713 | "00000000000000000000000000000000000000e6": { 714 | "balance": "0x1" 715 | }, 716 | "00000000000000000000000000000000000000e7": { 717 | "balance": "0x1" 718 | }, 719 | "00000000000000000000000000000000000000e8": { 720 | "balance": "0x1" 721 | }, 722 | "00000000000000000000000000000000000000e9": { 723 | "balance": "0x1" 724 | }, 725 | "00000000000000000000000000000000000000ea": { 726 | "balance": "0x1" 727 | }, 728 | "00000000000000000000000000000000000000eb": { 729 | "balance": "0x1" 730 | }, 731 | "00000000000000000000000000000000000000ec": { 732 | "balance": "0x1" 733 | }, 734 | "00000000000000000000000000000000000000ed": { 735 | "balance": "0x1" 736 | }, 737 | "00000000000000000000000000000000000000ee": { 738 | "balance": "0x1" 739 | }, 740 | "00000000000000000000000000000000000000ef": { 741 | "balance": "0x1" 742 | }, 743 | "00000000000000000000000000000000000000f0": { 744 | "balance": "0x1" 745 | }, 746 | "00000000000000000000000000000000000000f1": { 747 | "balance": "0x1" 748 | }, 749 | "00000000000000000000000000000000000000f2": { 750 | "balance": "0x1" 751 | }, 752 | "00000000000000000000000000000000000000f3": { 753 | "balance": "0x1" 754 | }, 755 | "00000000000000000000000000000000000000f4": { 756 | "balance": "0x1" 757 | }, 758 | "00000000000000000000000000000000000000f5": { 759 | "balance": "0x1" 760 | }, 761 | "00000000000000000000000000000000000000f6": { 762 | "balance": "0x1" 763 | }, 764 | "00000000000000000000000000000000000000f7": { 765 | "balance": "0x1" 766 | }, 767 | "00000000000000000000000000000000000000f8": { 768 | "balance": "0x1" 769 | }, 770 | "00000000000000000000000000000000000000f9": { 771 | "balance": "0x1" 772 | }, 773 | "00000000000000000000000000000000000000fa": { 774 | "balance": "0x1" 775 | }, 776 | "00000000000000000000000000000000000000fb": { 777 | "balance": "0x1" 778 | }, 779 | "00000000000000000000000000000000000000fc": { 780 | "balance": "0x1" 781 | }, 782 | "00000000000000000000000000000000000000fd": { 783 | "balance": "0x1" 784 | }, 785 | "00000000000000000000000000000000000000fe": { 786 | "balance": "0x1" 787 | }, 788 | "00000000000000000000000000000000000000ff": { 789 | "balance": "0x1" 790 | }, 791 | "19ee5fe99219d0b3e3e79b4688dc75a3d5d0982f": { 792 | "balance": "0x000000000000000000000000000000000000002000000000000000000000000" 793 | }, 794 | "bd355a7e5a7adb23b51f54027e624bfe0e238df6": { 795 | "balance": "0x000000000000000000000000000000000000002000000000000000000000000" 796 | }, 797 | "e4ec477bc4abd2b18225bb8cba14bf57867f082b": { 798 | "balance": "0x000000000000000000000000000000000000002000000000000000000000000" 799 | }, 800 | "40075b21ee1fc506207ac45c006d68114dae9967": { 801 | "balance": "0x000000000000000000000000000000000000002000000000000000000000000" 802 | }, 803 | "d1a8d03498407db8299bc912ffc0196564fe91e9": { 804 | "balance": "0x000000000000000000000000000000000000002000000000000000000000000" 805 | }, 806 | "5eb11f4561da21e9070b8f664fc70aec62ec29d5": { 807 | "balance": "0x000000000000000000000000000000000000002000000000000000000000000" 808 | }, 809 | "53c3d9be61c8375b34970801c5bd4d1a87860343": { 810 | "balance": "0x000000000000000000000000000000000000002000000000000000000000000" 811 | }, 812 | "9d4c6d4b84cd046381923c9bc136d6ff1fe292d9": { 813 | "balance": "0x000000000000000000000000000000000000002000000000000000000000000" 814 | } 815 | }, 816 | "number": "0x0", 817 | "gasUsed": "0x0", 818 | "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000" 819 | } 820 | -------------------------------------------------------------------------------- /rockaway/genesis.template.json: -------------------------------------------------------------------------------- 1 | { 2 | "config": { 3 | "chainId": .chainId, 4 | "homesteadBlock": 1, 5 | "eip150Block": 2, 6 | "eip150Hash": "0x0000000000000000000000000000000000000000000000000000000000000000", 7 | "eip155Block": 3, 8 | "eip158Block": 3, 9 | "byzantiumBlock": 4, 10 | "clique": { 11 | "period": .period, 12 | "epoch": 30000 13 | } 14 | }, 15 | "nonce": "0x0", 16 | "timestamp": "TIMESTAMP", 17 | "extraData": "0x0000000000000000000000000000000000000000000000000000000000000000" + .extradata + "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", 18 | "gasLimit": .gaslimit, 19 | "difficulty": "0x1", 20 | "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", 21 | "coinbase": "0x0000000000000000000000000000000000000000", 22 | "alloc": { 23 | "0000000000000000000000000000000000000000": { 24 | "balance": "0x1" 25 | }, 26 | "0000000000000000000000000000000000000001": { 27 | "balance": "0x1" 28 | }, 29 | "0000000000000000000000000000000000000002": { 30 | "balance": "0x1" 31 | }, 32 | "0000000000000000000000000000000000000003": { 33 | "balance": "0x1" 34 | }, 35 | "0000000000000000000000000000000000000004": { 36 | "balance": "0x1" 37 | }, 38 | "0000000000000000000000000000000000000005": { 39 | "balance": "0x1" 40 | }, 41 | "0000000000000000000000000000000000000006": { 42 | "balance": "0x1" 43 | }, 44 | "0000000000000000000000000000000000000007": { 45 | "balance": "0x1" 46 | }, 47 | "0000000000000000000000000000000000000008": { 48 | "balance": "0x1" 49 | }, 50 | "0000000000000000000000000000000000000009": { 51 | "balance": "0x1" 52 | }, 53 | "000000000000000000000000000000000000000a": { 54 | "balance": "0x1" 55 | }, 56 | "000000000000000000000000000000000000000b": { 57 | "balance": "0x1" 58 | }, 59 | "000000000000000000000000000000000000000c": { 60 | "balance": "0x1" 61 | }, 62 | "000000000000000000000000000000000000000d": { 63 | "balance": "0x1" 64 | }, 65 | "000000000000000000000000000000000000000e": { 66 | "balance": "0x1" 67 | }, 68 | "000000000000000000000000000000000000000f": { 69 | "balance": "0x1" 70 | }, 71 | "0000000000000000000000000000000000000010": { 72 | "balance": "0x1" 73 | }, 74 | "0000000000000000000000000000000000000011": { 75 | "balance": "0x1" 76 | }, 77 | "0000000000000000000000000000000000000012": { 78 | "balance": "0x1" 79 | }, 80 | "0000000000000000000000000000000000000013": { 81 | "balance": "0x1" 82 | }, 83 | "0000000000000000000000000000000000000014": { 84 | "balance": "0x1" 85 | }, 86 | "0000000000000000000000000000000000000015": { 87 | "balance": "0x1" 88 | }, 89 | "0000000000000000000000000000000000000016": { 90 | "balance": "0x1" 91 | }, 92 | "0000000000000000000000000000000000000017": { 93 | "balance": "0x1" 94 | }, 95 | "0000000000000000000000000000000000000018": { 96 | "balance": "0x1" 97 | }, 98 | "0000000000000000000000000000000000000019": { 99 | "balance": "0x1" 100 | }, 101 | "000000000000000000000000000000000000001a": { 102 | "balance": "0x1" 103 | }, 104 | "000000000000000000000000000000000000001b": { 105 | "balance": "0x1" 106 | }, 107 | "000000000000000000000000000000000000001c": { 108 | "balance": "0x1" 109 | }, 110 | "000000000000000000000000000000000000001d": { 111 | "balance": "0x1" 112 | }, 113 | "000000000000000000000000000000000000001e": { 114 | "balance": "0x1" 115 | }, 116 | "000000000000000000000000000000000000001f": { 117 | "balance": "0x1" 118 | }, 119 | "0000000000000000000000000000000000000020": { 120 | "balance": "0x1" 121 | }, 122 | "0000000000000000000000000000000000000021": { 123 | "balance": "0x1" 124 | }, 125 | "0000000000000000000000000000000000000022": { 126 | "balance": "0x1" 127 | }, 128 | "0000000000000000000000000000000000000023": { 129 | "balance": "0x1" 130 | }, 131 | "0000000000000000000000000000000000000024": { 132 | "balance": "0x1" 133 | }, 134 | "0000000000000000000000000000000000000025": { 135 | "balance": "0x1" 136 | }, 137 | "0000000000000000000000000000000000000026": { 138 | "balance": "0x1" 139 | }, 140 | "0000000000000000000000000000000000000027": { 141 | "balance": "0x1" 142 | }, 143 | "0000000000000000000000000000000000000028": { 144 | "balance": "0x1" 145 | }, 146 | "0000000000000000000000000000000000000029": { 147 | "balance": "0x1" 148 | }, 149 | "000000000000000000000000000000000000002a": { 150 | "balance": "0x1" 151 | }, 152 | "000000000000000000000000000000000000002b": { 153 | "balance": "0x1" 154 | }, 155 | "000000000000000000000000000000000000002c": { 156 | "balance": "0x1" 157 | }, 158 | "000000000000000000000000000000000000002d": { 159 | "balance": "0x1" 160 | }, 161 | "000000000000000000000000000000000000002e": { 162 | "balance": "0x1" 163 | }, 164 | "000000000000000000000000000000000000002f": { 165 | "balance": "0x1" 166 | }, 167 | "0000000000000000000000000000000000000030": { 168 | "balance": "0x1" 169 | }, 170 | "0000000000000000000000000000000000000031": { 171 | "balance": "0x1" 172 | }, 173 | "0000000000000000000000000000000000000032": { 174 | "balance": "0x1" 175 | }, 176 | "0000000000000000000000000000000000000033": { 177 | "balance": "0x1" 178 | }, 179 | "0000000000000000000000000000000000000034": { 180 | "balance": "0x1" 181 | }, 182 | "0000000000000000000000000000000000000035": { 183 | "balance": "0x1" 184 | }, 185 | "0000000000000000000000000000000000000036": { 186 | "balance": "0x1" 187 | }, 188 | "0000000000000000000000000000000000000037": { 189 | "balance": "0x1" 190 | }, 191 | "0000000000000000000000000000000000000038": { 192 | "balance": "0x1" 193 | }, 194 | "0000000000000000000000000000000000000039": { 195 | "balance": "0x1" 196 | }, 197 | "000000000000000000000000000000000000003a": { 198 | "balance": "0x1" 199 | }, 200 | "000000000000000000000000000000000000003b": { 201 | "balance": "0x1" 202 | }, 203 | "000000000000000000000000000000000000003c": { 204 | "balance": "0x1" 205 | }, 206 | "000000000000000000000000000000000000003d": { 207 | "balance": "0x1" 208 | }, 209 | "000000000000000000000000000000000000003e": { 210 | "balance": "0x1" 211 | }, 212 | "000000000000000000000000000000000000003f": { 213 | "balance": "0x1" 214 | }, 215 | "0000000000000000000000000000000000000040": { 216 | "balance": "0x1" 217 | }, 218 | "0000000000000000000000000000000000000041": { 219 | "balance": "0x1" 220 | }, 221 | "0000000000000000000000000000000000000042": { 222 | "balance": "0x1" 223 | }, 224 | "0000000000000000000000000000000000000043": { 225 | "balance": "0x1" 226 | }, 227 | "0000000000000000000000000000000000000044": { 228 | "balance": "0x1" 229 | }, 230 | "0000000000000000000000000000000000000045": { 231 | "balance": "0x1" 232 | }, 233 | "0000000000000000000000000000000000000046": { 234 | "balance": "0x1" 235 | }, 236 | "0000000000000000000000000000000000000047": { 237 | "balance": "0x1" 238 | }, 239 | "0000000000000000000000000000000000000048": { 240 | "balance": "0x1" 241 | }, 242 | "0000000000000000000000000000000000000049": { 243 | "balance": "0x1" 244 | }, 245 | "000000000000000000000000000000000000004a": { 246 | "balance": "0x1" 247 | }, 248 | "000000000000000000000000000000000000004b": { 249 | "balance": "0x1" 250 | }, 251 | "000000000000000000000000000000000000004c": { 252 | "balance": "0x1" 253 | }, 254 | "000000000000000000000000000000000000004d": { 255 | "balance": "0x1" 256 | }, 257 | "000000000000000000000000000000000000004e": { 258 | "balance": "0x1" 259 | }, 260 | "000000000000000000000000000000000000004f": { 261 | "balance": "0x1" 262 | }, 263 | "0000000000000000000000000000000000000050": { 264 | "balance": "0x1" 265 | }, 266 | "0000000000000000000000000000000000000051": { 267 | "balance": "0x1" 268 | }, 269 | "0000000000000000000000000000000000000052": { 270 | "balance": "0x1" 271 | }, 272 | "0000000000000000000000000000000000000053": { 273 | "balance": "0x1" 274 | }, 275 | "0000000000000000000000000000000000000054": { 276 | "balance": "0x1" 277 | }, 278 | "0000000000000000000000000000000000000055": { 279 | "balance": "0x1" 280 | }, 281 | "0000000000000000000000000000000000000056": { 282 | "balance": "0x1" 283 | }, 284 | "0000000000000000000000000000000000000057": { 285 | "balance": "0x1" 286 | }, 287 | "0000000000000000000000000000000000000058": { 288 | "balance": "0x1" 289 | }, 290 | "0000000000000000000000000000000000000059": { 291 | "balance": "0x1" 292 | }, 293 | "000000000000000000000000000000000000005a": { 294 | "balance": "0x1" 295 | }, 296 | "000000000000000000000000000000000000005b": { 297 | "balance": "0x1" 298 | }, 299 | "000000000000000000000000000000000000005c": { 300 | "balance": "0x1" 301 | }, 302 | "000000000000000000000000000000000000005d": { 303 | "balance": "0x1" 304 | }, 305 | "000000000000000000000000000000000000005e": { 306 | "balance": "0x1" 307 | }, 308 | "000000000000000000000000000000000000005f": { 309 | "balance": "0x1" 310 | }, 311 | "0000000000000000000000000000000000000060": { 312 | "balance": "0x1" 313 | }, 314 | "0000000000000000000000000000000000000061": { 315 | "balance": "0x1" 316 | }, 317 | "0000000000000000000000000000000000000062": { 318 | "balance": "0x1" 319 | }, 320 | "0000000000000000000000000000000000000063": { 321 | "balance": "0x1" 322 | }, 323 | "0000000000000000000000000000000000000064": { 324 | "balance": "0x1" 325 | }, 326 | "0000000000000000000000000000000000000065": { 327 | "balance": "0x1" 328 | }, 329 | "0000000000000000000000000000000000000066": { 330 | "balance": "0x1" 331 | }, 332 | "0000000000000000000000000000000000000067": { 333 | "balance": "0x1" 334 | }, 335 | "0000000000000000000000000000000000000068": { 336 | "balance": "0x1" 337 | }, 338 | "0000000000000000000000000000000000000069": { 339 | "balance": "0x1" 340 | }, 341 | "000000000000000000000000000000000000006a": { 342 | "balance": "0x1" 343 | }, 344 | "000000000000000000000000000000000000006b": { 345 | "balance": "0x1" 346 | }, 347 | "000000000000000000000000000000000000006c": { 348 | "balance": "0x1" 349 | }, 350 | "000000000000000000000000000000000000006d": { 351 | "balance": "0x1" 352 | }, 353 | "000000000000000000000000000000000000006e": { 354 | "balance": "0x1" 355 | }, 356 | "000000000000000000000000000000000000006f": { 357 | "balance": "0x1" 358 | }, 359 | "0000000000000000000000000000000000000070": { 360 | "balance": "0x1" 361 | }, 362 | "0000000000000000000000000000000000000071": { 363 | "balance": "0x1" 364 | }, 365 | "0000000000000000000000000000000000000072": { 366 | "balance": "0x1" 367 | }, 368 | "0000000000000000000000000000000000000073": { 369 | "balance": "0x1" 370 | }, 371 | "0000000000000000000000000000000000000074": { 372 | "balance": "0x1" 373 | }, 374 | "0000000000000000000000000000000000000075": { 375 | "balance": "0x1" 376 | }, 377 | "0000000000000000000000000000000000000076": { 378 | "balance": "0x1" 379 | }, 380 | "0000000000000000000000000000000000000077": { 381 | "balance": "0x1" 382 | }, 383 | "0000000000000000000000000000000000000078": { 384 | "balance": "0x1" 385 | }, 386 | "0000000000000000000000000000000000000079": { 387 | "balance": "0x1" 388 | }, 389 | "000000000000000000000000000000000000007a": { 390 | "balance": "0x1" 391 | }, 392 | "000000000000000000000000000000000000007b": { 393 | "balance": "0x1" 394 | }, 395 | "000000000000000000000000000000000000007c": { 396 | "balance": "0x1" 397 | }, 398 | "000000000000000000000000000000000000007d": { 399 | "balance": "0x1" 400 | }, 401 | "000000000000000000000000000000000000007e": { 402 | "balance": "0x1" 403 | }, 404 | "000000000000000000000000000000000000007f": { 405 | "balance": "0x1" 406 | }, 407 | "0000000000000000000000000000000000000080": { 408 | "balance": "0x1" 409 | }, 410 | "0000000000000000000000000000000000000081": { 411 | "balance": "0x1" 412 | }, 413 | "0000000000000000000000000000000000000082": { 414 | "balance": "0x1" 415 | }, 416 | "0000000000000000000000000000000000000083": { 417 | "balance": "0x1" 418 | }, 419 | "0000000000000000000000000000000000000084": { 420 | "balance": "0x1" 421 | }, 422 | "0000000000000000000000000000000000000085": { 423 | "balance": "0x1" 424 | }, 425 | "0000000000000000000000000000000000000086": { 426 | "balance": "0x1" 427 | }, 428 | "0000000000000000000000000000000000000087": { 429 | "balance": "0x1" 430 | }, 431 | "0000000000000000000000000000000000000088": { 432 | "balance": "0x1" 433 | }, 434 | "0000000000000000000000000000000000000089": { 435 | "balance": "0x1" 436 | }, 437 | "000000000000000000000000000000000000008a": { 438 | "balance": "0x1" 439 | }, 440 | "000000000000000000000000000000000000008b": { 441 | "balance": "0x1" 442 | }, 443 | "000000000000000000000000000000000000008c": { 444 | "balance": "0x1" 445 | }, 446 | "000000000000000000000000000000000000008d": { 447 | "balance": "0x1" 448 | }, 449 | "000000000000000000000000000000000000008e": { 450 | "balance": "0x1" 451 | }, 452 | "000000000000000000000000000000000000008f": { 453 | "balance": "0x1" 454 | }, 455 | "0000000000000000000000000000000000000090": { 456 | "balance": "0x1" 457 | }, 458 | "0000000000000000000000000000000000000091": { 459 | "balance": "0x1" 460 | }, 461 | "0000000000000000000000000000000000000092": { 462 | "balance": "0x1" 463 | }, 464 | "0000000000000000000000000000000000000093": { 465 | "balance": "0x1" 466 | }, 467 | "0000000000000000000000000000000000000094": { 468 | "balance": "0x1" 469 | }, 470 | "0000000000000000000000000000000000000095": { 471 | "balance": "0x1" 472 | }, 473 | "0000000000000000000000000000000000000096": { 474 | "balance": "0x1" 475 | }, 476 | "0000000000000000000000000000000000000097": { 477 | "balance": "0x1" 478 | }, 479 | "0000000000000000000000000000000000000098": { 480 | "balance": "0x1" 481 | }, 482 | "0000000000000000000000000000000000000099": { 483 | "balance": "0x1" 484 | }, 485 | "000000000000000000000000000000000000009a": { 486 | "balance": "0x1" 487 | }, 488 | "000000000000000000000000000000000000009b": { 489 | "balance": "0x1" 490 | }, 491 | "000000000000000000000000000000000000009c": { 492 | "balance": "0x1" 493 | }, 494 | "000000000000000000000000000000000000009d": { 495 | "balance": "0x1" 496 | }, 497 | "000000000000000000000000000000000000009e": { 498 | "balance": "0x1" 499 | }, 500 | "000000000000000000000000000000000000009f": { 501 | "balance": "0x1" 502 | }, 503 | "00000000000000000000000000000000000000a0": { 504 | "balance": "0x1" 505 | }, 506 | "00000000000000000000000000000000000000a1": { 507 | "balance": "0x1" 508 | }, 509 | "00000000000000000000000000000000000000a2": { 510 | "balance": "0x1" 511 | }, 512 | "00000000000000000000000000000000000000a3": { 513 | "balance": "0x1" 514 | }, 515 | "00000000000000000000000000000000000000a4": { 516 | "balance": "0x1" 517 | }, 518 | "00000000000000000000000000000000000000a5": { 519 | "balance": "0x1" 520 | }, 521 | "00000000000000000000000000000000000000a6": { 522 | "balance": "0x1" 523 | }, 524 | "00000000000000000000000000000000000000a7": { 525 | "balance": "0x1" 526 | }, 527 | "00000000000000000000000000000000000000a8": { 528 | "balance": "0x1" 529 | }, 530 | "00000000000000000000000000000000000000a9": { 531 | "balance": "0x1" 532 | }, 533 | "00000000000000000000000000000000000000aa": { 534 | "balance": "0x1" 535 | }, 536 | "00000000000000000000000000000000000000ab": { 537 | "balance": "0x1" 538 | }, 539 | "00000000000000000000000000000000000000ac": { 540 | "balance": "0x1" 541 | }, 542 | "00000000000000000000000000000000000000ad": { 543 | "balance": "0x1" 544 | }, 545 | "00000000000000000000000000000000000000ae": { 546 | "balance": "0x1" 547 | }, 548 | "00000000000000000000000000000000000000af": { 549 | "balance": "0x1" 550 | }, 551 | "00000000000000000000000000000000000000b0": { 552 | "balance": "0x1" 553 | }, 554 | "00000000000000000000000000000000000000b1": { 555 | "balance": "0x1" 556 | }, 557 | "00000000000000000000000000000000000000b2": { 558 | "balance": "0x1" 559 | }, 560 | "00000000000000000000000000000000000000b3": { 561 | "balance": "0x1" 562 | }, 563 | "00000000000000000000000000000000000000b4": { 564 | "balance": "0x1" 565 | }, 566 | "00000000000000000000000000000000000000b5": { 567 | "balance": "0x1" 568 | }, 569 | "00000000000000000000000000000000000000b6": { 570 | "balance": "0x1" 571 | }, 572 | "00000000000000000000000000000000000000b7": { 573 | "balance": "0x1" 574 | }, 575 | "00000000000000000000000000000000000000b8": { 576 | "balance": "0x1" 577 | }, 578 | "00000000000000000000000000000000000000b9": { 579 | "balance": "0x1" 580 | }, 581 | "00000000000000000000000000000000000000ba": { 582 | "balance": "0x1" 583 | }, 584 | "00000000000000000000000000000000000000bb": { 585 | "balance": "0x1" 586 | }, 587 | "00000000000000000000000000000000000000bc": { 588 | "balance": "0x1" 589 | }, 590 | "00000000000000000000000000000000000000bd": { 591 | "balance": "0x1" 592 | }, 593 | "00000000000000000000000000000000000000be": { 594 | "balance": "0x1" 595 | }, 596 | "00000000000000000000000000000000000000bf": { 597 | "balance": "0x1" 598 | }, 599 | "00000000000000000000000000000000000000c0": { 600 | "balance": "0x1" 601 | }, 602 | "00000000000000000000000000000000000000c1": { 603 | "balance": "0x1" 604 | }, 605 | "00000000000000000000000000000000000000c2": { 606 | "balance": "0x1" 607 | }, 608 | "00000000000000000000000000000000000000c3": { 609 | "balance": "0x1" 610 | }, 611 | "00000000000000000000000000000000000000c4": { 612 | "balance": "0x1" 613 | }, 614 | "00000000000000000000000000000000000000c5": { 615 | "balance": "0x1" 616 | }, 617 | "00000000000000000000000000000000000000c6": { 618 | "balance": "0x1" 619 | }, 620 | "00000000000000000000000000000000000000c7": { 621 | "balance": "0x1" 622 | }, 623 | "00000000000000000000000000000000000000c8": { 624 | "balance": "0x1" 625 | }, 626 | "00000000000000000000000000000000000000c9": { 627 | "balance": "0x1" 628 | }, 629 | "00000000000000000000000000000000000000ca": { 630 | "balance": "0x1" 631 | }, 632 | "00000000000000000000000000000000000000cb": { 633 | "balance": "0x1" 634 | }, 635 | "00000000000000000000000000000000000000cc": { 636 | "balance": "0x1" 637 | }, 638 | "00000000000000000000000000000000000000cd": { 639 | "balance": "0x1" 640 | }, 641 | "00000000000000000000000000000000000000ce": { 642 | "balance": "0x1" 643 | }, 644 | "00000000000000000000000000000000000000cf": { 645 | "balance": "0x1" 646 | }, 647 | "00000000000000000000000000000000000000d0": { 648 | "balance": "0x1" 649 | }, 650 | "00000000000000000000000000000000000000d1": { 651 | "balance": "0x1" 652 | }, 653 | "00000000000000000000000000000000000000d2": { 654 | "balance": "0x1" 655 | }, 656 | "00000000000000000000000000000000000000d3": { 657 | "balance": "0x1" 658 | }, 659 | "00000000000000000000000000000000000000d4": { 660 | "balance": "0x1" 661 | }, 662 | "00000000000000000000000000000000000000d5": { 663 | "balance": "0x1" 664 | }, 665 | "00000000000000000000000000000000000000d6": { 666 | "balance": "0x1" 667 | }, 668 | "00000000000000000000000000000000000000d7": { 669 | "balance": "0x1" 670 | }, 671 | "00000000000000000000000000000000000000d8": { 672 | "balance": "0x1" 673 | }, 674 | "00000000000000000000000000000000000000d9": { 675 | "balance": "0x1" 676 | }, 677 | "00000000000000000000000000000000000000da": { 678 | "balance": "0x1" 679 | }, 680 | "00000000000000000000000000000000000000db": { 681 | "balance": "0x1" 682 | }, 683 | "00000000000000000000000000000000000000dc": { 684 | "balance": "0x1" 685 | }, 686 | "00000000000000000000000000000000000000dd": { 687 | "balance": "0x1" 688 | }, 689 | "00000000000000000000000000000000000000de": { 690 | "balance": "0x1" 691 | }, 692 | "00000000000000000000000000000000000000df": { 693 | "balance": "0x1" 694 | }, 695 | "00000000000000000000000000000000000000e0": { 696 | "balance": "0x1" 697 | }, 698 | "00000000000000000000000000000000000000e1": { 699 | "balance": "0x1" 700 | }, 701 | "00000000000000000000000000000000000000e2": { 702 | "balance": "0x1" 703 | }, 704 | "00000000000000000000000000000000000000e3": { 705 | "balance": "0x1" 706 | }, 707 | "00000000000000000000000000000000000000e4": { 708 | "balance": "0x1" 709 | }, 710 | "00000000000000000000000000000000000000e5": { 711 | "balance": "0x1" 712 | }, 713 | "00000000000000000000000000000000000000e6": { 714 | "balance": "0x1" 715 | }, 716 | "00000000000000000000000000000000000000e7": { 717 | "balance": "0x1" 718 | }, 719 | "00000000000000000000000000000000000000e8": { 720 | "balance": "0x1" 721 | }, 722 | "00000000000000000000000000000000000000e9": { 723 | "balance": "0x1" 724 | }, 725 | "00000000000000000000000000000000000000ea": { 726 | "balance": "0x1" 727 | }, 728 | "00000000000000000000000000000000000000eb": { 729 | "balance": "0x1" 730 | }, 731 | "00000000000000000000000000000000000000ec": { 732 | "balance": "0x1" 733 | }, 734 | "00000000000000000000000000000000000000ed": { 735 | "balance": "0x1" 736 | }, 737 | "00000000000000000000000000000000000000ee": { 738 | "balance": "0x1" 739 | }, 740 | "00000000000000000000000000000000000000ef": { 741 | "balance": "0x1" 742 | }, 743 | "00000000000000000000000000000000000000f0": { 744 | "balance": "0x1" 745 | }, 746 | "00000000000000000000000000000000000000f1": { 747 | "balance": "0x1" 748 | }, 749 | "00000000000000000000000000000000000000f2": { 750 | "balance": "0x1" 751 | }, 752 | "00000000000000000000000000000000000000f3": { 753 | "balance": "0x1" 754 | }, 755 | "00000000000000000000000000000000000000f4": { 756 | "balance": "0x1" 757 | }, 758 | "00000000000000000000000000000000000000f5": { 759 | "balance": "0x1" 760 | }, 761 | "00000000000000000000000000000000000000f6": { 762 | "balance": "0x1" 763 | }, 764 | "00000000000000000000000000000000000000f7": { 765 | "balance": "0x1" 766 | }, 767 | "00000000000000000000000000000000000000f8": { 768 | "balance": "0x1" 769 | }, 770 | "00000000000000000000000000000000000000f9": { 771 | "balance": "0x1" 772 | }, 773 | "00000000000000000000000000000000000000fa": { 774 | "balance": "0x1" 775 | }, 776 | "00000000000000000000000000000000000000fb": { 777 | "balance": "0x1" 778 | }, 779 | "00000000000000000000000000000000000000fc": { 780 | "balance": "0x1" 781 | }, 782 | "00000000000000000000000000000000000000fd": { 783 | "balance": "0x1" 784 | }, 785 | "00000000000000000000000000000000000000fe": { 786 | "balance": "0x1" 787 | }, 788 | "00000000000000000000000000000000000000ff": { 789 | "balance": "0x1" 790 | }, 791 | "397bafd3de7662027689bca193ffc6ad68ff9316": { 792 | "balance": "0x000000000000000000000000000000000000002000000000000000000000000" 793 | }, 794 | "e3b5b8576a10356f42c865e1a99cdf78e90fef23": { 795 | "balance": "0x000000000000000000000000000000000000002000000000000000000000000" 796 | } 797 | }, 798 | "number": "0x0", 799 | "gasUsed": "0x0", 800 | "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000" 801 | } 802 | -------------------------------------------------------------------------------- /rockaway/sealer/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM augur/rockaway-geth-node:latest 2 | ARG mode=sealer 3 | ARG name="Rockaway Sealer" 4 | -------------------------------------------------------------------------------- /rockaway/start.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Expects an init'd node in the /geth directory using 4 | # our defined genesis 5 | 6 | networkId=$(jq ".config.chainId" /geth/genesis.json) 7 | 8 | bootnode() { 9 | if [[ "${ETHEREUM_NODE_NAME}x" == "x" ]]; then 10 | ETHEREUM_NODE_NAME="Rockaway Node ${ETHEREUM_MODE}" 11 | fi 12 | 13 | echo $ETHEREUM_NODEKEY_HEX > /geth/node.key 14 | 15 | bootnode --nodekey /geth/node.key --datadir /geth 16 | } 17 | 18 | sealer() { 19 | if [[ "${ETHEREUM_NODE_NAME}x" == "x" ]]; then 20 | ETHEREUM_NODE_NAME="Rockaway Node ${ETHEREUM_MODE}" 21 | fi 22 | 23 | geth \ 24 | --networkid ${networkId} \ 25 | --cache 512 \ 26 | --maxpeers 512 \ 27 | --lightpeers 256 \ 28 | --lightserv 50 \ 29 | --ethstats "${ETHEREUM_NODE_NAME}:${ETHEREUM_ETHSTATS_PASSWORD}:${ETHEREUM_ETHSTATS_SERVER}" 30 | } 31 | 32 | # Some default 33 | if [[ "${ETHEREUM_MODE}" != "bootnode" ]]; then 34 | export ETHEREUM_MODE="sealer" 35 | if [[ "${ETHEREUM_UNLOCK_ACCOUNT}" == "x" ]]; then 36 | echo "Sealer nodes must be given an unlock account" 37 | fi 38 | sealer 39 | else 40 | # Boot node! Require a ETHEREUM_NODEKEY_HEX 41 | if [[ "${ETHEREUM_NODEKEY_HEX}x" == "x" ]]; then 42 | echo "Must have a node key" 43 | exit 1 44 | fi 45 | bootnode 46 | fi 47 | 48 | -------------------------------------------------------------------------------- /ropsten/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AugurProject/ethereum-nodes/de8615c92e6990e30d616f3791602cfa4a8cde62/ropsten/.gitignore -------------------------------------------------------------------------------- /ropsten/install.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | apt update 4 | apt install docker.io 5 | 6 | -------------------------------------------------------------------------------- /ropsten/start.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | docker run -d -p 8545:8545 -p 8546:8546 -p 30303:30303 -it -v /root/geth-ropsten:/root/.ethereum ethereum/client-go --fast --testnet --cache 16 --wsorigins '*' --ws --wsapi eth,net,web3,personal,txpool --wsport 8546 --wsaddr 0.0.0.0 --rpc --rpcapi eth,net,web3,personal,txpool --rpcaddr 0.0.0.0 --maxpeers 128 4 | -------------------------------------------------------------------------------- /spam-villa/.gitignore: -------------------------------------------------------------------------------- 1 | testnet-keys.env 2 | -------------------------------------------------------------------------------- /spam-villa/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM ubuntu:16.04 2 | # install all dependencies 3 | RUN apt-get update \ 4 | && apt-get install --yes --no-install-recommends curl python3 python3-pip python3-setuptools pkg-config python3-dev autoconf automake libtool libssl-dev make g++ jq \ 5 | && rm -rf /var/lib/apt/lists/* 6 | 7 | RUN pip3 install wheel 8 | RUN pip3 install ethereum==2.0.4 ethereum-abi-utils==0.4.0 ethereum-utils==0.4.0 pysha3==1.0.2 ecdsa==0.13 web3==3.11.1 py-solc==1.0.1 rlp==0.5.1 9 | 10 | ADD . /scripts 11 | WORKDIR /scripts 12 | 13 | RUN pip3 install -r /scripts/requirements.txt 14 | 15 | ENV PYTHONUNBUFFERED 1 16 | 17 | ENTRYPOINT /usr/bin/python3 /scripts/spam-villa.py 18 | -------------------------------------------------------------------------------- /spam-villa/burner.sol: -------------------------------------------------------------------------------- 1 | contract burner { 2 | function() { 3 | while (true) { 4 | } 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /spam-villa/docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: "3" 2 | services: 3 | spam-villa: 4 | build: 5 | context: ./ 6 | environment: 7 | - ETHEREUM_NODE_HOST=${ETHEREUM_NODE_HOST} 8 | env_file: 9 | - ./testnet-keys.env 10 | 11 | -------------------------------------------------------------------------------- /spam-villa/requirements.txt: -------------------------------------------------------------------------------- 1 | ethereum==2.0.4 2 | ethereum-abi-utils==0.4.0 3 | ethereum-utils==0.4.0 4 | pysha3==1.0.2 5 | ecdsa==0.13 6 | web3==3.11.1 7 | py-solc==1.0.1 8 | rlp==0.5.1 9 | -------------------------------------------------------------------------------- /spam-villa/spam-villa.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | import os 3 | import rlp 4 | from ethereum.transactions import Transaction 5 | from web3 import Web3, KeepAliveRPCProvider 6 | from ethereum.utils import coerce_addr_to_hex, privtoaddr 7 | from time import sleep 8 | 9 | TX_BASE_GAS_PRICE = os.environ.get('TX_BASE_GAS_PRICE', 1 * 10 ** 9) 10 | TX_MIN_PENDING_COUNT = os.environ.get('TX_MIN_PENDING_COUNT', 6) 11 | 12 | # 6 hard coded gas sizes 13 | TX_GAS_RATIO_AND_PRICE = [ 14 | [0.95, TX_BASE_GAS_PRICE + 5], 15 | [0.67, TX_BASE_GAS_PRICE + 4], 16 | [0.446, TX_BASE_GAS_PRICE + 3], 17 | [0.297, TX_BASE_GAS_PRICE + 2], 18 | [0.198, TX_BASE_GAS_PRICE + 1], 19 | [0.132, TX_BASE_GAS_PRICE + 0] 20 | ] 21 | 22 | ETHEREUM_NODE_HOST = os.environ.get('ETHEREUM_NODE_HOST', 'ethereum-node') 23 | ETHEREUM_NODE_PORT = int(os.environ.get('ETHEREUM_NODE_PORT', 8545)) 24 | RPC_INFO = {'host': ETHEREUM_NODE_HOST, 'port': ETHEREUM_NODE_PORT} 25 | web3 = Web3(KeepAliveRPCProvider(**RPC_INFO)) 26 | 27 | THROW_CONTRACTS={ 28 | 4:'0xffc4700dc5ac0639525ab50ab0a84ac125599f33', # rinkeby 29 | } 30 | 31 | CONTRACT_THROW_ADDRESS = os.environ.get('ETHEREUM_THROW_CONTRACT', THROW_CONTRACTS[web3.admin.nodeInfo['protocols']['eth']['network']]) 32 | PRIVATE_KEYS = os.environ['ETHEREUM_PRIVATE_KEYS'] 33 | 34 | 35 | def get_pending_tx_counts(web3): 36 | return { 37 | sender.lower(): [ 38 | len(transactions), 39 | max([int(nonce) for nonce in transactions.keys()]) 40 | ] 41 | for sender, transactions 42 | in web3._requestManager.request_blocking("txpool_inspect", [])["pending"].items() 43 | } 44 | 45 | 46 | def update_block_gas_limits(web3, accountHolders): 47 | block_gas_limit = web3.eth.getBlock('latest').gasLimit 48 | [accountHolder.update_block_gas_limit(block_gas_limit) for accountHolder in accountHolders] 49 | 50 | 51 | class AccountHolder(): 52 | def __init__(self, web3, private_key, gas_limit_percentage, gas_price): 53 | self.web3 = web3 54 | self.private_key = private_key 55 | self.address = "0x%s" % coerce_addr_to_hex(privtoaddr(private_key)) 56 | self.gas_limit_percentage = gas_limit_percentage 57 | self.gas_price = gas_price 58 | 59 | def update_block_gas_limit(self, block_gas_limit): 60 | self.block_gas_limit = block_gas_limit 61 | 62 | def fill_pending_queue(self, current_pending_tx_count, next_nonce): 63 | tx_to_send = TX_MIN_PENDING_COUNT - current_pending_tx_count 64 | return ([self.send_tx(nonce) 65 | for nonce in range(next_nonce, next_nonce + tx_to_send)]) 66 | 67 | def send_tx(self, nonce): 68 | tx = Transaction(nonce, 69 | gasprice=self.gas_price, 70 | startgas=int(self.block_gas_limit * self.gas_limit_percentage), 71 | to=CONTRACT_THROW_ADDRESS, 72 | value=0, 73 | data='', 74 | ) 75 | 76 | tx.sign(self.private_key) 77 | raw_tx = rlp.encode(tx) 78 | raw_tx_hex = self.web3.toHex(raw_tx) 79 | 80 | try: 81 | tx_id = web3.eth.sendRawTransaction(raw_tx_hex) 82 | except Exception as e: 83 | print("Something went wrong with tx for %s" % self.address) 84 | print(e) 85 | return None 86 | 87 | return tx_id 88 | 89 | 90 | account_holders = [AccountHolder(web3, private_key, *TX_GAS_RATIO_AND_PRICE[index]) 91 | for index, private_key in enumerate(PRIVATE_KEYS.split(","))] 92 | 93 | print("Using the following accounts:") 94 | print("\n".join([account_holder.address for account_holder in account_holders])) 95 | 96 | if __name__ == "__main__": 97 | while True: 98 | pending_tx_counts = get_pending_tx_counts(web3) 99 | update_block_gas_limits(web3, account_holders) 100 | for account_holder in account_holders: 101 | if account_holder.address in pending_tx_counts: 102 | tx_count, highest_nonce = pending_tx_counts[account_holder.address] 103 | next_nonce = highest_nonce + 1 104 | else: 105 | tx_count = 0 106 | next_nonce = web3.eth.getTransactionCount(account_holder.address) 107 | 108 | if tx_count < TX_MIN_PENDING_COUNT: 109 | [print("%s sent TX: %s" % (account_holder.address, tx_hash)) 110 | for tx_hash in account_holder.fill_pending_queue(tx_count, next_nonce)] 111 | 112 | sleep(1) -------------------------------------------------------------------------------- /spam-villa/testnet-keys.env: -------------------------------------------------------------------------------- 1 | ETHEREUM_PRIVATE_KEYS=a,b,c,d,e,f 2 | --------------------------------------------------------------------------------