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: do not download known block by root #6292

Merged
merged 2 commits into from
Jan 15, 2024

Conversation

twoeths
Copy link
Contributor

@twoeths twoeths commented Jan 13, 2024

Motivation

  • There are a lot of logs like this:
Jan-11 00:01:13.097[network]       ^[[36mverbose^[[39m: Received gossip block slot=8175604, root=0x62df…9da8, curentSlot=8175604, peerId=16Uiu2HAmU1gDEV3eZ7ujqYLqY4KSEscWaeBRmsJr9KJKPeJNJTtH, delaySec=2.072999954223633, recvToVal=0.023999929428100586

Jan-11 00:01:13.341[sync]          ^[[36mverbose^[[39m: Downloading unknown block root=0x62dffba4e7b4eb3e07e561bc8a35377fd7edbb9d9816274a854cfb90b1bc9da8, pendingBlocks=1
  • It said beacon node tried to download a known block root

Description

  • Leverage the seenGossipBlockInput in chain to avoid it

part of #6105

Copy link

codecov bot commented Jan 13, 2024

Codecov Report

Merging #6292 (a7fe6c9) into unstable (098d35a) will not change coverage.
The diff coverage is n/a.

Additional details and impacted files
@@            Coverage Diff            @@
##           unstable    #6292   +/-   ##
=========================================
  Coverage     80.38%   80.38%           
=========================================
  Files           202      202           
  Lines         19620    19620           
  Branches       1176     1176           
=========================================
  Hits          15771    15771           
  Misses         3821     3821           
  Partials         28       28           

Copy link
Contributor

github-actions bot commented Jan 13, 2024

Performance Report

✔️ no performance regression detected

Full benchmark results
Benchmark suite Current: bd8090a Previous: 098d35a Ratio
getPubkeys - index2pubkey - req 1000 vs - 250000 vc 895.00 us/op 888.87 us/op 1.01
getPubkeys - validatorsArr - req 1000 vs - 250000 vc 50.705 us/op 81.806 us/op 0.62
BLS verify - blst-native 1.0937 ms/op 1.2765 ms/op 0.86
BLS verifyMultipleSignatures 3 - blst-native 2.3350 ms/op 2.6851 ms/op 0.87
BLS verifyMultipleSignatures 8 - blst-native 5.1690 ms/op 5.8816 ms/op 0.88
BLS verifyMultipleSignatures 32 - blst-native 18.994 ms/op 21.530 ms/op 0.88
BLS verifyMultipleSignatures 64 - blst-native 37.428 ms/op 42.411 ms/op 0.88
BLS verifyMultipleSignatures 128 - blst-native 74.299 ms/op 84.174 ms/op 0.88
BLS deserializing 10000 signatures 789.14 ms/op 897.12 ms/op 0.88
BLS deserializing 100000 signatures 7.9062 s/op 9.0524 s/op 0.87
BLS verifyMultipleSignatures - same message - 3 - blst-native 1.1194 ms/op 1.2609 ms/op 0.89
BLS verifyMultipleSignatures - same message - 8 - blst-native 1.2707 ms/op 1.5241 ms/op 0.83
BLS verifyMultipleSignatures - same message - 32 - blst-native 2.0014 ms/op 2.1958 ms/op 0.91
BLS verifyMultipleSignatures - same message - 64 - blst-native 3.6405 ms/op 4.2555 ms/op 0.86
BLS verifyMultipleSignatures - same message - 128 - blst-native 4.7348 ms/op 7.3021 ms/op 0.65
BLS aggregatePubkeys 32 - blst-native 21.361 us/op 26.835 us/op 0.80
BLS aggregatePubkeys 128 - blst-native 82.930 us/op 96.919 us/op 0.86
getAttestationsForBlock 35.847 ms/op 43.893 ms/op 0.82
getSlashingsAndExits - default max 157.50 us/op 167.21 us/op 0.94
getSlashingsAndExits - 2k 368.90 us/op 362.90 us/op 1.02
proposeBlockBody type=full, size=empty 3.8725 ms/op 4.9525 ms/op 0.78
isKnown best case - 1 super set check 235.00 ns/op 322.00 ns/op 0.73
isKnown normal case - 2 super set checks 224.00 ns/op 292.00 ns/op 0.77
isKnown worse case - 16 super set checks 225.00 ns/op 280.00 ns/op 0.80
CheckpointStateCache - add get delete 3.3910 us/op 5.5280 us/op 0.61
validate api signedAggregateAndProof - struct 2.3630 ms/op 2.7344 ms/op 0.86
validate gossip signedAggregateAndProof - struct 2.3566 ms/op 2.7392 ms/op 0.86
validate gossip attestation - vc 640000 1.1225 ms/op 1.3155 ms/op 0.85
batch validate gossip attestation - vc 640000 - chunk 32 132.65 us/op 156.51 us/op 0.85
batch validate gossip attestation - vc 640000 - chunk 64 118.46 us/op 136.96 us/op 0.86
batch validate gossip attestation - vc 640000 - chunk 128 114.17 us/op 126.47 us/op 0.90
batch validate gossip attestation - vc 640000 - chunk 256 110.74 us/op 129.92 us/op 0.85
pickEth1Vote - no votes 925.62 us/op 1.1328 ms/op 0.82
pickEth1Vote - max votes 9.4674 ms/op 10.212 ms/op 0.93
pickEth1Vote - Eth1Data hashTreeRoot value x2048 19.071 ms/op 21.411 ms/op 0.89
pickEth1Vote - Eth1Data hashTreeRoot tree x2048 30.888 ms/op 27.950 ms/op 1.11
pickEth1Vote - Eth1Data fastSerialize value x2048 396.72 us/op 574.72 us/op 0.69
pickEth1Vote - Eth1Data fastSerialize tree x2048 5.8417 ms/op 6.7798 ms/op 0.86
bytes32 toHexString 331.00 ns/op 492.00 ns/op 0.67
bytes32 Buffer.toString(hex) 200.00 ns/op 281.00 ns/op 0.71
bytes32 Buffer.toString(hex) from Uint8Array 302.00 ns/op 417.00 ns/op 0.72
bytes32 Buffer.toString(hex) + 0x 201.00 ns/op 279.00 ns/op 0.72
Object access 1 prop 0.10600 ns/op 0.15500 ns/op 0.68
Map access 1 prop 0.098000 ns/op 0.13100 ns/op 0.75
Object get x1000 5.3050 ns/op 7.6080 ns/op 0.70
Map get x1000 0.64700 ns/op 0.71600 ns/op 0.90
Object set x1000 24.040 ns/op 48.308 ns/op 0.50
Map set x1000 16.668 ns/op 36.982 ns/op 0.45
Return object 10000 times 0.21280 ns/op 0.22620 ns/op 0.94
Throw Error 10000 times 2.6219 us/op 3.6822 us/op 0.71
fastMsgIdFn sha256 / 200 bytes 1.7710 us/op 3.1060 us/op 0.57
fastMsgIdFn h32 xxhash / 200 bytes 189.00 ns/op 265.00 ns/op 0.71
fastMsgIdFn h64 xxhash / 200 bytes 230.00 ns/op 323.00 ns/op 0.71
fastMsgIdFn sha256 / 1000 bytes 5.6890 us/op 10.945 us/op 0.52
fastMsgIdFn h32 xxhash / 1000 bytes 297.00 ns/op 395.00 ns/op 0.75
fastMsgIdFn h64 xxhash / 1000 bytes 286.00 ns/op 392.00 ns/op 0.73
fastMsgIdFn sha256 / 10000 bytes 49.417 us/op 99.916 us/op 0.49
fastMsgIdFn h32 xxhash / 10000 bytes 1.6260 us/op 1.8590 us/op 0.87
fastMsgIdFn h64 xxhash / 10000 bytes 1.0540 us/op 1.2660 us/op 0.83
send data - 1000 256B messages 11.384 ms/op 18.371 ms/op 0.62
send data - 1000 512B messages 15.188 ms/op 27.519 ms/op 0.55
send data - 1000 1024B messages 23.418 ms/op 39.244 ms/op 0.60
send data - 1000 1200B messages 29.006 ms/op 35.531 ms/op 0.82
send data - 1000 2048B messages 33.111 ms/op 42.203 ms/op 0.78
send data - 1000 4096B messages 28.011 ms/op 38.492 ms/op 0.73
send data - 1000 16384B messages 84.096 ms/op 115.46 ms/op 0.73
send data - 1000 65536B messages 369.03 ms/op 491.72 ms/op 0.75
enrSubnets - fastDeserialize 64 bits 808.00 ns/op 1.2300 us/op 0.66
enrSubnets - ssz BitVector 64 bits 308.00 ns/op 412.00 ns/op 0.75
enrSubnets - fastDeserialize 4 bits 117.00 ns/op 164.00 ns/op 0.71
enrSubnets - ssz BitVector 4 bits 311.00 ns/op 411.00 ns/op 0.76
prioritizePeers score -10:0 att 32-0.1 sync 2-0 65.124 us/op 99.463 us/op 0.65
prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 77.408 us/op 124.24 us/op 0.62
prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 107.38 us/op 159.19 us/op 0.67
prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 179.77 us/op 282.49 us/op 0.64
prioritizePeers score 0:0 att 64-1 sync 4-1 208.21 us/op 332.88 us/op 0.63
array of 16000 items push then shift 1.3218 us/op 1.5714 us/op 0.84
LinkedList of 16000 items push then shift 7.0910 ns/op 8.8190 ns/op 0.80
array of 16000 items push then pop 89.587 ns/op 70.913 ns/op 1.26
LinkedList of 16000 items push then pop 5.3850 ns/op 8.6040 ns/op 0.63
array of 24000 items push then shift 1.7540 us/op 2.3384 us/op 0.75
LinkedList of 24000 items push then shift 6.5270 ns/op 8.7580 ns/op 0.75
array of 24000 items push then pop 143.60 ns/op 97.806 ns/op 1.47
LinkedList of 24000 items push then pop 6.5250 ns/op 8.5670 ns/op 0.76
intersect bitArray bitLen 8 4.7380 ns/op 6.2680 ns/op 0.76
intersect array and set length 8 48.579 ns/op 60.829 ns/op 0.80
intersect bitArray bitLen 128 26.648 ns/op 33.197 ns/op 0.80
intersect array and set length 128 720.10 ns/op 838.91 ns/op 0.86
bitArray.getTrueBitIndexes() bitLen 128 1.2950 us/op 1.3520 us/op 0.96
bitArray.getTrueBitIndexes() bitLen 248 2.1470 us/op 2.4010 us/op 0.89
bitArray.getTrueBitIndexes() bitLen 512 3.6580 us/op 4.5520 us/op 0.80
Buffer.concat 32 items 768.00 ns/op 963.00 ns/op 0.80
Uint8Array.set 32 items 1.9790 us/op 2.0480 us/op 0.97
Set add up to 64 items then delete first 1.7512 us/op 4.1959 us/op 0.42
OrderedSet add up to 64 items then delete first 2.6798 us/op 5.3522 us/op 0.50
Set add up to 64 items then delete last 2.0566 us/op 4.5169 us/op 0.46
OrderedSet add up to 64 items then delete last 2.9347 us/op 5.7226 us/op 0.51
Set add up to 64 items then delete middle 1.8490 us/op 4.4896 us/op 0.41
OrderedSet add up to 64 items then delete middle 4.5558 us/op 6.8868 us/op 0.66
Set add up to 128 items then delete first 3.8391 us/op 9.1514 us/op 0.42
OrderedSet add up to 128 items then delete first 5.7426 us/op 12.073 us/op 0.48
Set add up to 128 items then delete last 3.7572 us/op 9.0686 us/op 0.41
OrderedSet add up to 128 items then delete last 5.9770 us/op 11.341 us/op 0.53
Set add up to 128 items then delete middle 3.7710 us/op 8.9844 us/op 0.42
OrderedSet add up to 128 items then delete middle 11.387 us/op 16.622 us/op 0.69
Set add up to 256 items then delete first 7.4240 us/op 18.215 us/op 0.41
OrderedSet add up to 256 items then delete first 11.315 us/op 24.649 us/op 0.46
Set add up to 256 items then delete last 7.3207 us/op 17.833 us/op 0.41
OrderedSet add up to 256 items then delete last 11.829 us/op 22.833 us/op 0.52
Set add up to 256 items then delete middle 7.2595 us/op 17.903 us/op 0.41
OrderedSet add up to 256 items then delete middle 30.836 us/op 44.007 us/op 0.70
transfer serialized Status (84 B) 1.2730 us/op 1.7650 us/op 0.72
copy serialized Status (84 B) 1.1040 us/op 1.4630 us/op 0.75
transfer serialized SignedVoluntaryExit (112 B) 1.2980 us/op 1.9200 us/op 0.68
copy serialized SignedVoluntaryExit (112 B) 1.1170 us/op 1.5010 us/op 0.74
transfer serialized ProposerSlashing (416 B) 1.3760 us/op 2.3260 us/op 0.59
copy serialized ProposerSlashing (416 B) 1.2800 us/op 2.1790 us/op 0.59
transfer serialized Attestation (485 B) 1.3950 us/op 2.4240 us/op 0.58
copy serialized Attestation (485 B) 1.2900 us/op 2.1480 us/op 0.60
transfer serialized AttesterSlashing (33232 B) 1.5880 us/op 2.7670 us/op 0.57
copy serialized AttesterSlashing (33232 B) 3.3700 us/op 5.6870 us/op 0.59
transfer serialized Small SignedBeaconBlock (128000 B) 1.5780 us/op 3.1460 us/op 0.50
copy serialized Small SignedBeaconBlock (128000 B) 8.2170 us/op 13.742 us/op 0.60
transfer serialized Avg SignedBeaconBlock (200000 B) 1.6740 us/op 3.1660 us/op 0.53
copy serialized Avg SignedBeaconBlock (200000 B) 12.056 us/op 61.172 us/op 0.20
transfer serialized BlobsSidecar (524380 B) 2.2330 us/op 3.4140 us/op 0.65
copy serialized BlobsSidecar (524380 B) 67.023 us/op 143.30 us/op 0.47
transfer serialized Big SignedBeaconBlock (1000000 B) 2.4900 us/op 3.3340 us/op 0.75
copy serialized Big SignedBeaconBlock (1000000 B) 142.50 us/op 289.61 us/op 0.49
pass gossip attestations to forkchoice per slot 2.8030 ms/op 4.0072 ms/op 0.70
forkChoice updateHead vc 100000 bc 64 eq 0 480.79 us/op 672.26 us/op 0.72
forkChoice updateHead vc 600000 bc 64 eq 0 2.6503 ms/op 4.1098 ms/op 0.64
forkChoice updateHead vc 1000000 bc 64 eq 0 4.5600 ms/op 6.9299 ms/op 0.66
forkChoice updateHead vc 600000 bc 320 eq 0 2.5801 ms/op 4.0727 ms/op 0.63
forkChoice updateHead vc 600000 bc 1200 eq 0 2.7308 ms/op 4.3032 ms/op 0.63
forkChoice updateHead vc 600000 bc 7200 eq 0 3.4175 ms/op 5.1962 ms/op 0.66
forkChoice updateHead vc 600000 bc 64 eq 1000 9.8535 ms/op 11.016 ms/op 0.89
forkChoice updateHead vc 600000 bc 64 eq 10000 9.6629 ms/op 11.799 ms/op 0.82
forkChoice updateHead vc 600000 bc 64 eq 300000 11.796 ms/op 15.713 ms/op 0.75
computeDeltas 500000 validators 300 proto nodes 3.1332 ms/op 6.4179 ms/op 0.49
computeDeltas 500000 validators 1200 proto nodes 2.9944 ms/op 6.3016 ms/op 0.48
computeDeltas 500000 validators 7200 proto nodes 3.0278 ms/op 6.1984 ms/op 0.49
computeDeltas 750000 validators 300 proto nodes 4.6483 ms/op 9.5143 ms/op 0.49
computeDeltas 750000 validators 1200 proto nodes 4.5147 ms/op 9.4484 ms/op 0.48
computeDeltas 750000 validators 7200 proto nodes 4.6152 ms/op 9.6244 ms/op 0.48
computeDeltas 1400000 validators 300 proto nodes 9.5216 ms/op 17.789 ms/op 0.54
computeDeltas 1400000 validators 1200 proto nodes 8.8552 ms/op 18.136 ms/op 0.49
computeDeltas 1400000 validators 7200 proto nodes 9.2378 ms/op 17.790 ms/op 0.52
computeDeltas 2100000 validators 300 proto nodes 13.659 ms/op 27.878 ms/op 0.49
computeDeltas 2100000 validators 1200 proto nodes 13.428 ms/op 27.713 ms/op 0.48
computeDeltas 2100000 validators 7200 proto nodes 13.558 ms/op 27.761 ms/op 0.49
computeProposerBoostScoreFromBalances 500000 validators 3.0814 ms/op 3.6677 ms/op 0.84
computeProposerBoostScoreFromBalances 750000 validators 3.1522 ms/op 3.6746 ms/op 0.86
computeProposerBoostScoreFromBalances 1400000 validators 3.0682 ms/op 3.6649 ms/op 0.84
computeProposerBoostScoreFromBalances 2100000 validators 3.0674 ms/op 3.6749 ms/op 0.83
altair processAttestation - 250000 vs - 7PWei normalcase 1.5660 ms/op 2.0848 ms/op 0.75
altair processAttestation - 250000 vs - 7PWei worstcase 2.3282 ms/op 3.1230 ms/op 0.75
altair processAttestation - setStatus - 1/6 committees join 99.247 us/op 140.95 us/op 0.70
altair processAttestation - setStatus - 1/3 committees join 180.80 us/op 269.85 us/op 0.67
altair processAttestation - setStatus - 1/2 committees join 266.75 us/op 371.26 us/op 0.72
altair processAttestation - setStatus - 2/3 committees join 365.81 us/op 469.22 us/op 0.78
altair processAttestation - setStatus - 4/5 committees join 488.12 us/op 664.21 us/op 0.73
altair processAttestation - setStatus - 100% committees join 562.69 us/op 761.53 us/op 0.74
altair processBlock - 250000 vs - 7PWei normalcase 8.1705 ms/op 9.6696 ms/op 0.84
altair processBlock - 250000 vs - 7PWei normalcase hashState 30.792 ms/op 37.358 ms/op 0.82
altair processBlock - 250000 vs - 7PWei worstcase 34.047 ms/op 37.292 ms/op 0.91
altair processBlock - 250000 vs - 7PWei worstcase hashState 75.706 ms/op 94.421 ms/op 0.80
phase0 processBlock - 250000 vs - 7PWei normalcase 2.6545 ms/op 2.4498 ms/op 1.08
phase0 processBlock - 250000 vs - 7PWei worstcase 26.367 ms/op 30.047 ms/op 0.88
altair processEth1Data - 250000 vs - 7PWei normalcase 321.09 us/op 575.48 us/op 0.56
getExpectedWithdrawals 250000 eb:1,eth1:1,we:0,wn:0,smpl:15 4.7310 us/op 10.503 us/op 0.45
getExpectedWithdrawals 250000 eb:0.95,eth1:0.1,we:0.05,wn:0,smpl:219 43.907 us/op 49.470 us/op 0.89
getExpectedWithdrawals 250000 eb:0.95,eth1:0.3,we:0.05,wn:0,smpl:42 12.589 us/op 18.102 us/op 0.70
getExpectedWithdrawals 250000 eb:0.95,eth1:0.7,we:0.05,wn:0,smpl:18 3.5430 us/op 7.0010 us/op 0.51
getExpectedWithdrawals 250000 eb:0.1,eth1:0.1,we:0,wn:0,smpl:1020 133.53 us/op 122.08 us/op 1.09
getExpectedWithdrawals 250000 eb:0.03,eth1:0.03,we:0,wn:0,smpl:11777 1.0327 ms/op 1.4374 ms/op 0.72
getExpectedWithdrawals 250000 eb:0.01,eth1:0.01,we:0,wn:0,smpl:16384 863.08 us/op 1.5396 ms/op 0.56
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,smpl:16384 1.5065 ms/op 1.4982 ms/op 1.01
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,nocache,smpl:16384 2.4837 ms/op 3.5953 ms/op 0.69
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,smpl:16384 1.4986 ms/op 2.2686 ms/op 0.66
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,nocache,smpl:16384 3.6772 ms/op 5.0290 ms/op 0.73
Tree 40 250000 create 262.94 ms/op 353.78 ms/op 0.74
Tree 40 250000 get(125000) 112.97 ns/op 192.00 ns/op 0.59
Tree 40 250000 set(125000) 661.44 ns/op 977.41 ns/op 0.68
Tree 40 250000 toArray() 9.1953 ms/op 18.254 ms/op 0.50
Tree 40 250000 iterate all - toArray() + loop 9.1938 ms/op 18.390 ms/op 0.50
Tree 40 250000 iterate all - get(i) 37.375 ms/op 64.565 ms/op 0.58
MutableVector 250000 create 12.346 ms/op 12.470 ms/op 0.99
MutableVector 250000 get(125000) 5.3320 ns/op 6.5210 ns/op 0.82
MutableVector 250000 set(125000) 194.68 ns/op 254.73 ns/op 0.76
MutableVector 250000 toArray() 2.0122 ms/op 3.1632 ms/op 0.64
MutableVector 250000 iterate all - toArray() + loop 2.2135 ms/op 3.2663 ms/op 0.68
MutableVector 250000 iterate all - get(i) 1.3126 ms/op 1.5162 ms/op 0.87
Array 250000 create 2.4387 ms/op 2.8420 ms/op 0.86
Array 250000 clone - spread 1.1329 ms/op 1.2547 ms/op 0.90
Array 250000 get(125000) 0.90400 ns/op 1.0420 ns/op 0.87
Array 250000 set(125000) 1.1200 ns/op 4.0770 ns/op 0.27
Array 250000 iterate all - loop 144.10 us/op 163.83 us/op 0.88
effectiveBalanceIncrements clone Uint8Array 300000 19.522 us/op 28.476 us/op 0.69
effectiveBalanceIncrements clone MutableVector 300000 374.00 ns/op 361.00 ns/op 1.04
effectiveBalanceIncrements rw all Uint8Array 300000 179.79 us/op 199.33 us/op 0.90
effectiveBalanceIncrements rw all MutableVector 300000 66.374 ms/op 80.980 ms/op 0.82
phase0 afterProcessEpoch - 250000 vs - 7PWei 74.364 ms/op 113.06 ms/op 0.66
phase0 beforeProcessEpoch - 250000 vs - 7PWei 43.626 ms/op 52.523 ms/op 0.83
altair processEpoch - mainnet_e81889 434.61 ms/op 500.78 ms/op 0.87
mainnet_e81889 - altair beforeProcessEpoch 65.820 ms/op 78.569 ms/op 0.84
mainnet_e81889 - altair processJustificationAndFinalization 9.0790 us/op 14.959 us/op 0.61
mainnet_e81889 - altair processInactivityUpdates 3.7495 ms/op 5.7191 ms/op 0.66
mainnet_e81889 - altair processRewardsAndPenalties 63.656 ms/op 60.703 ms/op 1.05
mainnet_e81889 - altair processRegistryUpdates 1.8660 us/op 2.4840 us/op 0.75
mainnet_e81889 - altair processSlashings 377.00 ns/op 446.00 ns/op 0.85
mainnet_e81889 - altair processEth1DataReset 439.00 ns/op 484.00 ns/op 0.91
mainnet_e81889 - altair processEffectiveBalanceUpdates 1.7497 ms/op 1.4180 ms/op 1.23
mainnet_e81889 - altair processSlashingsReset 1.9820 us/op 4.0430 us/op 0.49
mainnet_e81889 - altair processRandaoMixesReset 3.6580 us/op 4.2190 us/op 0.87
mainnet_e81889 - altair processHistoricalRootsUpdate 303.00 ns/op 708.00 ns/op 0.43
mainnet_e81889 - altair processParticipationFlagUpdates 1.1130 us/op 1.8430 us/op 0.60
mainnet_e81889 - altair processSyncCommitteeUpdates 443.00 ns/op 683.00 ns/op 0.65
mainnet_e81889 - altair afterProcessEpoch 76.655 ms/op 116.77 ms/op 0.66
capella processEpoch - mainnet_e217614 1.7831 s/op 2.0613 s/op 0.87
mainnet_e217614 - capella beforeProcessEpoch 410.34 ms/op 482.87 ms/op 0.85
mainnet_e217614 - capella processJustificationAndFinalization 9.8220 us/op 19.876 us/op 0.49
mainnet_e217614 - capella processInactivityUpdates 16.636 ms/op 21.052 ms/op 0.79
mainnet_e217614 - capella processRewardsAndPenalties 347.38 ms/op 402.56 ms/op 0.86
mainnet_e217614 - capella processRegistryUpdates 20.117 us/op 16.894 us/op 1.19
mainnet_e217614 - capella processSlashings 422.00 ns/op 540.00 ns/op 0.78
mainnet_e217614 - capella processEth1DataReset 318.00 ns/op 401.00 ns/op 0.79
mainnet_e217614 - capella processEffectiveBalanceUpdates 3.6283 ms/op 4.9395 ms/op 0.73
mainnet_e217614 - capella processSlashingsReset 2.1280 us/op 3.2420 us/op 0.66
mainnet_e217614 - capella processRandaoMixesReset 2.6020 us/op 4.6230 us/op 0.56
mainnet_e217614 - capella processHistoricalRootsUpdate 494.00 ns/op 510.00 ns/op 0.97
mainnet_e217614 - capella processParticipationFlagUpdates 1.5370 us/op 1.6520 us/op 0.93
mainnet_e217614 - capella afterProcessEpoch 204.91 ms/op 315.64 ms/op 0.65
phase0 processEpoch - mainnet_e58758 391.66 ms/op 436.42 ms/op 0.90
mainnet_e58758 - phase0 beforeProcessEpoch 115.38 ms/op 113.07 ms/op 1.02
mainnet_e58758 - phase0 processJustificationAndFinalization 8.6810 us/op 14.567 us/op 0.60
mainnet_e58758 - phase0 processRewardsAndPenalties 53.557 ms/op 54.928 ms/op 0.98
mainnet_e58758 - phase0 processRegistryUpdates 3.6690 us/op 8.9170 us/op 0.41
mainnet_e58758 - phase0 processSlashings 223.00 ns/op 415.00 ns/op 0.54
mainnet_e58758 - phase0 processEth1DataReset 191.00 ns/op 385.00 ns/op 0.50
mainnet_e58758 - phase0 processEffectiveBalanceUpdates 808.77 us/op 1.1442 ms/op 0.71
mainnet_e58758 - phase0 processSlashingsReset 1.8940 us/op 2.7360 us/op 0.69
mainnet_e58758 - phase0 processRandaoMixesReset 2.2960 us/op 4.1590 us/op 0.55
mainnet_e58758 - phase0 processHistoricalRootsUpdate 308.00 ns/op 391.00 ns/op 0.79
mainnet_e58758 - phase0 processParticipationRecordUpdates 3.1170 us/op 4.9290 us/op 0.63
mainnet_e58758 - phase0 afterProcessEpoch 60.638 ms/op 94.664 ms/op 0.64
phase0 processEffectiveBalanceUpdates - 250000 normalcase 1.0173 ms/op 1.3292 ms/op 0.77
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 1.0683 ms/op 1.9439 ms/op 0.55
altair processInactivityUpdates - 250000 normalcase 25.253 ms/op 30.144 ms/op 0.84
altair processInactivityUpdates - 250000 worstcase 20.998 ms/op 30.633 ms/op 0.69
phase0 processRegistryUpdates - 250000 normalcase 5.6110 us/op 9.5720 us/op 0.59
phase0 processRegistryUpdates - 250000 badcase_full_deposits 363.62 us/op 311.40 us/op 1.17
phase0 processRegistryUpdates - 250000 worstcase 0.5 114.67 ms/op 157.72 ms/op 0.73
altair processRewardsAndPenalties - 250000 normalcase 49.512 ms/op 63.425 ms/op 0.78
altair processRewardsAndPenalties - 250000 worstcase 53.151 ms/op 56.387 ms/op 0.94
phase0 getAttestationDeltas - 250000 normalcase 5.5453 ms/op 9.1089 ms/op 0.61
phase0 getAttestationDeltas - 250000 worstcase 5.4311 ms/op 8.9035 ms/op 0.61
phase0 processSlashings - 250000 worstcase 74.631 us/op 85.653 us/op 0.87
altair processSyncCommitteeUpdates - 250000 108.76 ms/op 149.30 ms/op 0.73
BeaconState.hashTreeRoot - No change 174.00 ns/op 255.00 ns/op 0.68
BeaconState.hashTreeRoot - 1 full validator 137.28 us/op 147.97 us/op 0.93
BeaconState.hashTreeRoot - 32 full validator 1.4695 ms/op 1.5379 ms/op 0.96
BeaconState.hashTreeRoot - 512 full validator 15.354 ms/op 16.716 ms/op 0.92
BeaconState.hashTreeRoot - 1 validator.effectiveBalance 164.71 us/op 208.62 us/op 0.79
BeaconState.hashTreeRoot - 32 validator.effectiveBalance 2.4173 ms/op 2.2623 ms/op 1.07
BeaconState.hashTreeRoot - 512 validator.effectiveBalance 28.642 ms/op 29.707 ms/op 0.96
BeaconState.hashTreeRoot - 1 balances 137.06 us/op 156.13 us/op 0.88
BeaconState.hashTreeRoot - 32 balances 1.3309 ms/op 1.3426 ms/op 0.99
BeaconState.hashTreeRoot - 512 balances 11.843 ms/op 11.820 ms/op 1.00
BeaconState.hashTreeRoot - 250000 balances 189.29 ms/op 225.34 ms/op 0.84
aggregationBits - 2048 els - zipIndexesInBitList 10.506 us/op 16.067 us/op 0.65
byteArrayEquals 32 64.093 ns/op 70.736 ns/op 0.91
Buffer.compare 32 36.302 ns/op 53.038 ns/op 0.68
byteArrayEquals 1024 1.7394 us/op 1.9314 us/op 0.90
Buffer.compare 1024 45.877 ns/op 68.500 ns/op 0.67
byteArrayEquals 16384 27.637 us/op 30.764 us/op 0.90
Buffer.compare 16384 232.07 ns/op 259.49 ns/op 0.89
byteArrayEquals 123687377 205.34 ms/op 232.04 ms/op 0.88
Buffer.compare 123687377 3.6661 ms/op 6.2015 ms/op 0.59
byteArrayEquals 32 - diff last byte 60.802 ns/op 71.372 ns/op 0.85
Buffer.compare 32 - diff last byte 36.752 ns/op 55.467 ns/op 0.66
byteArrayEquals 1024 - diff last byte 1.7259 us/op 2.0202 us/op 0.85
Buffer.compare 1024 - diff last byte 44.113 ns/op 71.718 ns/op 0.62
byteArrayEquals 16384 - diff last byte 26.984 us/op 32.211 us/op 0.84
Buffer.compare 16384 - diff last byte 219.15 ns/op 273.41 ns/op 0.80
byteArrayEquals 123687377 - diff last byte 203.13 ms/op 239.13 ms/op 0.85
Buffer.compare 123687377 - diff last byte 5.2681 ms/op 6.0965 ms/op 0.86
byteArrayEquals 32 - random bytes 4.4970 ns/op 5.1520 ns/op 0.87
Buffer.compare 32 - random bytes 39.129 ns/op 59.021 ns/op 0.66
byteArrayEquals 1024 - random bytes 4.3080 ns/op 5.0610 ns/op 0.85
Buffer.compare 1024 - random bytes 36.943 ns/op 58.590 ns/op 0.63
byteArrayEquals 16384 - random bytes 4.3140 ns/op 5.3160 ns/op 0.81
Buffer.compare 16384 - random bytes 36.502 ns/op 58.236 ns/op 0.63
byteArrayEquals 123687377 - random bytes 6.8300 ns/op 8.3200 ns/op 0.82
Buffer.compare 123687377 - random bytes 39.450 ns/op 61.650 ns/op 0.64
regular array get 100000 times 40.460 us/op 43.111 us/op 0.94
wrappedArray get 100000 times 40.371 us/op 43.048 us/op 0.94
arrayWithProxy get 100000 times 9.7433 ms/op 14.020 ms/op 0.69
ssz.Root.equals 53.483 ns/op 52.358 ns/op 1.02
byteArrayEquals 52.869 ns/op 51.512 ns/op 1.03
Buffer.compare 9.8870 ns/op 10.542 ns/op 0.94
shuffle list - 16384 els 4.5664 ms/op 6.9002 ms/op 0.66
shuffle list - 250000 els 66.935 ms/op 99.823 ms/op 0.67
processSlot - 1 slots 17.467 us/op 16.517 us/op 1.06
processSlot - 32 slots 3.7498 ms/op 3.5401 ms/op 1.06
getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei 55.900 ms/op 60.992 ms/op 0.92
getCommitteeAssignments - req 1 vs - 250000 vc 2.2344 ms/op 2.4611 ms/op 0.91
getCommitteeAssignments - req 100 vs - 250000 vc 3.3507 ms/op 3.6420 ms/op 0.92
getCommitteeAssignments - req 1000 vs - 250000 vc 3.6690 ms/op 3.9976 ms/op 0.92
findModifiedValidators - 10000 modified validators 407.86 ms/op 559.22 ms/op 0.73
findModifiedValidators - 1000 modified validators 323.19 ms/op 425.51 ms/op 0.76
findModifiedValidators - 100 modified validators 297.14 ms/op 397.22 ms/op 0.75
findModifiedValidators - 10 modified validators 324.43 ms/op 372.77 ms/op 0.87
findModifiedValidators - 1 modified validators 296.86 ms/op 394.92 ms/op 0.75
findModifiedValidators - no difference 297.04 ms/op 403.22 ms/op 0.74
compare ViewDUs 3.8329 s/op 4.3589 s/op 0.88
compare each validator Uint8Array 1.3397 s/op 1.9616 s/op 0.68
compare ViewDU to Uint8Array 927.78 ms/op 1.1229 s/op 0.83
migrate state 1000000 validators, 24 modified, 0 new 734.86 ms/op 807.40 ms/op 0.91
migrate state 1000000 validators, 1700 modified, 1000 new 1.0209 s/op 1.1144 s/op 0.92
migrate state 1000000 validators, 3400 modified, 2000 new 1.2424 s/op 1.3544 s/op 0.92
migrate state 1500000 validators, 24 modified, 0 new 743.05 ms/op 818.38 ms/op 0.91
migrate state 1500000 validators, 1700 modified, 1000 new 1.0257 s/op 1.1023 s/op 0.93
migrate state 1500000 validators, 3400 modified, 2000 new 1.2273 s/op 1.3207 s/op 0.93
RootCache.getBlockRootAtSlot - 250000 vs - 7PWei 3.3500 ns/op 4.0900 ns/op 0.82
state getBlockRootAtSlot - 250000 vs - 7PWei 932.56 ns/op 706.77 ns/op 1.32
computeProposers - vc 250000 6.4355 ms/op 9.2365 ms/op 0.70
computeEpochShuffling - vc 250000 65.130 ms/op 101.63 ms/op 0.64
getNextSyncCommittee - vc 250000 102.64 ms/op 154.61 ms/op 0.66
computeSigningRoot for AttestationData 22.295 us/op 27.064 us/op 0.82
hash AttestationData serialized data then Buffer.toString(base64) 1.1559 us/op 2.2756 us/op 0.51
toHexString serialized data 735.53 ns/op 1.0751 us/op 0.68
Buffer.toString(base64) 136.59 ns/op 217.78 ns/op 0.63

by benchmarkbot/action

@twoeths
Copy link
Contributor Author

twoeths commented Jan 15, 2024

node has to issue less outgoing beacon_blocks_by_root requests, ready for review

Screenshot 2024-01-15 at 08 43 31 Screenshot 2024-01-15 at 08 44 34

@twoeths twoeths marked this pull request as ready for review January 15, 2024 01:45
@twoeths twoeths requested a review from a team as a code owner January 15, 2024 01:45
@wemeetagain wemeetagain merged commit 88744d8 into unstable Jan 15, 2024
14 of 15 checks passed
@wemeetagain wemeetagain deleted the tuyen/avoid_redundant_unknown_block_download branch January 15, 2024 15:27
ensi321 pushed a commit to ensi321/lodestar that referenced this pull request Jan 22, 2024
* fix: do not download known block by root

* fix: handle PreDeneb for SeenGossipBlockInput
@wemeetagain
Copy link
Member

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

2 participants