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: placeholder PR for electra #6352

Draft
wants to merge 48 commits into
base: unstable
Choose a base branch
from
Draft

feat: placeholder PR for electra #6352

wants to merge 48 commits into from

Conversation

g11tech
Copy link
Contributor

@g11tech g11tech commented Jan 24, 2024

Copy link

codecov bot commented Jan 25, 2024

Codecov Report

Attention: Patch coverage is 73.20526% with 265 lines in your changes are missing coverage. Please review.

Project coverage is 61.87%. Comparing base (8c55820) to head (488d853).
Report is 11 commits behind head on unstable.

Current head 488d853 differs from pull request most recent head 6573be5

Please upload reports for the commit 6573be5 to get more accurate results.

Additional details and impacted files
@@             Coverage Diff              @@
##           unstable    #6352      +/-   ##
============================================
- Coverage     61.88%   61.87%   -0.02%     
============================================
  Files           562      559       -3     
  Lines         59309    58842     -467     
  Branches       1916     1847      -69     
============================================
- Hits          36703    36408     -295     
+ Misses        22563    22397     -166     
+ Partials         43       37       -6     

Copy link
Contributor

github-actions bot commented Jan 25, 2024

⚠️ Performance Alert ⚠️

Possible performance regression was detected for some benchmarks.
Benchmark result of this commit is worse than the previous benchmark result exceeding threshold.

Benchmark suite Current: a59dab1 Previous: 6c20dc2 Ratio
getExpectedWithdrawals 250000 eb:0.03,eth1:0.03,we:0,wn:0,smpl:11777 3.6797 ms/op 962.52 us/op 3.82
altair processEpoch - mainnet_e81889 4.5420 s/op 388.79 ms/op 11.68
phase0 processEpoch - mainnet_e58758 3.7419 s/op 436.53 ms/op 8.57
phase0 processEffectiveBalanceUpdates - 250000 normalcase 5.8442 ms/op 1.1914 ms/op 4.91
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 6.5598 ms/op 1.5956 ms/op 4.11
Full benchmark results
Benchmark suite Current: a59dab1 Previous: 6c20dc2 Ratio
getPubkeys - index2pubkey - req 1000 vs - 250000 vc 851.64 us/op 937.18 us/op 0.91
getPubkeys - validatorsArr - req 1000 vs - 250000 vc 87.381 us/op 59.558 us/op 1.47
BLS verify - blst-native 1.2328 ms/op 1.2077 ms/op 1.02
BLS verifyMultipleSignatures 3 - blst-native 2.4026 ms/op 2.3369 ms/op 1.03
BLS verifyMultipleSignatures 8 - blst-native 5.2377 ms/op 5.0469 ms/op 1.04
BLS verifyMultipleSignatures 32 - blst-native 18.531 ms/op 18.335 ms/op 1.01
BLS verifyMultipleSignatures 64 - blst-native 36.646 ms/op 36.018 ms/op 1.02
BLS verifyMultipleSignatures 128 - blst-native 72.562 ms/op 71.419 ms/op 1.02
BLS deserializing 10000 signatures 868.40 ms/op 854.63 ms/op 1.02
BLS deserializing 100000 signatures 8.8294 s/op 9.2720 s/op 0.95
BLS verifyMultipleSignatures - same message - 3 - blst-native 1.2508 ms/op 1.4046 ms/op 0.89
BLS verifyMultipleSignatures - same message - 8 - blst-native 1.4206 ms/op 1.5175 ms/op 0.94
BLS verifyMultipleSignatures - same message - 32 - blst-native 2.2139 ms/op 2.3688 ms/op 0.93
BLS verifyMultipleSignatures - same message - 64 - blst-native 3.3332 ms/op 3.5393 ms/op 0.94
BLS verifyMultipleSignatures - same message - 128 - blst-native 5.5081 ms/op 5.8684 ms/op 0.94
BLS aggregatePubkeys 32 - blst-native 27.858 us/op 29.865 us/op 0.93
BLS aggregatePubkeys 128 - blst-native 106.21 us/op 116.12 us/op 0.91
notSeenSlots=1 numMissedVotes=1 numBadVotes=10 60.521 ms/op 95.663 ms/op 0.63
notSeenSlots=1 numMissedVotes=0 numBadVotes=4 53.518 ms/op 66.410 ms/op 0.81
notSeenSlots=2 numMissedVotes=1 numBadVotes=10 31.559 ms/op 30.486 ms/op 1.04
getSlashingsAndExits - default max 209.62 us/op 206.38 us/op 1.02
getSlashingsAndExits - 2k 450.54 us/op 369.60 us/op 1.22
proposeBlockBody type=full, size=empty 6.9406 ms/op 5.7577 ms/op 1.21
isKnown best case - 1 super set check 411.00 ns/op 488.00 ns/op 0.84
isKnown normal case - 2 super set checks 397.00 ns/op 323.00 ns/op 1.23
isKnown worse case - 16 super set checks 353.00 ns/op 287.00 ns/op 1.23
InMemoryCheckpointStateCache - add get delete 6.0260 us/op 5.0530 us/op 1.19
updateUnfinalizedPubkeys - updating 10 pubkeys 999.73 us/op
updateUnfinalizedPubkeys - updating 100 pubkeys 7.8006 ms/op
updateUnfinalizedPubkeys - updating 1000 pubkeys 105.56 ms/op
validate api signedAggregateAndProof - struct 2.3417 ms/op 2.2557 ms/op 1.04
validate gossip signedAggregateAndProof - struct 2.3845 ms/op 2.2391 ms/op 1.06
validate gossip attestation - vc 640000 1.2926 ms/op 1.2916 ms/op 1.00
batch validate gossip attestation - vc 640000 - chunk 32 162.97 us/op 165.25 us/op 0.99
batch validate gossip attestation - vc 640000 - chunk 64 146.65 us/op 143.41 us/op 1.02
batch validate gossip attestation - vc 640000 - chunk 128 145.41 us/op 138.18 us/op 1.05
batch validate gossip attestation - vc 640000 - chunk 256 145.91 us/op 148.93 us/op 0.98
pickEth1Vote - no votes 1.2848 ms/op 1.2787 ms/op 1.00
pickEth1Vote - max votes 9.8257 ms/op 10.733 ms/op 0.92
pickEth1Vote - Eth1Data hashTreeRoot value x2048 19.578 ms/op 19.716 ms/op 0.99
pickEth1Vote - Eth1Data hashTreeRoot tree x2048 25.859 ms/op 26.017 ms/op 0.99
pickEth1Vote - Eth1Data fastSerialize value x2048 695.30 us/op 698.98 us/op 0.99
pickEth1Vote - Eth1Data fastSerialize tree x2048 5.0278 ms/op 8.0512 ms/op 0.62
bytes32 toHexString 571.00 ns/op 832.00 ns/op 0.69
bytes32 Buffer.toString(hex) 324.00 ns/op 328.00 ns/op 0.99
bytes32 Buffer.toString(hex) from Uint8Array 579.00 ns/op 610.00 ns/op 0.95
bytes32 Buffer.toString(hex) + 0x 316.00 ns/op 303.00 ns/op 1.04
Object access 1 prop 0.21300 ns/op 0.21300 ns/op 1.00
Map access 1 prop 0.14200 ns/op 0.14400 ns/op 0.99
Object get x1000 10.029 ns/op 9.2890 ns/op 1.08
Map get x1000 1.0410 ns/op 0.92200 ns/op 1.13
Object set x1000 73.010 ns/op 57.488 ns/op 1.27
Map set x1000 44.022 ns/op 37.150 ns/op 1.18
Return object 10000 times 0.32200 ns/op 0.28580 ns/op 1.13
Throw Error 10000 times 3.7844 us/op 3.8164 us/op 0.99
fastMsgIdFn sha256 / 200 bytes 3.0620 us/op 2.6890 us/op 1.14
fastMsgIdFn h32 xxhash / 200 bytes 388.00 ns/op 288.00 ns/op 1.35
fastMsgIdFn h64 xxhash / 200 bytes 419.00 ns/op 338.00 ns/op 1.24
fastMsgIdFn sha256 / 1000 bytes 8.3980 us/op 7.5380 us/op 1.11
fastMsgIdFn h32 xxhash / 1000 bytes 536.00 ns/op 395.00 ns/op 1.36
fastMsgIdFn h64 xxhash / 1000 bytes 521.00 ns/op 404.00 ns/op 1.29
fastMsgIdFn sha256 / 10000 bytes 75.525 us/op 66.237 us/op 1.14
fastMsgIdFn h32 xxhash / 10000 bytes 2.0760 us/op 2.0240 us/op 1.03
fastMsgIdFn h64 xxhash / 10000 bytes 1.4580 us/op 1.3620 us/op 1.07
send data - 1000 256B messages 18.196 ms/op 15.923 ms/op 1.14
send data - 1000 512B messages 22.601 ms/op 21.146 ms/op 1.07
send data - 1000 1024B messages 30.498 ms/op 30.791 ms/op 0.99
send data - 1000 1200B messages 38.037 ms/op 33.956 ms/op 1.12
send data - 1000 2048B messages 47.922 ms/op 37.447 ms/op 1.28
send data - 1000 4096B messages 49.639 ms/op 38.297 ms/op 1.30
send data - 1000 16384B messages 108.64 ms/op 82.036 ms/op 1.32
send data - 1000 65536B messages 365.58 ms/op 319.62 ms/op 1.14
enrSubnets - fastDeserialize 64 bits 1.2410 us/op 1.2920 us/op 0.96
enrSubnets - ssz BitVector 64 bits 493.00 ns/op 455.00 ns/op 1.08
enrSubnets - fastDeserialize 4 bits 203.00 ns/op 167.00 ns/op 1.22
enrSubnets - ssz BitVector 4 bits 530.00 ns/op 379.00 ns/op 1.40
prioritizePeers score -10:0 att 32-0.1 sync 2-0 204.32 us/op 193.76 us/op 1.05
prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 275.85 us/op 244.99 us/op 1.13
prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 345.74 us/op 383.85 us/op 0.90
prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 561.16 us/op 523.60 us/op 1.07
prioritizePeers score 0:0 att 64-1 sync 4-1 621.74 us/op 612.29 us/op 1.02
array of 16000 items push then shift 1.7763 us/op 1.6637 us/op 1.07
LinkedList of 16000 items push then shift 9.5930 ns/op 6.6530 ns/op 1.44
array of 16000 items push then pop 160.98 ns/op 140.01 ns/op 1.15
LinkedList of 16000 items push then pop 8.0580 ns/op 6.6140 ns/op 1.22
array of 24000 items push then shift 2.7379 us/op 2.5648 us/op 1.07
LinkedList of 24000 items push then shift 10.196 ns/op 6.7790 ns/op 1.50
array of 24000 items push then pop 213.92 ns/op 160.69 ns/op 1.33
LinkedList of 24000 items push then pop 8.1030 ns/op 6.7340 ns/op 1.20
intersect bitArray bitLen 8 6.2750 ns/op 6.0240 ns/op 1.04
intersect array and set length 8 87.242 ns/op 65.581 ns/op 1.33
intersect bitArray bitLen 128 38.198 ns/op 37.666 ns/op 1.01
intersect array and set length 128 1.0695 us/op 1.0549 us/op 1.01
bitArray.getTrueBitIndexes() bitLen 128 1.8460 us/op 1.7130 us/op 1.08
bitArray.getTrueBitIndexes() bitLen 248 2.6980 us/op 2.4220 us/op 1.11
bitArray.getTrueBitIndexes() bitLen 512 6.0160 us/op 5.6860 us/op 1.06
Buffer.concat 32 items 1.0730 us/op 992.00 ns/op 1.08
Uint8Array.set 32 items 2.0710 us/op 1.7930 us/op 1.16
Set add up to 64 items then delete first 2.9463 us/op 2.7480 us/op 1.07
OrderedSet add up to 64 items then delete first 4.5286 us/op 3.3258 us/op 1.36
Set add up to 64 items then delete last 3.3735 us/op 2.6245 us/op 1.29
OrderedSet add up to 64 items then delete last 5.1606 us/op 3.9686 us/op 1.30
Set add up to 64 items then delete middle 3.2775 us/op 2.7104 us/op 1.21
OrderedSet add up to 64 items then delete middle 5.4940 us/op 5.4421 us/op 1.01
Set add up to 128 items then delete first 6.2082 us/op 5.5713 us/op 1.11
OrderedSet add up to 128 items then delete first 8.4486 us/op 8.4572 us/op 1.00
Set add up to 128 items then delete last 5.5006 us/op 5.0793 us/op 1.08
OrderedSet add up to 128 items then delete last 7.6787 us/op 7.0846 us/op 1.08
Set add up to 128 items then delete middle 5.6868 us/op 4.7172 us/op 1.21
OrderedSet add up to 128 items then delete middle 13.924 us/op 12.638 us/op 1.10
Set add up to 256 items then delete first 11.710 us/op 10.329 us/op 1.13
OrderedSet add up to 256 items then delete first 18.837 us/op 15.986 us/op 1.18
Set add up to 256 items then delete last 10.947 us/op 9.5418 us/op 1.15
OrderedSet add up to 256 items then delete last 16.115 us/op 14.560 us/op 1.11
Set add up to 256 items then delete middle 9.5588 us/op 9.1632 us/op 1.04
OrderedSet add up to 256 items then delete middle 41.321 us/op 35.473 us/op 1.16
transfer serialized Status (84 B) 1.7900 us/op 1.6440 us/op 1.09
copy serialized Status (84 B) 1.3150 us/op 1.1910 us/op 1.10
transfer serialized SignedVoluntaryExit (112 B) 1.8420 us/op 1.7200 us/op 1.07
copy serialized SignedVoluntaryExit (112 B) 1.3470 us/op 1.3740 us/op 0.98
transfer serialized ProposerSlashing (416 B) 2.0670 us/op 2.7730 us/op 0.75
copy serialized ProposerSlashing (416 B) 1.9040 us/op 2.6020 us/op 0.73
transfer serialized Attestation (485 B) 2.2340 us/op 2.9310 us/op 0.76
copy serialized Attestation (485 B) 2.2210 us/op 2.6170 us/op 0.85
transfer serialized AttesterSlashing (33232 B) 2.4010 us/op 2.5430 us/op 0.94
copy serialized AttesterSlashing (33232 B) 7.6500 us/op 5.9840 us/op 1.28
transfer serialized Small SignedBeaconBlock (128000 B) 2.5370 us/op 2.6940 us/op 0.94
copy serialized Small SignedBeaconBlock (128000 B) 15.724 us/op 13.860 us/op 1.13
transfer serialized Avg SignedBeaconBlock (200000 B) 3.8340 us/op 3.0650 us/op 1.25
copy serialized Avg SignedBeaconBlock (200000 B) 30.845 us/op 19.791 us/op 1.56
transfer serialized BlobsSidecar (524380 B) 4.3670 us/op 2.8600 us/op 1.53
copy serialized BlobsSidecar (524380 B) 82.849 us/op 91.928 us/op 0.90
transfer serialized Big SignedBeaconBlock (1000000 B) 3.4090 us/op 3.3250 us/op 1.03
copy serialized Big SignedBeaconBlock (1000000 B) 386.91 us/op 138.91 us/op 2.79
pass gossip attestations to forkchoice per slot 3.4159 ms/op 3.3776 ms/op 1.01
forkChoice updateHead vc 100000 bc 64 eq 0 672.35 us/op 518.75 us/op 1.30
forkChoice updateHead vc 600000 bc 64 eq 0 3.1818 ms/op 3.1824 ms/op 1.00
forkChoice updateHead vc 1000000 bc 64 eq 0 5.2642 ms/op 5.3981 ms/op 0.98
forkChoice updateHead vc 600000 bc 320 eq 0 3.1994 ms/op 3.1844 ms/op 1.00
forkChoice updateHead vc 600000 bc 1200 eq 0 3.2700 ms/op 3.2801 ms/op 1.00
forkChoice updateHead vc 600000 bc 7200 eq 0 4.5550 ms/op 4.3535 ms/op 1.05
forkChoice updateHead vc 600000 bc 64 eq 1000 10.825 ms/op 10.910 ms/op 0.99
forkChoice updateHead vc 600000 bc 64 eq 10000 11.024 ms/op 10.911 ms/op 1.01
forkChoice updateHead vc 600000 bc 64 eq 300000 17.170 ms/op 14.748 ms/op 1.16
computeDeltas 500000 validators 300 proto nodes 3.8769 ms/op 3.9809 ms/op 0.97
computeDeltas 500000 validators 1200 proto nodes 3.6401 ms/op 3.8178 ms/op 0.95
computeDeltas 500000 validators 7200 proto nodes 3.6633 ms/op 3.6483 ms/op 1.00
computeDeltas 750000 validators 300 proto nodes 5.3733 ms/op 5.4499 ms/op 0.99
computeDeltas 750000 validators 1200 proto nodes 5.1179 ms/op 5.4822 ms/op 0.93
computeDeltas 750000 validators 7200 proto nodes 5.0845 ms/op 5.4464 ms/op 0.93
computeDeltas 1400000 validators 300 proto nodes 10.054 ms/op 10.769 ms/op 0.93
computeDeltas 1400000 validators 1200 proto nodes 10.908 ms/op 10.606 ms/op 1.03
computeDeltas 1400000 validators 7200 proto nodes 10.225 ms/op 10.324 ms/op 0.99
computeDeltas 2100000 validators 300 proto nodes 15.634 ms/op 15.116 ms/op 1.03
computeDeltas 2100000 validators 1200 proto nodes 15.482 ms/op 15.352 ms/op 1.01
computeDeltas 2100000 validators 7200 proto nodes 17.001 ms/op 16.111 ms/op 1.06
altair processAttestation - 250000 vs - 7PWei normalcase 2.5470 ms/op 2.0572 ms/op 1.24
altair processAttestation - 250000 vs - 7PWei worstcase 3.8585 ms/op 3.4506 ms/op 1.12
altair processAttestation - setStatus - 1/6 committees join 158.66 us/op 152.63 us/op 1.04
altair processAttestation - setStatus - 1/3 committees join 270.67 us/op 290.31 us/op 0.93
altair processAttestation - setStatus - 1/2 committees join 412.62 us/op 363.96 us/op 1.13
altair processAttestation - setStatus - 2/3 committees join 506.95 us/op 477.94 us/op 1.06
altair processAttestation - setStatus - 4/5 committees join 686.54 us/op 638.26 us/op 1.08
altair processAttestation - setStatus - 100% committees join 845.06 us/op 756.06 us/op 1.12
altair processBlock - 250000 vs - 7PWei normalcase 7.7943 ms/op 9.8659 ms/op 0.79
altair processBlock - 250000 vs - 7PWei normalcase hashState 36.240 ms/op 33.916 ms/op 1.07
altair processBlock - 250000 vs - 7PWei worstcase 44.193 ms/op 32.134 ms/op 1.38
altair processBlock - 250000 vs - 7PWei worstcase hashState 95.819 ms/op 88.410 ms/op 1.08
phase0 processBlock - 250000 vs - 7PWei normalcase 2.5934 ms/op 2.2564 ms/op 1.15
phase0 processBlock - 250000 vs - 7PWei worstcase 29.892 ms/op 27.097 ms/op 1.10
altair processEth1Data - 250000 vs - 7PWei normalcase 664.86 us/op 315.08 us/op 2.11
getExpectedWithdrawals 250000 eb:1,eth1:1,we:0,wn:0,smpl:15 25.818 us/op 11.978 us/op 2.16
getExpectedWithdrawals 250000 eb:0.95,eth1:0.1,we:0.05,wn:0,smpl:219 118.18 us/op 67.985 us/op 1.74
getExpectedWithdrawals 250000 eb:0.95,eth1:0.3,we:0.05,wn:0,smpl:42 35.429 us/op 16.390 us/op 2.16
getExpectedWithdrawals 250000 eb:0.95,eth1:0.7,we:0.05,wn:0,smpl:18 28.050 us/op 12.253 us/op 2.29
getExpectedWithdrawals 250000 eb:0.1,eth1:0.1,we:0,wn:0,smpl:1020 369.42 us/op 160.28 us/op 2.30
getExpectedWithdrawals 250000 eb:0.03,eth1:0.03,we:0,wn:0,smpl:11777 3.6797 ms/op 962.52 us/op 3.82
getExpectedWithdrawals 250000 eb:0.01,eth1:0.01,we:0,wn:0,smpl:16384 3.1958 ms/op 1.6106 ms/op 1.98
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,smpl:16384 3.0092 ms/op 1.4629 ms/op 2.06
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,nocache,smpl:16384 6.6566 ms/op 3.2665 ms/op 2.04
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,smpl:16384 2.7569 ms/op 2.3614 ms/op 1.17
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,nocache,smpl:16384 6.8564 ms/op 4.2865 ms/op 1.60
Tree 40 250000 create 464.20 ms/op 217.88 ms/op 2.13
Tree 40 250000 get(125000) 196.49 ns/op 144.14 ns/op 1.36
Tree 40 250000 set(125000) 1.7497 us/op 636.31 ns/op 2.75
Tree 40 250000 toArray() 25.616 ms/op 19.257 ms/op 1.33
Tree 40 250000 iterate all - toArray() + loop 25.681 ms/op 19.101 ms/op 1.34
Tree 40 250000 iterate all - get(i) 69.720 ms/op 53.888 ms/op 1.29
Array 250000 create 5.1307 ms/op 3.8570 ms/op 1.33
Array 250000 clone - spread 2.1738 ms/op 1.6288 ms/op 1.33
Array 250000 get(125000) 1.5430 ns/op 1.1110 ns/op 1.39
Array 250000 set(125000) 2.2720 ns/op 1.3990 ns/op 1.62
Array 250000 iterate all - loop 193.44 us/op 172.04 us/op 1.12
phase0 afterProcessEpoch - 250000 vs - 7PWei 115.23 ms/op 91.221 ms/op 1.26
phase0 beforeProcessEpoch - 250000 vs - 7PWei 69.411 ms/op 41.881 ms/op 1.66
altair processEpoch - mainnet_e81889 4.5420 s/op 388.79 ms/op 11.68
mainnet_e81889 - altair beforeProcessEpoch 58.975 ms/op 66.480 ms/op 0.89
mainnet_e81889 - altair processJustificationAndFinalization 18.571 us/op 13.159 us/op 1.41
mainnet_e81889 - altair processInactivityUpdates 6.0904 ms/op 5.2684 ms/op 1.16
mainnet_e81889 - altair processRewardsAndPenalties 44.232 ms/op 46.226 ms/op 0.96
mainnet_e81889 - altair processRegistryUpdates 2.0920 us/op 2.4340 us/op 0.86
mainnet_e81889 - altair processSlashings 382.00 ns/op 395.00 ns/op 0.97
mainnet_e81889 - altair processEth1DataReset 562.00 ns/op 624.00 ns/op 0.90
mainnet_e81889 - altair processEffectiveBalanceUpdates 208.11 ms/op 1.2437 ms/op 167.34
mainnet_e81889 - altair processSlashingsReset 4.6140 us/op 4.1300 us/op 1.12
mainnet_e81889 - altair processRandaoMixesReset 6.7210 us/op 5.3060 us/op 1.27
mainnet_e81889 - altair processHistoricalRootsUpdate 1.5180 us/op 914.00 ns/op 1.66
mainnet_e81889 - altair processParticipationFlagUpdates 1.8930 us/op 1.5540 us/op 1.22
mainnet_e81889 - altair processSyncCommitteeUpdates 682.00 ns/op 654.00 ns/op 1.04
mainnet_e81889 - altair afterProcessEpoch 101.79 ms/op 94.374 ms/op 1.08
capella processEpoch - mainnet_e217614 2.6197 s/op 1.4543 s/op 1.80
mainnet_e217614 - capella beforeProcessEpoch 301.95 ms/op 273.05 ms/op 1.11
mainnet_e217614 - capella processJustificationAndFinalization 17.817 us/op 16.897 us/op 1.05
mainnet_e217614 - capella processInactivityUpdates 18.727 ms/op 16.381 ms/op 1.14
mainnet_e217614 - capella processRewardsAndPenalties 262.45 ms/op 249.91 ms/op 1.05
mainnet_e217614 - capella processRegistryUpdates 20.311 us/op 17.286 us/op 1.17
mainnet_e217614 - capella processSlashings 456.00 ns/op 521.00 ns/op 0.88
mainnet_e217614 - capella processEth1DataReset 460.00 ns/op 399.00 ns/op 1.15
mainnet_e217614 - capella processEffectiveBalanceUpdates 95.696 ms/op 9.2958 ms/op 10.29
mainnet_e217614 - capella processSlashingsReset 4.3060 us/op 3.5940 us/op 1.20
mainnet_e217614 - capella processRandaoMixesReset 5.5090 us/op 4.2240 us/op 1.30
mainnet_e217614 - capella processHistoricalRootsUpdate 901.00 ns/op 337.00 ns/op 2.67
mainnet_e217614 - capella processParticipationFlagUpdates 2.0660 us/op 1.8210 us/op 1.13
mainnet_e217614 - capella afterProcessEpoch 285.31 ms/op 253.49 ms/op 1.13
phase0 processEpoch - mainnet_e58758 3.7419 s/op 436.53 ms/op 8.57
mainnet_e58758 - phase0 beforeProcessEpoch 125.35 ms/op 118.88 ms/op 1.05
mainnet_e58758 - phase0 processJustificationAndFinalization 17.716 us/op 15.522 us/op 1.14
mainnet_e58758 - phase0 processRewardsAndPenalties 31.901 ms/op 24.451 ms/op 1.30
mainnet_e58758 - phase0 processRegistryUpdates 12.593 us/op 8.8020 us/op 1.43
mainnet_e58758 - phase0 processSlashings 538.00 ns/op 372.00 ns/op 1.45
mainnet_e58758 - phase0 processEth1DataReset 408.00 ns/op 365.00 ns/op 1.12
mainnet_e58758 - phase0 processEffectiveBalanceUpdates 149.21 ms/op 1.1675 ms/op 127.80
mainnet_e58758 - phase0 processSlashingsReset 3.4190 us/op 3.2020 us/op 1.07
mainnet_e58758 - phase0 processRandaoMixesReset 4.4410 us/op 4.8470 us/op 0.92
mainnet_e58758 - phase0 processHistoricalRootsUpdate 413.00 ns/op 577.00 ns/op 0.72
mainnet_e58758 - phase0 processParticipationRecordUpdates 4.4430 us/op 3.3330 us/op 1.33
mainnet_e58758 - phase0 afterProcessEpoch 84.069 ms/op 80.203 ms/op 1.05
phase0 processEffectiveBalanceUpdates - 250000 normalcase 5.8442 ms/op 1.1914 ms/op 4.91
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 6.5598 ms/op 1.5956 ms/op 4.11
altair processInactivityUpdates - 250000 normalcase 16.916 ms/op 15.015 ms/op 1.13
altair processInactivityUpdates - 250000 worstcase 16.464 ms/op 15.421 ms/op 1.07
phase0 processRegistryUpdates - 250000 normalcase 9.2410 us/op 8.4910 us/op 1.09
phase0 processRegistryUpdates - 250000 badcase_full_deposits 368.23 us/op 321.79 us/op 1.14
phase0 processRegistryUpdates - 250000 worstcase 0.5 129.10 ms/op 119.03 ms/op 1.08
altair processRewardsAndPenalties - 250000 normalcase 45.368 ms/op 35.848 ms/op 1.27
altair processRewardsAndPenalties - 250000 worstcase 39.179 ms/op 36.365 ms/op 1.08
phase0 getAttestationDeltas - 250000 normalcase 7.3536 ms/op 7.7610 ms/op 0.95
phase0 getAttestationDeltas - 250000 worstcase 7.7765 ms/op 7.7358 ms/op 1.01
phase0 processSlashings - 250000 worstcase 69.739 us/op 67.568 us/op 1.03
altair processSyncCommitteeUpdates - 250000 118.72 ms/op 126.08 ms/op 0.94
BeaconState.hashTreeRoot - No change 299.00 ns/op 321.00 ns/op 0.93
BeaconState.hashTreeRoot - 1 full validator 132.78 us/op 133.97 us/op 0.99
BeaconState.hashTreeRoot - 32 full validator 1.3187 ms/op 1.2564 ms/op 1.05
BeaconState.hashTreeRoot - 512 full validator 15.139 ms/op 13.280 ms/op 1.14
BeaconState.hashTreeRoot - 1 validator.effectiveBalance 160.57 us/op 158.24 us/op 1.01
BeaconState.hashTreeRoot - 32 validator.effectiveBalance 1.8079 ms/op 1.9596 ms/op 0.92
BeaconState.hashTreeRoot - 512 validator.effectiveBalance 25.949 ms/op 24.082 ms/op 1.08
BeaconState.hashTreeRoot - 1 balances 116.06 us/op 117.82 us/op 0.99
BeaconState.hashTreeRoot - 32 balances 1.0337 ms/op 1.0879 ms/op 0.95
BeaconState.hashTreeRoot - 512 balances 8.9509 ms/op 10.599 ms/op 0.84
BeaconState.hashTreeRoot - 250000 balances 167.72 ms/op 208.86 ms/op 0.80
aggregationBits - 2048 els - zipIndexesInBitList 24.161 us/op 22.201 us/op 1.09
byteArrayEquals 32 75.663 ns/op 74.333 ns/op 1.02
Buffer.compare 32 49.363 ns/op 44.566 ns/op 1.11
byteArrayEquals 1024 2.0704 us/op 2.0264 us/op 1.02
Buffer.compare 1024 50.259 ns/op 52.275 ns/op 0.96
byteArrayEquals 16384 33.025 us/op 32.262 us/op 1.02
Buffer.compare 16384 241.92 ns/op 235.54 ns/op 1.03
byteArrayEquals 123687377 247.74 ms/op 249.63 ms/op 0.99
Buffer.compare 123687377 7.3389 ms/op 6.0370 ms/op 1.22
byteArrayEquals 32 - diff last byte 74.387 ns/op 71.357 ns/op 1.04
Buffer.compare 32 - diff last byte 52.032 ns/op 48.657 ns/op 1.07
byteArrayEquals 1024 - diff last byte 2.0743 us/op 1.9901 us/op 1.04
Buffer.compare 1024 - diff last byte 54.374 ns/op 49.151 ns/op 1.11
byteArrayEquals 16384 - diff last byte 33.316 us/op 31.755 us/op 1.05
Buffer.compare 16384 - diff last byte 237.91 ns/op 228.00 ns/op 1.04
byteArrayEquals 123687377 - diff last byte 251.20 ms/op 247.19 ms/op 1.02
Buffer.compare 123687377 - diff last byte 7.2298 ms/op 6.1353 ms/op 1.18
byteArrayEquals 32 - random bytes 5.3560 ns/op 5.1660 ns/op 1.04
Buffer.compare 32 - random bytes 54.276 ns/op 47.630 ns/op 1.14
byteArrayEquals 1024 - random bytes 5.7550 ns/op 5.1000 ns/op 1.13
Buffer.compare 1024 - random bytes 52.363 ns/op 45.863 ns/op 1.14
byteArrayEquals 16384 - random bytes 5.8720 ns/op 5.0870 ns/op 1.15
Buffer.compare 16384 - random bytes 50.978 ns/op 45.958 ns/op 1.11
byteArrayEquals 123687377 - random bytes 7.9400 ns/op 7.8200 ns/op 1.02
Buffer.compare 123687377 - random bytes 61.390 ns/op 48.750 ns/op 1.26
regular array get 100000 times 46.168 us/op 44.041 us/op 1.05
wrappedArray get 100000 times 44.673 us/op 43.881 us/op 1.02
arrayWithProxy get 100000 times 14.734 ms/op 13.740 ms/op 1.07
ssz.Root.equals 55.629 ns/op 52.427 ns/op 1.06
byteArrayEquals 55.281 ns/op 51.517 ns/op 1.07
Buffer.compare 11.377 ns/op 10.120 ns/op 1.12
shuffle list - 16384 els 6.7730 ms/op 6.2300 ms/op 1.09
shuffle list - 250000 els 100.18 ms/op 91.136 ms/op 1.10
processSlot - 1 slots 15.872 us/op 14.695 us/op 1.08
processSlot - 32 slots 2.7125 ms/op 3.2835 ms/op 0.83
getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei 51.354 ms/op 48.570 ms/op 1.06
getCommitteeAssignments - req 1 vs - 250000 vc 2.6384 ms/op 2.5969 ms/op 1.02
getCommitteeAssignments - req 100 vs - 250000 vc 3.8760 ms/op 3.7557 ms/op 1.03
getCommitteeAssignments - req 1000 vs - 250000 vc 4.2437 ms/op 4.0218 ms/op 1.06
findModifiedValidators - 10000 modified validators 300.28 ms/op 293.34 ms/op 1.02
findModifiedValidators - 1000 modified validators 184.92 ms/op 171.20 ms/op 1.08
findModifiedValidators - 100 modified validators 176.22 ms/op 165.27 ms/op 1.07
findModifiedValidators - 10 modified validators 189.10 ms/op 166.99 ms/op 1.13
findModifiedValidators - 1 modified validators 189.53 ms/op 162.43 ms/op 1.17
findModifiedValidators - no difference 201.17 ms/op 163.00 ms/op 1.23
compare ViewDUs 3.4876 s/op 3.1710 s/op 1.10
compare each validator Uint8Array 1.2658 s/op 1.3853 s/op 0.91
compare ViewDU to Uint8Array 1.1577 s/op 1.0554 s/op 1.10
migrate state 1000000 validators, 24 modified, 0 new 599.56 ms/op 626.22 ms/op 0.96
migrate state 1000000 validators, 1700 modified, 1000 new 983.35 ms/op 1.0041 s/op 0.98
migrate state 1000000 validators, 3400 modified, 2000 new 1.3635 s/op 1.3217 s/op 1.03
migrate state 1500000 validators, 24 modified, 0 new 649.97 ms/op 746.82 ms/op 0.87
migrate state 1500000 validators, 1700 modified, 1000 new 1.0148 s/op 1.1512 s/op 0.88
migrate state 1500000 validators, 3400 modified, 2000 new 1.3778 s/op 1.5550 s/op 0.89
RootCache.getBlockRootAtSlot - 250000 vs - 7PWei 4.3100 ns/op 5.4100 ns/op 0.80
state getBlockRootAtSlot - 250000 vs - 7PWei 909.03 ns/op 721.57 ns/op 1.26
computeProposers - vc 250000 8.5689 ms/op 8.6478 ms/op 0.99
computeEpochShuffling - vc 250000 99.532 ms/op 104.12 ms/op 0.96
getNextSyncCommittee - vc 250000 136.83 ms/op 167.42 ms/op 0.82
computeSigningRoot for AttestationData 24.393 us/op 33.859 us/op 0.72
hash AttestationData serialized data then Buffer.toString(base64) 1.6432 us/op 1.9064 us/op 0.86
toHexString serialized data 1.0415 us/op 1.2167 us/op 0.86
Buffer.toString(base64) 257.59 ns/op 231.98 ns/op 1.11

by benchmarkbot/action

@codecov-commenter
Copy link

codecov-commenter commented May 23, 2024

Codecov Report

Attention: Patch coverage is 73.20526% with 265 lines in your changes are missing coverage. Please review.

Project coverage is 61.87%. Comparing base (6c20dc2) to head (488d853).
Report is 10 commits behind head on unstable.

Current head 488d853 differs from pull request most recent head 6471eea

Please upload reports for the commit 6471eea to get more accurate results.

Additional details and impacted files
@@             Coverage Diff              @@
##           unstable    #6352      +/-   ##
============================================
- Coverage     62.21%   61.87%   -0.34%     
============================================
  Files           571      559      -12     
  Lines         60015    58842    -1173     
  Branches       1981     1847     -134     
============================================
- Hits          37337    36408     -929     
+ Misses        22635    22397     -238     
+ Partials         43       37       -6     

g11tech and others added 19 commits May 24, 2024 16:34
add types stub and epoch config

fix types
* Add immutable in the dependencies

* Initial change to pubkeyCache

* Added todos

* Moved unfinalized cache to epochCache

* Move populating finalized cache to afterProcessEpoch

* Specify unfinalized cache during state cloning

* Move from unfinalized to finalized cache in afterProcessEpoch

* Confused myself

* Clean up

* Change logic

* Fix cloning issue

* Clean up redundant code

* Add CarryoverData in epochCtx.createFromState

* Fix typo

* Update usage of pubkeyCache

* Update pubkeyCache usage

* Fix lint

* Fix lint

* Add 6110 to ChainConfig

* Add 6110 to BeaconPreset

* Define 6110 fork and container

* Add V6110 api to execution engine

* Update test

* Add depositReceiptsRoot to process_execution_payload

* State transitioning to EIP6110

* State transitioning to EIP6110

* Light client change in EIP-6110

* Update tests

* produceBlock

* Refactor processDeposit to match the spec

* Implement processDepositReceipt

* Implement 6110 fork guard for pubkeyCache

* Handle changes in eth1 deposit

* Update eth1 deposit test

* Fix typo

* Lint

* Remove embarassing comments

* Address comments

* Modify applyDeposit signature

* Update packages/state-transition/src/cache/epochCache.ts

Co-authored-by: Lion - dapplion <[email protected]>

* Update packages/state-transition/src/cache/epochCache.ts

Co-authored-by: Lion - dapplion <[email protected]>

* Update packages/state-transition/src/cache/pubkeyCache.ts

Co-authored-by: Lion - dapplion <[email protected]>

* Remove old code

* Rename fields in epochCache and immutableData

* Remove CarryoverData

* Move isAfter6110 from var to method

* Fix cyclic import

* Fix operations spec runner

* Fix for spec test

* Fix spec test

* state.depositReceiptsStartIndex to BigInt

* getDeposit requires cached state

* default depositReceiptsStartIndex value in genesis

* Fix pubkeyCache bug

* newUnfinalizedPubkeyIndexMap in createCachedBeaconState

* Lint

* Pass epochCache instead of pubkey2IndexFn in apis

* Address comments

* Add unit test on pubkey cache cloning

* Add unfinalizedPubkeyCacheSize to metrics

* Add unfinalizedPubkeyCacheSize to metrics

* Clean up code

* Add besu to el-interop

* Add 6110 genesis file

* Template for sim test

* Add unit test for getEth1DepositCount

* Update sim test

* Update besudocker

* Finish beacon api calls in sim test

* Update epochCache.createFromState()

* Fix bug unfinalized validators are not finalized

* Add sim test to run a few blocks

* Lint

* Merge branch 'unstable' into 611

* Add more check to sim test

* Update besu docker image instruction

* Update sim test with correct tx

* Address comment + cleanup

* Clean up code

* Properly handle promise rejection

* Lint

* Update packages/beacon-node/src/execution/engine/types.ts

Co-authored-by: Lion - dapplion <[email protected]>

* Update comments

* Accept type undefined in ExecutionPayloadBodyRpc

* Update comment and semantic

* Remove if statement when adding finalized validator

* Comment on repeated insert on finalized cache

* rename createFromState

* Add comment on getPubkey()

* Stash change to reduce diffs

* Stash change to reduce diffs

* Lint

* addFinalizedPubkey on finalized checkpoint

* Update comment

* Use OrderedMap for unfinalized cache

* Pull out logic of deleting pubkeys for batch op

* Add updateUnfinalizedPubkeys in regen

* Update updateUnfinalizedPubkeys logic

* Add comment

* Add metrics for state context caches

* Address comment

* Address comment

* Deprecate eth1Data polling when condition is reached

* Fix conflicts

* Fix sim test

* Lint

* Fix type

* Fix test

* Fix test

* Lint

* Update packages/light-client/src/spec/utils.ts

Co-authored-by: Lion - dapplion <[email protected]>

* Fix spec test

* Address comments

* Improve cache logic on checkpoint finalized

* Update sim test according to new cache logic

* Update comment

* Lint

* Finalized pubkey cache only update once per checkpoint

* Add perf test for updateUnfinalizedPubkeys

* Add perf test for updateUnfinalizedPubkeys

* Tweak params for perf test

* Freeze besu docker image version for 6110

* Add benchmark result

* Use Map instead of OrderedMap. Update benchmark

* Minor optimization

* Minor optimization

* Add memory test for immutable.js

* Update test

* Reduce code duplication

* Lint

* Remove try/catch in updateUnfinalizedPubkeys

* Introduce EpochCache metric

* Add historicalValidatorLengths

* Polish code

* Migrate state-transition unit tests to vitest

* Fix calculation of pivot index

* `historicalValidatorLengths` only activate post 6110

* Update sim test

* Lint

* Update packages/state-transition/src/cache/epochCache.ts

Co-authored-by: Lion - dapplion <[email protected]>

* Improve readability on historicalValidatorLengths

* Update types

* Fix calculation

* Add eth1data poll todo

* Add epochCache.getValidatorCountAtEpoch

* Add todo

* Add getStateIterator for state cache

* Partial commit

* Update perf test

* updateUnfinalizedPubkeys directly modify states from regen

* Update sim test. Lint

* Add todo

* some improvements and a fix for effectiveBalanceIncrements fork safeness

* rename eip6110 to elctra

* fix electra-interop.test.ts

---------

Co-authored-by: Lion - dapplion <[email protected]>
Co-authored-by: gajinder <[email protected]>

lint and tsc

small cleanup

fix rebase issue
* feat: implement execution layer exits eip 7002

* lint and tsc fix

* apply feedback

* improve comment
* Update spec-test version

* Skip electra
* Add types

* Update unit test

* lint

* Address comments

* Address comments

* Lint

* Update packages/beacon-node/src/util/sszBytes.ts

Co-authored-by: tuyennhv <[email protected]>

* Add isElectraAttestation

* Update unit test

* Update unit test

* chore: add comments for sszBytes.ts

---------

Co-authored-by: tuyennhv <[email protected]>
Co-authored-by: Tuyen Nguyen <[email protected]>
* chore: fix the rebase build

* fix test
* feat: upgrade 7002 exits to withdrawal request

* fix types

* fix types and references

* further fix the types references and get build passing

* update the process ops fn but needs to be extended by maxeb
* feat: implement EIP-6110 (#6042)

* Add immutable in the dependencies

* Initial change to pubkeyCache

* Added todos

* Moved unfinalized cache to epochCache

* Move populating finalized cache to afterProcessEpoch

* Specify unfinalized cache during state cloning

* Move from unfinalized to finalized cache in afterProcessEpoch

* Confused myself

* Clean up

* Change logic

* Fix cloning issue

* Clean up redundant code

* Add CarryoverData in epochCtx.createFromState

* Fix typo

* Update usage of pubkeyCache

* Update pubkeyCache usage

* Fix lint

* Fix lint

* Add 6110 to ChainConfig

* Add 6110 to BeaconPreset

* Define 6110 fork and container

* Add V6110 api to execution engine

* Update test

* Add depositReceiptsRoot to process_execution_payload

* State transitioning to EIP6110

* State transitioning to EIP6110

* Light client change in EIP-6110

* Update tests

* produceBlock

* Refactor processDeposit to match the spec

* Implement processDepositReceipt

* Implement 6110 fork guard for pubkeyCache

* Handle changes in eth1 deposit

* Update eth1 deposit test

* Fix typo

* Lint

* Remove embarassing comments

* Address comments

* Modify applyDeposit signature

* Update packages/state-transition/src/cache/epochCache.ts

Co-authored-by: Lion - dapplion <[email protected]>

* Update packages/state-transition/src/cache/epochCache.ts

Co-authored-by: Lion - dapplion <[email protected]>

* Update packages/state-transition/src/cache/pubkeyCache.ts

Co-authored-by: Lion - dapplion <[email protected]>

* Remove old code

* Rename fields in epochCache and immutableData

* Remove CarryoverData

* Move isAfter6110 from var to method

* Fix cyclic import

* Fix operations spec runner

* Fix for spec test

* Fix spec test

* state.depositReceiptsStartIndex to BigInt

* getDeposit requires cached state

* default depositReceiptsStartIndex value in genesis

* Fix pubkeyCache bug

* newUnfinalizedPubkeyIndexMap in createCachedBeaconState

* Lint

* Pass epochCache instead of pubkey2IndexFn in apis

* Address comments

* Add unit test on pubkey cache cloning

* Add unfinalizedPubkeyCacheSize to metrics

* Add unfinalizedPubkeyCacheSize to metrics

* Clean up code

* Add besu to el-interop

* Add 6110 genesis file

* Template for sim test

* Add unit test for getEth1DepositCount

* Update sim test

* Update besudocker

* Finish beacon api calls in sim test

* Update epochCache.createFromState()

* Fix bug unfinalized validators are not finalized

* Add sim test to run a few blocks

* Lint

* Merge branch 'unstable' into 611

* Add more check to sim test

* Update besu docker image instruction

* Update sim test with correct tx

* Address comment + cleanup

* Clean up code

* Properly handle promise rejection

* Lint

* Update packages/beacon-node/src/execution/engine/types.ts

Co-authored-by: Lion - dapplion <[email protected]>

* Update comments

* Accept type undefined in ExecutionPayloadBodyRpc

* Update comment and semantic

* Remove if statement when adding finalized validator

* Comment on repeated insert on finalized cache

* rename createFromState

* Add comment on getPubkey()

* Stash change to reduce diffs

* Stash change to reduce diffs

* Lint

* addFinalizedPubkey on finalized checkpoint

* Update comment

* Use OrderedMap for unfinalized cache

* Pull out logic of deleting pubkeys for batch op

* Add updateUnfinalizedPubkeys in regen

* Update updateUnfinalizedPubkeys logic

* Add comment

* Add metrics for state context caches

* Address comment

* Address comment

* Deprecate eth1Data polling when condition is reached

* Fix conflicts

* Fix sim test

* Lint

* Fix type

* Fix test

* Fix test

* Lint

* Update packages/light-client/src/spec/utils.ts

Co-authored-by: Lion - dapplion <[email protected]>

* Fix spec test

* Address comments

* Improve cache logic on checkpoint finalized

* Update sim test according to new cache logic

* Update comment

* Lint

* Finalized pubkey cache only update once per checkpoint

* Add perf test for updateUnfinalizedPubkeys

* Add perf test for updateUnfinalizedPubkeys

* Tweak params for perf test

* Freeze besu docker image version for 6110

* Add benchmark result

* Use Map instead of OrderedMap. Update benchmark

* Minor optimization

* Minor optimization

* Add memory test for immutable.js

* Update test

* Reduce code duplication

* Lint

* Remove try/catch in updateUnfinalizedPubkeys

* Introduce EpochCache metric

* Add historicalValidatorLengths

* Polish code

* Migrate state-transition unit tests to vitest

* Fix calculation of pivot index

* `historicalValidatorLengths` only activate post 6110

* Update sim test

* Lint

* Update packages/state-transition/src/cache/epochCache.ts

Co-authored-by: Lion - dapplion <[email protected]>

* Improve readability on historicalValidatorLengths

* Update types

* Fix calculation

* Add eth1data poll todo

* Add epochCache.getValidatorCountAtEpoch

* Add todo

* Add getStateIterator for state cache

* Partial commit

* Update perf test

* updateUnfinalizedPubkeys directly modify states from regen

* Update sim test. Lint

* Add todo

* some improvements and a fix for effectiveBalanceIncrements fork safeness

* rename eip6110 to elctra

* fix electra-interop.test.ts

---------

Co-authored-by: Lion - dapplion <[email protected]>
Co-authored-by: gajinder <[email protected]>

lint and tsc

small cleanup

fix rebase issue

* feat: implement EIP-6110 (#6042)

* Add immutable in the dependencies

* Initial change to pubkeyCache

* Added todos

* Moved unfinalized cache to epochCache

* Move populating finalized cache to afterProcessEpoch

* Specify unfinalized cache during state cloning

* Move from unfinalized to finalized cache in afterProcessEpoch

* Confused myself

* Clean up

* Change logic

* Fix cloning issue

* Clean up redundant code

* Add CarryoverData in epochCtx.createFromState

* Fix typo

* Update usage of pubkeyCache

* Update pubkeyCache usage

* Fix lint

* Fix lint

* Add 6110 to ChainConfig

* Add 6110 to BeaconPreset

* Define 6110 fork and container

* Add V6110 api to execution engine

* Update test

* Add depositReceiptsRoot to process_execution_payload

* State transitioning to EIP6110

* State transitioning to EIP6110

* Light client change in EIP-6110

* Update tests

* produceBlock

* Refactor processDeposit to match the spec

* Implement processDepositReceipt

* Implement 6110 fork guard for pubkeyCache

* Handle changes in eth1 deposit

* Update eth1 deposit test

* Fix typo

* Lint

* Remove embarassing comments

* Address comments

* Modify applyDeposit signature

* Update packages/state-transition/src/cache/epochCache.ts

Co-authored-by: Lion - dapplion <[email protected]>

* Update packages/state-transition/src/cache/epochCache.ts

Co-authored-by: Lion - dapplion <[email protected]>

* Update packages/state-transition/src/cache/pubkeyCache.ts

Co-authored-by: Lion - dapplion <[email protected]>

* Remove old code

* Rename fields in epochCache and immutableData

* Remove CarryoverData

* Move isAfter6110 from var to method

* Fix cyclic import

* Fix operations spec runner

* Fix for spec test

* Fix spec test

* state.depositReceiptsStartIndex to BigInt

* getDeposit requires cached state

* default depositReceiptsStartIndex value in genesis

* Fix pubkeyCache bug

* newUnfinalizedPubkeyIndexMap in createCachedBeaconState

* Lint

* Pass epochCache instead of pubkey2IndexFn in apis

* Address comments

* Add unit test on pubkey cache cloning

* Add unfinalizedPubkeyCacheSize to metrics

* Add unfinalizedPubkeyCacheSize to metrics

* Clean up code

* Add besu to el-interop

* Add 6110 genesis file

* Template for sim test

* Add unit test for getEth1DepositCount

* Update sim test

* Update besudocker

* Finish beacon api calls in sim test

* Update epochCache.createFromState()

* Fix bug unfinalized validators are not finalized

* Add sim test to run a few blocks

* Lint

* Merge branch 'unstable' into 611

* Add more check to sim test

* Update besu docker image instruction

* Update sim test with correct tx

* Address comment + cleanup

* Clean up code

* Properly handle promise rejection

* Lint

* Update packages/beacon-node/src/execution/engine/types.ts

Co-authored-by: Lion - dapplion <[email protected]>

* Update comments

* Accept type undefined in ExecutionPayloadBodyRpc

* Update comment and semantic

* Remove if statement when adding finalized validator

* Comment on repeated insert on finalized cache

* rename createFromState

* Add comment on getPubkey()

* Stash change to reduce diffs

* Stash change to reduce diffs

* Lint

* addFinalizedPubkey on finalized checkpoint

* Update comment

* Use OrderedMap for unfinalized cache

* Pull out logic of deleting pubkeys for batch op

* Add updateUnfinalizedPubkeys in regen

* Update updateUnfinalizedPubkeys logic

* Add comment

* Add metrics for state context caches

* Address comment

* Address comment

* Deprecate eth1Data polling when condition is reached

* Fix conflicts

* Fix sim test

* Lint

* Fix type

* Fix test

* Fix test

* Lint

* Update packages/light-client/src/spec/utils.ts

Co-authored-by: Lion - dapplion <[email protected]>

* Fix spec test

* Address comments

* Improve cache logic on checkpoint finalized

* Update sim test according to new cache logic

* Update comment

* Lint

* Finalized pubkey cache only update once per checkpoint

* Add perf test for updateUnfinalizedPubkeys

* Add perf test for updateUnfinalizedPubkeys

* Tweak params for perf test

* Freeze besu docker image version for 6110

* Add benchmark result

* Use Map instead of OrderedMap. Update benchmark

* Minor optimization

* Minor optimization

* Add memory test for immutable.js

* Update test

* Reduce code duplication

* Lint

* Remove try/catch in updateUnfinalizedPubkeys

* Introduce EpochCache metric

* Add historicalValidatorLengths

* Polish code

* Migrate state-transition unit tests to vitest

* Fix calculation of pivot index

* `historicalValidatorLengths` only activate post 6110

* Update sim test

* Lint

* Update packages/state-transition/src/cache/epochCache.ts

Co-authored-by: Lion - dapplion <[email protected]>

* Improve readability on historicalValidatorLengths

* Update types

* Fix calculation

* Add eth1data poll todo

* Add epochCache.getValidatorCountAtEpoch

* Add todo

* Add getStateIterator for state cache

* Partial commit

* Update perf test

* updateUnfinalizedPubkeys directly modify states from regen

* Update sim test. Lint

* Add todo

* some improvements and a fix for effectiveBalanceIncrements fork safeness

* rename eip6110 to elctra

* fix electra-interop.test.ts

---------

Co-authored-by: Lion - dapplion <[email protected]>
Co-authored-by: gajinder <[email protected]>

lint and tsc

small cleanup

* Add presets

* Update config

* Add necessary containers

* Update presets

* Update config

* Add todo comments

* Update constants and params

* Impl new process withdrawal

* Add withdrawaRequests to payload

* Add processConsolidation

* Add process withdraw request

* Update deposit and withdrawal flow

* epoch processing

* Implement churn limits

* Lint

* lint

* Update state-transition utils

* processExecutionLayerWithdrawRequest

* processConsolidation

* queueExcessActiveBalance

* isValidDepositSignature

* Add jsdoc and timer for new processEpoch functions

* Lint

* Update maxEB

* update voluntary exit

* Fix config

* Update initiateValidatorExit

* Remove churn limit in processRegistryUpdates

* Fix conflict

* Add MAX_WITHDRAWAL_REQUESTS_PER_PAYLOAD

* Reflect latest spec changes

* rebase fixes, fixes, improvements and cleanup

lint

* Upgrade ssz version

* Use sliceFrom()

* cleanup as per specs feedback

subarry

* simplify

* fix withdrawals

* remove slice

* fix the slashing quotient determination in slashvalidator

---------

Co-authored-by: harkamal <[email protected]>
* Process attestations in block

* Fix check-types

* Address comments
* initial commit

* lint

* Add getAttestingIndices and update getIndexedAttestation

* Update gossip validation

* Update attestation gossip validation

* aggregateAndProof validation

* clean up

* Validator

* Misc

* Fix the build erros

* feat: get attestations for electra block (#6732)

* feat: getAttestationsForBlock() for electra

* chore: fix lint

* fix: MAX_ATTESTATIONS_PER_GROUP_ELECTRA and address PR comments

* chore: unit test aggregateConsolidation

* Fix rebase mistake

* Address my own comment :)

---------

Co-authored-by: Navie Chan <[email protected]>

* Fix check-types

* Address comments

---------

Co-authored-by: Nazar Hussain <[email protected]>
Co-authored-by: tuyennhv <[email protected]>
* feat: attestationPool to group by slot by data root by committee index for electra

* fix: gossip validation and assert.notNull() util

* fix: remove light-client stats.html

* fix: lint and check-types
* Rename receipt to request

* Remove stats.html
* initial commit

* Update gossip validation

* Update attestation gossip validation

* aggregateAndProof validation

* Extend spec runner to be more flexible

* Add missing state attributes for electra

* Fix ss data types for electra spec

* Make the spec runner more flexible

* Fix the bug in process attestation

* Update the sepc test version

* clean up

* Misc

* Fix the build erros

* feat: get attestations for electra block (#6732)

* feat: getAttestationsForBlock() for electra

* chore: fix lint

* fix: MAX_ATTESTATIONS_PER_GROUP_ELECTRA and address PR comments

* chore: unit test aggregateConsolidation

* Fix rebase mistake

* Address my own comment :)

---------

Co-authored-by: Navie Chan <[email protected]>

* Fix check-types

* Address comments

* Fix the build erros

* Extend spec runner to be more flexible

* Add missing state attributes for electra

* Fix ss data types for electra spec

* Make the spec runner more flexible

* Fix the bug in process attestation

* Update the sepc test version

* Fix rebase issue

* Update committee index count check

---------

Co-authored-by: NC <[email protected]>
Co-authored-by: Navie Chan <[email protected]>
Co-authored-by: tuyennhv <[email protected]>
twoeths and others added 28 commits May 24, 2024 16:40
fix: get signature for SignedAggregateAndProof based on fork
* Fix attester slashing specs for electra

* Remove unused import

* Add code comment

* Update the expression

* Update the fork check
* chore: fix types and lint

* fx

* type and lint fix
* process pending deposit from eth1

* Fix the genesis params

* fix

* Fix

* clean up

---------

Co-authored-by: Nazar Hussain <[email protected]>
* chore: update EffectiveBalanceIncrements type

* chore: remove now irrelevant tests
* fix: electra fork transition

* fix: merge issue

* chore: remove unwanted change
Use mutable validator object
* fix: remove epochCache.balances and invalid MAX_EFFECTIVE_BALANCE check

* fix: update rewardsAndPenalties balance updates

* docs: add comment to check epochTransitionCache
Fix publishing att with non-zero comm index
* fix attestation duty validation

* Update packages/validator/src/services/validatorStore.ts

Co-authored-by: twoeths <[email protected]>

* Update packages/validator/src/services/validatorStore.ts

---------

Co-authored-by: twoeths <[email protected]>
Co-authored-by: Cayman <[email protected]>
* fix: align BeaconBlockBody and BlindedBeaconBlockBody

* Remove type hacks in test

---------

Co-authored-by: Nico Flaig <[email protected]>
* test: improve ssz tests consistency

* chore: address comments
* fix: get seen AttData key from SignedAggregateAndProof electra

* chore: revert the naming change to COMMITTEE_BITS_SIZE and add comment

* fix: add toBase64() util
* test: only skip ssz_static tests associated to missing type

* More detailed error message if type is not defined
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.

None yet

9 participants