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

docs: update dependency graph #6981

Merged
merged 30 commits into from
Jul 30, 2024
Merged

docs: update dependency graph #6981

merged 30 commits into from
Jul 30, 2024

Conversation

philknows
Copy link
Member

Motivation

In order to assist the upcoming EF Attackathon, it would be good to update dependencies for contributors of all sorts to understand the high-level overview of Lodestar, its packages and dependencies for a better experience. The last update to this was over 4 years ago.

Description

This PR modifies the depgraph.md page to be up-to-date on the current architecture of Lodestar and how everything fits together. Newer packages such as the Prover have not even been mentioned due to its recent development.

Copy link

codecov bot commented Jul 26, 2024

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 62.49%. Comparing base (3ecee07) to head (9f53ffc).
Report is 5 commits behind head on unstable.

Additional details and impacted files
@@            Coverage Diff            @@
##           unstable    #6981   +/-   ##
=========================================
  Coverage     62.49%   62.49%           
=========================================
  Files           576      576           
  Lines         61170    61190   +20     
  Branches       2134     2141    +7     
=========================================
+ Hits          38227    38243   +16     
- Misses        22904    22908    +4     
  Partials         39       39           

Copy link
Contributor

github-actions bot commented Jul 26, 2024

Performance Report

✔️ no performance regression detected

Full benchmark results
Benchmark suite Current: ed03438 Previous: 4c3199a Ratio
getPubkeys - index2pubkey - req 1000 vs - 250000 vc 1.8770 ms/op 1.8768 ms/op 1.00
getPubkeys - validatorsArr - req 1000 vs - 250000 vc 39.806 us/op 42.358 us/op 0.94
BLS verify - blst 919.12 us/op 876.35 us/op 1.05
BLS verifyMultipleSignatures 3 - blst 1.3089 ms/op 1.3549 ms/op 0.97
BLS verifyMultipleSignatures 8 - blst 2.0624 ms/op 1.9832 ms/op 1.04
BLS verifyMultipleSignatures 32 - blst 4.4386 ms/op 4.4891 ms/op 0.99
BLS verifyMultipleSignatures 64 - blst 8.3773 ms/op 8.3271 ms/op 1.01
BLS verifyMultipleSignatures 128 - blst 15.933 ms/op 15.825 ms/op 1.01
BLS deserializing 10000 signatures 609.25 ms/op 603.60 ms/op 1.01
BLS deserializing 100000 signatures 6.1500 s/op 6.3866 s/op 0.96
BLS verifyMultipleSignatures - same message - 3 - blst 910.21 us/op 1.0054 ms/op 0.91
BLS verifyMultipleSignatures - same message - 8 - blst 1.1020 ms/op 1.0078 ms/op 1.09
BLS verifyMultipleSignatures - same message - 32 - blst 1.6925 ms/op 1.7437 ms/op 0.97
BLS verifyMultipleSignatures - same message - 64 - blst 2.5539 ms/op 2.6275 ms/op 0.97
BLS verifyMultipleSignatures - same message - 128 - blst 4.1284 ms/op 4.2252 ms/op 0.98
BLS aggregatePubkeys 32 - blst 18.283 us/op 19.321 us/op 0.95
BLS aggregatePubkeys 128 - blst 63.113 us/op 64.983 us/op 0.97
notSeenSlots=1 numMissedVotes=1 numBadVotes=10 47.311 ms/op 73.288 ms/op 0.65
notSeenSlots=1 numMissedVotes=0 numBadVotes=4 62.392 ms/op 65.452 ms/op 0.95
notSeenSlots=2 numMissedVotes=1 numBadVotes=10 30.954 ms/op 42.185 ms/op 0.73
getSlashingsAndExits - default max 88.219 us/op 199.76 us/op 0.44
getSlashingsAndExits - 2k 315.85 us/op 327.09 us/op 0.97
proposeBlockBody type=full, size=empty 4.9115 ms/op 5.6711 ms/op 0.87
isKnown best case - 1 super set check 457.00 ns/op 510.00 ns/op 0.90
isKnown normal case - 2 super set checks 461.00 ns/op 483.00 ns/op 0.95
isKnown worse case - 16 super set checks 464.00 ns/op 475.00 ns/op 0.98
InMemoryCheckpointStateCache - add get delete 4.3640 us/op 4.6070 us/op 0.95
validate api signedAggregateAndProof - struct 1.4809 ms/op 1.5412 ms/op 0.96
validate gossip signedAggregateAndProof - struct 1.4528 ms/op 1.5519 ms/op 0.94
validate gossip attestation - vc 640000 985.73 us/op 1.0054 ms/op 0.98
batch validate gossip attestation - vc 640000 - chunk 32 120.31 us/op 133.57 us/op 0.90
batch validate gossip attestation - vc 640000 - chunk 64 108.23 us/op 110.19 us/op 0.98
batch validate gossip attestation - vc 640000 - chunk 128 95.615 us/op 106.39 us/op 0.90
batch validate gossip attestation - vc 640000 - chunk 256 93.953 us/op 102.42 us/op 0.92
pickEth1Vote - no votes 790.29 us/op 854.75 us/op 0.92
pickEth1Vote - max votes 6.7771 ms/op 5.8723 ms/op 1.15
pickEth1Vote - Eth1Data hashTreeRoot value x2048 14.709 ms/op 9.9916 ms/op 1.47
pickEth1Vote - Eth1Data hashTreeRoot tree x2048 20.097 ms/op 14.319 ms/op 1.40
pickEth1Vote - Eth1Data fastSerialize value x2048 338.14 us/op 385.69 us/op 0.88
pickEth1Vote - Eth1Data fastSerialize tree x2048 5.6414 ms/op 3.0543 ms/op 1.85
bytes32 toHexString 589.00 ns/op 624.00 ns/op 0.94
bytes32 Buffer.toString(hex) 415.00 ns/op 496.00 ns/op 0.84
bytes32 Buffer.toString(hex) from Uint8Array 495.00 ns/op 708.00 ns/op 0.70
bytes32 Buffer.toString(hex) + 0x 414.00 ns/op 467.00 ns/op 0.89
Object access 1 prop 0.31400 ns/op 0.36800 ns/op 0.85
Map access 1 prop 0.31000 ns/op 0.35700 ns/op 0.87
Object get x1000 4.7430 ns/op 5.4290 ns/op 0.87
Map get x1000 5.4240 ns/op 5.9730 ns/op 0.91
Object set x1000 24.583 ns/op 23.372 ns/op 1.05
Map set x1000 18.131 ns/op 19.861 ns/op 0.91
Return object 10000 times 0.27940 ns/op 0.33170 ns/op 0.84
Throw Error 10000 times 2.5225 us/op 2.8014 us/op 0.90
fastMsgIdFn sha256 / 200 bytes 1.8540 us/op 2.2070 us/op 0.84
fastMsgIdFn h32 xxhash / 200 bytes 385.00 ns/op 489.00 ns/op 0.79
fastMsgIdFn h64 xxhash / 200 bytes 430.00 ns/op 491.00 ns/op 0.88
fastMsgIdFn sha256 / 1000 bytes 5.6990 us/op 6.1730 us/op 0.92
fastMsgIdFn h32 xxhash / 1000 bytes 506.00 ns/op 622.00 ns/op 0.81
fastMsgIdFn h64 xxhash / 1000 bytes 499.00 ns/op 558.00 ns/op 0.89
fastMsgIdFn sha256 / 10000 bytes 47.078 us/op 52.046 us/op 0.90
fastMsgIdFn h32 xxhash / 10000 bytes 1.8140 us/op 2.0460 us/op 0.89
fastMsgIdFn h64 xxhash / 10000 bytes 1.2670 us/op 1.4020 us/op 0.90
send data - 1000 256B messages 9.6805 ms/op 10.916 ms/op 0.89
send data - 1000 512B messages 12.733 ms/op 16.991 ms/op 0.75
send data - 1000 1024B messages 22.041 ms/op 27.038 ms/op 0.82
send data - 1000 1200B messages 23.977 ms/op 25.779 ms/op 0.93
send data - 1000 2048B messages 28.961 ms/op 33.545 ms/op 0.86
send data - 1000 4096B messages 25.635 ms/op 30.060 ms/op 0.85
send data - 1000 16384B messages 61.060 ms/op 67.599 ms/op 0.90
send data - 1000 65536B messages 235.00 ms/op 299.18 ms/op 0.79
enrSubnets - fastDeserialize 64 bits 1.0690 us/op 1.3620 us/op 0.78
enrSubnets - ssz BitVector 64 bits 506.00 ns/op 670.00 ns/op 0.76
enrSubnets - fastDeserialize 4 bits 310.00 ns/op 395.00 ns/op 0.78
enrSubnets - ssz BitVector 4 bits 503.00 ns/op 657.00 ns/op 0.77
prioritizePeers score -10:0 att 32-0.1 sync 2-0 116.07 us/op 147.23 us/op 0.79
prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 145.14 us/op 173.11 us/op 0.84
prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 263.55 us/op 247.61 us/op 1.06
prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 413.62 us/op 419.72 us/op 0.99
prioritizePeers score 0:0 att 64-1 sync 4-1 689.77 us/op 497.82 us/op 1.39
array of 16000 items push then shift 1.2540 us/op 1.2810 us/op 0.98
LinkedList of 16000 items push then shift 7.4250 ns/op 6.6980 ns/op 1.11
array of 16000 items push then pop 83.780 ns/op 109.94 ns/op 0.76
LinkedList of 16000 items push then pop 6.1450 ns/op 6.3740 ns/op 0.96
array of 24000 items push then shift 1.8579 us/op 2.0728 us/op 0.90
LinkedList of 24000 items push then shift 6.2090 ns/op 8.3240 ns/op 0.75
array of 24000 items push then pop 103.73 ns/op 164.80 ns/op 0.63
LinkedList of 24000 items push then pop 6.0110 ns/op 6.4970 ns/op 0.93
intersect bitArray bitLen 8 5.3480 ns/op 6.3510 ns/op 0.84
intersect array and set length 8 38.013 ns/op 40.339 ns/op 0.94
intersect bitArray bitLen 128 26.069 ns/op 27.002 ns/op 0.97
intersect array and set length 128 572.12 ns/op 625.94 ns/op 0.91
bitArray.getTrueBitIndexes() bitLen 128 1.9460 us/op 1.4600 us/op 1.33
bitArray.getTrueBitIndexes() bitLen 248 3.2420 us/op 2.5500 us/op 1.27
bitArray.getTrueBitIndexes() bitLen 512 7.9470 us/op 5.1420 us/op 1.55
Buffer.concat 32 items 1.0720 us/op 1.0430 us/op 1.03
Uint8Array.set 32 items 1.6310 us/op 1.8310 us/op 0.89
Buffer.copy 1.8690 us/op 1.8530 us/op 1.01
Uint8Array.set - with subarray 2.7260 us/op 2.0270 us/op 1.34
Uint8Array.set - without subarray 1.5660 us/op 1.6710 us/op 0.94
getUint32 - dataview 425.00 ns/op 436.00 ns/op 0.97
getUint32 - manual 366.00 ns/op 359.00 ns/op 1.02
Set add up to 64 items then delete first 1.6871 us/op 1.7798 us/op 0.95
OrderedSet add up to 64 items then delete first 2.6344 us/op 2.7735 us/op 0.95
Set add up to 64 items then delete last 1.9227 us/op 2.0413 us/op 0.94
OrderedSet add up to 64 items then delete last 2.9140 us/op 3.1596 us/op 0.92
Set add up to 64 items then delete middle 2.1902 us/op 2.0341 us/op 1.08
OrderedSet add up to 64 items then delete middle 4.4497 us/op 4.5062 us/op 0.99
Set add up to 128 items then delete first 4.1040 us/op 3.9977 us/op 1.03
OrderedSet add up to 128 items then delete first 6.2554 us/op 6.2923 us/op 0.99
Set add up to 128 items then delete last 3.7959 us/op 4.0701 us/op 0.93
OrderedSet add up to 128 items then delete last 5.7199 us/op 5.9620 us/op 0.96
Set add up to 128 items then delete middle 3.7124 us/op 4.0162 us/op 0.92
OrderedSet add up to 128 items then delete middle 11.257 us/op 11.919 us/op 0.94
Set add up to 256 items then delete first 7.6233 us/op 7.8886 us/op 0.97
OrderedSet add up to 256 items then delete first 12.801 us/op 13.113 us/op 0.98
Set add up to 256 items then delete last 7.6507 us/op 7.9540 us/op 0.96
OrderedSet add up to 256 items then delete last 12.189 us/op 11.881 us/op 1.03
Set add up to 256 items then delete middle 7.7255 us/op 7.6002 us/op 1.02
OrderedSet add up to 256 items then delete middle 34.180 us/op 35.089 us/op 0.97
transfer serialized Status (84 B) 1.3550 us/op 1.5470 us/op 0.88
copy serialized Status (84 B) 1.1260 us/op 1.2550 us/op 0.90
transfer serialized SignedVoluntaryExit (112 B) 1.4030 us/op 1.4960 us/op 0.94
copy serialized SignedVoluntaryExit (112 B) 1.1500 us/op 1.2530 us/op 0.92
transfer serialized ProposerSlashing (416 B) 1.5230 us/op 1.5910 us/op 0.96
copy serialized ProposerSlashing (416 B) 1.3090 us/op 1.4890 us/op 0.88
transfer serialized Attestation (485 B) 1.5140 us/op 1.7270 us/op 0.88
copy serialized Attestation (485 B) 1.3210 us/op 1.5060 us/op 0.88
transfer serialized AttesterSlashing (33232 B) 2.3560 us/op 1.7570 us/op 1.34
copy serialized AttesterSlashing (33232 B) 5.0430 us/op 3.6210 us/op 1.39
transfer serialized Small SignedBeaconBlock (128000 B) 3.1470 us/op 1.9370 us/op 1.62
copy serialized Small SignedBeaconBlock (128000 B) 10.790 us/op 8.4790 us/op 1.27
transfer serialized Avg SignedBeaconBlock (200000 B) 2.7940 us/op 2.0150 us/op 1.39
copy serialized Avg SignedBeaconBlock (200000 B) 13.016 us/op 12.816 us/op 1.02
transfer serialized BlobsSidecar (524380 B) 2.9650 us/op 3.1850 us/op 0.93
copy serialized BlobsSidecar (524380 B) 73.116 us/op 74.856 us/op 0.98
transfer serialized Big SignedBeaconBlock (1000000 B) 2.9440 us/op 3.7260 us/op 0.79
copy serialized Big SignedBeaconBlock (1000000 B) 228.89 us/op 147.03 us/op 1.56
pass gossip attestations to forkchoice per slot 2.7860 ms/op 3.1944 ms/op 0.87
forkChoice updateHead vc 100000 bc 64 eq 0 435.00 us/op 469.09 us/op 0.93
forkChoice updateHead vc 600000 bc 64 eq 0 2.4264 ms/op 3.0187 ms/op 0.80
forkChoice updateHead vc 1000000 bc 64 eq 0 4.1812 ms/op 4.3287 ms/op 0.97
forkChoice updateHead vc 600000 bc 320 eq 0 2.4305 ms/op 2.5295 ms/op 0.96
forkChoice updateHead vc 600000 bc 1200 eq 0 2.4606 ms/op 2.6593 ms/op 0.93
forkChoice updateHead vc 600000 bc 7200 eq 0 3.5383 ms/op 3.2139 ms/op 1.10
forkChoice updateHead vc 600000 bc 64 eq 1000 9.1968 ms/op 10.017 ms/op 0.92
forkChoice updateHead vc 600000 bc 64 eq 10000 9.1258 ms/op 10.111 ms/op 0.90
forkChoice updateHead vc 600000 bc 64 eq 300000 11.367 ms/op 12.224 ms/op 0.93
computeDeltas 500000 validators 300 proto nodes 3.0117 ms/op 3.2141 ms/op 0.94
computeDeltas 500000 validators 1200 proto nodes 3.0101 ms/op 3.0907 ms/op 0.97
computeDeltas 500000 validators 7200 proto nodes 3.0205 ms/op 3.0656 ms/op 0.99
computeDeltas 750000 validators 300 proto nodes 4.8202 ms/op 4.6672 ms/op 1.03
computeDeltas 750000 validators 1200 proto nodes 4.5652 ms/op 4.4447 ms/op 1.03
computeDeltas 750000 validators 7200 proto nodes 4.7514 ms/op 4.5900 ms/op 1.04
computeDeltas 1400000 validators 300 proto nodes 8.3383 ms/op 8.3154 ms/op 1.00
computeDeltas 1400000 validators 1200 proto nodes 8.1422 ms/op 8.2134 ms/op 0.99
computeDeltas 1400000 validators 7200 proto nodes 8.2063 ms/op 7.8450 ms/op 1.05
computeDeltas 2100000 validators 300 proto nodes 12.310 ms/op 12.412 ms/op 0.99
computeDeltas 2100000 validators 1200 proto nodes 12.553 ms/op 12.066 ms/op 1.04
computeDeltas 2100000 validators 7200 proto nodes 12.519 ms/op 12.026 ms/op 1.04
altair processAttestation - 250000 vs - 7PWei normalcase 1.3257 ms/op 1.3405 ms/op 0.99
altair processAttestation - 250000 vs - 7PWei worstcase 2.0379 ms/op 2.0511 ms/op 0.99
altair processAttestation - setStatus - 1/6 committees join 73.282 us/op 64.651 us/op 1.13
altair processAttestation - setStatus - 1/3 committees join 143.55 us/op 138.64 us/op 1.04
altair processAttestation - setStatus - 1/2 committees join 196.66 us/op 201.11 us/op 0.98
altair processAttestation - setStatus - 2/3 committees join 253.93 us/op 264.80 us/op 0.96
altair processAttestation - setStatus - 4/5 committees join 382.86 us/op 379.93 us/op 1.01
altair processAttestation - setStatus - 100% committees join 469.22 us/op 463.23 us/op 1.01
altair processBlock - 250000 vs - 7PWei normalcase 3.9697 ms/op 2.9863 ms/op 1.33
altair processBlock - 250000 vs - 7PWei normalcase hashState 25.183 ms/op 25.390 ms/op 0.99
altair processBlock - 250000 vs - 7PWei worstcase 36.307 ms/op 34.963 ms/op 1.04
altair processBlock - 250000 vs - 7PWei worstcase hashState 81.187 ms/op 78.704 ms/op 1.03
phase0 processBlock - 250000 vs - 7PWei normalcase 1.7810 ms/op 1.6369 ms/op 1.09
phase0 processBlock - 250000 vs - 7PWei worstcase 23.050 ms/op 20.869 ms/op 1.10
altair processEth1Data - 250000 vs - 7PWei normalcase 256.82 us/op 246.96 us/op 1.04
getExpectedWithdrawals 250000 eb:1,eth1:1,we:0,wn:0,smpl:15 5.1630 us/op 4.6530 us/op 1.11
getExpectedWithdrawals 250000 eb:0.95,eth1:0.1,we:0.05,wn:0,smpl:219 17.947 us/op 17.116 us/op 1.05
getExpectedWithdrawals 250000 eb:0.95,eth1:0.3,we:0.05,wn:0,smpl:42 6.8010 us/op 7.1940 us/op 0.95
getExpectedWithdrawals 250000 eb:0.95,eth1:0.7,we:0.05,wn:0,smpl:18 5.4800 us/op 4.2510 us/op 1.29
getExpectedWithdrawals 250000 eb:0.1,eth1:0.1,we:0,wn:0,smpl:1020 81.881 us/op 82.845 us/op 0.99
getExpectedWithdrawals 250000 eb:0.03,eth1:0.03,we:0,wn:0,smpl:11777 477.52 us/op 822.49 us/op 0.58
getExpectedWithdrawals 250000 eb:0.01,eth1:0.01,we:0,wn:0,smpl:16384 1.0661 ms/op 672.68 us/op 1.58
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,smpl:16384 639.68 us/op 1.0482 ms/op 0.61
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,nocache,smpl:16384 1.8937 ms/op 1.8612 ms/op 1.02
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,smpl:16384 1.0882 ms/op 1.2112 ms/op 0.90
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,nocache,smpl:16384 2.9207 ms/op 2.7257 ms/op 1.07
Tree 40 250000 create 191.39 ms/op 181.98 ms/op 1.05
Tree 40 250000 get(125000) 116.21 ns/op 108.13 ns/op 1.07
Tree 40 250000 set(125000) 561.59 ns/op 565.33 ns/op 0.99
Tree 40 250000 toArray() 9.8743 ms/op 12.811 ms/op 0.77
Tree 40 250000 iterate all - toArray() + loop 10.170 ms/op 17.322 ms/op 0.59
Tree 40 250000 iterate all - get(i) 40.831 ms/op 43.406 ms/op 0.94
MutableVector 250000 create 9.0855 ms/op 10.408 ms/op 0.87
MutableVector 250000 get(125000) 5.8100 ns/op 5.8710 ns/op 0.99
MutableVector 250000 set(125000) 195.50 ns/op 186.26 ns/op 1.05
MutableVector 250000 toArray() 2.5822 ms/op 2.5990 ms/op 0.99
MutableVector 250000 iterate all - toArray() + loop 2.6680 ms/op 2.7078 ms/op 0.99
MutableVector 250000 iterate all - get(i) 1.3972 ms/op 1.4181 ms/op 0.99
Array 250000 create 2.2918 ms/op 2.3829 ms/op 0.96
Array 250000 clone - spread 1.3222 ms/op 1.3384 ms/op 0.99
Array 250000 get(125000) 0.56100 ns/op 0.57000 ns/op 0.98
Array 250000 set(125000) 0.57000 ns/op 0.58100 ns/op 0.98
Array 250000 iterate all - loop 75.789 us/op 77.341 us/op 0.98
effectiveBalanceIncrements clone Uint8Array 300000 15.325 us/op 15.177 us/op 1.01
effectiveBalanceIncrements clone MutableVector 300000 304.00 ns/op 306.00 ns/op 0.99
effectiveBalanceIncrements rw all Uint8Array 300000 164.90 us/op 167.36 us/op 0.99
effectiveBalanceIncrements rw all MutableVector 300000 60.016 ms/op 60.122 ms/op 1.00
phase0 afterProcessEpoch - 250000 vs - 7PWei 73.718 ms/op 75.829 ms/op 0.97
Array.fill - length 1000000 2.3429 ms/op 2.4434 ms/op 0.96
Array push - length 1000000 14.814 ms/op 14.650 ms/op 1.01
Array.get 0.24738 ns/op 0.25987 ns/op 0.95
Uint8Array.get 0.31861 ns/op 0.33874 ns/op 0.94
phase0 beforeProcessEpoch - 250000 vs - 7PWei 20.730 ms/op 18.466 ms/op 1.12
altair processEpoch - mainnet_e81889 335.47 ms/op 311.15 ms/op 1.08
mainnet_e81889 - altair beforeProcessEpoch 22.115 ms/op 30.780 ms/op 0.72
mainnet_e81889 - altair processJustificationAndFinalization 5.6400 us/op 10.998 us/op 0.51
mainnet_e81889 - altair processInactivityUpdates 4.0624 ms/op 4.6991 ms/op 0.86
mainnet_e81889 - altair processRewardsAndPenalties 47.764 ms/op 42.161 ms/op 1.13
mainnet_e81889 - altair processRegistryUpdates 2.8960 us/op 2.0620 us/op 1.40
mainnet_e81889 - altair processSlashings 841.00 ns/op 886.00 ns/op 0.95
mainnet_e81889 - altair processEth1DataReset 714.00 ns/op 828.00 ns/op 0.86
mainnet_e81889 - altair processEffectiveBalanceUpdates 1.2687 ms/op 1.0323 ms/op 1.23
mainnet_e81889 - altair processSlashingsReset 2.3260 us/op 3.8950 us/op 0.60
mainnet_e81889 - altair processRandaoMixesReset 3.5620 us/op 4.3920 us/op 0.81
mainnet_e81889 - altair processHistoricalRootsUpdate 793.00 ns/op 1.1200 us/op 0.71
mainnet_e81889 - altair processParticipationFlagUpdates 3.8810 us/op 3.2030 us/op 1.21
mainnet_e81889 - altair processSyncCommitteeUpdates 1.0370 us/op 954.00 ns/op 1.09
mainnet_e81889 - altair afterProcessEpoch 79.375 ms/op 76.634 ms/op 1.04
capella processEpoch - mainnet_e217614 1.2609 s/op 1.2200 s/op 1.03
mainnet_e217614 - capella beforeProcessEpoch 111.70 ms/op 111.62 ms/op 1.00
mainnet_e217614 - capella processJustificationAndFinalization 13.509 us/op 14.598 us/op 0.93
mainnet_e217614 - capella processInactivityUpdates 13.818 ms/op 16.334 ms/op 0.85
mainnet_e217614 - capella processRewardsAndPenalties 262.90 ms/op 250.73 ms/op 1.05
mainnet_e217614 - capella processRegistryUpdates 14.071 us/op 12.489 us/op 1.13
mainnet_e217614 - capella processSlashings 809.00 ns/op 864.00 ns/op 0.94
mainnet_e217614 - capella processEth1DataReset 720.00 ns/op 826.00 ns/op 0.87
mainnet_e217614 - capella processEffectiveBalanceUpdates 15.029 ms/op 15.265 ms/op 0.98
mainnet_e217614 - capella processSlashingsReset 2.8320 us/op 3.5480 us/op 0.80
mainnet_e217614 - capella processRandaoMixesReset 3.6650 us/op 3.6210 us/op 1.01
mainnet_e217614 - capella processHistoricalRootsUpdate 699.00 ns/op 688.00 ns/op 1.02
mainnet_e217614 - capella processParticipationFlagUpdates 1.6180 us/op 1.6360 us/op 0.99
mainnet_e217614 - capella afterProcessEpoch 230.98 ms/op 242.40 ms/op 0.95
phase0 processEpoch - mainnet_e58758 319.57 ms/op 353.19 ms/op 0.90
mainnet_e58758 - phase0 beforeProcessEpoch 82.822 ms/op 92.431 ms/op 0.90
mainnet_e58758 - phase0 processJustificationAndFinalization 15.763 us/op 15.370 us/op 1.03
mainnet_e58758 - phase0 processRewardsAndPenalties 31.715 ms/op 37.585 ms/op 0.84
mainnet_e58758 - phase0 processRegistryUpdates 6.6440 us/op 7.3570 us/op 0.90
mainnet_e58758 - phase0 processSlashings 744.00 ns/op 818.00 ns/op 0.91
mainnet_e58758 - phase0 processEth1DataReset 732.00 ns/op 756.00 ns/op 0.97
mainnet_e58758 - phase0 processEffectiveBalanceUpdates 1.1394 ms/op 1.3126 ms/op 0.87
mainnet_e58758 - phase0 processSlashingsReset 2.6500 us/op 2.7480 us/op 0.96
mainnet_e58758 - phase0 processRandaoMixesReset 3.0430 us/op 3.9740 us/op 0.77
mainnet_e58758 - phase0 processHistoricalRootsUpdate 722.00 ns/op 1.0520 us/op 0.69
mainnet_e58758 - phase0 processParticipationRecordUpdates 3.0290 us/op 3.4180 us/op 0.89
mainnet_e58758 - phase0 afterProcessEpoch 65.899 ms/op 65.670 ms/op 1.00
phase0 processEffectiveBalanceUpdates - 250000 normalcase 817.92 us/op 785.33 us/op 1.04
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 1.4357 ms/op 1.4447 ms/op 0.99
altair processInactivityUpdates - 250000 normalcase 13.779 ms/op 18.797 ms/op 0.73
altair processInactivityUpdates - 250000 worstcase 16.142 ms/op 18.121 ms/op 0.89
phase0 processRegistryUpdates - 250000 normalcase 7.8160 us/op 6.7030 us/op 1.17
phase0 processRegistryUpdates - 250000 badcase_full_deposits 323.11 us/op 252.72 us/op 1.28
phase0 processRegistryUpdates - 250000 worstcase 0.5 100.85 ms/op 111.42 ms/op 0.91
altair processRewardsAndPenalties - 250000 normalcase 41.134 ms/op 39.636 ms/op 1.04
altair processRewardsAndPenalties - 250000 worstcase 35.929 ms/op 33.412 ms/op 1.08
phase0 getAttestationDeltas - 250000 normalcase 6.2779 ms/op 5.8571 ms/op 1.07
phase0 getAttestationDeltas - 250000 worstcase 6.7467 ms/op 6.7376 ms/op 1.00
phase0 processSlashings - 250000 worstcase 90.107 us/op 90.204 us/op 1.00
altair processSyncCommitteeUpdates - 250000 97.234 ms/op 93.707 ms/op 1.04
BeaconState.hashTreeRoot - No change 703.00 ns/op 566.00 ns/op 1.24
BeaconState.hashTreeRoot - 1 full validator 85.342 us/op 88.819 us/op 0.96
BeaconState.hashTreeRoot - 32 full validator 864.79 us/op 953.29 us/op 0.91
BeaconState.hashTreeRoot - 512 full validator 12.659 ms/op 9.5045 ms/op 1.33
BeaconState.hashTreeRoot - 1 validator.effectiveBalance 126.59 us/op 144.22 us/op 0.88
BeaconState.hashTreeRoot - 32 validator.effectiveBalance 1.8221 ms/op 2.4519 ms/op 0.74
BeaconState.hashTreeRoot - 512 validator.effectiveBalance 21.209 ms/op 29.779 ms/op 0.71
BeaconState.hashTreeRoot - 1 balances 67.889 us/op 97.791 us/op 0.69
BeaconState.hashTreeRoot - 32 balances 633.03 us/op 1.0080 ms/op 0.63
BeaconState.hashTreeRoot - 512 balances 5.8724 ms/op 8.9638 ms/op 0.66
BeaconState.hashTreeRoot - 250000 balances 102.36 ms/op 207.62 ms/op 0.49
aggregationBits - 2048 els - zipIndexesInBitList 19.765 us/op 36.616 us/op 0.54
byteArrayEquals 32 48.138 ns/op 48.819 ns/op 0.99
Buffer.compare 32 15.233 ns/op 15.628 ns/op 0.97
byteArrayEquals 1024 1.2299 us/op 1.2969 us/op 0.95
Buffer.compare 1024 22.168 ns/op 23.740 ns/op 0.93
byteArrayEquals 16384 19.463 us/op 23.644 us/op 0.82
Buffer.compare 16384 192.26 ns/op 180.45 ns/op 1.07
byteArrayEquals 123687377 150.60 ms/op 150.17 ms/op 1.00
Buffer.compare 123687377 4.3538 ms/op 4.6341 ms/op 0.94
byteArrayEquals 32 - diff last byte 52.091 ns/op 47.598 ns/op 1.09
Buffer.compare 32 - diff last byte 24.775 ns/op 16.302 ns/op 1.52
byteArrayEquals 1024 - diff last byte 1.2704 us/op 1.2610 us/op 1.01
Buffer.compare 1024 - diff last byte 26.411 ns/op 24.472 ns/op 1.08
byteArrayEquals 16384 - diff last byte 19.771 us/op 20.815 us/op 0.95
Buffer.compare 16384 - diff last byte 201.64 ns/op 204.69 ns/op 0.99
byteArrayEquals 123687377 - diff last byte 144.40 ms/op 144.13 ms/op 1.00
Buffer.compare 123687377 - diff last byte 5.2408 ms/op 5.1784 ms/op 1.01
byteArrayEquals 32 - random bytes 4.6910 ns/op 4.5670 ns/op 1.03
Buffer.compare 32 - random bytes 14.837 ns/op 14.577 ns/op 1.02
byteArrayEquals 1024 - random bytes 4.7200 ns/op 4.6410 ns/op 1.02
Buffer.compare 1024 - random bytes 14.670 ns/op 14.521 ns/op 1.01
byteArrayEquals 16384 - random bytes 4.6650 ns/op 4.6030 ns/op 1.01
Buffer.compare 16384 - random bytes 14.814 ns/op 14.425 ns/op 1.03
byteArrayEquals 123687377 - random bytes 7.4400 ns/op 7.3400 ns/op 1.01
Buffer.compare 123687377 - random bytes 17.440 ns/op 17.190 ns/op 1.01
regular array get 100000 times 29.240 us/op 28.972 us/op 1.01
wrappedArray get 100000 times 29.224 us/op 28.692 us/op 1.02
arrayWithProxy get 100000 times 9.8874 ms/op 10.521 ms/op 0.94
ssz.Root.equals 43.732 ns/op 46.253 ns/op 0.95
byteArrayEquals 41.565 ns/op 43.166 ns/op 0.96
Buffer.compare 8.7360 ns/op 9.4330 ns/op 0.93
shuffle list - 16384 els 5.1892 ms/op 5.5691 ms/op 0.93
shuffle list - 250000 els 75.531 ms/op 81.938 ms/op 0.92
processSlot - 1 slots 14.811 us/op 12.920 us/op 1.15
processSlot - 32 slots 3.5126 ms/op 2.3312 ms/op 1.51
getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei 40.232 ms/op 38.519 ms/op 1.04
getCommitteeAssignments - req 1 vs - 250000 vc 1.7809 ms/op 1.7033 ms/op 1.05
getCommitteeAssignments - req 100 vs - 250000 vc 3.4973 ms/op 3.4535 ms/op 1.01
getCommitteeAssignments - req 1000 vs - 250000 vc 3.7712 ms/op 3.7435 ms/op 1.01
findModifiedValidators - 10000 modified validators 236.79 ms/op 248.13 ms/op 0.95
findModifiedValidators - 1000 modified validators 138.65 ms/op 146.17 ms/op 0.95
findModifiedValidators - 100 modified validators 136.02 ms/op 149.12 ms/op 0.91
findModifiedValidators - 10 modified validators 140.72 ms/op 152.06 ms/op 0.93
findModifiedValidators - 1 modified validators 133.34 ms/op 171.29 ms/op 0.78
findModifiedValidators - no difference 146.17 ms/op 154.33 ms/op 0.95
compare ViewDUs 3.2753 s/op 3.0110 s/op 1.09
compare each validator Uint8Array 1.2673 s/op 1.2171 s/op 1.04
compare ViewDU to Uint8Array 675.29 ms/op 762.50 ms/op 0.89
migrate state 1000000 validators, 24 modified, 0 new 534.72 ms/op 580.99 ms/op 0.92
migrate state 1000000 validators, 1700 modified, 1000 new 775.93 ms/op 822.76 ms/op 0.94
migrate state 1000000 validators, 3400 modified, 2000 new 1.0165 s/op 874.01 ms/op 1.16
migrate state 1500000 validators, 24 modified, 0 new 563.50 ms/op 548.78 ms/op 1.03
migrate state 1500000 validators, 1700 modified, 1000 new 795.68 ms/op 801.71 ms/op 0.99
migrate state 1500000 validators, 3400 modified, 2000 new 956.97 ms/op 1.0891 s/op 0.88
RootCache.getBlockRootAtSlot - 250000 vs - 7PWei 5.8900 ns/op 7.0900 ns/op 0.83
state getBlockRootAtSlot - 250000 vs - 7PWei 569.61 ns/op 402.08 ns/op 1.42
computeProposers - vc 250000 5.6806 ms/op 5.9863 ms/op 0.95
computeEpochShuffling - vc 250000 78.361 ms/op 87.175 ms/op 0.90
getNextSyncCommittee - vc 250000 100.98 ms/op 107.39 ms/op 0.94
computeSigningRoot for AttestationData 22.716 us/op 29.180 us/op 0.78
hash AttestationData serialized data then Buffer.toString(base64) 1.1630 us/op 1.2135 us/op 0.96
toHexString serialized data 822.15 ns/op 797.36 ns/op 1.03
Buffer.toString(base64) 142.41 ns/op 145.61 ns/op 0.98

by benchmarkbot/action

@nflaig
Copy link
Member

nflaig commented Jul 28, 2024

I updated the mermaid diagram, it's pretty crowded but still readable, bumped the font-size up quite a bit

image

README.md Outdated Show resolved Hide resolved
@philknows philknows marked this pull request as ready for review July 29, 2024 18:57
@philknows philknows requested a review from a team as a code owner July 29, 2024 18:57
philknows and others added 2 commits July 29, 2024 14:58
Co-authored-by: Nico Flaig <nflaig@protonmail.com>
nflaig
nflaig previously approved these changes Jul 30, 2024
Copy link
Member

@nflaig nflaig left a comment

Choose a reason for hiding this comment

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

LGTM - would be good to get another review on this

README.md Outdated Show resolved Hide resolved
nflaig
nflaig previously approved these changes Jul 30, 2024
@philknows philknows merged commit 0cd43cc into unstable Jul 30, 2024
26 checks passed
@philknows philknows deleted the philknows/depgraph-update branch July 30, 2024 16:02
@wemeetagain
Copy link
Member

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