Skip to content

Commit 46e7819

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

File tree

1 file changed

+95
-26
lines changed

1 file changed

+95
-26
lines changed

Justfile

Lines changed: 95 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1136,31 +1136,30 @@ start-demo-ng:
11361136

11371137
export ENV=custom
11381138
export GENESIS_DIR=state-demo-ng
1139-
export KEY_DIR=state-demo-ng/envs/custom
1140-
export DATA_DIR=state-demo-ng/rundir
1141-
1142-
export CARDANO_NODE_SOCKET_PATH="$STATEDIR/node-demo.socket"
1143-
export TESTNET_MAGIC=42
1144-
1145-
export NUM_GENESIS_KEYS=3
1146-
export POOL_NAMES="sp-1 sp-2 sp-3"
1147-
export STAKE_POOL_DIR=state-demo-ng/groups/stake-pools
1148-
11491139
export BULK_CREDS=state-demo-ng/bulk.creds.all.json
1140+
export CC_DIR=state-demo-ng/envs/custom/cc-keys
1141+
export DATA_DIR=state-demo-ng/rundir
1142+
export KEY_DIR=state-demo-ng/envs/custom
11501143
export PAYMENT_KEY=state-demo-ng/envs/custom/utxo-keys/rich-utxo
1151-
1152-
export UNSTABLE=true
1153-
export UNSTABLE_LIB=true
1154-
export USE_ENCRYPTION=true
1155-
export USE_DECRYPTION=true
1156-
export USE_NODE_CONFIG_BP=false
1157-
export USE_CREATE_TESTNET_DATA=true
1158-
export DEBUG=true
1159-
1160-
export SECURITY_PARAM=8
1161-
export SLOT_LENGTH=100
1144+
export STAKE_POOL_DIR=state-demo-ng/groups/stake-pools
1145+
export CARDANO_NODE_SOCKET_PATH="$STATEDIR/node-demo.socket"
11621146
export START_TIME=$(date --utc +"%Y-%m-%dT%H:%M:%SZ" --date " now + 30 seconds")
11631147

1148+
export NUM_CC_KEYS="${NUM_CC_KEYS:-1}"
1149+
export NUM_GENESIS_KEYS="${NUM_GENESIS_KEYS:-3}"
1150+
export TESTNET_MAGIC="${TESTNET_MAGIC:-42}"
1151+
export POOL_MARGIN="${POOL_MARGIN:-"0.5"}"
1152+
export POOL_NAMES="${POOL_NAMES:-"sp-1 sp-2 sp-3"}"
1153+
export UNSTABLE="${UNSTABLE:-true}"
1154+
export UNSTABLE_LIB="${UNSTABLE_LIB:-true}"
1155+
export USE_ENCRYPTION="${USE_ENCRYPTION:-true}"
1156+
export USE_DECRYPTION="${USE_DECRYPTION:-true}"
1157+
export USE_NODE_CONFIG_BP="${USE_NODE_CONFIG_BP:-false}"
1158+
export DEBUG="${DEBUG:-true}"
1159+
export SECURITY_PARAM="${SECURITY_PARAM:-8}"
1160+
export SLOT_LENGTH="${SLOT_LENGTH:-100}"
1161+
export FIXED_DELAY_SECS="${FIXED_DELAY_SECS:-10}"
1162+
11641163
export ERA_CMD=conway
11651164

11661165
nix run .#job-gen-custom-node-config-data-ng
@@ -1193,20 +1192,21 @@ start-demo-ng:
11931192
POOL_RELAY=demo-ng.local \
11941193
POOL_RELAY_PORT=3001 \
11951194
nix run .#job-register-stake-pools
1196-
echo "Sleeping 10 seconds until $(date -d @$(($(date +%s) + 7)))"
1195+
echo "Sleeping 10 seconds until $(date -d @$(($(date +%s) + 10)))"
11971196
sleep 10
11981197
echo
11991198

12001199
echo "Delegating rewards stake key..."
12011200
nix run .#job-delegate-rewards-stake-key
1202-
echo "Sleeping 10 seconds until $(date -d @$(($(date +%s) + 7)))"
1201+
echo "Sleeping 10 seconds until $(date -d @$(($(date +%s) + 10)))"
12031202
sleep 10
12041203
echo
12051204

12061205
echo "Retiring the bootstrap pool..."
12071206
BOOTSTRAP_POOL_DIR="$KEY_DIR/bootstrap-pool" \
12081207
RICH_KEY="$KEY_DIR/utxo-keys/rich-utxo" \
12091208
nix run .#job-retire-bootstrap-pool
1209+
echo "Sleeping 10 seconds until $(date -d @$(($(date +%s) + 10)))"
12101210
sleep 10
12111211
echo
12121212

@@ -1216,18 +1216,87 @@ start-demo-ng:
12161216
EPOCH="$1"
12171217

12181218
while true; do
1219-
[ "$(jq -re ".$TYPE" <<< "$(just query-tip demo)")" = "$TARGET" ] && break;
1219+
[ "$(jq -re ".$TYPE" <<< "$(just query-tip demo "$TESTNET_MAGIC")")" = "$TARGET" ] && break;
12201220
sleep 2
12211221
done
12221222
}
12231223

1224-
echo "Sleeping until epoch 1 when the bootstrap pool retires"
1224+
echo "Authorizing the CC member's hot credentials..."
1225+
INDEX=1 \
1226+
nix run .#job-register-cc
1227+
echo "Sleeping $FIXED_DELAY_SECS seconds until $(date -d @$(($(date +%s) + $FIXED_DELAY_SECS)))"
1228+
sleep "$FIXED_DELAY_SECS"
1229+
echo
1230+
1231+
# If both cost model and plomin HF are submitted in the same epoch and
1232+
# ratified in the same epoch, cost model may fail to enact.
1233+
echo "Submitting a Plomin prep cost model action..."
1234+
PROPOSAL_ARGS=("--cost-model-file" "scripts/cost-models/mainnet-plutusv3-pv10-prep.json")
1235+
ACTION="create-protocol-parameters-update" \
1236+
STAKE_KEY="$STAKE_POOL_DIR/no-deploy/sp-1-owner-stake" \
1237+
nix run .#job-submit-gov-action -- "${PROPOSAL_ARGS[@]}"
1238+
echo "Sleeping until cost model can be voted on, epoch 1"
12251239
WAIT_FOR_TIP "epoch" "1"
12261240
echo
12271241

1228-
just query-tip demo
1242+
echo "Submitting a Plomin hard fork action..."
1243+
PROPOSAL_ARGS=("--protocol-major-version" "10" "--protocol-minor-version" "0")
1244+
ACTION="create-hardfork" \
1245+
STAKE_KEY="$STAKE_POOL_DIR/no-deploy/sp-1-owner-stake" \
1246+
nix run .#job-submit-gov-action -- "${PROPOSAL_ARGS[@]}"
1247+
echo "Sleeping $FIXED_DELAY_SECS seconds until $(date -d @$(($(date +%s) + $FIXED_DELAY_SECS)))"
1248+
sleep "$FIXED_DELAY_SECS"
1249+
echo
1250+
1251+
# Only the CC member needs to approve the cost model, but CC and SPOs need to approve the HF
1252+
echo "Submitting the CC vote for cost model..."
1253+
ACTION_TX_ID=$(
1254+
cardano-cli latest query proposals --testnet-magic "$TESTNET_MAGIC" --all-proposals \
1255+
| jq -r 'map(select(.proposalProcedure.govAction.tag == "ParameterChange")) | .[0].actionId.txId'
1256+
) \
1257+
DECISION=yes \
1258+
ROLE=cc \
1259+
VOTE_KEY="$CC_DIR/cc-1-hot" \
1260+
nix run .#job-submit-vote
1261+
echo "Sleeping until plomin HF can be voted on, epoch 2"
1262+
WAIT_FOR_TIP "epoch" "2"
1263+
echo
1264+
1265+
echo "Submitting the CC vote for the Plomin hard fork..."
1266+
export ACTION_TX_ID=$(
1267+
cardano-cli latest query proposals --testnet-magic "$TESTNET_MAGIC" --all-proposals \
1268+
| jq -r 'map(select(.proposalProcedure.govAction.tag == "HardForkInitiation")) | .[0].actionId.txId'
1269+
)
1270+
DECISION=yes \
1271+
ROLE=cc \
1272+
VOTE_KEY="$CC_DIR/cc-1-hot" \
1273+
nix run .#job-submit-vote
1274+
echo "Sleeping $FIXED_DELAY_SECS seconds until $(date -d @$(($(date +%s) + $FIXED_DELAY_SECS)))"
1275+
sleep "$FIXED_DELAY_SECS"
1276+
echo
1277+
1278+
POOL_NAME_ARR=($POOL_NAMES)
1279+
for i in $(seq 1 "${#POOL_NAME_ARR[@]}"); do
1280+
echo "Submitting the pool $i vote for the Plomin hard fork..."
1281+
DECISION=yes \
1282+
ROLE=spo \
1283+
VOTE_KEY="$STAKE_POOL_DIR/no-deploy/sp-${i}-cold" \
1284+
nix run .#job-submit-vote
1285+
echo "Sleeping $FIXED_DELAY_SECS seconds until $(date -d @$(($(date +%s) + $FIXED_DELAY_SECS)))"
1286+
sleep "$FIXED_DELAY_SECS"
1287+
done
1288+
echo "Sleeping until epoch 3 for the plomin HF votes to register..."
1289+
WAIT_FOR_TIP "epoch" "3"
1290+
echo
1291+
1292+
echo "Sleeping until epoch 4 for the Plomin HF action to ratify..."
1293+
WAIT_FOR_TIP "epoch" "4"
1294+
echo
1295+
1296+
just query-tip demo "$TESTNET_MAGIC"
12291297
echo
12301298
echo "Finished sequence..."
1299+
echo "Note that any further gov actions will require a constitution to be adopted."
12311300
echo
12321301

12331302
# Start a local node for a specific env

0 commit comments

Comments
 (0)