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: remove trailing null bytes from printed graffiti #7320

Merged
merged 2 commits into from
Dec 20, 2024

Conversation

nflaig
Copy link
Member

@nflaig nflaig commented Dec 19, 2024

Turns out the graffiti is still not printed correctly in some rear cases, eg. in log files trailing null bytes might be displayed

Produced beacon block body fork=electra, blockType=Full, slot=70, graffiti=1-besu-lodestar�����������������

Even though this is not disabled in any console, we should probably get rid of the null bytes

@nflaig nflaig requested a review from a team as a code owner December 19, 2024 23:35
Copy link

codecov bot commented Dec 19, 2024

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 48.75%. Comparing base (ffdfb2e) to head (5174c91).
Report is 1 commits behind head on unstable.

Additional details and impacted files
@@            Coverage Diff            @@
##           unstable    #7320   +/-   ##
=========================================
  Coverage     48.75%   48.75%           
=========================================
  Files           601      601           
  Lines         40222    40222           
  Branches       2061     2061           
=========================================
  Hits          19609    19609           
  Misses        20575    20575           
  Partials         38       38           

Copy link
Contributor

github-actions bot commented Dec 20, 2024

Performance Report

✔️ no performance regression detected

Full benchmark results
Benchmark suite Current: f1001f9 Previous: ffdfb2e Ratio
getPubkeys - index2pubkey - req 1000 vs - 250000 vc 2.0214 ms/op 2.2827 ms/op 0.89
getPubkeys - validatorsArr - req 1000 vs - 250000 vc 51.066 us/op 54.829 us/op 0.93
BLS verify - blst 931.41 us/op 1.1079 ms/op 0.84
BLS verifyMultipleSignatures 3 - blst 1.5313 ms/op 1.5723 ms/op 0.97
BLS verifyMultipleSignatures 8 - blst 2.1415 ms/op 1.9587 ms/op 1.09
BLS verifyMultipleSignatures 32 - blst 4.5778 ms/op 6.0627 ms/op 0.76
BLS verifyMultipleSignatures 64 - blst 8.5488 ms/op 11.562 ms/op 0.74
BLS verifyMultipleSignatures 128 - blst 16.369 ms/op 18.458 ms/op 0.89
BLS deserializing 10000 signatures 627.23 ms/op 753.05 ms/op 0.83
BLS deserializing 100000 signatures 6.1477 s/op 7.4136 s/op 0.83
BLS verifyMultipleSignatures - same message - 3 - blst 916.37 us/op 1.0817 ms/op 0.85
BLS verifyMultipleSignatures - same message - 8 - blst 1.0533 ms/op 1.1420 ms/op 0.92
BLS verifyMultipleSignatures - same message - 32 - blst 1.6580 ms/op 1.9394 ms/op 0.85
BLS verifyMultipleSignatures - same message - 64 - blst 2.4998 ms/op 2.8616 ms/op 0.87
BLS verifyMultipleSignatures - same message - 128 - blst 4.0750 ms/op 5.0042 ms/op 0.81
BLS aggregatePubkeys 32 - blst 18.388 us/op 22.404 us/op 0.82
BLS aggregatePubkeys 128 - blst 63.187 us/op 83.138 us/op 0.76
notSeenSlots=1 numMissedVotes=1 numBadVotes=10 84.756 ms/op 67.414 ms/op 1.26
notSeenSlots=1 numMissedVotes=0 numBadVotes=4 51.396 ms/op 64.765 ms/op 0.79
notSeenSlots=2 numMissedVotes=1 numBadVotes=10 41.908 ms/op 54.091 ms/op 0.77
getSlashingsAndExits - default max 87.075 us/op 139.42 us/op 0.62
getSlashingsAndExits - 2k 276.55 us/op 336.46 us/op 0.82
proposeBlockBody type=full, size=empty 4.7858 ms/op 6.2594 ms/op 0.76
isKnown best case - 1 super set check 459.00 ns/op 346.00 ns/op 1.33
isKnown normal case - 2 super set checks 453.00 ns/op 364.00 ns/op 1.24
isKnown worse case - 16 super set checks 459.00 ns/op 366.00 ns/op 1.25
InMemoryCheckpointStateCache - add get delete 2.6920 us/op 2.9100 us/op 0.93
validate api signedAggregateAndProof - struct 1.5611 ms/op 2.3678 ms/op 0.66
validate gossip signedAggregateAndProof - struct 1.5272 ms/op 2.3896 ms/op 0.64
batch validate gossip attestation - vc 640000 - chunk 32 122.85 us/op 142.53 us/op 0.86
batch validate gossip attestation - vc 640000 - chunk 64 103.41 us/op 123.73 us/op 0.84
batch validate gossip attestation - vc 640000 - chunk 128 97.669 us/op 112.06 us/op 0.87
batch validate gossip attestation - vc 640000 - chunk 256 98.908 us/op 106.53 us/op 0.93
pickEth1Vote - no votes 926.87 us/op 1.1484 ms/op 0.81
pickEth1Vote - max votes 5.3308 ms/op 6.4550 ms/op 0.83
pickEth1Vote - Eth1Data hashTreeRoot value x2048 14.418 ms/op 13.295 ms/op 1.08
pickEth1Vote - Eth1Data hashTreeRoot tree x2048 22.454 ms/op 25.090 ms/op 0.89
pickEth1Vote - Eth1Data fastSerialize value x2048 374.97 us/op 596.90 us/op 0.63
pickEth1Vote - Eth1Data fastSerialize tree x2048 2.6025 ms/op 3.1947 ms/op 0.81
bytes32 toHexString 609.00 ns/op 510.00 ns/op 1.19
bytes32 Buffer.toString(hex) 455.00 ns/op 296.00 ns/op 1.54
bytes32 Buffer.toString(hex) from Uint8Array 545.00 ns/op 440.00 ns/op 1.24
bytes32 Buffer.toString(hex) + 0x 447.00 ns/op 290.00 ns/op 1.54
Object access 1 prop 0.32600 ns/op 0.15300 ns/op 2.13
Map access 1 prop 0.32200 ns/op 0.14900 ns/op 2.16
Object get x1000 5.4280 ns/op 6.4430 ns/op 0.84
Map get x1000 5.9850 ns/op 6.7650 ns/op 0.88
Object set x1000 25.309 ns/op 37.364 ns/op 0.68
Map set x1000 18.754 ns/op 24.613 ns/op 0.76
Return object 10000 times 0.29460 ns/op 0.30910 ns/op 0.95
Throw Error 10000 times 2.6985 us/op 3.5445 us/op 0.76
toHex 119.96 ns/op 186.31 ns/op 0.64
Buffer.from 107.06 ns/op 158.88 ns/op 0.67
shared Buffer 76.182 ns/op 117.90 ns/op 0.65
fastMsgIdFn sha256 / 200 bytes 2.0770 us/op 2.3340 us/op 0.89
fastMsgIdFn h32 xxhash / 200 bytes 521.00 ns/op 276.00 ns/op 1.89
fastMsgIdFn h64 xxhash / 200 bytes 464.00 ns/op 286.00 ns/op 1.62
fastMsgIdFn sha256 / 1000 bytes 5.8610 us/op 7.9530 us/op 0.74
fastMsgIdFn h32 xxhash / 1000 bytes 612.00 ns/op 420.00 ns/op 1.46
fastMsgIdFn h64 xxhash / 1000 bytes 533.00 ns/op 361.00 ns/op 1.48
fastMsgIdFn sha256 / 10000 bytes 49.450 us/op 69.093 us/op 0.72
fastMsgIdFn h32 xxhash / 10000 bytes 1.9860 us/op 1.9740 us/op 1.01
fastMsgIdFn h64 xxhash / 10000 bytes 1.4120 us/op 1.2940 us/op 1.09
send data - 1000 256B messages 11.130 ms/op 15.039 ms/op 0.74
send data - 1000 512B messages 14.849 ms/op 17.899 ms/op 0.83
send data - 1000 1024B messages 21.025 ms/op 28.288 ms/op 0.74
send data - 1000 1200B messages 21.193 ms/op 27.032 ms/op 0.78
send data - 1000 2048B messages 29.639 ms/op 32.138 ms/op 0.92
send data - 1000 4096B messages 27.706 ms/op 35.734 ms/op 0.78
send data - 1000 16384B messages 70.862 ms/op 77.927 ms/op 0.91
send data - 1000 65536B messages 250.82 ms/op 283.99 ms/op 0.88
enrSubnets - fastDeserialize 64 bits 1.2310 us/op 1.3300 us/op 0.93
enrSubnets - ssz BitVector 64 bits 543.00 ns/op 474.00 ns/op 1.15
enrSubnets - fastDeserialize 4 bits 337.00 ns/op 214.00 ns/op 1.57
enrSubnets - ssz BitVector 4 bits 527.00 ns/op 463.00 ns/op 1.14
prioritizePeers score -10:0 att 32-0.1 sync 2-0 109.41 us/op 205.39 us/op 0.53
prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 133.60 us/op 211.29 us/op 0.63
prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 192.18 us/op 322.37 us/op 0.60
prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 339.69 us/op 510.54 us/op 0.67
prioritizePeers score 0:0 att 64-1 sync 4-1 408.06 us/op 881.92 us/op 0.46
array of 16000 items push then shift 1.3042 us/op 1.8991 us/op 0.69
LinkedList of 16000 items push then shift 6.5130 ns/op 8.6400 ns/op 0.75
array of 16000 items push then pop 78.368 ns/op 145.42 ns/op 0.54
LinkedList of 16000 items push then pop 6.2630 ns/op 8.2320 ns/op 0.76
array of 24000 items push then shift 1.8911 us/op 2.6910 us/op 0.70
LinkedList of 24000 items push then shift 6.6070 ns/op 8.9190 ns/op 0.74
array of 24000 items push then pop 105.39 ns/op 198.99 ns/op 0.53
LinkedList of 24000 items push then pop 6.3190 ns/op 8.1670 ns/op 0.77
intersect bitArray bitLen 8 5.4490 ns/op 7.0480 ns/op 0.77
intersect array and set length 8 37.696 ns/op 65.864 ns/op 0.57
intersect bitArray bitLen 128 26.511 ns/op 32.164 ns/op 0.82
intersect array and set length 128 574.61 ns/op 937.46 ns/op 0.61
bitArray.getTrueBitIndexes() bitLen 128 1.3060 us/op 2.3700 us/op 0.55
bitArray.getTrueBitIndexes() bitLen 248 2.0360 us/op 4.3020 us/op 0.47
bitArray.getTrueBitIndexes() bitLen 512 3.7180 us/op 9.1500 us/op 0.41
Buffer.concat 32 items 1.0340 us/op 1.0870 us/op 0.95
Uint8Array.set 32 items 1.2940 us/op 1.9840 us/op 0.65
Buffer.copy 1.4350 us/op 1.9550 us/op 0.73
Uint8Array.set - with subarray 1.8970 us/op 3.5160 us/op 0.54
Uint8Array.set - without subarray 1.2810 us/op 1.7050 us/op 0.75
getUint32 - dataview 401.00 ns/op 325.00 ns/op 1.23
getUint32 - manual 336.00 ns/op 260.00 ns/op 1.29
Set add up to 64 items then delete first 1.7768 us/op 3.0680 us/op 0.58
OrderedSet add up to 64 items then delete first 2.7486 us/op 4.3002 us/op 0.64
Set add up to 64 items then delete last 2.0159 us/op 3.5031 us/op 0.58
OrderedSet add up to 64 items then delete last 3.0260 us/op 5.0716 us/op 0.60
Set add up to 64 items then delete middle 2.0189 us/op 3.3550 us/op 0.60
OrderedSet add up to 64 items then delete middle 4.4195 us/op 6.6866 us/op 0.66
Set add up to 128 items then delete first 3.9756 us/op 6.7746 us/op 0.59
OrderedSet add up to 128 items then delete first 6.1884 us/op 11.977 us/op 0.52
Set add up to 128 items then delete last 3.8273 us/op 7.2615 us/op 0.53
OrderedSet add up to 128 items then delete last 5.7477 us/op 11.768 us/op 0.49
Set add up to 128 items then delete middle 3.9837 us/op 7.0978 us/op 0.56
OrderedSet add up to 128 items then delete middle 11.449 us/op 18.472 us/op 0.62
Set add up to 256 items then delete first 7.9547 us/op 14.535 us/op 0.55
OrderedSet add up to 256 items then delete first 12.437 us/op 23.460 us/op 0.53
Set add up to 256 items then delete last 7.3944 us/op 13.913 us/op 0.53
OrderedSet add up to 256 items then delete last 11.380 us/op 22.156 us/op 0.51
Set add up to 256 items then delete middle 7.4720 us/op 13.422 us/op 0.56
OrderedSet add up to 256 items then delete middle 34.106 us/op 49.952 us/op 0.68
transfer serialized Status (84 B) 1.3510 us/op 1.5400 us/op 0.88
copy serialized Status (84 B) 1.1630 us/op 1.3550 us/op 0.86
transfer serialized SignedVoluntaryExit (112 B) 1.4200 us/op 1.5900 us/op 0.89
copy serialized SignedVoluntaryExit (112 B) 1.1840 us/op 1.4270 us/op 0.83
transfer serialized ProposerSlashing (416 B) 1.5150 us/op 1.8740 us/op 0.81
copy serialized ProposerSlashing (416 B) 1.3820 us/op 1.8940 us/op 0.73
transfer serialized Attestation (485 B) 1.5650 us/op 2.1280 us/op 0.74
copy serialized Attestation (485 B) 1.3990 us/op 1.9250 us/op 0.73
transfer serialized AttesterSlashing (33232 B) 1.6810 us/op 1.8790 us/op 0.89
copy serialized AttesterSlashing (33232 B) 3.4770 us/op 7.9460 us/op 0.44
transfer serialized Small SignedBeaconBlock (128000 B) 1.6960 us/op 2.7120 us/op 0.63
copy serialized Small SignedBeaconBlock (128000 B) 13.763 us/op 27.012 us/op 0.51
transfer serialized Avg SignedBeaconBlock (200000 B) 1.8000 us/op 4.0780 us/op 0.44
copy serialized Avg SignedBeaconBlock (200000 B) 10.928 us/op 37.509 us/op 0.29
transfer serialized BlobsSidecar (524380 B) 2.3390 us/op 4.1820 us/op 0.56
copy serialized BlobsSidecar (524380 B) 70.911 us/op 105.24 us/op 0.67
transfer serialized Big SignedBeaconBlock (1000000 B) 2.7470 us/op 4.2500 us/op 0.65
copy serialized Big SignedBeaconBlock (1000000 B) 134.78 us/op 202.32 us/op 0.67
pass gossip attestations to forkchoice per slot 2.4521 ms/op 3.0851 ms/op 0.79
forkChoice updateHead vc 100000 bc 64 eq 0 395.31 us/op 497.96 us/op 0.79
forkChoice updateHead vc 600000 bc 64 eq 0 2.5120 ms/op 4.7493 ms/op 0.53
forkChoice updateHead vc 1000000 bc 64 eq 0 3.9158 ms/op 6.5941 ms/op 0.59
forkChoice updateHead vc 600000 bc 320 eq 0 2.3949 ms/op 3.3644 ms/op 0.71
forkChoice updateHead vc 600000 bc 1200 eq 0 2.5140 ms/op 3.2884 ms/op 0.76
forkChoice updateHead vc 600000 bc 7200 eq 0 2.5955 ms/op 5.9929 ms/op 0.43
forkChoice updateHead vc 600000 bc 64 eq 1000 9.4787 ms/op 11.575 ms/op 0.82
forkChoice updateHead vc 600000 bc 64 eq 10000 9.3732 ms/op 10.989 ms/op 0.85
forkChoice updateHead vc 600000 bc 64 eq 300000 11.719 ms/op 16.124 ms/op 0.73
computeDeltas 500000 validators 300 proto nodes 3.3460 ms/op 4.6668 ms/op 0.72
computeDeltas 500000 validators 1200 proto nodes 3.3331 ms/op 4.8292 ms/op 0.69
computeDeltas 500000 validators 7200 proto nodes 3.2740 ms/op 4.5104 ms/op 0.73
computeDeltas 750000 validators 300 proto nodes 4.9632 ms/op 6.7989 ms/op 0.73
computeDeltas 750000 validators 1200 proto nodes 4.9138 ms/op 7.2264 ms/op 0.68
computeDeltas 750000 validators 7200 proto nodes 4.9751 ms/op 6.8860 ms/op 0.72
computeDeltas 1400000 validators 300 proto nodes 9.1532 ms/op 13.198 ms/op 0.69
computeDeltas 1400000 validators 1200 proto nodes 9.2854 ms/op 14.674 ms/op 0.63
computeDeltas 1400000 validators 7200 proto nodes 9.3878 ms/op 14.671 ms/op 0.64
computeDeltas 2100000 validators 300 proto nodes 13.993 ms/op 20.875 ms/op 0.67
computeDeltas 2100000 validators 1200 proto nodes 13.660 ms/op 21.144 ms/op 0.65
computeDeltas 2100000 validators 7200 proto nodes 13.507 ms/op 20.784 ms/op 0.65
altair processAttestation - 250000 vs - 7PWei normalcase 1.4400 ms/op 2.7340 ms/op 0.53
altair processAttestation - 250000 vs - 7PWei worstcase 2.1550 ms/op 3.6362 ms/op 0.59
altair processAttestation - setStatus - 1/6 committees join 66.724 us/op 124.56 us/op 0.54
altair processAttestation - setStatus - 1/3 committees join 131.13 us/op 224.42 us/op 0.58
altair processAttestation - setStatus - 1/2 committees join 193.40 us/op 335.67 us/op 0.58
altair processAttestation - setStatus - 2/3 committees join 257.42 us/op 412.60 us/op 0.62
altair processAttestation - setStatus - 4/5 committees join 383.97 us/op 598.01 us/op 0.64
altair processAttestation - setStatus - 100% committees join 461.66 us/op 707.80 us/op 0.65
altair processBlock - 250000 vs - 7PWei normalcase 3.6560 ms/op 9.1218 ms/op 0.40
altair processBlock - 250000 vs - 7PWei normalcase hashState 24.192 ms/op 29.873 ms/op 0.81
altair processBlock - 250000 vs - 7PWei worstcase 35.626 ms/op 51.573 ms/op 0.69
altair processBlock - 250000 vs - 7PWei worstcase hashState 61.406 ms/op 88.399 ms/op 0.69
phase0 processBlock - 250000 vs - 7PWei normalcase 1.5285 ms/op 2.8068 ms/op 0.54
phase0 processBlock - 250000 vs - 7PWei worstcase 22.325 ms/op 29.534 ms/op 0.76
altair processEth1Data - 250000 vs - 7PWei normalcase 252.07 us/op 532.62 us/op 0.47
getExpectedWithdrawals 250000 eb:1,eth1:1,we:0,wn:0,smpl:15 4.8980 us/op 7.6390 us/op 0.64
getExpectedWithdrawals 250000 eb:0.95,eth1:0.1,we:0.05,wn:0,smpl:219 29.893 us/op 44.292 us/op 0.67
getExpectedWithdrawals 250000 eb:0.95,eth1:0.3,we:0.05,wn:0,smpl:42 7.9880 us/op 14.513 us/op 0.55
getExpectedWithdrawals 250000 eb:0.95,eth1:0.7,we:0.05,wn:0,smpl:18 5.2230 us/op 7.3930 us/op 0.71
getExpectedWithdrawals 250000 eb:0.1,eth1:0.1,we:0,wn:0,smpl:1020 125.16 us/op 165.63 us/op 0.76
getExpectedWithdrawals 250000 eb:0.03,eth1:0.03,we:0,wn:0,smpl:11777 836.87 us/op 1.4907 ms/op 0.56
getExpectedWithdrawals 250000 eb:0.01,eth1:0.01,we:0,wn:0,smpl:16384 1.1306 ms/op 1.6192 ms/op 0.70
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,smpl:16384 1.1335 ms/op 2.1657 ms/op 0.52
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,nocache,smpl:16384 2.7425 ms/op 4.1997 ms/op 0.65
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,smpl:16384 1.1666 ms/op 1.9807 ms/op 0.59
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,nocache,smpl:16384 2.9123 ms/op 4.3100 ms/op 0.68
Tree 40 250000 create 187.23 ms/op 255.91 ms/op 0.73
Tree 40 250000 get(125000) 114.32 ns/op 165.44 ns/op 0.69
Tree 40 250000 set(125000) 541.33 ns/op 766.35 ns/op 0.71
Tree 40 250000 toArray() 14.585 ms/op 18.205 ms/op 0.80
Tree 40 250000 iterate all - toArray() + loop 14.802 ms/op 20.347 ms/op 0.73
Tree 40 250000 iterate all - get(i) 42.660 ms/op 57.827 ms/op 0.74
Array 250000 create 2.5174 ms/op 3.6490 ms/op 0.69
Array 250000 clone - spread 1.2479 ms/op 1.6549 ms/op 0.75
Array 250000 get(125000) 0.58600 ns/op 0.44000 ns/op 1.33
Array 250000 set(125000) 0.57800 ns/op 0.47600 ns/op 1.21
Array 250000 iterate all - loop 74.097 us/op 86.137 us/op 0.86
phase0 afterProcessEpoch - 250000 vs - 7PWei 41.809 ms/op 54.669 ms/op 0.76
Array.fill - length 1000000 2.4764 ms/op 3.9513 ms/op 0.63
Array push - length 1000000 16.079 ms/op 19.813 ms/op 0.81
Array.get 0.25034 ns/op 0.27344 ns/op 0.92
Uint8Array.get 0.33160 ns/op 0.45088 ns/op 0.74
phase0 beforeProcessEpoch - 250000 vs - 7PWei 16.938 ms/op 20.107 ms/op 0.84
altair processEpoch - mainnet_e81889 271.53 ms/op 338.47 ms/op 0.80
mainnet_e81889 - altair beforeProcessEpoch 17.178 ms/op 24.356 ms/op 0.71
mainnet_e81889 - altair processJustificationAndFinalization 10.336 us/op 18.340 us/op 0.56
mainnet_e81889 - altair processInactivityUpdates 3.9843 ms/op 6.4053 ms/op 0.62
mainnet_e81889 - altair processRewardsAndPenalties 40.127 ms/op 47.929 ms/op 0.84
mainnet_e81889 - altair processRegistryUpdates 2.0040 us/op 3.8570 us/op 0.52
mainnet_e81889 - altair processSlashings 760.00 ns/op 876.00 ns/op 0.87
mainnet_e81889 - altair processEth1DataReset 647.00 ns/op 626.00 ns/op 1.03
mainnet_e81889 - altair processEffectiveBalanceUpdates 1.1276 ms/op 2.4535 ms/op 0.46
mainnet_e81889 - altair processSlashingsReset 8.2320 us/op 6.8650 us/op 1.20
mainnet_e81889 - altair processRandaoMixesReset 3.6980 us/op 7.4900 us/op 0.49
mainnet_e81889 - altair processHistoricalRootsUpdate 858.00 ns/op 708.00 ns/op 1.21
mainnet_e81889 - altair processParticipationFlagUpdates 3.0970 us/op 2.6960 us/op 1.15
mainnet_e81889 - altair processSyncCommitteeUpdates 839.00 ns/op 761.00 ns/op 1.10
mainnet_e81889 - altair afterProcessEpoch 43.390 ms/op 54.237 ms/op 0.80
capella processEpoch - mainnet_e217614 1.0082 s/op 1.1883 s/op 0.85
mainnet_e217614 - capella beforeProcessEpoch 70.519 ms/op 76.392 ms/op 0.92
mainnet_e217614 - capella processJustificationAndFinalization 16.431 us/op 19.955 us/op 0.82
mainnet_e217614 - capella processInactivityUpdates 16.355 ms/op 19.578 ms/op 0.84
mainnet_e217614 - capella processRewardsAndPenalties 228.41 ms/op 276.59 ms/op 0.83
mainnet_e217614 - capella processRegistryUpdates 11.679 us/op 20.706 us/op 0.56
mainnet_e217614 - capella processSlashings 767.00 ns/op 755.00 ns/op 1.02
mainnet_e217614 - capella processEth1DataReset 776.00 ns/op 876.00 ns/op 0.89
mainnet_e217614 - capella processEffectiveBalanceUpdates 14.126 ms/op 20.726 ms/op 0.68
mainnet_e217614 - capella processSlashingsReset 3.2120 us/op 5.2000 us/op 0.62
mainnet_e217614 - capella processRandaoMixesReset 9.8500 us/op 8.7320 us/op 1.13
mainnet_e217614 - capella processHistoricalRootsUpdate 974.00 ns/op 509.00 ns/op 1.91
mainnet_e217614 - capella processParticipationFlagUpdates 2.7130 us/op 3.1100 us/op 0.87
mainnet_e217614 - capella afterProcessEpoch 109.58 ms/op 132.32 ms/op 0.83
phase0 processEpoch - mainnet_e58758 362.52 ms/op 390.30 ms/op 0.93
mainnet_e58758 - phase0 beforeProcessEpoch 90.604 ms/op 110.48 ms/op 0.82
mainnet_e58758 - phase0 processJustificationAndFinalization 18.799 us/op 25.928 us/op 0.73
mainnet_e58758 - phase0 processRewardsAndPenalties 29.330 ms/op 37.087 ms/op 0.79
mainnet_e58758 - phase0 processRegistryUpdates 7.9060 us/op 16.915 us/op 0.47
mainnet_e58758 - phase0 processSlashings 851.00 ns/op 727.00 ns/op 1.17
mainnet_e58758 - phase0 processEth1DataReset 711.00 ns/op 610.00 ns/op 1.17
mainnet_e58758 - phase0 processEffectiveBalanceUpdates 1.4265 ms/op 1.6752 ms/op 0.85
mainnet_e58758 - phase0 processSlashingsReset 3.1170 us/op 5.6650 us/op 0.55
mainnet_e58758 - phase0 processRandaoMixesReset 3.4220 us/op 9.3200 us/op 0.37
mainnet_e58758 - phase0 processHistoricalRootsUpdate 724.00 ns/op 1.1290 us/op 0.64
mainnet_e58758 - phase0 processParticipationRecordUpdates 2.8820 us/op 6.4330 us/op 0.45
mainnet_e58758 - phase0 afterProcessEpoch 35.745 ms/op 49.170 ms/op 0.73
phase0 processEffectiveBalanceUpdates - 250000 normalcase 1.0593 ms/op 1.7809 ms/op 0.59
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 1.7795 ms/op 4.1652 ms/op 0.43
altair processInactivityUpdates - 250000 normalcase 17.188 ms/op 20.619 ms/op 0.83
altair processInactivityUpdates - 250000 worstcase 15.358 ms/op 20.707 ms/op 0.74
phase0 processRegistryUpdates - 250000 normalcase 8.4320 us/op 10.057 us/op 0.84
phase0 processRegistryUpdates - 250000 badcase_full_deposits 309.13 us/op 328.72 us/op 0.94
phase0 processRegistryUpdates - 250000 worstcase 0.5 120.93 ms/op 128.64 ms/op 0.94
altair processRewardsAndPenalties - 250000 normalcase 50.989 ms/op 43.187 ms/op 1.18
altair processRewardsAndPenalties - 250000 worstcase 40.264 ms/op 43.427 ms/op 0.93
phase0 getAttestationDeltas - 250000 normalcase 6.4607 ms/op 9.3477 ms/op 0.69
phase0 getAttestationDeltas - 250000 worstcase 6.4618 ms/op 8.1400 ms/op 0.79
phase0 processSlashings - 250000 worstcase 95.469 us/op 110.60 us/op 0.86
altair processSyncCommitteeUpdates - 250000 103.43 ms/op 137.99 ms/op 0.75
BeaconState.hashTreeRoot - No change 451.00 ns/op 246.00 ns/op 1.83
BeaconState.hashTreeRoot - 1 full validator 83.330 us/op 142.94 us/op 0.58
BeaconState.hashTreeRoot - 32 full validator 1.6287 ms/op 969.89 us/op 1.68
BeaconState.hashTreeRoot - 512 full validator 9.0114 ms/op 11.539 ms/op 0.78
BeaconState.hashTreeRoot - 1 validator.effectiveBalance 138.24 us/op 153.98 us/op 0.90
BeaconState.hashTreeRoot - 32 validator.effectiveBalance 2.2521 ms/op 2.1332 ms/op 1.06
BeaconState.hashTreeRoot - 512 validator.effectiveBalance 29.469 ms/op 30.753 ms/op 0.96
BeaconState.hashTreeRoot - 1 balances 151.58 us/op 142.05 us/op 1.07
BeaconState.hashTreeRoot - 32 balances 1.4409 ms/op 1.2810 ms/op 1.12
BeaconState.hashTreeRoot - 512 balances 7.5400 ms/op 9.7774 ms/op 0.77
BeaconState.hashTreeRoot - 250000 balances 215.80 ms/op 162.31 ms/op 1.33
aggregationBits - 2048 els - zipIndexesInBitList 29.834 us/op 25.895 us/op 1.15
byteArrayEquals 32 48.208 ns/op 54.945 ns/op 0.88
Buffer.compare 32 15.909 ns/op 17.958 ns/op 0.89
byteArrayEquals 1024 1.3152 us/op 1.6539 us/op 0.80
Buffer.compare 1024 24.417 ns/op 25.243 ns/op 0.97
byteArrayEquals 16384 20.828 us/op 25.893 us/op 0.80
Buffer.compare 16384 216.81 ns/op 204.61 ns/op 1.06
byteArrayEquals 123687377 162.61 ms/op 196.42 ms/op 0.83
Buffer.compare 123687377 7.5826 ms/op 7.1633 ms/op 1.06
byteArrayEquals 32 - diff last byte 51.755 ns/op 53.607 ns/op 0.97
Buffer.compare 32 - diff last byte 16.636 ns/op 20.426 ns/op 0.81
byteArrayEquals 1024 - diff last byte 1.3435 us/op 1.6164 us/op 0.83
Buffer.compare 1024 - diff last byte 23.697 ns/op 27.440 ns/op 0.86
byteArrayEquals 16384 - diff last byte 21.024 us/op 25.964 us/op 0.81
Buffer.compare 16384 - diff last byte 182.42 ns/op 192.94 ns/op 0.95
byteArrayEquals 123687377 - diff last byte 157.60 ms/op 195.36 ms/op 0.81
Buffer.compare 123687377 - diff last byte 4.5486 ms/op 6.5468 ms/op 0.69
byteArrayEquals 32 - random bytes 4.9710 ns/op 5.2710 ns/op 0.94
Buffer.compare 32 - random bytes 16.117 ns/op 17.594 ns/op 0.92
byteArrayEquals 1024 - random bytes 4.8800 ns/op 5.2450 ns/op 0.93
Buffer.compare 1024 - random bytes 16.255 ns/op 17.597 ns/op 0.92
byteArrayEquals 16384 - random bytes 4.9520 ns/op 5.2660 ns/op 0.94
Buffer.compare 16384 - random bytes 16.330 ns/op 17.573 ns/op 0.93
byteArrayEquals 123687377 - random bytes 8.6400 ns/op 6.5900 ns/op 1.31
Buffer.compare 123687377 - random bytes 19.920 ns/op 18.850 ns/op 1.06
regular array get 100000 times 31.039 us/op 36.896 us/op 0.84
wrappedArray get 100000 times 30.925 us/op 32.616 us/op 0.95
arrayWithProxy get 100000 times 9.7134 ms/op 13.431 ms/op 0.72
ssz.Root.equals 44.219 ns/op 45.868 ns/op 0.96
byteArrayEquals 43.160 ns/op 45.243 ns/op 0.95
Buffer.compare 9.3710 ns/op 10.361 ns/op 0.90
processSlot - 1 slots 14.746 us/op 14.231 us/op 1.04
processSlot - 32 slots 3.0564 ms/op 3.0744 ms/op 0.99
getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei 40.720 ms/op 40.294 ms/op 1.01
getCommitteeAssignments - req 1 vs - 250000 vc 1.8129 ms/op 2.2113 ms/op 0.82
getCommitteeAssignments - req 100 vs - 250000 vc 3.5504 ms/op 4.0760 ms/op 0.87
getCommitteeAssignments - req 1000 vs - 250000 vc 3.6797 ms/op 4.3776 ms/op 0.84
findModifiedValidators - 10000 modified validators 230.98 ms/op 246.06 ms/op 0.94
findModifiedValidators - 1000 modified validators 149.71 ms/op 171.43 ms/op 0.87
findModifiedValidators - 100 modified validators 151.31 ms/op 191.80 ms/op 0.79
findModifiedValidators - 10 modified validators 149.69 ms/op 159.91 ms/op 0.94
findModifiedValidators - 1 modified validators 140.06 ms/op 140.82 ms/op 0.99
findModifiedValidators - no difference 139.88 ms/op 154.88 ms/op 0.90
compare ViewDUs 3.1304 s/op 3.1890 s/op 0.98
compare each validator Uint8Array 1.4777 s/op 1.5326 s/op 0.96
compare ViewDU to Uint8Array 646.66 ms/op 1.1445 s/op 0.57
migrate state 1000000 validators, 24 modified, 0 new 714.40 ms/op 730.09 ms/op 0.98
migrate state 1000000 validators, 1700 modified, 1000 new 936.36 ms/op 993.11 ms/op 0.94
migrate state 1000000 validators, 3400 modified, 2000 new 1.1944 s/op 1.2193 s/op 0.98
migrate state 1500000 validators, 24 modified, 0 new 726.46 ms/op 759.91 ms/op 0.96
migrate state 1500000 validators, 1700 modified, 1000 new 985.16 ms/op 999.77 ms/op 0.99
migrate state 1500000 validators, 3400 modified, 2000 new 1.1611 s/op 1.1905 s/op 0.98
RootCache.getBlockRootAtSlot - 250000 vs - 7PWei 6.0100 ns/op 4.5500 ns/op 1.32
state getBlockRootAtSlot - 250000 vs - 7PWei 979.46 ns/op 867.52 ns/op 1.13
computeProposers - vc 250000 5.6941 ms/op 7.8388 ms/op 0.73
computeEpochShuffling - vc 250000 34.630 ms/op 41.657 ms/op 0.83
getNextSyncCommittee - vc 250000 95.956 ms/op 116.40 ms/op 0.82
computeSigningRoot for AttestationData 19.634 us/op 21.563 us/op 0.91
hash AttestationData serialized data then Buffer.toString(base64) 1.1617 us/op 1.5908 us/op 0.73
toHexString serialized data 787.80 ns/op 898.84 ns/op 0.88
Buffer.toString(base64) 147.08 ns/op 177.97 ns/op 0.83
nodejs block root to RootHex using toHex 117.42 ns/op 195.00 ns/op 0.60
nodejs block root to RootHex using toRootHex 76.350 ns/op 106.94 ns/op 0.71
browser block root to RootHex using the deprecated toHexString 208.62 ns/op 242.00 ns/op 0.86
browser block root to RootHex using toHex 165.39 ns/op 188.93 ns/op 0.88
browser block root to RootHex using toRootHex 144.76 ns/op 167.94 ns/op 0.86

by benchmarkbot/action

@wemeetagain wemeetagain merged commit 6d20fe8 into unstable Dec 20, 2024
19 of 20 checks passed
@wemeetagain wemeetagain deleted the nflaig/graffiti-null-bytes branch December 20, 2024 14:41
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