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

chore: print graffiti when producing beacon block body #7303

Merged
merged 1 commit into from
Dec 16, 2024

Conversation

nflaig
Copy link
Member

@nflaig nflaig commented Dec 15, 2024

Motivation

In #6753 we moved setting the default graffiti to the beacon node side and since then we are not printing the graffiti anywhere, although we still print it on the vc side but if it's not explicitly set there it won't show the actual value that will be used during block proposal.

This also would have helped to catch #7217.

Description

Print graffiti when producing beacon block body

@nflaig nflaig requested a review from a team as a code owner December 15, 2024 11:41
Copy link

codecov bot commented Dec 15, 2024

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 48.76%. Comparing base (ba1d41b) to head (4a779f4).
Report is 1 commits behind head on unstable.

Additional details and impacted files
@@            Coverage Diff            @@
##           unstable    #7303   +/-   ##
=========================================
  Coverage     48.76%   48.76%           
=========================================
  Files           601      601           
  Lines         40203    40203           
  Branches       2061     2061           
=========================================
  Hits          19607    19607           
  Misses        20558    20558           
  Partials         38       38           

Copy link
Contributor

Performance Report

✔️ no performance regression detected

Full benchmark results
Benchmark suite Current: d374c72 Previous: a00c796 Ratio
getPubkeys - index2pubkey - req 1000 vs - 250000 vc 2.1046 ms/op 1.8632 ms/op 1.13
getPubkeys - validatorsArr - req 1000 vs - 250000 vc 46.482 us/op 46.904 us/op 0.99
BLS verify - blst 1.4581 ms/op 1.4372 ms/op 1.01
BLS verifyMultipleSignatures 3 - blst 1.5542 ms/op 1.2094 ms/op 1.29
BLS verifyMultipleSignatures 8 - blst 2.4977 ms/op 1.8520 ms/op 1.35
BLS verifyMultipleSignatures 32 - blst 7.0293 ms/op 5.5222 ms/op 1.27
BLS verifyMultipleSignatures 64 - blst 11.034 ms/op 10.557 ms/op 1.05
BLS verifyMultipleSignatures 128 - blst 17.043 ms/op 17.266 ms/op 0.99
BLS deserializing 10000 signatures 675.03 ms/op 684.36 ms/op 0.99
BLS deserializing 100000 signatures 6.8347 s/op 6.7656 s/op 1.01
BLS verifyMultipleSignatures - same message - 3 - blst 935.56 us/op 1.3384 ms/op 0.70
BLS verifyMultipleSignatures - same message - 8 - blst 1.3097 ms/op 1.2600 ms/op 1.04
BLS verifyMultipleSignatures - same message - 32 - blst 1.6731 ms/op 1.8177 ms/op 0.92
BLS verifyMultipleSignatures - same message - 64 - blst 2.6829 ms/op 2.5939 ms/op 1.03
BLS verifyMultipleSignatures - same message - 128 - blst 4.4338 ms/op 4.2914 ms/op 1.03
BLS aggregatePubkeys 32 - blst 20.186 us/op 20.214 us/op 1.00
BLS aggregatePubkeys 128 - blst 69.904 us/op 70.298 us/op 0.99
notSeenSlots=1 numMissedVotes=1 numBadVotes=10 102.59 ms/op 77.095 ms/op 1.33
notSeenSlots=1 numMissedVotes=0 numBadVotes=4 60.462 ms/op 64.259 ms/op 0.94
notSeenSlots=2 numMissedVotes=1 numBadVotes=10 52.194 ms/op 52.382 ms/op 1.00
getSlashingsAndExits - default max 86.831 us/op 97.990 us/op 0.89
getSlashingsAndExits - 2k 267.68 us/op 292.87 us/op 0.91
proposeBlockBody type=full, size=empty 6.0075 ms/op 6.0183 ms/op 1.00
isKnown best case - 1 super set check 298.00 ns/op 300.00 ns/op 0.99
isKnown normal case - 2 super set checks 282.00 ns/op 279.00 ns/op 1.01
isKnown worse case - 16 super set checks 282.00 ns/op 276.00 ns/op 1.02
InMemoryCheckpointStateCache - add get delete 2.7910 us/op 2.8290 us/op 0.99
validate api signedAggregateAndProof - struct 2.5039 ms/op 1.8731 ms/op 1.34
validate gossip signedAggregateAndProof - struct 2.6307 ms/op 2.5915 ms/op 1.02
batch validate gossip attestation - vc 640000 - chunk 32 133.43 us/op 134.25 us/op 0.99
batch validate gossip attestation - vc 640000 - chunk 64 116.58 us/op 113.89 us/op 1.02
batch validate gossip attestation - vc 640000 - chunk 128 110.04 us/op 107.54 us/op 1.02
batch validate gossip attestation - vc 640000 - chunk 256 103.98 us/op 102.48 us/op 1.01
pickEth1Vote - no votes 1.0196 ms/op 1.0333 ms/op 0.99
pickEth1Vote - max votes 6.4098 ms/op 6.9169 ms/op 0.93
pickEth1Vote - Eth1Data hashTreeRoot value x2048 14.812 ms/op 17.988 ms/op 0.82
pickEth1Vote - Eth1Data hashTreeRoot tree x2048 24.541 ms/op 22.623 ms/op 1.08
pickEth1Vote - Eth1Data fastSerialize value x2048 475.70 us/op 436.73 us/op 1.09
pickEth1Vote - Eth1Data fastSerialize tree x2048 3.5718 ms/op 3.1324 ms/op 1.14
bytes32 toHexString 422.00 ns/op 410.00 ns/op 1.03
bytes32 Buffer.toString(hex) 249.00 ns/op 243.00 ns/op 1.02
bytes32 Buffer.toString(hex) from Uint8Array 349.00 ns/op 346.00 ns/op 1.01
bytes32 Buffer.toString(hex) + 0x 248.00 ns/op 243.00 ns/op 1.02
Object access 1 prop 0.13400 ns/op 0.13000 ns/op 1.03
Map access 1 prop 0.13200 ns/op 0.12700 ns/op 1.04
Object get x1000 5.7410 ns/op 5.6170 ns/op 1.02
Map get x1000 6.6300 ns/op 6.2900 ns/op 1.05
Object set x1000 32.181 ns/op 30.648 ns/op 1.05
Map set x1000 21.894 ns/op 20.791 ns/op 1.05
Return object 10000 times 0.28950 ns/op 0.27970 ns/op 1.04
Throw Error 10000 times 3.3994 us/op 3.2278 us/op 1.05
toHex 145.92 ns/op 132.86 ns/op 1.10
Buffer.from 130.15 ns/op 129.73 ns/op 1.00
shared Buffer 89.223 ns/op 83.137 ns/op 1.07
fastMsgIdFn sha256 / 200 bytes 2.1860 us/op 2.2890 us/op 0.96
fastMsgIdFn h32 xxhash / 200 bytes 226.00 ns/op 232.00 ns/op 0.97
fastMsgIdFn h64 xxhash / 200 bytes 257.00 ns/op 268.00 ns/op 0.96
fastMsgIdFn sha256 / 1000 bytes 7.3620 us/op 7.5410 us/op 0.98
fastMsgIdFn h32 xxhash / 1000 bytes 354.00 ns/op 373.00 ns/op 0.95
fastMsgIdFn h64 xxhash / 1000 bytes 331.00 ns/op 343.00 ns/op 0.97
fastMsgIdFn sha256 / 10000 bytes 64.218 us/op 65.004 us/op 0.99
fastMsgIdFn h32 xxhash / 10000 bytes 1.8540 us/op 1.9080 us/op 0.97
fastMsgIdFn h64 xxhash / 10000 bytes 1.2090 us/op 1.2360 us/op 0.98
send data - 1000 256B messages 12.657 ms/op 12.659 ms/op 1.00
send data - 1000 512B messages 17.283 ms/op 16.607 ms/op 1.04
send data - 1000 1024B messages 27.542 ms/op 25.853 ms/op 1.07
send data - 1000 1200B messages 26.768 ms/op 26.221 ms/op 1.02
send data - 1000 2048B messages 32.076 ms/op 32.644 ms/op 0.98
send data - 1000 4096B messages 30.907 ms/op 31.698 ms/op 0.98
send data - 1000 16384B messages 76.494 ms/op 71.293 ms/op 1.07
send data - 1000 65536B messages 197.90 ms/op 204.91 ms/op 0.97
enrSubnets - fastDeserialize 64 bits 1.0620 us/op 1.1090 us/op 0.96
enrSubnets - ssz BitVector 64 bits 351.00 ns/op 359.00 ns/op 0.98
enrSubnets - fastDeserialize 4 bits 146.00 ns/op 148.00 ns/op 0.99
enrSubnets - ssz BitVector 4 bits 362.00 ns/op 370.00 ns/op 0.98
prioritizePeers score -10:0 att 32-0.1 sync 2-0 158.13 us/op 153.30 us/op 1.03
prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 193.71 us/op 217.21 us/op 0.89
prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 295.31 us/op 226.38 us/op 1.30
prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 632.09 us/op 522.72 us/op 1.21
prioritizePeers score 0:0 att 64-1 sync 4-1 950.35 us/op 990.29 us/op 0.96
array of 16000 items push then shift 1.6661 us/op 1.6413 us/op 1.02
LinkedList of 16000 items push then shift 7.2150 ns/op 7.0810 ns/op 1.02
array of 16000 items push then pop 112.96 ns/op 119.47 ns/op 0.95
LinkedList of 16000 items push then pop 6.7960 ns/op 7.2760 ns/op 0.93
array of 24000 items push then shift 2.3750 us/op 2.4906 us/op 0.95
LinkedList of 24000 items push then shift 6.9830 ns/op 7.6350 ns/op 0.91
array of 24000 items push then pop 129.45 ns/op 145.45 ns/op 0.89
LinkedList of 24000 items push then pop 6.8180 ns/op 6.9090 ns/op 0.99
intersect bitArray bitLen 8 6.3110 ns/op 6.3010 ns/op 1.00
intersect array and set length 8 45.569 ns/op 46.161 ns/op 0.99
intersect bitArray bitLen 128 29.517 ns/op 29.074 ns/op 1.02
intersect array and set length 128 659.56 ns/op 663.04 ns/op 0.99
bitArray.getTrueBitIndexes() bitLen 128 2.3670 us/op 2.1830 us/op 1.08
bitArray.getTrueBitIndexes() bitLen 248 4.4370 us/op 4.2490 us/op 1.04
bitArray.getTrueBitIndexes() bitLen 512 8.7490 us/op 8.6060 us/op 1.02
Buffer.concat 32 items 944.00 ns/op 926.00 ns/op 1.02
Uint8Array.set 32 items 1.7620 us/op 1.3890 us/op 1.27
Buffer.copy 2.0180 us/op 1.7740 us/op 1.14
Uint8Array.set - with subarray 2.8770 us/op 3.0530 us/op 0.94
Uint8Array.set - without subarray 1.8210 us/op 1.5450 us/op 1.18
getUint32 - dataview 230.00 ns/op 274.00 ns/op 0.84
getUint32 - manual 150.00 ns/op 179.00 ns/op 0.84
Set add up to 64 items then delete first 2.2547 us/op 2.3850 us/op 0.95
OrderedSet add up to 64 items then delete first 3.3832 us/op 3.3521 us/op 1.01
Set add up to 64 items then delete last 2.4887 us/op 2.6070 us/op 0.95
OrderedSet add up to 64 items then delete last 3.6552 us/op 4.2241 us/op 0.87
Set add up to 64 items then delete middle 2.5393 us/op 2.6842 us/op 0.95
OrderedSet add up to 64 items then delete middle 5.1538 us/op 5.6648 us/op 0.91
Set add up to 128 items then delete first 4.9879 us/op 5.2068 us/op 0.96
OrderedSet add up to 128 items then delete first 7.7694 us/op 7.8970 us/op 0.98
Set add up to 128 items then delete last 4.8161 us/op 5.3499 us/op 0.90
OrderedSet add up to 128 items then delete last 7.0587 us/op 8.6372 us/op 0.82
Set add up to 128 items then delete middle 4.7694 us/op 5.2942 us/op 0.90
OrderedSet add up to 128 items then delete middle 13.538 us/op 16.614 us/op 0.81
Set add up to 256 items then delete first 10.264 us/op 11.192 us/op 0.92
OrderedSet add up to 256 items then delete first 15.929 us/op 16.680 us/op 0.95
Set add up to 256 items then delete last 9.4574 us/op 10.417 us/op 0.91
OrderedSet add up to 256 items then delete last 14.280 us/op 17.179 us/op 0.83
Set add up to 256 items then delete middle 9.4423 us/op 10.279 us/op 0.92
OrderedSet add up to 256 items then delete middle 40.893 us/op 42.102 us/op 0.97
transfer serialized Status (84 B) 1.4290 us/op 1.3890 us/op 1.03
copy serialized Status (84 B) 1.1480 us/op 1.2260 us/op 0.94
transfer serialized SignedVoluntaryExit (112 B) 1.5590 us/op 1.4330 us/op 1.09
copy serialized SignedVoluntaryExit (112 B) 1.2540 us/op 1.2610 us/op 0.99
transfer serialized ProposerSlashing (416 B) 2.2310 us/op 1.8030 us/op 1.24
copy serialized ProposerSlashing (416 B) 2.4590 us/op 1.7360 us/op 1.42
transfer serialized Attestation (485 B) 2.3850 us/op 1.6450 us/op 1.45
copy serialized Attestation (485 B) 2.0570 us/op 1.5520 us/op 1.33
transfer serialized AttesterSlashing (33232 B) 2.5840 us/op 1.7490 us/op 1.48
copy serialized AttesterSlashing (33232 B) 5.4640 us/op 5.6290 us/op 0.97
transfer serialized Small SignedBeaconBlock (128000 B) 3.2500 us/op 2.5480 us/op 1.28
copy serialized Small SignedBeaconBlock (128000 B) 14.603 us/op 16.153 us/op 0.90
transfer serialized Avg SignedBeaconBlock (200000 B) 3.5390 us/op 3.1150 us/op 1.14
copy serialized Avg SignedBeaconBlock (200000 B) 23.139 us/op 22.308 us/op 1.04
transfer serialized BlobsSidecar (524380 B) 3.1570 us/op 2.9230 us/op 1.08
copy serialized BlobsSidecar (524380 B) 71.347 us/op 88.150 us/op 0.81
transfer serialized Big SignedBeaconBlock (1000000 B) 3.1360 us/op 3.2300 us/op 0.97
copy serialized Big SignedBeaconBlock (1000000 B) 163.45 us/op 254.30 us/op 0.64
pass gossip attestations to forkchoice per slot 2.8378 ms/op 2.8546 ms/op 0.99
forkChoice updateHead vc 100000 bc 64 eq 0 575.81 us/op 461.73 us/op 1.25
forkChoice updateHead vc 600000 bc 64 eq 0 3.1165 ms/op 3.2501 ms/op 0.96
forkChoice updateHead vc 1000000 bc 64 eq 0 4.8289 ms/op 5.3945 ms/op 0.90
forkChoice updateHead vc 600000 bc 320 eq 0 2.8489 ms/op 3.0391 ms/op 0.94
forkChoice updateHead vc 600000 bc 1200 eq 0 2.9179 ms/op 3.0477 ms/op 0.96
forkChoice updateHead vc 600000 bc 7200 eq 0 3.4712 ms/op 3.8245 ms/op 0.91
forkChoice updateHead vc 600000 bc 64 eq 1000 10.448 ms/op 10.633 ms/op 0.98
forkChoice updateHead vc 600000 bc 64 eq 10000 10.449 ms/op 10.529 ms/op 0.99
forkChoice updateHead vc 600000 bc 64 eq 300000 14.536 ms/op 14.579 ms/op 1.00
computeDeltas 500000 validators 300 proto nodes 4.0198 ms/op 4.3531 ms/op 0.92
computeDeltas 500000 validators 1200 proto nodes 4.0856 ms/op 4.6822 ms/op 0.87
computeDeltas 500000 validators 7200 proto nodes 4.1420 ms/op 4.4990 ms/op 0.92
computeDeltas 750000 validators 300 proto nodes 6.3625 ms/op 6.5754 ms/op 0.97
computeDeltas 750000 validators 1200 proto nodes 6.3766 ms/op 6.7743 ms/op 0.94
computeDeltas 750000 validators 7200 proto nodes 6.4836 ms/op 6.3835 ms/op 1.02
computeDeltas 1400000 validators 300 proto nodes 12.098 ms/op 11.826 ms/op 1.02
computeDeltas 1400000 validators 1200 proto nodes 11.761 ms/op 11.554 ms/op 1.02
computeDeltas 1400000 validators 7200 proto nodes 11.678 ms/op 11.442 ms/op 1.02
computeDeltas 2100000 validators 300 proto nodes 18.797 ms/op 17.158 ms/op 1.10
computeDeltas 2100000 validators 1200 proto nodes 18.350 ms/op 16.907 ms/op 1.09
computeDeltas 2100000 validators 7200 proto nodes 18.614 ms/op 16.987 ms/op 1.10
altair processAttestation - 250000 vs - 7PWei normalcase 2.1786 ms/op 1.7454 ms/op 1.25
altair processAttestation - 250000 vs - 7PWei worstcase 3.2073 ms/op 2.5591 ms/op 1.25
altair processAttestation - setStatus - 1/6 committees join 91.378 us/op 119.35 us/op 0.77
altair processAttestation - setStatus - 1/3 committees join 180.94 us/op 220.80 us/op 0.82
altair processAttestation - setStatus - 1/2 committees join 257.68 us/op 318.66 us/op 0.81
altair processAttestation - setStatus - 2/3 committees join 331.11 us/op 408.10 us/op 0.81
altair processAttestation - setStatus - 4/5 committees join 475.93 us/op 564.28 us/op 0.84
altair processAttestation - setStatus - 100% committees join 574.25 us/op 693.77 us/op 0.83
altair processBlock - 250000 vs - 7PWei normalcase 4.6333 ms/op 6.5679 ms/op 0.71
altair processBlock - 250000 vs - 7PWei normalcase hashState 30.813 ms/op 32.436 ms/op 0.95
altair processBlock - 250000 vs - 7PWei worstcase 43.692 ms/op 46.474 ms/op 0.94
altair processBlock - 250000 vs - 7PWei worstcase hashState 81.729 ms/op 80.186 ms/op 1.02
phase0 processBlock - 250000 vs - 7PWei normalcase 2.5869 ms/op 2.5605 ms/op 1.01
phase0 processBlock - 250000 vs - 7PWei worstcase 30.439 ms/op 33.680 ms/op 0.90
altair processEth1Data - 250000 vs - 7PWei normalcase 345.36 us/op 300.76 us/op 1.15
getExpectedWithdrawals 250000 eb:1,eth1:1,we:0,wn:0,smpl:15 8.0850 us/op 7.8520 us/op 1.03
getExpectedWithdrawals 250000 eb:0.95,eth1:0.1,we:0.05,wn:0,smpl:219 27.007 us/op 43.204 us/op 0.63
getExpectedWithdrawals 250000 eb:0.95,eth1:0.3,we:0.05,wn:0,smpl:42 13.564 us/op 12.414 us/op 1.09
getExpectedWithdrawals 250000 eb:0.95,eth1:0.7,we:0.05,wn:0,smpl:18 8.8960 us/op 8.1280 us/op 1.09
getExpectedWithdrawals 250000 eb:0.1,eth1:0.1,we:0,wn:0,smpl:1020 187.50 us/op 179.39 us/op 1.05
getExpectedWithdrawals 250000 eb:0.03,eth1:0.03,we:0,wn:0,smpl:11777 1.6269 ms/op 2.0345 ms/op 0.80
getExpectedWithdrawals 250000 eb:0.01,eth1:0.01,we:0,wn:0,smpl:16384 2.2683 ms/op 2.7561 ms/op 0.82
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,smpl:16384 2.8303 ms/op 2.1150 ms/op 1.34
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,nocache,smpl:16384 3.6511 ms/op 3.8919 ms/op 0.94
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,smpl:16384 2.9105 ms/op 1.5014 ms/op 1.94
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,nocache,smpl:16384 3.7607 ms/op 3.9012 ms/op 0.96
Tree 40 250000 create 228.61 ms/op 207.46 ms/op 1.10
Tree 40 250000 get(125000) 144.98 ns/op 145.47 ns/op 1.00
Tree 40 250000 set(125000) 664.40 ns/op 643.90 ns/op 1.03
Tree 40 250000 toArray() 15.513 ms/op 15.127 ms/op 1.03
Tree 40 250000 iterate all - toArray() + loop 15.434 ms/op 15.296 ms/op 1.01
Tree 40 250000 iterate all - get(i) 52.861 ms/op 50.854 ms/op 1.04
Array 250000 create 2.9180 ms/op 2.9462 ms/op 0.99
Array 250000 clone - spread 1.5396 ms/op 1.5061 ms/op 1.02
Array 250000 get(125000) 0.42900 ns/op 0.41200 ns/op 1.04
Array 250000 set(125000) 0.44300 ns/op 0.42900 ns/op 1.03
Array 250000 iterate all - loop 110.66 us/op 82.363 us/op 1.34
phase0 afterProcessEpoch - 250000 vs - 7PWei 51.326 ms/op 48.821 ms/op 1.05
Array.fill - length 1000000 3.7200 ms/op 3.5235 ms/op 1.06
Array push - length 1000000 12.796 ms/op 12.814 ms/op 1.00
Array.get 0.27910 ns/op 0.27269 ns/op 1.02
Uint8Array.get 0.44765 ns/op 0.43939 ns/op 1.02
phase0 beforeProcessEpoch - 250000 vs - 7PWei 16.976 ms/op 18.928 ms/op 0.90
altair processEpoch - mainnet_e81889 303.88 ms/op 292.84 ms/op 1.04
mainnet_e81889 - altair beforeProcessEpoch 18.694 ms/op 22.206 ms/op 0.84
mainnet_e81889 - altair processJustificationAndFinalization 20.300 us/op 19.896 us/op 1.02
mainnet_e81889 - altair processInactivityUpdates 5.1969 ms/op 5.0526 ms/op 1.03
mainnet_e81889 - altair processRewardsAndPenalties 61.063 ms/op 65.438 ms/op 0.93
mainnet_e81889 - altair processRegistryUpdates 6.8300 us/op 2.6830 us/op 2.55
mainnet_e81889 - altair processSlashings 1.2640 us/op 644.00 ns/op 1.96
mainnet_e81889 - altair processEth1DataReset 974.00 ns/op 493.00 ns/op 1.98
mainnet_e81889 - altair processEffectiveBalanceUpdates 1.8101 ms/op 1.8399 ms/op 0.98
mainnet_e81889 - altair processSlashingsReset 5.1600 us/op 4.5640 us/op 1.13
mainnet_e81889 - altair processRandaoMixesReset 7.2340 us/op 4.5060 us/op 1.61
mainnet_e81889 - altair processHistoricalRootsUpdate 845.00 ns/op 570.00 ns/op 1.48
mainnet_e81889 - altair processParticipationFlagUpdates 4.5190 us/op 2.4510 us/op 1.84
mainnet_e81889 - altair processSyncCommitteeUpdates 447.00 ns/op 697.00 ns/op 0.64
mainnet_e81889 - altair afterProcessEpoch 52.247 ms/op 50.768 ms/op 1.03
capella processEpoch - mainnet_e217614 1.1326 s/op 1.1311 s/op 1.00
mainnet_e217614 - capella beforeProcessEpoch 65.734 ms/op 75.032 ms/op 0.88
mainnet_e217614 - capella processJustificationAndFinalization 24.824 us/op 21.741 us/op 1.14
mainnet_e217614 - capella processInactivityUpdates 17.771 ms/op 16.080 ms/op 1.11
mainnet_e217614 - capella processRewardsAndPenalties 265.25 ms/op 261.47 ms/op 1.01
mainnet_e217614 - capella processRegistryUpdates 20.202 us/op 21.258 us/op 0.95
mainnet_e217614 - capella processSlashings 771.00 ns/op 686.00 ns/op 1.12
mainnet_e217614 - capella processEth1DataReset 567.00 ns/op 565.00 ns/op 1.00
mainnet_e217614 - capella processEffectiveBalanceUpdates 7.4265 ms/op 7.3299 ms/op 1.01
mainnet_e217614 - capella processSlashingsReset 6.1750 us/op 5.2770 us/op 1.17
mainnet_e217614 - capella processRandaoMixesReset 7.3140 us/op 7.0680 us/op 1.03
mainnet_e217614 - capella processHistoricalRootsUpdate 533.00 ns/op 507.00 ns/op 1.05
mainnet_e217614 - capella processParticipationFlagUpdates 5.2310 us/op 2.7550 us/op 1.90
mainnet_e217614 - capella afterProcessEpoch 123.67 ms/op 119.53 ms/op 1.03
phase0 processEpoch - mainnet_e58758 347.94 ms/op 363.75 ms/op 0.96
mainnet_e58758 - phase0 beforeProcessEpoch 84.189 ms/op 83.064 ms/op 1.01
mainnet_e58758 - phase0 processJustificationAndFinalization 23.764 us/op 21.027 us/op 1.13
mainnet_e58758 - phase0 processRewardsAndPenalties 43.368 ms/op 46.100 ms/op 0.94
mainnet_e58758 - phase0 processRegistryUpdates 12.310 us/op 11.072 us/op 1.11
mainnet_e58758 - phase0 processSlashings 669.00 ns/op 662.00 ns/op 1.01
mainnet_e58758 - phase0 processEth1DataReset 543.00 ns/op 577.00 ns/op 0.94
mainnet_e58758 - phase0 processEffectiveBalanceUpdates 2.1275 ms/op 2.9195 ms/op 0.73
mainnet_e58758 - phase0 processSlashingsReset 5.7080 us/op 3.6690 us/op 1.56
mainnet_e58758 - phase0 processRandaoMixesReset 6.1800 us/op 5.8290 us/op 1.06
mainnet_e58758 - phase0 processHistoricalRootsUpdate 512.00 ns/op 614.00 ns/op 0.83
mainnet_e58758 - phase0 processParticipationRecordUpdates 4.8650 us/op 7.0510 us/op 0.69
mainnet_e58758 - phase0 afterProcessEpoch 43.112 ms/op 43.021 ms/op 1.00
phase0 processEffectiveBalanceUpdates - 250000 normalcase 1.2437 ms/op 1.1948 ms/op 1.04
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 2.1293 ms/op 2.2346 ms/op 0.95
altair processInactivityUpdates - 250000 normalcase 22.246 ms/op 24.503 ms/op 0.91
altair processInactivityUpdates - 250000 worstcase 22.558 ms/op 21.850 ms/op 1.03
phase0 processRegistryUpdates - 250000 normalcase 11.059 us/op 10.255 us/op 1.08
phase0 processRegistryUpdates - 250000 badcase_full_deposits 440.27 us/op 474.87 us/op 0.93
phase0 processRegistryUpdates - 250000 worstcase 0.5 141.04 ms/op 132.39 ms/op 1.07
altair processRewardsAndPenalties - 250000 normalcase 51.314 ms/op 49.884 ms/op 1.03
altair processRewardsAndPenalties - 250000 worstcase 51.048 ms/op 49.999 ms/op 1.02
phase0 getAttestationDeltas - 250000 normalcase 7.5651 ms/op 7.4007 ms/op 1.02
phase0 getAttestationDeltas - 250000 worstcase 7.1425 ms/op 6.9671 ms/op 1.03
phase0 processSlashings - 250000 worstcase 124.23 us/op 120.00 us/op 1.04
altair processSyncCommitteeUpdates - 250000 121.01 ms/op 115.34 ms/op 1.05
BeaconState.hashTreeRoot - No change 263.00 ns/op 223.00 ns/op 1.18
BeaconState.hashTreeRoot - 1 full validator 132.34 us/op 135.39 us/op 0.98
BeaconState.hashTreeRoot - 32 full validator 1.4568 ms/op 1.3421 ms/op 1.09
BeaconState.hashTreeRoot - 512 full validator 11.854 ms/op 10.055 ms/op 1.18
BeaconState.hashTreeRoot - 1 validator.effectiveBalance 168.09 us/op 138.38 us/op 1.21
BeaconState.hashTreeRoot - 32 validator.effectiveBalance 2.2828 ms/op 1.6462 ms/op 1.39
BeaconState.hashTreeRoot - 512 validator.effectiveBalance 24.019 ms/op 25.324 ms/op 0.95
BeaconState.hashTreeRoot - 1 balances 120.17 us/op 126.74 us/op 0.95
BeaconState.hashTreeRoot - 32 balances 1.1955 ms/op 907.15 us/op 1.32
BeaconState.hashTreeRoot - 512 balances 9.8413 ms/op 7.7140 ms/op 1.28
BeaconState.hashTreeRoot - 250000 balances 192.87 ms/op 209.41 ms/op 0.92
aggregationBits - 2048 els - zipIndexesInBitList 23.724 us/op 22.448 us/op 1.06
byteArrayEquals 32 54.273 ns/op 52.050 ns/op 1.04
Buffer.compare 32 17.437 ns/op 16.658 ns/op 1.05
byteArrayEquals 1024 1.6056 us/op 1.5385 us/op 1.04
Buffer.compare 1024 24.799 ns/op 24.859 ns/op 1.00
byteArrayEquals 16384 25.534 us/op 24.496 us/op 1.04
Buffer.compare 16384 204.28 ns/op 196.25 ns/op 1.04
byteArrayEquals 123687377 193.57 ms/op 185.12 ms/op 1.05
Buffer.compare 123687377 6.1497 ms/op 6.2136 ms/op 0.99
byteArrayEquals 32 - diff last byte 53.538 ns/op 50.953 ns/op 1.05
Buffer.compare 32 - diff last byte 17.396 ns/op 16.690 ns/op 1.04
byteArrayEquals 1024 - diff last byte 1.6104 us/op 1.5370 us/op 1.05
Buffer.compare 1024 - diff last byte 25.468 ns/op 24.610 ns/op 1.03
byteArrayEquals 16384 - diff last byte 25.734 us/op 24.499 us/op 1.05
Buffer.compare 16384 - diff last byte 204.28 ns/op 198.48 ns/op 1.03
byteArrayEquals 123687377 - diff last byte 192.58 ms/op 186.73 ms/op 1.03
Buffer.compare 123687377 - diff last byte 6.1655 ms/op 7.1468 ms/op 0.86
byteArrayEquals 32 - random bytes 5.2430 ns/op 5.2160 ns/op 1.01
Buffer.compare 32 - random bytes 17.400 ns/op 17.808 ns/op 0.98
byteArrayEquals 1024 - random bytes 5.2240 ns/op 5.2040 ns/op 1.00
Buffer.compare 1024 - random bytes 17.418 ns/op 17.447 ns/op 1.00
byteArrayEquals 16384 - random bytes 5.2200 ns/op 5.2040 ns/op 1.00
Buffer.compare 16384 - random bytes 17.460 ns/op 17.465 ns/op 1.00
byteArrayEquals 123687377 - random bytes 6.5400 ns/op 6.5400 ns/op 1.00
Buffer.compare 123687377 - random bytes 18.720 ns/op 18.690 ns/op 1.00
regular array get 100000 times 44.770 us/op 35.167 us/op 1.27
wrappedArray get 100000 times 33.567 us/op 34.598 us/op 0.97
arrayWithProxy get 100000 times 13.500 ms/op 13.513 ms/op 1.00
ssz.Root.equals 46.863 ns/op 46.848 ns/op 1.00
byteArrayEquals 46.332 ns/op 46.554 ns/op 1.00
Buffer.compare 10.546 ns/op 10.733 ns/op 0.98
processSlot - 1 slots 16.888 us/op 11.842 us/op 1.43
processSlot - 32 slots 3.5555 ms/op 2.4316 ms/op 1.46
getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei 42.335 ms/op 38.911 ms/op 1.09
getCommitteeAssignments - req 1 vs - 250000 vc 2.1412 ms/op 2.1819 ms/op 0.98
getCommitteeAssignments - req 100 vs - 250000 vc 4.1679 ms/op 4.2067 ms/op 0.99
getCommitteeAssignments - req 1000 vs - 250000 vc 4.4754 ms/op 4.4385 ms/op 1.01
findModifiedValidators - 10000 modified validators 237.91 ms/op 250.05 ms/op 0.95
findModifiedValidators - 1000 modified validators 196.12 ms/op 166.98 ms/op 1.17
findModifiedValidators - 100 modified validators 143.90 ms/op 140.21 ms/op 1.03
findModifiedValidators - 10 modified validators 171.68 ms/op 133.45 ms/op 1.29
findModifiedValidators - 1 modified validators 138.22 ms/op 155.62 ms/op 0.89
findModifiedValidators - no difference 155.80 ms/op 178.46 ms/op 0.87
compare ViewDUs 3.2293 s/op 3.1242 s/op 1.03
compare each validator Uint8Array 1.7896 s/op 1.1667 s/op 1.53
compare ViewDU to Uint8Array 1.0316 s/op 1.0573 s/op 0.98
migrate state 1000000 validators, 24 modified, 0 new 793.11 ms/op 714.54 ms/op 1.11
migrate state 1000000 validators, 1700 modified, 1000 new 1.0700 s/op 891.50 ms/op 1.20
migrate state 1000000 validators, 3400 modified, 2000 new 1.2652 s/op 1.1781 s/op 1.07
migrate state 1500000 validators, 24 modified, 0 new 826.92 ms/op 823.30 ms/op 1.00
migrate state 1500000 validators, 1700 modified, 1000 new 1.0697 s/op 1.0276 s/op 1.04
migrate state 1500000 validators, 3400 modified, 2000 new 1.2963 s/op 1.2721 s/op 1.02
RootCache.getBlockRootAtSlot - 250000 vs - 7PWei 4.4400 ns/op 4.4400 ns/op 1.00
state getBlockRootAtSlot - 250000 vs - 7PWei 755.77 ns/op 780.70 ns/op 0.97
computeProposers - vc 250000 7.7803 ms/op 7.8102 ms/op 1.00
computeEpochShuffling - vc 250000 42.894 ms/op 40.606 ms/op 1.06
getNextSyncCommittee - vc 250000 121.50 ms/op 128.36 ms/op 0.95
computeSigningRoot for AttestationData 27.345 us/op 28.119 us/op 0.97
hash AttestationData serialized data then Buffer.toString(base64) 1.6046 us/op 1.5167 us/op 1.06
toHexString serialized data 932.97 ns/op 864.47 ns/op 1.08
Buffer.toString(base64) 176.10 ns/op 184.39 ns/op 0.96
nodejs block root to RootHex using toHex 158.87 ns/op 154.40 ns/op 1.03
nodejs block root to RootHex using toRootHex 99.974 ns/op 93.121 ns/op 1.07
browser block root to RootHex using the deprecated toHexString 237.33 ns/op 377.04 ns/op 0.63
browser block root to RootHex using toHex 186.30 ns/op 178.54 ns/op 1.04
browser block root to RootHex using toRootHex 165.61 ns/op 159.92 ns/op 1.04

by benchmarkbot/action

@nflaig nflaig merged commit 3f3c7fc into unstable Dec 16, 2024
19 of 20 checks passed
@nflaig nflaig deleted the nflaig/print-graffiti branch December 16, 2024 17:25
wemeetagain added a commit that referenced this pull request Dec 20, 2024
* feat: add keymanager endpoint to retrieve proposer config (#7210)

* feat: add keymanager endpoint to retrieve proposer config

* Do not return empty builder config

* Check all builder proposer config values

* Fix settings builder config if undefined

* Fix builder config parsing

* Use ssz type to handle json serialization

Default parsing can't handle BigInt

* Revert "Use ssz type to handle json serialization"

This reverts commit 01fcea7.

* Fix boost factor json serialization

* Remove unused import

* Update test data

* Update proposer config test

* feat: add mekong network option (#7212)

* chore: fix import order with biome syntax (#7211)

Fix import order

* fix: consistently validate pubkey and throw 404 if not found (#7214)

* Throw error if pubkey is unknown when getting graffiti

* Consistently validate pubkey and throw 404 if not found

* fix: only return local keys from /eth/v1/keystores (#7215)

* fix: only return local keys from /eth/v1/keystores

* Fix fetching remote keys in node assertion

* feat: add and use getBlobsV1 to expedite gossip import (#7134)

* hookup the getblobs api to get bob and proof data from el

remove unused

fix import

metrics overhault, test, debugging testing, some feeback

fix

add nethermind bug dicussion link

fix

resolve conflicts

* deblobs timeout

* fix metric

* chore: revert async aggregate with randomness (#7218)

Revert "feat: asyncAggregateWithRandomness (#7204)"

This reverts commit e31d535.

* fix: update config for relaunched mekong network (#7220)

* fix: light client generating `LightClientUpdate` with wrong length of branches (#7187)

* initial commit

* Rewrite SyncCommitteeWitnessRepository

* Fix finality branch

* Update unit test

* fix e2e

* Review PR

---------

Co-authored-by: Nico Flaig <[email protected]>

* fix: archive finalized state when shutting down beacon node (#7221)

* Fix typo

* feat: remove unfinalized pubkey cache (#7230)

* Remove unfinalized pubkey cache

* lint

* Fix unit test

* chore: skip web3_provider unit tests (#7252)

* fix: prune checkpoint states at syncing time (#7241)

* fix: prune checkpoint states at syncing time

* fix: lint

* fix: check-types in test

* fix: sync cached isCompoundingValidatorArr at epoch transition (#7247)

* fix: handle outOfRangeData when range sync Deneb (#7249)

* fix: handle outOfRangeData for beaconBlocksMaybeBlobsByRange()

* fix: lint

* fix: archiveBlocks - handle deneb outOfRangeData block

* fix: sync cached balance when adding new validator to registry (#7255)

* fix: sync cached balance when adding new validator to registry

* chore: add more comments

* fix: remove persisted checkpoint states from the previous run at startup

* fix: do not throw error when trying to prune missing directory (#7257)

* docs: update documentation Oct 2024 (#7178)

* docs update oct 2024 init

* Reconfig quickstart nav and minor fixes

* fix lint

* spelling fixes

* minor fixes and add to wordlist

* prettier fix

* add to wordlist

* sort wordlist

* modify dominance to include lighthouse

* fix typescript casing and add recommendation

* add selection and boost_factor with keymanager notice

* update wordlist

* remove builder enabled and add keymanager api

* spelling

---------

Co-authored-by: Nico Flaig <[email protected]>

* chore(deps): bump cross-spawn from 7.0.3 to 7.0.6 in /docs (#7268)

Bumps [cross-spawn](https://github.com/moxystudio/node-cross-spawn) from 7.0.3 to 7.0.6.
- [Changelog](https://github.com/moxystudio/node-cross-spawn/blob/master/CHANGELOG.md)
- [Commits](moxystudio/node-cross-spawn@v7.0.3...v7.0.6)

---
updated-dependencies:
- dependency-name: cross-spawn
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* feat: add error log to notifier if execution client auth failed (#7239)

* feat: add error log to notifier if execution client auth failed

* Update packages/beacon-node/src/node/notifier.ts

---------

Co-authored-by: NC <[email protected]>

* docs: display rcConfig flag on CLI reference page (#7270)

* docs: display rcConfig flag on CLI reference page

* Update word list

* chore: remove prettier as default formatter for all file types (#7275)

* chore: unhide flags relevant for devnets / testing (#7271)

* feat: debug too many shuffling promises (#7251)

* feat: add asyncShufflingCalculation to StateTransitionOpts

* feat: add asyncShufflingCalculation to all regen / processSlots consumers

* fix: default to false for async shuffling and remove unnecessary props

* fix: remove unnecessary flags from stateTransition

* feat: implement conditional build of shuffling for prepareNextSlot

* fix: spec test bug where shufflingCache is present from BeaconChain constructor

* feat: sync build next shuffling if not queued async

* fix: use getSync to pull next shuffling correctly

* docs: add comment to prepareNextSlot

* refactor: rename StateCloneOpts to StateRegenerationOpts

* feat: pass asyncShufflingCalculation through to afterProcessEpoch and refactor conditional to run purely sync

* docs: add issue number to comment

* chore: lint

* chore: unpin nodejs version from 22.4 (#6982)

* Revert "chore: pin nodejs version to 22.4 (#6964)"

This reverts commit f20484b.

* Don't revert formatting changes

---------

Co-authored-by: Nico Flaig <[email protected]>
Co-authored-by: Cayman <[email protected]>

* chore: update bootnodes file url for holesky and sepolia (#7276)

* feat: add `debug_getHistoricalSummaries` endpoint (#7245)

* feat: add new getHistoricalSummaries endpoint to debug namespace

* Add JSON response

* Restructure to use stateId and add proof to response

* add test scaffolding

* Address feedback

* Move getHistoricalSummaries to lodestar namespace

* add lodestar namespace unit test

* update route name to lodestar namespace

* cast state object as Capella state

* Lint

* json properties need to be lower case

* Make it v1 since it's now part of lodestar namespace

* Group with other /lodestar endpoints

* Simplify beacon node impl

* Rename return type

* Update test description

* Fix variable name

---------

Co-authored-by: Nico Flaig <[email protected]>

* chore: log sync committee signature errors as `error` (#7283)

* fix: update engine_getClientVersionV1 commit encoding (#7282)

* fix: check pubkey or validator index known to a state (#7284)

* fix: check pubkey or validator index known to a state

* chore: add more comments

* feat: lodestar script setup (#7254)

* feat: lodestar_setup

* feat: script_updates + docs

* feat: script_addition_in_docs + command_update

* Remove duplicate script from docs folder

* Minor script updates

* Update script to prepare docs and ignore copied file

* Update installation page

* Wording

---------

Co-authored-by: Nico Flaig <[email protected]>

* feat: add terminal-sized Electra giraffe banner (#7286)

* Create giraffeBanners.ts

* Wire in banner

* Fix file name

* lint

* Address @nflaig's comment

---------

Co-authored-by: NC <[email protected]>

* chore: pin nodejs version to 22.4 (#7291)

Revert "chore: unpin nodejs version from 22.4 (#6982)"

This reverts commit 69ae688.

* feat: expose `DOMAIN_APPLICATION_MASK` in config/spec api (#7296)

* feat: expose DOMAIN_APPLICATION_MASK in config/spec api

* Lint

* feat: make `MAX_REQUEST_BLOB_SIDECARS` and `MAX_BLOBS_PER_BLOCK` configurable (#7294)

* Init commit

* Fix check-types

* Add comment on how MAX_REQUEST_BLOB_SIDECARS is calculated

* Ensure proper config object is passed

* Address comment

---------

Co-authored-by: Nico Flaig <[email protected]>

* feat: use `BLOB_SIDECAR_SUBNET_COUNT` to configure blob subnets (#7297)

feat: use BLOB_SIDECAR_SUBNET_COUNT to configure blob subnets

* chore: log sync aggregate participants when producing beacon block body (#7300)

* chore: log sync aggregate participants when producing beacon block body

* Use isForkLightClient instead of ForkSeq

* Fix produce block unit tests

* chore: print graffiti when producing beacon block body (#7303)

* fix: warn if engine / builder failed to produce block within cutoff time (#7305)

* feat: add kzg commitment length check when validating gossip blocks (#7302)

* feat: add blob sidecar index check (#7313)

Validate blobSidecar index

* fix: fix blob sidecar index check (#7315)

Fix index check

* chore: fix format of printed graffiti from hex to utf-8 (#7306)

* chore: fix format of printed graffiti from hex to utf-8

* Use Buffer.from no copy with offset

* docs: batch commit typos and update contributor readme (#7312)

* batch commit typos and update contributor readme

* update donation text

Co-authored-by: Nico Flaig <[email protected]>

* correct spelling

Co-authored-by: Nico Flaig <[email protected]>

---------

Co-authored-by: Nico Flaig <[email protected]>

* chore: remove trailing null bytes from printed graffiti (#7320)

* chore: remove trailing null bytes from printed graffiti

* Use replaceAll instead of regex

* chore: unpin nodejs version from 22.4 (#7324)

Revert "chore: pin nodejs version to 22.4 (#7291)"

This reverts commit 99794d3.

* chore: bump package versions to 1.24.0

---------

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: Nico Flaig <[email protected]>
Co-authored-by: Nazar Hussain <[email protected]>
Co-authored-by: g11tech <[email protected]>
Co-authored-by: Matthew Keil <[email protected]>
Co-authored-by: NC <[email protected]>
Co-authored-by: twoeths <[email protected]>
Co-authored-by: Phil Ngo <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: acolytec3 <[email protected]>
Co-authored-by: Varun Guleria <[email protected]>
Co-authored-by: ClockworkYuzu <[email protected]>
@wemeetagain
Copy link
Member

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