Skip to content

Commit 1441442

Browse files
etan-statusTomi-3-0
authored andcommitted
Extend RuntimeConfig with constants for blob sidecar limits (status-im#6957)
Since v1.5.0-alpha.4 the blob sidecar limits are no longer configured in the presets but are now part of the network configuration. This sets up `RuntimeConfig` to parse those values so that can phase out the compile time constants later.
1 parent f3cd907 commit 1441442

File tree

3 files changed

+141
-37
lines changed

3 files changed

+141
-37
lines changed

beacon_chain/rpc/rest_config_api.nim

Lines changed: 60 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ proc installConfigApiHandlers*(router: var RestRouter, node: BeaconNode) =
2424
cachedConfigSpec =
2525
RestApiResponse.prepareJsonResponse(
2626
(
27-
# https://github.com/ethereum/consensus-specs/blob/v1.4.0-alpha.1/presets/mainnet/phase0.yaml
27+
# https://github.com/ethereum/consensus-specs/blob/v1.5.0-beta.2/presets/mainnet/phase0.yaml
2828
MAX_COMMITTEES_PER_SLOT:
2929
Base10.toString(MAX_COMMITTEES_PER_SLOT),
3030
TARGET_COMMITTEE_SIZE:
@@ -39,12 +39,14 @@ proc installConfigApiHandlers*(router: var RestRouter, node: BeaconNode) =
3939
Base10.toString(HYSTERESIS_DOWNWARD_MULTIPLIER),
4040
HYSTERESIS_UPWARD_MULTIPLIER:
4141
Base10.toString(HYSTERESIS_UPWARD_MULTIPLIER),
42+
4243
MIN_DEPOSIT_AMOUNT:
4344
Base10.toString(MIN_DEPOSIT_AMOUNT),
4445
MAX_EFFECTIVE_BALANCE:
4546
Base10.toString(MAX_EFFECTIVE_BALANCE),
4647
EFFECTIVE_BALANCE_INCREMENT:
4748
Base10.toString(EFFECTIVE_BALANCE_INCREMENT),
49+
4850
MIN_ATTESTATION_INCLUSION_DELAY:
4951
Base10.toString(MIN_ATTESTATION_INCLUSION_DELAY),
5052
SLOTS_PER_EPOCH:
@@ -59,6 +61,7 @@ proc installConfigApiHandlers*(router: var RestRouter, node: BeaconNode) =
5961
Base10.toString(SLOTS_PER_HISTORICAL_ROOT),
6062
MIN_EPOCHS_TO_INACTIVITY_PENALTY:
6163
Base10.toString(MIN_EPOCHS_TO_INACTIVITY_PENALTY),
64+
6265
EPOCHS_PER_HISTORICAL_VECTOR:
6366
Base10.toString(EPOCHS_PER_HISTORICAL_VECTOR),
6467
EPOCHS_PER_SLASHINGS_VECTOR:
@@ -67,6 +70,7 @@ proc installConfigApiHandlers*(router: var RestRouter, node: BeaconNode) =
6770
Base10.toString(HISTORICAL_ROOTS_LIMIT),
6871
VALIDATOR_REGISTRY_LIMIT:
6972
Base10.toString(VALIDATOR_REGISTRY_LIMIT),
73+
7074
BASE_REWARD_FACTOR:
7175
Base10.toString(BASE_REWARD_FACTOR),
7276
WHISTLEBLOWER_REWARD_QUOTIENT:
@@ -79,6 +83,7 @@ proc installConfigApiHandlers*(router: var RestRouter, node: BeaconNode) =
7983
Base10.toString(MIN_SLASHING_PENALTY_QUOTIENT),
8084
PROPORTIONAL_SLASHING_MULTIPLIER:
8185
Base10.toString(PROPORTIONAL_SLASHING_MULTIPLIER),
86+
8287
MAX_PROPOSER_SLASHINGS:
8388
Base10.toString(MAX_PROPOSER_SLASHINGS),
8489
MAX_ATTESTER_SLASHINGS:
@@ -97,10 +102,12 @@ proc installConfigApiHandlers*(router: var RestRouter, node: BeaconNode) =
97102
Base10.toString(MIN_SLASHING_PENALTY_QUOTIENT_ALTAIR),
98103
PROPORTIONAL_SLASHING_MULTIPLIER_ALTAIR:
99104
Base10.toString(PROPORTIONAL_SLASHING_MULTIPLIER_ALTAIR),
105+
100106
SYNC_COMMITTEE_SIZE:
101107
Base10.toString(uint64(SYNC_COMMITTEE_SIZE)),
102108
EPOCHS_PER_SYNC_COMMITTEE_PERIOD:
103109
Base10.toString(EPOCHS_PER_SYNC_COMMITTEE_PERIOD),
110+
104111
MIN_SYNC_COMMITTEE_PARTICIPANTS:
105112
Base10.toString(uint64(MIN_SYNC_COMMITTEE_PARTICIPANTS)),
106113
UPDATE_TIMEOUT:
@@ -113,6 +120,7 @@ proc installConfigApiHandlers*(router: var RestRouter, node: BeaconNode) =
113120
Base10.toString(MIN_SLASHING_PENALTY_QUOTIENT_BELLATRIX),
114121
PROPORTIONAL_SLASHING_MULTIPLIER_BELLATRIX:
115122
Base10.toString(PROPORTIONAL_SLASHING_MULTIPLIER_BELLATRIX),
123+
116124
MAX_BYTES_PER_TRANSACTION:
117125
Base10.toString(uint64(MAX_BYTES_PER_TRANSACTION)),
118126
MAX_TRANSACTIONS_PER_PAYLOAD:
@@ -130,27 +138,27 @@ proc installConfigApiHandlers*(router: var RestRouter, node: BeaconNode) =
130138
MAX_VALIDATORS_PER_WITHDRAWALS_SWEEP:
131139
Base10.toString(uint64(MAX_VALIDATORS_PER_WITHDRAWALS_SWEEP)),
132140

133-
# https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.3/presets/mainnet/deneb.yaml
141+
# https://github.com/ethereum/consensus-specs/blob/v1.5.0-beta.2/presets/mainnet/deneb.yaml
134142
FIELD_ELEMENTS_PER_BLOB:
135143
Base10.toString(deneb_preset.FIELD_ELEMENTS_PER_BLOB),
136144
MAX_BLOB_COMMITMENTS_PER_BLOCK:
137145
Base10.toString(MAX_BLOB_COMMITMENTS_PER_BLOCK),
138-
MAX_BLOBS_PER_BLOCK:
139-
Base10.toString(MAX_BLOBS_PER_BLOCK),
140146
KZG_COMMITMENT_INCLUSION_PROOF_DEPTH:
141147
Base10.toString(uint64(KZG_COMMITMENT_INCLUSION_PROOF_DEPTH)),
142148

143-
# https://github.com/ethereum/consensus-specs/blob/v1.4.0-beta.5/configs/mainnet.yaml
149+
# https://github.com/ethereum/consensus-specs/blob/v1.5.0-beta.2/configs/mainnet.yaml
144150
PRESET_BASE:
145151
cfg.PRESET_BASE,
146152
CONFIG_NAME:
147153
cfg.name(),
154+
148155
TERMINAL_TOTAL_DIFFICULTY:
149156
toString(cfg.TERMINAL_TOTAL_DIFFICULTY),
150157
TERMINAL_BLOCK_HASH:
151158
$cfg.TERMINAL_BLOCK_HASH,
152159
TERMINAL_BLOCK_HASH_ACTIVATION_EPOCH:
153160
Base10.toString(uint64(cfg.TERMINAL_BLOCK_HASH_ACTIVATION_EPOCH)),
161+
154162
MIN_GENESIS_ACTIVE_VALIDATOR_COUNT:
155163
Base10.toString(cfg.MIN_GENESIS_ACTIVE_VALIDATOR_COUNT),
156164
MIN_GENESIS_TIME:
@@ -159,6 +167,7 @@ proc installConfigApiHandlers*(router: var RestRouter, node: BeaconNode) =
159167
"0x" & $cfg.GENESIS_FORK_VERSION,
160168
GENESIS_DELAY:
161169
Base10.toString(cfg.GENESIS_DELAY),
170+
162171
ALTAIR_FORK_VERSION:
163172
"0x" & $cfg.ALTAIR_FORK_VERSION,
164173
ALTAIR_FORK_EPOCH:
@@ -179,6 +188,11 @@ proc installConfigApiHandlers*(router: var RestRouter, node: BeaconNode) =
179188
"0x" & $cfg.ELECTRA_FORK_VERSION,
180189
ELECTRA_FORK_EPOCH:
181190
Base10.toString(uint64(cfg.ELECTRA_FORK_EPOCH)),
191+
FULU_FORK_VERSION:
192+
"0x" & $cfg.FULU_FORK_VERSION,
193+
FULU_FORK_EPOCH:
194+
Base10.toString(uint64(cfg.FULU_FORK_EPOCH)),
195+
182196
SECONDS_PER_SLOT:
183197
Base10.toString(SECONDS_PER_SLOT),
184198
SECONDS_PER_ETH1_BLOCK:
@@ -189,6 +203,7 @@ proc installConfigApiHandlers*(router: var RestRouter, node: BeaconNode) =
189203
Base10.toString(cfg.SHARD_COMMITTEE_PERIOD),
190204
ETH1_FOLLOW_DISTANCE:
191205
Base10.toString(cfg.ETH1_FOLLOW_DISTANCE),
206+
192207
INACTIVITY_SCORE_BIAS:
193208
Base10.toString(cfg.INACTIVITY_SCORE_BIAS),
194209
INACTIVITY_SCORE_RECOVERY_RATE:
@@ -201,6 +216,7 @@ proc installConfigApiHandlers*(router: var RestRouter, node: BeaconNode) =
201216
Base10.toString(cfg.CHURN_LIMIT_QUOTIENT),
202217
MAX_PER_EPOCH_ACTIVATION_CHURN_LIMIT:
203218
Base10.toString(cfg.MAX_PER_EPOCH_ACTIVATION_CHURN_LIMIT),
219+
204220
PROPOSER_SCORE_BOOST:
205221
Base10.toString(PROPOSER_SCORE_BOOST),
206222
REORG_HEAD_WEIGHT_THRESHOLD:
@@ -245,14 +261,49 @@ proc installConfigApiHandlers*(router: var RestRouter, node: BeaconNode) =
245261
Base10.toString(ATTESTATION_SUBNET_EXTRA_BITS),
246262
ATTESTATION_SUBNET_PREFIX_BITS:
247263
Base10.toString(ATTESTATION_SUBNET_PREFIX_BITS),
264+
248265
MAX_REQUEST_BLOCKS_DENEB:
249266
Base10.toString(MAX_REQUEST_BLOCKS_DENEB),
250-
MAX_REQUEST_BLOB_SIDECARS:
251-
Base10.toString(MAX_REQUEST_BLOB_SIDECARS),
252267
MIN_EPOCHS_FOR_BLOB_SIDECARS_REQUESTS:
253268
Base10.toString(cfg.MIN_EPOCHS_FOR_BLOB_SIDECARS_REQUESTS),
254269
BLOB_SIDECAR_SUBNET_COUNT:
255-
Base10.toString(BLOB_SIDECAR_SUBNET_COUNT),
270+
Base10.toString(cfg.BLOB_SIDECAR_SUBNET_COUNT),
271+
MAX_BLOBS_PER_BLOCK:
272+
Base10.toString(cfg.MAX_BLOBS_PER_BLOCK),
273+
MAX_REQUEST_BLOB_SIDECARS:
274+
Base10.toString(cfg.MAX_REQUEST_BLOB_SIDECARS),
275+
276+
MIN_PER_EPOCH_CHURN_LIMIT_ELECTRA:
277+
Base10.toString(cfg.MIN_PER_EPOCH_CHURN_LIMIT_ELECTRA),
278+
MAX_PER_EPOCH_ACTIVATION_EXIT_CHURN_LIMIT:
279+
Base10.toString(cfg.MAX_PER_EPOCH_ACTIVATION_EXIT_CHURN_LIMIT),
280+
BLOB_SIDECAR_SUBNET_COUNT_ELECTRA:
281+
Base10.toString(cfg.BLOB_SIDECAR_SUBNET_COUNT_ELECTRA),
282+
MAX_BLOBS_PER_BLOCK_ELECTRA:
283+
Base10.toString(cfg.MAX_BLOBS_PER_BLOCK_ELECTRA),
284+
MAX_REQUEST_BLOB_SIDECARS_ELECTRA:
285+
Base10.toString(cfg.MAX_REQUEST_BLOB_SIDECARS_ELECTRA),
286+
287+
NUMBER_OF_COLUMNS:
288+
Base10.toString(NUMBER_OF_COLUMNS.uint64),
289+
NUMBER_OF_CUSTODY_GROUPS:
290+
Base10.toString(NUMBER_OF_CUSTODY_GROUPS.uint64),
291+
DATA_COLUMN_SIDECAR_SUBNET_COUNT:
292+
Base10.toString(DATA_COLUMN_SIDECAR_SUBNET_COUNT.uint64),
293+
MAX_REQUEST_DATA_COLUMN_SIDECARS:
294+
Base10.toString(MAX_REQUEST_DATA_COLUMN_SIDECARS),
295+
SAMPLES_PER_SLOT:
296+
Base10.toString(SAMPLES_PER_SLOT.uint64),
297+
CUSTODY_REQUIREMENT:
298+
Base10.toString(CUSTODY_REQUIREMENT.uint64),
299+
VALIDATOR_CUSTODY_REQUIREMENT:
300+
Base10.toString(VALIDATOR_CUSTODY_REQUIREMENT.uint64),
301+
BALANCE_PER_ADDITIONAL_CUSTODY_GROUP:
302+
Base10.toString(BALANCE_PER_ADDITIONAL_CUSTODY_GROUP),
303+
# MAX_BLOBS_PER_BLOCK_FULU:
304+
# Base10.toString(cfg.MAX_BLOBS_PER_BLOCK_FULU),
305+
# MIN_EPOCHS_FOR_DATA_COLUMN_SIDECARS_REQUESTS:
306+
# Base10.toString(cfg.MIN_EPOCHS_FOR_DATA_COLUMN_SIDECARS_REQUESTS),
256307

257308
# https://github.com/ethereum/consensus-specs/blob/v1.4.0-alpha.3/specs/phase0/beacon-chain.md#constants
258309
# GENESIS_SLOT
@@ -362,15 +413,7 @@ proc installConfigApiHandlers*(router: var RestRouter, node: BeaconNode) =
362413
MAX_PENDING_PARTIALS_PER_WITHDRAWALS_SWEEP:
363414
Base10.toString(uint64(MAX_PENDING_PARTIALS_PER_WITHDRAWALS_SWEEP)),
364415
MAX_PENDING_DEPOSITS_PER_EPOCH:
365-
Base10.toString(uint64(MAX_PENDING_DEPOSITS_PER_EPOCH)),
366-
MAX_BLOBS_PER_BLOCK_ELECTRA:
367-
Base10.toString(cfg.MAX_BLOBS_PER_BLOCK_ELECTRA),
368-
MAX_REQUEST_BLOB_SIDECARS_ELECTRA:
369-
Base10.toString(cfg.MAX_REQUEST_BLOB_SIDECARS_ELECTRA),
370-
MIN_PER_EPOCH_CHURN_LIMIT_ELECTRA:
371-
Base10.toString(cfg.MIN_PER_EPOCH_CHURN_LIMIT_ELECTRA),
372-
MAX_PER_EPOCH_ACTIVATION_EXIT_CHURN_LIMIT:
373-
Base10.toString(cfg.MAX_PER_EPOCH_ACTIVATION_EXIT_CHURN_LIMIT)
416+
Base10.toString(uint64(MAX_PENDING_DEPOSITS_PER_EPOCH))
374417
)
375418
)
376419
cachedDepositContract =

beacon_chain/spec/presets.nim

Lines changed: 80 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ type
3636
Eth1Address* = web3types.Address
3737

3838
RuntimeConfig* = object
39-
## https://github.com/ethereum/consensus-specs/tree/v1.4.0-beta.4/configs
39+
## https://github.com/ethereum/consensus-specs/tree/v1.5.0-beta.2/configs
4040
PRESET_BASE*: string
4141
CONFIG_NAME*: string
4242

@@ -109,9 +109,10 @@ type
109109

110110
# Deneb
111111
# TODO MAX_REQUEST_BLOCKS_DENEB*: uint64
112-
# TODO MAX_REQUEST_BLOB_SIDECARS*: uint64
113112
MIN_EPOCHS_FOR_BLOB_SIDECARS_REQUESTS*: uint64
114-
# TODO BLOB_SIDECAR_SUBNET_COUNT*: uint64
113+
BLOB_SIDECAR_SUBNET_COUNT*: uint64
114+
MAX_BLOBS_PER_BLOCK*: uint64
115+
MAX_REQUEST_BLOB_SIDECARS*: uint64
115116

116117
# Electra
117118
MIN_PER_EPOCH_CHURN_LIMIT_ELECTRA*: uint64
@@ -120,6 +121,18 @@ type
120121
MAX_BLOBS_PER_BLOCK_ELECTRA*: uint64
121122
MAX_REQUEST_BLOB_SIDECARS_ELECTRA*: uint64
122123

124+
# Fulu
125+
# TODO NUMBER_OF_COLUMNS*: uint64
126+
# TODO NUMBER_OF_CUSTODY_GROUPS*: uint64
127+
# TODO DATA_COLUMN_SIDECAR_SUBNET_COUNT*: uint64
128+
# TODO MAX_REQUEST_DATA_COLUMN_SIDECARS*: uint64
129+
# TODO SAMPLES_PER_SLOT*: uint64
130+
# TODO CUSTODY_REQUIREMENT*: uint64
131+
# TODO VALIDATOR_CUSTODY_REQUIREMENT*: uint64
132+
# TODO BALANCE_PER_ADDITIONAL_CUSTODY_GROUP*: uint64
133+
# TODO MAX_BLOBS_PER_BLOCK_FULU*: uint64
134+
# TODO MIN_EPOCHS_FOR_DATA_COLUMN_SIDECARS_REQUESTS*: uint64
135+
123136
PresetFile* = object
124137
values*: Table[string, string]
125138
missingValues*: seq[string]
@@ -275,12 +288,14 @@ when const_preset == "mainnet":
275288
# Deneb
276289
# `2**7` (=128)
277290
# TODO MAX_REQUEST_BLOCKS_DENEB: 128,
278-
# MAX_REQUEST_BLOCKS_DENEB * MAX_BLOBS_PER_BLOCK
279-
# TODO MAX_REQUEST_BLOB_SIDECARS: 768,
280291
# `2**12` (= 4096 epochs, ~18 days)
281292
MIN_EPOCHS_FOR_BLOB_SIDECARS_REQUESTS: 4096,
282293
# `6`
283-
# TODO BLOB_SIDECAR_SUBNET_COUNT: 6,
294+
BLOB_SIDECAR_SUBNET_COUNT: 6,
295+
# `uint64(6)`
296+
MAX_BLOBS_PER_BLOCK: 6,
297+
# MAX_REQUEST_BLOCKS_DENEB * MAX_BLOBS_PER_BLOCK
298+
MAX_REQUEST_BLOB_SIDECARS: 768,
284299

285300
# Electra
286301
# 2**7 * 10**9 (= 128,000,000,000)
@@ -292,7 +307,19 @@ when const_preset == "mainnet":
292307
# `uint64(9)`
293308
MAX_BLOBS_PER_BLOCK_ELECTRA: 9,
294309
# MAX_REQUEST_BLOCKS_DENEB * MAX_BLOBS_PER_BLOCK_ELECTRA
295-
MAX_REQUEST_BLOB_SIDECARS_ELECTRA: 1152
310+
MAX_REQUEST_BLOB_SIDECARS_ELECTRA: 1152,
311+
312+
# Fulu
313+
# TODO NUMBER_OF_COLUMNS: 128,
314+
# TODO NUMBER_OF_CUSTODY_GROUPS: 128,
315+
# TODO DATA_COLUMN_SIDECAR_SUBNET_COUNT: 128,
316+
# TODO MAX_REQUEST_DATA_COLUMN_SIDECARS: 16384,
317+
# TODO SAMPLES_PER_SLOT: 8,
318+
# TODO CUSTODY_REQUIREMENT: 4,
319+
# TODO VALIDATOR_CUSTODY_REQUIREMENT: 8,
320+
# TODO BALANCE_PER_ADDITIONAL_CUSTODY_GROUP: 32000000000,
321+
# TODO MAX_BLOBS_PER_BLOCK_FULU: 12,
322+
# TODO MIN_EPOCHS_FOR_DATA_COLUMN_SIDECARS_REQUESTS: 4096
296323
)
297324

298325
elif const_preset == "gnosis":
@@ -430,24 +457,38 @@ elif const_preset == "gnosis":
430457
# Deneb
431458
# `2**7` (=128)
432459
# TODO MAX_REQUEST_BLOCKS_DENEB: 128,
433-
# MAX_REQUEST_BLOCKS_DENEB * MAX_BLOBS_PER_BLOCK
434-
# TODO MAX_REQUEST_BLOB_SIDECARS: 768,
435460
# `2**12` (= 4096 epochs, ~18 days)
436461
MIN_EPOCHS_FOR_BLOB_SIDECARS_REQUESTS: 16384,
437462
# `6`
438-
# TODO BLOB_SIDECAR_SUBNET_COUNT: 6,
463+
BLOB_SIDECAR_SUBNET_COUNT: 6,
464+
# `uint64(2)`
465+
MAX_BLOBS_PER_BLOCK: 2,
466+
# MAX_REQUEST_BLOCKS_DENEB * MAX_BLOBS_PER_BLOCK
467+
MAX_REQUEST_BLOB_SIDECARS: 768,
439468

440469
# Electra
441470
# 2**7 * 10**9 (= 128,000,000,000)
442471
MIN_PER_EPOCH_CHURN_LIMIT_ELECTRA: 128000000000'u64,
443472
# 2**8 * 10**9 (= 256,000,000,000)
444473
MAX_PER_EPOCH_ACTIVATION_EXIT_CHURN_LIMIT: 256000000000'u64,
445-
# `9`
446-
BLOB_SIDECAR_SUBNET_COUNT_ELECTRA: 9,
447-
# `uint64(9)`
448-
MAX_BLOBS_PER_BLOCK_ELECTRA: 9,
474+
# `2`
475+
BLOB_SIDECAR_SUBNET_COUNT_ELECTRA: 2,
476+
# `uint64(2)`
477+
MAX_BLOBS_PER_BLOCK_ELECTRA: 2,
449478
# MAX_REQUEST_BLOCKS_DENEB * MAX_BLOBS_PER_BLOCK_ELECTRA
450-
MAX_REQUEST_BLOB_SIDECARS_ELECTRA: 1152
479+
MAX_REQUEST_BLOB_SIDECARS_ELECTRA: 256,
480+
481+
# Fulu
482+
# TODO NUMBER_OF_COLUMNS: 128,
483+
# TODO NUMBER_OF_CUSTODY_GROUPS: 128,
484+
# TODO DATA_COLUMN_SIDECAR_SUBNET_COUNT: 128,
485+
# TODO MAX_REQUEST_DATA_COLUMN_SIDECARS: 16384,
486+
# TODO SAMPLES_PER_SLOT: 8,
487+
# TODO CUSTODY_REQUIREMENT: 4,
488+
# TODO VALIDATOR_CUSTODY_REQUIREMENT: 8,
489+
# TODO BALANCE_PER_ADDITIONAL_CUSTODY_GROUP: 32000000000,
490+
# TODO MAX_BLOBS_PER_BLOCK_FULU: 12,
491+
# TODO MIN_EPOCHS_FOR_DATA_COLUMN_SIDECARS_REQUESTS: 4096
451492
)
452493

453494
elif const_preset == "minimal":
@@ -585,12 +626,14 @@ elif const_preset == "minimal":
585626
# Deneb
586627
# `2**7` (=128)
587628
# TODO MAX_REQUEST_BLOCKS_DENEB: 128,
588-
# MAX_REQUEST_BLOCKS_DENEB * MAX_BLOBS_PER_BLOCK
589-
# TODO MAX_REQUEST_BLOB_SIDECARS: 768,
590629
# `2**12` (= 4096 epochs, ~18 days)
591630
MIN_EPOCHS_FOR_BLOB_SIDECARS_REQUESTS: 4096,
592631
# `6`
593-
# TODO BLOB_SIDECAR_SUBNET_COUNT: 6,
632+
BLOB_SIDECAR_SUBNET_COUNT: 6,
633+
# `uint64(6)`
634+
MAX_BLOBS_PER_BLOCK: 6,
635+
# MAX_REQUEST_BLOCKS_DENEB * MAX_BLOBS_PER_BLOCK
636+
MAX_REQUEST_BLOB_SIDECARS: 768,
594637

595638
# Electra
596639
# [customized] 2**6 * 10**9 (= 64,000,000,000)
@@ -602,7 +645,19 @@ elif const_preset == "minimal":
602645
# `uint64(9)`
603646
MAX_BLOBS_PER_BLOCK_ELECTRA: 9,
604647
# MAX_REQUEST_BLOCKS_DENEB * MAX_BLOBS_PER_BLOCK_ELECTRA
605-
MAX_REQUEST_BLOB_SIDECARS_ELECTRA: 1152,
648+
MAX_REQUEST_BLOB_SIDECARS_ELECTRA: 1152
649+
650+
# Fulu
651+
# TODO NUMBER_OF_COLUMNS: 128,
652+
# TODO NUMBER_OF_CUSTODY_GROUPS: 128,
653+
# TODO DATA_COLUMN_SIDECAR_SUBNET_COUNT: 128,
654+
# TODO MAX_REQUEST_DATA_COLUMN_SIDECARS: 16384,
655+
# TODO SAMPLES_PER_SLOT: 8,
656+
# TODO CUSTODY_REQUIREMENT: 4,
657+
# TODO VALIDATOR_CUSTODY_REQUIREMENT: 8,
658+
# TODO BALANCE_PER_ADDITIONAL_CUSTODY_GROUP: 32000000000,
659+
# TODO MAX_BLOBS_PER_BLOCK_FULU: 12,
660+
# TODO MIN_EPOCHS_FOR_DATA_COLUMN_SIDECARS_REQUESTS: 4096
606661
)
607662

608663
else:
@@ -840,6 +895,12 @@ proc readRuntimeConfig*(
840895
# Requires initialized `cfg`
841896
checkCompatibility cfg.safeMinEpochsForBlockRequests(),
842897
"MIN_EPOCHS_FOR_BLOCK_REQUESTS", `>=`
898+
checkCompatibility MAX_REQUEST_BLOCKS_DENEB * cfg.MAX_BLOBS_PER_BLOCK,
899+
"MAX_REQUEST_BLOB_SIDECARS"
900+
checkCompatibility cfg.MAX_BLOBS_PER_BLOCK,
901+
"MAX_BLOBS_PER_BLOCK_ELECTRA", `>=`
902+
checkCompatibility MAX_REQUEST_BLOCKS_DENEB * cfg.MAX_BLOBS_PER_BLOCK_ELECTRA,
903+
"MAX_REQUEST_BLOB_SIDECARS_ELECTRA"
843904

844905
var unknowns: seq[string]
845906
for name in values.keys:

0 commit comments

Comments
 (0)