mirror of
https://github.com/OffchainLabs/prysm.git
synced 2026-01-10 16:08:26 -05:00
Add tool and script for interop testing (#3417)
* add tool and script for interop testing * identity * lint * merge upstream, fix conflict, update script, add comment * add comma separated support for --peer= * remove NUM_VALIDATORS, comma fix * WIP docker image * use CI builder * pr feedback * whatever antoine says * ignore git in docker * jobs=auto * disable remote cache * try to cache the golang part * try to cache the golang part * nvm * From Antoine with love * fix
This commit is contained in:
committed by
Raul Jordan
parent
af07c13730
commit
3708a8f476
93
scripts/interop_start.sh
Executable file
93
scripts/interop_start.sh
Executable file
@@ -0,0 +1,93 @@
|
||||
#!/bin/bash
|
||||
|
||||
"""
|
||||
2019/09/08 -- Interop start script.
|
||||
This script is intended for dockerfile deployment for interop testing.
|
||||
This script is fragile and subject to break as flags change.
|
||||
Use at your own risk!
|
||||
|
||||
|
||||
Use with interop.Dockerfile from the workspace root:
|
||||
|
||||
docker build -f interop.Dockerfile .
|
||||
"""
|
||||
|
||||
# Flags
|
||||
IDENTITY="" # P2P private key
|
||||
PEERS="" # Comma separated list of peers
|
||||
GEN_STATE="" # filepath to ssz encoded state.
|
||||
PORT="8000" # port to serve p2p traffic
|
||||
YAML_KEY_FILE="" # Path to yaml keyfile as defined here: https://github.com/ethereum/eth2.0-pm/tree/master/interop/mocked_start
|
||||
|
||||
# Constants
|
||||
BEACON_LOG_FILE="/tmp/beacon.log"
|
||||
VALIDATOR_LOG_FILE="/tmp/validator.log"
|
||||
|
||||
usage() {
|
||||
echo "--identity=<identity>"
|
||||
echo "--peer=<peer>"
|
||||
echo "--num-validators=<number>"
|
||||
echo "--gen-state=<file path>"
|
||||
port "--port=<port number>"
|
||||
}
|
||||
|
||||
while [ "$1" != "" ];
|
||||
do
|
||||
PARAM=`echo $1 | awk -F= '{print $1}'`
|
||||
VALUE=`echo $1 | sed 's/^[^=]*=//g'`
|
||||
|
||||
case $PARAM in
|
||||
--identity)
|
||||
IDENTITY=$VALUE
|
||||
;;
|
||||
--peers)
|
||||
PEERS+=",$VALUE"
|
||||
;;
|
||||
--validator-keys)
|
||||
YAML_KEY_FILE=$VALUE
|
||||
;;
|
||||
--gen-state)
|
||||
GEN_STATE=$VALUE
|
||||
;;
|
||||
--port)
|
||||
PORT=$VALUE
|
||||
;;
|
||||
--help)
|
||||
usage
|
||||
exit
|
||||
;;
|
||||
*)
|
||||
echo "ERROR: unknown parameter \"$PARAM\""
|
||||
usage
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
shift
|
||||
done
|
||||
|
||||
|
||||
echo "Converting hex yaml keys to a format that Prysm understands"
|
||||
|
||||
# Expect YAML keys in hex encoded format. Convert this into the format the the validator already understands.
|
||||
./convert-keys $YAML_KEY_FILE /tmp/keys.json
|
||||
|
||||
echo "Starting beacon chain and logging to $BEACON_LOG_FILE"
|
||||
|
||||
BEACON_FLAGS="--bootstrap-node= \
|
||||
--deposit-contract=0xD775140349E6A5D12524C6ccc3d6A1d4519D4029 \
|
||||
--p2p-port=$PORT \
|
||||
--peer=$PEERS \
|
||||
--interop-genesis-state=$GEN_STATE \
|
||||
--p2p-priv-key=$IDENTITY \
|
||||
--log-file=$BEACON_LOG_FILE"
|
||||
|
||||
./beacon-chain $BEACON_FLAGS &
|
||||
|
||||
echo "Starting validator client and logging to $VALIDATOR_LOG_FILE"
|
||||
|
||||
VALIDATOR_FLAGS="--monitoring-port=9091 \
|
||||
--unencrypted-keys /tmp/keys.json \
|
||||
--log-file=$VALIDATOR_LOG_FILE
|
||||
|
||||
./validator- $VALIDATOR_FLAGS &
|
||||
|
||||
Reference in New Issue
Block a user