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: add max activation churn limit and other deneb devnet-9 spec updates #5958

Merged
merged 7 commits into from
Sep 28, 2023

Conversation

dapplion
Copy link
Contributor

@dapplion dapplion commented Sep 14, 2023

Motivation

Description

Add max activation churn limit. Should wait for spec tests release next Monday.

@dapplion dapplion changed the title Add max activation churn limit feat: add max activation churn limit Sep 14, 2023
@g11tech g11tech force-pushed the dapplion/activation-churn-limit branch from 886bc4c to 7200d73 Compare September 26, 2023 16:54
@g11tech g11tech marked this pull request as ready for review September 26, 2023 16:55
@g11tech g11tech requested a review from a team as a code owner September 26, 2023 16:55
@g11tech g11tech enabled auto-merge (squash) September 26, 2023 17:16
g11tech
g11tech previously approved these changes Sep 26, 2023
Copy link
Contributor

@g11tech g11tech left a comment

Choose a reason for hiding this comment

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

lgtm

@github-actions
Copy link
Contributor

github-actions bot commented Sep 26, 2023

Performance Report

✔️ no performance regression detected

Full benchmark results
Benchmark suite Current: 65c3323 Previous: 2493672 Ratio
getPubkeys - index2pubkey - req 1000 vs - 250000 vc 1.0098 ms/op 561.84 us/op 1.80
getPubkeys - validatorsArr - req 1000 vs - 250000 vc 110.74 us/op 104.05 us/op 1.06
BLS verify - blst-native 1.3835 ms/op 1.3659 ms/op 1.01
BLS verifyMultipleSignatures 3 - blst-native 2.9126 ms/op 2.8709 ms/op 1.01
BLS verifyMultipleSignatures 8 - blst-native 6.4114 ms/op 6.3088 ms/op 1.02
BLS verifyMultipleSignatures 32 - blst-native 23.341 ms/op 23.055 ms/op 1.01
BLS verifyMultipleSignatures 64 - blst-native 45.694 ms/op 45.188 ms/op 1.01
BLS verifyMultipleSignatures 128 - blst-native 94.393 ms/op 90.898 ms/op 1.04
BLS deserializing 10000 signatures 969.96 ms/op 939.88 ms/op 1.03
BLS deserializing 100000 signatures 9.5844 s/op 9.4330 s/op 1.02
BLS verifyMultipleSignatures - same message - 3 - blst-native 1.4166 ms/op 1.4055 ms/op 1.01
BLS verifyMultipleSignatures - same message - 8 - blst-native 1.6855 ms/op 1.5777 ms/op 1.07
BLS verifyMultipleSignatures - same message - 32 - blst-native 2.4706 ms/op 2.4308 ms/op 1.02
BLS verifyMultipleSignatures - same message - 64 - blst-native 3.8481 ms/op 3.6397 ms/op 1.06
BLS verifyMultipleSignatures - same message - 128 - blst-native 6.0991 ms/op 5.8655 ms/op 1.04
BLS aggregatePubkeys 32 - blst-native 27.324 us/op 26.918 us/op 1.02
BLS aggregatePubkeys 128 - blst-native 105.50 us/op 106.53 us/op 0.99
getAttestationsForBlock 58.195 ms/op 55.936 ms/op 1.04
isKnown best case - 1 super set check 576.00 ns/op 522.00 ns/op 1.10
isKnown normal case - 2 super set checks 580.00 ns/op 558.00 ns/op 1.04
isKnown worse case - 16 super set checks 592.00 ns/op 496.00 ns/op 1.19
CheckpointStateCache - add get delete 6.6900 us/op 6.8520 us/op 0.98
validate api signedAggregateAndProof - struct 2.9909 ms/op 3.0538 ms/op 0.98
validate gossip signedAggregateAndProof - struct 3.0746 ms/op 2.9779 ms/op 1.03
validate gossip attestation - vc 640000 1.4622 ms/op 1.5265 ms/op 0.96
batch validate gossip attestation - vc 640000 - chunk 32 194.17 us/op 188.20 us/op 1.03
batch validate gossip attestation - vc 640000 - chunk 64 173.63 us/op 168.05 us/op 1.03
batch validate gossip attestation - vc 640000 - chunk 128 164.81 us/op 145.80 us/op 1.13
batch validate gossip attestation - vc 640000 - chunk 256 150.82 us/op 137.16 us/op 1.10
pickEth1Vote - no votes 1.4303 ms/op 1.2139 ms/op 1.18
pickEth1Vote - max votes 12.864 ms/op 11.265 ms/op 1.14
pickEth1Vote - Eth1Data hashTreeRoot value x2048 21.654 ms/op 18.220 ms/op 1.19
pickEth1Vote - Eth1Data hashTreeRoot tree x2048 31.508 ms/op 22.316 ms/op 1.41
pickEth1Vote - Eth1Data fastSerialize value x2048 782.73 us/op 642.24 us/op 1.22
pickEth1Vote - Eth1Data fastSerialize tree x2048 5.4715 ms/op 4.9935 ms/op 1.10
bytes32 toHexString 724.00 ns/op 591.00 ns/op 1.23
bytes32 Buffer.toString(hex) 336.00 ns/op 316.00 ns/op 1.06
bytes32 Buffer.toString(hex) from Uint8Array 493.00 ns/op 484.00 ns/op 1.02
bytes32 Buffer.toString(hex) + 0x 322.00 ns/op 332.00 ns/op 0.97
Object access 1 prop 0.20600 ns/op 0.19700 ns/op 1.05
Map access 1 prop 0.16800 ns/op 0.16700 ns/op 1.01
Object get x1000 11.715 ns/op 8.1030 ns/op 1.45
Map get x1000 0.80700 ns/op 0.64200 ns/op 1.26
Object set x1000 76.901 ns/op 62.842 ns/op 1.22
Map set x1000 50.847 ns/op 45.648 ns/op 1.11
Return object 10000 times 0.26510 ns/op 0.26410 ns/op 1.00
Throw Error 10000 times 4.0549 us/op 4.0180 us/op 1.01
fastMsgIdFn sha256 / 200 bytes 3.5150 us/op 3.3540 us/op 1.05
fastMsgIdFn h32 xxhash / 200 bytes 327.00 ns/op 305.00 ns/op 1.07
fastMsgIdFn h64 xxhash / 200 bytes 382.00 ns/op 363.00 ns/op 1.05
fastMsgIdFn sha256 / 1000 bytes 12.122 us/op 11.834 us/op 1.02
fastMsgIdFn h32 xxhash / 1000 bytes 457.00 ns/op 433.00 ns/op 1.06
fastMsgIdFn h64 xxhash / 1000 bytes 451.00 ns/op 440.00 ns/op 1.02
fastMsgIdFn sha256 / 10000 bytes 109.72 us/op 107.48 us/op 1.02
fastMsgIdFn h32 xxhash / 10000 bytes 2.0770 us/op 1.9860 us/op 1.05
fastMsgIdFn h64 xxhash / 10000 bytes 1.4520 us/op 1.3570 us/op 1.07
send data - 1000 256B messages 21.424 ms/op 20.051 ms/op 1.07
send data - 1000 512B messages 31.679 ms/op 27.465 ms/op 1.15
send data - 1000 1024B messages 47.837 ms/op 42.388 ms/op 1.13
send data - 1000 1200B messages 32.706 ms/op 30.529 ms/op 1.07
send data - 1000 2048B messages 38.863 ms/op 34.126 ms/op 1.14
send data - 1000 4096B messages 29.612 ms/op 35.524 ms/op 0.83
send data - 1000 16384B messages 101.28 ms/op 81.339 ms/op 1.25
send data - 1000 65536B messages 320.79 ms/op 272.58 ms/op 1.18
enrSubnets - fastDeserialize 64 bits 1.4740 us/op 1.2980 us/op 1.14
enrSubnets - ssz BitVector 64 bits 517.00 ns/op 452.00 ns/op 1.14
enrSubnets - fastDeserialize 4 bits 210.00 ns/op 194.00 ns/op 1.08
enrSubnets - ssz BitVector 4 bits 502.00 ns/op 509.00 ns/op 0.99
prioritizePeers score -10:0 att 32-0.1 sync 2-0 122.85 us/op 110.54 us/op 1.11
prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 151.37 us/op 130.90 us/op 1.16
prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 200.85 us/op 187.39 us/op 1.07
prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 382.03 us/op 302.66 us/op 1.26
prioritizePeers score 0:0 att 64-1 sync 4-1 386.88 us/op 390.15 us/op 0.99
array of 16000 items push then shift 1.7347 us/op 1.6769 us/op 1.03
LinkedList of 16000 items push then shift 10.114 ns/op 9.1750 ns/op 1.10
array of 16000 items push then pop 101.87 ns/op 90.664 ns/op 1.12
LinkedList of 16000 items push then pop 9.4690 ns/op 8.9410 ns/op 1.06
array of 24000 items push then shift 2.5495 us/op 2.5612 us/op 1.00
LinkedList of 24000 items push then shift 10.144 ns/op 9.3900 ns/op 1.08
array of 24000 items push then pop 146.71 ns/op 130.80 ns/op 1.12
LinkedList of 24000 items push then pop 10.000 ns/op 9.4680 ns/op 1.06
intersect bitArray bitLen 8 8.9220 ns/op 7.0000 ns/op 1.27
intersect array and set length 8 85.972 ns/op 61.122 ns/op 1.41
intersect bitArray bitLen 128 40.077 ns/op 32.686 ns/op 1.23
intersect array and set length 128 1.0329 us/op 793.83 ns/op 1.30
bitArray.getTrueBitIndexes() bitLen 128 1.8490 us/op 1.6250 us/op 1.14
bitArray.getTrueBitIndexes() bitLen 248 3.0550 us/op 2.9110 us/op 1.05
bitArray.getTrueBitIndexes() bitLen 512 5.9520 us/op 6.0310 us/op 0.99
Buffer.concat 32 items 1.0510 us/op 1.0600 us/op 0.99
Uint8Array.set 32 items 2.1670 us/op 1.9960 us/op 1.09
Set add up to 64 items then delete first 4.9505 us/op 4.6587 us/op 1.06
OrderedSet add up to 64 items then delete first 6.3892 us/op 5.8729 us/op 1.09
Set add up to 64 items then delete last 5.1987 us/op 4.9385 us/op 1.05
OrderedSet add up to 64 items then delete last 6.8718 us/op 6.1672 us/op 1.11
Set add up to 64 items then delete middle 5.2841 us/op 4.7875 us/op 1.10
OrderedSet add up to 64 items then delete middle 8.2429 us/op 7.6225 us/op 1.08
Set add up to 128 items then delete first 10.806 us/op 9.7469 us/op 1.11
OrderedSet add up to 128 items then delete first 14.640 us/op 13.863 us/op 1.06
Set add up to 128 items then delete last 10.510 us/op 9.9532 us/op 1.06
OrderedSet add up to 128 items then delete last 14.401 us/op 12.883 us/op 1.12
Set add up to 128 items then delete middle 10.403 us/op 9.8914 us/op 1.05
OrderedSet add up to 128 items then delete middle 19.299 us/op 18.523 us/op 1.04
Set add up to 256 items then delete first 21.642 us/op 20.968 us/op 1.03
OrderedSet add up to 256 items then delete first 29.445 us/op 28.209 us/op 1.04
Set add up to 256 items then delete last 20.867 us/op 19.913 us/op 1.05
OrderedSet add up to 256 items then delete last 27.797 us/op 26.021 us/op 1.07
Set add up to 256 items then delete middle 21.021 us/op 19.695 us/op 1.07
OrderedSet add up to 256 items then delete middle 50.806 us/op 50.373 us/op 1.01
transfer serialized Status (84 B) 1.9150 us/op 1.8530 us/op 1.03
copy serialized Status (84 B) 1.5910 us/op 1.5790 us/op 1.01
transfer serialized SignedVoluntaryExit (112 B) 1.9790 us/op 2.0330 us/op 0.97
copy serialized SignedVoluntaryExit (112 B) 1.7070 us/op 1.7300 us/op 0.99
transfer serialized ProposerSlashing (416 B) 2.4680 us/op 2.1750 us/op 1.13
copy serialized ProposerSlashing (416 B) 2.8540 us/op 2.1630 us/op 1.32
transfer serialized Attestation (485 B) 3.3110 us/op 2.3350 us/op 1.42
copy serialized Attestation (485 B) 3.1940 us/op 2.2520 us/op 1.42
transfer serialized AttesterSlashing (33232 B) 3.0870 us/op 2.3310 us/op 1.32
copy serialized AttesterSlashing (33232 B) 9.4520 us/op 6.3090 us/op 1.50
transfer serialized Small SignedBeaconBlock (128000 B) 3.2150 us/op 2.8020 us/op 1.15
copy serialized Small SignedBeaconBlock (128000 B) 23.155 us/op 16.408 us/op 1.41
transfer serialized Avg SignedBeaconBlock (200000 B) 3.6300 us/op 3.1130 us/op 1.17
copy serialized Avg SignedBeaconBlock (200000 B) 33.789 us/op 21.193 us/op 1.59
transfer serialized BlobsSidecar (524380 B) 3.7960 us/op 3.2540 us/op 1.17
copy serialized BlobsSidecar (524380 B) 122.98 us/op 85.215 us/op 1.44
transfer serialized Big SignedBeaconBlock (1000000 B) 4.3160 us/op 3.6170 us/op 1.19
copy serialized Big SignedBeaconBlock (1000000 B) 289.00 us/op 162.05 us/op 1.78
pass gossip attestations to forkchoice per slot 4.4170 ms/op 3.9932 ms/op 1.11
forkChoice updateHead vc 100000 bc 64 eq 0 694.39 us/op 678.53 us/op 1.02
forkChoice updateHead vc 600000 bc 64 eq 0 7.7037 ms/op 4.3647 ms/op 1.77
forkChoice updateHead vc 1000000 bc 64 eq 0 8.3868 ms/op 7.1886 ms/op 1.17
forkChoice updateHead vc 600000 bc 320 eq 0 4.7751 ms/op 4.2786 ms/op 1.12
forkChoice updateHead vc 600000 bc 1200 eq 0 5.1165 ms/op 4.4028 ms/op 1.16
forkChoice updateHead vc 600000 bc 7200 eq 0 6.7224 ms/op 5.1714 ms/op 1.30
forkChoice updateHead vc 600000 bc 64 eq 1000 12.755 ms/op 11.481 ms/op 1.11
forkChoice updateHead vc 600000 bc 64 eq 10000 12.914 ms/op 12.820 ms/op 1.01
forkChoice updateHead vc 600000 bc 64 eq 300000 27.410 ms/op 18.997 ms/op 1.44
computeDeltas 500000 validators 300 proto nodes 7.0194 ms/op 6.4568 ms/op 1.09
computeDeltas 500000 validators 1200 proto nodes 6.7623 ms/op 6.3809 ms/op 1.06
computeDeltas 500000 validators 7200 proto nodes 6.4640 ms/op 6.3452 ms/op 1.02
computeDeltas 750000 validators 300 proto nodes 9.7959 ms/op 9.4538 ms/op 1.04
computeDeltas 750000 validators 1200 proto nodes 9.8186 ms/op 9.3493 ms/op 1.05
computeDeltas 750000 validators 7200 proto nodes 9.9568 ms/op 9.4076 ms/op 1.06
computeDeltas 1400000 validators 300 proto nodes 19.033 ms/op 17.915 ms/op 1.06
computeDeltas 1400000 validators 1200 proto nodes 19.182 ms/op 18.029 ms/op 1.06
computeDeltas 1400000 validators 7200 proto nodes 18.650 ms/op 17.872 ms/op 1.04
computeDeltas 2100000 validators 300 proto nodes 27.680 ms/op 26.859 ms/op 1.03
computeDeltas 2100000 validators 1200 proto nodes 27.837 ms/op 26.803 ms/op 1.04
computeDeltas 2100000 validators 7200 proto nodes 28.987 ms/op 26.892 ms/op 1.08
computeProposerBoostScoreFromBalances 500000 validators 3.5786 ms/op 3.3078 ms/op 1.08
computeProposerBoostScoreFromBalances 750000 validators 3.4382 ms/op 3.4012 ms/op 1.01
computeProposerBoostScoreFromBalances 1400000 validators 3.4334 ms/op 3.4677 ms/op 0.99
computeProposerBoostScoreFromBalances 2100000 validators 3.3368 ms/op 3.5908 ms/op 0.93
altair processAttestation - 250000 vs - 7PWei normalcase 3.4389 ms/op 2.9412 ms/op 1.17
altair processAttestation - 250000 vs - 7PWei worstcase 4.0348 ms/op 4.2721 ms/op 0.94
altair processAttestation - setStatus - 1/6 committees join 184.03 us/op 207.00 us/op 0.89
altair processAttestation - setStatus - 1/3 committees join 376.83 us/op 372.01 us/op 1.01
altair processAttestation - setStatus - 1/2 committees join 541.05 us/op 514.53 us/op 1.05
altair processAttestation - setStatus - 2/3 committees join 636.08 us/op 647.71 us/op 0.98
altair processAttestation - setStatus - 4/5 committees join 895.04 us/op 901.79 us/op 0.99
altair processAttestation - setStatus - 100% committees join 1.0753 ms/op 1.0234 ms/op 1.05
altair processBlock - 250000 vs - 7PWei normalcase 8.1785 ms/op 8.9361 ms/op 0.92
altair processBlock - 250000 vs - 7PWei normalcase hashState 29.255 ms/op 32.176 ms/op 0.91
altair processBlock - 250000 vs - 7PWei worstcase 36.252 ms/op 45.455 ms/op 0.80
altair processBlock - 250000 vs - 7PWei worstcase hashState 94.010 ms/op 128.38 ms/op 0.73
phase0 processBlock - 250000 vs - 7PWei normalcase 2.5409 ms/op 3.8926 ms/op 0.65
phase0 processBlock - 250000 vs - 7PWei worstcase 31.476 ms/op 40.286 ms/op 0.78
altair processEth1Data - 250000 vs - 7PWei normalcase 581.90 us/op 833.50 us/op 0.70
getExpectedWithdrawals 250000 eb:1,eth1:1,we:0,wn:0,smpl:15 14.871 us/op 17.992 us/op 0.83
getExpectedWithdrawals 250000 eb:0.95,eth1:0.1,we:0.05,wn:0,smpl:219 68.579 us/op 106.36 us/op 0.64
getExpectedWithdrawals 250000 eb:0.95,eth1:0.3,we:0.05,wn:0,smpl:42 19.724 us/op 29.232 us/op 0.67
getExpectedWithdrawals 250000 eb:0.95,eth1:0.7,we:0.05,wn:0,smpl:18 15.299 us/op 25.014 us/op 0.61
getExpectedWithdrawals 250000 eb:0.1,eth1:0.1,we:0,wn:0,smpl:1020 209.48 us/op 249.22 us/op 0.84
getExpectedWithdrawals 250000 eb:0.03,eth1:0.03,we:0,wn:0,smpl:11777 1.2421 ms/op 2.0781 ms/op 0.60
getExpectedWithdrawals 250000 eb:0.01,eth1:0.01,we:0,wn:0,smpl:16384 1.9912 ms/op 2.8272 ms/op 0.70
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,smpl:16384 1.5985 ms/op 1.9307 ms/op 0.83
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,nocache,smpl:16384 3.7877 ms/op 4.4047 ms/op 0.86
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,smpl:16384 2.5650 ms/op 2.7201 ms/op 0.94
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,nocache,smpl:16384 5.7812 ms/op 6.5005 ms/op 0.89
Tree 40 250000 create 357.21 ms/op 374.38 ms/op 0.95
Tree 40 250000 get(125000) 206.06 ns/op 216.85 ns/op 0.95
Tree 40 250000 set(125000) 1.0760 us/op 1.2019 us/op 0.90
Tree 40 250000 toArray() 23.347 ms/op 23.581 ms/op 0.99
Tree 40 250000 iterate all - toArray() + loop 22.037 ms/op 24.638 ms/op 0.89
Tree 40 250000 iterate all - get(i) 70.828 ms/op 83.356 ms/op 0.85
MutableVector 250000 create 13.200 ms/op 11.828 ms/op 1.12
MutableVector 250000 get(125000) 6.6530 ns/op 6.7200 ns/op 0.99
MutableVector 250000 set(125000) 258.19 ns/op 277.14 ns/op 0.93
MutableVector 250000 toArray() 3.5699 ms/op 4.3750 ms/op 0.82
MutableVector 250000 iterate all - toArray() + loop 3.7277 ms/op 4.1499 ms/op 0.90
MutableVector 250000 iterate all - get(i) 1.5381 ms/op 1.5568 ms/op 0.99
Array 250000 create 3.3525 ms/op 3.9858 ms/op 0.84
Array 250000 clone - spread 1.0916 ms/op 1.4238 ms/op 0.77
Array 250000 get(125000) 0.54000 ns/op 0.64200 ns/op 0.84
Array 250000 set(125000) 0.61700 ns/op 0.71100 ns/op 0.87
Array 250000 iterate all - loop 108.89 us/op 89.479 us/op 1.22
effectiveBalanceIncrements clone Uint8Array 300000 37.007 us/op 58.204 us/op 0.64
effectiveBalanceIncrements clone MutableVector 300000 300.00 ns/op 408.00 ns/op 0.74
effectiveBalanceIncrements rw all Uint8Array 300000 179.94 us/op 202.86 us/op 0.89
effectiveBalanceIncrements rw all MutableVector 300000 85.482 ms/op 140.93 ms/op 0.61
phase0 afterProcessEpoch - 250000 vs - 7PWei 115.77 ms/op 120.95 ms/op 0.96
phase0 beforeProcessEpoch - 250000 vs - 7PWei 41.882 ms/op 44.245 ms/op 0.95
altair processEpoch - mainnet_e81889 455.05 ms/op 451.35 ms/op 1.01
mainnet_e81889 - altair beforeProcessEpoch 66.661 ms/op 61.786 ms/op 1.08
mainnet_e81889 - altair processJustificationAndFinalization 17.131 us/op 19.581 us/op 0.87
mainnet_e81889 - altair processInactivityUpdates 7.9272 ms/op 9.8687 ms/op 0.80
mainnet_e81889 - altair processRewardsAndPenalties 56.513 ms/op 71.699 ms/op 0.79
mainnet_e81889 - altair processRegistryUpdates 2.5660 us/op 5.1070 us/op 0.50
mainnet_e81889 - altair processSlashings 570.00 ns/op 1.0140 us/op 0.56
mainnet_e81889 - altair processEth1DataReset 697.00 ns/op 1.4910 us/op 0.47
mainnet_e81889 - altair processEffectiveBalanceUpdates 1.2879 ms/op 2.2400 ms/op 0.57
mainnet_e81889 - altair processSlashingsReset 4.0910 us/op 7.6210 us/op 0.54
mainnet_e81889 - altair processRandaoMixesReset 5.9090 us/op 15.039 us/op 0.39
mainnet_e81889 - altair processHistoricalRootsUpdate 687.00 ns/op 1.7980 us/op 0.38
mainnet_e81889 - altair processParticipationFlagUpdates 2.4240 us/op 6.1210 us/op 0.40
mainnet_e81889 - altair processSyncCommitteeUpdates 825.00 ns/op 1.7610 us/op 0.47
mainnet_e81889 - altair afterProcessEpoch 123.90 ms/op 150.78 ms/op 0.82
capella processEpoch - mainnet_e217614 1.5634 s/op 2.0965 s/op 0.75
mainnet_e217614 - capella beforeProcessEpoch 244.58 ms/op 348.52 ms/op 0.70
mainnet_e217614 - capella processJustificationAndFinalization 13.763 us/op 29.466 us/op 0.47
mainnet_e217614 - capella processInactivityUpdates 23.186 ms/op 33.138 ms/op 0.70
mainnet_e217614 - capella processRewardsAndPenalties 268.15 ms/op 386.05 ms/op 0.69
mainnet_e217614 - capella processRegistryUpdates 24.063 us/op 40.757 us/op 0.59
mainnet_e217614 - capella processSlashings 453.00 ns/op 1.7240 us/op 0.26
mainnet_e217614 - capella processEth1DataReset 376.00 ns/op 1.2180 us/op 0.31
mainnet_e217614 - capella processEffectiveBalanceUpdates 4.2186 ms/op 6.6507 ms/op 0.63
mainnet_e217614 - capella processSlashingsReset 2.9780 us/op 7.6000 us/op 0.39
mainnet_e217614 - capella processRandaoMixesReset 5.7350 us/op 10.326 us/op 0.56
mainnet_e217614 - capella processHistoricalRootsUpdate 951.00 ns/op 1.5660 us/op 0.61
mainnet_e217614 - capella processParticipationFlagUpdates 3.6930 us/op 5.6960 us/op 0.65
mainnet_e217614 - capella afterProcessEpoch 308.10 ms/op 360.20 ms/op 0.86
phase0 processEpoch - mainnet_e58758 501.54 ms/op 731.94 ms/op 0.69
mainnet_e58758 - phase0 beforeProcessEpoch 129.13 ms/op 228.89 ms/op 0.56
mainnet_e58758 - phase0 processJustificationAndFinalization 22.450 us/op 32.373 us/op 0.69
mainnet_e58758 - phase0 processRewardsAndPenalties 51.600 ms/op 70.776 ms/op 0.73
mainnet_e58758 - phase0 processRegistryUpdates 12.039 us/op 24.299 us/op 0.50
mainnet_e58758 - phase0 processSlashings 618.00 ns/op 1.6260 us/op 0.38
mainnet_e58758 - phase0 processEth1DataReset 426.00 ns/op 1.2950 us/op 0.33
mainnet_e58758 - phase0 processEffectiveBalanceUpdates 1.1149 ms/op 2.2479 ms/op 0.50
mainnet_e58758 - phase0 processSlashingsReset 2.7590 us/op 5.3850 us/op 0.51
mainnet_e58758 - phase0 processRandaoMixesReset 4.4530 us/op 11.712 us/op 0.38
mainnet_e58758 - phase0 processHistoricalRootsUpdate 472.00 ns/op 1.4990 us/op 0.31
mainnet_e58758 - phase0 processParticipationRecordUpdates 4.1370 us/op 11.243 us/op 0.37
mainnet_e58758 - phase0 afterProcessEpoch 100.86 ms/op 128.59 ms/op 0.78
phase0 processEffectiveBalanceUpdates - 250000 normalcase 1.9717 ms/op 2.1396 ms/op 0.92
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 1.8007 ms/op 3.2106 ms/op 0.56
altair processInactivityUpdates - 250000 normalcase 22.649 ms/op 35.871 ms/op 0.63
altair processInactivityUpdates - 250000 worstcase 19.179 ms/op 42.549 ms/op 0.45
phase0 processRegistryUpdates - 250000 normalcase 13.877 us/op 22.495 us/op 0.62
phase0 processRegistryUpdates - 250000 badcase_full_deposits 385.30 us/op 711.17 us/op 0.54
phase0 processRegistryUpdates - 250000 worstcase 0.5 140.83 ms/op 228.40 ms/op 0.62
altair processRewardsAndPenalties - 250000 normalcase 48.956 ms/op 70.175 ms/op 0.70
altair processRewardsAndPenalties - 250000 worstcase 53.005 ms/op 67.629 ms/op 0.78
phase0 getAttestationDeltas - 250000 normalcase 8.3294 ms/op 12.172 ms/op 0.68
phase0 getAttestationDeltas - 250000 worstcase 8.1726 ms/op 12.264 ms/op 0.67
phase0 processSlashings - 250000 worstcase 2.4857 ms/op 3.2139 ms/op 0.77
altair processSyncCommitteeUpdates - 250000 162.43 ms/op 177.96 ms/op 0.91
BeaconState.hashTreeRoot - No change 352.00 ns/op 506.00 ns/op 0.70
BeaconState.hashTreeRoot - 1 full validator 141.50 us/op 188.03 us/op 0.75
BeaconState.hashTreeRoot - 32 full validator 1.6961 ms/op 2.0670 ms/op 0.82
BeaconState.hashTreeRoot - 512 full validator 14.058 ms/op 21.380 ms/op 0.66
BeaconState.hashTreeRoot - 1 validator.effectiveBalance 158.44 us/op 205.04 us/op 0.77
BeaconState.hashTreeRoot - 32 validator.effectiveBalance 2.6145 ms/op 3.2807 ms/op 0.80
BeaconState.hashTreeRoot - 512 validator.effectiveBalance 29.612 ms/op 37.148 ms/op 0.80
BeaconState.hashTreeRoot - 1 balances 145.56 us/op 173.54 us/op 0.84
BeaconState.hashTreeRoot - 32 balances 1.2437 ms/op 1.9623 ms/op 0.63
BeaconState.hashTreeRoot - 512 balances 10.481 ms/op 17.408 ms/op 0.60
BeaconState.hashTreeRoot - 250000 balances 161.74 ms/op 278.82 ms/op 0.58
aggregationBits - 2048 els - zipIndexesInBitList 14.656 us/op 29.258 us/op 0.50
regular array get 100000 times 42.107 us/op 47.425 us/op 0.89
wrappedArray get 100000 times 32.880 us/op 58.215 us/op 0.56
arrayWithProxy get 100000 times 14.272 ms/op 17.520 ms/op 0.81
ssz.Root.equals 209.00 ns/op 294.00 ns/op 0.71
byteArrayEquals 201.00 ns/op 298.00 ns/op 0.67
shuffle list - 16384 els 7.0122 ms/op 8.1502 ms/op 0.86
shuffle list - 250000 els 103.19 ms/op 120.21 ms/op 0.86
processSlot - 1 slots 15.314 us/op 22.477 us/op 0.68
processSlot - 32 slots 2.8591 ms/op 5.1301 ms/op 0.56
getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei 49.063 ms/op 64.209 ms/op 0.76
getCommitteeAssignments - req 1 vs - 250000 vc 2.5420 ms/op 2.8643 ms/op 0.89
getCommitteeAssignments - req 100 vs - 250000 vc 3.7585 ms/op 4.3253 ms/op 0.87
getCommitteeAssignments - req 1000 vs - 250000 vc 4.0902 ms/op 4.7844 ms/op 0.85
RootCache.getBlockRootAtSlot - 250000 vs - 7PWei 4.8200 ns/op 6.3400 ns/op 0.76
state getBlockRootAtSlot - 250000 vs - 7PWei 642.69 ns/op 998.45 ns/op 0.64
computeProposers - vc 250000 9.7439 ms/op 10.744 ms/op 0.91
computeEpochShuffling - vc 250000 106.41 ms/op 124.66 ms/op 0.85
getNextSyncCommittee - vc 250000 156.54 ms/op 178.88 ms/op 0.88
computeSigningRoot for AttestationData 28.494 us/op 32.937 us/op 0.87
hash AttestationData serialized data then Buffer.toString(base64) 2.3375 us/op 2.5201 us/op 0.93
toHexString serialized data 1.1593 us/op 2.3655 us/op 0.49
Buffer.toString(base64) 222.66 ns/op 302.26 ns/op 0.74

by benchmarkbot/action

@g11tech
Copy link
Contributor

g11tech commented Sep 27, 2023

working on the failing spec tests + modifying spec tests for deneb forkchoice

however some tests in new spec version are erroneously failing issues like phase0/sanity/blocks/pyspec_tests/attester_slashing failing from beta1 => beta2/beta2.hotfix as the expected data has changed which as per my understanding should not change:

change for e.g. is in validator 30 's expected exit epoch and withdrawal epoch (phase0/sanity/blocks/pyspec_tests/attester_slashing):

       {
         "activation_eligibility_epoch": "0"
         "activation_epoch": "0"
         "effective_balance": "32000000000"
      -  "exit_epoch": "5"
      +  "exit_epoch": "6"
         "pubkey": "0xb29043a7273d0a2dbc2b747dcf6a5eccbd7ccb44b2d72e985537b117929bc3fd3a99001481327788ad040b4077c47c0d"
         "slashed": true
      -  "withdrawable_epoch": "261"
      +  "withdrawable_epoch": "262"
         "withdrawal_credentials": "0x00a4c7cea67274a6e12bcb8b3108b84b5201dd10d4b3e8e4d712c21d2f2a8fdf"
       }
      

Escalated the issue in telegram channel

UPDATE ISSUE FIXED with minimal churn param update

@g11tech g11tech changed the title feat: add max activation churn limit feat: add max activation churn limit and other deneb devnet-9 spec updates Sep 27, 2023
@g11tech g11tech force-pushed the dapplion/activation-churn-limit branch from 0b477b0 to 1d55b82 Compare September 28, 2023 13:18
g11tech
g11tech previously approved these changes Sep 28, 2023
@g11tech g11tech enabled auto-merge (squash) September 28, 2023 13:20
@g11tech g11tech merged commit 1397834 into unstable Sep 28, 2023
14 of 15 checks passed
@g11tech g11tech deleted the dapplion/activation-churn-limit branch September 28, 2023 16:26
@wemeetagain
Copy link
Member

🎉 This PR is included in v1.12.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.

3 participants