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

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

feat: add devnet-5 support #7246

wants to merge 23 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 Alert ⚠️

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

Benchmark suite Current: 701c723 Previous: 6fb5259 Ratio
getExpectedWithdrawals 250000 eb:1,eth1:1,we:0,wn:0,smpl:15 18.936 us/op 5.7100 us/op 3.32
Full benchmark results
Benchmark suite Current: 701c723 Previous: 6fb5259 Ratio
getPubkeys - index2pubkey - req 1000 vs - 250000 vc 1.6601 ms/op 1.7558 ms/op 0.95
getPubkeys - validatorsArr - req 1000 vs - 250000 vc 48.036 us/op 48.488 us/op 0.99
BLS verify - blst 759.76 us/op 798.75 us/op 0.95
BLS verifyMultipleSignatures 3 - blst 1.1556 ms/op 1.1707 ms/op 0.99
BLS verifyMultipleSignatures 8 - blst 1.6234 ms/op 1.6704 ms/op 0.97
BLS verifyMultipleSignatures 32 - blst 4.7252 ms/op 4.8584 ms/op 0.97
BLS verifyMultipleSignatures 64 - blst 8.7718 ms/op 8.9637 ms/op 0.98
BLS verifyMultipleSignatures 128 - blst 16.715 ms/op 17.411 ms/op 0.96
BLS deserializing 10000 signatures 683.01 ms/op 685.65 ms/op 1.00
BLS deserializing 100000 signatures 6.7873 s/op 6.9563 s/op 0.98
BLS verifyMultipleSignatures - same message - 3 - blst 804.92 us/op 916.86 us/op 0.88
BLS verifyMultipleSignatures - same message - 8 - blst 1.0277 ms/op 999.91 us/op 1.03
BLS verifyMultipleSignatures - same message - 32 - blst 1.6790 ms/op 1.6959 ms/op 0.99
BLS verifyMultipleSignatures - same message - 64 - blst 2.5553 ms/op 2.5733 ms/op 0.99
BLS verifyMultipleSignatures - same message - 128 - blst 4.3311 ms/op 4.3497 ms/op 1.00
BLS aggregatePubkeys 32 - blst 19.802 us/op 20.025 us/op 0.99
BLS aggregatePubkeys 128 - blst 70.001 us/op 71.057 us/op 0.99
notSeenSlots=1 numMissedVotes=1 numBadVotes=10 61.008 ms/op 63.596 ms/op 0.96
notSeenSlots=1 numMissedVotes=0 numBadVotes=4 51.747 ms/op 57.623 ms/op 0.90
notSeenSlots=2 numMissedVotes=1 numBadVotes=10 41.083 ms/op 42.118 ms/op 0.98
getSlashingsAndExits - default max 119.90 us/op 134.20 us/op 0.89
getSlashingsAndExits - 2k 534.68 us/op 391.36 us/op 1.37
proposeBlockBody type=full, size=empty 6.3091 ms/op 5.8430 ms/op 1.08
isKnown best case - 1 super set check 313.00 ns/op 279.00 ns/op 1.12
isKnown normal case - 2 super set checks 286.00 ns/op 268.00 ns/op 1.07
isKnown worse case - 16 super set checks 311.00 ns/op 269.00 ns/op 1.16
InMemoryCheckpointStateCache - add get delete 2.8250 us/op 2.4890 us/op 1.13
validate api signedAggregateAndProof - struct 1.3258 ms/op 1.3818 ms/op 0.96
validate gossip signedAggregateAndProof - struct 1.3208 ms/op 1.3722 ms/op 0.96
batch validate gossip attestation - vc 640000 - chunk 32 129.12 us/op 120.49 us/op 1.07
batch validate gossip attestation - vc 640000 - chunk 64 109.45 us/op 106.23 us/op 1.03
batch validate gossip attestation - vc 640000 - chunk 128 108.45 us/op 101.56 us/op 1.07
batch validate gossip attestation - vc 640000 - chunk 256 107.56 us/op 100.64 us/op 1.07
pickEth1Vote - no votes 1.2181 ms/op 1.0372 ms/op 1.17
pickEth1Vote - max votes 7.1000 ms/op 5.8242 ms/op 1.22
pickEth1Vote - Eth1Data hashTreeRoot value x2048 14.770 ms/op 16.428 ms/op 0.90
pickEth1Vote - Eth1Data hashTreeRoot tree x2048 23.632 ms/op 16.496 ms/op 1.43
pickEth1Vote - Eth1Data fastSerialize value x2048 604.08 us/op 544.96 us/op 1.11
pickEth1Vote - Eth1Data fastSerialize tree x2048 5.0878 ms/op 3.1003 ms/op 1.64
bytes32 toHexString 462.00 ns/op 443.00 ns/op 1.04
bytes32 Buffer.toString(hex) 235.00 ns/op 239.00 ns/op 0.98
bytes32 Buffer.toString(hex) from Uint8Array 386.00 ns/op 384.00 ns/op 1.01
bytes32 Buffer.toString(hex) + 0x 242.00 ns/op 245.00 ns/op 0.99
Object access 1 prop 0.14000 ns/op 0.14900 ns/op 0.94
Map access 1 prop 0.13100 ns/op 0.13100 ns/op 1.00
Object get x1000 6.2850 ns/op 5.8620 ns/op 1.07
Map get x1000 6.7080 ns/op 6.5560 ns/op 1.02
Object set x1000 33.810 ns/op 32.848 ns/op 1.03
Map set x1000 32.343 ns/op 23.751 ns/op 1.36
Return object 10000 times 0.29490 ns/op 0.29420 ns/op 1.00
Throw Error 10000 times 3.4320 us/op 3.3694 us/op 1.02
toHex 170.66 ns/op 154.77 ns/op 1.10
Buffer.from 153.58 ns/op 139.66 ns/op 1.10
shared Buffer 92.132 ns/op 87.210 ns/op 1.06
fastMsgIdFn sha256 / 200 bytes 2.3940 us/op 2.2700 us/op 1.05
fastMsgIdFn h32 xxhash / 200 bytes 277.00 ns/op 238.00 ns/op 1.16
fastMsgIdFn h64 xxhash / 200 bytes 267.00 ns/op 276.00 ns/op 0.97
fastMsgIdFn sha256 / 1000 bytes 7.6800 us/op 7.3360 us/op 1.05
fastMsgIdFn h32 xxhash / 1000 bytes 409.00 ns/op 370.00 ns/op 1.11
fastMsgIdFn h64 xxhash / 1000 bytes 356.00 ns/op 351.00 ns/op 1.01
fastMsgIdFn sha256 / 10000 bytes 68.545 us/op 64.288 us/op 1.07
fastMsgIdFn h32 xxhash / 10000 bytes 1.8780 us/op 1.8860 us/op 1.00
fastMsgIdFn h64 xxhash / 10000 bytes 1.2140 us/op 1.2680 us/op 0.96
send data - 1000 256B messages 12.977 ms/op 12.417 ms/op 1.05
send data - 1000 512B messages 18.050 ms/op 17.879 ms/op 1.01
send data - 1000 1024B messages 28.272 ms/op 25.535 ms/op 1.11
send data - 1000 1200B messages 22.544 ms/op 26.220 ms/op 0.86
send data - 1000 2048B messages 35.162 ms/op 30.674 ms/op 1.15
send data - 1000 4096B messages 35.063 ms/op 31.462 ms/op 1.11
send data - 1000 16384B messages 78.459 ms/op 73.304 ms/op 1.07
send data - 1000 65536B messages 247.33 ms/op 217.40 ms/op 1.14
enrSubnets - fastDeserialize 64 bits 1.1460 us/op 1.0770 us/op 1.06
enrSubnets - ssz BitVector 64 bits 450.00 ns/op 364.00 ns/op 1.24
enrSubnets - fastDeserialize 4 bits 207.00 ns/op 147.00 ns/op 1.41
enrSubnets - ssz BitVector 4 bits 453.00 ns/op 361.00 ns/op 1.25
prioritizePeers score -10:0 att 32-0.1 sync 2-0 193.71 us/op 131.85 us/op 1.47
prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 208.03 us/op 154.31 us/op 1.35
prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 293.05 us/op 224.22 us/op 1.31
prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 506.43 us/op 400.59 us/op 1.26
prioritizePeers score 0:0 att 64-1 sync 4-1 584.11 us/op 502.77 us/op 1.16
array of 16000 items push then shift 1.6654 us/op 1.6113 us/op 1.03
LinkedList of 16000 items push then shift 7.6870 ns/op 7.0350 ns/op 1.09
array of 16000 items push then pop 126.30 ns/op 116.92 ns/op 1.08
LinkedList of 16000 items push then pop 7.7380 ns/op 7.0870 ns/op 1.09
array of 24000 items push then shift 2.4505 us/op 2.4163 us/op 1.01
LinkedList of 24000 items push then shift 8.1700 ns/op 7.0660 ns/op 1.16
array of 24000 items push then pop 174.20 ns/op 130.05 ns/op 1.34
LinkedList of 24000 items push then pop 8.0890 ns/op 6.9410 ns/op 1.17
intersect bitArray bitLen 8 6.4040 ns/op 6.3580 ns/op 1.01
intersect array and set length 8 50.223 ns/op 43.341 ns/op 1.16
intersect bitArray bitLen 128 29.432 ns/op 29.713 ns/op 0.99
intersect array and set length 128 690.06 ns/op 692.12 ns/op 1.00
bitArray.getTrueBitIndexes() bitLen 128 1.5990 us/op 1.3120 us/op 1.22
bitArray.getTrueBitIndexes() bitLen 248 2.8010 us/op 2.2680 us/op 1.24
bitArray.getTrueBitIndexes() bitLen 512 5.8960 us/op 4.4650 us/op 1.32
Buffer.concat 32 items 895.00 ns/op 743.00 ns/op 1.20
Uint8Array.set 32 items 2.0140 us/op 1.4460 us/op 1.39
Buffer.copy 3.3370 us/op 2.3920 us/op 1.40
Uint8Array.set - with subarray 2.9000 us/op 2.2680 us/op 1.28
Uint8Array.set - without subarray 1.8090 us/op 1.4670 us/op 1.23
getUint32 - dataview 266.00 ns/op 227.00 ns/op 1.17
getUint32 - manual 216.00 ns/op 147.00 ns/op 1.47
Set add up to 64 items then delete first 2.2283 us/op 2.1278 us/op 1.05
OrderedSet add up to 64 items then delete first 3.2758 us/op 3.1377 us/op 1.04
Set add up to 64 items then delete last 2.7432 us/op 2.4004 us/op 1.14
OrderedSet add up to 64 items then delete last 3.7596 us/op 3.6470 us/op 1.03
Set add up to 64 items then delete middle 2.7059 us/op 2.3992 us/op 1.13
OrderedSet add up to 64 items then delete middle 5.7830 us/op 5.0317 us/op 1.15
Set add up to 128 items then delete first 5.3565 us/op 4.7407 us/op 1.13
OrderedSet add up to 128 items then delete first 8.0153 us/op 7.2885 us/op 1.10
Set add up to 128 items then delete last 4.9239 us/op 4.8666 us/op 1.01
OrderedSet add up to 128 items then delete last 7.8117 us/op 7.2966 us/op 1.07
Set add up to 128 items then delete middle 4.8513 us/op 4.7028 us/op 1.03
OrderedSet add up to 128 items then delete middle 13.520 us/op 13.063 us/op 1.03
Set add up to 256 items then delete first 10.369 us/op 9.3341 us/op 1.11
OrderedSet add up to 256 items then delete first 15.832 us/op 13.883 us/op 1.14
Set add up to 256 items then delete last 9.5010 us/op 9.4926 us/op 1.00
OrderedSet add up to 256 items then delete last 14.427 us/op 15.467 us/op 0.93
Set add up to 256 items then delete middle 9.4332 us/op 10.032 us/op 0.94
OrderedSet add up to 256 items then delete middle 40.744 us/op 41.588 us/op 0.98
transfer serialized Status (84 B) 2.4470 us/op 2.5820 us/op 0.95
copy serialized Status (84 B) 1.2800 us/op 1.3960 us/op 0.92
transfer serialized SignedVoluntaryExit (112 B) 2.4740 us/op 2.7030 us/op 0.92
copy serialized SignedVoluntaryExit (112 B) 1.2970 us/op 1.4410 us/op 0.90
transfer serialized ProposerSlashing (416 B) 2.6510 us/op 2.8240 us/op 0.94
copy serialized ProposerSlashing (416 B) 2.1290 us/op 1.6250 us/op 1.31
transfer serialized Attestation (485 B) 3.1390 us/op 2.7810 us/op 1.13
copy serialized Attestation (485 B) 2.4440 us/op 1.7230 us/op 1.42
transfer serialized AttesterSlashing (33232 B) 3.5600 us/op 2.8370 us/op 1.25
copy serialized AttesterSlashing (33232 B) 5.5860 us/op 5.2300 us/op 1.07
transfer serialized Small SignedBeaconBlock (128000 B) 3.5320 us/op 3.2740 us/op 1.08
copy serialized Small SignedBeaconBlock (128000 B) 14.766 us/op 15.581 us/op 0.95
transfer serialized Avg SignedBeaconBlock (200000 B) 4.2690 us/op 3.9190 us/op 1.09
copy serialized Avg SignedBeaconBlock (200000 B) 18.751 us/op 20.934 us/op 0.90
transfer serialized BlobsSidecar (524380 B) 3.9560 us/op 4.1470 us/op 0.95
copy serialized BlobsSidecar (524380 B) 140.13 us/op 87.922 us/op 1.59
transfer serialized Big SignedBeaconBlock (1000000 B) 4.2280 us/op 4.1400 us/op 1.02
copy serialized Big SignedBeaconBlock (1000000 B) 145.28 us/op 155.86 us/op 0.93
pass gossip attestations to forkchoice per slot 2.8388 ms/op 2.6829 ms/op 1.06
forkChoice updateHead vc 100000 bc 64 eq 0 464.45 us/op 455.60 us/op 1.02
forkChoice updateHead vc 600000 bc 64 eq 0 3.0431 ms/op 3.5230 ms/op 0.86
forkChoice updateHead vc 1000000 bc 64 eq 0 5.2042 ms/op 4.9269 ms/op 1.06
forkChoice updateHead vc 600000 bc 320 eq 0 4.1164 ms/op 2.7926 ms/op 1.47
forkChoice updateHead vc 600000 bc 1200 eq 0 2.8867 ms/op 2.8580 ms/op 1.01
forkChoice updateHead vc 600000 bc 7200 eq 0 3.0873 ms/op 3.7517 ms/op 0.82
forkChoice updateHead vc 600000 bc 64 eq 1000 10.723 ms/op 10.627 ms/op 1.01
forkChoice updateHead vc 600000 bc 64 eq 10000 10.692 ms/op 10.736 ms/op 1.00
forkChoice updateHead vc 600000 bc 64 eq 300000 13.958 ms/op 14.169 ms/op 0.99
computeDeltas 500000 validators 300 proto nodes 4.0525 ms/op 4.2186 ms/op 0.96
computeDeltas 500000 validators 1200 proto nodes 4.1863 ms/op 4.1095 ms/op 1.02
computeDeltas 500000 validators 7200 proto nodes 4.9175 ms/op 4.1234 ms/op 1.19
computeDeltas 750000 validators 300 proto nodes 7.1024 ms/op 6.0822 ms/op 1.17
computeDeltas 750000 validators 1200 proto nodes 7.0403 ms/op 6.0632 ms/op 1.16
computeDeltas 750000 validators 7200 proto nodes 6.0411 ms/op 6.0741 ms/op 0.99
computeDeltas 1400000 validators 300 proto nodes 11.327 ms/op 11.454 ms/op 0.99
computeDeltas 1400000 validators 1200 proto nodes 11.205 ms/op 11.401 ms/op 0.98
computeDeltas 1400000 validators 7200 proto nodes 11.279 ms/op 11.575 ms/op 0.97
computeDeltas 2100000 validators 300 proto nodes 17.494 ms/op 17.104 ms/op 1.02
computeDeltas 2100000 validators 1200 proto nodes 17.594 ms/op 17.128 ms/op 1.03
computeDeltas 2100000 validators 7200 proto nodes 18.142 ms/op 17.014 ms/op 1.07
altair processAttestation - 250000 vs - 7PWei normalcase 5.0962 ms/op 2.2064 ms/op 2.31
altair processAttestation - 250000 vs - 7PWei worstcase 5.4923 ms/op 2.9692 ms/op 1.85
altair processAttestation - setStatus - 1/6 committees join 226.42 us/op 136.60 us/op 1.66
altair processAttestation - setStatus - 1/3 committees join 507.41 us/op 251.06 us/op 2.02
altair processAttestation - setStatus - 1/2 committees join 683.84 us/op 352.96 us/op 1.94
altair processAttestation - setStatus - 2/3 committees join 582.90 us/op 448.35 us/op 1.30
altair processAttestation - setStatus - 4/5 committees join 804.74 us/op 606.66 us/op 1.33
altair processAttestation - setStatus - 100% committees join 1.1138 ms/op 730.89 us/op 1.52
altair processBlock - 250000 vs - 7PWei normalcase 10.054 ms/op 5.7041 ms/op 1.76
altair processBlock - 250000 vs - 7PWei normalcase hashState 43.422 ms/op 22.714 ms/op 1.91
altair processBlock - 250000 vs - 7PWei worstcase 52.390 ms/op 33.069 ms/op 1.58
altair processBlock - 250000 vs - 7PWei worstcase hashState 137.19 ms/op 73.108 ms/op 1.88
phase0 processBlock - 250000 vs - 7PWei normalcase 4.3003 ms/op 1.7866 ms/op 2.41
phase0 processBlock - 250000 vs - 7PWei worstcase 40.377 ms/op 20.833 ms/op 1.94
altair processEth1Data - 250000 vs - 7PWei normalcase 789.93 us/op 350.35 us/op 2.25
getExpectedWithdrawals 250000 eb:1,eth1:1,we:0,wn:0,smpl:15 18.936 us/op 5.7100 us/op 3.32
getExpectedWithdrawals 250000 eb:0.95,eth1:0.1,we:0.05,wn:0,smpl:219 112.73 us/op 53.235 us/op 2.12
getExpectedWithdrawals 250000 eb:0.95,eth1:0.3,we:0.05,wn:0,smpl:42 33.017 us/op 11.978 us/op 2.76
getExpectedWithdrawals 250000 eb:0.95,eth1:0.7,we:0.05,wn:0,smpl:18 18.287 us/op 7.5000 us/op 2.44
getExpectedWithdrawals 250000 eb:0.1,eth1:0.1,we:0,wn:0,smpl:1020 278.49 us/op 125.58 us/op 2.22
getExpectedWithdrawals 250000 eb:0.03,eth1:0.03,we:0,wn:0,smpl:11777 3.0140 ms/op 1.2562 ms/op 2.40
getExpectedWithdrawals 250000 eb:0.01,eth1:0.01,we:0,wn:0,smpl:16384 3.5327 ms/op 1.4382 ms/op 2.46
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,smpl:16384 3.3889 ms/op 1.4771 ms/op 2.29
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,nocache,smpl:16384 7.1716 ms/op 3.8955 ms/op 1.84
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,smpl:16384 2.3009 ms/op 1.4973 ms/op 1.54
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,nocache,smpl:16384 4.7214 ms/op 4.2588 ms/op 1.11
Tree 40 250000 create 249.61 ms/op 210.29 ms/op 1.19
Tree 40 250000 get(125000) 162.86 ns/op 143.29 ns/op 1.14
Tree 40 250000 set(125000) 784.69 ns/op 714.95 ns/op 1.10
Tree 40 250000 toArray() 22.850 ms/op 18.693 ms/op 1.22
Tree 40 250000 iterate all - toArray() + loop 26.389 ms/op 19.722 ms/op 1.34
Tree 40 250000 iterate all - get(i) 58.587 ms/op 58.025 ms/op 1.01
Array 250000 create 3.6219 ms/op 2.9723 ms/op 1.22
Array 250000 clone - spread 1.5491 ms/op 1.5293 ms/op 1.01
Array 250000 get(125000) 0.43500 ns/op 0.42200 ns/op 1.03
Array 250000 set(125000) 0.46300 ns/op 0.44700 ns/op 1.04
Array 250000 iterate all - loop 105.18 us/op 83.954 us/op 1.25
phase0 afterProcessEpoch - 250000 vs - 7PWei 56.416 ms/op 53.362 ms/op 1.06
Array.fill - length 1000000 5.3889 ms/op 3.7870 ms/op 1.42
Array push - length 1000000 24.580 ms/op 17.510 ms/op 1.40
Array.get 0.29300 ns/op 0.27102 ns/op 1.08
Uint8Array.get 0.44008 ns/op 0.43483 ns/op 1.01
phase0 beforeProcessEpoch - 250000 vs - 7PWei 17.781 ms/op 15.742 ms/op 1.13
altair processEpoch - mainnet_e81889 293.39 ms/op 268.52 ms/op 1.09
mainnet_e81889 - altair beforeProcessEpoch 20.932 ms/op 17.940 ms/op 1.17
mainnet_e81889 - altair processJustificationAndFinalization 14.147 us/op 14.316 us/op 0.99
mainnet_e81889 - altair processInactivityUpdates 7.7586 ms/op 4.8943 ms/op 1.59
mainnet_e81889 - altair processRewardsAndPenalties 46.775 ms/op 42.143 ms/op 1.11
mainnet_e81889 - altair processRegistryUpdates 2.3010 us/op 2.3770 us/op 0.97
mainnet_e81889 - altair processSlashings 494.00 ns/op 405.00 ns/op 1.22
mainnet_e81889 - altair processEth1DataReset 471.00 ns/op 482.00 ns/op 0.98
mainnet_e81889 - altair processEffectiveBalanceUpdates 1.5980 ms/op 1.3734 ms/op 1.16
mainnet_e81889 - altair processSlashingsReset 4.1250 us/op 3.2640 us/op 1.26
mainnet_e81889 - altair processRandaoMixesReset 5.3420 us/op 4.1680 us/op 1.28
mainnet_e81889 - altair processHistoricalRootsUpdate 895.00 ns/op 838.00 ns/op 1.07
mainnet_e81889 - altair processParticipationFlagUpdates 2.3880 us/op 2.1060 us/op 1.13
mainnet_e81889 - altair processSyncCommitteeUpdates 780.00 ns/op 617.00 ns/op 1.26
mainnet_e81889 - altair afterProcessEpoch 52.142 ms/op 50.238 ms/op 1.04
capella processEpoch - mainnet_e217614 1.1181 s/op 1.0428 s/op 1.07
mainnet_e217614 - capella beforeProcessEpoch 84.904 ms/op 68.064 ms/op 1.25
mainnet_e217614 - capella processJustificationAndFinalization 15.242 us/op 12.050 us/op 1.26
mainnet_e217614 - capella processInactivityUpdates 17.576 ms/op 16.587 ms/op 1.06
mainnet_e217614 - capella processRewardsAndPenalties 221.66 ms/op 212.93 ms/op 1.04
mainnet_e217614 - capella processRegistryUpdates 17.972 us/op 16.404 us/op 1.10
mainnet_e217614 - capella processSlashings 560.00 ns/op 525.00 ns/op 1.07
mainnet_e217614 - capella processEth1DataReset 484.00 ns/op 500.00 ns/op 0.97
mainnet_e217614 - capella processEffectiveBalanceUpdates 14.241 ms/op 11.259 ms/op 1.26
mainnet_e217614 - capella processSlashingsReset 5.8900 us/op 3.2340 us/op 1.82
mainnet_e217614 - capella processRandaoMixesReset 4.2840 us/op 4.8570 us/op 0.88
mainnet_e217614 - capella processHistoricalRootsUpdate 544.00 ns/op 539.00 ns/op 1.01
mainnet_e217614 - capella processParticipationFlagUpdates 2.0300 us/op 1.5090 us/op 1.35
mainnet_e217614 - capella afterProcessEpoch 122.03 ms/op 122.66 ms/op 0.99
phase0 processEpoch - mainnet_e58758 326.07 ms/op 321.99 ms/op 1.01
mainnet_e58758 - phase0 beforeProcessEpoch 72.639 ms/op 69.195 ms/op 1.05
mainnet_e58758 - phase0 processJustificationAndFinalization 13.955 us/op 12.358 us/op 1.13
mainnet_e58758 - phase0 processRewardsAndPenalties 26.164 ms/op 29.679 ms/op 0.88
mainnet_e58758 - phase0 processRegistryUpdates 11.004 us/op 8.1230 us/op 1.35
mainnet_e58758 - phase0 processSlashings 506.00 ns/op 521.00 ns/op 0.97
mainnet_e58758 - phase0 processEth1DataReset 409.00 ns/op 413.00 ns/op 0.99
mainnet_e58758 - phase0 processEffectiveBalanceUpdates 1.1149 ms/op 1.1405 ms/op 0.98
mainnet_e58758 - phase0 processSlashingsReset 2.4060 us/op 2.2380 us/op 1.08
mainnet_e58758 - phase0 processRandaoMixesReset 4.8950 us/op 4.2270 us/op 1.16
mainnet_e58758 - phase0 processHistoricalRootsUpdate 473.00 ns/op 417.00 ns/op 1.13
mainnet_e58758 - phase0 processParticipationRecordUpdates 3.8450 us/op 3.6480 us/op 1.05
mainnet_e58758 - phase0 afterProcessEpoch 41.453 ms/op 42.659 ms/op 0.97
phase0 processEffectiveBalanceUpdates - 250000 normalcase 1.3221 ms/op 1.3205 ms/op 1.00
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 1.9963 ms/op 1.8169 ms/op 1.10
altair processInactivityUpdates - 250000 normalcase 13.890 ms/op 14.734 ms/op 0.94
altair processInactivityUpdates - 250000 worstcase 15.059 ms/op 15.205 ms/op 0.99
phase0 processRegistryUpdates - 250000 normalcase 8.7370 us/op 9.0000 us/op 0.97
phase0 processRegistryUpdates - 250000 badcase_full_deposits 308.31 us/op 274.25 us/op 1.12
phase0 processRegistryUpdates - 250000 worstcase 0.5 121.20 ms/op 102.01 ms/op 1.19
altair processRewardsAndPenalties - 250000 normalcase 37.626 ms/op 37.954 ms/op 0.99
altair processRewardsAndPenalties - 250000 worstcase 37.648 ms/op 38.391 ms/op 0.98
phase0 getAttestationDeltas - 250000 normalcase 7.3528 ms/op 7.3314 ms/op 1.00
phase0 getAttestationDeltas - 250000 worstcase 7.3265 ms/op 6.9921 ms/op 1.05
phase0 processSlashings - 250000 worstcase 84.293 us/op 76.355 us/op 1.10
altair processSyncCommitteeUpdates - 250000 123.94 ms/op 116.53 ms/op 1.06
BeaconState.hashTreeRoot - No change 356.00 ns/op 239.00 ns/op 1.49
BeaconState.hashTreeRoot - 1 full validator 123.74 us/op 103.12 us/op 1.20
BeaconState.hashTreeRoot - 32 full validator 1.1102 ms/op 1.3325 ms/op 0.83
BeaconState.hashTreeRoot - 512 full validator 10.256 ms/op 11.277 ms/op 0.91
BeaconState.hashTreeRoot - 1 validator.effectiveBalance 148.06 us/op 124.88 us/op 1.19
BeaconState.hashTreeRoot - 32 validator.effectiveBalance 1.4680 ms/op 1.4028 ms/op 1.05
BeaconState.hashTreeRoot - 512 validator.effectiveBalance 21.970 ms/op 20.090 ms/op 1.09
BeaconState.hashTreeRoot - 1 balances 93.710 us/op 74.347 us/op 1.26
BeaconState.hashTreeRoot - 32 balances 843.37 us/op 1.2161 ms/op 0.69
BeaconState.hashTreeRoot - 512 balances 7.4005 ms/op 8.5238 ms/op 0.87
BeaconState.hashTreeRoot - 250000 balances 160.40 ms/op 178.15 ms/op 0.90
aggregationBits - 2048 els - zipIndexesInBitList 25.248 us/op 22.930 us/op 1.10
byteArrayEquals 32 53.138 ns/op 53.097 ns/op 1.00
Buffer.compare 32 17.146 ns/op 16.979 ns/op 1.01
byteArrayEquals 1024 1.5447 us/op 1.5677 us/op 0.99
Buffer.compare 1024 24.166 ns/op 25.089 ns/op 0.96
byteArrayEquals 16384 24.190 us/op 24.765 us/op 0.98
Buffer.compare 16384 189.72 ns/op 189.04 ns/op 1.00
byteArrayEquals 123687377 187.77 ms/op 186.88 ms/op 1.00
Buffer.compare 123687377 6.6620 ms/op 6.0320 ms/op 1.10
byteArrayEquals 32 - diff last byte 51.899 ns/op 51.702 ns/op 1.00
Buffer.compare 32 - diff last byte 16.945 ns/op 16.800 ns/op 1.01
byteArrayEquals 1024 - diff last byte 1.5641 us/op 1.5591 us/op 1.00
Buffer.compare 1024 - diff last byte 25.703 ns/op 24.748 ns/op 1.04
byteArrayEquals 16384 - diff last byte 24.986 us/op 24.811 us/op 1.01
Buffer.compare 16384 - diff last byte 173.22 ns/op 200.52 ns/op 0.86
byteArrayEquals 123687377 - diff last byte 188.70 ms/op 189.69 ms/op 0.99
Buffer.compare 123687377 - diff last byte 7.7499 ms/op 6.0850 ms/op 1.27
byteArrayEquals 32 - random bytes 5.1650 ns/op 5.0690 ns/op 1.02
Buffer.compare 32 - random bytes 17.222 ns/op 16.894 ns/op 1.02
byteArrayEquals 1024 - random bytes 5.1640 ns/op 5.0730 ns/op 1.02
Buffer.compare 1024 - random bytes 17.261 ns/op 16.908 ns/op 1.02
byteArrayEquals 16384 - random bytes 5.1620 ns/op 5.0720 ns/op 1.02
Buffer.compare 16384 - random bytes 17.266 ns/op 16.882 ns/op 1.02
byteArrayEquals 123687377 - random bytes 6.5100 ns/op 6.2700 ns/op 1.04
Buffer.compare 123687377 - random bytes 18.830 ns/op 18.200 ns/op 1.03
regular array get 100000 times 41.520 us/op 32.763 us/op 1.27
wrappedArray get 100000 times 37.224 us/op 32.457 us/op 1.15
arrayWithProxy get 100000 times 13.172 ms/op 12.839 ms/op 1.03
ssz.Root.equals 45.983 ns/op 45.466 ns/op 1.01
byteArrayEquals 45.230 ns/op 44.912 ns/op 1.01
Buffer.compare 10.675 ns/op 10.238 ns/op 1.04
processSlot - 1 slots 14.506 us/op 12.434 us/op 1.17
processSlot - 32 slots 3.1423 ms/op 2.9540 ms/op 1.06
getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei 36.999 ms/op 37.709 ms/op 0.98
getCommitteeAssignments - req 1 vs - 250000 vc 2.0928 ms/op 2.1103 ms/op 0.99
getCommitteeAssignments - req 100 vs - 250000 vc 4.0290 ms/op 4.0741 ms/op 0.99
getCommitteeAssignments - req 1000 vs - 250000 vc 4.3229 ms/op 4.4982 ms/op 0.96
findModifiedValidators - 10000 modified validators 273.13 ms/op 241.16 ms/op 1.13
findModifiedValidators - 1000 modified validators 188.49 ms/op 180.40 ms/op 1.04
findModifiedValidators - 100 modified validators 196.45 ms/op 177.31 ms/op 1.11
findModifiedValidators - 10 modified validators 221.94 ms/op 162.32 ms/op 1.37
findModifiedValidators - 1 modified validators 181.45 ms/op 178.32 ms/op 1.02
findModifiedValidators - no difference 172.10 ms/op 165.08 ms/op 1.04
compare ViewDUs 3.1504 s/op 2.9849 s/op 1.06
compare each validator Uint8Array 1.2423 s/op 1.6662 s/op 0.75
compare ViewDU to Uint8Array 1.0481 s/op 911.90 ms/op 1.15
migrate state 1000000 validators, 24 modified, 0 new 699.84 ms/op 729.68 ms/op 0.96
migrate state 1000000 validators, 1700 modified, 1000 new 1.0347 s/op 986.01 ms/op 1.05
migrate state 1000000 validators, 3400 modified, 2000 new 1.2216 s/op 1.1609 s/op 1.05
migrate state 1500000 validators, 24 modified, 0 new 789.57 ms/op 760.84 ms/op 1.04
migrate state 1500000 validators, 1700 modified, 1000 new 945.93 ms/op 979.83 ms/op 0.97
migrate state 1500000 validators, 3400 modified, 2000 new 1.1379 s/op 1.1805 s/op 0.96
RootCache.getBlockRootAtSlot - 250000 vs - 7PWei 4.4600 ns/op 4.3000 ns/op 1.04
state getBlockRootAtSlot - 250000 vs - 7PWei 652.88 ns/op 653.57 ns/op 1.00
computeProposers - vc 250000 7.3936 ms/op 6.8138 ms/op 1.09
computeEpochShuffling - vc 250000 41.298 ms/op 40.920 ms/op 1.01
getNextSyncCommittee - vc 250000 119.12 ms/op 120.12 ms/op 0.99
computeSigningRoot for AttestationData 23.854 us/op 20.359 us/op 1.17
hash AttestationData serialized data then Buffer.toString(base64) 1.5500 us/op 1.5839 us/op 0.98
toHexString serialized data 897.39 ns/op 855.78 ns/op 1.05
Buffer.toString(base64) 172.87 ns/op 181.46 ns/op 0.95
nodejs block root to RootHex using toHex 154.40 ns/op 156.59 ns/op 0.99
nodejs block root to RootHex using toRootHex 91.008 ns/op 89.723 ns/op 1.01
browser block root to RootHex using the deprecated toHexString 228.61 ns/op 221.04 ns/op 1.03
browser block root to RootHex using toHex 182.56 ns/op 174.91 ns/op 1.04
browser block root to RootHex using toRootHex 163.32 ns/op 156.21 ns/op 1.05

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 (3ea46e2).
Report is 1 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 <[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

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.

4 participants