|
1 | 1 | #!/bin/bash |
2 | 2 |
|
3 | | -set -eu |
4 | | - |
5 | | -# shellcheck disable=SC1091 |
6 | | -if [[ -f ${ASSETS_DIR}/variables.env ]]; then |
7 | | - . "${ASSETS_DIR}/variables.env" |
8 | | -else |
9 | | - echo "[ERROR | configure] Missing variables file (${ASSETS_DIR}/variables)" |
10 | | - exit 1 |
11 | | -fi |
12 | | - |
13 | | -if [ ! -f "$SHUTTER_GENERATED_CONFIG_FILE" ]; then |
14 | | - echo "[ERROR | configure] Missing generated configuration file (${SHUTTER_GENERATED_CONFIG_FILE})" |
15 | | - exit 1 |
16 | | -fi |
17 | | - |
18 | | -echo "[INFO | configure] Generating keyper configuration file..." |
19 | | - |
20 | | -# Copy if keyper configuration file does not exist |
21 | | -if [ ! -f "$KEYPER_CONFIG_FILE" ]; then |
22 | | - cp "$SHUTTER_GENERATED_CONFIG_FILE" "$KEYPER_CONFIG_FILE" |
23 | | -fi |
24 | | - |
25 | | -echo "[INFO | configure] Calculating keyper configuration values..." |
26 | | - |
27 | 3 | # To use staker scripts |
28 | 4 | # shellcheck disable=SC1091 |
29 | 5 | . /etc/profile |
| 6 | +# shellcheck disable=SC1091 |
| 7 | +. "${ASSETS_DIR}/variables.env" |
| 8 | + |
| 9 | +echo "[INFO | configure] Calculating keyper configuration values..." |
30 | 10 |
|
31 | 11 | SUPPORTED_NETWORKS="gnosis" |
32 | 12 |
|
33 | 13 | SHUTTER_P2P_ADVERTISEADDRESSES="/ip4/${_DAPPNODE_GLOBAL_PUBLIC_IP}/tcp/23003" |
34 | 14 | SHUTTER_BEACONAPIURL=$(get_beacon_api_url_from_global_env "$NETWORK" "$SUPPORTED_NETWORKS") |
35 | 15 | SHUTTER_GNOSIS_NODE_CONTRACTSURL=http://execution.gnosis.dncore.dappnode:8545 |
36 | 16 | SHUTTER_GNOSIS_NODE_ETHEREUMURL=$(get_execution_ws_url_from_global_env "$NETWORK" "$SUPPORTED_NETWORKS") |
| 17 | +VALIDATOR_PUBLIC_KEY=$(cat "${SHUTTER_CHAIN_DIR}/config/priv_validator_pubkey.hex") |
37 | 18 |
|
38 | | -# TODO: Update script with upstream version |
| 19 | +# Check if the keyper configuration file already exists |
| 20 | +if [ -f "$KEYPER_CONFIG_FILE" ]; then |
| 21 | + echo "[INFO | configure] Keyper configuration file already exists" |
| 22 | +else |
| 23 | + echo "[INFO | configure] Generating configuration files..." |
| 24 | + |
| 25 | + if [ ! -f "$KEYPER_GENERATED_CONFIG_FILE" ]; then |
| 26 | + echo "[ERROR | configure] Missing generated configuration file (${KEYPER_GENERATED_CONFIG_FILE})" |
| 27 | + exit 1 |
| 28 | + fi |
| 29 | + |
| 30 | + cp "$KEYPER_GENERATED_CONFIG_FILE" "$KEYPER_CONFIG_FILE" |
| 31 | + |
| 32 | + echo "[INFO | configure] Keyper configuration file created" |
| 33 | + echo "[INFO | configure] Setting private key in the configuration file..." |
| 34 | + sed -i "/^PrivateKey/c\PrivateKey = \"${SHUTTER_GNOSIS_NODE_PRIVATEKEY}\"" "$KEYPER_CONFIG_FILE" |
| 35 | +fi |
39 | 36 |
|
40 | | -# Values set from assets container and compose env varibles |
| 37 | +# Assets values |
41 | 38 | sed -i "/^InstanceID/c\InstanceID = ${_ASSETS_INSTANCE_ID}" "$KEYPER_CONFIG_FILE" |
42 | | -sed -i "/^DatabaseURL/c\DatabaseURL = \"${SHUTTER_DATABASEURL}\"" "$KEYPER_CONFIG_FILE" |
43 | | -sed -i "/^BeaconAPIURL/c\BeaconAPIURL = \"${SHUTTER_BEACONAPIURL}\"" "$KEYPER_CONFIG_FILE" |
44 | 39 | sed -i "/^MaxNumKeysPerMessage/c\MaxNumKeysPerMessage = ${_ASSETS_MAX_NUM_KEYS_PER_MESSAGE}" "$KEYPER_CONFIG_FILE" |
45 | 40 | sed -i "/^EncryptedGasLimit/c\EncryptedGasLimit = ${_ASSETS_ENCRYPTED_GAS_LIMIT}" "$KEYPER_CONFIG_FILE" |
46 | | -sed -i "/^MaxTxPointerAge/c\MaxTxPointerAge = ${SHUTTER_GNOSIS_MAXTXPOINTERAGE}" "$KEYPER_CONFIG_FILE" |
47 | 41 | sed -i "/^GenesisSlotTimestamp/c\GenesisSlotTimestamp = ${_ASSETS_GENESIS_SLOT_TIMESTAMP}" "$KEYPER_CONFIG_FILE" |
48 | 42 | sed -i "/^SyncStartBlockNumber/c\SyncStartBlockNumber = ${_ASSETS_SYNC_START_BLOCK_NUMBER}" "$KEYPER_CONFIG_FILE" |
49 | | -sed -i "/^PrivateKey/c\PrivateKey = \"${SHUTTER_GNOSIS_NODE_PRIVATEKEY}\"" "$KEYPER_CONFIG_FILE" |
50 | | -sed -i "/^ContractsURL/c\ContractsURL = \"${SHUTTER_GNOSIS_NODE_CONTRACTSURL}\"" "$KEYPER_CONFIG_FILE" |
51 | | -sed -i "/^DeploymentDir/c\DeploymentDir = \"\" # unused" "$KEYPER_CONFIG_FILE" |
52 | | -sed -i "/^EthereumURL/c\EthereumURL = \"${SHUTTER_GNOSIS_NODE_ETHEREUMURL}\"" "$KEYPER_CONFIG_FILE" |
53 | 43 | sed -i "/^KeyperSetManager/c\KeyperSetManager = \"${_ASSETS_KEYPER_SET_MANAGER}\"" "$KEYPER_CONFIG_FILE" |
54 | 44 | sed -i "/^KeyBroadcastContract/c\KeyBroadcastContract = \"${_ASSETS_KEY_BROADCAST_CONTRACT}\"" "$KEYPER_CONFIG_FILE" |
55 | 45 | sed -i "/^Sequencer/c\Sequencer = \"${_ASSETS_SEQUENCER}\"" "$KEYPER_CONFIG_FILE" |
56 | 46 | sed -i "/^ValidatorRegistry/c\ValidatorRegistry = \"${_ASSETS_VALIDATOR_REGISTRY}\"" "$KEYPER_CONFIG_FILE" |
57 | 47 | sed -i "/^DiscoveryNamespace/c\DiscoveryNamespace = \"${_ASSETS_DISCOVERY_NAME_PREFIX}-${_ASSETS_INSTANCE_ID}\"" "$KEYPER_CONFIG_FILE" |
58 | | -sed -i "/^ShuttermintURL/c\ShuttermintURL = \"${SHUTTER_SHUTTERMINT_SHUTTERMINTURL}\"" "$KEYPER_CONFIG_FILE" |
59 | | -sed -i "/^ValidatorPublicKey/c\ValidatorPublicKey = \"$(cat "${SHUTTER_CHAIN_DIR}/config/priv_validator_pubkey.hex")\"" "$KEYPER_CONFIG_FILE" |
60 | | -sed -i "/^ListenAddresses/c\ListenAddresses = \"${SHUTTER_P2P_LISTENADDRESSES}\"" "$KEYPER_CONFIG_FILE" |
61 | | -sed -i "/^AdvertiseAddresses/c\AdvertiseAddresses = \"${SHUTTER_P2P_ADVERTISEADDRESSES}\"" "$KEYPER_CONFIG_FILE" |
62 | 48 | sed -i "/^CustomBootstrapAddresses/c\CustomBootstrapAddresses = ${_ASSETS_CUSTOM_BOOTSTRAP_ADDRESSES}" "$KEYPER_CONFIG_FILE" |
63 | 49 | sed -i "/^DKGPhaseLength/c\DKGPhaseLength = ${_ASSETS_DKG_PHASE_LENGTH}" "$KEYPER_CONFIG_FILE" |
64 | 50 | sed -i "/^DKGStartBlockDelta/c\DKGStartBlockDelta = ${_ASSETS_DKG_START_BLOCK_DELTA}" "$KEYPER_CONFIG_FILE" |
65 | | -sed -i "/^Enabled/c\Enabled = ${SHUTTER_PUSH_METRICS_ENABLED}" "$KEYPER_CONFIG_FILE" |
| 51 | + |
| 52 | +# Dynamic values (regenerated on each start) |
| 53 | +sed -i "/^DatabaseURL/c\DatabaseURL = \"${SHUTTER_DATABASEURL}\"" "$KEYPER_CONFIG_FILE" |
| 54 | +sed -i "/^BeaconAPIURL/c\BeaconAPIURL = \"${SHUTTER_BEACONAPIURL}\"" "$KEYPER_CONFIG_FILE" |
| 55 | +sed -i "/^ContractsURL/c\ContractsURL = \"${SHUTTER_GNOSIS_NODE_CONTRACTSURL}\"" "$KEYPER_CONFIG_FILE" |
| 56 | +sed -i "/^MaxTxPointerAge/c\MaxTxPointerAge = ${SHUTTER_GNOSIS_MAXTXPOINTERAGE}" "$KEYPER_CONFIG_FILE" |
| 57 | +sed -i "/^DeploymentDir/c\DeploymentDir = \"\" # unused" "$KEYPER_CONFIG_FILE" |
| 58 | +sed -i "/^EthereumURL/c\EthereumURL = \"${SHUTTER_GNOSIS_NODE_ETHEREUMURL}\"" "$KEYPER_CONFIG_FILE" |
| 59 | +sed -i "/^ShuttermintURL/c\ShuttermintURL = \"${SHUTTER_SHUTTERMINT_SHUTTERMINTURL}\"" "$KEYPER_CONFIG_FILE" |
| 60 | +sed -i "/^ListenAddresses/c\ListenAddresses = \"${SHUTTER_P2P_LISTENADDRESSES}\"" "$KEYPER_CONFIG_FILE" |
| 61 | +sed -i "/^AdvertiseAddresses/c\AdvertiseAddresses = \"${SHUTTER_P2P_ADVERTISEADDRESSES}\"" "$KEYPER_CONFIG_FILE" |
| 62 | +sed -i "/^ValidatorPublicKey/c\ValidatorPublicKey = \"${VALIDATOR_PUBLIC_KEY}\"" "$KEYPER_CONFIG_FILE" |
| 63 | +sed -i "/^Enabled/c\Enabled = true" "$KEYPER_CONFIG_FILE" |
0 commit comments