-
-
Notifications
You must be signed in to change notification settings - Fork 310
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
Conversation
g11tech
commented
Jan 24, 2024
•
edited
Loading
edited
- Electra tracker #6341
Codecov ReportAttention: Patch coverage is
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 |
|
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
fc1990a
to
9014c8c
Compare
488d853
to
4e98a4a
Compare
8f5388d
to
990cb1c
Compare
8a4f66e
to
473a04f
Compare
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## unstable #6352 +/- ##
============================================
- Coverage 62.75% 61.87% -0.89%
============================================
Files 578 559 -19
Lines 61347 58842 -2505
Branches 2114 1847 -267
============================================
- Hits 38498 36408 -2090
+ Misses 22811 22397 -414
+ Partials 38 37 -1 |
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]> Co-authored-by: Gajinder <[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
…of deposit receipts (#6746)
* 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]> Co-authored-by: gajinder <[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]>
Update spec version
Remove the skip spec for electra
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
…balance (#6780) Update eb cache at fork transition
fix lint and check-types
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
* Add ByHash and ByRange V2 * Fix build issue * Fix CI error
chore: fix bls and blst versioning fix: add ForkName.electra to ForkBlobsInfo some api header lookup fixes more api fixes make the api data safe Co-authored-by: matthewkeil <[email protected]>
* Handle exiting validataor * lint * Add todo
…ix (#6865) * init commit * Add consolidation request * fix lint * Remove ExecutionLayer prefix * Address comment * Fix verification logic * lint * Add todo
* Update spec test version * Use new max effective balance * Relax loop breaking condition for `computeProposerIndex` * fix remaining * check-types & lint * Skip invalid test * Fix rebase + lint * Remove early return statement in `computeProposers` * Address comment * Address comment
lint & type fix lint
get the signing log
closing in favor of #6986 which will be merged into unstable when ready |