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

fix: publish blobs sooner than later #6431

Merged
merged 1 commit into from
Feb 15, 2024
Merged

fix: publish blobs sooner than later #6431

merged 1 commit into from
Feb 15, 2024

Conversation

g11tech
Copy link
Contributor

@g11tech g11tech commented Feb 15, 2024

publish blobs before starting the import and even before block publish because aggressive clients may start pulling blobs as soon as they see the block

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

codecov bot commented Feb 15, 2024

Codecov Report

Merging #6431 (37bc164) into unstable (83d7d70) will not change coverage.
The diff coverage is n/a.

Additional details and impacted files
@@            Coverage Diff            @@
##           unstable    #6431   +/-   ##
=========================================
  Coverage     61.72%   61.72%           
=========================================
  Files           553      553           
  Lines         57845    57845           
  Branches       1829     1829           
=========================================
  Hits          35702    35702           
  Misses        22106    22106           
  Partials         37       37           

Copy link
Contributor

Performance Report

✔️ no performance regression detected

Full benchmark results
Benchmark suite Current: e57a5f7 Previous: 83d7d70 Ratio
getPubkeys - index2pubkey - req 1000 vs - 250000 vc 597.11 us/op 792.30 us/op 0.75
getPubkeys - validatorsArr - req 1000 vs - 250000 vc 134.08 us/op 142.55 us/op 0.94
BLS verify - blst-native 1.4614 ms/op 1.5020 ms/op 0.97
BLS verifyMultipleSignatures 3 - blst-native 3.0110 ms/op 2.9823 ms/op 1.01
BLS verifyMultipleSignatures 8 - blst-native 6.7942 ms/op 6.9607 ms/op 0.98
BLS verifyMultipleSignatures 32 - blst-native 25.839 ms/op 24.916 ms/op 1.04
BLS verifyMultipleSignatures 64 - blst-native 49.048 ms/op 47.537 ms/op 1.03
BLS verifyMultipleSignatures 128 - blst-native 97.778 ms/op 96.982 ms/op 1.01
BLS deserializing 10000 signatures 998.31 ms/op 1.0457 s/op 0.95
BLS deserializing 100000 signatures 9.4328 s/op 10.227 s/op 0.92
BLS verifyMultipleSignatures - same message - 3 - blst-native 1.4207 ms/op 1.8266 ms/op 0.78
BLS verifyMultipleSignatures - same message - 8 - blst-native 1.5691 ms/op 1.7611 ms/op 0.89
BLS verifyMultipleSignatures - same message - 32 - blst-native 2.4340 ms/op 2.9509 ms/op 0.82
BLS verifyMultipleSignatures - same message - 64 - blst-native 3.5237 ms/op 4.3025 ms/op 0.82
BLS verifyMultipleSignatures - same message - 128 - blst-native 5.8296 ms/op 7.3859 ms/op 0.79
BLS aggregatePubkeys 32 - blst-native 27.250 us/op 30.488 us/op 0.89
BLS aggregatePubkeys 128 - blst-native 105.64 us/op 117.16 us/op 0.90
notSeenSlots=1 numMissedVotes=1 numBadVotes=10 65.242 ms/op 82.771 ms/op 0.79
notSeenSlots=1 numMissedVotes=0 numBadVotes=4 63.165 ms/op 66.269 ms/op 0.95
notSeenSlots=2 numMissedVotes=1 numBadVotes=10 51.125 ms/op 57.435 ms/op 0.89
getSlashingsAndExits - default max 271.34 us/op 244.19 us/op 1.11
getSlashingsAndExits - 2k 544.10 us/op 861.75 us/op 0.63
proposeBlockBody type=full, size=empty 6.8094 ms/op 7.6932 ms/op 0.89
isKnown best case - 1 super set check 610.00 ns/op 782.00 ns/op 0.78
isKnown normal case - 2 super set checks 564.00 ns/op 829.00 ns/op 0.68
isKnown worse case - 16 super set checks 442.00 ns/op 779.00 ns/op 0.57
CheckpointStateCache - add get delete 5.9820 us/op 7.4510 us/op 0.80
validate api signedAggregateAndProof - struct 2.9400 ms/op 3.3289 ms/op 0.88
validate gossip signedAggregateAndProof - struct 2.9640 ms/op 3.2664 ms/op 0.91
validate gossip attestation - vc 640000 1.4573 ms/op 1.5443 ms/op 0.94
batch validate gossip attestation - vc 640000 - chunk 32 177.21 us/op 182.82 us/op 0.97
batch validate gossip attestation - vc 640000 - chunk 64 160.51 us/op 162.02 us/op 0.99
batch validate gossip attestation - vc 640000 - chunk 128 154.43 us/op 147.88 us/op 1.04
batch validate gossip attestation - vc 640000 - chunk 256 134.44 us/op 142.36 us/op 0.94
pickEth1Vote - no votes 1.1473 ms/op 1.4665 ms/op 0.78
pickEth1Vote - max votes 10.380 ms/op 13.062 ms/op 0.79
pickEth1Vote - Eth1Data hashTreeRoot value x2048 17.908 ms/op 21.802 ms/op 0.82
pickEth1Vote - Eth1Data hashTreeRoot tree x2048 27.353 ms/op 34.090 ms/op 0.80
pickEth1Vote - Eth1Data fastSerialize value x2048 687.51 us/op 781.83 us/op 0.88
pickEth1Vote - Eth1Data fastSerialize tree x2048 5.9924 ms/op 6.4863 ms/op 0.92
bytes32 toHexString 483.00 ns/op 732.00 ns/op 0.66
bytes32 Buffer.toString(hex) 293.00 ns/op 330.00 ns/op 0.89
bytes32 Buffer.toString(hex) from Uint8Array 420.00 ns/op 554.00 ns/op 0.76
bytes32 Buffer.toString(hex) + 0x 292.00 ns/op 328.00 ns/op 0.89
Object access 1 prop 0.15800 ns/op 0.21700 ns/op 0.73
Map access 1 prop 0.15000 ns/op 0.15700 ns/op 0.96
Object get x1000 7.3900 ns/op 7.9150 ns/op 0.93
Map get x1000 0.77000 ns/op 0.87900 ns/op 0.88
Object set x1000 50.037 ns/op 72.196 ns/op 0.69
Map set x1000 39.525 ns/op 53.449 ns/op 0.74
Return object 10000 times 0.23580 ns/op 0.25410 ns/op 0.93
Throw Error 10000 times 3.9174 us/op 4.0536 us/op 0.97
fastMsgIdFn sha256 / 200 bytes 3.2860 us/op 3.5400 us/op 0.93
fastMsgIdFn h32 xxhash / 200 bytes 272.00 ns/op 374.00 ns/op 0.73
fastMsgIdFn h64 xxhash / 200 bytes 338.00 ns/op 417.00 ns/op 0.81
fastMsgIdFn sha256 / 1000 bytes 11.284 us/op 12.178 us/op 0.93
fastMsgIdFn h32 xxhash / 1000 bytes 403.00 ns/op 524.00 ns/op 0.77
fastMsgIdFn h64 xxhash / 1000 bytes 413.00 ns/op 521.00 ns/op 0.79
fastMsgIdFn sha256 / 10000 bytes 104.11 us/op 111.33 us/op 0.94
fastMsgIdFn h32 xxhash / 10000 bytes 1.9720 us/op 2.1680 us/op 0.91
fastMsgIdFn h64 xxhash / 10000 bytes 1.3490 us/op 1.5150 us/op 0.89
send data - 1000 256B messages 17.535 ms/op 22.159 ms/op 0.79
send data - 1000 512B messages 25.198 ms/op 30.815 ms/op 0.82
send data - 1000 1024B messages 38.498 ms/op 42.416 ms/op 0.91
send data - 1000 1200B messages 35.034 ms/op 45.369 ms/op 0.77
send data - 1000 2048B messages 47.319 ms/op 61.665 ms/op 0.77
send data - 1000 4096B messages 45.607 ms/op 48.121 ms/op 0.95
send data - 1000 16384B messages 119.73 ms/op 121.99 ms/op 0.98
send data - 1000 65536B messages 480.95 ms/op 475.81 ms/op 1.01
enrSubnets - fastDeserialize 64 bits 1.2840 us/op 1.3410 us/op 0.96
enrSubnets - ssz BitVector 64 bits 434.00 ns/op 479.00 ns/op 0.91
enrSubnets - fastDeserialize 4 bits 167.00 ns/op 200.00 ns/op 0.83
enrSubnets - ssz BitVector 4 bits 429.00 ns/op 548.00 ns/op 0.78
prioritizePeers score -10:0 att 32-0.1 sync 2-0 104.24 us/op 125.78 us/op 0.83
prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 139.31 us/op 151.18 us/op 0.92
prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 194.97 us/op 197.34 us/op 0.99
prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 311.96 us/op 337.62 us/op 0.92
prioritizePeers score 0:0 att 64-1 sync 4-1 350.38 us/op 383.41 us/op 0.91
array of 16000 items push then shift 1.6391 us/op 1.7154 us/op 0.96
LinkedList of 16000 items push then shift 9.0660 ns/op 9.3830 ns/op 0.97
array of 16000 items push then pop 88.863 ns/op 107.78 ns/op 0.82
LinkedList of 16000 items push then pop 8.9270 ns/op 9.3510 ns/op 0.95
array of 24000 items push then shift 2.7570 us/op 2.6302 us/op 1.05
LinkedList of 24000 items push then shift 9.9490 ns/op 9.5030 ns/op 1.05
array of 24000 items push then pop 125.49 ns/op 148.06 ns/op 0.85
LinkedList of 24000 items push then pop 8.9650 ns/op 9.1290 ns/op 0.98
intersect bitArray bitLen 8 6.5860 ns/op 6.2680 ns/op 1.05
intersect array and set length 8 72.129 ns/op 80.156 ns/op 0.90
intersect bitArray bitLen 128 39.436 ns/op 37.670 ns/op 1.05
intersect array and set length 128 1.0197 us/op 1.0288 us/op 0.99
bitArray.getTrueBitIndexes() bitLen 128 1.5870 us/op 1.9960 us/op 0.80
bitArray.getTrueBitIndexes() bitLen 248 2.6380 us/op 3.1160 us/op 0.85
bitArray.getTrueBitIndexes() bitLen 512 4.9920 us/op 6.4990 us/op 0.77
Buffer.concat 32 items 1.0220 us/op 1.1730 us/op 0.87
Uint8Array.set 32 items 1.6580 us/op 2.8660 us/op 0.58
Set add up to 64 items then delete first 5.1364 us/op 5.2871 us/op 0.97
OrderedSet add up to 64 items then delete first 6.2566 us/op 7.2941 us/op 0.86
Set add up to 64 items then delete last 5.1363 us/op 6.0668 us/op 0.85
OrderedSet add up to 64 items then delete last 6.6701 us/op 7.5970 us/op 0.88
Set add up to 64 items then delete middle 4.8370 us/op 5.7108 us/op 0.85
OrderedSet add up to 64 items then delete middle 7.5119 us/op 9.0086 us/op 0.83
Set add up to 128 items then delete first 9.5652 us/op 11.170 us/op 0.86
OrderedSet add up to 128 items then delete first 12.624 us/op 14.893 us/op 0.85
Set add up to 128 items then delete last 9.3583 us/op 11.147 us/op 0.84
OrderedSet add up to 128 items then delete last 11.881 us/op 14.648 us/op 0.81
Set add up to 128 items then delete middle 9.4075 us/op 10.423 us/op 0.90
OrderedSet add up to 128 items then delete middle 17.445 us/op 19.072 us/op 0.91
Set add up to 256 items then delete first 19.898 us/op 21.867 us/op 0.91
OrderedSet add up to 256 items then delete first 26.729 us/op 29.243 us/op 0.91
Set add up to 256 items then delete last 18.837 us/op 21.538 us/op 0.87
OrderedSet add up to 256 items then delete last 24.991 us/op 26.860 us/op 0.93
Set add up to 256 items then delete middle 18.697 us/op 19.937 us/op 0.94
OrderedSet add up to 256 items then delete middle 46.110 us/op 50.896 us/op 0.91
transfer serialized Status (84 B) 1.6200 us/op 1.8680 us/op 0.87
copy serialized Status (84 B) 1.2600 us/op 1.3550 us/op 0.93
transfer serialized SignedVoluntaryExit (112 B) 1.7260 us/op 1.8860 us/op 0.92
copy serialized SignedVoluntaryExit (112 B) 1.2810 us/op 1.3830 us/op 0.93
transfer serialized ProposerSlashing (416 B) 1.9390 us/op 2.2020 us/op 0.88
copy serialized ProposerSlashing (416 B) 1.6780 us/op 1.7490 us/op 0.96
transfer serialized Attestation (485 B) 1.9500 us/op 2.1490 us/op 0.91
copy serialized Attestation (485 B) 1.6760 us/op 1.6910 us/op 0.99
transfer serialized AttesterSlashing (33232 B) 2.0680 us/op 2.0890 us/op 0.99
copy serialized AttesterSlashing (33232 B) 5.1140 us/op 5.1290 us/op 1.00
transfer serialized Small SignedBeaconBlock (128000 B) 2.5700 us/op 2.6640 us/op 0.96
copy serialized Small SignedBeaconBlock (128000 B) 15.764 us/op 18.243 us/op 0.86
transfer serialized Avg SignedBeaconBlock (200000 B) 3.2380 us/op 3.1940 us/op 1.01
copy serialized Avg SignedBeaconBlock (200000 B) 23.283 us/op 23.279 us/op 1.00
transfer serialized BlobsSidecar (524380 B) 3.1280 us/op 3.9430 us/op 0.79
copy serialized BlobsSidecar (524380 B) 88.352 us/op 90.429 us/op 0.98
transfer serialized Big SignedBeaconBlock (1000000 B) 3.3020 us/op 4.0930 us/op 0.81
copy serialized Big SignedBeaconBlock (1000000 B) 152.76 us/op 188.55 us/op 0.81
pass gossip attestations to forkchoice per slot 3.8755 ms/op 4.9760 ms/op 0.78
forkChoice updateHead vc 100000 bc 64 eq 0 730.26 us/op 703.82 us/op 1.04
forkChoice updateHead vc 600000 bc 64 eq 0 5.6449 ms/op 4.7744 ms/op 1.18
forkChoice updateHead vc 1000000 bc 64 eq 0 7.3775 ms/op 7.5708 ms/op 0.97
forkChoice updateHead vc 600000 bc 320 eq 0 4.2293 ms/op 4.3596 ms/op 0.97
forkChoice updateHead vc 600000 bc 1200 eq 0 4.3427 ms/op 4.5751 ms/op 0.95
forkChoice updateHead vc 600000 bc 7200 eq 0 5.7652 ms/op 5.5555 ms/op 1.04
forkChoice updateHead vc 600000 bc 64 eq 1000 11.119 ms/op 11.366 ms/op 0.98
forkChoice updateHead vc 600000 bc 64 eq 10000 12.099 ms/op 12.467 ms/op 0.97
forkChoice updateHead vc 600000 bc 64 eq 300000 16.499 ms/op 18.445 ms/op 0.89
computeDeltas 500000 validators 300 proto nodes 6.8028 ms/op 6.8387 ms/op 0.99
computeDeltas 500000 validators 1200 proto nodes 6.8610 ms/op 6.7649 ms/op 1.01
computeDeltas 500000 validators 7200 proto nodes 6.9237 ms/op 6.5558 ms/op 1.06
computeDeltas 750000 validators 300 proto nodes 9.9729 ms/op 9.9827 ms/op 1.00
computeDeltas 750000 validators 1200 proto nodes 10.047 ms/op 9.8406 ms/op 1.02
computeDeltas 750000 validators 7200 proto nodes 9.9724 ms/op 9.8936 ms/op 1.01
computeDeltas 1400000 validators 300 proto nodes 20.040 ms/op 20.244 ms/op 0.99
computeDeltas 1400000 validators 1200 proto nodes 20.316 ms/op 19.830 ms/op 1.02
computeDeltas 1400000 validators 7200 proto nodes 18.915 ms/op 18.751 ms/op 1.01
computeDeltas 2100000 validators 300 proto nodes 28.207 ms/op 29.009 ms/op 0.97
computeDeltas 2100000 validators 1200 proto nodes 28.809 ms/op 30.008 ms/op 0.96
computeDeltas 2100000 validators 7200 proto nodes 27.502 ms/op 28.903 ms/op 0.95
altair processAttestation - 250000 vs - 7PWei normalcase 2.3092 ms/op 2.2787 ms/op 1.01
altair processAttestation - 250000 vs - 7PWei worstcase 3.3666 ms/op 3.4024 ms/op 0.99
altair processAttestation - setStatus - 1/6 committees join 178.68 us/op 191.58 us/op 0.93
altair processAttestation - setStatus - 1/3 committees join 345.88 us/op 380.58 us/op 0.91
altair processAttestation - setStatus - 1/2 committees join 474.64 us/op 483.34 us/op 0.98
altair processAttestation - setStatus - 2/3 committees join 591.67 us/op 698.26 us/op 0.85
altair processAttestation - setStatus - 4/5 committees join 786.87 us/op 845.03 us/op 0.93
altair processAttestation - setStatus - 100% committees join 930.53 us/op 1.0100 ms/op 0.92
altair processBlock - 250000 vs - 7PWei normalcase 9.9988 ms/op 13.406 ms/op 0.75
altair processBlock - 250000 vs - 7PWei normalcase hashState 38.545 ms/op 39.179 ms/op 0.98
altair processBlock - 250000 vs - 7PWei worstcase 38.918 ms/op 45.575 ms/op 0.85
altair processBlock - 250000 vs - 7PWei worstcase hashState 92.394 ms/op 102.94 ms/op 0.90
phase0 processBlock - 250000 vs - 7PWei normalcase 2.9318 ms/op 3.1930 ms/op 0.92
phase0 processBlock - 250000 vs - 7PWei worstcase 33.549 ms/op 34.321 ms/op 0.98
altair processEth1Data - 250000 vs - 7PWei normalcase 798.06 us/op 692.57 us/op 1.15
getExpectedWithdrawals 250000 eb:1,eth1:1,we:0,wn:0,smpl:15 7.5880 us/op 12.242 us/op 0.62
getExpectedWithdrawals 250000 eb:0.95,eth1:0.1,we:0.05,wn:0,smpl:219 93.986 us/op 67.780 us/op 1.39
getExpectedWithdrawals 250000 eb:0.95,eth1:0.3,we:0.05,wn:0,smpl:42 26.991 us/op 25.318 us/op 1.07
getExpectedWithdrawals 250000 eb:0.95,eth1:0.7,we:0.05,wn:0,smpl:18 19.403 us/op 19.299 us/op 1.01
getExpectedWithdrawals 250000 eb:0.1,eth1:0.1,we:0,wn:0,smpl:1020 203.80 us/op 228.79 us/op 0.89
getExpectedWithdrawals 250000 eb:0.03,eth1:0.03,we:0,wn:0,smpl:11777 1.7892 ms/op 1.9372 ms/op 0.92
getExpectedWithdrawals 250000 eb:0.01,eth1:0.01,we:0,wn:0,smpl:16384 2.8779 ms/op 2.0271 ms/op 1.42
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,smpl:16384 2.5128 ms/op 2.3370 ms/op 1.08
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,nocache,smpl:16384 4.8968 ms/op 4.3665 ms/op 1.12
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,smpl:16384 3.2820 ms/op 3.1005 ms/op 1.06
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,nocache,smpl:16384 8.7699 ms/op 7.2764 ms/op 1.21
Tree 40 250000 create 769.47 ms/op 655.08 ms/op 1.17
Tree 40 250000 get(125000) 241.66 ns/op 228.38 ns/op 1.06
Tree 40 250000 set(125000) 1.2588 us/op 1.3686 us/op 0.92
Tree 40 250000 toArray() 24.033 ms/op 24.737 ms/op 0.97
Tree 40 250000 iterate all - toArray() + loop 27.152 ms/op 23.306 ms/op 1.17
Tree 40 250000 iterate all - get(i) 83.541 ms/op 80.019 ms/op 1.04
MutableVector 250000 create 20.060 ms/op 18.737 ms/op 1.07
MutableVector 250000 get(125000) 7.4390 ns/op 7.4020 ns/op 1.00
MutableVector 250000 set(125000) 422.59 ns/op 437.16 ns/op 0.97
MutableVector 250000 toArray() 4.5263 ms/op 4.4605 ms/op 1.01
MutableVector 250000 iterate all - toArray() + loop 4.6346 ms/op 4.6909 ms/op 0.99
MutableVector 250000 iterate all - get(i) 1.6737 ms/op 1.7157 ms/op 0.98
Array 250000 create 3.8335 ms/op 4.5964 ms/op 0.83
Array 250000 clone - spread 1.7602 ms/op 4.6696 ms/op 0.38
Array 250000 get(125000) 1.2900 ns/op 3.2130 ns/op 0.40
Array 250000 set(125000) 5.4420 ns/op 6.9290 ns/op 0.79
Array 250000 iterate all - loop 182.32 us/op 199.67 us/op 0.91
effectiveBalanceIncrements clone Uint8Array 300000 58.644 us/op 93.982 us/op 0.62
effectiveBalanceIncrements clone MutableVector 300000 876.00 ns/op 1.4350 us/op 0.61
effectiveBalanceIncrements rw all Uint8Array 300000 239.81 us/op 233.47 us/op 1.03
effectiveBalanceIncrements rw all MutableVector 300000 149.86 ms/op 223.01 ms/op 0.67
phase0 afterProcessEpoch - 250000 vs - 7PWei 143.48 ms/op 128.18 ms/op 1.12
phase0 beforeProcessEpoch - 250000 vs - 7PWei 61.139 ms/op 61.573 ms/op 0.99
altair processEpoch - mainnet_e81889 563.90 ms/op 637.79 ms/op 0.88
mainnet_e81889 - altair beforeProcessEpoch 102.64 ms/op 96.188 ms/op 1.07
mainnet_e81889 - altair processJustificationAndFinalization 18.594 us/op 21.906 us/op 0.85
mainnet_e81889 - altair processInactivityUpdates 7.5645 ms/op 7.2981 ms/op 1.04
mainnet_e81889 - altair processRewardsAndPenalties 81.186 ms/op 73.851 ms/op 1.10
mainnet_e81889 - altair processRegistryUpdates 4.8310 us/op 3.2010 us/op 1.51
mainnet_e81889 - altair processSlashings 1.0220 us/op 583.00 ns/op 1.75
mainnet_e81889 - altair processEth1DataReset 1.2590 us/op 841.00 ns/op 1.50
mainnet_e81889 - altair processEffectiveBalanceUpdates 1.9712 ms/op 1.8273 ms/op 1.08
mainnet_e81889 - altair processSlashingsReset 5.3300 us/op 3.4120 us/op 1.56
mainnet_e81889 - altair processRandaoMixesReset 8.3850 us/op 4.8210 us/op 1.74
mainnet_e81889 - altair processHistoricalRootsUpdate 1.2200 us/op 1.0550 us/op 1.16
mainnet_e81889 - altair processParticipationFlagUpdates 2.5350 us/op 2.0930 us/op 1.21
mainnet_e81889 - altair processSyncCommitteeUpdates 804.00 ns/op 709.00 ns/op 1.13
mainnet_e81889 - altair afterProcessEpoch 143.78 ms/op 128.62 ms/op 1.12
capella processEpoch - mainnet_e217614 2.6905 s/op 2.8446 s/op 0.95
mainnet_e217614 - capella beforeProcessEpoch 626.91 ms/op 529.90 ms/op 1.18
mainnet_e217614 - capella processJustificationAndFinalization 39.831 us/op 25.128 us/op 1.59
mainnet_e217614 - capella processInactivityUpdates 27.206 ms/op 24.344 ms/op 1.12
mainnet_e217614 - capella processRewardsAndPenalties 449.11 ms/op 424.17 ms/op 1.06
mainnet_e217614 - capella processRegistryUpdates 32.396 us/op 42.315 us/op 0.77
mainnet_e217614 - capella processSlashings 1.9260 us/op 749.00 ns/op 2.57
mainnet_e217614 - capella processEth1DataReset 509.00 ns/op 686.00 ns/op 0.74
mainnet_e217614 - capella processEffectiveBalanceUpdates 21.250 ms/op 6.1334 ms/op 3.46
mainnet_e217614 - capella processSlashingsReset 11.131 us/op 3.5820 us/op 3.11
mainnet_e217614 - capella processRandaoMixesReset 9.4910 us/op 4.8350 us/op 1.96
mainnet_e217614 - capella processHistoricalRootsUpdate 740.00 ns/op 570.00 ns/op 1.30
mainnet_e217614 - capella processParticipationFlagUpdates 1.8140 us/op 1.3710 us/op 1.32
mainnet_e217614 - capella afterProcessEpoch 325.93 ms/op 338.74 ms/op 0.96
phase0 processEpoch - mainnet_e58758 514.72 ms/op 531.24 ms/op 0.97
mainnet_e58758 - phase0 beforeProcessEpoch 159.30 ms/op 157.03 ms/op 1.01
mainnet_e58758 - phase0 processJustificationAndFinalization 26.959 us/op 24.785 us/op 1.09
mainnet_e58758 - phase0 processRewardsAndPenalties 67.605 ms/op 62.550 ms/op 1.08
mainnet_e58758 - phase0 processRegistryUpdates 24.031 us/op 16.575 us/op 1.45
mainnet_e58758 - phase0 processSlashings 1.0480 us/op 1.1250 us/op 0.93
mainnet_e58758 - phase0 processEth1DataReset 705.00 ns/op 713.00 ns/op 0.99
mainnet_e58758 - phase0 processEffectiveBalanceUpdates 2.3679 ms/op 2.1802 ms/op 1.09
mainnet_e58758 - phase0 processSlashingsReset 9.5790 us/op 3.6430 us/op 2.63
mainnet_e58758 - phase0 processRandaoMixesReset 14.110 us/op 5.6550 us/op 2.50
mainnet_e58758 - phase0 processHistoricalRootsUpdate 1.6240 us/op 639.00 ns/op 2.54
mainnet_e58758 - phase0 processParticipationRecordUpdates 13.990 us/op 6.1680 us/op 2.27
mainnet_e58758 - phase0 afterProcessEpoch 135.67 ms/op 92.954 ms/op 1.46
phase0 processEffectiveBalanceUpdates - 250000 normalcase 2.2295 ms/op 2.5891 ms/op 0.86
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 2.9487 ms/op 1.4829 ms/op 1.99
altair processInactivityUpdates - 250000 normalcase 53.124 ms/op 30.604 ms/op 1.74
altair processInactivityUpdates - 250000 worstcase 40.949 ms/op 34.734 ms/op 1.18
phase0 processRegistryUpdates - 250000 normalcase 25.206 us/op 12.669 us/op 1.99
phase0 processRegistryUpdates - 250000 badcase_full_deposits 812.44 us/op 739.48 us/op 1.10
phase0 processRegistryUpdates - 250000 worstcase 0.5 245.48 ms/op 141.35 ms/op 1.74
altair processRewardsAndPenalties - 250000 normalcase 75.441 ms/op 66.541 ms/op 1.13
altair processRewardsAndPenalties - 250000 worstcase 100.41 ms/op 75.244 ms/op 1.33
phase0 getAttestationDeltas - 250000 normalcase 18.348 ms/op 9.2587 ms/op 1.98
phase0 getAttestationDeltas - 250000 worstcase 15.298 ms/op 8.9899 ms/op 1.70
phase0 processSlashings - 250000 worstcase 142.73 us/op 99.708 us/op 1.43
altair processSyncCommitteeUpdates - 250000 223.18 ms/op 161.06 ms/op 1.39
BeaconState.hashTreeRoot - No change 1.2360 us/op 560.00 ns/op 2.21
BeaconState.hashTreeRoot - 1 full validator 191.41 us/op 185.19 us/op 1.03
BeaconState.hashTreeRoot - 32 full validator 1.9727 ms/op 1.7780 ms/op 1.11
BeaconState.hashTreeRoot - 512 full validator 26.646 ms/op 19.802 ms/op 1.35
BeaconState.hashTreeRoot - 1 validator.effectiveBalance 313.88 us/op 213.00 us/op 1.47
BeaconState.hashTreeRoot - 32 validator.effectiveBalance 3.9401 ms/op 2.4133 ms/op 1.63
BeaconState.hashTreeRoot - 512 validator.effectiveBalance 62.903 ms/op 26.595 ms/op 2.37
BeaconState.hashTreeRoot - 1 balances 201.52 us/op 134.45 us/op 1.50
BeaconState.hashTreeRoot - 32 balances 2.0924 ms/op 1.4650 ms/op 1.43
BeaconState.hashTreeRoot - 512 balances 19.768 ms/op 12.575 ms/op 1.57
BeaconState.hashTreeRoot - 250000 balances 323.27 ms/op 234.18 ms/op 1.38
aggregationBits - 2048 els - zipIndexesInBitList 46.246 us/op 17.366 us/op 2.66
byteArrayEquals 32 86.590 ns/op 75.857 ns/op 1.14
Buffer.compare 32 65.071 ns/op 56.368 ns/op 1.15
byteArrayEquals 1024 2.3189 us/op 2.0354 us/op 1.14
Buffer.compare 1024 81.754 ns/op 71.692 ns/op 1.14
byteArrayEquals 16384 47.046 us/op 32.512 us/op 1.45
Buffer.compare 16384 320.37 ns/op 280.86 ns/op 1.14
byteArrayEquals 123687377 337.76 ms/op 247.74 ms/op 1.36
Buffer.compare 123687377 13.246 ms/op 6.4142 ms/op 2.07
byteArrayEquals 32 - diff last byte 109.78 ns/op 72.917 ns/op 1.51
Buffer.compare 32 - diff last byte 82.425 ns/op 57.614 ns/op 1.43
byteArrayEquals 1024 - diff last byte 2.6254 us/op 2.0559 us/op 1.28
Buffer.compare 1024 - diff last byte 86.217 ns/op 72.238 ns/op 1.19
byteArrayEquals 16384 - diff last byte 40.079 us/op 32.660 us/op 1.23
Buffer.compare 16384 - diff last byte 332.91 ns/op 245.60 ns/op 1.36
byteArrayEquals 123687377 - diff last byte 296.99 ms/op 243.63 ms/op 1.22
Buffer.compare 123687377 - diff last byte 8.6811 ms/op 6.3173 ms/op 1.37
byteArrayEquals 32 - random bytes 6.3020 ns/op 5.3420 ns/op 1.18
Buffer.compare 32 - random bytes 66.772 ns/op 60.255 ns/op 1.11
byteArrayEquals 1024 - random bytes 5.7470 ns/op 5.1610 ns/op 1.11
Buffer.compare 1024 - random bytes 66.630 ns/op 60.741 ns/op 1.10
byteArrayEquals 16384 - random bytes 6.7280 ns/op 5.1600 ns/op 1.30
Buffer.compare 16384 - random bytes 65.508 ns/op 59.927 ns/op 1.09
byteArrayEquals 123687377 - random bytes 9.6300 ns/op 8.3000 ns/op 1.16
Buffer.compare 123687377 - random bytes 77.940 ns/op 62.960 ns/op 1.24
regular array get 100000 times 49.751 us/op 43.927 us/op 1.13
wrappedArray get 100000 times 48.919 us/op 43.935 us/op 1.11
arrayWithProxy get 100000 times 15.231 ms/op 14.428 ms/op 1.06
ssz.Root.equals 60.458 ns/op 53.576 ns/op 1.13
byteArrayEquals 57.027 ns/op 52.347 ns/op 1.09
Buffer.compare 12.010 ns/op 10.776 ns/op 1.11
shuffle list - 16384 els 7.8604 ms/op 6.9340 ms/op 1.13
shuffle list - 250000 els 118.13 ms/op 102.09 ms/op 1.16
processSlot - 1 slots 19.365 us/op 20.273 us/op 0.96
processSlot - 32 slots 3.7080 ms/op 4.0377 ms/op 0.92
getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei 62.970 ms/op 61.530 ms/op 1.02
getCommitteeAssignments - req 1 vs - 250000 vc 2.8425 ms/op 2.5212 ms/op 1.13
getCommitteeAssignments - req 100 vs - 250000 vc 4.0352 ms/op 3.7313 ms/op 1.08
getCommitteeAssignments - req 1000 vs - 250000 vc 4.2916 ms/op 4.0986 ms/op 1.05
findModifiedValidators - 10000 modified validators 604.67 ms/op 529.72 ms/op 1.14
findModifiedValidators - 1000 modified validators 511.28 ms/op 463.54 ms/op 1.10
findModifiedValidators - 100 modified validators 530.11 ms/op 425.11 ms/op 1.25
findModifiedValidators - 10 modified validators 548.60 ms/op 413.52 ms/op 1.33
findModifiedValidators - 1 modified validators 480.09 ms/op 396.41 ms/op 1.21
findModifiedValidators - no difference 484.32 ms/op 428.30 ms/op 1.13
compare ViewDUs 4.9406 s/op 4.9741 s/op 0.99
compare each validator Uint8Array 1.8211 s/op 1.7198 s/op 1.06
compare ViewDU to Uint8Array 1.3864 s/op 1.4924 s/op 0.93
migrate state 1000000 validators, 24 modified, 0 new 836.00 ms/op 898.22 ms/op 0.93
migrate state 1000000 validators, 1700 modified, 1000 new 1.2514 s/op 1.1601 s/op 1.08
migrate state 1000000 validators, 3400 modified, 2000 new 1.3279 s/op 1.4507 s/op 0.92
migrate state 1500000 validators, 24 modified, 0 new 892.08 ms/op 935.45 ms/op 0.95
migrate state 1500000 validators, 1700 modified, 1000 new 1.4615 s/op 1.1961 s/op 1.22
migrate state 1500000 validators, 3400 modified, 2000 new 1.6833 s/op 1.4782 s/op 1.14
RootCache.getBlockRootAtSlot - 250000 vs - 7PWei 5.2800 ns/op 4.8200 ns/op 1.10
state getBlockRootAtSlot - 250000 vs - 7PWei 815.46 ns/op 624.01 ns/op 1.31
computeProposers - vc 250000 10.790 ms/op 9.6938 ms/op 1.11
computeEpochShuffling - vc 250000 117.32 ms/op 107.21 ms/op 1.09
getNextSyncCommittee - vc 250000 185.23 ms/op 162.55 ms/op 1.14
computeSigningRoot for AttestationData 37.316 us/op 25.329 us/op 1.47
hash AttestationData serialized data then Buffer.toString(base64) 2.6681 us/op 2.3772 us/op 1.12
toHexString serialized data 1.8045 us/op 1.1758 us/op 1.53
Buffer.toString(base64) 290.97 ns/op 249.34 ns/op 1.17

by benchmarkbot/action

Copy link
Member

@matthewkeil matthewkeil left a comment

Choose a reason for hiding this comment

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

Sounds good! 🎸

I appreciate the good comments as well!

@matthewkeil matthewkeil merged commit e0b6e28 into unstable Feb 15, 2024
13 of 15 checks passed
@matthewkeil matthewkeil deleted the blobs-push branch February 15, 2024 13:13
@wemeetagain
Copy link
Member

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

3 participants