#!/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=" echo "--peer=" echo "--num-validators=" echo "--gen-state=" port "--port=" } while [ "$1" != "" ]; do PARAM=`echo $1 | awk -F= '{print $1}'` VALUE=`echo $1 | sed 's/^[^=]*=//g'` case $PARAM in --identity) IDENTITY=$VALUE ;; --peers) [ ! -z "$PEERS"] && 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" echo -n "$IDENTITY" > /tmp/id.key BEACON_FLAGS="--bootstrap-node= \ --deposit-contract=0xD775140349E6A5D12524C6ccc3d6A1d4519D4029 \ --p2p-port=$PORT \ --peer=$PEERS \ --interop-genesis-state=$GEN_STATE \ --p2p-priv-key=/tmp/id.key \ --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 &