Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: update configs to be able to support Deneb on all networks #6328

Merged
merged 7 commits into from
Jan 23, 2024

Conversation

nflaig
Copy link
Member

@nflaig nflaig commented Jan 19, 2024

Motivation

Currently it is not possible to support Deneb on other networks like Gnosis as we define values that need to be part of configuration as constants and hence those can't be customized.

Description

  • Move MIN_EPOCHS_FOR_BLOB_SIDECARS_REQUESTS from constants to config, this value is defined as part of configuration in the spec (specs/deneb/p2p-interface.md?plain=1#L66)
  • Align structure / comments with consensus spec
  • Add references to preset / config files
  • Rename directory and files that contain config values (presets --> configs), the consensus spec is pretty clear on the terminology (presets vs. configs) and this avoids potential confusion in the code

Support all network configs

After reviewing the spec values I noticed we are still missing plenty of network values which should be part of the config (configs/mainnet.yaml#L113-L150). We either don't support them or those are defined as constants.

I looked into refactoring this to move all of the constants into config but not all parts of the code that use those values can get access to configs easily, for example values used in rateLimitQuotas

export const rateLimitQuotas: Record<ReqRespMethod, InboundRateLimitQuota> = {

While it should be possible to refactor the code to make this work, I think we should avoid large changes before the Deneb hard fork as current configuration is well tested already and there is no specific requirements to move those values from constants to config.

BREAKING CHANGE

Mainnet and minimal configs are now exported from /configs sub path instead of /presets.

The following change needs to be done if you are directly importing these from the @lodestar/config package

-import {minimalChainConfig, mainnetChainConfig} from "@lodestar/config/presets";
+import {minimalChainConfig, mainnetChainConfig} from "@lodestar/config/configs";

PROPOSER_SCORE_BOOST: false, // Ignored as it's changing https://github.com/ethereum/consensus-specs/pull/2895

// Deposit contract
DEPOSIT_CHAIN_ID: false, // Non-critical
DEPOSIT_NETWORK_ID: false, // Non-critical
DEPOSIT_CONTRACT_ADDRESS: true,

// Networking
MIN_EPOCHS_FOR_BLOB_SIDECARS_REQUESTS: false,
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@g11tech Based on my understanding of this value it is not critical to verify it here as it is only relevant for the beacon node and as part of networking can't result in a consensus failure.

Maybe you could confirm this, and should we add a comment here?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yes it doesn't affect consensus, adding with false is ok

Copy link
Member Author

@nflaig nflaig Jan 22, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I added a comment in e94355b

@nflaig nflaig marked this pull request as ready for review January 19, 2024 15:37
@nflaig nflaig requested a review from a team as a code owner January 19, 2024 15:37
Copy link

codecov bot commented Jan 19, 2024

Codecov Report

Merging #6328 (e94355b) into unstable (6f35ac6) will decrease coverage by 16.47%.
Report is 5 commits behind head on unstable.
The diff coverage is n/a.

Additional details and impacted files
@@              Coverage Diff              @@
##           unstable    #6328       +/-   ##
=============================================
- Coverage     76.60%   60.13%   -16.47%     
=============================================
  Files           248      407      +159     
  Lines         25908    46451    +20543     
  Branches       1448     1534       +86     
=============================================
+ Hits          19846    27935     +8089     
- Misses         6032    18486    +12454     
  Partials         30       30               

Copy link
Contributor

github-actions bot commented Jan 19, 2024

Performance Report

✔️ no performance regression detected

Full benchmark results
Benchmark suite Current: cba8b5e Previous: 5b129f0 Ratio
getPubkeys - index2pubkey - req 1000 vs - 250000 vc 507.88 us/op 750.45 us/op 0.68
getPubkeys - validatorsArr - req 1000 vs - 250000 vc 62.978 us/op 53.464 us/op 1.18
BLS verify - blst-native 1.1197 ms/op 1.1166 ms/op 1.00
BLS verifyMultipleSignatures 3 - blst-native 2.4667 ms/op 2.3722 ms/op 1.04
BLS verifyMultipleSignatures 8 - blst-native 5.3126 ms/op 5.3188 ms/op 1.00
BLS verifyMultipleSignatures 32 - blst-native 19.692 ms/op 19.199 ms/op 1.03
BLS verifyMultipleSignatures 64 - blst-native 38.752 ms/op 37.844 ms/op 1.02
BLS verifyMultipleSignatures 128 - blst-native 77.110 ms/op 75.172 ms/op 1.03
BLS deserializing 10000 signatures 836.81 ms/op 856.28 ms/op 0.98
BLS deserializing 100000 signatures 8.5938 s/op 8.3874 s/op 1.02
BLS verifyMultipleSignatures - same message - 3 - blst-native 1.1701 ms/op 1.1321 ms/op 1.03
BLS verifyMultipleSignatures - same message - 8 - blst-native 1.2964 ms/op 1.4509 ms/op 0.89
BLS verifyMultipleSignatures - same message - 32 - blst-native 2.4826 ms/op 2.0314 ms/op 1.22
BLS verifyMultipleSignatures - same message - 64 - blst-native 4.0968 ms/op 3.6583 ms/op 1.12
BLS verifyMultipleSignatures - same message - 128 - blst-native 4.9975 ms/op 6.7895 ms/op 0.74
BLS aggregatePubkeys 32 - blst-native 22.745 us/op 22.800 us/op 1.00
BLS aggregatePubkeys 128 - blst-native 88.203 us/op 89.492 us/op 0.99
getAttestationsForBlock 40.314 ms/op 30.980 ms/op 1.30
getSlashingsAndExits - default max 115.07 us/op 124.98 us/op 0.92
getSlashingsAndExits - 2k 416.24 us/op 407.13 us/op 1.02
proposeBlockBody type=full, size=empty 4.3425 ms/op 3.8711 ms/op 1.12
isKnown best case - 1 super set check 376.00 ns/op 417.00 ns/op 0.90
isKnown normal case - 2 super set checks 355.00 ns/op 329.00 ns/op 1.08
isKnown worse case - 16 super set checks 351.00 ns/op 319.00 ns/op 1.10
CheckpointStateCache - add get delete 3.6230 us/op 3.5070 us/op 1.03
validate api signedAggregateAndProof - struct 2.4681 ms/op 2.4281 ms/op 1.02
validate gossip signedAggregateAndProof - struct 2.4582 ms/op 2.4180 ms/op 1.02
validate gossip attestation - vc 640000 1.1698 ms/op 1.1678 ms/op 1.00
batch validate gossip attestation - vc 640000 - chunk 32 153.33 us/op 147.23 us/op 1.04
batch validate gossip attestation - vc 640000 - chunk 64 135.87 us/op 128.15 us/op 1.06
batch validate gossip attestation - vc 640000 - chunk 128 143.97 us/op 116.84 us/op 1.23
batch validate gossip attestation - vc 640000 - chunk 256 137.89 us/op 108.79 us/op 1.27
pickEth1Vote - no votes 1.3321 ms/op 931.43 us/op 1.43
pickEth1Vote - max votes 12.229 ms/op 9.4076 ms/op 1.30
pickEth1Vote - Eth1Data hashTreeRoot value x2048 15.527 ms/op 12.427 ms/op 1.25
pickEth1Vote - Eth1Data hashTreeRoot tree x2048 20.783 ms/op 24.132 ms/op 0.86
pickEth1Vote - Eth1Data fastSerialize value x2048 445.16 us/op 499.30 us/op 0.89
pickEth1Vote - Eth1Data fastSerialize tree x2048 3.4739 ms/op 7.9215 ms/op 0.44
bytes32 toHexString 539.00 ns/op 531.00 ns/op 1.02
bytes32 Buffer.toString(hex) 376.00 ns/op 306.00 ns/op 1.23
bytes32 Buffer.toString(hex) from Uint8Array 520.00 ns/op 437.00 ns/op 1.19
bytes32 Buffer.toString(hex) + 0x 365.00 ns/op 302.00 ns/op 1.21
Object access 1 prop 0.27200 ns/op 0.20800 ns/op 1.31
Map access 1 prop 0.22300 ns/op 0.19500 ns/op 1.14
Object get x1000 6.7760 ns/op 5.6900 ns/op 1.19
Map get x1000 0.92300 ns/op 0.74600 ns/op 1.24
Object set x1000 30.120 ns/op 27.376 ns/op 1.10
Map set x1000 21.169 ns/op 17.191 ns/op 1.23
Return object 10000 times 0.25330 ns/op 0.24740 ns/op 1.02
Throw Error 10000 times 2.7740 us/op 2.9120 us/op 0.95
fastMsgIdFn sha256 / 200 bytes 2.1340 us/op 2.1540 us/op 0.99
fastMsgIdFn h32 xxhash / 200 bytes 345.00 ns/op 313.00 ns/op 1.10
fastMsgIdFn h64 xxhash / 200 bytes 364.00 ns/op 343.00 ns/op 1.06
fastMsgIdFn sha256 / 1000 bytes 6.5550 us/op 6.1460 us/op 1.07
fastMsgIdFn h32 xxhash / 1000 bytes 533.00 ns/op 406.00 ns/op 1.31
fastMsgIdFn h64 xxhash / 1000 bytes 534.00 ns/op 401.00 ns/op 1.33
fastMsgIdFn sha256 / 10000 bytes 57.336 us/op 52.651 us/op 1.09
fastMsgIdFn h32 xxhash / 10000 bytes 1.9370 us/op 1.8700 us/op 1.04
fastMsgIdFn h64 xxhash / 10000 bytes 1.3190 us/op 1.2550 us/op 1.05
send data - 1000 256B messages 14.814 ms/op 12.780 ms/op 1.16
send data - 1000 512B messages 20.140 ms/op 15.017 ms/op 1.34
send data - 1000 1024B messages 33.614 ms/op 23.151 ms/op 1.45
send data - 1000 1200B messages 34.694 ms/op 31.525 ms/op 1.10
send data - 1000 2048B messages 37.262 ms/op 37.639 ms/op 0.99
send data - 1000 4096B messages 38.254 ms/op 36.745 ms/op 1.04
send data - 1000 16384B messages 96.707 ms/op 93.054 ms/op 1.04
send data - 1000 65536B messages 449.00 ms/op 445.96 ms/op 1.01
enrSubnets - fastDeserialize 64 bits 1.3960 us/op 1.0430 us/op 1.34
enrSubnets - ssz BitVector 64 bits 670.00 ns/op 526.00 ns/op 1.27
enrSubnets - fastDeserialize 4 bits 292.00 ns/op 253.00 ns/op 1.15
enrSubnets - ssz BitVector 4 bits 569.00 ns/op 519.00 ns/op 1.10
prioritizePeers score -10:0 att 32-0.1 sync 2-0 83.257 us/op 82.306 us/op 1.01
prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 112.85 us/op 102.92 us/op 1.10
prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 165.47 us/op 131.11 us/op 1.26
prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 219.32 us/op 185.98 us/op 1.18
prioritizePeers score 0:0 att 64-1 sync 4-1 270.07 us/op 214.85 us/op 1.26
array of 16000 items push then shift 1.4055 us/op 1.3185 us/op 1.07
LinkedList of 16000 items push then shift 7.6460 ns/op 5.9690 ns/op 1.28
array of 16000 items push then pop 99.521 ns/op 76.470 ns/op 1.30
LinkedList of 16000 items push then pop 5.8170 ns/op 6.3060 ns/op 0.92
array of 24000 items push then shift 2.2290 us/op 1.9931 us/op 1.12
LinkedList of 24000 items push then shift 8.1070 ns/op 6.0930 ns/op 1.33
array of 24000 items push then pop 159.19 ns/op 108.38 ns/op 1.47
LinkedList of 24000 items push then pop 7.8490 ns/op 6.7480 ns/op 1.16
intersect bitArray bitLen 8 5.1300 ns/op 5.1450 ns/op 1.00
intersect array and set length 8 93.623 ns/op 50.213 ns/op 1.86
intersect bitArray bitLen 128 29.649 ns/op 28.057 ns/op 1.06
intersect array and set length 128 890.69 ns/op 698.20 ns/op 1.28
bitArray.getTrueBitIndexes() bitLen 128 1.6820 us/op 1.3840 us/op 1.22
bitArray.getTrueBitIndexes() bitLen 248 2.9260 us/op 2.2190 us/op 1.32
bitArray.getTrueBitIndexes() bitLen 512 5.9570 us/op 4.1200 us/op 1.45
Buffer.concat 32 items 966.00 ns/op 946.00 ns/op 1.02
Uint8Array.set 32 items 2.4250 us/op 1.6900 us/op 1.43
Set add up to 64 items then delete first 2.1163 us/op 1.8328 us/op 1.15
OrderedSet add up to 64 items then delete first 2.8997 us/op 2.7608 us/op 1.05
Set add up to 64 items then delete last 2.1981 us/op 1.9876 us/op 1.11
OrderedSet add up to 64 items then delete last 3.0551 us/op 3.0124 us/op 1.01
Set add up to 64 items then delete middle 2.0283 us/op 2.0429 us/op 0.99
OrderedSet add up to 64 items then delete middle 4.3056 us/op 4.2733 us/op 1.01
Set add up to 128 items then delete first 5.3541 us/op 3.8615 us/op 1.39
OrderedSet add up to 128 items then delete first 7.9661 us/op 6.0385 us/op 1.32
Set add up to 128 items then delete last 5.1950 us/op 3.8666 us/op 1.34
OrderedSet add up to 128 items then delete last 8.7392 us/op 5.6811 us/op 1.54
Set add up to 128 items then delete middle 4.4384 us/op 3.7685 us/op 1.18
OrderedSet add up to 128 items then delete middle 12.704 us/op 10.714 us/op 1.19
Set add up to 256 items then delete first 8.3200 us/op 7.7038 us/op 1.08
OrderedSet add up to 256 items then delete first 16.668 us/op 12.091 us/op 1.38
Set add up to 256 items then delete last 8.4115 us/op 7.4146 us/op 1.13
OrderedSet add up to 256 items then delete last 14.661 us/op 11.359 us/op 1.29
Set add up to 256 items then delete middle 10.680 us/op 7.3928 us/op 1.44
OrderedSet add up to 256 items then delete middle 36.932 us/op 32.569 us/op 1.13
transfer serialized Status (84 B) 1.6050 us/op 1.4330 us/op 1.12
copy serialized Status (84 B) 1.2910 us/op 1.2120 us/op 1.07
transfer serialized SignedVoluntaryExit (112 B) 1.6800 us/op 1.6010 us/op 1.05
copy serialized SignedVoluntaryExit (112 B) 1.2610 us/op 1.2160 us/op 1.04
transfer serialized ProposerSlashing (416 B) 1.8350 us/op 1.9690 us/op 0.93
copy serialized ProposerSlashing (416 B) 1.7860 us/op 1.7520 us/op 1.02
transfer serialized Attestation (485 B) 2.0050 us/op 1.9010 us/op 1.05
copy serialized Attestation (485 B) 1.8290 us/op 1.6960 us/op 1.08
transfer serialized AttesterSlashing (33232 B) 1.7840 us/op 1.6480 us/op 1.08
copy serialized AttesterSlashing (33232 B) 5.9970 us/op 5.3720 us/op 1.12
transfer serialized Small SignedBeaconBlock (128000 B) 1.7460 us/op 1.9790 us/op 0.88
copy serialized Small SignedBeaconBlock (128000 B) 19.013 us/op 14.717 us/op 1.29
transfer serialized Avg SignedBeaconBlock (200000 B) 1.9800 us/op 2.3360 us/op 0.85
copy serialized Avg SignedBeaconBlock (200000 B) 26.256 us/op 22.964 us/op 1.14
transfer serialized BlobsSidecar (524380 B) 2.6880 us/op 2.7540 us/op 0.98
copy serialized BlobsSidecar (524380 B) 100.38 us/op 149.11 us/op 0.67
transfer serialized Big SignedBeaconBlock (1000000 B) 2.5220 us/op 3.2510 us/op 0.78
copy serialized Big SignedBeaconBlock (1000000 B) 165.06 us/op 161.22 us/op 1.02
pass gossip attestations to forkchoice per slot 3.1093 ms/op 2.8363 ms/op 1.10
forkChoice updateHead vc 100000 bc 64 eq 0 443.98 us/op 463.95 us/op 0.96
forkChoice updateHead vc 600000 bc 64 eq 0 3.9242 ms/op 2.9269 ms/op 1.34
forkChoice updateHead vc 1000000 bc 64 eq 0 5.0459 ms/op 4.7204 ms/op 1.07
forkChoice updateHead vc 600000 bc 320 eq 0 2.7732 ms/op 2.7469 ms/op 1.01
forkChoice updateHead vc 600000 bc 1200 eq 0 2.8190 ms/op 2.7683 ms/op 1.02
forkChoice updateHead vc 600000 bc 7200 eq 0 3.5842 ms/op 3.3491 ms/op 1.07
forkChoice updateHead vc 600000 bc 64 eq 1000 9.7923 ms/op 9.8214 ms/op 1.00
forkChoice updateHead vc 600000 bc 64 eq 10000 9.7624 ms/op 9.8836 ms/op 0.99
forkChoice updateHead vc 600000 bc 64 eq 300000 12.426 ms/op 11.957 ms/op 1.04
computeDeltas 500000 validators 300 proto nodes 3.3087 ms/op 3.2269 ms/op 1.03
computeDeltas 500000 validators 1200 proto nodes 2.9883 ms/op 2.9489 ms/op 1.01
computeDeltas 500000 validators 7200 proto nodes 3.0285 ms/op 2.9782 ms/op 1.02
computeDeltas 750000 validators 300 proto nodes 4.5247 ms/op 4.7388 ms/op 0.95
computeDeltas 750000 validators 1200 proto nodes 4.5690 ms/op 4.6423 ms/op 0.98
computeDeltas 750000 validators 7200 proto nodes 4.5617 ms/op 4.5492 ms/op 1.00
computeDeltas 1400000 validators 300 proto nodes 9.2572 ms/op 9.0041 ms/op 1.03
computeDeltas 1400000 validators 1200 proto nodes 9.4584 ms/op 9.1052 ms/op 1.04
computeDeltas 1400000 validators 7200 proto nodes 9.3789 ms/op 8.8415 ms/op 1.06
computeDeltas 2100000 validators 300 proto nodes 14.844 ms/op 13.947 ms/op 1.06
computeDeltas 2100000 validators 1200 proto nodes 13.888 ms/op 13.309 ms/op 1.04
computeDeltas 2100000 validators 7200 proto nodes 13.509 ms/op 14.240 ms/op 0.95
altair processAttestation - 250000 vs - 7PWei normalcase 1.5432 ms/op 1.9298 ms/op 0.80
altair processAttestation - 250000 vs - 7PWei worstcase 2.3075 ms/op 3.4844 ms/op 0.66
altair processAttestation - setStatus - 1/6 committees join 102.30 us/op 83.055 us/op 1.23
altair processAttestation - setStatus - 1/3 committees join 204.86 us/op 155.65 us/op 1.32
altair processAttestation - setStatus - 1/2 committees join 286.43 us/op 249.66 us/op 1.15
altair processAttestation - setStatus - 2/3 committees join 381.29 us/op 313.79 us/op 1.22
altair processAttestation - setStatus - 4/5 committees join 506.93 us/op 417.18 us/op 1.22
altair processAttestation - setStatus - 100% committees join 607.72 us/op 493.71 us/op 1.23
altair processBlock - 250000 vs - 7PWei normalcase 8.7452 ms/op 7.6884 ms/op 1.14
altair processBlock - 250000 vs - 7PWei normalcase hashState 28.919 ms/op 25.995 ms/op 1.11
altair processBlock - 250000 vs - 7PWei worstcase 33.906 ms/op 32.279 ms/op 1.05
altair processBlock - 250000 vs - 7PWei worstcase hashState 83.968 ms/op 69.581 ms/op 1.21
phase0 processBlock - 250000 vs - 7PWei normalcase 2.3728 ms/op 2.1131 ms/op 1.12
phase0 processBlock - 250000 vs - 7PWei worstcase 26.262 ms/op 25.869 ms/op 1.02
altair processEth1Data - 250000 vs - 7PWei normalcase 396.70 us/op 331.32 us/op 1.20
getExpectedWithdrawals 250000 eb:1,eth1:1,we:0,wn:0,smpl:15 6.1030 us/op 11.004 us/op 0.55
getExpectedWithdrawals 250000 eb:0.95,eth1:0.1,we:0.05,wn:0,smpl:219 67.592 us/op 57.815 us/op 1.17
getExpectedWithdrawals 250000 eb:0.95,eth1:0.3,we:0.05,wn:0,smpl:42 21.540 us/op 9.6030 us/op 2.24
getExpectedWithdrawals 250000 eb:0.95,eth1:0.7,we:0.05,wn:0,smpl:18 9.5010 us/op 7.8640 us/op 1.21
getExpectedWithdrawals 250000 eb:0.1,eth1:0.1,we:0,wn:0,smpl:1020 133.83 us/op 209.60 us/op 0.64
getExpectedWithdrawals 250000 eb:0.03,eth1:0.03,we:0,wn:0,smpl:11777 1.0326 ms/op 943.26 us/op 1.09
getExpectedWithdrawals 250000 eb:0.01,eth1:0.01,we:0,wn:0,smpl:16384 867.94 us/op 1.6112 ms/op 0.54
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,smpl:16384 1.0967 ms/op 1.2438 ms/op 0.88
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,nocache,smpl:16384 2.3632 ms/op 3.2050 ms/op 0.74
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,smpl:16384 1.9215 ms/op 1.9847 ms/op 0.97
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,nocache,smpl:16384 4.1101 ms/op 3.8293 ms/op 1.07
Tree 40 250000 create 290.05 ms/op 296.27 ms/op 0.98
Tree 40 250000 get(125000) 111.30 ns/op 126.38 ns/op 0.88
Tree 40 250000 set(125000) 718.56 ns/op 858.71 ns/op 0.84
Tree 40 250000 toArray() 15.924 ms/op 22.189 ms/op 0.72
Tree 40 250000 iterate all - toArray() + loop 17.103 ms/op 22.446 ms/op 0.76
Tree 40 250000 iterate all - get(i) 41.762 ms/op 55.425 ms/op 0.75
MutableVector 250000 create 13.319 ms/op 14.964 ms/op 0.89
MutableVector 250000 get(125000) 5.3880 ns/op 5.6970 ns/op 0.95
MutableVector 250000 set(125000) 186.99 ns/op 215.58 ns/op 0.87
MutableVector 250000 toArray() 2.3602 ms/op 3.1974 ms/op 0.74
MutableVector 250000 iterate all - toArray() + loop 2.3552 ms/op 3.3442 ms/op 0.70
MutableVector 250000 iterate all - get(i) 1.3164 ms/op 1.3321 ms/op 0.99
Array 250000 create 2.1188 ms/op 3.2542 ms/op 0.65
Array 250000 clone - spread 1.0896 ms/op 1.1639 ms/op 0.94
Array 250000 get(125000) 0.97400 ns/op 1.0390 ns/op 0.94
Array 250000 set(125000) 1.1670 ns/op 1.2500 ns/op 0.93
Array 250000 iterate all - loop 146.30 us/op 151.67 us/op 0.96
effectiveBalanceIncrements clone Uint8Array 300000 21.122 us/op 22.339 us/op 0.95
effectiveBalanceIncrements clone MutableVector 300000 383.00 ns/op 417.00 ns/op 0.92
effectiveBalanceIncrements rw all Uint8Array 300000 184.12 us/op 183.22 us/op 1.00
effectiveBalanceIncrements rw all MutableVector 300000 62.240 ms/op 71.530 ms/op 0.87
phase0 afterProcessEpoch - 250000 vs - 7PWei 73.476 ms/op 77.829 ms/op 0.94
phase0 beforeProcessEpoch - 250000 vs - 7PWei 47.414 ms/op 43.206 ms/op 1.10
altair processEpoch - mainnet_e81889 415.24 ms/op 446.18 ms/op 0.93
mainnet_e81889 - altair beforeProcessEpoch 71.903 ms/op 74.454 ms/op 0.97
mainnet_e81889 - altair processJustificationAndFinalization 6.5990 us/op 13.812 us/op 0.48
mainnet_e81889 - altair processInactivityUpdates 5.2754 ms/op 4.5835 ms/op 1.15
mainnet_e81889 - altair processRewardsAndPenalties 55.973 ms/op 61.757 ms/op 0.91
mainnet_e81889 - altair processRegistryUpdates 2.0640 us/op 2.5980 us/op 0.79
mainnet_e81889 - altair processSlashings 630.00 ns/op 639.00 ns/op 0.99
mainnet_e81889 - altair processEth1DataReset 316.00 ns/op 811.00 ns/op 0.39
mainnet_e81889 - altair processEffectiveBalanceUpdates 1.0185 ms/op 2.7891 ms/op 0.37
mainnet_e81889 - altair processSlashingsReset 3.6150 us/op 5.1300 us/op 0.70
mainnet_e81889 - altair processRandaoMixesReset 5.7170 us/op 4.6490 us/op 1.23
mainnet_e81889 - altair processHistoricalRootsUpdate 855.00 ns/op 771.00 ns/op 1.11
mainnet_e81889 - altair processParticipationFlagUpdates 1.7380 us/op 2.5280 us/op 0.69
mainnet_e81889 - altair processSyncCommitteeUpdates 1.0990 us/op 1.0060 us/op 1.09
mainnet_e81889 - altair afterProcessEpoch 78.846 ms/op 78.890 ms/op 1.00
capella processEpoch - mainnet_e217614 1.8870 s/op 1.7854 s/op 1.06
mainnet_e217614 - capella beforeProcessEpoch 432.75 ms/op 415.30 ms/op 1.04
mainnet_e217614 - capella processJustificationAndFinalization 14.894 us/op 13.819 us/op 1.08
mainnet_e217614 - capella processInactivityUpdates 16.732 ms/op 23.924 ms/op 0.70
mainnet_e217614 - capella processRewardsAndPenalties 360.32 ms/op 376.98 ms/op 0.96
mainnet_e217614 - capella processRegistryUpdates 31.035 us/op 23.344 us/op 1.33
mainnet_e217614 - capella processSlashings 954.00 ns/op 723.00 ns/op 1.32
mainnet_e217614 - capella processEth1DataReset 967.00 ns/op 544.00 ns/op 1.78
mainnet_e217614 - capella processEffectiveBalanceUpdates 5.3818 ms/op 3.9997 ms/op 1.35
mainnet_e217614 - capella processSlashingsReset 3.4680 us/op 2.4370 us/op 1.42
mainnet_e217614 - capella processRandaoMixesReset 5.0580 us/op 3.3150 us/op 1.53
mainnet_e217614 - capella processHistoricalRootsUpdate 1.0550 us/op 860.00 ns/op 1.23
mainnet_e217614 - capella processParticipationFlagUpdates 2.5480 us/op 2.1960 us/op 1.16
mainnet_e217614 - capella afterProcessEpoch 248.97 ms/op 213.79 ms/op 1.16
phase0 processEpoch - mainnet_e58758 476.65 ms/op 418.32 ms/op 1.14
mainnet_e58758 - phase0 beforeProcessEpoch 145.24 ms/op 146.25 ms/op 0.99
mainnet_e58758 - phase0 processJustificationAndFinalization 20.241 us/op 16.698 us/op 1.21
mainnet_e58758 - phase0 processRewardsAndPenalties 51.082 ms/op 54.067 ms/op 0.94
mainnet_e58758 - phase0 processRegistryUpdates 9.8460 us/op 11.111 us/op 0.89
mainnet_e58758 - phase0 processSlashings 717.00 ns/op 832.00 ns/op 0.86
mainnet_e58758 - phase0 processEth1DataReset 898.00 ns/op 572.00 ns/op 1.57
mainnet_e58758 - phase0 processEffectiveBalanceUpdates 873.53 us/op 1.4301 ms/op 0.61
mainnet_e58758 - phase0 processSlashingsReset 5.3650 us/op 3.2330 us/op 1.66
mainnet_e58758 - phase0 processRandaoMixesReset 7.5040 us/op 3.4670 us/op 2.16
mainnet_e58758 - phase0 processHistoricalRootsUpdate 852.00 ns/op 554.00 ns/op 1.54
mainnet_e58758 - phase0 processParticipationRecordUpdates 6.5200 us/op 3.6410 us/op 1.79
mainnet_e58758 - phase0 afterProcessEpoch 65.022 ms/op 64.438 ms/op 1.01
phase0 processEffectiveBalanceUpdates - 250000 normalcase 1.0409 ms/op 1.0153 ms/op 1.03
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 1.1620 ms/op 1.1599 ms/op 1.00
altair processInactivityUpdates - 250000 normalcase 23.923 ms/op 25.292 ms/op 0.95
altair processInactivityUpdates - 250000 worstcase 28.397 ms/op 21.067 ms/op 1.35
phase0 processRegistryUpdates - 250000 normalcase 13.160 us/op 10.146 us/op 1.30
phase0 processRegistryUpdates - 250000 badcase_full_deposits 379.51 us/op 404.73 us/op 0.94
phase0 processRegistryUpdates - 250000 worstcase 0.5 123.75 ms/op 99.354 ms/op 1.25
altair processRewardsAndPenalties - 250000 normalcase 55.853 ms/op 51.178 ms/op 1.09
altair processRewardsAndPenalties - 250000 worstcase 58.653 ms/op 57.639 ms/op 1.02
phase0 getAttestationDeltas - 250000 normalcase 10.264 ms/op 5.5525 ms/op 1.85
phase0 getAttestationDeltas - 250000 worstcase 6.2384 ms/op 5.0254 ms/op 1.24
phase0 processSlashings - 250000 worstcase 92.233 us/op 85.166 us/op 1.08
altair processSyncCommitteeUpdates - 250000 114.87 ms/op 113.49 ms/op 1.01
BeaconState.hashTreeRoot - No change 434.00 ns/op 384.00 ns/op 1.13
BeaconState.hashTreeRoot - 1 full validator 106.03 us/op 125.51 us/op 0.84
BeaconState.hashTreeRoot - 32 full validator 1.4946 ms/op 1.3069 ms/op 1.14
BeaconState.hashTreeRoot - 512 full validator 16.687 ms/op 16.463 ms/op 1.01
BeaconState.hashTreeRoot - 1 validator.effectiveBalance 208.35 us/op 179.18 us/op 1.16
BeaconState.hashTreeRoot - 32 validator.effectiveBalance 3.0268 ms/op 2.7899 ms/op 1.08
BeaconState.hashTreeRoot - 512 validator.effectiveBalance 26.791 ms/op 33.221 ms/op 0.81
BeaconState.hashTreeRoot - 1 balances 93.533 us/op 102.58 us/op 0.91
BeaconState.hashTreeRoot - 32 balances 792.95 us/op 1.1134 ms/op 0.71
BeaconState.hashTreeRoot - 512 balances 8.3181 ms/op 12.098 ms/op 0.69
BeaconState.hashTreeRoot - 250000 balances 165.51 ms/op 210.19 ms/op 0.79
aggregationBits - 2048 els - zipIndexesInBitList 12.695 us/op 17.057 us/op 0.74
byteArrayEquals 32 66.350 ns/op 65.003 ns/op 1.02
Buffer.compare 32 40.110 ns/op 36.456 ns/op 1.10
byteArrayEquals 1024 1.7927 us/op 1.7054 us/op 1.05
Buffer.compare 1024 48.923 ns/op 43.265 ns/op 1.13
byteArrayEquals 16384 28.855 us/op 26.698 us/op 1.08
Buffer.compare 16384 229.69 ns/op 239.68 ns/op 0.96
byteArrayEquals 123687377 217.93 ms/op 205.32 ms/op 1.06
Buffer.compare 123687377 5.2648 ms/op 5.5898 ms/op 0.94
byteArrayEquals 32 - diff last byte 62.070 ns/op 60.638 ns/op 1.02
Buffer.compare 32 - diff last byte 40.841 ns/op 36.525 ns/op 1.12
byteArrayEquals 1024 - diff last byte 1.7379 us/op 1.6499 us/op 1.05
Buffer.compare 1024 - diff last byte 50.250 ns/op 42.872 ns/op 1.17
byteArrayEquals 16384 - diff last byte 26.762 us/op 26.960 us/op 0.99
Buffer.compare 16384 - diff last byte 218.70 ns/op 214.59 ns/op 1.02
byteArrayEquals 123687377 - diff last byte 206.28 ms/op 209.84 ms/op 0.98
Buffer.compare 123687377 - diff last byte 5.9414 ms/op 4.7559 ms/op 1.25
byteArrayEquals 32 - random bytes 5.3810 ns/op 4.6820 ns/op 1.15
Buffer.compare 32 - random bytes 41.886 ns/op 39.597 ns/op 1.06
byteArrayEquals 1024 - random bytes 4.7880 ns/op 4.5210 ns/op 1.06
Buffer.compare 1024 - random bytes 38.461 ns/op 37.514 ns/op 1.03
byteArrayEquals 16384 - random bytes 4.8990 ns/op 4.4780 ns/op 1.09
Buffer.compare 16384 - random bytes 41.366 ns/op 37.842 ns/op 1.09
byteArrayEquals 123687377 - random bytes 8.6000 ns/op 8.0300 ns/op 1.07
Buffer.compare 123687377 - random bytes 42.710 ns/op 42.360 ns/op 1.01
regular array get 100000 times 43.419 us/op 41.644 us/op 1.04
wrappedArray get 100000 times 42.847 us/op 41.596 us/op 1.03
arrayWithProxy get 100000 times 9.9829 ms/op 11.223 ms/op 0.89
ssz.Root.equals 55.795 ns/op 56.299 ns/op 0.99
byteArrayEquals 55.448 ns/op 55.855 ns/op 0.99
Buffer.compare 10.283 ns/op 10.419 ns/op 0.99
shuffle list - 16384 els 4.7230 ms/op 4.9662 ms/op 0.95
shuffle list - 250000 els 71.127 ms/op 71.453 ms/op 1.00
processSlot - 1 slots 12.139 us/op 15.617 us/op 0.78
processSlot - 32 slots 2.1625 ms/op 3.2900 ms/op 0.66
getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei 48.367 ms/op 49.871 ms/op 0.97
getCommitteeAssignments - req 1 vs - 250000 vc 2.3609 ms/op 2.3218 ms/op 1.02
getCommitteeAssignments - req 100 vs - 250000 vc 3.4821 ms/op 3.4029 ms/op 1.02
getCommitteeAssignments - req 1000 vs - 250000 vc 3.6589 ms/op 3.7761 ms/op 0.97
findModifiedValidators - 10000 modified validators 418.89 ms/op 434.93 ms/op 0.96
findModifiedValidators - 1000 modified validators 312.15 ms/op 345.29 ms/op 0.90
findModifiedValidators - 100 modified validators 317.59 ms/op 340.86 ms/op 0.93
findModifiedValidators - 10 modified validators 306.15 ms/op 328.17 ms/op 0.93
findModifiedValidators - 1 modified validators 307.58 ms/op 327.45 ms/op 0.94
findModifiedValidators - no difference 295.12 ms/op 303.10 ms/op 0.97
compare ViewDUs 3.8893 s/op 3.9536 s/op 0.98
compare each validator Uint8Array 1.6025 s/op 1.6869 s/op 0.95
compare ViewDU to Uint8Array 1.1013 s/op 1.0752 s/op 1.02
migrate state 1000000 validators, 24 modified, 0 new 786.35 ms/op 746.36 ms/op 1.05
migrate state 1000000 validators, 1700 modified, 1000 new 924.29 ms/op 1.0574 s/op 0.87
migrate state 1000000 validators, 3400 modified, 2000 new 1.1619 s/op 1.3834 s/op 0.84
migrate state 1500000 validators, 24 modified, 0 new 677.02 ms/op 672.33 ms/op 1.01
migrate state 1500000 validators, 1700 modified, 1000 new 922.48 ms/op 981.88 ms/op 0.94
migrate state 1500000 validators, 3400 modified, 2000 new 1.0233 s/op 1.2497 s/op 0.82
RootCache.getBlockRootAtSlot - 250000 vs - 7PWei 4.4200 ns/op 4.3900 ns/op 1.01
state getBlockRootAtSlot - 250000 vs - 7PWei 387.34 ns/op 763.28 ns/op 0.51
computeProposers - vc 250000 5.6250 ms/op 7.0454 ms/op 0.80
computeEpochShuffling - vc 250000 72.384 ms/op 66.429 ms/op 1.09
getNextSyncCommittee - vc 250000 97.922 ms/op 114.73 ms/op 0.85
computeSigningRoot for AttestationData 16.369 us/op 20.807 us/op 0.79
hash AttestationData serialized data then Buffer.toString(base64) 1.2267 us/op 1.3039 us/op 0.94
toHexString serialized data 858.66 ns/op 808.18 ns/op 1.06
Buffer.toString(base64) 197.98 ns/op 163.80 ns/op 1.21

by benchmarkbot/action

Copy link
Member

@wemeetagain wemeetagain left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM modulo @g11tech 's approval / comment

@philknows philknows added this to the v1.15.0 milestone Jan 19, 2024
@nflaig nflaig changed the title feat: update configs to be able to support Deneb fork on all networks feat: update configs to be able to support Deneb on all networks Jan 19, 2024
@g11tech g11tech merged commit 9b44056 into unstable Jan 23, 2024
17 of 18 checks passed
@g11tech g11tech deleted the nflaig/review-configs branch January 23, 2024 07:25
@wemeetagain
Copy link
Member

🎉 This PR is included in v1.15.0 🎉

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants