@@ -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