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: asyncAggregateWithRandomness (#7204) #7435

Merged
merged 1 commit into from
Feb 7, 2025
Merged

Conversation

wemeetagain
Copy link
Member

* chore: update blst to 2.2.0

* feat: make aggregateWithRandomness async

* feat: update metrics and remove stale comment

* fix: metric collection value

* feat: remove duplicate/unused metrics from asyncAggregateWithRandomness
@wemeetagain wemeetagain requested a review from a team as a code owner February 7, 2025 17:23
Copy link

codecov bot commented Feb 7, 2025

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 50.26%. Comparing base (6b20ef5) to head (a263796).
Report is 3 commits behind head on unstable.

Additional details and impacted files
@@            Coverage Diff            @@
##           unstable    #7435   +/-   ##
=========================================
  Coverage     50.25%   50.26%           
=========================================
  Files           602      602           
  Lines         40374    40369    -5     
  Branches       2205     2206    +1     
=========================================
+ Hits          20291    20292    +1     
+ Misses        20043    20037    -6     
  Partials         40       40           

Copy link
Contributor

github-actions bot commented Feb 7, 2025

Performance Report

✔️ no performance regression detected

Full benchmark results
Benchmark suite Current: 93ab8fd Previous: 6b20ef5 Ratio
getPubkeys - index2pubkey - req 1000 vs - 250000 vc 842.40 us/op 1.1193 ms/op 0.75
getPubkeys - validatorsArr - req 1000 vs - 250000 vc 32.971 us/op 44.381 us/op 0.74
BLS verify - blst 950.98 us/op 1.1032 ms/op 0.86
BLS verifyMultipleSignatures 3 - blst 1.3683 ms/op 1.7066 ms/op 0.80
BLS verifyMultipleSignatures 8 - blst 2.1861 ms/op 2.1301 ms/op 1.03
BLS verifyMultipleSignatures 32 - blst 4.6746 ms/op 7.2117 ms/op 0.65
BLS verifyMultipleSignatures 64 - blst 8.6782 ms/op 10.040 ms/op 0.86
BLS verifyMultipleSignatures 128 - blst 16.210 ms/op 20.704 ms/op 0.78
BLS deserializing 10000 signatures 634.57 ms/op 777.90 ms/op 0.82
BLS deserializing 100000 signatures 6.2921 s/op 7.4589 s/op 0.84
BLS verifyMultipleSignatures - same message - 3 - blst 971.21 us/op 947.32 us/op 1.03
BLS verifyMultipleSignatures - same message - 8 - blst 1.1011 ms/op 1.0696 ms/op 1.03
BLS verifyMultipleSignatures - same message - 32 - blst 1.6983 ms/op 1.7518 ms/op 0.97
BLS verifyMultipleSignatures - same message - 64 - blst 2.5365 ms/op 2.6847 ms/op 0.94
BLS verifyMultipleSignatures - same message - 128 - blst 4.2137 ms/op 4.5174 ms/op 0.93
BLS aggregatePubkeys 32 - blst 17.355 us/op 20.510 us/op 0.85
BLS aggregatePubkeys 128 - blst 61.974 us/op 72.828 us/op 0.85
notSeenSlots=1 numMissedVotes=1 numBadVotes=10 49.505 ms/op 54.865 ms/op 0.90
notSeenSlots=1 numMissedVotes=0 numBadVotes=4 43.953 ms/op 52.942 ms/op 0.83
notSeenSlots=2 numMissedVotes=1 numBadVotes=10 34.111 ms/op 45.460 ms/op 0.75
getSlashingsAndExits - default max 59.818 us/op 90.749 us/op 0.66
getSlashingsAndExits - 2k 404.40 us/op 388.69 us/op 1.04
proposeBlockBody type=full, size=empty 6.0472 ms/op 6.5292 ms/op 0.93
isKnown best case - 1 super set check 430.00 ns/op 211.00 ns/op 2.04
isKnown normal case - 2 super set checks 428.00 ns/op 209.00 ns/op 2.05
isKnown worse case - 16 super set checks 426.00 ns/op 220.00 ns/op 1.94
InMemoryCheckpointStateCache - add get delete 2.9190 us/op 2.6770 us/op 1.09
validate api signedAggregateAndProof - struct 1.5067 ms/op 1.5274 ms/op 0.99
validate gossip signedAggregateAndProof - struct 1.6350 ms/op 1.5549 ms/op 1.05
batch validate gossip attestation - vc 640000 - chunk 32 117.86 us/op 146.36 us/op 0.81
batch validate gossip attestation - vc 640000 - chunk 64 99.336 us/op 124.28 us/op 0.80
batch validate gossip attestation - vc 640000 - chunk 128 90.517 us/op 115.77 us/op 0.78
batch validate gossip attestation - vc 640000 - chunk 256 99.370 us/op 117.39 us/op 0.85
pickEth1Vote - no votes 754.00 us/op 1.1143 ms/op 0.68
pickEth1Vote - max votes 5.9874 ms/op 10.679 ms/op 0.56
pickEth1Vote - Eth1Data hashTreeRoot value x2048 12.040 ms/op 16.373 ms/op 0.74
pickEth1Vote - Eth1Data hashTreeRoot tree x2048 13.523 ms/op 24.153 ms/op 0.56
pickEth1Vote - Eth1Data fastSerialize value x2048 361.14 us/op 484.15 us/op 0.75
pickEth1Vote - Eth1Data fastSerialize tree x2048 2.1518 ms/op 2.7612 ms/op 0.78
bytes32 toHexString 537.00 ns/op 375.00 ns/op 1.43
bytes32 Buffer.toString(hex) 433.00 ns/op 245.00 ns/op 1.77
bytes32 Buffer.toString(hex) from Uint8Array 516.00 ns/op 372.00 ns/op 1.39
bytes32 Buffer.toString(hex) + 0x 433.00 ns/op 268.00 ns/op 1.62
Object access 1 prop 0.32500 ns/op 0.12000 ns/op 2.71
Map access 1 prop 0.33600 ns/op 0.12600 ns/op 2.67
Object get x1000 5.0110 ns/op 6.4860 ns/op 0.77
Map get x1000 5.9440 ns/op 6.7150 ns/op 0.89
Object set x1000 18.597 ns/op 33.598 ns/op 0.55
Map set x1000 17.135 ns/op 21.812 ns/op 0.79
Return object 10000 times 0.29540 ns/op 0.31740 ns/op 0.93
Throw Error 10000 times 3.5943 us/op 4.9739 us/op 0.72
toHex 100.46 ns/op 172.24 ns/op 0.58
Buffer.from 94.377 ns/op 152.78 ns/op 0.62
shared Buffer 64.509 ns/op 97.477 ns/op 0.66
fastMsgIdFn sha256 / 200 bytes 1.9030 us/op 2.4060 us/op 0.79
fastMsgIdFn h32 xxhash / 200 bytes 407.00 ns/op 237.00 ns/op 1.72
fastMsgIdFn h64 xxhash / 200 bytes 447.00 ns/op 302.00 ns/op 1.48
fastMsgIdFn sha256 / 1000 bytes 5.7720 us/op 8.0950 us/op 0.71
fastMsgIdFn h32 xxhash / 1000 bytes 513.00 ns/op 367.00 ns/op 1.40
fastMsgIdFn h64 xxhash / 1000 bytes 510.00 ns/op 357.00 ns/op 1.43
fastMsgIdFn sha256 / 10000 bytes 48.862 us/op 70.417 us/op 0.69
fastMsgIdFn h32 xxhash / 10000 bytes 1.9020 us/op 2.0000 us/op 0.95
fastMsgIdFn h64 xxhash / 10000 bytes 1.3430 us/op 1.3300 us/op 1.01
send data - 1000 256B messages 9.6421 ms/op 14.686 ms/op 0.66
send data - 1000 512B messages 15.221 ms/op 19.746 ms/op 0.77
send data - 1000 1024B messages 20.180 ms/op 31.619 ms/op 0.64
send data - 1000 1200B messages 13.464 ms/op 26.669 ms/op 0.50
send data - 1000 2048B messages 19.165 ms/op 26.046 ms/op 0.74
send data - 1000 4096B messages 21.005 ms/op 35.477 ms/op 0.59
send data - 1000 16384B messages 43.877 ms/op 65.674 ms/op 0.67
send data - 1000 65536B messages 227.27 ms/op 221.78 ms/op 1.02
enrSubnets - fastDeserialize 64 bits 959.00 ns/op 952.00 ns/op 1.01
enrSubnets - ssz BitVector 64 bits 518.00 ns/op 337.00 ns/op 1.54
enrSubnets - fastDeserialize 4 bits 336.00 ns/op 136.00 ns/op 2.47
enrSubnets - ssz BitVector 4 bits 515.00 ns/op 349.00 ns/op 1.48
prioritizePeers score -10:0 att 32-0.1 sync 2-0 98.478 us/op 121.81 us/op 0.81
prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 126.77 us/op 142.58 us/op 0.89
prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 181.50 us/op 205.42 us/op 0.88
prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 339.81 us/op 392.25 us/op 0.87
prioritizePeers score 0:0 att 64-1 sync 4-1 399.76 us/op 467.43 us/op 0.86
array of 16000 items push then shift 1.2452 us/op 1.6288 us/op 0.76
LinkedList of 16000 items push then shift 7.7150 ns/op 7.1380 ns/op 1.08
array of 16000 items push then pop 75.364 ns/op 77.223 ns/op 0.98
LinkedList of 16000 items push then pop 6.4200 ns/op 6.9840 ns/op 0.92
array of 24000 items push then shift 1.8420 us/op 2.4279 us/op 0.76
LinkedList of 24000 items push then shift 7.0340 ns/op 7.2680 ns/op 0.97
array of 24000 items push then pop 102.63 ns/op 109.17 ns/op 0.94
LinkedList of 24000 items push then pop 6.2020 ns/op 7.0920 ns/op 0.87
intersect bitArray bitLen 8 5.6350 ns/op 6.6570 ns/op 0.85
intersect array and set length 8 32.314 ns/op 39.456 ns/op 0.82
intersect bitArray bitLen 128 26.774 ns/op 31.401 ns/op 0.85
intersect array and set length 128 538.34 ns/op 639.11 ns/op 0.84
bitArray.getTrueBitIndexes() bitLen 128 1.2810 us/op 1.0560 us/op 1.21
bitArray.getTrueBitIndexes() bitLen 248 1.8490 us/op 1.8480 us/op 1.00
bitArray.getTrueBitIndexes() bitLen 512 3.4780 us/op 3.7250 us/op 0.93
Buffer.concat 32 items 750.00 ns/op 776.00 ns/op 0.97
Uint8Array.set 32 items 1.4780 us/op 1.0420 us/op 1.42
Buffer.copy 2.1350 us/op 2.1800 us/op 0.98
Uint8Array.set - with subarray 1.7540 us/op 1.6740 us/op 1.05
Uint8Array.set - without subarray 1.1980 us/op 985.00 ns/op 1.22
getUint32 - dataview 384.00 ns/op 201.00 ns/op 1.91
getUint32 - manual 314.00 ns/op 124.00 ns/op 2.53
Set add up to 64 items then delete first 1.7673 us/op 2.2737 us/op 0.78
OrderedSet add up to 64 items then delete first 2.7428 us/op 3.3744 us/op 0.81
Set add up to 64 items then delete last 2.0294 us/op 2.5015 us/op 0.81
OrderedSet add up to 64 items then delete last 3.4466 us/op 3.9413 us/op 0.87
Set add up to 64 items then delete middle 2.1478 us/op 2.5411 us/op 0.85
OrderedSet add up to 64 items then delete middle 4.9487 us/op 5.3414 us/op 0.93
Set add up to 128 items then delete first 4.8900 us/op 5.0173 us/op 0.97
OrderedSet add up to 128 items then delete first 6.6003 us/op 7.8060 us/op 0.85
Set add up to 128 items then delete last 4.2682 us/op 5.1580 us/op 0.83
OrderedSet add up to 128 items then delete last 8.5268 us/op 7.8659 us/op 1.08
Set add up to 128 items then delete middle 4.8144 us/op 5.1565 us/op 0.93
OrderedSet add up to 128 items then delete middle 13.847 us/op 16.680 us/op 0.83
Set add up to 256 items then delete first 10.336 us/op 10.161 us/op 1.02
OrderedSet add up to 256 items then delete first 14.504 us/op 16.428 us/op 0.88
Set add up to 256 items then delete last 7.9948 us/op 11.439 us/op 0.70
OrderedSet add up to 256 items then delete last 13.533 us/op 16.104 us/op 0.84
Set add up to 256 items then delete middle 8.0772 us/op 12.796 us/op 0.63
OrderedSet add up to 256 items then delete middle 36.613 us/op 41.959 us/op 0.87
transfer serialized Status (84 B) 2.1510 us/op 2.2800 us/op 0.94
copy serialized Status (84 B) 1.3140 us/op 1.2560 us/op 1.05
transfer serialized SignedVoluntaryExit (112 B) 2.0670 us/op 2.3210 us/op 0.89
copy serialized SignedVoluntaryExit (112 B) 1.3110 us/op 1.7040 us/op 0.77
transfer serialized ProposerSlashing (416 B) 2.2240 us/op 2.3510 us/op 0.95
copy serialized ProposerSlashing (416 B) 1.3720 us/op 1.3090 us/op 1.05
transfer serialized Attestation (485 B) 2.2030 us/op 2.3670 us/op 0.93
copy serialized Attestation (485 B) 1.4100 us/op 1.4380 us/op 0.98
transfer serialized AttesterSlashing (33232 B) 2.7400 us/op 2.6280 us/op 1.04
copy serialized AttesterSlashing (33232 B) 3.5340 us/op 3.5930 us/op 0.98
transfer serialized Small SignedBeaconBlock (128000 B) 3.1520 us/op 3.2030 us/op 0.98
copy serialized Small SignedBeaconBlock (128000 B) 6.6390 us/op 9.3590 us/op 0.71
transfer serialized Avg SignedBeaconBlock (200000 B) 2.7090 us/op 3.6520 us/op 0.74
copy serialized Avg SignedBeaconBlock (200000 B) 9.6530 us/op 15.116 us/op 0.64
transfer serialized BlobsSidecar (524380 B) 3.9990 us/op 3.9820 us/op 1.00
copy serialized BlobsSidecar (524380 B) 102.99 us/op 63.058 us/op 1.63
transfer serialized Big SignedBeaconBlock (1000000 B) 4.5290 us/op 4.0420 us/op 1.12
copy serialized Big SignedBeaconBlock (1000000 B) 249.84 us/op 115.59 us/op 2.16
pass gossip attestations to forkchoice per slot 2.4394 ms/op 3.1041 ms/op 0.79
forkChoice updateHead vc 100000 bc 64 eq 0 341.63 us/op 520.53 us/op 0.66
forkChoice updateHead vc 600000 bc 64 eq 0 2.2664 ms/op 3.3225 ms/op 0.68
forkChoice updateHead vc 1000000 bc 64 eq 0 3.6548 ms/op 5.5447 ms/op 0.66
forkChoice updateHead vc 600000 bc 320 eq 0 2.4759 ms/op 3.1281 ms/op 0.79
forkChoice updateHead vc 600000 bc 1200 eq 0 2.2128 ms/op 3.1741 ms/op 0.70
forkChoice updateHead vc 600000 bc 7200 eq 0 3.0036 ms/op 3.3316 ms/op 0.90
forkChoice updateHead vc 600000 bc 64 eq 1000 9.8785 ms/op 11.619 ms/op 0.85
forkChoice updateHead vc 600000 bc 64 eq 10000 9.5778 ms/op 11.824 ms/op 0.81
forkChoice updateHead vc 600000 bc 64 eq 300000 14.797 ms/op 13.822 ms/op 1.07
computeDeltas 500000 validators 300 proto nodes 3.1654 ms/op 4.0561 ms/op 0.78
computeDeltas 500000 validators 1200 proto nodes 3.1696 ms/op 3.9833 ms/op 0.80
computeDeltas 500000 validators 7200 proto nodes 3.0960 ms/op 4.0167 ms/op 0.77
computeDeltas 750000 validators 300 proto nodes 4.6313 ms/op 5.9429 ms/op 0.78
computeDeltas 750000 validators 1200 proto nodes 4.6440 ms/op 5.8939 ms/op 0.79
computeDeltas 750000 validators 7200 proto nodes 4.5739 ms/op 5.9715 ms/op 0.77
computeDeltas 1400000 validators 300 proto nodes 8.7044 ms/op 11.543 ms/op 0.75
computeDeltas 1400000 validators 1200 proto nodes 8.6048 ms/op 11.853 ms/op 0.73
computeDeltas 1400000 validators 7200 proto nodes 8.5580 ms/op 11.980 ms/op 0.71
computeDeltas 2100000 validators 300 proto nodes 12.784 ms/op 18.129 ms/op 0.71
computeDeltas 2100000 validators 1200 proto nodes 12.775 ms/op 18.153 ms/op 0.70
computeDeltas 2100000 validators 7200 proto nodes 13.251 ms/op 19.086 ms/op 0.69
altair processAttestation - 250000 vs - 7PWei normalcase 2.2273 ms/op 3.8567 ms/op 0.58
altair processAttestation - 250000 vs - 7PWei worstcase 2.4839 ms/op 4.4464 ms/op 0.56
altair processAttestation - setStatus - 1/6 committees join 96.285 us/op 156.46 us/op 0.62
altair processAttestation - setStatus - 1/3 committees join 193.00 us/op 308.93 us/op 0.62
altair processAttestation - setStatus - 1/2 committees join 274.32 us/op 439.61 us/op 0.62
altair processAttestation - setStatus - 2/3 committees join 363.27 us/op 547.24 us/op 0.66
altair processAttestation - setStatus - 4/5 committees join 495.43 us/op 751.56 us/op 0.66
altair processAttestation - setStatus - 100% committees join 587.35 us/op 888.06 us/op 0.66
altair processBlock - 250000 vs - 7PWei normalcase 3.7878 ms/op 6.1619 ms/op 0.61
altair processBlock - 250000 vs - 7PWei normalcase hashState 24.439 ms/op 44.635 ms/op 0.55
altair processBlock - 250000 vs - 7PWei worstcase 42.979 ms/op 48.945 ms/op 0.88
altair processBlock - 250000 vs - 7PWei worstcase hashState 85.665 ms/op 103.93 ms/op 0.82
phase0 processBlock - 250000 vs - 7PWei normalcase 1.8280 ms/op 2.4448 ms/op 0.75
phase0 processBlock - 250000 vs - 7PWei worstcase 23.832 ms/op 29.840 ms/op 0.80
altair processEth1Data - 250000 vs - 7PWei normalcase 281.26 us/op 417.46 us/op 0.67
getExpectedWithdrawals 250000 eb:1,eth1:1,we:0,wn:0,smpl:15 4.8080 us/op 5.6290 us/op 0.85
getExpectedWithdrawals 250000 eb:0.95,eth1:0.1,we:0.05,wn:0,smpl:219 27.096 us/op 36.686 us/op 0.74
getExpectedWithdrawals 250000 eb:0.95,eth1:0.3,we:0.05,wn:0,smpl:42 7.3660 us/op 9.7100 us/op 0.76
getExpectedWithdrawals 250000 eb:0.95,eth1:0.7,we:0.05,wn:0,smpl:18 5.6550 us/op 5.2490 us/op 1.08
getExpectedWithdrawals 250000 eb:0.1,eth1:0.1,we:0,wn:0,smpl:1020 96.760 us/op 166.08 us/op 0.58
getExpectedWithdrawals 250000 eb:0.03,eth1:0.03,we:0,wn:0,smpl:11777 797.11 us/op 1.4116 ms/op 0.56
getExpectedWithdrawals 250000 eb:0.01,eth1:0.01,we:0,wn:0,smpl:16384 1.3786 ms/op 1.9396 ms/op 0.71
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,smpl:16384 1.1098 ms/op 1.9544 ms/op 0.57
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,nocache,smpl:16384 2.7516 ms/op 4.4056 ms/op 0.62
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,smpl:16384 1.1434 ms/op 2.0284 ms/op 0.56
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,nocache,smpl:16384 2.7791 ms/op 4.2338 ms/op 0.66
Tree 40 250000 create 374.92 ms/op 728.10 ms/op 0.51
Tree 40 250000 get(125000) 107.38 ns/op 155.53 ns/op 0.69
Tree 40 250000 set(125000) 1.2523 us/op 2.8181 us/op 0.44
Tree 40 250000 toArray() 13.385 ms/op 24.525 ms/op 0.55
Tree 40 250000 iterate all - toArray() + loop 19.213 ms/op 24.353 ms/op 0.79
Tree 40 250000 iterate all - get(i) 50.851 ms/op 67.326 ms/op 0.76
Array 250000 create 2.3440 ms/op 3.0547 ms/op 0.77
Array 250000 clone - spread 729.18 us/op 5.9977 ms/op 0.12
Array 250000 get(125000) 0.59300 ns/op 0.49300 ns/op 1.20
Array 250000 set(125000) 0.60400 ns/op 0.53400 ns/op 1.13
Array 250000 iterate all - loop 76.382 us/op 124.74 us/op 0.61
phase0 afterProcessEpoch - 250000 vs - 7PWei 41.519 ms/op 63.532 ms/op 0.65
Array.fill - length 1000000 2.4261 ms/op 5.3551 ms/op 0.45
Array push - length 1000000 9.8622 ms/op 20.234 ms/op 0.49
Array.get 0.25935 ns/op 0.33137 ns/op 0.78
Uint8Array.get 0.34708 ns/op 0.52692 ns/op 0.66
phase0 beforeProcessEpoch - 250000 vs - 7PWei 19.840 ms/op 24.587 ms/op 0.81
altair processEpoch - mainnet_e81889 256.92 ms/op 339.36 ms/op 0.76
mainnet_e81889 - altair beforeProcessEpoch 18.793 ms/op 23.150 ms/op 0.81
mainnet_e81889 - altair processJustificationAndFinalization 4.6350 us/op 6.6110 us/op 0.70
mainnet_e81889 - altair processInactivityUpdates 4.0130 ms/op 5.9430 ms/op 0.68
mainnet_e81889 - altair processRewardsAndPenalties 45.496 ms/op 50.877 ms/op 0.89
mainnet_e81889 - altair processRegistryUpdates 910.00 ns/op 858.00 ns/op 1.06
mainnet_e81889 - altair processSlashings 427.00 ns/op 231.00 ns/op 1.85
mainnet_e81889 - altair processEth1DataReset 457.00 ns/op 201.00 ns/op 2.27
mainnet_e81889 - altair processEffectiveBalanceUpdates 1.0403 ms/op 1.4094 ms/op 0.74
mainnet_e81889 - altair processSlashingsReset 1.2590 us/op 1.2360 us/op 1.02
mainnet_e81889 - altair processRandaoMixesReset 1.3130 us/op 1.4970 us/op 0.88
mainnet_e81889 - altair processHistoricalRootsUpdate 423.00 ns/op 217.00 ns/op 1.95
mainnet_e81889 - altair processParticipationFlagUpdates 742.00 ns/op 777.00 ns/op 0.95
mainnet_e81889 - altair processSyncCommitteeUpdates 387.00 ns/op 163.00 ns/op 2.37
mainnet_e81889 - altair afterProcessEpoch 44.797 ms/op 58.749 ms/op 0.76
capella processEpoch - mainnet_e217614 880.97 ms/op 1.1722 s/op 0.75
mainnet_e217614 - capella beforeProcessEpoch 59.860 ms/op 80.287 ms/op 0.75
mainnet_e217614 - capella processJustificationAndFinalization 5.7580 us/op 6.1000 us/op 0.94
mainnet_e217614 - capella processInactivityUpdates 15.677 ms/op 20.051 ms/op 0.78
mainnet_e217614 - capella processRewardsAndPenalties 202.58 ms/op 225.41 ms/op 0.90
mainnet_e217614 - capella processRegistryUpdates 5.4650 us/op 8.7980 us/op 0.62
mainnet_e217614 - capella processSlashings 406.00 ns/op 239.00 ns/op 1.70
mainnet_e217614 - capella processEth1DataReset 405.00 ns/op 215.00 ns/op 1.88
mainnet_e217614 - capella processEffectiveBalanceUpdates 11.279 ms/op 16.772 ms/op 0.67
mainnet_e217614 - capella processSlashingsReset 1.1620 us/op 1.1320 us/op 1.03
mainnet_e217614 - capella processRandaoMixesReset 1.4670 us/op 1.5280 us/op 0.96
mainnet_e217614 - capella processHistoricalRootsUpdate 414.00 ns/op 230.00 ns/op 1.80
mainnet_e217614 - capella processParticipationFlagUpdates 706.00 ns/op 651.00 ns/op 1.08
mainnet_e217614 - capella afterProcessEpoch 105.31 ms/op 148.36 ms/op 0.71
phase0 processEpoch - mainnet_e58758 292.61 ms/op 369.18 ms/op 0.79
mainnet_e58758 - phase0 beforeProcessEpoch 81.142 ms/op 89.301 ms/op 0.91
mainnet_e58758 - phase0 processJustificationAndFinalization 6.0960 us/op 6.8420 us/op 0.89
mainnet_e58758 - phase0 processRewardsAndPenalties 38.109 ms/op 40.430 ms/op 0.94
mainnet_e58758 - phase0 processRegistryUpdates 2.8620 us/op 3.9120 us/op 0.73
mainnet_e58758 - phase0 processSlashings 404.00 ns/op 258.00 ns/op 1.57
mainnet_e58758 - phase0 processEth1DataReset 399.00 ns/op 282.00 ns/op 1.41
mainnet_e58758 - phase0 processEffectiveBalanceUpdates 786.51 us/op 1.2097 ms/op 0.65
mainnet_e58758 - phase0 processSlashingsReset 1.1800 us/op 1.1940 us/op 0.99
mainnet_e58758 - phase0 processRandaoMixesReset 1.3720 us/op 1.6840 us/op 0.81
mainnet_e58758 - phase0 processHistoricalRootsUpdate 467.00 ns/op 223.00 ns/op 2.09
mainnet_e58758 - phase0 processParticipationRecordUpdates 1.1900 us/op 1.0190 us/op 1.17
mainnet_e58758 - phase0 afterProcessEpoch 37.348 ms/op 50.768 ms/op 0.74
phase0 processEffectiveBalanceUpdates - 250000 normalcase 964.36 us/op 1.9311 ms/op 0.50
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 1.5968 ms/op 2.0952 ms/op 0.76
altair processInactivityUpdates - 250000 normalcase 17.728 ms/op 22.482 ms/op 0.79
altair processInactivityUpdates - 250000 worstcase 18.278 ms/op 23.165 ms/op 0.79
phase0 processRegistryUpdates - 250000 normalcase 5.9520 us/op 12.150 us/op 0.49
phase0 processRegistryUpdates - 250000 badcase_full_deposits 290.43 us/op 326.09 us/op 0.89
phase0 processRegistryUpdates - 250000 worstcase 0.5 107.21 ms/op 129.61 ms/op 0.83
altair processRewardsAndPenalties - 250000 normalcase 40.732 ms/op 56.040 ms/op 0.73
altair processRewardsAndPenalties - 250000 worstcase 30.630 ms/op 56.459 ms/op 0.54
phase0 getAttestationDeltas - 250000 normalcase 7.5498 ms/op 13.365 ms/op 0.56
phase0 getAttestationDeltas - 250000 worstcase 5.3370 ms/op 7.4054 ms/op 0.72
phase0 processSlashings - 250000 worstcase 58.504 us/op 126.57 us/op 0.46
altair processSyncCommitteeUpdates - 250000 96.251 ms/op 154.49 ms/op 0.62
BeaconState.hashTreeRoot - No change 453.00 ns/op 246.00 ns/op 1.84
BeaconState.hashTreeRoot - 1 full validator 77.604 us/op 124.45 us/op 0.62
BeaconState.hashTreeRoot - 32 full validator 739.85 us/op 1.1806 ms/op 0.63
BeaconState.hashTreeRoot - 512 full validator 12.378 ms/op 14.176 ms/op 0.87
BeaconState.hashTreeRoot - 1 validator.effectiveBalance 99.030 us/op 155.17 us/op 0.64
BeaconState.hashTreeRoot - 32 validator.effectiveBalance 1.5555 ms/op 2.0018 ms/op 0.78
BeaconState.hashTreeRoot - 512 validator.effectiveBalance 25.517 ms/op 33.212 ms/op 0.77
BeaconState.hashTreeRoot - 1 balances 60.084 us/op 115.10 us/op 0.52
BeaconState.hashTreeRoot - 32 balances 668.64 us/op 1.0671 ms/op 0.63
BeaconState.hashTreeRoot - 512 balances 7.2281 ms/op 10.262 ms/op 0.70
BeaconState.hashTreeRoot - 250000 balances 158.96 ms/op 202.87 ms/op 0.78
aggregationBits - 2048 els - zipIndexesInBitList 20.738 us/op 27.286 us/op 0.76
byteArrayEquals 32 44.623 ns/op 59.716 ns/op 0.75
Buffer.compare 32 15.151 ns/op 18.926 ns/op 0.80
byteArrayEquals 1024 1.2523 us/op 1.7809 us/op 0.70
Buffer.compare 1024 22.372 ns/op 27.409 ns/op 0.82
byteArrayEquals 16384 19.885 us/op 28.323 us/op 0.70
Buffer.compare 16384 215.38 ns/op 220.17 ns/op 0.98
byteArrayEquals 123687377 155.77 ms/op 242.93 ms/op 0.64
Buffer.compare 123687377 4.2284 ms/op 11.109 ms/op 0.38
byteArrayEquals 32 - diff last byte 47.832 ns/op 66.368 ns/op 0.72
Buffer.compare 32 - diff last byte 16.293 ns/op 21.906 ns/op 0.74
byteArrayEquals 1024 - diff last byte 1.2820 us/op 2.0911 us/op 0.61
Buffer.compare 1024 - diff last byte 23.537 ns/op 35.506 ns/op 0.66
byteArrayEquals 16384 - diff last byte 20.364 us/op 32.300 us/op 0.63
Buffer.compare 16384 - diff last byte 179.00 ns/op 260.39 ns/op 0.69
byteArrayEquals 123687377 - diff last byte 152.27 ms/op 231.17 ms/op 0.66
Buffer.compare 123687377 - diff last byte 5.3278 ms/op 9.7480 ms/op 0.55
byteArrayEquals 32 - random bytes 4.8300 ns/op 5.8020 ns/op 0.83
Buffer.compare 32 - random bytes 15.894 ns/op 18.768 ns/op 0.85
byteArrayEquals 1024 - random bytes 4.8410 ns/op 6.0990 ns/op 0.79
Buffer.compare 1024 - random bytes 15.934 ns/op 21.054 ns/op 0.76
byteArrayEquals 16384 - random bytes 4.9920 ns/op 6.3210 ns/op 0.79
Buffer.compare 16384 - random bytes 16.273 ns/op 19.309 ns/op 0.84
byteArrayEquals 123687377 - random bytes 8.0800 ns/op 7.2500 ns/op 1.11
Buffer.compare 123687377 - random bytes 18.770 ns/op 19.790 ns/op 0.95
regular array get 100000 times 30.670 us/op 46.305 us/op 0.66
wrappedArray get 100000 times 30.617 us/op 35.026 us/op 0.87
arrayWithProxy get 100000 times 8.8242 ms/op 14.131 ms/op 0.62
ssz.Root.equals 42.275 ns/op 50.223 ns/op 0.84
byteArrayEquals 37.140 ns/op 50.174 ns/op 0.74
Buffer.compare 8.5840 ns/op 11.151 ns/op 0.77
processSlot - 1 slots 8.9190 us/op 12.644 us/op 0.71
processSlot - 32 slots 2.1631 ms/op 2.9197 ms/op 0.74
getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei 58.927 ms/op 61.769 ms/op 0.95
getCommitteeAssignments - req 1 vs - 250000 vc 1.7517 ms/op 2.7876 ms/op 0.63
getCommitteeAssignments - req 100 vs - 250000 vc 3.4850 ms/op 4.9822 ms/op 0.70
getCommitteeAssignments - req 1000 vs - 250000 vc 3.7583 ms/op 5.4714 ms/op 0.69
findModifiedValidators - 10000 modified validators 810.94 ms/op 806.94 ms/op 1.00
findModifiedValidators - 1000 modified validators 688.41 ms/op 797.15 ms/op 0.86
findModifiedValidators - 100 modified validators 213.03 ms/op 298.34 ms/op 0.71
findModifiedValidators - 10 modified validators 157.99 ms/op 194.73 ms/op 0.81
findModifiedValidators - 1 modified validators 159.39 ms/op 187.03 ms/op 0.85
findModifiedValidators - no difference 177.96 ms/op 249.90 ms/op 0.71
compare ViewDUs 6.8376 s/op 8.1246 s/op 0.84
compare each validator Uint8Array 1.2784 s/op 1.5982 s/op 0.80
compare ViewDU to Uint8Array 971.82 ms/op 1.4937 s/op 0.65
migrate state 1000000 validators, 24 modified, 0 new 733.61 ms/op 1.1881 s/op 0.62
migrate state 1000000 validators, 1700 modified, 1000 new 1.1216 s/op 1.5565 s/op 0.72
migrate state 1000000 validators, 3400 modified, 2000 new 1.1637 s/op 1.5227 s/op 0.76
migrate state 1500000 validators, 24 modified, 0 new 981.69 ms/op 1.1020 s/op 0.89
migrate state 1500000 validators, 1700 modified, 1000 new 1.0921 s/op 1.2817 s/op 0.85
migrate state 1500000 validators, 3400 modified, 2000 new 1.2408 s/op 1.4710 s/op 0.84
RootCache.getBlockRootAtSlot - 250000 vs - 7PWei 5.8600 ns/op 4.8800 ns/op 1.20
state getBlockRootAtSlot - 250000 vs - 7PWei 578.31 ns/op 618.96 ns/op 0.93
computeProposers - vc 250000 5.4490 ms/op 8.3383 ms/op 0.65
computeEpochShuffling - vc 250000 35.403 ms/op 48.988 ms/op 0.72
getNextSyncCommittee - vc 250000 104.04 ms/op 152.67 ms/op 0.68
computeSigningRoot for AttestationData 14.631 us/op 24.654 us/op 0.59
hash AttestationData serialized data then Buffer.toString(base64) 1.1829 us/op 1.8252 us/op 0.65
toHexString serialized data 863.15 ns/op 921.92 ns/op 0.94
Buffer.toString(base64) 110.21 ns/op 175.91 ns/op 0.63
nodejs block root to RootHex using toHex 110.08 ns/op 166.27 ns/op 0.66
nodejs block root to RootHex using toRootHex 71.773 ns/op 102.34 ns/op 0.70
browser block root to RootHex using the deprecated toHexString 186.34 ns/op 232.41 ns/op 0.80
browser block root to RootHex using toHex 154.09 ns/op 187.59 ns/op 0.82
browser block root to RootHex using toRootHex 145.02 ns/op 176.53 ns/op 0.82

by benchmarkbot/action

@wemeetagain wemeetagain merged commit a7755ad into unstable Feb 7, 2025
19 of 20 checks passed
@wemeetagain wemeetagain deleted the cayman/async-agg branch February 7, 2025 19:39
@twoeths
Copy link
Contributor

twoeths commented Feb 8, 2025

somehow I don't see improvement of the original PR #7204, for example I don't see this improvement #7204 (comment)

wemeetagain added a commit that referenced this pull request Feb 11, 2025
wemeetagain added a commit that referenced this pull request Feb 11, 2025
@wemeetagain
Copy link
Member Author

🎉 This PR is included in v1.27.0 🎉

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