Skip to content

Commit

Permalink
imp: add more params to automation jobs
Browse files Browse the repository at this point in the history
  • Loading branch information
johnalotoski committed May 30, 2023
1 parent a04b757 commit 4df11ae
Showing 1 changed file with 83 additions and 55 deletions.
138 changes: 83 additions & 55 deletions nix/automation/jobs.nix
Expand Up @@ -156,7 +156,9 @@ in {
name = "gen-custom-node-config";
runtimeInputs = [packages.cardano-cli nixpkgs.coreutils];
text = ''
# Inputs: $START_TIME, $SLOT_LENGTH, $SECURITY_PARAM, $TESTNET_MAGIC, $TEMPLATE_DIR, $GENESIS_DIR, $NUM_GENESIS_KEYS
# Inputs: $START_TIME, $SLOT_LENGTH, $SECURITY_PARAM, $TESTNET_MAGIC, $TEMPLATE_DIR, $GENESIS_DIR, $NUM_GENESIS_KEYS, $DEBUG
[ -n "''${DEBUG:-}" ] && set -x
export START_TIME=''${START_TIME:-$(date --utc +"%Y-%m-%dT%H:%M:%SZ" --date " now +30 min")}
export SLOT_LENGTH=''${SLOT_LENGTH:-1000}
export SECURITY_PARAM=''${SECURITY_PARAM:-36}
Expand Down Expand Up @@ -198,48 +200,50 @@ in {
name = "gen-custom-kv-config";
runtimeInputs = [nixpkgs.jq nixpkgs.coreutils];
text = ''
# Inputs: $GENESIS_DIR, $NUM_GENESIS_KEYS, $ENV_NAME
export GENESIS_DIR=''${GENESIS_DIR:-"$PRJ_ROOT/workbench/custom"}
export NUM_GENESIS_KEYS=''${NUM_GENESIS_KEYS:-3}
export ENV_NAME=''${ENV_NAME:-"custom-env"}
mkdir -p "$PRJ_ROOT/nix/cloud/kv/consul/cardano"
mkdir -p "$PRJ_ROOT/nix/cloud/kv/vault/cardano/$ENV_NAME"
pushd "$GENESIS_DIR"
jq -n \
--arg byron "$(base64 -w 0 < byron-genesis.json)" \
--arg shelley "$(base64 -w 0 < shelley-genesis.json)" \
--arg alonzo "$(base64 -w 0 < alonzo-genesis.json)" \
--arg conway "$(base64 -w 0 < conway-genesis.json)" \
--argjson config "$(< node-config.json)" \
'{byronGenesisBlob: $byron, shelleyGenesisBlob: $shelley, alonzoGenesisBlob: $alonzo, conwayGenesisBlob: $conway, nodeConfig: $config}' \
> config.json
cp config.json "$PRJ_ROOT/nix/cloud/kv/consul/cardano/$ENV_NAME.json"
pushd delegate-keys
for ((i=0; i < "$NUM_GENESIS_KEYS"; i++)); do
jq -n \
--argjson cold "$(<shelley."00$i".skey)" \
--argjson vrf "$(<shelley."00$i".vrf.skey)" \
--argjson kes "$(<shelley."00$i".kes.skey)" \
--argjson opcert "$(<shelley."00$i".opcert.json)" \
--argjson counter "$(<shelley."00$i".counter.json)" \
--argjson byron_cert "$(<byron."00$i".cert.json)" \
'{
"kes.skey": $kes,
"vrf.skey": $vrf,
"opcert.json": $opcert,
"byron.cert.json": $byron_cert,
"cold.skey": $cold,
"cold.counter": $counter
}' > "bft-$i.json"
cp "bft-$i.json" "$PRJ_ROOT/nix/cloud/kv/vault/cardano/$ENV_NAME"
done
popd
pushd "$PRJ_ROOT/nix/cloud/kv/vault/cardano/$ENV_NAME"
for ((i=0; i < "$NUM_GENESIS_KEYS"; i++)); do
sops -e "bft-$i.json" > "bft-$i.enc.json" && rm "bft-$i.json"
done
popd
# Inputs: $GENESIS_DIR, $NUM_GENESIS_KEYS, $ENV_NAME, $DEBUG
[ -n "''${DEBUG:-}" ] && set -x
export GENESIS_DIR=''${GENESIS_DIR:-"$PRJ_ROOT/workbench/custom"}
export NUM_GENESIS_KEYS=''${NUM_GENESIS_KEYS:-3}
export ENV_NAME=''${ENV_NAME:-"custom-env"}
mkdir -p "$PRJ_ROOT/nix/cloud/kv/consul/cardano"
mkdir -p "$PRJ_ROOT/nix/cloud/kv/vault/cardano/$ENV_NAME"
pushd "$GENESIS_DIR"
jq -n \
--arg byron "$(base64 -w 0 < byron-genesis.json)" \
--arg shelley "$(base64 -w 0 < shelley-genesis.json)" \
--arg alonzo "$(base64 -w 0 < alonzo-genesis.json)" \
--arg conway "$(base64 -w 0 < conway-genesis.json)" \
--argjson config "$(< node-config.json)" \
'{byronGenesisBlob: $byron, shelleyGenesisBlob: $shelley, alonzoGenesisBlob: $alonzo, conwayGenesisBlob: $conway, nodeConfig: $config}' \
> config.json
cp config.json "$PRJ_ROOT/nix/cloud/kv/consul/cardano/$ENV_NAME.json"
pushd delegate-keys
for ((i=0; i < "$NUM_GENESIS_KEYS"; i++)); do
jq -n \
--argjson cold "$(<shelley."00$i".skey)" \
--argjson vrf "$(<shelley."00$i".vrf.skey)" \
--argjson kes "$(<shelley."00$i".kes.skey)" \
--argjson opcert "$(<shelley."00$i".opcert.json)" \
--argjson counter "$(<shelley."00$i".counter.json)" \
--argjson byron_cert "$(<byron."00$i".cert.json)" \
'{
"kes.skey": $kes,
"vrf.skey": $vrf,
"opcert.json": $opcert,
"byron.cert.json": $byron_cert,
"cold.skey": $cold,
"cold.counter": $counter
}' > "bft-$i.json"
cp "bft-$i.json" "$PRJ_ROOT/nix/cloud/kv/vault/cardano/$ENV_NAME"
done
popd
pushd "$PRJ_ROOT/nix/cloud/kv/vault/cardano/$ENV_NAME"
for ((i=0; i < "$NUM_GENESIS_KEYS"; i++)); do
sops -e "bft-$i.json" > "bft-$i.enc.json" && rm "bft-$i.json"
done
popd
popd
'';
}
// {after = ["gen-custom-node-config"];};
Expand All @@ -257,7 +261,9 @@ in {
name = "create-stake-pools";
runtimeInputs = [nixpkgs.jq nixpkgs.coreutils];
text = ''
# Inputs: $PAYMENT_KEY, $NUM_POOLS, $START_INDEX, $STAKE_POOL_OUTPUT_DIR, $POOL_RELAY, $POOL_RELAY_PORT
# Inputs: $PAYMENT_KEY, $NUM_POOLS, $START_INDEX, $STAKE_POOL_OUTPUT_DIR, $POOL_RELAY, $POOL_RELAY_PORT, $DEBUG
[ -n "''${DEBUG:-}" ] && set -x
WITNESSES=$(("$NUM_POOLS" * 2 + 1))
END_INDEX=$(("$START_INDEX" + "$NUM_POOLS"))
CHANGE_ADDRESS=$(cardano-cli address build --payment-verification-key-file "$PAYMENT_KEY".vkey --testnet-magic "$TESTNET_MAGIC")
Expand Down Expand Up @@ -368,7 +374,9 @@ in {
name = "update-stake-pools";
runtimeInputs = [nixpkgs.jq nixpkgs.coreutils];
text = ''
# Inputs: $PAYMENT_KEY, $NUM_POOLS, $START_INDEX, $STAKE_POOL_DIR, $POOL_RELAY, $POOL_RELAY_PORT
# Inputs: $PAYMENT_KEY, $NUM_POOLS, $START_INDEX, $STAKE_POOL_DIR, $POOL_RELAY, $POOL_RELAY_PORT, $DEBUG
[ -n "''${DEBUG:-}" ] && set -x
WITNESSES=$(("$NUM_POOLS" * 2 + 1))
END_INDEX=$(("$START_INDEX" + "$NUM_POOLS"))
CHANGE_ADDRESS=$(cardano-cli address build --payment-verification-key-file "$PAYMENT_KEY".vkey --testnet-magic "$TESTNET_MAGIC")
Expand Down Expand Up @@ -424,7 +432,9 @@ in {
name = "gen-custom-kv-config-pools";
runtimeInputs = [nixpkgs.jq nixpkgs.coreutils];
text = ''
# Inputs: $NUM_POOLS, $START_INDEX, $STAKE_POOL_DIR, $ENV_NAME
# Inputs: $NUM_POOLS, $START_INDEX, $STAKE_POOL_DIR, $ENV_NAME, $DEBUG
[ -n "''${DEBUG:-}" ] && set -x
export ENV_NAME=''${ENV_NAME:-"custom-env"}
END_INDEX=$(("$START_INDEX" + "$NUM_POOLS"))
mkdir -p "$PRJ_ROOT/nix/cloud/kv/vault/cardano/$ENV_NAME"
Expand Down Expand Up @@ -460,7 +470,9 @@ in {
name = "rotate-kes-pools";
runtimeInputs = [nixpkgs.jq nixpkgs.coreutils];
text = ''
# Inputs: $NUM_POOLS, $START_INDEX, $STAKE_POOL_DIR, $ENV_NAME, $CURRENT_KES_PERIOD
# Inputs: $NUM_POOLS, $START_INDEX, $STAKE_POOL_DIR, $ENV_NAME, $CURRENT_KES_PERIOD, $DEBUG
[ -n "''${DEBUG:-}" ] && set -x
export ENV_NAME=''${ENV_NAME:-"custom-env"}
END_INDEX=$(("$START_INDEX" + "$NUM_POOLS"))
mkdir -p "$PRJ_ROOT/nix/cloud/kv/vault/cardano/$ENV_NAME"
Expand Down Expand Up @@ -502,7 +514,9 @@ in {
name = "move-genesis-utxo";
runtimeInputs = [nixpkgs.jq nixpkgs.coreutils];
text = ''
# Inputs: $PAYMENT_ADDRESS, $BYRON_SIGNING_KEY, $TESTNET_MAGIC
# Inputs: $PAYMENT_ADDRESS, $BYRON_SIGNING_KEY, $TESTNET_MAGIC, $SUBMIT_TX, $ERA, $DEBUG
[ -n "''${DEBUG:-}" ] && set -x
BYRON_UTXO=$(cardano-cli query utxo --whole-utxo --testnet-magic "$TESTNET_MAGIC" --out-file /dev/stdout|jq \
'to_entries[]|
{"txin": .key, "address": .value.address, "amount": .value.value.lovelace}
Expand All @@ -513,16 +527,20 @@ in {
BYRON_ADDRESS=$(echo "$BYRON_UTXO"|jq -r '.address')
TXIN=$(echo "$BYRON_UTXO"|jq -r '.txin')
cardano-cli transaction build-raw --tx-in "$TXIN" --tx-out "$PAYMENT_ADDRESS+$SUPPLY" --fee "$FEE" --out-file tx-byron.txbody
cardano-cli transaction build-raw ''${ERA:+$ERA} --tx-in "$TXIN" --tx-out "$PAYMENT_ADDRESS+$SUPPLY" --fee "$FEE" --out-file tx-byron.txbody
cardano-cli transaction sign --tx-body-file tx-byron.txbody --out-file tx-byron.txsigned --address "$BYRON_ADDRESS" --signing-key-file "$BYRON_SIGNING_KEY"
cardano-cli transaction submit --testnet-magic "$TESTNET_MAGIC" --tx-file tx-byron.txsigned
if [ "''${SUBMIT_TX:-TRUE}" = "TRUE" ]; then
cardano-cli transaction submit --testnet-magic "$TESTNET_MAGIC" --tx-file tx-byron.txsigned
fi
'';
};
update-proposal-generic = writeShellApplication {
name = "update-proposal-generic";
runtimeInputs = [nixpkgs.jq nixpkgs.coreutils];
text = ''
# Inputs: $PAYMENT_KEY, $NUM_GENESIS_KEYS, $KEY_DIR, [$MAJOR_VERSION], $TESTNET_MAGIC, $PROPOSAL_ARGS
# Inputs: $PAYMENT_KEY, $NUM_GENESIS_KEYS, $KEY_DIR, [$MAJOR_VERSION], $TESTNET_MAGIC, $PROPOSAL_ARGS, $DEBUG
[ -n "''${DEBUG:-}" ] && set -x
if [ "$#" -eq 0 ]; then
echo "Generic update proposal args must be provided as cli args in the pattern:"
echo "nix run .#x86_64-linux.automation.jobs.update-proposal-generic -- \"\''${PROPOSAL_ARGS[@]}\""
Expand All @@ -536,7 +554,9 @@ in {
name = "update-proposal-d";
runtimeInputs = [nixpkgs.jq nixpkgs.coreutils];
text = ''
# Inputs: $PAYMENT_KEY, $NUM_GENESIS_KEYS, $KEY_DIR, $D_VALUE, $TESTNET_MAGIC
# Inputs: $PAYMENT_KEY, $NUM_GENESIS_KEYS, $KEY_DIR, $D_VALUE, $TESTNET_MAGIC, $DEBUG
[ -n "''${DEBUG:-}" ] && set -x
PROPOSAL_ARGS=(
"--decentralization-parameter" "$D_VALUE"
)
Expand All @@ -547,7 +567,9 @@ in {
name = "update-proposal-hard-fork";
runtimeInputs = [nixpkgs.jq nixpkgs.coreutils];
text = ''
# Inputs: $PAYMENT_KEY, $NUM_GENESIS_KEYS, $KEY_DIR, $MAJOR_VERSION, $TESTNET_MAGIC
# Inputs: $PAYMENT_KEY, $NUM_GENESIS_KEYS, $KEY_DIR, $MAJOR_VERSION, $TESTNET_MAGIC, $DEBUG
[ -n "''${DEBUG:-}" ] && set -x
PROPOSAL_ARGS=(
"--protocol-major-version" "$MAJOR_VERSION"
"--protocol-minor-version" "0"
Expand All @@ -559,7 +581,9 @@ in {
name = "update-proposal-cost-model";
runtimeInputs = [nixpkgs.jq nixpkgs.coreutils];
text = ''
# Inputs: $PAYMENT_KEY, $NUM_GENESIS_KEYS, $KEY_DIR, $COST_MODEL, $TESTNET_MAGIC
# Inputs: $PAYMENT_KEY, $NUM_GENESIS_KEYS, $KEY_DIR, $COST_MODEL, $TESTNET_MAGIC, $DEBUG
[ -n "''${DEBUG:-}" ] && set -x
PROPOSAL_ARGS=(
"--cost-model-file" "$COST_MODEL"
)
Expand All @@ -570,7 +594,9 @@ in {
name = "update-proposal-mainnet-params";
runtimeInputs = [nixpkgs.jq nixpkgs.coreutils];
text = ''
# Inputs: $PAYMENT_KEY, $NUM_GENESIS_KEYS, $KEY_DIR, $TESTNET_MAGIC
# Inputs: $PAYMENT_KEY, $NUM_GENESIS_KEYS, $KEY_DIR, $TESTNET_MAGIC, $DEBUG
[ -n "''${DEBUG:-}" ] && set -x
PROPOSAL_ARGS=(
"--max-block-body-size" "90112"
"--number-of-pools" "500"
Expand Down Expand Up @@ -608,7 +634,9 @@ in {
name = "generate-and-run-node";
runtimeInputs = [packages.cardano-cli nixpkgs.coreutils];
text = ''
# Inputs: $SLOT_LENGTH, $SECURITY_PARAM, $TESTNET_MAGIC, $TEMPLATE_DIR, $GENESIS_DIR, $NUM_GENESIS_KEYS
# Inputs: $SLOT_LENGTH, $SECURITY_PARAM, $TESTNET_MAGIC, $TEMPLATE_DIR, $GENESIS_DIR, $NUM_GENESIS_KEYS, $DEBUG
[ -n "''${DEBUG:-}" ] && set -x
export SLOT_LENGTH=''${SLOT_LENGTH:-200}
export SECURITY_PARAM=''${SECURITY_PARAM:-8}
export NUM_GENESIS_KEYS=''${NUM_GENESIS_KEYS:-1}
Expand Down

0 comments on commit 4df11ae

Please sign in to comment.