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: aggressively pull blobs as soon as we see the block #6499

Merged
merged 12 commits into from
Mar 5, 2024

Conversation

g11tech
Copy link
Contributor

@g11tech g11tech commented Feb 28, 2024

this PR enqueues the blockinput for blobs pull as soon as we see the block because we expect all blobs to arrive before the block

so while the block is being processed and likely waiting in verifyBlobsAvailabilty, the blobs will be pulled and made available, so that block processing can proceed. if the blobs finally get pulled past the availability deadline, the unknown block segment will try to reprocess it like it normally does

  • TODO: testing and fixes
    • looking good on holesky 👍

@g11tech g11tech requested a review from a team as a code owner February 28, 2024 15:12
Copy link
Contributor

github-actions bot commented Feb 28, 2024

Performance Report

✔️ no performance regression detected

Full benchmark results
Benchmark suite Current: 39f8926 Previous: cae26be Ratio
getPubkeys - index2pubkey - req 1000 vs - 250000 vc 788.90 us/op 872.87 us/op 0.90
getPubkeys - validatorsArr - req 1000 vs - 250000 vc 84.714 us/op 105.08 us/op 0.81
BLS verify - blst-native 1.2987 ms/op 1.2985 ms/op 1.00
BLS verifyMultipleSignatures 3 - blst-native 2.7271 ms/op 2.7427 ms/op 0.99
BLS verifyMultipleSignatures 8 - blst-native 5.9793 ms/op 6.0248 ms/op 0.99
BLS verifyMultipleSignatures 32 - blst-native 21.833 ms/op 22.151 ms/op 0.99
BLS verifyMultipleSignatures 64 - blst-native 42.972 ms/op 43.605 ms/op 0.99
BLS verifyMultipleSignatures 128 - blst-native 85.320 ms/op 86.640 ms/op 0.98
BLS deserializing 10000 signatures 911.82 ms/op 903.18 ms/op 1.01
BLS deserializing 100000 signatures 9.0946 s/op 9.5274 s/op 0.95
BLS verifyMultipleSignatures - same message - 3 - blst-native 1.2698 ms/op 1.3354 ms/op 0.95
BLS verifyMultipleSignatures - same message - 8 - blst-native 1.4283 ms/op 1.5327 ms/op 0.93
BLS verifyMultipleSignatures - same message - 32 - blst-native 2.8267 ms/op 3.0421 ms/op 0.93
BLS verifyMultipleSignatures - same message - 64 - blst-native 3.9685 ms/op 3.7916 ms/op 1.05
BLS verifyMultipleSignatures - same message - 128 - blst-native 7.3140 ms/op 7.6011 ms/op 0.96
BLS aggregatePubkeys 32 - blst-native 26.738 us/op 28.590 us/op 0.94
BLS aggregatePubkeys 128 - blst-native 97.932 us/op 106.97 us/op 0.92
notSeenSlots=1 numMissedVotes=1 numBadVotes=10 49.381 ms/op 67.921 ms/op 0.73
notSeenSlots=1 numMissedVotes=0 numBadVotes=4 42.513 ms/op 61.063 ms/op 0.70
notSeenSlots=2 numMissedVotes=1 numBadVotes=10 32.306 ms/op 34.269 ms/op 0.94
getSlashingsAndExits - default max 146.79 us/op 202.46 us/op 0.73
getSlashingsAndExits - 2k 381.72 us/op 1.0821 ms/op 0.35
proposeBlockBody type=full, size=empty 5.3148 ms/op 5.7834 ms/op 0.92
isKnown best case - 1 super set check 306.00 ns/op 549.00 ns/op 0.56
isKnown normal case - 2 super set checks 299.00 ns/op 445.00 ns/op 0.67
isKnown worse case - 16 super set checks 295.00 ns/op 480.00 ns/op 0.61
CheckpointStateCache - add get delete 5.0420 us/op 8.8900 us/op 0.57
validate api signedAggregateAndProof - struct 2.7288 ms/op 3.1476 ms/op 0.87
validate gossip signedAggregateAndProof - struct 2.7313 ms/op 2.8660 ms/op 0.95
validate gossip attestation - vc 640000 1.3199 ms/op 1.3866 ms/op 0.95
batch validate gossip attestation - vc 640000 - chunk 32 162.39 us/op 163.56 us/op 0.99
batch validate gossip attestation - vc 640000 - chunk 64 141.12 us/op 141.80 us/op 1.00
batch validate gossip attestation - vc 640000 - chunk 128 131.96 us/op 134.91 us/op 0.98
batch validate gossip attestation - vc 640000 - chunk 256 129.69 us/op 128.64 us/op 1.01
pickEth1Vote - no votes 1.0751 ms/op 1.2527 ms/op 0.86
pickEth1Vote - max votes 15.877 ms/op 9.0505 ms/op 1.75
pickEth1Vote - Eth1Data hashTreeRoot value x2048 19.951 ms/op 16.003 ms/op 1.25
pickEth1Vote - Eth1Data hashTreeRoot tree x2048 37.668 ms/op 24.349 ms/op 1.55
pickEth1Vote - Eth1Data fastSerialize value x2048 604.94 us/op 663.37 us/op 0.91
pickEth1Vote - Eth1Data fastSerialize tree x2048 7.0086 ms/op 4.4169 ms/op 1.59
bytes32 toHexString 482.00 ns/op 481.00 ns/op 1.00
bytes32 Buffer.toString(hex) 298.00 ns/op 286.00 ns/op 1.04
bytes32 Buffer.toString(hex) from Uint8Array 418.00 ns/op 420.00 ns/op 1.00
bytes32 Buffer.toString(hex) + 0x 294.00 ns/op 286.00 ns/op 1.03
Object access 1 prop 0.15800 ns/op 0.15900 ns/op 0.99
Map access 1 prop 0.15500 ns/op 0.14300 ns/op 1.08
Object get x1000 7.4940 ns/op 6.8550 ns/op 1.09
Map get x1000 0.74000 ns/op 0.76000 ns/op 0.97
Object set x1000 49.801 ns/op 49.629 ns/op 1.00
Map set x1000 39.319 ns/op 38.803 ns/op 1.01
Return object 10000 times 0.23940 ns/op 0.23460 ns/op 1.02
Throw Error 10000 times 3.8328 us/op 3.8154 us/op 1.00
fastMsgIdFn sha256 / 200 bytes 3.2850 us/op 3.1870 us/op 1.03
fastMsgIdFn h32 xxhash / 200 bytes 269.00 ns/op 275.00 ns/op 0.98
fastMsgIdFn h64 xxhash / 200 bytes 339.00 ns/op 331.00 ns/op 1.02
fastMsgIdFn sha256 / 1000 bytes 11.233 us/op 10.957 us/op 1.03
fastMsgIdFn h32 xxhash / 1000 bytes 398.00 ns/op 397.00 ns/op 1.00
fastMsgIdFn h64 xxhash / 1000 bytes 405.00 ns/op 404.00 ns/op 1.00
fastMsgIdFn sha256 / 10000 bytes 102.58 us/op 99.860 us/op 1.03
fastMsgIdFn h32 xxhash / 10000 bytes 1.9000 us/op 1.8920 us/op 1.00
fastMsgIdFn h64 xxhash / 10000 bytes 1.3140 us/op 1.3080 us/op 1.00
send data - 1000 256B messages 18.697 ms/op 17.930 ms/op 1.04
send data - 1000 512B messages 26.772 ms/op 25.647 ms/op 1.04
send data - 1000 1024B messages 37.907 ms/op 40.055 ms/op 0.95
send data - 1000 1200B messages 38.539 ms/op 37.543 ms/op 1.03
send data - 1000 2048B messages 48.609 ms/op 47.279 ms/op 1.03
send data - 1000 4096B messages 43.727 ms/op 42.378 ms/op 1.03
send data - 1000 16384B messages 124.12 ms/op 114.90 ms/op 1.08
send data - 1000 65536B messages 516.46 ms/op 453.34 ms/op 1.14
enrSubnets - fastDeserialize 64 bits 1.2550 us/op 1.2140 us/op 1.03
enrSubnets - ssz BitVector 64 bits 415.00 ns/op 418.00 ns/op 0.99
enrSubnets - fastDeserialize 4 bits 178.00 ns/op 163.00 ns/op 1.09
enrSubnets - ssz BitVector 4 bits 413.00 ns/op 413.00 ns/op 1.00
prioritizePeers score -10:0 att 32-0.1 sync 2-0 99.160 us/op 102.60 us/op 0.97
prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 122.21 us/op 123.89 us/op 0.99
prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 160.91 us/op 155.95 us/op 1.03
prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 279.86 us/op 283.67 us/op 0.99
prioritizePeers score 0:0 att 64-1 sync 4-1 334.26 us/op 341.66 us/op 0.98
array of 16000 items push then shift 1.6152 us/op 1.5799 us/op 1.02
LinkedList of 16000 items push then shift 8.7980 ns/op 8.8580 ns/op 0.99
array of 16000 items push then pop 80.194 ns/op 57.105 ns/op 1.40
LinkedList of 16000 items push then pop 8.5660 ns/op 8.6090 ns/op 1.00
array of 24000 items push then shift 2.3355 us/op 2.3991 us/op 0.97
LinkedList of 24000 items push then shift 9.5380 ns/op 8.7500 ns/op 1.09
array of 24000 items push then pop 91.590 ns/op 119.45 ns/op 0.77
LinkedList of 24000 items push then pop 8.4920 ns/op 8.6410 ns/op 0.98
intersect bitArray bitLen 8 5.6280 ns/op 5.9390 ns/op 0.95
intersect array and set length 8 61.171 ns/op 63.251 ns/op 0.97
intersect bitArray bitLen 128 34.857 ns/op 35.396 ns/op 0.98
intersect array and set length 128 842.25 ns/op 848.83 ns/op 0.99
bitArray.getTrueBitIndexes() bitLen 128 1.5200 us/op 1.3960 us/op 1.09
bitArray.getTrueBitIndexes() bitLen 248 2.5090 us/op 2.5990 us/op 0.97
bitArray.getTrueBitIndexes() bitLen 512 4.9530 us/op 5.1310 us/op 0.97
Buffer.concat 32 items 982.00 ns/op 1.0080 us/op 0.97
Uint8Array.set 32 items 2.1690 us/op 1.8500 us/op 1.17
Set add up to 64 items then delete first 4.2138 us/op 4.3885 us/op 0.96
OrderedSet add up to 64 items then delete first 5.3216 us/op 5.5593 us/op 0.96
Set add up to 64 items then delete last 4.4966 us/op 4.7751 us/op 0.94
OrderedSet add up to 64 items then delete last 5.6241 us/op 5.8093 us/op 0.97
Set add up to 64 items then delete middle 4.6182 us/op 4.6252 us/op 1.00
OrderedSet add up to 64 items then delete middle 6.8807 us/op 7.0239 us/op 0.98
Set add up to 128 items then delete first 9.2108 us/op 9.2877 us/op 0.99
OrderedSet add up to 128 items then delete first 12.087 us/op 12.609 us/op 0.96
Set add up to 128 items then delete last 8.9606 us/op 8.9729 us/op 1.00
OrderedSet add up to 128 items then delete last 11.289 us/op 11.372 us/op 0.99
Set add up to 128 items then delete middle 8.9196 us/op 9.0455 us/op 0.99
OrderedSet add up to 128 items then delete middle 16.583 us/op 16.873 us/op 0.98
Set add up to 256 items then delete first 18.403 us/op 19.167 us/op 0.96
OrderedSet add up to 256 items then delete first 24.600 us/op 26.035 us/op 0.94
Set add up to 256 items then delete last 18.016 us/op 17.966 us/op 1.00
OrderedSet add up to 256 items then delete last 22.709 us/op 23.282 us/op 0.98
Set add up to 256 items then delete middle 17.857 us/op 18.104 us/op 0.99
OrderedSet add up to 256 items then delete middle 44.418 us/op 48.064 us/op 0.92
transfer serialized Status (84 B) 1.6660 us/op 1.6500 us/op 1.01
copy serialized Status (84 B) 1.2480 us/op 1.2270 us/op 1.02
transfer serialized SignedVoluntaryExit (112 B) 1.7720 us/op 1.8260 us/op 0.97
copy serialized SignedVoluntaryExit (112 B) 1.3030 us/op 1.3140 us/op 0.99
transfer serialized ProposerSlashing (416 B) 2.1950 us/op 1.9850 us/op 1.11
copy serialized ProposerSlashing (416 B) 2.0210 us/op 2.2870 us/op 0.88
transfer serialized Attestation (485 B) 2.1980 us/op 2.8440 us/op 0.77
copy serialized Attestation (485 B) 1.9300 us/op 3.0410 us/op 0.63
transfer serialized AttesterSlashing (33232 B) 2.7170 us/op 3.1210 us/op 0.87
copy serialized AttesterSlashing (33232 B) 5.2430 us/op 6.2980 us/op 0.83
transfer serialized Small SignedBeaconBlock (128000 B) 3.3080 us/op 3.3500 us/op 0.99
copy serialized Small SignedBeaconBlock (128000 B) 14.002 us/op 25.957 us/op 0.54
transfer serialized Avg SignedBeaconBlock (200000 B) 3.4450 us/op 3.5050 us/op 0.98
copy serialized Avg SignedBeaconBlock (200000 B) 21.099 us/op 22.860 us/op 0.92
transfer serialized BlobsSidecar (524380 B) 3.1400 us/op 3.2860 us/op 0.96
copy serialized BlobsSidecar (524380 B) 100.19 us/op 142.42 us/op 0.70
transfer serialized Big SignedBeaconBlock (1000000 B) 3.4800 us/op 3.5350 us/op 0.98
copy serialized Big SignedBeaconBlock (1000000 B) 210.48 us/op 244.08 us/op 0.86
pass gossip attestations to forkchoice per slot 4.8883 ms/op 3.7169 ms/op 1.32
forkChoice updateHead vc 100000 bc 64 eq 0 674.85 us/op 804.70 us/op 0.84
forkChoice updateHead vc 600000 bc 64 eq 0 4.0436 ms/op 4.2754 ms/op 0.95
forkChoice updateHead vc 1000000 bc 64 eq 0 6.9567 ms/op 6.9537 ms/op 1.00
forkChoice updateHead vc 600000 bc 320 eq 0 4.1321 ms/op 4.2003 ms/op 0.98
forkChoice updateHead vc 600000 bc 1200 eq 0 4.2879 ms/op 4.4940 ms/op 0.95
forkChoice updateHead vc 600000 bc 7200 eq 0 5.2919 ms/op 5.4286 ms/op 0.97
forkChoice updateHead vc 600000 bc 64 eq 1000 11.121 ms/op 10.870 ms/op 1.02
forkChoice updateHead vc 600000 bc 64 eq 10000 11.801 ms/op 11.881 ms/op 0.99
forkChoice updateHead vc 600000 bc 64 eq 300000 15.519 ms/op 16.052 ms/op 0.97
computeDeltas 500000 validators 300 proto nodes 6.4577 ms/op 6.9494 ms/op 0.93
computeDeltas 500000 validators 1200 proto nodes 6.3748 ms/op 6.7827 ms/op 0.94
computeDeltas 500000 validators 7200 proto nodes 6.2442 ms/op 6.8486 ms/op 0.91
computeDeltas 750000 validators 300 proto nodes 9.6380 ms/op 10.191 ms/op 0.95
computeDeltas 750000 validators 1200 proto nodes 9.2580 ms/op 10.318 ms/op 0.90
computeDeltas 750000 validators 7200 proto nodes 9.3160 ms/op 10.207 ms/op 0.91
computeDeltas 1400000 validators 300 proto nodes 18.260 ms/op 19.212 ms/op 0.95
computeDeltas 1400000 validators 1200 proto nodes 19.236 ms/op 19.115 ms/op 1.01
computeDeltas 1400000 validators 7200 proto nodes 18.792 ms/op 19.524 ms/op 0.96
computeDeltas 2100000 validators 300 proto nodes 28.662 ms/op 28.433 ms/op 1.01
computeDeltas 2100000 validators 1200 proto nodes 28.946 ms/op 28.487 ms/op 1.02
computeDeltas 2100000 validators 7200 proto nodes 28.286 ms/op 27.906 ms/op 1.01
altair processAttestation - 250000 vs - 7PWei normalcase 2.1741 ms/op 3.6152 ms/op 0.60
altair processAttestation - 250000 vs - 7PWei worstcase 3.1306 ms/op 4.9090 ms/op 0.64
altair processAttestation - setStatus - 1/6 committees join 144.22 us/op 221.84 us/op 0.65
altair processAttestation - setStatus - 1/3 committees join 298.86 us/op 445.78 us/op 0.67
altair processAttestation - setStatus - 1/2 committees join 375.32 us/op 659.61 us/op 0.57
altair processAttestation - setStatus - 2/3 committees join 470.55 us/op 725.76 us/op 0.65
altair processAttestation - setStatus - 4/5 committees join 632.53 us/op 1.0850 ms/op 0.58
altair processAttestation - setStatus - 100% committees join 761.96 us/op 1.2231 ms/op 0.62
altair processBlock - 250000 vs - 7PWei normalcase 9.2328 ms/op 8.7121 ms/op 1.06
altair processBlock - 250000 vs - 7PWei normalcase hashState 33.580 ms/op 37.988 ms/op 0.88
altair processBlock - 250000 vs - 7PWei worstcase 39.384 ms/op 47.083 ms/op 0.84
altair processBlock - 250000 vs - 7PWei worstcase hashState 94.941 ms/op 101.84 ms/op 0.93
phase0 processBlock - 250000 vs - 7PWei normalcase 2.9290 ms/op 3.6020 ms/op 0.81
phase0 processBlock - 250000 vs - 7PWei worstcase 28.967 ms/op 34.011 ms/op 0.85
altair processEth1Data - 250000 vs - 7PWei normalcase 643.31 us/op 648.42 us/op 0.99
getExpectedWithdrawals 250000 eb:1,eth1:1,we:0,wn:0,smpl:15 17.195 us/op 16.433 us/op 1.05
getExpectedWithdrawals 250000 eb:0.95,eth1:0.1,we:0.05,wn:0,smpl:219 69.761 us/op 76.624 us/op 0.91
getExpectedWithdrawals 250000 eb:0.95,eth1:0.3,we:0.05,wn:0,smpl:42 15.726 us/op 20.857 us/op 0.75
getExpectedWithdrawals 250000 eb:0.95,eth1:0.7,we:0.05,wn:0,smpl:18 7.6200 us/op 20.219 us/op 0.38
getExpectedWithdrawals 250000 eb:0.1,eth1:0.1,we:0,wn:0,smpl:1020 213.27 us/op 221.82 us/op 0.96
getExpectedWithdrawals 250000 eb:0.03,eth1:0.03,we:0,wn:0,smpl:11777 1.0184 ms/op 1.5620 ms/op 0.65
getExpectedWithdrawals 250000 eb:0.01,eth1:0.01,we:0,wn:0,smpl:16384 2.4985 ms/op 2.0154 ms/op 1.24
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,smpl:16384 2.9393 ms/op 2.2580 ms/op 1.30
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,nocache,smpl:16384 4.0039 ms/op 3.7752 ms/op 1.06
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,smpl:16384 2.4522 ms/op 3.0075 ms/op 0.82
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,nocache,smpl:16384 4.9392 ms/op 5.3780 ms/op 0.92
Tree 40 250000 create 324.62 ms/op 470.96 ms/op 0.69
Tree 40 250000 get(125000) 182.18 ns/op 211.69 ns/op 0.86
Tree 40 250000 set(125000) 955.44 ns/op 1.1440 us/op 0.84
Tree 40 250000 toArray() 18.822 ms/op 23.931 ms/op 0.79
Tree 40 250000 iterate all - toArray() + loop 19.218 ms/op 24.075 ms/op 0.80
Tree 40 250000 iterate all - get(i) 66.387 ms/op 77.169 ms/op 0.86
MutableVector 250000 create 20.060 ms/op 16.697 ms/op 1.20
MutableVector 250000 get(125000) 6.4510 ns/op 6.7160 ns/op 0.96
MutableVector 250000 set(125000) 270.03 ns/op 311.53 ns/op 0.87
MutableVector 250000 toArray() 3.4848 ms/op 3.1524 ms/op 1.11
MutableVector 250000 iterate all - toArray() + loop 4.4165 ms/op 3.4024 ms/op 1.30
MutableVector 250000 iterate all - get(i) 1.5087 ms/op 1.5654 ms/op 0.96
Array 250000 create 3.4757 ms/op 2.9971 ms/op 1.16
Array 250000 clone - spread 1.2373 ms/op 1.4663 ms/op 0.84
Array 250000 get(125000) 1.0090 ns/op 1.2110 ns/op 0.83
Array 250000 set(125000) 4.1060 ns/op 4.5320 ns/op 0.91
Array 250000 iterate all - loop 162.60 us/op 168.85 us/op 0.96
effectiveBalanceIncrements clone Uint8Array 300000 26.730 us/op 45.093 us/op 0.59
effectiveBalanceIncrements clone MutableVector 300000 345.00 ns/op 437.00 ns/op 0.79
effectiveBalanceIncrements rw all Uint8Array 300000 197.09 us/op 202.69 us/op 0.97
effectiveBalanceIncrements rw all MutableVector 300000 79.410 ms/op 94.412 ms/op 0.84
phase0 afterProcessEpoch - 250000 vs - 7PWei 110.15 ms/op 115.85 ms/op 0.95
phase0 beforeProcessEpoch - 250000 vs - 7PWei 57.405 ms/op 41.654 ms/op 1.38
altair processEpoch - mainnet_e81889 542.36 ms/op 535.26 ms/op 1.01
mainnet_e81889 - altair beforeProcessEpoch 84.846 ms/op 85.629 ms/op 0.99
mainnet_e81889 - altair processJustificationAndFinalization 22.637 us/op 27.474 us/op 0.82
mainnet_e81889 - altair processInactivityUpdates 6.1371 ms/op 6.4009 ms/op 0.96
mainnet_e81889 - altair processRewardsAndPenalties 76.237 ms/op 69.679 ms/op 1.09
mainnet_e81889 - altair processRegistryUpdates 4.0440 us/op 2.7620 us/op 1.46
mainnet_e81889 - altair processSlashings 815.00 ns/op 718.00 ns/op 1.14
mainnet_e81889 - altair processEth1DataReset 620.00 ns/op 852.00 ns/op 0.73
mainnet_e81889 - altair processEffectiveBalanceUpdates 2.6623 ms/op 2.6561 ms/op 1.00
mainnet_e81889 - altair processSlashingsReset 5.8650 us/op 4.3970 us/op 1.33
mainnet_e81889 - altair processRandaoMixesReset 6.2560 us/op 6.8030 us/op 0.92
mainnet_e81889 - altair processHistoricalRootsUpdate 1.0280 us/op 1.1500 us/op 0.89
mainnet_e81889 - altair processParticipationFlagUpdates 2.2730 us/op 2.1630 us/op 1.05
mainnet_e81889 - altair processSyncCommitteeUpdates 1.0090 us/op 1.1510 us/op 0.88
mainnet_e81889 - altair afterProcessEpoch 114.73 ms/op 123.91 ms/op 0.93
capella processEpoch - mainnet_e217614 2.2744 s/op 2.1879 s/op 1.04
mainnet_e217614 - capella beforeProcessEpoch 494.29 ms/op 554.04 ms/op 0.89
mainnet_e217614 - capella processJustificationAndFinalization 23.376 us/op 20.631 us/op 1.13
mainnet_e217614 - capella processInactivityUpdates 19.044 ms/op 20.145 ms/op 0.95
mainnet_e217614 - capella processRewardsAndPenalties 451.16 ms/op 403.73 ms/op 1.12
mainnet_e217614 - capella processRegistryUpdates 28.472 us/op 40.843 us/op 0.70
mainnet_e217614 - capella processSlashings 913.00 ns/op 1.0770 us/op 0.85
mainnet_e217614 - capella processEth1DataReset 614.00 ns/op 836.00 ns/op 0.73
mainnet_e217614 - capella processEffectiveBalanceUpdates 4.2124 ms/op 10.888 ms/op 0.39
mainnet_e217614 - capella processSlashingsReset 5.3760 us/op 4.3750 us/op 1.23
mainnet_e217614 - capella processRandaoMixesReset 7.0190 us/op 7.8210 us/op 0.90
mainnet_e217614 - capella processHistoricalRootsUpdate 908.00 ns/op 726.00 ns/op 1.25
mainnet_e217614 - capella processParticipationFlagUpdates 2.4130 us/op 2.9870 us/op 0.81
mainnet_e217614 - capella afterProcessEpoch 310.68 ms/op 315.34 ms/op 0.99
phase0 processEpoch - mainnet_e58758 533.07 ms/op 595.68 ms/op 0.89
mainnet_e58758 - phase0 beforeProcessEpoch 162.30 ms/op 192.11 ms/op 0.84
mainnet_e58758 - phase0 processJustificationAndFinalization 23.808 us/op 26.099 us/op 0.91
mainnet_e58758 - phase0 processRewardsAndPenalties 69.543 ms/op 59.971 ms/op 1.16
mainnet_e58758 - phase0 processRegistryUpdates 15.023 us/op 18.135 us/op 0.83
mainnet_e58758 - phase0 processSlashings 904.00 ns/op 844.00 ns/op 1.07
mainnet_e58758 - phase0 processEth1DataReset 655.00 ns/op 625.00 ns/op 1.05
mainnet_e58758 - phase0 processEffectiveBalanceUpdates 2.1591 ms/op 2.1424 ms/op 1.01
mainnet_e58758 - phase0 processSlashingsReset 4.1390 us/op 4.4440 us/op 0.93
mainnet_e58758 - phase0 processRandaoMixesReset 6.0640 us/op 5.8200 us/op 1.04
mainnet_e58758 - phase0 processHistoricalRootsUpdate 980.00 ns/op 678.00 ns/op 1.45
mainnet_e58758 - phase0 processParticipationRecordUpdates 5.9830 us/op 5.7710 us/op 1.04
mainnet_e58758 - phase0 afterProcessEpoch 94.338 ms/op 105.42 ms/op 0.89
phase0 processEffectiveBalanceUpdates - 250000 normalcase 1.9732 ms/op 1.6423 ms/op 1.20
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 3.1717 ms/op 1.5094 ms/op 2.10
altair processInactivityUpdates - 250000 normalcase 36.172 ms/op 31.340 ms/op 1.15
altair processInactivityUpdates - 250000 worstcase 31.733 ms/op 33.571 ms/op 0.95
phase0 processRegistryUpdates - 250000 normalcase 8.1140 us/op 16.009 us/op 0.51
phase0 processRegistryUpdates - 250000 badcase_full_deposits 679.33 us/op 468.49 us/op 1.45
phase0 processRegistryUpdates - 250000 worstcase 0.5 154.22 ms/op 179.33 ms/op 0.86
altair processRewardsAndPenalties - 250000 normalcase 73.924 ms/op 52.523 ms/op 1.41
altair processRewardsAndPenalties - 250000 worstcase 67.767 ms/op 66.929 ms/op 1.01
phase0 getAttestationDeltas - 250000 normalcase 8.9991 ms/op 11.117 ms/op 0.81
phase0 getAttestationDeltas - 250000 worstcase 9.2081 ms/op 11.901 ms/op 0.77
phase0 processSlashings - 250000 worstcase 128.42 us/op 169.56 us/op 0.76
altair processSyncCommitteeUpdates - 250000 146.42 ms/op 174.00 ms/op 0.84
BeaconState.hashTreeRoot - No change 373.00 ns/op 617.00 ns/op 0.60
BeaconState.hashTreeRoot - 1 full validator 155.56 us/op 153.32 us/op 1.01
BeaconState.hashTreeRoot - 32 full validator 1.6022 ms/op 1.6869 ms/op 0.95
BeaconState.hashTreeRoot - 512 full validator 16.792 ms/op 15.858 ms/op 1.06
BeaconState.hashTreeRoot - 1 validator.effectiveBalance 200.09 us/op 175.09 us/op 1.14
BeaconState.hashTreeRoot - 32 validator.effectiveBalance 2.7505 ms/op 2.4096 ms/op 1.14
BeaconState.hashTreeRoot - 512 validator.effectiveBalance 32.289 ms/op 32.891 ms/op 0.98
BeaconState.hashTreeRoot - 1 balances 143.11 us/op 142.40 us/op 1.01
BeaconState.hashTreeRoot - 32 balances 1.3810 ms/op 1.3603 ms/op 1.02
BeaconState.hashTreeRoot - 512 balances 13.571 ms/op 14.248 ms/op 0.95
BeaconState.hashTreeRoot - 250000 balances 223.57 ms/op 235.65 ms/op 0.95
aggregationBits - 2048 els - zipIndexesInBitList 17.939 us/op 74.245 us/op 0.24
byteArrayEquals 32 75.514 ns/op 76.036 ns/op 0.99
Buffer.compare 32 56.446 ns/op 55.388 ns/op 1.02
byteArrayEquals 1024 2.0565 us/op 2.0712 us/op 0.99
Buffer.compare 1024 72.402 ns/op 72.473 ns/op 1.00
byteArrayEquals 16384 32.765 us/op 33.169 us/op 0.99
Buffer.compare 16384 270.83 ns/op 273.90 ns/op 0.99
byteArrayEquals 123687377 249.81 ms/op 256.50 ms/op 0.97
Buffer.compare 123687377 6.1436 ms/op 7.7967 ms/op 0.79
byteArrayEquals 32 - diff last byte 73.864 ns/op 74.538 ns/op 0.99
Buffer.compare 32 - diff last byte 56.635 ns/op 57.946 ns/op 0.98
byteArrayEquals 1024 - diff last byte 2.0246 us/op 2.0676 us/op 0.98
Buffer.compare 1024 - diff last byte 71.886 ns/op 73.595 ns/op 0.98
byteArrayEquals 16384 - diff last byte 32.236 us/op 32.891 us/op 0.98
Buffer.compare 16384 - diff last byte 249.25 ns/op 275.74 ns/op 0.90
byteArrayEquals 123687377 - diff last byte 245.29 ms/op 247.71 ms/op 0.99
Buffer.compare 123687377 - diff last byte 6.6296 ms/op 7.5059 ms/op 0.88
byteArrayEquals 32 - random bytes 5.3080 ns/op 5.7730 ns/op 0.92
Buffer.compare 32 - random bytes 62.233 ns/op 63.027 ns/op 0.99
byteArrayEquals 1024 - random bytes 5.2920 ns/op 5.6130 ns/op 0.94
Buffer.compare 1024 - random bytes 61.183 ns/op 65.038 ns/op 0.94
byteArrayEquals 16384 - random bytes 5.3930 ns/op 5.5370 ns/op 0.97
Buffer.compare 16384 - random bytes 62.107 ns/op 62.394 ns/op 1.00
byteArrayEquals 123687377 - random bytes 8.8100 ns/op 8.8500 ns/op 1.00
Buffer.compare 123687377 - random bytes 65.190 ns/op 70.900 ns/op 0.92
regular array get 100000 times 44.672 us/op 46.523 us/op 0.96
wrappedArray get 100000 times 44.628 us/op 46.794 us/op 0.95
arrayWithProxy get 100000 times 14.300 ms/op 15.702 ms/op 0.91
ssz.Root.equals 54.327 ns/op 55.493 ns/op 0.98
byteArrayEquals 53.616 ns/op 54.322 ns/op 0.99
Buffer.compare 10.953 ns/op 11.991 ns/op 0.91
shuffle list - 16384 els 6.9790 ms/op 8.7131 ms/op 0.80
shuffle list - 250000 els 104.57 ms/op 128.06 ms/op 0.82
processSlot - 1 slots 17.492 us/op 17.999 us/op 0.97
processSlot - 32 slots 4.0348 ms/op 3.3857 ms/op 1.19
getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei 68.208 ms/op 62.116 ms/op 1.10
getCommitteeAssignments - req 1 vs - 250000 vc 2.5047 ms/op 2.7230 ms/op 0.92
getCommitteeAssignments - req 100 vs - 250000 vc 3.7497 ms/op 3.9411 ms/op 0.95
getCommitteeAssignments - req 1000 vs - 250000 vc 4.0573 ms/op 4.2980 ms/op 0.94
findModifiedValidators - 10000 modified validators 530.71 ms/op 539.19 ms/op 0.98
findModifiedValidators - 1000 modified validators 426.53 ms/op 440.87 ms/op 0.97
findModifiedValidators - 100 modified validators 404.86 ms/op 417.58 ms/op 0.97
findModifiedValidators - 10 modified validators 403.02 ms/op 435.50 ms/op 0.93
findModifiedValidators - 1 modified validators 392.15 ms/op 409.34 ms/op 0.96
findModifiedValidators - no difference 414.19 ms/op 400.07 ms/op 1.04
compare ViewDUs 5.1197 s/op 4.9477 s/op 1.03
compare each validator Uint8Array 1.7726 s/op 1.8725 s/op 0.95
compare ViewDU to Uint8Array 1.0802 s/op 1.1097 s/op 0.97
migrate state 1000000 validators, 24 modified, 0 new 896.02 ms/op 808.72 ms/op 1.11
migrate state 1000000 validators, 1700 modified, 1000 new 1.2141 s/op 1.0909 s/op 1.11
migrate state 1000000 validators, 3400 modified, 2000 new 1.4418 s/op 1.3499 s/op 1.07
migrate state 1500000 validators, 24 modified, 0 new 843.01 ms/op 807.25 ms/op 1.04
migrate state 1500000 validators, 1700 modified, 1000 new 1.1520 s/op 1.1809 s/op 0.98
migrate state 1500000 validators, 3400 modified, 2000 new 1.3615 s/op 1.4008 s/op 0.97
RootCache.getBlockRootAtSlot - 250000 vs - 7PWei 4.6600 ns/op 4.4100 ns/op 1.06
state getBlockRootAtSlot - 250000 vs - 7PWei 788.25 ns/op 878.96 ns/op 0.90
computeProposers - vc 250000 9.3300 ms/op 9.5050 ms/op 0.98
computeEpochShuffling - vc 250000 105.68 ms/op 121.76 ms/op 0.87
getNextSyncCommittee - vc 250000 160.94 ms/op 159.92 ms/op 1.01
computeSigningRoot for AttestationData 30.243 us/op 25.229 us/op 1.20
hash AttestationData serialized data then Buffer.toString(base64) 2.3448 us/op 2.3180 us/op 1.01
toHexString serialized data 1.1564 us/op 1.0993 us/op 1.05
Buffer.toString(base64) 221.01 ns/op 232.76 ns/op 0.95

by benchmarkbot/action

Copy link

codecov bot commented Feb 29, 2024

Codecov Report

Merging #6499 (3bcf35a) into unstable (e9a3f07) will decrease coverage by 0.17%.
Report is 12 commits behind head on unstable.
The diff coverage is 20.49%.

Additional details and impacted files
@@             Coverage Diff              @@
##           unstable    #6499      +/-   ##
============================================
- Coverage     61.72%   61.55%   -0.17%     
============================================
  Files           555      556       +1     
  Lines         58204    58573     +369     
  Branches       1839     1847       +8     
============================================
+ Hits          35925    36056     +131     
- Misses        22240    22477     +237     
- Partials         39       40       +1     

@g11tech g11tech merged commit d66f607 into unstable Mar 5, 2024
19 of 20 checks passed
@g11tech g11tech deleted the optimize-sidecars branch March 5, 2024 14:23
@wemeetagain
Copy link
Member

🎉 This PR is included in v1.17.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