Skip to content

Commit 7d9efce

Browse files
committed
imp: update start-demo recipe for plomin hf
1 parent c314884 commit 7d9efce

File tree

1 file changed

+104
-22
lines changed

1 file changed

+104
-22
lines changed

Justfile

Lines changed: 104 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -912,32 +912,40 @@ start-demo:
912912

913913
export ENV=custom
914914
export GENESIS_DIR=state-demo
915-
export KEY_DIR=state-demo/envs/custom
916-
export DATA_DIR=state-demo/rundir
917-
export STAKE_POOL_DIR=state-demo/groups/stake-pools
918915
export BULK_CREDS=state-demo/bulk.creds.all.json
916+
export CC_DIR=state-demo/envs/custom/cc-keys
917+
export DATA_DIR=state-demo/rundir
918+
export KEY_DIR=state-demo/envs/custom
919919
export PAYMENT_KEY=state-demo/envs/custom/utxo-keys/rich-utxo
920+
export STAKE_POOL_DIR=state-demo/groups/stake-pools
920921
export CARDANO_NODE_SOCKET_PATH="$STATEDIR/node-demo.socket"
921922
export START_TIME=$(date --utc +"%Y-%m-%dT%H:%M:%SZ" --date " now + 30 seconds")
922923

923-
[ -z "${NUM_GENESIS_KEYS:-}" ] && export NUM_GENESIS_KEYS=3
924-
[ -z "${TESTNET_MAGIC:-}" ] && export TESTNET_MAGIC=42
925-
[ -z "${POOL_MARGIN:-}" ] && export POOL_MARGIN="0.5"
926-
[ -z "${POOL_NAMES:-}" ] && export POOL_NAMES="sp-1 sp-2 sp-3"
927-
[ -z "${UNSTABLE:-}" ] && export UNSTABLE=true
928-
[ -z "${UNSTABLE_LIB:-}" ] && export UNSTABLE_LIB=true
929-
[ -z "${USE_ENCRYPTION:-}" ] && export USE_ENCRYPTION=true
930-
[ -z "${USE_DECRYPTION:-}" ] && export USE_DECRYPTION=true
931-
[ -z "${USE_NODE_CONFIG_BP:-}" ] && export USE_NODE_CONFIG_BP=false
932-
[ -z "${DEBUG:-}" ] && export DEBUG=true
933-
[ -z "${SECURITY_PARAM:-}" ] && export SECURITY_PARAM=8
934-
[ -z "${SLOT_LENGTH:-}" ] && export SLOT_LENGTH=1000
935-
[ -z "${FIXED_DELAY_SECS:-}" ] && export FIXED_DELAY_SECS=10
936-
937-
if [ "${USE_CREATE_TESTNET_DATA:-false}" = true ]; then
924+
export NUM_CC_KEYS="${NUM_CC_KEYS:-1}"
925+
export NUM_GENESIS_KEYS="${NUM_GENESIS_KEYS:-3}"
926+
export TESTNET_MAGIC="${TESTNET_MAGIC:-42}"
927+
export POOL_MARGIN="${POOL_MARGIN:-"0.5"}"
928+
export POOL_NAMES="${POOL_NAMES:-"sp-1 sp-2 sp-3"}"
929+
export UNSTABLE="${UNSTABLE:-true}"
930+
export UNSTABLE_LIB="${UNSTABLE_LIB:-true}"
931+
export USE_CREATE_TESTNET_DATA="${USE_CREATE_TESTNET_DATA:-true}"
932+
export USE_ENCRYPTION="${USE_ENCRYPTION:-true}"
933+
export USE_DECRYPTION="${USE_DECRYPTION:-true}"
934+
export USE_NODE_CONFIG_BP="${USE_NODE_CONFIG_BP:-false}"
935+
export DEBUG="${DEBUG:-true}"
936+
export SECURITY_PARAM="${SECURITY_PARAM:-8}"
937+
export SLOT_LENGTH="${SLOT_LENGTH:-100}"
938+
export FIXED_DELAY_SECS="${FIXED_DELAY_SECS:-10}"
939+
940+
if [ "$USE_CREATE_TESTNET_DATA" = true ]; then
938941
ERA_CMD="conway" \
939942
nix run .#job-gen-custom-node-config-data
940943
else
944+
for i in "$(seq 1 "$NUM_CC_KEYS")"; do
945+
INDEX="$i" \
946+
nix run .#job-gen-keys-cc
947+
done
948+
941949
ERA_CMD="alonzo" \
942950
nix run .#job-gen-custom-node-config
943951
fi
@@ -967,7 +975,7 @@ start-demo:
967975
sleep 30
968976
echo
969977

970-
if [ "${USE_CREATE_TESTNET_DATA:-false}" = false ]; then
978+
if [ "$USE_CREATE_TESTNET_DATA" = false ]; then
971979
echo "Moving genesis utxo in epoch 0..."
972980
BYRON_SIGNING_KEY="$KEY_DIR"/utxo-keys/shelley.000.skey \
973981
ERA_CMD="alonzo" \
@@ -1009,7 +1017,7 @@ start-demo:
10091017
MAJOR_VERSION=7 \
10101018
ERA_CMD="alonzo" \
10111019
nix run .#job-update-proposal-hard-fork
1012-
echo "Sleeping until babbage"
1020+
echo "Sleeping until babbage, epoch 2"
10131021
WAIT_FOR_TIP "era" "Babbage"
10141022
echo
10151023

@@ -1018,7 +1026,7 @@ start-demo:
10181026
MAJOR_VERSION=8 \
10191027
ERA_CMD="babbage" \
10201028
nix run .#job-update-proposal-hard-fork
1021-
echo "Sleeping until epoch 3"
1029+
echo "Sleeping until epoch babbage (intra-era), epoch 3"
10221030
WAIT_FOR_TIP "epoch" "3"
10231031
echo
10241032

@@ -1027,13 +1035,87 @@ start-demo:
10271035
MAJOR_VERSION=9 \
10281036
ERA_CMD="babbage" \
10291037
nix run .#job-update-proposal-hard-fork
1030-
echo "Sleeping until epoch conway"
1038+
echo "Sleeping until conway, epoch 4"
10311039
WAIT_FOR_TIP "era" "Conway"
10321040
echo
10331041

1042+
echo "Authorizing the CC member's hot credentials..."
1043+
INDEX=1 \
1044+
nix run .#job-register-cc
1045+
echo "Sleeping $FIXED_DELAY_SECS seconds until $(date -d @$(($(date +%s) + $FIXED_DELAY_SECS)))"
1046+
sleep "$FIXED_DELAY_SECS"
1047+
echo
1048+
1049+
# If both cost model and plomin HF are submitted in the same epoch and
1050+
# ratified in the same epoch, cost model may fail to enact.
1051+
echo "Submitting a Plomin prep cost model action..."
1052+
PROPOSAL_ARGS=("--cost-model-file" "scripts/cost-models/mainnet-plutusv3-pv10-prep.json")
1053+
ACTION="create-protocol-parameters-update" \
1054+
STAKE_KEY="$STAKE_POOL_DIR/no-deploy/sp-1-owner-stake" \
1055+
nix run .#job-submit-gov-action -- "${PROPOSAL_ARGS[@]}"
1056+
echo "Sleeping $FIXED_DELAY_SECS seconds until $(date -d @$(($(date +%s) + $FIXED_DELAY_SECS)))"
1057+
echo "Sleeping until cost model can be voted on, epoch 5"
1058+
WAIT_FOR_TIP "epoch" "5"
1059+
echo
1060+
1061+
echo "Submitting a Plomin hard fork action..."
1062+
PROPOSAL_ARGS=("--protocol-major-version" "10" "--protocol-minor-version" "0")
1063+
ACTION="create-hardfork" \
1064+
STAKE_KEY="$STAKE_POOL_DIR/no-deploy/sp-1-owner-stake" \
1065+
nix run .#job-submit-gov-action -- "${PROPOSAL_ARGS[@]}"
1066+
echo "Sleeping $FIXED_DELAY_SECS seconds until $(date -d @$(($(date +%s) + $FIXED_DELAY_SECS)))"
1067+
sleep "$FIXED_DELAY_SECS"
1068+
echo
1069+
1070+
# Only the CC member needs to approve the cost model, but CC and SPOs need to approve the HF
1071+
echo "Submitting the CC vote for cost model..."
1072+
ACTION_TX_ID=$(
1073+
cardano-cli latest query proposals --testnet-magic "$TESTNET_MAGIC" --all-proposals \
1074+
| jq -r 'map(select(.proposalProcedure.govAction.tag == "ParameterChange")) | .[0].actionId.txId'
1075+
) \
1076+
DECISION=yes \
1077+
ROLE=cc \
1078+
VOTE_KEY="$CC_DIR/cc-1-hot" \
1079+
nix run .#job-submit-vote
1080+
echo "Sleeping until plomin HF can be voted on, epoch 6"
1081+
WAIT_FOR_TIP "epoch" "6"
1082+
echo
1083+
1084+
echo "Submitting the CC vote for the Plomin hard fork..."
1085+
export ACTION_TX_ID=$(
1086+
cardano-cli latest query proposals --testnet-magic "$TESTNET_MAGIC" --all-proposals \
1087+
| jq -r 'map(select(.proposalProcedure.govAction.tag == "HardForkInitiation")) | .[0].actionId.txId'
1088+
)
1089+
DECISION=yes \
1090+
ROLE=cc \
1091+
VOTE_KEY="$CC_DIR/cc-1-hot \
1092+
nix run .#job-submit-vote
1093+
echo "Sleeping $FIXED_DELAY_SECS seconds until $(date -d @$(($(date +%s) + $FIXED_DELAY_SECS)))"
1094+
sleep "$FIXED_DELAY_SECS"
1095+
echo
1096+
1097+
POOL_NAME_ARR=($POOL_NAMES)
1098+
for i in $(seq 1 "${#POOL_NAME_ARR[@]}"); do
1099+
echo "Submitting the pool $i vote for the Plomin hard fork..."
1100+
DECISION=yes \
1101+
ROLE=spo \
1102+
VOTE_KEY="$STAKE_POOL_DIR/no-deploy/sp-${i}-cold" \
1103+
nix run .#job-submit-vote
1104+
echo "Sleeping $FIXED_DELAY_SECS seconds until $(date -d @$(($(date +%s) + $FIXED_DELAY_SECS)))"
1105+
sleep "$FIXED_DELAY_SECS"
1106+
done
1107+
echo "Sleeping until epoch 7 for the plomin HF votes to register..."
1108+
WAIT_FOR_TIP "epoch" "7"
1109+
echo
1110+
1111+
echo "Sleeping until epoch 8 for the Plomin HF action to ratify..."
1112+
WAIT_FOR_TIP "epoch" "8"
1113+
echo
1114+
10341115
just query-tip demo "$TESTNET_MAGIC"
10351116
echo
10361117
echo "Finished sequence..."
1118+
echo "Note that any further gov actions will require a constitution to be adopted."
10371119
echo
10381120

10391121
# Start a fork to conway demo using create-testnet-data-ng job

0 commit comments

Comments
 (0)