From 81611bf30eb8f2c020e744b5cf732843972389ec Mon Sep 17 00:00:00 2001 From: Barnabas Busa Date: Mon, 18 Aug 2025 15:21:24 +0200 Subject: [PATCH 1/4] feat: rename eip7732 to gloas --- config-example/cl/config.yaml | 28 +++++++++++++++------------- defaults/defaults.env | 12 ++++++------ entrypoint.sh | 6 ------ 3 files changed, 21 insertions(+), 25 deletions(-) diff --git a/config-example/cl/config.yaml b/config-example/cl/config.yaml index 0d0085a..663068f 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,19 @@ 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 +# 20% +PROPOSER_SCORE_BOOST_GLOAS: 20 + + # 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 } From 705b22b7d903d22f180e027f8aec140146fef214 Mon Sep 17 00:00:00 2001 From: Barnabas Busa Date: Tue, 19 Aug 2025 10:16:41 +0200 Subject: [PATCH 2/4] yeet PROPOSER_SCORE_BOOST_GLOAS --- config-example/cl/config.yaml | 2 -- 1 file changed, 2 deletions(-) diff --git a/config-example/cl/config.yaml b/config-example/cl/config.yaml index 663068f..78c7623 100644 --- a/config-example/cl/config.yaml +++ b/config-example/cl/config.yaml @@ -222,8 +222,6 @@ MIN_EPOCHS_FOR_DATA_COLUMN_SIDECARS_REQUESTS: $MIN_EPOCHS_FOR_DATA_COLUMN_SIDECA # Gloas # 2**7 (= 128) payloads MAX_REQUEST_PAYLOADS: 128 -# 20% -PROPOSER_SCORE_BOOST_GLOAS: 20 # EIP7441 From a644f26417e3b42f695e1dd9412308ae2a7e83f4 Mon Sep 17 00:00:00 2001 From: Barnabas Busa Date: Tue, 19 Aug 2025 10:20:19 +0200 Subject: [PATCH 3/4] add ams --- apps/el-gen/generate_genesis.sh | 44 +++++++++++++++++++++++++-------- 1 file changed, 34 insertions(+), 10 deletions(-) diff --git a/apps/el-gen/generate_genesis.sh b/apps/el-gen/generate_genesis.sh index 2d941c2..6753b0e 100755 --- a/apps/el-gen/generate_genesis.sh +++ b/apps/el-gen/generate_genesis.sh @@ -62,7 +62,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 +160,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 +352,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 +424,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 +475,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": '"$gloas_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 +540,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" From 3c28a6601c947291832fd8b5d12711858c028ff8 Mon Sep 17 00:00:00 2001 From: Barnabas Busa Date: Tue, 19 Aug 2025 10:34:39 +0200 Subject: [PATCH 4/4] fix --- README.md | 3 +++ apps/el-gen/generate_genesis.sh | 5 +++-- 2 files changed, 6 insertions(+), 2 deletions(-) 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 6753b0e..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 @@ -484,7 +485,7 @@ genesis_add_gloas() { # genesis.json genesis_add_json $tmp_dir/genesis.json '.config += { - "amsterdamTime": '"$gloas_time"' + "amsterdamTime": '"$amsterdam_time"' }' # chainspec.json