Skip to content
New issue

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

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

Already on GitHub? Sign in to your account

feat: add devnet-5 support #7246

Open
wants to merge 25 commits into
base: unstable
Choose a base branch
from
Open

feat: add devnet-5 support #7246

wants to merge 25 commits into from

Conversation

ensi321
Copy link
Contributor

@ensi321 ensi321 commented Nov 26, 2024

No description provided.

Copy link
Contributor

github-actions bot commented Nov 26, 2024

Performance Report

✔️ no performance regression detected

Full benchmark results
Benchmark suite Current: 2aec201 Previous: 0ac8bb9 Ratio
getPubkeys - index2pubkey - req 1000 vs - 250000 vc 1.6874 ms/op 1.6295 ms/op 1.04
getPubkeys - validatorsArr - req 1000 vs - 250000 vc 51.842 us/op 38.977 us/op 1.33
BLS verify - blst 836.81 us/op 912.46 us/op 0.92
BLS verifyMultipleSignatures 3 - blst 1.2371 ms/op 1.2973 ms/op 0.95
BLS verifyMultipleSignatures 8 - blst 1.6605 ms/op 2.0414 ms/op 0.81
BLS verifyMultipleSignatures 32 - blst 4.9105 ms/op 4.4501 ms/op 1.10
BLS verifyMultipleSignatures 64 - blst 8.9984 ms/op 8.3028 ms/op 1.08
BLS verifyMultipleSignatures 128 - blst 17.548 ms/op 16.014 ms/op 1.10
BLS deserializing 10000 signatures 684.13 ms/op 617.13 ms/op 1.11
BLS deserializing 100000 signatures 6.9002 s/op 6.2899 s/op 1.10
BLS verifyMultipleSignatures - same message - 3 - blst 930.00 us/op 955.43 us/op 0.97
BLS verifyMultipleSignatures - same message - 8 - blst 1.0237 ms/op 1.0562 ms/op 0.97
BLS verifyMultipleSignatures - same message - 32 - blst 1.7083 ms/op 1.6789 ms/op 1.02
BLS verifyMultipleSignatures - same message - 64 - blst 2.6699 ms/op 2.4570 ms/op 1.09
BLS verifyMultipleSignatures - same message - 128 - blst 4.4779 ms/op 4.2130 ms/op 1.06
BLS aggregatePubkeys 32 - blst 20.294 us/op 18.404 us/op 1.10
BLS aggregatePubkeys 128 - blst 70.654 us/op 67.332 us/op 1.05
notSeenSlots=1 numMissedVotes=1 numBadVotes=10 57.805 ms/op 49.202 ms/op 1.17
notSeenSlots=1 numMissedVotes=0 numBadVotes=4 62.897 ms/op 56.200 ms/op 1.12
notSeenSlots=2 numMissedVotes=1 numBadVotes=10 42.696 ms/op 44.685 ms/op 0.96
getSlashingsAndExits - default max 107.60 us/op 98.676 us/op 1.09
getSlashingsAndExits - 2k 422.01 us/op 528.89 us/op 0.80
proposeBlockBody type=full, size=empty 6.3703 ms/op 7.3906 ms/op 0.86
isKnown best case - 1 super set check 362.00 ns/op 347.00 ns/op 1.04
isKnown normal case - 2 super set checks 339.00 ns/op 294.00 ns/op 1.15
isKnown worse case - 16 super set checks 350.00 ns/op 235.00 ns/op 1.49
InMemoryCheckpointStateCache - add get delete 2.7680 us/op 3.5930 us/op 0.77
validate api signedAggregateAndProof - struct 1.3753 ms/op 1.7795 ms/op 0.77
validate gossip signedAggregateAndProof - struct 1.4217 ms/op 1.5528 ms/op 0.92
batch validate gossip attestation - vc 640000 - chunk 32 125.95 us/op 130.76 us/op 0.96
batch validate gossip attestation - vc 640000 - chunk 64 109.90 us/op 123.79 us/op 0.89
batch validate gossip attestation - vc 640000 - chunk 128 105.34 us/op 108.23 us/op 0.97
batch validate gossip attestation - vc 640000 - chunk 256 104.53 us/op 105.67 us/op 0.99
pickEth1Vote - no votes 1.0177 ms/op 928.59 us/op 1.10
pickEth1Vote - max votes 5.9187 ms/op 4.6495 ms/op 1.27
pickEth1Vote - Eth1Data hashTreeRoot value x2048 14.376 ms/op 10.591 ms/op 1.36
pickEth1Vote - Eth1Data hashTreeRoot tree x2048 20.879 ms/op 19.435 ms/op 1.07
pickEth1Vote - Eth1Data fastSerialize value x2048 486.67 us/op 358.33 us/op 1.36
pickEth1Vote - Eth1Data fastSerialize tree x2048 3.7327 ms/op 3.2022 ms/op 1.17
bytes32 toHexString 428.00 ns/op 372.00 ns/op 1.15
bytes32 Buffer.toString(hex) 235.00 ns/op 205.00 ns/op 1.15
bytes32 Buffer.toString(hex) from Uint8Array 351.00 ns/op 303.00 ns/op 1.16
bytes32 Buffer.toString(hex) + 0x 246.00 ns/op 202.00 ns/op 1.22
Object access 1 prop 0.14000 ns/op 0.12400 ns/op 1.13
Map access 1 prop 0.13200 ns/op 0.10300 ns/op 1.28
Object get x1000 5.8660 ns/op 4.9280 ns/op 1.19
Map get x1000 6.5460 ns/op 5.7310 ns/op 1.14
Object set x1000 36.140 ns/op 22.889 ns/op 1.58
Map set x1000 25.937 ns/op 18.866 ns/op 1.37
Return object 10000 times 0.29340 ns/op 0.28550 ns/op 1.03
Throw Error 10000 times 3.3860 us/op 2.7948 us/op 1.21
toHex 176.27 ns/op 113.07 ns/op 1.56
Buffer.from 150.56 ns/op 106.42 ns/op 1.41
shared Buffer 90.720 ns/op 68.469 ns/op 1.32
fastMsgIdFn sha256 / 200 bytes 2.2790 us/op 1.7730 us/op 1.29
fastMsgIdFn h32 xxhash / 200 bytes 259.00 ns/op 193.00 ns/op 1.34
fastMsgIdFn h64 xxhash / 200 bytes 268.00 ns/op 222.00 ns/op 1.21
fastMsgIdFn sha256 / 1000 bytes 7.4270 us/op 6.0230 us/op 1.23
fastMsgIdFn h32 xxhash / 1000 bytes 382.00 ns/op 357.00 ns/op 1.07
fastMsgIdFn h64 xxhash / 1000 bytes 346.00 ns/op 285.00 ns/op 1.21
fastMsgIdFn sha256 / 10000 bytes 65.525 us/op 49.956 us/op 1.31
fastMsgIdFn h32 xxhash / 10000 bytes 1.8710 us/op 1.7630 us/op 1.06
fastMsgIdFn h64 xxhash / 10000 bytes 1.2070 us/op 1.1070 us/op 1.09
send data - 1000 256B messages 13.140 ms/op 13.437 ms/op 0.98
send data - 1000 512B messages 19.359 ms/op 15.832 ms/op 1.22
send data - 1000 1024B messages 25.940 ms/op 24.216 ms/op 1.07
send data - 1000 1200B messages 21.174 ms/op 21.954 ms/op 0.96
send data - 1000 2048B messages 31.490 ms/op 29.272 ms/op 1.08
send data - 1000 4096B messages 33.911 ms/op 28.103 ms/op 1.21
send data - 1000 16384B messages 69.115 ms/op 65.198 ms/op 1.06
send data - 1000 65536B messages 221.04 ms/op 204.44 ms/op 1.08
enrSubnets - fastDeserialize 64 bits 1.0540 us/op 881.00 ns/op 1.20
enrSubnets - ssz BitVector 64 bits 357.00 ns/op 308.00 ns/op 1.16
enrSubnets - fastDeserialize 4 bits 172.00 ns/op 141.00 ns/op 1.22
enrSubnets - ssz BitVector 4 bits 417.00 ns/op 294.00 ns/op 1.42
prioritizePeers score -10:0 att 32-0.1 sync 2-0 152.49 us/op 109.25 us/op 1.40
prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 180.50 us/op 155.21 us/op 1.16
prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 262.71 us/op 241.05 us/op 1.09
prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 452.29 us/op 393.50 us/op 1.15
prioritizePeers score 0:0 att 64-1 sync 4-1 552.61 us/op 419.82 us/op 1.32
array of 16000 items push then shift 1.6430 us/op 1.3436 us/op 1.22
LinkedList of 16000 items push then shift 7.5480 ns/op 6.3490 ns/op 1.19
array of 16000 items push then pop 118.32 ns/op 105.98 ns/op 1.12
LinkedList of 16000 items push then pop 7.0590 ns/op 5.9550 ns/op 1.19
array of 24000 items push then shift 2.4601 us/op 1.9565 us/op 1.26
LinkedList of 24000 items push then shift 7.2950 ns/op 6.0260 ns/op 1.21
array of 24000 items push then pop 155.31 ns/op 125.84 ns/op 1.23
LinkedList of 24000 items push then pop 7.1700 ns/op 5.8940 ns/op 1.22
intersect bitArray bitLen 8 6.3740 ns/op 5.3420 ns/op 1.19
intersect array and set length 8 46.308 ns/op 37.303 ns/op 1.24
intersect bitArray bitLen 128 30.297 ns/op 26.585 ns/op 1.14
intersect array and set length 128 683.88 ns/op 571.03 ns/op 1.20
bitArray.getTrueBitIndexes() bitLen 128 1.3760 us/op 1.1520 us/op 1.19
bitArray.getTrueBitIndexes() bitLen 248 2.3620 us/op 1.9480 us/op 1.21
bitArray.getTrueBitIndexes() bitLen 512 4.4780 us/op 3.9790 us/op 1.13
Buffer.concat 32 items 750.00 ns/op 789.00 ns/op 0.95
Uint8Array.set 32 items 1.3470 us/op 1.9630 us/op 0.69
Buffer.copy 2.6010 us/op 2.5410 us/op 1.02
Uint8Array.set - with subarray 2.1210 us/op 2.8080 us/op 0.76
Uint8Array.set - without subarray 1.3610 us/op 2.0020 us/op 0.68
getUint32 - dataview 240.00 ns/op 218.00 ns/op 1.10
getUint32 - manual 165.00 ns/op 195.00 ns/op 0.85
Set add up to 64 items then delete first 2.2440 us/op 2.1919 us/op 1.02
OrderedSet add up to 64 items then delete first 3.1862 us/op 3.2600 us/op 0.98
Set add up to 64 items then delete last 2.7485 us/op 2.2908 us/op 1.20
OrderedSet add up to 64 items then delete last 4.2637 us/op 3.2655 us/op 1.31
Set add up to 64 items then delete middle 2.5424 us/op 2.1960 us/op 1.16
OrderedSet add up to 64 items then delete middle 5.1016 us/op 5.0648 us/op 1.01
Set add up to 128 items then delete first 4.8313 us/op 4.5083 us/op 1.07
OrderedSet add up to 128 items then delete first 7.1271 us/op 7.0471 us/op 1.01
Set add up to 128 items then delete last 5.0160 us/op 4.1707 us/op 1.20
OrderedSet add up to 128 items then delete last 7.5520 us/op 6.7155 us/op 1.12
Set add up to 128 items then delete middle 5.1397 us/op 4.5561 us/op 1.13
OrderedSet add up to 128 items then delete middle 15.313 us/op 13.359 us/op 1.15
Set add up to 256 items then delete first 11.946 us/op 9.9047 us/op 1.21
OrderedSet add up to 256 items then delete first 16.069 us/op 14.156 us/op 1.14
Set add up to 256 items then delete last 12.468 us/op 7.7128 us/op 1.62
OrderedSet add up to 256 items then delete last 16.894 us/op 12.041 us/op 1.40
Set add up to 256 items then delete middle 10.657 us/op 7.4642 us/op 1.43
OrderedSet add up to 256 items then delete middle 42.878 us/op 35.765 us/op 1.20
transfer serialized Status (84 B) 2.7520 us/op 2.1550 us/op 1.28
copy serialized Status (84 B) 1.3880 us/op 1.2360 us/op 1.12
transfer serialized SignedVoluntaryExit (112 B) 3.0440 us/op 2.2930 us/op 1.33
copy serialized SignedVoluntaryExit (112 B) 1.3600 us/op 1.2150 us/op 1.12
transfer serialized ProposerSlashing (416 B) 3.5300 us/op 2.9450 us/op 1.20
copy serialized ProposerSlashing (416 B) 1.8770 us/op 1.7650 us/op 1.06
transfer serialized Attestation (485 B) 2.9530 us/op 2.7360 us/op 1.08
copy serialized Attestation (485 B) 1.7770 us/op 2.0760 us/op 0.86
transfer serialized AttesterSlashing (33232 B) 3.0690 us/op 2.6890 us/op 1.14
copy serialized AttesterSlashing (33232 B) 4.7380 us/op 4.7480 us/op 1.00
transfer serialized Small SignedBeaconBlock (128000 B) 3.3820 us/op 2.7830 us/op 1.22
copy serialized Small SignedBeaconBlock (128000 B) 14.318 us/op 8.0910 us/op 1.77
transfer serialized Avg SignedBeaconBlock (200000 B) 4.1680 us/op 2.5040 us/op 1.66
copy serialized Avg SignedBeaconBlock (200000 B) 20.432 us/op 11.991 us/op 1.70
transfer serialized BlobsSidecar (524380 B) 4.1770 us/op 3.4770 us/op 1.20
copy serialized BlobsSidecar (524380 B) 184.21 us/op 76.853 us/op 2.40
transfer serialized Big SignedBeaconBlock (1000000 B) 4.3990 us/op 4.3270 us/op 1.02
copy serialized Big SignedBeaconBlock (1000000 B) 164.06 us/op 130.21 us/op 1.26
pass gossip attestations to forkchoice per slot 2.6679 ms/op 2.3411 ms/op 1.14
forkChoice updateHead vc 100000 bc 64 eq 0 470.06 us/op 440.74 us/op 1.07
forkChoice updateHead vc 600000 bc 64 eq 0 3.1164 ms/op 2.9104 ms/op 1.07
forkChoice updateHead vc 1000000 bc 64 eq 0 4.8658 ms/op 3.7613 ms/op 1.29
forkChoice updateHead vc 600000 bc 320 eq 0 2.7788 ms/op 2.1231 ms/op 1.31
forkChoice updateHead vc 600000 bc 1200 eq 0 2.8481 ms/op 2.2213 ms/op 1.28
forkChoice updateHead vc 600000 bc 7200 eq 0 3.3778 ms/op 2.8441 ms/op 1.19
forkChoice updateHead vc 600000 bc 64 eq 1000 11.109 ms/op 9.3538 ms/op 1.19
forkChoice updateHead vc 600000 bc 64 eq 10000 10.401 ms/op 9.2632 ms/op 1.12
forkChoice updateHead vc 600000 bc 64 eq 300000 13.789 ms/op 12.018 ms/op 1.15
computeDeltas 500000 validators 300 proto nodes 4.2764 ms/op 3.2596 ms/op 1.31
computeDeltas 500000 validators 1200 proto nodes 4.1725 ms/op 3.2967 ms/op 1.27
computeDeltas 500000 validators 7200 proto nodes 4.4561 ms/op 3.2451 ms/op 1.37
computeDeltas 750000 validators 300 proto nodes 6.6744 ms/op 4.9180 ms/op 1.36
computeDeltas 750000 validators 1200 proto nodes 6.8308 ms/op 4.9235 ms/op 1.39
computeDeltas 750000 validators 7200 proto nodes 6.8044 ms/op 5.0734 ms/op 1.34
computeDeltas 1400000 validators 300 proto nodes 12.915 ms/op 9.4249 ms/op 1.37
computeDeltas 1400000 validators 1200 proto nodes 11.862 ms/op 9.4310 ms/op 1.26
computeDeltas 1400000 validators 7200 proto nodes 11.737 ms/op 10.104 ms/op 1.16
computeDeltas 2100000 validators 300 proto nodes 17.267 ms/op 14.909 ms/op 1.16
computeDeltas 2100000 validators 1200 proto nodes 17.419 ms/op 13.672 ms/op 1.27
computeDeltas 2100000 validators 7200 proto nodes 17.394 ms/op 13.541 ms/op 1.28
altair processAttestation - 250000 vs - 7PWei normalcase 2.7755 ms/op 1.5673 ms/op 1.77
altair processAttestation - 250000 vs - 7PWei worstcase 3.7406 ms/op 2.8512 ms/op 1.31
altair processAttestation - setStatus - 1/6 committees join 134.49 us/op 86.398 us/op 1.56
altair processAttestation - setStatus - 1/3 committees join 275.88 us/op 176.79 us/op 1.56
altair processAttestation - setStatus - 1/2 committees join 428.78 us/op 262.64 us/op 1.63
altair processAttestation - setStatus - 2/3 committees join 501.40 us/op 351.13 us/op 1.43
altair processAttestation - setStatus - 4/5 committees join 771.20 us/op 498.61 us/op 1.55
altair processAttestation - setStatus - 100% committees join 805.96 us/op 590.74 us/op 1.36
altair processBlock - 250000 vs - 7PWei normalcase 5.2423 ms/op 4.1471 ms/op 1.26
altair processBlock - 250000 vs - 7PWei normalcase hashState 34.063 ms/op 28.693 ms/op 1.19
altair processBlock - 250000 vs - 7PWei worstcase 40.396 ms/op 37.470 ms/op 1.08
altair processBlock - 250000 vs - 7PWei worstcase hashState 78.042 ms/op 75.439 ms/op 1.03
phase0 processBlock - 250000 vs - 7PWei normalcase 2.4132 ms/op 1.4999 ms/op 1.61
phase0 processBlock - 250000 vs - 7PWei worstcase 28.973 ms/op 24.683 ms/op 1.17
altair processEth1Data - 250000 vs - 7PWei normalcase 656.67 us/op 277.43 us/op 2.37
getExpectedWithdrawals 250000 eb:1,eth1:1,we:0,wn:0,smpl:15 12.778 us/op 7.3830 us/op 1.73
getExpectedWithdrawals 250000 eb:0.95,eth1:0.1,we:0.05,wn:0,smpl:219 82.900 us/op 56.523 us/op 1.47
getExpectedWithdrawals 250000 eb:0.95,eth1:0.3,we:0.05,wn:0,smpl:42 28.902 us/op 13.568 us/op 2.13
getExpectedWithdrawals 250000 eb:0.95,eth1:0.7,we:0.05,wn:0,smpl:18 11.881 us/op 8.2450 us/op 1.44
getExpectedWithdrawals 250000 eb:0.1,eth1:0.1,we:0,wn:0,smpl:1020 286.22 us/op 165.16 us/op 1.73
getExpectedWithdrawals 250000 eb:0.03,eth1:0.03,we:0,wn:0,smpl:11777 2.0943 ms/op 892.18 us/op 2.35
getExpectedWithdrawals 250000 eb:0.01,eth1:0.01,we:0,wn:0,smpl:16384 2.2277 ms/op 1.1307 ms/op 1.97
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,smpl:16384 2.4051 ms/op 1.0971 ms/op 2.19
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,nocache,smpl:16384 8.3678 ms/op 3.0835 ms/op 2.71
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,smpl:16384 2.5318 ms/op 1.3606 ms/op 1.86
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,nocache,smpl:16384 6.7410 ms/op 3.1772 ms/op 2.12
Tree 40 250000 create 513.15 ms/op 178.70 ms/op 2.87
Tree 40 250000 get(125000) 175.09 ns/op 116.38 ns/op 1.50
Tree 40 250000 set(125000) 1.7858 us/op 557.77 ns/op 3.20
Tree 40 250000 toArray() 26.120 ms/op 13.867 ms/op 1.88
Tree 40 250000 iterate all - toArray() + loop 24.789 ms/op 11.372 ms/op 2.18
Tree 40 250000 iterate all - get(i) 65.500 ms/op 40.240 ms/op 1.63
Array 250000 create 4.5987 ms/op 2.3176 ms/op 1.98
Array 250000 clone - spread 3.5339 ms/op 1.1758 ms/op 3.01
Array 250000 get(125000) 0.53000 ns/op 0.37000 ns/op 1.43
Array 250000 set(125000) 0.51000 ns/op 0.40500 ns/op 1.26
Array 250000 iterate all - loop 90.145 us/op 76.332 us/op 1.18
phase0 afterProcessEpoch - 250000 vs - 7PWei 55.068 ms/op 41.628 ms/op 1.32
Array.fill - length 1000000 6.4102 ms/op 2.4316 ms/op 2.64
Array push - length 1000000 21.201 ms/op 14.128 ms/op 1.50
Array.get 0.32649 ns/op 0.25498 ns/op 1.28
Uint8Array.get 0.47752 ns/op 0.34019 ns/op 1.40
phase0 beforeProcessEpoch - 250000 vs - 7PWei 33.088 ms/op 13.085 ms/op 2.53
altair processEpoch - mainnet_e81889 417.86 ms/op 254.82 ms/op 1.64
mainnet_e81889 - altair beforeProcessEpoch 27.778 ms/op 20.780 ms/op 1.34
mainnet_e81889 - altair processJustificationAndFinalization 32.013 us/op 14.201 us/op 2.25
mainnet_e81889 - altair processInactivityUpdates 9.6847 ms/op 4.3521 ms/op 2.23
mainnet_e81889 - altair processRewardsAndPenalties 53.239 ms/op 52.173 ms/op 1.02
mainnet_e81889 - altair processRegistryUpdates 5.9240 us/op 2.1580 us/op 2.75
mainnet_e81889 - altair processSlashings 1.1730 us/op 572.00 ns/op 2.05
mainnet_e81889 - altair processEth1DataReset 1.1470 us/op 465.00 ns/op 2.47
mainnet_e81889 - altair processEffectiveBalanceUpdates 1.5129 ms/op 1.0547 ms/op 1.43
mainnet_e81889 - altair processSlashingsReset 10.449 us/op 2.6170 us/op 3.99
mainnet_e81889 - altair processRandaoMixesReset 8.0010 us/op 4.1250 us/op 1.94
mainnet_e81889 - altair processHistoricalRootsUpdate 904.00 ns/op 397.00 ns/op 2.28
mainnet_e81889 - altair processParticipationFlagUpdates 2.1570 us/op 1.2450 us/op 1.73
mainnet_e81889 - altair processSyncCommitteeUpdates 983.00 ns/op 999.00 ns/op 0.98
mainnet_e81889 - altair afterProcessEpoch 53.357 ms/op 42.479 ms/op 1.26
capella processEpoch - mainnet_e217614 1.1194 s/op 992.10 ms/op 1.13
mainnet_e217614 - capella beforeProcessEpoch 76.346 ms/op 63.877 ms/op 1.20
mainnet_e217614 - capella processJustificationAndFinalization 15.162 us/op 9.5410 us/op 1.59
mainnet_e217614 - capella processInactivityUpdates 17.835 ms/op 14.763 ms/op 1.21
mainnet_e217614 - capella processRewardsAndPenalties 218.18 ms/op 221.21 ms/op 0.99
mainnet_e217614 - capella processRegistryUpdates 18.911 us/op 16.319 us/op 1.16
mainnet_e217614 - capella processSlashings 581.00 ns/op 606.00 ns/op 0.96
mainnet_e217614 - capella processEth1DataReset 491.00 ns/op 459.00 ns/op 1.07
mainnet_e217614 - capella processEffectiveBalanceUpdates 14.956 ms/op 5.0901 ms/op 2.94
mainnet_e217614 - capella processSlashingsReset 6.0190 us/op 2.0710 us/op 2.91
mainnet_e217614 - capella processRandaoMixesReset 6.7140 us/op 2.9570 us/op 2.27
mainnet_e217614 - capella processHistoricalRootsUpdate 812.00 ns/op 755.00 ns/op 1.08
mainnet_e217614 - capella processParticipationFlagUpdates 2.6110 us/op 1.4410 us/op 1.81
mainnet_e217614 - capella afterProcessEpoch 127.08 ms/op 106.03 ms/op 1.20
phase0 processEpoch - mainnet_e58758 300.88 ms/op 305.85 ms/op 0.98
mainnet_e58758 - phase0 beforeProcessEpoch 73.216 ms/op 79.077 ms/op 0.93
mainnet_e58758 - phase0 processJustificationAndFinalization 12.971 us/op 10.013 us/op 1.30
mainnet_e58758 - phase0 processRewardsAndPenalties 19.684 ms/op 30.375 ms/op 0.65
mainnet_e58758 - phase0 processRegistryUpdates 13.307 us/op 7.3220 us/op 1.82
mainnet_e58758 - phase0 processSlashings 479.00 ns/op 379.00 ns/op 1.26
mainnet_e58758 - phase0 processEth1DataReset 515.00 ns/op 333.00 ns/op 1.55
mainnet_e58758 - phase0 processEffectiveBalanceUpdates 1.1561 ms/op 1.4065 ms/op 0.82
mainnet_e58758 - phase0 processSlashingsReset 2.8350 us/op 2.2010 us/op 1.29
mainnet_e58758 - phase0 processRandaoMixesReset 5.1340 us/op 3.0030 us/op 1.71
mainnet_e58758 - phase0 processHistoricalRootsUpdate 555.00 ns/op 456.00 ns/op 1.22
mainnet_e58758 - phase0 processParticipationRecordUpdates 3.6740 us/op 2.9930 us/op 1.23
mainnet_e58758 - phase0 afterProcessEpoch 42.960 ms/op 37.783 ms/op 1.14
phase0 processEffectiveBalanceUpdates - 250000 normalcase 1.3374 ms/op 1.0197 ms/op 1.31
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 1.9966 ms/op 1.7674 ms/op 1.13
altair processInactivityUpdates - 250000 normalcase 15.720 ms/op 17.161 ms/op 0.92
altair processInactivityUpdates - 250000 worstcase 15.593 ms/op 16.922 ms/op 0.92
phase0 processRegistryUpdates - 250000 normalcase 10.296 us/op 7.6050 us/op 1.35
phase0 processRegistryUpdates - 250000 badcase_full_deposits 323.60 us/op 357.62 us/op 0.90
phase0 processRegistryUpdates - 250000 worstcase 0.5 118.29 ms/op 108.68 ms/op 1.09
altair processRewardsAndPenalties - 250000 normalcase 38.202 ms/op 38.679 ms/op 0.99
altair processRewardsAndPenalties - 250000 worstcase 42.324 ms/op 40.956 ms/op 1.03
phase0 getAttestationDeltas - 250000 normalcase 9.3577 ms/op 5.7435 ms/op 1.63
phase0 getAttestationDeltas - 250000 worstcase 7.7208 ms/op 5.8009 ms/op 1.33
phase0 processSlashings - 250000 worstcase 111.02 us/op 88.061 us/op 1.26
altair processSyncCommitteeUpdates - 250000 126.41 ms/op 90.948 ms/op 1.39
BeaconState.hashTreeRoot - No change 241.00 ns/op 189.00 ns/op 1.28
BeaconState.hashTreeRoot - 1 full validator 116.56 us/op 75.226 us/op 1.55
BeaconState.hashTreeRoot - 32 full validator 1.1294 ms/op 705.20 us/op 1.60
BeaconState.hashTreeRoot - 512 full validator 11.650 ms/op 7.1476 ms/op 1.63
BeaconState.hashTreeRoot - 1 validator.effectiveBalance 173.26 us/op 88.251 us/op 1.96
BeaconState.hashTreeRoot - 32 validator.effectiveBalance 2.1516 ms/op 1.2537 ms/op 1.72
BeaconState.hashTreeRoot - 512 validator.effectiveBalance 26.095 ms/op 14.695 ms/op 1.78
BeaconState.hashTreeRoot - 1 balances 102.39 us/op 67.109 us/op 1.53
BeaconState.hashTreeRoot - 32 balances 1.3873 ms/op 621.50 us/op 2.23
BeaconState.hashTreeRoot - 512 balances 9.9569 ms/op 5.6583 ms/op 1.76
BeaconState.hashTreeRoot - 250000 balances 189.21 ms/op 140.77 ms/op 1.34
aggregationBits - 2048 els - zipIndexesInBitList 29.955 us/op 21.257 us/op 1.41
byteArrayEquals 32 54.713 ns/op 48.385 ns/op 1.13
Buffer.compare 32 17.450 ns/op 15.098 ns/op 1.16
byteArrayEquals 1024 1.6164 us/op 1.2226 us/op 1.32
Buffer.compare 1024 26.183 ns/op 21.742 ns/op 1.20
byteArrayEquals 16384 25.860 us/op 19.428 us/op 1.33
Buffer.compare 16384 183.41 ns/op 170.65 ns/op 1.07
byteArrayEquals 123687377 193.37 ms/op 153.82 ms/op 1.26
Buffer.compare 123687377 7.6932 ms/op 4.0856 ms/op 1.88
byteArrayEquals 32 - diff last byte 53.159 ns/op 48.143 ns/op 1.10
Buffer.compare 32 - diff last byte 17.526 ns/op 15.924 ns/op 1.10
byteArrayEquals 1024 - diff last byte 1.5867 us/op 1.3596 us/op 1.17
Buffer.compare 1024 - diff last byte 26.187 ns/op 23.378 ns/op 1.12
byteArrayEquals 16384 - diff last byte 25.175 us/op 21.662 us/op 1.16
Buffer.compare 16384 - diff last byte 208.36 ns/op 187.24 ns/op 1.11
byteArrayEquals 123687377 - diff last byte 190.06 ms/op 153.60 ms/op 1.24
Buffer.compare 123687377 - diff last byte 7.9243 ms/op 6.1870 ms/op 1.28
byteArrayEquals 32 - random bytes 5.3230 ns/op 4.6440 ns/op 1.15
Buffer.compare 32 - random bytes 17.766 ns/op 15.134 ns/op 1.17
byteArrayEquals 1024 - random bytes 5.3550 ns/op 4.6280 ns/op 1.16
Buffer.compare 1024 - random bytes 17.839 ns/op 14.911 ns/op 1.20
byteArrayEquals 16384 - random bytes 5.3180 ns/op 4.6150 ns/op 1.15
Buffer.compare 16384 - random bytes 17.831 ns/op 14.982 ns/op 1.19
byteArrayEquals 123687377 - random bytes 6.5400 ns/op 5.5400 ns/op 1.18
Buffer.compare 123687377 - random bytes 18.950 ns/op 15.860 ns/op 1.19
regular array get 100000 times 43.630 us/op 30.133 us/op 1.45
wrappedArray get 100000 times 33.287 us/op 30.246 us/op 1.10
arrayWithProxy get 100000 times 13.613 ms/op 8.7781 ms/op 1.55
ssz.Root.equals 46.941 ns/op 42.909 ns/op 1.09
byteArrayEquals 46.086 ns/op 42.526 ns/op 1.08
Buffer.compare 10.819 ns/op 8.7290 ns/op 1.24
processSlot - 1 slots 14.002 us/op 12.152 us/op 1.15
processSlot - 32 slots 3.2913 ms/op 2.4475 ms/op 1.34
getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei 37.299 ms/op 38.943 ms/op 0.96
getCommitteeAssignments - req 1 vs - 250000 vc 2.0720 ms/op 1.8274 ms/op 1.13
getCommitteeAssignments - req 100 vs - 250000 vc 4.0096 ms/op 3.6195 ms/op 1.11
getCommitteeAssignments - req 1000 vs - 250000 vc 4.3172 ms/op 3.9273 ms/op 1.10
findModifiedValidators - 10000 modified validators 262.82 ms/op 230.45 ms/op 1.14
findModifiedValidators - 1000 modified validators 189.93 ms/op 150.64 ms/op 1.26
findModifiedValidators - 100 modified validators 163.75 ms/op 152.05 ms/op 1.08
findModifiedValidators - 10 modified validators 180.61 ms/op 146.30 ms/op 1.23
findModifiedValidators - 1 modified validators 151.29 ms/op 155.16 ms/op 0.98
findModifiedValidators - no difference 159.74 ms/op 152.86 ms/op 1.05
compare ViewDUs 3.0159 s/op 3.1786 s/op 0.95
compare each validator Uint8Array 1.4459 s/op 1.6562 s/op 0.87
compare ViewDU to Uint8Array 1.0039 s/op 843.45 ms/op 1.19
migrate state 1000000 validators, 24 modified, 0 new 693.23 ms/op 683.10 ms/op 1.01
migrate state 1000000 validators, 1700 modified, 1000 new 922.95 ms/op 900.47 ms/op 1.02
migrate state 1000000 validators, 3400 modified, 2000 new 1.1590 s/op 1.1173 s/op 1.04
migrate state 1500000 validators, 24 modified, 0 new 768.70 ms/op 716.91 ms/op 1.07
migrate state 1500000 validators, 1700 modified, 1000 new 953.50 ms/op 948.49 ms/op 1.01
migrate state 1500000 validators, 3400 modified, 2000 new 1.1514 s/op 1.0978 s/op 1.05
RootCache.getBlockRootAtSlot - 250000 vs - 7PWei 4.5000 ns/op 3.8200 ns/op 1.18
state getBlockRootAtSlot - 250000 vs - 7PWei 903.35 ns/op 528.13 ns/op 1.71
computeProposers - vc 250000 7.5428 ms/op 5.5096 ms/op 1.37
computeEpochShuffling - vc 250000 41.155 ms/op 34.784 ms/op 1.18
getNextSyncCommittee - vc 250000 128.24 ms/op 109.39 ms/op 1.17
computeSigningRoot for AttestationData 22.140 us/op 22.340 us/op 0.99
hash AttestationData serialized data then Buffer.toString(base64) 1.5112 us/op 1.1606 us/op 1.30
toHexString serialized data 870.59 ns/op 779.60 ns/op 1.12
Buffer.toString(base64) 173.41 ns/op 144.04 ns/op 1.20
nodejs block root to RootHex using toHex 144.96 ns/op 107.70 ns/op 1.35
nodejs block root to RootHex using toRootHex 85.666 ns/op 72.053 ns/op 1.19
browser block root to RootHex using the deprecated toHexString 221.03 ns/op 203.45 ns/op 1.09
browser block root to RootHex using toHex 176.87 ns/op 177.12 ns/op 1.00
browser block root to RootHex using toRootHex 155.79 ns/op 168.60 ns/op 0.92

by benchmarkbot/action

Copy link

codecov bot commented Nov 27, 2024

Codecov Report

Attention: Patch coverage is 24.70588% with 320 lines in your changes missing coverage. Please review.

Project coverage is 48.62%. Comparing base (e6a0cb2) to head (38d40e8).
Report is 4 commits behind head on unstable.

Additional details and impacted files
@@             Coverage Diff              @@
##           unstable    #7246      +/-   ##
============================================
- Coverage     48.76%   48.62%   -0.15%     
============================================
  Files           601      603       +2     
  Lines         40243    40507     +264     
  Branches       2067     2071       +4     
============================================
+ Hits          19626    19697      +71     
- Misses        20579    20772     +193     
  Partials         38       38              

twoeths and others added 10 commits December 16, 2024 22:21
* feat: refactor SeenAttestationDatas for SinlgeAttestation

* feat: add SingleAttestation type

* feat: ssz utils for SingleAttestation

* feat: implement SingleAttestation for network processor and gossip queue

* fix: add SingleAttestation for phase0 and altair

* fix: define and publish SingleAttestation for all forks

* Fix electra SingleAttestation type mapping

* Update api and eventstream

* Update validator client

* Update attestation unit test variables

* chore: SeenAttestationDatas unit tests

* chore: sszBytes unit tests

* Use CommitteeIndex type

* refactor: get/set functions of SeenAttestationDatas

* Always emit single_attestation event

* Validation use new SeenAttDataKey

* validateAttestationNoSignatureCheck first draft

* Add aggregation and committee bits to cache

* AttestationPool accepts SingleAttestation

* Update SingleAttestation event stream

* Update aggregate validation

* Polish

* Lint

* fix check-types

* Remove committee bit cache

* Update attestation pool unit tests

* Lint

* Remove unused committeeBits from attestation data cache

* Fix spec reference comment

* fix: getSeenAttDataKeyFromSignedAggregateAndProof

* Update beacon-api spec tests to run against v3.0.0-alpha.9

---------

Co-authored-by: Nico Flaig <nflaig@protonmail.com>
Co-authored-by: NC <17676176+ensi321@users.noreply.github.com>
…7256)

* fix: select correct gossip type when publishing single attestation

* Add SingleAttestation as alias to phase0 ssz types
* fix: remove aggregation bits from seen attestation cache

* Allow passing null as aggregationBits to test pre-electra case

* Only create aggregationBits once for the first attestation

* Avoid second getSingleTrueBit call
…#7261)

* fix: return correct type from attestation validation when using cache

* Remove type casts

* Remove unused import

* Use ternary operator instead of if-else

* Fix aggregationBits type issue

* Add comment
* initial commit

* Address comment

* Lint
* Rename PartialPendingWithdrawal field

* do not change creds type on consolidation

* Use validator EB to process pending consolidation

* lint
nflaig and others added 7 commits December 18, 2024 13:32
* Fix execution request parsing

* lint

* Rename type

---------

Co-authored-by: Nico Flaig <nflaig@protonmail.com>
…685 (#7330)

* test: ensure execution requests are de-/serialized according to EIP-7685

* Fix format

* Add test case where deposits, withdrawals and consolidations are all empty

* Remove map
* Init

* Add reqresp v2 definition

* Update validateGossipBlock

* Partial commit

* Reqresp. Add todos

* polish

* Fork-aware requestSszTypeByMethod

* Fixed minimal constants

* Bump config test version

* Update blob sidecar subnet computation

* Pass proper commitment limit to block gossip error

* Update blob sidecar index check

* Lint

* Update kzg unit test

* Subscribe to correct number of blob sidecar subnets

* Refactor constants getter to constantsHelper

* address comment

* Pass fork as first arg

* Update packages/state-transition/src/block/processExecutionPayload.ts

* refactor: move helper to get max blobs per block to fork config (#7322)

* Simplify type cast

---------

Co-authored-by: Nico Flaig <nflaig@protonmail.com>
@philknows
Copy link
Member

Version bump merged for inclusion: ethereum/consensus-specs#4077

@nflaig
Copy link
Member

nflaig commented Jan 15, 2025

need to make sure to forward merge this branch

* chore: update lighthouse to latest unstable version

* Remove unsupported CLI flags

* Update to deposit_contract_block.txt

* Update to deposit_contract_block.txt for validator
@nflaig nflaig marked this pull request as ready for review January 15, 2025 14:04
@nflaig nflaig requested a review from a team as a code owner January 15, 2025 14:04
@nflaig nflaig added the status-do-not-merge Merging this issue will break the build. Do not merge! label Jan 15, 2025
packages/beacon-node/src/execution/engine/types.ts Outdated Show resolved Hide resolved
@@ -85,6 +85,7 @@ export function validateBeaconBlocksByRangeRequest(
// step > 1 is deprecated, see https://github.com/ethereum/consensus-specs/pull/2856

if (count > MAX_REQUEST_BLOCKS) {
// TODO: This is probably not right as `BeaconBlocksByRangeV2` takes at most `MAX_REQUEST_BLOCKS_DENEB`
Copy link
Member

Choose a reason for hiding this comment

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

should this fn take a fork parameter?

Copy link
Member

Choose a reason for hiding this comment

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

need to review this but it does not seem correct as is

Copy link
Contributor Author

Choose a reason for hiding this comment

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

should this fn take a fork parameter?

It is just a random thing I found when coding EIP-7691. Has nothing to do with devnet-5 so added TODO instead.

Copy link
Member

Choose a reason for hiding this comment

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

there are missing changes for devnet-5, see #7368, while this will likely not be an issue we should probably update it as part of this branch

* Remove stale todo

* some refactoring

* Readd comment, seems somewhat useful

* Add alias for getSlotFromOffset

* Use parseInt instead of Number

* Update return type
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
status-do-not-merge Merging this issue will break the build. Do not merge!
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants