From a536dce91726174befb240de047cc1a07cfd22ae Mon Sep 17 00:00:00 2001 From: Giulio Date: Fri, 6 Dec 2024 14:24:09 +0100 Subject: [PATCH 1/6] save --- configs/mainnet.yaml | 4 ++-- configs/minimal.yaml | 4 ++-- specs/phase0/p2p-interface.md | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/configs/mainnet.yaml b/configs/mainnet.yaml index c2d26ba7e2..633b0b7553 100644 --- a/configs/mainnet.yaml +++ b/configs/mainnet.yaml @@ -114,8 +114,8 @@ DEPOSIT_CONTRACT_ADDRESS: 0x00000000219ab540356cBB839Cbe05303d7705Fa # Networking # --------------------------------------------------------------- -# `10 * 2**20` (= 10485760, 10 MiB) -GOSSIP_MAX_SIZE: 10485760 +# `10 * 2**20` (= 15728640, 15 MiB) +GOSSIP_MAX_SIZE: 15728640 # `2**10` (= 1024) MAX_REQUEST_BLOCKS: 1024 # `2**8` (= 256) diff --git a/configs/minimal.yaml b/configs/minimal.yaml index c1b62e7470..363d450845 100644 --- a/configs/minimal.yaml +++ b/configs/minimal.yaml @@ -115,8 +115,8 @@ DEPOSIT_CONTRACT_ADDRESS: 0x1234567890123456789012345678901234567890 # Networking # --------------------------------------------------------------- -# `10 * 2**20` (= 10485760, 10 MiB) -GOSSIP_MAX_SIZE: 10485760 +# `10 * 2**20` (= 10485760, 15 MiB) +GOSSIP_MAX_SIZE: 15728640 # `2**10` (= 1024) MAX_REQUEST_BLOCKS: 1024 # `2**8` (= 256) diff --git a/specs/phase0/p2p-interface.md b/specs/phase0/p2p-interface.md index 396e4671b8..7819253d50 100644 --- a/specs/phase0/p2p-interface.md +++ b/specs/phase0/p2p-interface.md @@ -193,7 +193,7 @@ This section outlines configurations that are used in this spec. | Name | Value | Description | |---|---|---| -| `GOSSIP_MAX_SIZE` | `10 * 2**20` (= 10485760, 10 MiB) | The maximum allowed size of uncompressed gossip messages. | +| `GOSSIP_MAX_SIZE` | `15 * 2**20` (= 15728640, 15 MiB) | The maximum allowed size of uncompressed gossip messages. | | `MAX_REQUEST_BLOCKS` | `2**10` (= 1024) | Maximum number of blocks in a single request | | `EPOCHS_PER_SUBNET_SUBSCRIPTION` | `2**8` (= 256) | Number of epochs on a subnet subscription (~27 hours) | | `MIN_EPOCHS_FOR_BLOCK_REQUESTS` | `MIN_VALIDATOR_WITHDRAWABILITY_DELAY + CHURN_LIMIT_QUOTIENT // 2` (= 33024, ~5 months) | The minimum epoch range over which a node must serve blocks | From 7f89ac6e703c071f8c90afca57095b6b97cbf27f Mon Sep 17 00:00:00 2001 From: Giulio Date: Fri, 6 Dec 2024 14:39:58 +0100 Subject: [PATCH 2/6] save --- specs/bellatrix/p2p-interface.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/specs/bellatrix/p2p-interface.md b/specs/bellatrix/p2p-interface.md index 1f4c815660..4060a68fe8 100644 --- a/specs/bellatrix/p2p-interface.md +++ b/specs/bellatrix/p2p-interface.md @@ -149,7 +149,7 @@ Per `context = compute_fork_digest(fork_version, genesis_validators_root)`: With the addition of `ExecutionPayload` to `BeaconBlock`s, there is a dynamic field -- `transactions` -- which can validly exceed the `GOSSIP_MAX_SIZE` limit (1 MiB) put in -place at Phase 0, so GOSSIP_MAX_SIZE has increased to 10 Mib on the network. +place at Phase 0, so GOSSIP_MAX_SIZE has increased to 15 Mib on the network. At the `GAS_LIMIT` (~30M) currently seen on mainnet in 2021, a single transaction filled entirely with data at a cost of 16 gas per byte can create a valid `ExecutionPayload` of ~2 MiB. Thus we need a size limit to at least account for From d6ed77f785f7f26739cc552c2764de70f029d128 Mon Sep 17 00:00:00 2001 From: Giulio Date: Fri, 6 Dec 2024 14:40:25 +0100 Subject: [PATCH 3/6] save --- specs/bellatrix/p2p-interface.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/specs/bellatrix/p2p-interface.md b/specs/bellatrix/p2p-interface.md index 4060a68fe8..21a34d0bb4 100644 --- a/specs/bellatrix/p2p-interface.md +++ b/specs/bellatrix/p2p-interface.md @@ -149,7 +149,7 @@ Per `context = compute_fork_digest(fork_version, genesis_validators_root)`: With the addition of `ExecutionPayload` to `BeaconBlock`s, there is a dynamic field -- `transactions` -- which can validly exceed the `GOSSIP_MAX_SIZE` limit (1 MiB) put in -place at Phase 0, so GOSSIP_MAX_SIZE has increased to 15 Mib on the network. +place at Phase 0, so GOSSIP_MAX_SIZE has increased to 10 Mib on the network, then in prospect to a gas limit increase it was increased again to 15 Mib. At the `GAS_LIMIT` (~30M) currently seen on mainnet in 2021, a single transaction filled entirely with data at a cost of 16 gas per byte can create a valid `ExecutionPayload` of ~2 MiB. Thus we need a size limit to at least account for From 3c46981dd42974e90703be354f2cb9b6fd56f4e6 Mon Sep 17 00:00:00 2001 From: Justin Traglia Date: Fri, 6 Dec 2024 08:43:04 -0600 Subject: [PATCH 4/6] Update config comments --- configs/mainnet.yaml | 2 +- configs/minimal.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/configs/mainnet.yaml b/configs/mainnet.yaml index 633b0b7553..c2b3703b66 100644 --- a/configs/mainnet.yaml +++ b/configs/mainnet.yaml @@ -114,7 +114,7 @@ DEPOSIT_CONTRACT_ADDRESS: 0x00000000219ab540356cBB839Cbe05303d7705Fa # Networking # --------------------------------------------------------------- -# `10 * 2**20` (= 15728640, 15 MiB) +# `15 * 2**20` (= 15728640, 15 MiB) GOSSIP_MAX_SIZE: 15728640 # `2**10` (= 1024) MAX_REQUEST_BLOCKS: 1024 diff --git a/configs/minimal.yaml b/configs/minimal.yaml index 363d450845..521e803047 100644 --- a/configs/minimal.yaml +++ b/configs/minimal.yaml @@ -115,7 +115,7 @@ DEPOSIT_CONTRACT_ADDRESS: 0x1234567890123456789012345678901234567890 # Networking # --------------------------------------------------------------- -# `10 * 2**20` (= 10485760, 15 MiB) +# `15 * 2**20` (= 15728640, 15 MiB) GOSSIP_MAX_SIZE: 15728640 # `2**10` (= 1024) MAX_REQUEST_BLOCKS: 1024 From a4c758922a8e4ed7be8b17371db5fc41bc4bc4e2 Mon Sep 17 00:00:00 2001 From: Justin Traglia Date: Fri, 6 Dec 2024 09:16:21 -0600 Subject: [PATCH 5/6] Change Mib to MiB and wrap line --- specs/bellatrix/p2p-interface.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/specs/bellatrix/p2p-interface.md b/specs/bellatrix/p2p-interface.md index 21a34d0bb4..a7127fc6a6 100644 --- a/specs/bellatrix/p2p-interface.md +++ b/specs/bellatrix/p2p-interface.md @@ -149,7 +149,8 @@ Per `context = compute_fork_digest(fork_version, genesis_validators_root)`: With the addition of `ExecutionPayload` to `BeaconBlock`s, there is a dynamic field -- `transactions` -- which can validly exceed the `GOSSIP_MAX_SIZE` limit (1 MiB) put in -place at Phase 0, so GOSSIP_MAX_SIZE has increased to 10 Mib on the network, then in prospect to a gas limit increase it was increased again to 15 Mib. +place at Phase 0, so GOSSIP_MAX_SIZE has increased to 10 MiB on the network, then +in prospect to a gas limit increase it was increased again to 15 MiB. At the `GAS_LIMIT` (~30M) currently seen on mainnet in 2021, a single transaction filled entirely with data at a cost of 16 gas per byte can create a valid `ExecutionPayload` of ~2 MiB. Thus we need a size limit to at least account for From a6b22e5104d7b5963604f95f0321ba77fec9fe09 Mon Sep 17 00:00:00 2001 From: Giulio Date: Fri, 6 Dec 2024 18:50:47 +0100 Subject: [PATCH 6/6] save --- configs/mainnet.yaml | 4 ++-- configs/minimal.yaml | 4 ++-- specs/phase0/p2p-interface.md | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/configs/mainnet.yaml b/configs/mainnet.yaml index 633b0b7553..c13b2f1d40 100644 --- a/configs/mainnet.yaml +++ b/configs/mainnet.yaml @@ -122,8 +122,8 @@ MAX_REQUEST_BLOCKS: 1024 EPOCHS_PER_SUBNET_SUBSCRIPTION: 256 # `MIN_VALIDATOR_WITHDRAWABILITY_DELAY + CHURN_LIMIT_QUOTIENT // 2` (= 33024, ~5 months) MIN_EPOCHS_FOR_BLOCK_REQUESTS: 33024 -# `10 * 2**20` (=10485760, 10 MiB) -MAX_CHUNK_SIZE: 10485760 +# `15 * 2**20` (=15728640, 15 MiB) +MAX_CHUNK_SIZE: 15728640 # 5s TTFB_TIMEOUT: 5 # 10s diff --git a/configs/minimal.yaml b/configs/minimal.yaml index 363d450845..532832a2ec 100644 --- a/configs/minimal.yaml +++ b/configs/minimal.yaml @@ -123,8 +123,8 @@ MAX_REQUEST_BLOCKS: 1024 EPOCHS_PER_SUBNET_SUBSCRIPTION: 256 # [customized] `MIN_VALIDATOR_WITHDRAWABILITY_DELAY + CHURN_LIMIT_QUOTIENT // 2` (= 272) MIN_EPOCHS_FOR_BLOCK_REQUESTS: 272 -# `10 * 2**20` (=10485760, 10 MiB) -MAX_CHUNK_SIZE: 10485760 +# `15 * 2**20` (=15728640, 15 MiB) +MAX_CHUNK_SIZE: 15728640 # 5s TTFB_TIMEOUT: 5 # 10s diff --git a/specs/phase0/p2p-interface.md b/specs/phase0/p2p-interface.md index 7819253d50..8a2dd75c13 100644 --- a/specs/phase0/p2p-interface.md +++ b/specs/phase0/p2p-interface.md @@ -197,7 +197,7 @@ This section outlines configurations that are used in this spec. | `MAX_REQUEST_BLOCKS` | `2**10` (= 1024) | Maximum number of blocks in a single request | | `EPOCHS_PER_SUBNET_SUBSCRIPTION` | `2**8` (= 256) | Number of epochs on a subnet subscription (~27 hours) | | `MIN_EPOCHS_FOR_BLOCK_REQUESTS` | `MIN_VALIDATOR_WITHDRAWABILITY_DELAY + CHURN_LIMIT_QUOTIENT // 2` (= 33024, ~5 months) | The minimum epoch range over which a node must serve blocks | -| `MAX_CHUNK_SIZE` | `10 * 2**20` (=10485760, 10 MiB) | The maximum allowed size of uncompressed req/resp chunked responses. | +| `MAX_CHUNK_SIZE` | `15 * 2**20` (=15728640, 15 MiB) | The maximum allowed size of uncompressed req/resp chunked responses. | | `ATTESTATION_PROPAGATION_SLOT_RANGE` | `32` | The maximum number of slots during which an attestation can be propagated. | | `MAXIMUM_GOSSIP_CLOCK_DISPARITY` | `500` | The maximum **milliseconds** of clock disparity assumed between honest nodes. | | `MESSAGE_DOMAIN_INVALID_SNAPPY` | `DomainType('0x00000000')` | 4-byte domain for gossip message-id isolation of *invalid* snappy messages |