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

Merged
merged 27 commits into from
Jan 17, 2025
Merged

feat: add devnet-5 support #7246

merged 27 commits into from
Jan 17, 2025

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: b819807 Previous: 3dcd668 Ratio
getPubkeys - index2pubkey - req 1000 vs - 250000 vc 1.8286 ms/op 1.7601 ms/op 1.04
getPubkeys - validatorsArr - req 1000 vs - 250000 vc 48.920 us/op 52.426 us/op 0.93
BLS verify - blst 1.1786 ms/op 973.43 us/op 1.21
BLS verifyMultipleSignatures 3 - blst 1.9154 ms/op 1.5062 ms/op 1.27
BLS verifyMultipleSignatures 8 - blst 2.1412 ms/op 2.5724 ms/op 0.83
BLS verifyMultipleSignatures 32 - blst 6.2936 ms/op 5.7783 ms/op 1.09
BLS verifyMultipleSignatures 64 - blst 9.6386 ms/op 10.768 ms/op 0.90
BLS verifyMultipleSignatures 128 - blst 17.795 ms/op 17.820 ms/op 1.00
BLS deserializing 10000 signatures 687.81 ms/op 700.50 ms/op 0.98
BLS deserializing 100000 signatures 6.7696 s/op 7.1426 s/op 0.95
BLS verifyMultipleSignatures - same message - 3 - blst 1.2544 ms/op 968.77 us/op 1.29
BLS verifyMultipleSignatures - same message - 8 - blst 1.5895 ms/op 1.1868 ms/op 1.34
BLS verifyMultipleSignatures - same message - 32 - blst 1.8826 ms/op 1.7438 ms/op 1.08
BLS verifyMultipleSignatures - same message - 64 - blst 2.7065 ms/op 2.6719 ms/op 1.01
BLS verifyMultipleSignatures - same message - 128 - blst 4.3586 ms/op 4.5133 ms/op 0.97
BLS aggregatePubkeys 32 - blst 19.780 us/op 20.096 us/op 0.98
BLS aggregatePubkeys 128 - blst 68.352 us/op 72.040 us/op 0.95
notSeenSlots=1 numMissedVotes=1 numBadVotes=10 60.480 ms/op 83.828 ms/op 0.72
notSeenSlots=1 numMissedVotes=0 numBadVotes=4 59.056 ms/op 56.853 ms/op 1.04
notSeenSlots=2 numMissedVotes=1 numBadVotes=10 56.372 ms/op 46.415 ms/op 1.21
getSlashingsAndExits - default max 135.91 us/op 164.12 us/op 0.83
getSlashingsAndExits - 2k 467.56 us/op 467.08 us/op 1.00
proposeBlockBody type=full, size=empty 5.5430 ms/op 7.3982 ms/op 0.75
isKnown best case - 1 super set check 273.00 ns/op 416.00 ns/op 0.66
isKnown normal case - 2 super set checks 251.00 ns/op 302.00 ns/op 0.83
isKnown worse case - 16 super set checks 265.00 ns/op 412.00 ns/op 0.64
InMemoryCheckpointStateCache - add get delete 2.5040 us/op 3.0990 us/op 0.81
validate api signedAggregateAndProof - struct 2.3139 ms/op 1.6411 ms/op 1.41
validate gossip signedAggregateAndProof - struct 1.8244 ms/op 1.7110 ms/op 1.07
batch validate gossip attestation - vc 640000 - chunk 32 133.39 us/op 146.78 us/op 0.91
batch validate gossip attestation - vc 640000 - chunk 64 115.20 us/op 130.06 us/op 0.89
batch validate gossip attestation - vc 640000 - chunk 128 102.57 us/op 121.30 us/op 0.85
batch validate gossip attestation - vc 640000 - chunk 256 103.42 us/op 117.25 us/op 0.88
pickEth1Vote - no votes 958.19 us/op 1.2209 ms/op 0.78
pickEth1Vote - max votes 6.1658 ms/op 8.8971 ms/op 0.69
pickEth1Vote - Eth1Data hashTreeRoot value x2048 16.266 ms/op 23.373 ms/op 0.70
pickEth1Vote - Eth1Data hashTreeRoot tree x2048 23.143 ms/op 26.286 ms/op 0.88
pickEth1Vote - Eth1Data fastSerialize value x2048 482.36 us/op 574.92 us/op 0.84
pickEth1Vote - Eth1Data fastSerialize tree x2048 3.8263 ms/op 4.9216 ms/op 0.78
bytes32 toHexString 419.00 ns/op 617.00 ns/op 0.68
bytes32 Buffer.toString(hex) 217.00 ns/op 242.00 ns/op 0.90
bytes32 Buffer.toString(hex) from Uint8Array 335.00 ns/op 474.00 ns/op 0.71
bytes32 Buffer.toString(hex) + 0x 221.00 ns/op 250.00 ns/op 0.88
Object access 1 prop 0.13300 ns/op 0.19900 ns/op 0.67
Map access 1 prop 0.13600 ns/op 0.14700 ns/op 0.93
Object get x1000 6.0340 ns/op 7.1510 ns/op 0.84
Map get x1000 6.3940 ns/op 7.9220 ns/op 0.81
Object set x1000 33.009 ns/op 47.092 ns/op 0.70
Map set x1000 21.508 ns/op 29.033 ns/op 0.74
Return object 10000 times 0.28560 ns/op 0.31930 ns/op 0.89
Throw Error 10000 times 3.9683 us/op 3.5930 us/op 1.10
toHex 152.38 ns/op 165.45 ns/op 0.92
Buffer.from 126.01 ns/op 152.97 ns/op 0.82
shared Buffer 90.904 ns/op 102.83 ns/op 0.88
fastMsgIdFn sha256 / 200 bytes 2.1680 us/op 2.4290 us/op 0.89
fastMsgIdFn h32 xxhash / 200 bytes 238.00 ns/op 263.00 ns/op 0.90
fastMsgIdFn h64 xxhash / 200 bytes 262.00 ns/op 267.00 ns/op 0.98
fastMsgIdFn sha256 / 1000 bytes 7.1680 us/op 7.6620 us/op 0.94
fastMsgIdFn h32 xxhash / 1000 bytes 380.00 ns/op 378.00 ns/op 1.01
fastMsgIdFn h64 xxhash / 1000 bytes 333.00 ns/op 344.00 ns/op 0.97
fastMsgIdFn sha256 / 10000 bytes 63.042 us/op 65.541 us/op 0.96
fastMsgIdFn h32 xxhash / 10000 bytes 1.8020 us/op 1.8980 us/op 0.95
fastMsgIdFn h64 xxhash / 10000 bytes 1.1840 us/op 1.2230 us/op 0.97
send data - 1000 256B messages 13.146 ms/op 12.013 ms/op 1.09
send data - 1000 512B messages 16.598 ms/op 17.473 ms/op 0.95
send data - 1000 1024B messages 23.875 ms/op 27.113 ms/op 0.88
send data - 1000 1200B messages 26.057 ms/op 25.309 ms/op 1.03
send data - 1000 2048B messages 31.442 ms/op 29.400 ms/op 1.07
send data - 1000 4096B messages 30.963 ms/op 31.344 ms/op 0.99
send data - 1000 16384B messages 72.001 ms/op 72.309 ms/op 1.00
send data - 1000 65536B messages 211.18 ms/op 212.10 ms/op 1.00
enrSubnets - fastDeserialize 64 bits 1.0260 us/op 955.00 ns/op 1.07
enrSubnets - ssz BitVector 64 bits 355.00 ns/op 341.00 ns/op 1.04
enrSubnets - fastDeserialize 4 bits 145.00 ns/op 133.00 ns/op 1.09
enrSubnets - ssz BitVector 4 bits 359.00 ns/op 337.00 ns/op 1.07
prioritizePeers score -10:0 att 32-0.1 sync 2-0 128.55 us/op 124.85 us/op 1.03
prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 152.48 us/op 146.76 us/op 1.04
prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 215.41 us/op 211.09 us/op 1.02
prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 388.19 us/op 381.74 us/op 1.02
prioritizePeers score 0:0 att 64-1 sync 4-1 483.72 us/op 476.02 us/op 1.02
array of 16000 items push then shift 1.5837 us/op 1.5499 us/op 1.02
LinkedList of 16000 items push then shift 6.8320 ns/op 6.8590 ns/op 1.00
array of 16000 items push then pop 108.77 ns/op 95.774 ns/op 1.14
LinkedList of 16000 items push then pop 6.5430 ns/op 6.6710 ns/op 0.98
array of 24000 items push then shift 2.2729 us/op 2.2869 us/op 0.99
LinkedList of 24000 items push then shift 6.6850 ns/op 6.7820 ns/op 0.99
array of 24000 items push then pop 122.74 ns/op 129.46 ns/op 0.95
LinkedList of 24000 items push then pop 6.4710 ns/op 6.7920 ns/op 0.95
intersect bitArray bitLen 8 5.9610 ns/op 6.5310 ns/op 0.91
intersect array and set length 8 42.765 ns/op 42.750 ns/op 1.00
intersect bitArray bitLen 128 29.013 ns/op 29.197 ns/op 0.99
intersect array and set length 128 639.46 ns/op 640.98 ns/op 1.00
bitArray.getTrueBitIndexes() bitLen 128 1.2680 us/op 1.2040 us/op 1.05
bitArray.getTrueBitIndexes() bitLen 248 2.1690 us/op 2.0950 us/op 1.04
bitArray.getTrueBitIndexes() bitLen 512 4.1710 us/op 4.1180 us/op 1.01
Buffer.concat 32 items 729.00 ns/op 694.00 ns/op 1.05
Uint8Array.set 32 items 1.6020 us/op 1.6880 us/op 0.95
Buffer.copy 3.1940 us/op 2.8480 us/op 1.12
Uint8Array.set - with subarray 2.5920 us/op 2.5910 us/op 1.00
Uint8Array.set - without subarray 1.5250 us/op 1.4740 us/op 1.03
getUint32 - dataview 228.00 ns/op 223.00 ns/op 1.02
getUint32 - manual 142.00 ns/op 137.00 ns/op 1.04
Set add up to 64 items then delete first 2.0848 us/op 2.1148 us/op 0.99
OrderedSet add up to 64 items then delete first 3.1099 us/op 3.1194 us/op 1.00
Set add up to 64 items then delete last 2.4159 us/op 2.4329 us/op 0.99
OrderedSet add up to 64 items then delete last 3.4423 us/op 3.5102 us/op 0.98
Set add up to 64 items then delete middle 2.3970 us/op 2.4538 us/op 0.98
OrderedSet add up to 64 items then delete middle 5.0017 us/op 5.0370 us/op 0.99
Set add up to 128 items then delete first 4.9752 us/op 5.0507 us/op 0.99
OrderedSet add up to 128 items then delete first 7.6029 us/op 7.6252 us/op 1.00
Set add up to 128 items then delete last 4.8307 us/op 4.9726 us/op 0.97
OrderedSet add up to 128 items then delete last 7.0250 us/op 7.0562 us/op 1.00
Set add up to 128 items then delete middle 4.6886 us/op 4.7750 us/op 0.98
OrderedSet add up to 128 items then delete middle 13.987 us/op 13.406 us/op 1.04
Set add up to 256 items then delete first 9.8176 us/op 9.9523 us/op 0.99
OrderedSet add up to 256 items then delete first 15.345 us/op 15.504 us/op 0.99
Set add up to 256 items then delete last 9.3830 us/op 9.4513 us/op 0.99
OrderedSet add up to 256 items then delete last 13.882 us/op 14.391 us/op 0.96
Set add up to 256 items then delete middle 9.3120 us/op 9.4687 us/op 0.98
OrderedSet add up to 256 items then delete middle 40.417 us/op 40.599 us/op 1.00
transfer serialized Status (84 B) 2.4650 us/op 2.4660 us/op 1.00
copy serialized Status (84 B) 1.3000 us/op 1.2950 us/op 1.00
transfer serialized SignedVoluntaryExit (112 B) 2.6780 us/op 2.5990 us/op 1.03
copy serialized SignedVoluntaryExit (112 B) 1.4430 us/op 1.3470 us/op 1.07
transfer serialized ProposerSlashing (416 B) 2.9570 us/op 2.8020 us/op 1.06
copy serialized ProposerSlashing (416 B) 2.1520 us/op 1.9300 us/op 1.12
transfer serialized Attestation (485 B) 3.2590 us/op 3.1210 us/op 1.04
copy serialized Attestation (485 B) 2.0810 us/op 2.1830 us/op 0.95
transfer serialized AttesterSlashing (33232 B) 3.4530 us/op 3.4350 us/op 1.01
copy serialized AttesterSlashing (33232 B) 5.3570 us/op 5.8800 us/op 0.91
transfer serialized Small SignedBeaconBlock (128000 B) 4.4480 us/op 4.2380 us/op 1.05
copy serialized Small SignedBeaconBlock (128000 B) 14.984 us/op 14.218 us/op 1.05
transfer serialized Avg SignedBeaconBlock (200000 B) 4.9390 us/op 4.4620 us/op 1.11
copy serialized Avg SignedBeaconBlock (200000 B) 19.970 us/op 19.653 us/op 1.02
transfer serialized BlobsSidecar (524380 B) 4.5930 us/op 4.0440 us/op 1.14
copy serialized BlobsSidecar (524380 B) 145.45 us/op 181.91 us/op 0.80
transfer serialized Big SignedBeaconBlock (1000000 B) 4.5660 us/op 4.1010 us/op 1.11
copy serialized Big SignedBeaconBlock (1000000 B) 176.48 us/op 143.99 us/op 1.23
pass gossip attestations to forkchoice per slot 2.6550 ms/op 2.5737 ms/op 1.03
forkChoice updateHead vc 100000 bc 64 eq 0 445.55 us/op 435.76 us/op 1.02
forkChoice updateHead vc 600000 bc 64 eq 0 2.8080 ms/op 3.2160 ms/op 0.87
forkChoice updateHead vc 1000000 bc 64 eq 0 4.7685 ms/op 4.5948 ms/op 1.04
forkChoice updateHead vc 600000 bc 320 eq 0 2.7846 ms/op 2.6820 ms/op 1.04
forkChoice updateHead vc 600000 bc 1200 eq 0 2.7642 ms/op 2.7543 ms/op 1.00
forkChoice updateHead vc 600000 bc 7200 eq 0 3.6614 ms/op 3.5051 ms/op 1.04
forkChoice updateHead vc 600000 bc 64 eq 1000 10.344 ms/op 9.8584 ms/op 1.05
forkChoice updateHead vc 600000 bc 64 eq 10000 9.9455 ms/op 9.5836 ms/op 1.04
forkChoice updateHead vc 600000 bc 64 eq 300000 14.045 ms/op 12.304 ms/op 1.14
computeDeltas 500000 validators 300 proto nodes 3.8636 ms/op 3.9770 ms/op 0.97
computeDeltas 500000 validators 1200 proto nodes 3.9088 ms/op 4.1357 ms/op 0.95
computeDeltas 500000 validators 7200 proto nodes 3.8879 ms/op 4.1694 ms/op 0.93
computeDeltas 750000 validators 300 proto nodes 6.1170 ms/op 6.4130 ms/op 0.95
computeDeltas 750000 validators 1200 proto nodes 6.2802 ms/op 6.7828 ms/op 0.93
computeDeltas 750000 validators 7200 proto nodes 6.0659 ms/op 7.0442 ms/op 0.86
computeDeltas 1400000 validators 300 proto nodes 11.333 ms/op 12.365 ms/op 0.92
computeDeltas 1400000 validators 1200 proto nodes 11.329 ms/op 12.135 ms/op 0.93
computeDeltas 1400000 validators 7200 proto nodes 11.596 ms/op 12.675 ms/op 0.91
computeDeltas 2100000 validators 300 proto nodes 17.199 ms/op 18.995 ms/op 0.91
computeDeltas 2100000 validators 1200 proto nodes 17.322 ms/op 19.278 ms/op 0.90
computeDeltas 2100000 validators 7200 proto nodes 17.147 ms/op 20.171 ms/op 0.85
altair processAttestation - 250000 vs - 7PWei normalcase 1.9207 ms/op 2.6572 ms/op 0.72
altair processAttestation - 250000 vs - 7PWei worstcase 2.7682 ms/op 3.5982 ms/op 0.77
altair processAttestation - setStatus - 1/6 committees join 142.83 us/op 148.40 us/op 0.96
altair processAttestation - setStatus - 1/3 committees join 262.55 us/op 264.17 us/op 0.99
altair processAttestation - setStatus - 1/2 committees join 342.69 us/op 347.52 us/op 0.99
altair processAttestation - setStatus - 2/3 committees join 424.59 us/op 441.57 us/op 0.96
altair processAttestation - setStatus - 4/5 committees join 579.87 us/op 641.50 us/op 0.90
altair processAttestation - setStatus - 100% committees join 700.50 us/op 712.01 us/op 0.98
altair processBlock - 250000 vs - 7PWei normalcase 4.7728 ms/op 6.1310 ms/op 0.78
altair processBlock - 250000 vs - 7PWei normalcase hashState 28.994 ms/op 27.411 ms/op 1.06
altair processBlock - 250000 vs - 7PWei worstcase 41.627 ms/op 40.236 ms/op 1.03
altair processBlock - 250000 vs - 7PWei worstcase hashState 81.267 ms/op 79.787 ms/op 1.02
phase0 processBlock - 250000 vs - 7PWei normalcase 2.0646 ms/op 2.5684 ms/op 0.80
phase0 processBlock - 250000 vs - 7PWei worstcase 26.418 ms/op 26.634 ms/op 0.99
altair processEth1Data - 250000 vs - 7PWei normalcase 333.14 us/op 371.38 us/op 0.90
getExpectedWithdrawals 250000 eb:1,eth1:1,we:0,wn:0,smpl:15 9.1390 us/op 12.490 us/op 0.73
getExpectedWithdrawals 250000 eb:0.95,eth1:0.1,we:0.05,wn:0,smpl:219 75.327 us/op 68.546 us/op 1.10
getExpectedWithdrawals 250000 eb:0.95,eth1:0.3,we:0.05,wn:0,smpl:42 17.281 us/op 12.931 us/op 1.34
getExpectedWithdrawals 250000 eb:0.95,eth1:0.7,we:0.05,wn:0,smpl:18 8.8820 us/op 10.162 us/op 0.87
getExpectedWithdrawals 250000 eb:0.1,eth1:0.1,we:0,wn:0,smpl:1020 210.43 us/op 192.39 us/op 1.09
getExpectedWithdrawals 250000 eb:0.03,eth1:0.03,we:0,wn:0,smpl:11777 2.4367 ms/op 1.4352 ms/op 1.70
getExpectedWithdrawals 250000 eb:0.01,eth1:0.01,we:0,wn:0,smpl:16384 1.7972 ms/op 1.6867 ms/op 1.07
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,smpl:16384 1.5379 ms/op 1.8062 ms/op 0.85
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,nocache,smpl:16384 3.7534 ms/op 3.9340 ms/op 0.95
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,smpl:16384 1.7735 ms/op 1.7368 ms/op 1.02
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,nocache,smpl:16384 4.0972 ms/op 3.9127 ms/op 1.05
Tree 40 250000 create 219.10 ms/op 235.57 ms/op 0.93
Tree 40 250000 get(125000) 145.45 ns/op 151.67 ns/op 0.96
Tree 40 250000 set(125000) 648.58 ns/op 677.42 ns/op 0.96
Tree 40 250000 toArray() 14.455 ms/op 18.762 ms/op 0.77
Tree 40 250000 iterate all - toArray() + loop 14.607 ms/op 21.748 ms/op 0.67
Tree 40 250000 iterate all - get(i) 49.743 ms/op 55.736 ms/op 0.89
Array 250000 create 2.7540 ms/op 3.4751 ms/op 0.79
Array 250000 clone - spread 1.4769 ms/op 1.3732 ms/op 1.08
Array 250000 get(125000) 0.39500 ns/op 0.42100 ns/op 0.94
Array 250000 set(125000) 0.41800 ns/op 0.44100 ns/op 0.95
Array 250000 iterate all - loop 100.56 us/op 95.505 us/op 1.05
phase0 afterProcessEpoch - 250000 vs - 7PWei 50.026 ms/op 52.309 ms/op 0.96
Array.fill - length 1000000 3.6653 ms/op 3.5320 ms/op 1.04
Array push - length 1000000 16.563 ms/op 19.303 ms/op 0.86
Array.get 0.27294 ns/op 0.29651 ns/op 0.92
Uint8Array.get 0.43969 ns/op 0.44486 ns/op 0.99
phase0 beforeProcessEpoch - 250000 vs - 7PWei 16.744 ms/op 18.686 ms/op 0.90
altair processEpoch - mainnet_e81889 271.21 ms/op 310.29 ms/op 0.87
mainnet_e81889 - altair beforeProcessEpoch 17.813 ms/op 19.820 ms/op 0.90
mainnet_e81889 - altair processJustificationAndFinalization 17.374 us/op 15.160 us/op 1.15
mainnet_e81889 - altair processInactivityUpdates 4.8080 ms/op 6.3668 ms/op 0.76
mainnet_e81889 - altair processRewardsAndPenalties 51.461 ms/op 44.582 ms/op 1.15
mainnet_e81889 - altair processRegistryUpdates 3.0110 us/op 3.3810 us/op 0.89
mainnet_e81889 - altair processSlashings 618.00 ns/op 586.00 ns/op 1.05
mainnet_e81889 - altair processEth1DataReset 614.00 ns/op 513.00 ns/op 1.20
mainnet_e81889 - altair processEffectiveBalanceUpdates 1.9665 ms/op 2.6208 ms/op 0.75
mainnet_e81889 - altair processSlashingsReset 5.7510 us/op 3.6540 us/op 1.57
mainnet_e81889 - altair processRandaoMixesReset 6.5560 us/op 4.1510 us/op 1.58
mainnet_e81889 - altair processHistoricalRootsUpdate 833.00 ns/op 819.00 ns/op 1.02
mainnet_e81889 - altair processParticipationFlagUpdates 2.7100 us/op 2.2350 us/op 1.21
mainnet_e81889 - altair processSyncCommitteeUpdates 1.0580 us/op 831.00 ns/op 1.27
mainnet_e81889 - altair afterProcessEpoch 49.779 ms/op 52.838 ms/op 0.94
capella processEpoch - mainnet_e217614 1.0566 s/op 1.2434 s/op 0.85
mainnet_e217614 - capella beforeProcessEpoch 65.812 ms/op 68.286 ms/op 0.96
mainnet_e217614 - capella processJustificationAndFinalization 13.511 us/op 15.586 us/op 0.87
mainnet_e217614 - capella processInactivityUpdates 16.322 ms/op 16.352 ms/op 1.00
mainnet_e217614 - capella processRewardsAndPenalties 251.66 ms/op 250.21 ms/op 1.01
mainnet_e217614 - capella processRegistryUpdates 23.011 us/op 23.629 us/op 0.97
mainnet_e217614 - capella processSlashings 670.00 ns/op 815.00 ns/op 0.82
mainnet_e217614 - capella processEth1DataReset 535.00 ns/op 684.00 ns/op 0.78
mainnet_e217614 - capella processEffectiveBalanceUpdates 10.576 ms/op 9.9569 ms/op 1.06
mainnet_e217614 - capella processSlashingsReset 3.4980 us/op 3.6140 us/op 0.97
mainnet_e217614 - capella processRandaoMixesReset 6.1820 us/op 4.5140 us/op 1.37
mainnet_e217614 - capella processHistoricalRootsUpdate 651.00 ns/op 513.00 ns/op 1.27
mainnet_e217614 - capella processParticipationFlagUpdates 2.7460 us/op 3.0350 us/op 0.90
mainnet_e217614 - capella afterProcessEpoch 121.13 ms/op 123.83 ms/op 0.98
phase0 processEpoch - mainnet_e58758 322.92 ms/op 298.87 ms/op 1.08
mainnet_e58758 - phase0 beforeProcessEpoch 88.454 ms/op 88.067 ms/op 1.00
mainnet_e58758 - phase0 processJustificationAndFinalization 21.182 us/op 18.518 us/op 1.14
mainnet_e58758 - phase0 processRewardsAndPenalties 23.967 ms/op 24.269 ms/op 0.99
mainnet_e58758 - phase0 processRegistryUpdates 12.262 us/op 7.8600 us/op 1.56
mainnet_e58758 - phase0 processSlashings 888.00 ns/op 489.00 ns/op 1.82
mainnet_e58758 - phase0 processEth1DataReset 710.00 ns/op 391.00 ns/op 1.82
mainnet_e58758 - phase0 processEffectiveBalanceUpdates 2.1080 ms/op 2.1255 ms/op 0.99
mainnet_e58758 - phase0 processSlashingsReset 4.4190 us/op 2.9050 us/op 1.52
mainnet_e58758 - phase0 processRandaoMixesReset 5.1100 us/op 4.0870 us/op 1.25
mainnet_e58758 - phase0 processHistoricalRootsUpdate 1.4660 us/op 445.00 ns/op 3.29
mainnet_e58758 - phase0 processParticipationRecordUpdates 7.7790 us/op 3.3190 us/op 2.34
mainnet_e58758 - phase0 afterProcessEpoch 44.462 ms/op 42.862 ms/op 1.04
phase0 processEffectiveBalanceUpdates - 250000 normalcase 1.4092 ms/op 2.5391 ms/op 0.56
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 3.5054 ms/op 2.7678 ms/op 1.27
altair processInactivityUpdates - 250000 normalcase 20.585 ms/op 19.135 ms/op 1.08
altair processInactivityUpdates - 250000 worstcase 17.301 ms/op 21.682 ms/op 0.80
phase0 processRegistryUpdates - 250000 normalcase 11.400 us/op 15.376 us/op 0.74
phase0 processRegistryUpdates - 250000 badcase_full_deposits 382.51 us/op 528.71 us/op 0.72
phase0 processRegistryUpdates - 250000 worstcase 0.5 133.22 ms/op 105.66 ms/op 1.26
altair processRewardsAndPenalties - 250000 normalcase 41.666 ms/op 45.862 ms/op 0.91
altair processRewardsAndPenalties - 250000 worstcase 40.961 ms/op 44.125 ms/op 0.93
phase0 getAttestationDeltas - 250000 normalcase 8.4287 ms/op 7.2317 ms/op 1.17
phase0 getAttestationDeltas - 250000 worstcase 7.8043 ms/op 7.3152 ms/op 1.07
phase0 processSlashings - 250000 worstcase 114.42 us/op 124.37 us/op 0.92
altair processSyncCommitteeUpdates - 250000 121.98 ms/op 117.98 ms/op 1.03
BeaconState.hashTreeRoot - No change 247.00 ns/op 238.00 ns/op 1.04
BeaconState.hashTreeRoot - 1 full validator 87.716 us/op 113.97 us/op 0.77
BeaconState.hashTreeRoot - 32 full validator 1.0901 ms/op 1.1492 ms/op 0.95
BeaconState.hashTreeRoot - 512 full validator 8.8829 ms/op 10.304 ms/op 0.86
BeaconState.hashTreeRoot - 1 validator.effectiveBalance 147.63 us/op 160.30 us/op 0.92
BeaconState.hashTreeRoot - 32 validator.effectiveBalance 1.5904 ms/op 1.9193 ms/op 0.83
BeaconState.hashTreeRoot - 512 validator.effectiveBalance 19.584 ms/op 25.299 ms/op 0.77
BeaconState.hashTreeRoot - 1 balances 86.710 us/op 102.45 us/op 0.85
BeaconState.hashTreeRoot - 32 balances 1.0834 ms/op 1.1519 ms/op 0.94
BeaconState.hashTreeRoot - 512 balances 8.4223 ms/op 9.2979 ms/op 0.91
BeaconState.hashTreeRoot - 250000 balances 177.27 ms/op 197.24 ms/op 0.90
aggregationBits - 2048 els - zipIndexesInBitList 26.642 us/op 23.506 us/op 1.13
byteArrayEquals 32 54.312 ns/op 52.690 ns/op 1.03
Buffer.compare 32 17.837 ns/op 16.816 ns/op 1.06
byteArrayEquals 1024 1.6102 us/op 1.5580 us/op 1.03
Buffer.compare 1024 26.111 ns/op 24.135 ns/op 1.08
byteArrayEquals 16384 25.549 us/op 24.781 us/op 1.03
Buffer.compare 16384 206.42 ns/op 179.73 ns/op 1.15
byteArrayEquals 123687377 190.86 ms/op 189.03 ms/op 1.01
Buffer.compare 123687377 7.0249 ms/op 6.3048 ms/op 1.11
byteArrayEquals 32 - diff last byte 52.655 ns/op 51.991 ns/op 1.01
Buffer.compare 32 - diff last byte 17.071 ns/op 16.926 ns/op 1.01
byteArrayEquals 1024 - diff last byte 1.5799 us/op 1.5665 us/op 1.01
Buffer.compare 1024 - diff last byte 25.583 ns/op 24.711 ns/op 1.04
byteArrayEquals 16384 - diff last byte 25.105 us/op 24.961 us/op 1.01
Buffer.compare 16384 - diff last byte 179.14 ns/op 186.68 ns/op 0.96
byteArrayEquals 123687377 - diff last byte 192.56 ms/op 190.15 ms/op 1.01
Buffer.compare 123687377 - diff last byte 8.3437 ms/op 6.5257 ms/op 1.28
byteArrayEquals 32 - random bytes 5.2860 ns/op 5.1710 ns/op 1.02
Buffer.compare 32 - random bytes 17.822 ns/op 17.133 ns/op 1.04
byteArrayEquals 1024 - random bytes 5.3430 ns/op 5.1340 ns/op 1.04
Buffer.compare 1024 - random bytes 17.734 ns/op 17.115 ns/op 1.04
byteArrayEquals 16384 - random bytes 5.3890 ns/op 5.1590 ns/op 1.04
Buffer.compare 16384 - random bytes 17.736 ns/op 17.336 ns/op 1.02
byteArrayEquals 123687377 - random bytes 6.6300 ns/op 6.4800 ns/op 1.02
Buffer.compare 123687377 - random bytes 19.750 ns/op 18.820 ns/op 1.05
regular array get 100000 times 37.067 us/op 34.012 us/op 1.09
wrappedArray get 100000 times 33.796 us/op 33.353 us/op 1.01
arrayWithProxy get 100000 times 12.647 ms/op 14.060 ms/op 0.90
ssz.Root.equals 46.779 ns/op 46.422 ns/op 1.01
byteArrayEquals 46.965 ns/op 45.620 ns/op 1.03
Buffer.compare 10.855 ns/op 10.501 ns/op 1.03
processSlot - 1 slots 14.578 us/op 13.076 us/op 1.11
processSlot - 32 slots 2.8469 ms/op 3.2326 ms/op 0.88
getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei 37.701 ms/op 34.774 ms/op 1.08
getCommitteeAssignments - req 1 vs - 250000 vc 2.1683 ms/op 2.1769 ms/op 1.00
getCommitteeAssignments - req 100 vs - 250000 vc 4.2499 ms/op 4.2189 ms/op 1.01
getCommitteeAssignments - req 1000 vs - 250000 vc 4.5878 ms/op 4.4972 ms/op 1.02
findModifiedValidators - 10000 modified validators 316.60 ms/op 251.36 ms/op 1.26
findModifiedValidators - 1000 modified validators 194.26 ms/op 191.40 ms/op 1.01
findModifiedValidators - 100 modified validators 193.24 ms/op 162.01 ms/op 1.19
findModifiedValidators - 10 modified validators 183.75 ms/op 165.83 ms/op 1.11
findModifiedValidators - 1 modified validators 170.26 ms/op 195.44 ms/op 0.87
findModifiedValidators - no difference 187.04 ms/op 182.47 ms/op 1.03
compare ViewDUs 3.1450 s/op 3.2968 s/op 0.95
compare each validator Uint8Array 1.8428 s/op 1.3786 s/op 1.34
compare ViewDU to Uint8Array 1.1196 s/op 1.1689 s/op 0.96
migrate state 1000000 validators, 24 modified, 0 new 736.99 ms/op 704.70 ms/op 1.05
migrate state 1000000 validators, 1700 modified, 1000 new 986.94 ms/op 928.15 ms/op 1.06
migrate state 1000000 validators, 3400 modified, 2000 new 1.1245 s/op 1.1914 s/op 0.94
migrate state 1500000 validators, 24 modified, 0 new 786.78 ms/op 742.69 ms/op 1.06
migrate state 1500000 validators, 1700 modified, 1000 new 979.59 ms/op 1.0156 s/op 0.96
migrate state 1500000 validators, 3400 modified, 2000 new 1.1893 s/op 1.2218 s/op 0.97
RootCache.getBlockRootAtSlot - 250000 vs - 7PWei 4.1700 ns/op 4.2300 ns/op 0.99
state getBlockRootAtSlot - 250000 vs - 7PWei 754.17 ns/op 932.99 ns/op 0.81
computeProposers - vc 250000 7.1888 ms/op 7.7325 ms/op 0.93
computeEpochShuffling - vc 250000 40.805 ms/op 41.172 ms/op 0.99
getNextSyncCommittee - vc 250000 124.59 ms/op 133.54 ms/op 0.93
computeSigningRoot for AttestationData 24.019 us/op 28.604 us/op 0.84
hash AttestationData serialized data then Buffer.toString(base64) 1.5141 us/op 1.5111 us/op 1.00
toHexString serialized data 874.70 ns/op 843.05 ns/op 1.04
Buffer.toString(base64) 174.46 ns/op 178.01 ns/op 0.98
nodejs block root to RootHex using toHex 149.28 ns/op 136.03 ns/op 1.10
nodejs block root to RootHex using toRootHex 91.738 ns/op 89.983 ns/op 1.02
browser block root to RootHex using the deprecated toHexString 226.44 ns/op 220.61 ns/op 1.03
browser block root to RootHex using toHex 179.58 ns/op 178.59 ns/op 1.01
browser block root to RootHex using toRootHex 167.73 ns/op 158.92 ns/op 1.06

by benchmarkbot/action

Copy link

codecov bot commented Nov 27, 2024

Codecov Report

Attention: Patch coverage is 25.16854% with 333 lines in your changes missing coverage. Please review.

Project coverage is 48.62%. Comparing base (3dcd668) to head (eb2ee60).
Report is 28 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    40516     +273     
  Branches       2067     2071       +4     
============================================
+ Hits          19626    19700      +74     
- Misses        20579    20778     +199     
  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 <[email protected]>
Co-authored-by: NC <[email protected]>
…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 <[email protected]>
…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 <[email protected]>
@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
* Remove stale todo

* some refactoring

* Readd comment, seems somewhat useful

* Add alias for getSlotFromOffset

* Use parseInt instead of Number

* Update return type
@nflaig nflaig removed the status-do-not-merge Merging this issue will break the build. Do not merge! label Jan 17, 2025
nflaig
nflaig previously approved these changes Jan 17, 2025
…nt (#7368)

* fix: use correct fork constants to limit max request blocks/blobs count

* Add helper to get max request blob sidecars by fork

* Add a more generic getter to fork config

* Formatting

* Revert "Formatting"

This reverts commit 28af071.

* Revert "Add a more generic getter to fork config"

This reverts commit 40b51d2.
@nflaig nflaig merged commit 25e78f0 into unstable Jan 17, 2025
20 checks passed
@nflaig nflaig deleted the devnet-5 branch January 17, 2025 19:54
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.

5 participants