diff --git a/README.md b/README.md index 255a99f..cb8d051 100644 --- a/README.md +++ b/README.md @@ -45,6 +45,9 @@ curl -H "Content-Type: application/json" --data-raw '{ "jsonrpc":"2.0","method": v1 -> bellatrix genesis state v2 -> capella genesis state v3 -> deneb genesis state +v4 -> electra genesis state +v5 -> fulu genesis state +v6 -> gloas genesis state verkle-gen -> verkle genesis state ### Available tools within the image diff --git a/apps/el-gen/generate_genesis.sh b/apps/el-gen/generate_genesis.sh index 2d941c2..3e63876 100755 --- a/apps/el-gen/generate_genesis.sh +++ b/apps/el-gen/generate_genesis.sh @@ -21,7 +21,8 @@ generate_genesis() { # 4 - deneb / cancun # 5 - electra / prague # 6 - fulu / osaka - # 7 - eip7805 / eip7805 + # 7 - gloas / amsterdam + # 8 - eip7805 / eip7805 if [ "$CHAIN_ID" == "1" ]; then # mainnet shadowfork @@ -62,7 +63,8 @@ generate_genesis() { [ $has_fork -lt 4 ] && [ ! "$DENEB_FORK_EPOCH" == "18446744073709551615" ] && genesis_add_deneb $tmp_dir [ $has_fork -lt 5 ] && [ ! "$ELECTRA_FORK_EPOCH" == "18446744073709551615" ] && genesis_add_electra $tmp_dir [ $has_fork -lt 6 ] && [ ! "$FULU_FORK_EPOCH" == "18446744073709551615" ] && genesis_add_fulu $tmp_dir - [ $has_fork -lt 7 ] && [ ! "$EIP7805_FORK_EPOCH" == "18446744073709551615" ] && genesis_add_eip7805 $tmp_dir + [ $has_fork -lt 7 ] && [ ! "$GLOAS_FORK_EPOCH" == "18446744073709551615" ] && genesis_add_gloas $tmp_dir + [ $has_fork -lt 8 ] && [ ! "$EIP7805_FORK_EPOCH" == "18446744073709551615" ] && genesis_add_eip7805 $tmp_dir genesis_add_bpo $tmp_dir if [ "$is_shadowfork" == "0" ]; then @@ -159,12 +161,12 @@ analyze_basefee_update_fraction() { MAX_BLOBS=$1 TARGET_BLOBS=$2 BASE_FEE_UPDATE_FRACTION=$3 - + GAS_PER_BLOB=$((2**17)) - + fee_up=$(echo "e((($MAX_BLOBS - $TARGET_BLOBS) * $GAS_PER_BLOB) / $BASE_FEE_UPDATE_FRACTION)" | bc -l) fee_down=$(echo "e(-($TARGET_BLOBS * $GAS_PER_BLOB) / $BASE_FEE_UPDATE_FRACTION)" | bc -l) - + # Calculate percentages fee_up_pct=$(echo "100 * ($fee_up - 1)" | bc -l) fee_down_pct=$(echo "100 * (1 - $fee_down)" | bc -l) @@ -351,14 +353,14 @@ genesis_add_electra() { echo "Adding electra genesis properties" prague_time=$(genesis_get_activation_time $ELECTRA_FORK_EPOCH) prague_time_hex="0x$(printf "%x" $prague_time)" - + # Calculate basefee update fraction if not specified if [ -z "$BASEFEE_UPDATE_FRACTION_ELECTRA" ] || [ "$BASEFEE_UPDATE_FRACTION_ELECTRA" == "0" ]; then BASEFEE_UPDATE_FRACTION_ELECTRA=$(calculate_basefee_update_fraction $MAX_BLOBS_PER_BLOCK_ELECTRA) echo "Calculated BASEFEE_UPDATE_FRACTION_ELECTRA: $BASEFEE_UPDATE_FRACTION_ELECTRA" analyze_basefee_update_fraction $MAX_BLOBS_PER_BLOCK_ELECTRA $TARGET_BLOBS_PER_BLOCK_ELECTRA $BASEFEE_UPDATE_FRACTION_ELECTRA fi - + basefee_update_fraction_electra_hex="0x$(printf "%x" $BASEFEE_UPDATE_FRACTION_ELECTRA)" # load electra system contracts system_contracts=$(cat /apps/el-gen/system-contracts.yaml | yq -c) @@ -423,14 +425,14 @@ genesis_add_fulu() { echo "Adding fulu genesis properties" osaka_time=$(genesis_get_activation_time $FULU_FORK_EPOCH) osaka_time_hex="0x$(printf "%x" $osaka_time)" - + # Calculate basefee update fraction if not specified if [ -z "$BASEFEE_UPDATE_FRACTION_ELECTRA" ] || [ "$BASEFEE_UPDATE_FRACTION_ELECTRA" == "0" ]; then BASEFEE_UPDATE_FRACTION_ELECTRA=$(calculate_basefee_update_fraction $MAX_BLOBS_PER_BLOCK_ELECTRA) echo "Calculated BASEFEE_UPDATE_FRACTION_ELECTRA: $BASEFEE_UPDATE_FRACTION_ELECTRA" analyze_basefee_update_fraction $MAX_BLOBS_PER_BLOCK_ELECTRA $TARGET_BLOBS_PER_BLOCK_ELECTRA $BASEFEE_UPDATE_FRACTION_ELECTRA fi - + basefee_update_fraction_electra_hex="0x$(printf "%x" $BASEFEE_UPDATE_FRACTION_ELECTRA)" # genesis.json @@ -474,6 +476,29 @@ genesis_add_fulu() { } +# Add gloas fork properties +genesis_add_gloas() { + tmp_dir=$1 + echo "Adding gloas genesis properties" + amsterdam_time=$(genesis_get_activation_time $GLOAS_FORK_EPOCH) + amsterdam_time_hex="0x$(printf "%x" $amsterdam_time)" + + # genesis.json + genesis_add_json $tmp_dir/genesis.json '.config += { + "amsterdamTime": '"$amsterdam_time"' + }' + + # chainspec.json + genesis_add_json $tmp_dir/chainspec.json '.params += { + "eip7928TransitionTimestamp": "'$amsterdam_time_hex'" + }' + + # besu.json + genesis_add_json $tmp_dir/besu.json '.config += { + "amsterdamTime": '"$amsterdam_time"' + }' +} + # add eip7805 fork properties genesis_add_eip7805() { tmp_dir=$1 @@ -516,14 +541,14 @@ genesis_add_bpo() { max_var="BPO_${i}_MAX_BLOBS" fraction_var="BPO_${i}_BASE_FEE_UPDATE_FRACTION" fraction_value=${!fraction_var} - + # Calculate basefee update fraction if not specified if [ -z "$fraction_value" ] || [ "$fraction_value" == "0" ]; then fraction_value=$(calculate_basefee_update_fraction ${!max_var} ${!target_var}) echo "Calculated BPO_${i}_BASE_FEE_UPDATE_FRACTION: $fraction_value" analyze_basefee_update_fraction ${!max_var} ${!target_var} $fraction_value fi - + fraction_var_hex="0x$(printf "%x" $fraction_value)" max_blobs_per_tx_var="BPO_${i}_MAX_BLOBS_PER_TX" diff --git a/config-example/cl/config.yaml b/config-example/cl/config.yaml index 0d0085a..78c7623 100644 --- a/config-example/cl/config.yaml +++ b/config-example/cl/config.yaml @@ -58,12 +58,12 @@ ELECTRA_FORK_EPOCH: $ELECTRA_FORK_EPOCH # Fulu FULU_FORK_VERSION: $FULU_FORK_VERSION FULU_FORK_EPOCH: $FULU_FORK_EPOCH +# GLOAS +GLOAS_FORK_VERSION: $GLOAS_FORK_VERSION +GLOAS_FORK_EPOCH: $GLOAS_FORK_EPOCH # EIP7441 EIP7441_FORK_VERSION: $EIP7441_FORK_VERSION EIP7441_FORK_EPOCH: $EIP7441_FORK_EPOCH -# EIP7732 -EIP7732_FORK_VERSION: $EIP7732_FORK_VERSION -EIP7732_FORK_EPOCH: $EIP7732_FORK_EPOCH # EIP7805 EIP7805_FORK_VERSION: $EIP7805_FORK_VERSION EIP7805_FORK_EPOCH: $EIP7805_FORK_EPOCH @@ -95,15 +95,15 @@ SYNC_MESSAGE_DUE_BPS: $SYNC_MESSAGE_DUE_BPS # 6667 basis points, ~67% of SLOT_DURATION_MS CONTRIBUTION_DUE_BPS: $CONTRIBUTION_DUE_BPS -# EIP7732 +# Gloas # 2500 basis points, 25% of SLOT_DURATION_MS -ATTESTATION_DUE_BPS_EIP7732: $ATTESTATION_DUE_BPS_EIP7732 +ATTESTATION_DUE_BPS_GLOAS: $ATTESTATION_DUE_BPS_GLOAS # 5000 basis points, 50% of SLOT_DURATION_MS -AGGREGRATE_DUE_BPS_EIP7732: $AGGREGRATE_DUE_BPS_EIP7732 +AGGREGRATE_DUE_BPS_GLOAS: $AGGREGRATE_DUE_BPS_GLOAS # 2500 basis points, 25% of SLOT_DURATION_MS -SYNC_MESSAGE_DUE_BPS_EIP7732: $SYNC_MESSAGE_DUE_BPS_EIP7732 +SYNC_MESSAGE_DUE_BPS_GLOAS: $SYNC_MESSAGE_DUE_BPS_GLOAS # 5000 basis points, 50% of SLOT_DURATION_MS -CONTRIBUTION_DUE_BPS_EIP7732: $CONTRIBUTION_DUE_BPS_EIP7732 +CONTRIBUTION_DUE_BPS_GLOAS: $CONTRIBUTION_DUE_BPS_GLOAS # 7500 basis points, 75% of SLOT_DURATION_MS PAYLOAD_ATTESTATION_DUE_BPS: $PAYLOAD_ATTESTATION_DUE_BPS @@ -219,17 +219,17 @@ BALANCE_PER_ADDITIONAL_CUSTODY_GROUP: 32000000000 # 2**12 (= 4,096) epochs MIN_EPOCHS_FOR_DATA_COLUMN_SIDECARS_REQUESTS: $MIN_EPOCHS_FOR_DATA_COLUMN_SIDECARS_REQUESTS +# Gloas +# 2**7 (= 128) payloads +MAX_REQUEST_PAYLOADS: 128 + + # EIP7441 # 2**8 (= 256) epochs EPOCHS_PER_SHUFFLING_PHASE: 256 # 2**1 (= 2) epochs PROPOSER_SELECTION_GAP: 2 -# EIP7732 -# 2**7 (= 128) payloads -MAX_REQUEST_PAYLOADS: 128 -# 20% -PROPOSER_SCORE_BOOST_EIP7732: 20 # EIP7805 # 2**4 (= 16) inclusion lists diff --git a/defaults/defaults.env b/defaults/defaults.env index 0b9a1e9..b3124cd 100644 --- a/defaults/defaults.env +++ b/defaults/defaults.env @@ -22,8 +22,8 @@ export ELECTRA_FORK_VERSION="${ELECTRA_FORK_VERSION:-0x60000000}" export ELECTRA_FORK_EPOCH="${ELECTRA_FORK_EPOCH:-0}" export FULU_FORK_VERSION="${FULU_FORK_VERSION:-0x70000000}" export FULU_FORK_EPOCH="${FULU_FORK_EPOCH:-18446744073709551615}" -export EIP7732_FORK_VERSION="${EIP7732_FORK_VERSION:-0x80000000}" -export EIP7732_FORK_EPOCH="${EIP7732_FORK_EPOCH:-18446744073709551615}" +export GLOAS_FORK_VERSION="${GLOAS_FORK_VERSION:-0x80000000}" +export GLOAS_FORK_EPOCH="${GLOAS_FORK_EPOCH:-18446744073709551615}" export EIP7805_FORK_VERSION="${EIP7805_FORK_VERSION:-0x90000000}" export EIP7805_FORK_EPOCH="${EIP7805_FORK_EPOCH:-18446744073709551615}" export EIP7441_FORK_VERSION="${EIP7441_FORK_VERSION:-0xa0000000}" @@ -47,10 +47,10 @@ export ATTESTATION_DUE_BPS="${ATTESTATION_DUE_BPS:-3333}" export AGGREGRATE_DUE_BPS="${AGGREGRATE_DUE_BPS:-6667}" export SYNC_MESSAGE_DUE_BPS="${SYNC_MESSAGE_DUE_BPS:-3333}" export CONTRIBUTION_DUE_BPS="${CONTRIBUTION_DUE_BPS:-6667}" -export ATTESTATION_DUE_BPS_EIP7732="${ATTESTATION_DUE_BPS_EIP7732:-2500}" -export AGGREGRATE_DUE_BPS_EIP7732="${AGGREGRATE_DUE_BPS_EIP7732:-5000}" -export SYNC_MESSAGE_DUE_BPS_EIP7732="${SYNC_MESSAGE_DUE_BPS_EIP7732:-2500}" -export CONTRIBUTION_DUE_BPS_EIP7732="${CONTRIBUTION_DUE_BPS_EIP7732:-5000}" +export ATTESTATION_DUE_BPS_GLOAS="${ATTESTATION_DUE_BPS_GLOAS:-2500}" +export AGGREGRATE_DUE_BPS_GLOAS="${AGGREGRATE_DUE_BPS_GLOAS:-5000}" +export SYNC_MESSAGE_DUE_BPS_GLOAS="${SYNC_MESSAGE_DUE_BPS_GLOAS:-2500}" +export CONTRIBUTION_DUE_BPS_GLOAS="${CONTRIBUTION_DUE_BPS_GLOAS:-5000}" export PAYLOAD_ATTESTATION_DUE_BPS="${PAYLOAD_ATTESTATION_DUE_BPS:-7500}" export VIEW_FREEZE_CUTOFF_BPS="${VIEW_FREEZE_CUTOFF_BPS:-7500}" export INCLUSION_LIST_SUBMISSION_DUE_BPS="${INCLUSION_LIST_SUBMISSION_DUE_BPS:-6667}" diff --git a/entrypoint.sh b/entrypoint.sh index cf3a8a4..a901282 100755 --- a/entrypoint.sh +++ b/entrypoint.sh @@ -77,9 +77,6 @@ add_blob_schedule() { if [ "$INCLUDE_SCHEDULE" = false ]; then # First non-default BPO - add header BLOB_SCHEDULE=" -# Blob Scheduling -# --------------------------------------------------------------- - BLOB_SCHEDULE:" INCLUDE_SCHEDULE=true fi @@ -97,9 +94,6 @@ BLOB_SCHEDULE:" else # Add empty BLOB_SCHEDULE if no non-default BPOs were found echo " -# Blob Scheduling -# --------------------------------------------------------------- - BLOB_SCHEDULE: []" >> "$config_file" fi }