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: de-duplicate payloads from persisted beacon blocks #7034

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

Conversation

matthewkeil
Copy link
Member

Motivation

Replace #6029

Motivation

Lodestar is saving data that is also saved in the execution client database. In particular we are persisting transactions and withdrawals in the block and blockArchive databases.

Description

Stores blinded blocks in both the hot and cold db. Modifies calls for data retrieval that require the full block, ReqResp and API, to splice in the missing transactions and withdrawals.

Copy link

codecov bot commented Aug 19, 2024

Codecov Report

Attention: Patch coverage is 27.27273% with 16 lines in your changes missing coverage. Please review.

Project coverage is 49.32%. Comparing base (5d2e1a7) to head (c893952).

Additional details and impacted files
@@             Coverage Diff              @@
##           unstable    #7034      +/-   ##
============================================
+ Coverage     49.24%   49.32%   +0.07%     
============================================
  Files           578      577       -1     
  Lines         37443    37369      -74     
  Branches       2168     2162       -6     
============================================
- Hits          18440    18431       -9     
+ Misses        18963    18898      -65     
  Partials         40       40              

Copy link
Contributor

github-actions bot commented Aug 19, 2024

Performance Report

✔️ no performance regression detected

Full benchmark results
Benchmark suite Current: abda1b0 Previous: b05c93e Ratio
getPubkeys - index2pubkey - req 1000 vs - 250000 vc 1.8072 ms/op 1.8922 ms/op 0.96
getPubkeys - validatorsArr - req 1000 vs - 250000 vc 39.602 us/op 50.311 us/op 0.79
BLS verify - blst 883.79 us/op 910.11 us/op 0.97
BLS verifyMultipleSignatures 3 - blst 1.3146 ms/op 1.2178 ms/op 1.08
BLS verifyMultipleSignatures 8 - blst 2.0212 ms/op 1.9058 ms/op 1.06
BLS verifyMultipleSignatures 32 - blst 4.3659 ms/op 5.4504 ms/op 0.80
BLS verifyMultipleSignatures 64 - blst 8.2638 ms/op 10.784 ms/op 0.77
BLS verifyMultipleSignatures 128 - blst 15.807 ms/op 17.466 ms/op 0.91
BLS deserializing 10000 signatures 604.53 ms/op 682.83 ms/op 0.89
BLS deserializing 100000 signatures 6.0385 s/op 6.8248 s/op 0.88
BLS verifyMultipleSignatures - same message - 3 - blst 949.71 us/op 976.91 us/op 0.97
BLS verifyMultipleSignatures - same message - 8 - blst 1.0391 ms/op 1.0508 ms/op 0.99
BLS verifyMultipleSignatures - same message - 32 - blst 1.6781 ms/op 1.7194 ms/op 0.98
BLS verifyMultipleSignatures - same message - 64 - blst 2.5351 ms/op 2.6214 ms/op 0.97
BLS verifyMultipleSignatures - same message - 128 - blst 4.1334 ms/op 4.3843 ms/op 0.94
BLS aggregatePubkeys 32 - blst 17.788 us/op 20.089 us/op 0.89
BLS aggregatePubkeys 128 - blst 63.096 us/op 70.620 us/op 0.89
notSeenSlots=1 numMissedVotes=1 numBadVotes=10 60.134 ms/op 66.242 ms/op 0.91
notSeenSlots=1 numMissedVotes=0 numBadVotes=4 50.583 ms/op 65.782 ms/op 0.77
notSeenSlots=2 numMissedVotes=1 numBadVotes=10 31.023 ms/op 40.036 ms/op 0.77
getSlashingsAndExits - default max 66.546 us/op 95.929 us/op 0.69
getSlashingsAndExits - 2k 267.23 us/op 325.96 us/op 0.82
proposeBlockBody type=full, size=empty 4.6985 ms/op 5.8315 ms/op 0.81
isKnown best case - 1 super set check 467.00 ns/op 337.00 ns/op 1.39
isKnown normal case - 2 super set checks 456.00 ns/op 323.00 ns/op 1.41
isKnown worse case - 16 super set checks 457.00 ns/op 308.00 ns/op 1.48
InMemoryCheckpointStateCache - add get delete 2.6240 us/op 3.1530 us/op 0.83
updateUnfinalizedPubkeys - updating 10 pubkeys 568.16 us/op 619.81 us/op 0.92
updateUnfinalizedPubkeys - updating 100 pubkeys 2.1550 ms/op 3.1527 ms/op 0.68
updateUnfinalizedPubkeys - updating 1000 pubkeys 39.259 ms/op 55.751 ms/op 0.70
validate api signedAggregateAndProof - struct 1.9424 ms/op 1.6223 ms/op 1.20
validate gossip signedAggregateAndProof - struct 1.9076 ms/op 2.5773 ms/op 0.74
validate gossip attestation - vc 640000 976.00 us/op 1.1353 ms/op 0.86
batch validate gossip attestation - vc 640000 - chunk 32 118.36 us/op 138.26 us/op 0.86
batch validate gossip attestation - vc 640000 - chunk 64 106.14 us/op 114.88 us/op 0.92
batch validate gossip attestation - vc 640000 - chunk 128 95.733 us/op 107.09 us/op 0.89
batch validate gossip attestation - vc 640000 - chunk 256 93.879 us/op 106.31 us/op 0.88
pickEth1Vote - no votes 866.84 us/op 1.2374 ms/op 0.70
pickEth1Vote - max votes 6.0544 ms/op 8.7804 ms/op 0.69
pickEth1Vote - Eth1Data hashTreeRoot value x2048 14.636 ms/op 13.294 ms/op 1.10
pickEth1Vote - Eth1Data hashTreeRoot tree x2048 21.033 ms/op 19.563 ms/op 1.08
pickEth1Vote - Eth1Data fastSerialize value x2048 370.19 us/op 488.64 us/op 0.76
pickEth1Vote - Eth1Data fastSerialize tree x2048 3.6828 ms/op 2.7160 ms/op 1.36
bytes32 toHexString 582.00 ns/op 475.00 ns/op 1.23
bytes32 Buffer.toString(hex) 420.00 ns/op 264.00 ns/op 1.59
bytes32 Buffer.toString(hex) from Uint8Array 521.00 ns/op 390.00 ns/op 1.34
bytes32 Buffer.toString(hex) + 0x 416.00 ns/op 270.00 ns/op 1.54
Object access 1 prop 0.31500 ns/op 0.16000 ns/op 1.97
Map access 1 prop 0.31900 ns/op 0.15200 ns/op 2.10
Object get x1000 5.2190 ns/op 6.0560 ns/op 0.86
Map get x1000 6.1500 ns/op 6.7270 ns/op 0.91
Object set x1000 22.176 ns/op 35.636 ns/op 0.62
Map set x1000 19.310 ns/op 24.800 ns/op 0.78
Return object 10000 times 0.29550 ns/op 0.29920 ns/op 0.99
Throw Error 10000 times 2.6571 us/op 3.4705 us/op 0.77
toHex 110.32 ns/op 149.65 ns/op 0.74
Buffer.from 103.33 ns/op 139.04 ns/op 0.74
shared Buffer 72.107 ns/op 89.769 ns/op 0.80
fastMsgIdFn sha256 / 200 bytes 1.9670 us/op 2.3200 us/op 0.85
fastMsgIdFn h32 xxhash / 200 bytes 406.00 ns/op 245.00 ns/op 1.66
fastMsgIdFn h64 xxhash / 200 bytes 434.00 ns/op 280.00 ns/op 1.55
fastMsgIdFn sha256 / 1000 bytes 5.9190 us/op 7.8060 us/op 0.76
fastMsgIdFn h32 xxhash / 1000 bytes 520.00 ns/op 383.00 ns/op 1.36
fastMsgIdFn h64 xxhash / 1000 bytes 497.00 ns/op 364.00 ns/op 1.37
fastMsgIdFn sha256 / 10000 bytes 49.241 us/op 66.111 us/op 0.74
fastMsgIdFn h32 xxhash / 10000 bytes 1.8920 us/op 1.9200 us/op 0.99
fastMsgIdFn h64 xxhash / 10000 bytes 1.3200 us/op 1.2590 us/op 1.05
send data - 1000 256B messages 10.024 ms/op 13.248 ms/op 0.76
send data - 1000 512B messages 14.410 ms/op 17.720 ms/op 0.81
send data - 1000 1024B messages 23.378 ms/op 26.656 ms/op 0.88
send data - 1000 1200B messages 22.890 ms/op 23.076 ms/op 0.99
send data - 1000 2048B messages 29.309 ms/op 32.507 ms/op 0.90
send data - 1000 4096B messages 27.261 ms/op 32.327 ms/op 0.84
send data - 1000 16384B messages 65.337 ms/op 75.337 ms/op 0.87
send data - 1000 65536B messages 247.28 ms/op 223.62 ms/op 1.11
enrSubnets - fastDeserialize 64 bits 1.0730 us/op 1.0880 us/op 0.99
enrSubnets - ssz BitVector 64 bits 497.00 ns/op 402.00 ns/op 1.24
enrSubnets - fastDeserialize 4 bits 315.00 ns/op 195.00 ns/op 1.62
enrSubnets - ssz BitVector 4 bits 501.00 ns/op 447.00 ns/op 1.12
prioritizePeers score -10:0 att 32-0.1 sync 2-0 124.01 us/op 175.39 us/op 0.71
prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 156.29 us/op 195.94 us/op 0.80
prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 248.13 us/op 391.73 us/op 0.63
prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 480.44 us/op 481.67 us/op 1.00
prioritizePeers score 0:0 att 64-1 sync 4-1 603.07 us/op 739.55 us/op 0.82
array of 16000 items push then shift 1.1996 us/op 1.6761 us/op 0.72
LinkedList of 16000 items push then shift 7.0840 ns/op 7.8510 ns/op 0.90
array of 16000 items push then pop 83.136 ns/op 140.00 ns/op 0.59
LinkedList of 16000 items push then pop 6.1290 ns/op 7.8060 ns/op 0.79
array of 24000 items push then shift 1.7501 us/op 2.5742 us/op 0.68
LinkedList of 24000 items push then shift 6.7710 ns/op 8.4590 ns/op 0.80
array of 24000 items push then pop 110.96 ns/op 188.23 ns/op 0.59
LinkedList of 24000 items push then pop 6.2970 ns/op 7.6230 ns/op 0.83
intersect bitArray bitLen 8 5.1400 ns/op 6.6780 ns/op 0.77
intersect array and set length 8 37.813 ns/op 54.364 ns/op 0.70
intersect bitArray bitLen 128 25.115 ns/op 31.345 ns/op 0.80
intersect array and set length 128 549.81 ns/op 929.26 ns/op 0.59
bitArray.getTrueBitIndexes() bitLen 128 2.3790 us/op 2.3200 us/op 1.03
bitArray.getTrueBitIndexes() bitLen 248 3.4350 us/op 4.3940 us/op 0.78
bitArray.getTrueBitIndexes() bitLen 512 6.2340 us/op 9.7670 us/op 0.64
Buffer.concat 32 items 1.0200 us/op 1.0730 us/op 0.95
Uint8Array.set 32 items 1.8310 us/op 1.6300 us/op 1.12
Buffer.copy 2.4570 us/op 2.1820 us/op 1.13
Uint8Array.set - with subarray 2.6590 us/op 3.1510 us/op 0.84
Uint8Array.set - without subarray 1.5430 us/op 1.6310 us/op 0.95
getUint32 - dataview 394.00 ns/op 316.00 ns/op 1.25
getUint32 - manual 329.00 ns/op 255.00 ns/op 1.29
Set add up to 64 items then delete first 1.7868 us/op 2.7536 us/op 0.65
OrderedSet add up to 64 items then delete first 2.7819 us/op 4.0716 us/op 0.68
Set add up to 64 items then delete last 2.0349 us/op 2.9983 us/op 0.68
OrderedSet add up to 64 items then delete last 3.0687 us/op 4.7860 us/op 0.64
Set add up to 64 items then delete middle 2.0293 us/op 2.6288 us/op 0.77
OrderedSet add up to 64 items then delete middle 4.2568 us/op 6.3458 us/op 0.67
Set add up to 128 items then delete first 3.7828 us/op 5.9284 us/op 0.64
OrderedSet add up to 128 items then delete first 5.9771 us/op 10.197 us/op 0.59
Set add up to 128 items then delete last 3.6488 us/op 5.8826 us/op 0.62
OrderedSet add up to 128 items then delete last 5.6190 us/op 8.8673 us/op 0.63
Set add up to 128 items then delete middle 3.6487 us/op 5.8234 us/op 0.63
OrderedSet add up to 128 items then delete middle 11.187 us/op 15.080 us/op 0.74
Set add up to 256 items then delete first 7.4918 us/op 10.754 us/op 0.70
OrderedSet add up to 256 items then delete first 11.980 us/op 16.999 us/op 0.70
Set add up to 256 items then delete last 7.2389 us/op 11.025 us/op 0.66
OrderedSet add up to 256 items then delete last 11.355 us/op 16.788 us/op 0.68
Set add up to 256 items then delete middle 7.2296 us/op 10.133 us/op 0.71
OrderedSet add up to 256 items then delete middle 32.731 us/op 43.009 us/op 0.76
transfer serialized Status (84 B) 1.4660 us/op 1.4900 us/op 0.98
copy serialized Status (84 B) 1.2290 us/op 1.2340 us/op 1.00
transfer serialized SignedVoluntaryExit (112 B) 1.7260 us/op 1.5790 us/op 1.09
copy serialized SignedVoluntaryExit (112 B) 1.3750 us/op 1.2630 us/op 1.09
transfer serialized ProposerSlashing (416 B) 2.5600 us/op 2.0960 us/op 1.22
copy serialized ProposerSlashing (416 B) 1.9860 us/op 1.8120 us/op 1.10
transfer serialized Attestation (485 B) 2.5060 us/op 1.9030 us/op 1.32
copy serialized Attestation (485 B) 1.8580 us/op 1.8250 us/op 1.02
transfer serialized AttesterSlashing (33232 B) 1.9710 us/op 2.5030 us/op 0.79
copy serialized AttesterSlashing (33232 B) 4.9110 us/op 5.4330 us/op 0.90
transfer serialized Small SignedBeaconBlock (128000 B) 2.4080 us/op 3.0420 us/op 0.79
copy serialized Small SignedBeaconBlock (128000 B) 13.302 us/op 15.933 us/op 0.83
transfer serialized Avg SignedBeaconBlock (200000 B) 3.0150 us/op 3.4720 us/op 0.87
copy serialized Avg SignedBeaconBlock (200000 B) 19.131 us/op 21.993 us/op 0.87
transfer serialized BlobsSidecar (524380 B) 2.9540 us/op 3.2270 us/op 0.92
copy serialized BlobsSidecar (524380 B) 117.82 us/op 97.114 us/op 1.21
transfer serialized Big SignedBeaconBlock (1000000 B) 3.2930 us/op 3.2000 us/op 1.03
copy serialized Big SignedBeaconBlock (1000000 B) 222.74 us/op 258.56 us/op 0.86
pass gossip attestations to forkchoice per slot 2.4205 ms/op 2.8533 ms/op 0.85
forkChoice updateHead vc 100000 bc 64 eq 0 493.09 us/op 497.46 us/op 0.99
forkChoice updateHead vc 600000 bc 64 eq 0 2.3525 ms/op 3.9550 ms/op 0.59
forkChoice updateHead vc 1000000 bc 64 eq 0 4.0906 ms/op 5.2531 ms/op 0.78
forkChoice updateHead vc 600000 bc 320 eq 0 2.4638 ms/op 3.0745 ms/op 0.80
forkChoice updateHead vc 600000 bc 1200 eq 0 2.5700 ms/op 3.2760 ms/op 0.78
forkChoice updateHead vc 600000 bc 7200 eq 0 2.7736 ms/op 3.7638 ms/op 0.74
forkChoice updateHead vc 600000 bc 64 eq 1000 9.6455 ms/op 10.896 ms/op 0.89
forkChoice updateHead vc 600000 bc 64 eq 10000 9.5672 ms/op 10.949 ms/op 0.87
forkChoice updateHead vc 600000 bc 64 eq 300000 11.762 ms/op 14.463 ms/op 0.81
computeDeltas 500000 validators 300 proto nodes 3.0450 ms/op 3.7476 ms/op 0.81
computeDeltas 500000 validators 1200 proto nodes 3.0981 ms/op 3.7564 ms/op 0.82
computeDeltas 500000 validators 7200 proto nodes 3.2229 ms/op 3.8664 ms/op 0.83
computeDeltas 750000 validators 300 proto nodes 4.7615 ms/op 5.4558 ms/op 0.87
computeDeltas 750000 validators 1200 proto nodes 4.4965 ms/op 5.4714 ms/op 0.82
computeDeltas 750000 validators 7200 proto nodes 4.6083 ms/op 5.3540 ms/op 0.86
computeDeltas 1400000 validators 300 proto nodes 8.4918 ms/op 10.441 ms/op 0.81
computeDeltas 1400000 validators 1200 proto nodes 8.3093 ms/op 10.633 ms/op 0.78
computeDeltas 1400000 validators 7200 proto nodes 8.4811 ms/op 10.172 ms/op 0.83
computeDeltas 2100000 validators 300 proto nodes 12.817 ms/op 15.100 ms/op 0.85
computeDeltas 2100000 validators 1200 proto nodes 12.554 ms/op 15.241 ms/op 0.82
computeDeltas 2100000 validators 7200 proto nodes 12.715 ms/op 15.623 ms/op 0.81
altair processAttestation - 250000 vs - 7PWei normalcase 1.5971 ms/op 2.1149 ms/op 0.76
altair processAttestation - 250000 vs - 7PWei worstcase 2.1641 ms/op 3.5275 ms/op 0.61
altair processAttestation - setStatus - 1/6 committees join 66.116 us/op 103.77 us/op 0.64
altair processAttestation - setStatus - 1/3 committees join 139.87 us/op 175.70 us/op 0.80
altair processAttestation - setStatus - 1/2 committees join 190.14 us/op 245.06 us/op 0.78
altair processAttestation - setStatus - 2/3 committees join 263.69 us/op 325.33 us/op 0.81
altair processAttestation - setStatus - 4/5 committees join 393.61 us/op 479.87 us/op 0.82
altair processAttestation - setStatus - 100% committees join 464.35 us/op 573.26 us/op 0.81
altair processBlock - 250000 vs - 7PWei normalcase 4.5713 ms/op 4.2532 ms/op 1.07
altair processBlock - 250000 vs - 7PWei normalcase hashState 23.063 ms/op 27.265 ms/op 0.85
altair processBlock - 250000 vs - 7PWei worstcase 32.647 ms/op 41.032 ms/op 0.80
altair processBlock - 250000 vs - 7PWei worstcase hashState 63.634 ms/op 93.696 ms/op 0.68
phase0 processBlock - 250000 vs - 7PWei normalcase 1.9672 ms/op 2.6724 ms/op 0.74
phase0 processBlock - 250000 vs - 7PWei worstcase 23.661 ms/op 25.272 ms/op 0.94
altair processEth1Data - 250000 vs - 7PWei normalcase 253.44 us/op 375.11 us/op 0.68
getExpectedWithdrawals 250000 eb:1,eth1:1,we:0,wn:0,smpl:15 4.5440 us/op 6.8920 us/op 0.66
getExpectedWithdrawals 250000 eb:0.95,eth1:0.1,we:0.05,wn:0,smpl:219 28.455 us/op 37.023 us/op 0.77
getExpectedWithdrawals 250000 eb:0.95,eth1:0.3,we:0.05,wn:0,smpl:42 8.4380 us/op 9.7680 us/op 0.86
getExpectedWithdrawals 250000 eb:0.95,eth1:0.7,we:0.05,wn:0,smpl:18 5.5570 us/op 6.2710 us/op 0.89
getExpectedWithdrawals 250000 eb:0.1,eth1:0.1,we:0,wn:0,smpl:1020 131.02 us/op 158.84 us/op 0.82
getExpectedWithdrawals 250000 eb:0.03,eth1:0.03,we:0,wn:0,smpl:11777 785.97 us/op 1.3477 ms/op 0.58
getExpectedWithdrawals 250000 eb:0.01,eth1:0.01,we:0,wn:0,smpl:16384 1.0469 ms/op 1.8789 ms/op 0.56
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,smpl:16384 1.0253 ms/op 1.5759 ms/op 0.65
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,nocache,smpl:16384 2.8655 ms/op 3.5937 ms/op 0.80
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,smpl:16384 1.1474 ms/op 2.4625 ms/op 0.47
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,nocache,smpl:16384 3.0861 ms/op 3.4929 ms/op 0.88
Tree 40 250000 create 191.50 ms/op 217.23 ms/op 0.88
Tree 40 250000 get(125000) 115.68 ns/op 153.43 ns/op 0.75
Tree 40 250000 set(125000) 564.59 ns/op 700.02 ns/op 0.81
Tree 40 250000 toArray() 16.117 ms/op 20.130 ms/op 0.80
Tree 40 250000 iterate all - toArray() + loop 15.844 ms/op 20.919 ms/op 0.76
Tree 40 250000 iterate all - get(i) 43.335 ms/op 57.789 ms/op 0.75
Array 250000 create 2.7917 ms/op 3.2383 ms/op 0.86
Array 250000 clone - spread 1.2710 ms/op 1.4802 ms/op 0.86
Array 250000 get(125000) 0.56300 ns/op 0.42100 ns/op 1.34
Array 250000 set(125000) 0.57000 ns/op 0.43100 ns/op 1.32
Array 250000 iterate all - loop 75.268 us/op 82.040 us/op 0.92
phase0 afterProcessEpoch - 250000 vs - 7PWei 75.137 ms/op 94.741 ms/op 0.79
Array.fill - length 1000000 2.5416 ms/op 3.8215 ms/op 0.67
Array push - length 1000000 9.2328 ms/op 21.785 ms/op 0.42
Array.get 0.26646 ns/op 0.29227 ns/op 0.91
Uint8Array.get 0.34375 ns/op 0.44766 ns/op 0.77
phase0 beforeProcessEpoch - 250000 vs - 7PWei 12.111 ms/op 17.651 ms/op 0.69
altair processEpoch - mainnet_e81889 325.65 ms/op 359.23 ms/op 0.91
mainnet_e81889 - altair beforeProcessEpoch 18.948 ms/op 18.440 ms/op 1.03
mainnet_e81889 - altair processJustificationAndFinalization 6.6180 us/op 17.955 us/op 0.37
mainnet_e81889 - altair processInactivityUpdates 5.2923 ms/op 5.2782 ms/op 1.00
mainnet_e81889 - altair processRewardsAndPenalties 52.935 ms/op 59.699 ms/op 0.89
mainnet_e81889 - altair processRegistryUpdates 2.2730 us/op 3.0090 us/op 0.76
mainnet_e81889 - altair processSlashings 785.00 ns/op 605.00 ns/op 1.30
mainnet_e81889 - altair processEth1DataReset 684.00 ns/op 379.00 ns/op 1.80
mainnet_e81889 - altair processEffectiveBalanceUpdates 1.0318 ms/op 2.6697 ms/op 0.39
mainnet_e81889 - altair processSlashingsReset 2.3810 us/op 2.5420 us/op 0.94
mainnet_e81889 - altair processRandaoMixesReset 2.9490 us/op 3.1160 us/op 0.95
mainnet_e81889 - altair processHistoricalRootsUpdate 1.6550 us/op 832.00 ns/op 1.99
mainnet_e81889 - altair processParticipationFlagUpdates 1.6650 us/op 3.0030 us/op 0.55
mainnet_e81889 - altair processSyncCommitteeUpdates 739.00 ns/op 477.00 ns/op 1.55
mainnet_e81889 - altair afterProcessEpoch 76.975 ms/op 99.297 ms/op 0.78
capella processEpoch - mainnet_e217614 1.0702 s/op 1.2617 s/op 0.85
mainnet_e217614 - capella beforeProcessEpoch 64.353 ms/op 73.985 ms/op 0.87
mainnet_e217614 - capella processJustificationAndFinalization 11.048 us/op 23.602 us/op 0.47
mainnet_e217614 - capella processInactivityUpdates 15.678 ms/op 16.281 ms/op 0.96
mainnet_e217614 - capella processRewardsAndPenalties 254.46 ms/op 280.78 ms/op 0.91
mainnet_e217614 - capella processRegistryUpdates 11.309 us/op 20.223 us/op 0.56
mainnet_e217614 - capella processSlashings 820.00 ns/op 658.00 ns/op 1.25
mainnet_e217614 - capella processEth1DataReset 667.00 ns/op 603.00 ns/op 1.11
mainnet_e217614 - capella processEffectiveBalanceUpdates 11.125 ms/op 12.762 ms/op 0.87
mainnet_e217614 - capella processSlashingsReset 1.6440 us/op 3.1980 us/op 0.51
mainnet_e217614 - capella processRandaoMixesReset 3.3600 us/op 4.3990 us/op 0.76
mainnet_e217614 - capella processHistoricalRootsUpdate 675.00 ns/op 479.00 ns/op 1.41
mainnet_e217614 - capella processParticipationFlagUpdates 2.0540 us/op 3.9390 us/op 0.52
mainnet_e217614 - capella afterProcessEpoch 196.86 ms/op 238.58 ms/op 0.83
phase0 processEpoch - mainnet_e58758 381.72 ms/op 436.80 ms/op 0.87
mainnet_e58758 - phase0 beforeProcessEpoch 80.601 ms/op 83.891 ms/op 0.96
mainnet_e58758 - phase0 processJustificationAndFinalization 13.118 us/op 22.790 us/op 0.58
mainnet_e58758 - phase0 processRewardsAndPenalties 29.280 ms/op 36.336 ms/op 0.81
mainnet_e58758 - phase0 processRegistryUpdates 6.3350 us/op 12.488 us/op 0.51
mainnet_e58758 - phase0 processSlashings 798.00 ns/op 490.00 ns/op 1.63
mainnet_e58758 - phase0 processEth1DataReset 739.00 ns/op 548.00 ns/op 1.35
mainnet_e58758 - phase0 processEffectiveBalanceUpdates 1.3647 ms/op 2.9223 ms/op 0.47
mainnet_e58758 - phase0 processSlashingsReset 2.0520 us/op 4.1130 us/op 0.50
mainnet_e58758 - phase0 processRandaoMixesReset 3.0690 us/op 5.7890 us/op 0.53
mainnet_e58758 - phase0 processHistoricalRootsUpdate 646.00 ns/op 469.00 ns/op 1.38
mainnet_e58758 - phase0 processParticipationRecordUpdates 2.7320 us/op 4.3250 us/op 0.63
mainnet_e58758 - phase0 afterProcessEpoch 62.345 ms/op 82.402 ms/op 0.76
phase0 processEffectiveBalanceUpdates - 250000 normalcase 994.08 us/op 1.3079 ms/op 0.76
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 1.5746 ms/op 2.1866 ms/op 0.72
altair processInactivityUpdates - 250000 normalcase 15.520 ms/op 21.012 ms/op 0.74
altair processInactivityUpdates - 250000 worstcase 17.623 ms/op 21.391 ms/op 0.82
phase0 processRegistryUpdates - 250000 normalcase 5.4870 us/op 6.1370 us/op 0.89
phase0 processRegistryUpdates - 250000 badcase_full_deposits 287.94 us/op 341.00 us/op 0.84
phase0 processRegistryUpdates - 250000 worstcase 0.5 101.12 ms/op 122.16 ms/op 0.83
altair processRewardsAndPenalties - 250000 normalcase 28.766 ms/op 48.660 ms/op 0.59
altair processRewardsAndPenalties - 250000 worstcase 29.487 ms/op 56.556 ms/op 0.52
phase0 getAttestationDeltas - 250000 normalcase 5.9292 ms/op 7.1894 ms/op 0.82
phase0 getAttestationDeltas - 250000 worstcase 6.5374 ms/op 7.0507 ms/op 0.93
phase0 processSlashings - 250000 worstcase 86.922 us/op 120.83 us/op 0.72
altair processSyncCommitteeUpdates - 250000 103.85 ms/op 121.16 ms/op 0.86
BeaconState.hashTreeRoot - No change 477.00 ns/op 258.00 ns/op 1.85
BeaconState.hashTreeRoot - 1 full validator 96.010 us/op 147.99 us/op 0.65
BeaconState.hashTreeRoot - 32 full validator 898.94 us/op 1.6052 ms/op 0.56
BeaconState.hashTreeRoot - 512 full validator 8.4428 ms/op 13.486 ms/op 0.63
BeaconState.hashTreeRoot - 1 validator.effectiveBalance 112.97 us/op 142.53 us/op 0.79
BeaconState.hashTreeRoot - 32 validator.effectiveBalance 1.7808 ms/op 2.1058 ms/op 0.85
BeaconState.hashTreeRoot - 512 validator.effectiveBalance 20.233 ms/op 29.176 ms/op 0.69
BeaconState.hashTreeRoot - 1 balances 89.344 us/op 133.49 us/op 0.67
BeaconState.hashTreeRoot - 32 balances 607.45 us/op 1.1740 ms/op 0.52
BeaconState.hashTreeRoot - 512 balances 7.7789 ms/op 11.658 ms/op 0.67
BeaconState.hashTreeRoot - 250000 balances 150.34 ms/op 190.76 ms/op 0.79
aggregationBits - 2048 els - zipIndexesInBitList 19.419 us/op 23.370 us/op 0.83
byteArrayEquals 32 47.711 ns/op 51.519 ns/op 0.93
Buffer.compare 32 15.617 ns/op 16.419 ns/op 0.95
byteArrayEquals 1024 1.2664 us/op 1.5260 us/op 0.83
Buffer.compare 1024 23.753 ns/op 23.599 ns/op 1.01
byteArrayEquals 16384 20.247 us/op 24.250 us/op 0.83
Buffer.compare 16384 184.47 ns/op 190.85 ns/op 0.97
byteArrayEquals 123687377 144.33 ms/op 183.35 ms/op 0.79
Buffer.compare 123687377 4.5068 ms/op 6.1803 ms/op 0.73
byteArrayEquals 32 - diff last byte 47.495 ns/op 51.871 ns/op 0.92
Buffer.compare 32 - diff last byte 16.066 ns/op 16.811 ns/op 0.96
byteArrayEquals 1024 - diff last byte 1.2756 us/op 1.5570 us/op 0.82
Buffer.compare 1024 - diff last byte 23.843 ns/op 25.262 ns/op 0.94
byteArrayEquals 16384 - diff last byte 20.023 us/op 24.810 us/op 0.81
Buffer.compare 16384 - diff last byte 168.78 ns/op 195.81 ns/op 0.86
byteArrayEquals 123687377 - diff last byte 153.13 ms/op 185.48 ms/op 0.83
Buffer.compare 123687377 - diff last byte 5.1134 ms/op 6.1979 ms/op 0.83
byteArrayEquals 32 - random bytes 5.1470 ns/op 5.0080 ns/op 1.03
Buffer.compare 32 - random bytes 16.058 ns/op 16.699 ns/op 0.96
byteArrayEquals 1024 - random bytes 5.0590 ns/op 5.0240 ns/op 1.01
Buffer.compare 1024 - random bytes 15.848 ns/op 16.664 ns/op 0.95
byteArrayEquals 16384 - random bytes 5.0720 ns/op 5.0120 ns/op 1.01
Buffer.compare 16384 - random bytes 15.807 ns/op 17.000 ns/op 0.93
byteArrayEquals 123687377 - random bytes 7.8800 ns/op 6.3100 ns/op 1.25
Buffer.compare 123687377 - random bytes 18.710 ns/op 17.950 ns/op 1.04
regular array get 100000 times 31.260 us/op 41.309 us/op 0.76
wrappedArray get 100000 times 31.202 us/op 32.121 us/op 0.97
arrayWithProxy get 100000 times 10.509 ms/op 14.838 ms/op 0.71
ssz.Root.equals 44.150 ns/op 44.671 ns/op 0.99
byteArrayEquals 42.784 ns/op 43.937 ns/op 0.97
Buffer.compare 9.2080 ns/op 10.101 ns/op 0.91
shuffle list - 16384 els 5.5473 ms/op 5.9155 ms/op 0.94
shuffle list - 250000 els 80.958 ms/op 87.288 ms/op 0.93
processSlot - 1 slots 10.822 us/op 14.754 us/op 0.73
processSlot - 32 slots 3.1859 ms/op 3.4247 ms/op 0.93
getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei 35.306 ms/op 42.149 ms/op 0.84
getCommitteeAssignments - req 1 vs - 250000 vc 1.7748 ms/op 2.1085 ms/op 0.84
getCommitteeAssignments - req 100 vs - 250000 vc 3.4860 ms/op 4.0632 ms/op 0.86
getCommitteeAssignments - req 1000 vs - 250000 vc 3.7279 ms/op 4.4299 ms/op 0.84
findModifiedValidators - 10000 modified validators 204.81 ms/op 248.60 ms/op 0.82
findModifiedValidators - 1000 modified validators 145.82 ms/op 173.35 ms/op 0.84
findModifiedValidators - 100 modified validators 137.83 ms/op 157.35 ms/op 0.88
findModifiedValidators - 10 modified validators 128.36 ms/op 163.10 ms/op 0.79
findModifiedValidators - 1 modified validators 127.50 ms/op 157.23 ms/op 0.81
findModifiedValidators - no difference 149.32 ms/op 161.34 ms/op 0.93
compare ViewDUs 2.9466 s/op 3.1548 s/op 0.93
compare each validator Uint8Array 1.8544 s/op 1.8921 s/op 0.98
compare ViewDU to Uint8Array 744.85 ms/op 959.79 ms/op 0.78
migrate state 1000000 validators, 24 modified, 0 new 528.48 ms/op 622.81 ms/op 0.85
migrate state 1000000 validators, 1700 modified, 1000 new 713.51 ms/op 876.93 ms/op 0.81
migrate state 1000000 validators, 3400 modified, 2000 new 1.0245 s/op 1.1290 s/op 0.91
migrate state 1500000 validators, 24 modified, 0 new 546.05 ms/op 634.19 ms/op 0.86
migrate state 1500000 validators, 1700 modified, 1000 new 734.41 ms/op 897.46 ms/op 0.82
migrate state 1500000 validators, 3400 modified, 2000 new 1.0545 s/op 1.1186 s/op 0.94
RootCache.getBlockRootAtSlot - 250000 vs - 7PWei 5.7600 ns/op 4.5300 ns/op 1.27
state getBlockRootAtSlot - 250000 vs - 7PWei 971.04 ns/op 686.92 ns/op 1.41
computeProposers - vc 250000 7.1008 ms/op 8.2807 ms/op 0.86
computeEpochShuffling - vc 250000 81.419 ms/op 92.225 ms/op 0.88
getNextSyncCommittee - vc 250000 114.99 ms/op 129.70 ms/op 0.89
computeSigningRoot for AttestationData 25.636 us/op 20.795 us/op 1.23
hash AttestationData serialized data then Buffer.toString(base64) 1.1735 us/op 1.5428 us/op 0.76
toHexString serialized data 789.12 ns/op 944.59 ns/op 0.84
Buffer.toString(base64) 142.41 ns/op 185.19 ns/op 0.77
nodejs block root to RootHex using toHex 117.98 ns/op 146.32 ns/op 0.81
nodejs block root to RootHex using toRootHex 81.095 ns/op 88.568 ns/op 0.92
browser block root to RootHex using the deprecated toHexString 210.08 ns/op 227.77 ns/op 0.92
browser block root to RootHex using toHex 167.36 ns/op 184.91 ns/op 0.91
browser block root to RootHex using toRootHex 140.87 ns/op 171.18 ns/op 0.82

by benchmarkbot/action

@matthewkeil matthewkeil force-pushed the mkeil/dedup-beacon-block-3 branch from 46649b0 to c893952 Compare August 27, 2024 05:45
@matthewkeil matthewkeil force-pushed the mkeil/dedup-beacon-block-3 branch from d9fa635 to dea3b7d Compare September 16, 2024 07:57
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.

2 participants