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: update engine_getClientVersionV1 commit encoding #7282

Merged
merged 1 commit into from
Dec 6, 2024

Conversation

nflaig
Copy link
Member

@nflaig nflaig commented Dec 5, 2024

Motivation

Alternative to #7273 which also handles the incorrect encoding when passing the data to the EL via engine_getClientVersionV1.

Description

Update engine_getClientVersionV1 commit encoding

  • strip 0x prefix when receiving commit from EL
  • add 0x prefix when passing commit to EL

Closes #7217

@nflaig nflaig requested a review from a team as a code owner December 5, 2024 21:44
@nflaig nflaig added this to the v1.24.0 milestone Dec 5, 2024
Copy link

codecov bot commented Dec 5, 2024

Codecov Report

Attention: Patch coverage is 60.00000% with 2 lines in your changes missing coverage. Please review.

Project coverage is 48.92%. Comparing base (d55bb2d) to head (efc9b10).
Report is 2 commits behind head on unstable.

Additional details and impacted files
@@            Coverage Diff            @@
##           unstable    #7282   +/-   ##
=========================================
  Coverage     48.91%   48.92%           
=========================================
  Files           601      601           
  Lines         40182    40176    -6     
  Branches       2061     2061           
=========================================
+ Hits          19655    19656    +1     
+ Misses        20489    20482    -7     
  Partials         38       38           

Copy link
Contributor

github-actions bot commented Dec 5, 2024

Performance Report

✔️ no performance regression detected

Full benchmark results
Benchmark suite Current: ae673e6 Previous: b5fb76c Ratio
getPubkeys - index2pubkey - req 1000 vs - 250000 vc 1.8235 ms/op 1.9312 ms/op 0.94
getPubkeys - validatorsArr - req 1000 vs - 250000 vc 62.247 us/op 50.117 us/op 1.24
BLS verify - blst 983.28 us/op 983.24 us/op 1.00
BLS verifyMultipleSignatures 3 - blst 1.2778 ms/op 1.6833 ms/op 0.76
BLS verifyMultipleSignatures 8 - blst 2.0536 ms/op 1.9954 ms/op 1.03
BLS verifyMultipleSignatures 32 - blst 5.6493 ms/op 6.4291 ms/op 0.88
BLS verifyMultipleSignatures 64 - blst 9.3458 ms/op 11.213 ms/op 0.83
BLS verifyMultipleSignatures 128 - blst 18.877 ms/op 17.901 ms/op 1.05
BLS deserializing 10000 signatures 719.21 ms/op 713.02 ms/op 1.01
BLS deserializing 100000 signatures 7.1936 s/op 7.1966 s/op 1.00
BLS verifyMultipleSignatures - same message - 3 - blst 1.2427 ms/op 1.0445 ms/op 1.19
BLS verifyMultipleSignatures - same message - 8 - blst 1.3143 ms/op 1.1363 ms/op 1.16
BLS verifyMultipleSignatures - same message - 32 - blst 1.9895 ms/op 1.7984 ms/op 1.11
BLS verifyMultipleSignatures - same message - 64 - blst 2.8765 ms/op 2.8785 ms/op 1.00
BLS verifyMultipleSignatures - same message - 128 - blst 4.7646 ms/op 4.5639 ms/op 1.04
BLS aggregatePubkeys 32 - blst 21.278 us/op 21.660 us/op 0.98
BLS aggregatePubkeys 128 - blst 75.904 us/op 74.848 us/op 1.01
notSeenSlots=1 numMissedVotes=1 numBadVotes=10 106.60 ms/op 108.24 ms/op 0.98
notSeenSlots=1 numMissedVotes=0 numBadVotes=4 61.324 ms/op 62.701 ms/op 0.98
notSeenSlots=2 numMissedVotes=1 numBadVotes=10 50.413 ms/op 52.538 ms/op 0.96
getSlashingsAndExits - default max 261.17 us/op 150.87 us/op 1.73
getSlashingsAndExits - 2k 536.70 us/op 563.77 us/op 0.95
proposeBlockBody type=full, size=empty 6.3386 ms/op 6.9553 ms/op 0.91
isKnown best case - 1 super set check 281.00 ns/op 414.00 ns/op 0.68
isKnown normal case - 2 super set checks 274.00 ns/op 451.00 ns/op 0.61
isKnown worse case - 16 super set checks 272.00 ns/op 455.00 ns/op 0.60
InMemoryCheckpointStateCache - add get delete 2.8190 us/op 3.3550 us/op 0.84
validate api signedAggregateAndProof - struct 1.3750 ms/op 1.6190 ms/op 0.85
validate gossip signedAggregateAndProof - struct 1.4574 ms/op 1.6761 ms/op 0.87
batch validate gossip attestation - vc 640000 - chunk 32 129.08 us/op 156.72 us/op 0.82
batch validate gossip attestation - vc 640000 - chunk 64 111.36 us/op 146.94 us/op 0.76
batch validate gossip attestation - vc 640000 - chunk 128 104.43 us/op 124.36 us/op 0.84
batch validate gossip attestation - vc 640000 - chunk 256 97.988 us/op 124.23 us/op 0.79
pickEth1Vote - no votes 1.0238 ms/op 1.1410 ms/op 0.90
pickEth1Vote - max votes 5.1276 ms/op 6.1047 ms/op 0.84
pickEth1Vote - Eth1Data hashTreeRoot value x2048 15.823 ms/op 13.278 ms/op 1.19
pickEth1Vote - Eth1Data hashTreeRoot tree x2048 16.561 ms/op 26.334 ms/op 0.63
pickEth1Vote - Eth1Data fastSerialize value x2048 447.80 us/op 594.94 us/op 0.75
pickEth1Vote - Eth1Data fastSerialize tree x2048 3.5170 ms/op 4.7901 ms/op 0.73
bytes32 toHexString 420.00 ns/op 601.00 ns/op 0.70
bytes32 Buffer.toString(hex) 225.00 ns/op 243.00 ns/op 0.93
bytes32 Buffer.toString(hex) from Uint8Array 336.00 ns/op 453.00 ns/op 0.74
bytes32 Buffer.toString(hex) + 0x 233.00 ns/op 252.00 ns/op 0.92
Object access 1 prop 0.13200 ns/op 0.18200 ns/op 0.73
Map access 1 prop 0.12900 ns/op 0.14600 ns/op 0.88
Object get x1000 5.8910 ns/op 6.1910 ns/op 0.95
Map get x1000 6.0540 ns/op 6.8790 ns/op 0.88
Object set x1000 30.654 ns/op 51.666 ns/op 0.59
Map set x1000 20.942 ns/op 37.165 ns/op 0.56
Return object 10000 times 0.28350 ns/op 0.31480 ns/op 0.90
Throw Error 10000 times 3.2229 us/op 3.6703 us/op 0.88
toHex 138.94 ns/op 167.38 ns/op 0.83
Buffer.from 120.60 ns/op 156.05 ns/op 0.77
shared Buffer 80.804 ns/op 101.40 ns/op 0.80
fastMsgIdFn sha256 / 200 bytes 2.1250 us/op 2.5160 us/op 0.84
fastMsgIdFn h32 xxhash / 200 bytes 224.00 ns/op 315.00 ns/op 0.71
fastMsgIdFn h64 xxhash / 200 bytes 259.00 ns/op 315.00 ns/op 0.82
fastMsgIdFn sha256 / 1000 bytes 7.0750 us/op 7.8550 us/op 0.90
fastMsgIdFn h32 xxhash / 1000 bytes 348.00 ns/op 442.00 ns/op 0.79
fastMsgIdFn h64 xxhash / 1000 bytes 330.00 ns/op 379.00 ns/op 0.87
fastMsgIdFn sha256 / 10000 bytes 62.832 us/op 66.147 us/op 0.95
fastMsgIdFn h32 xxhash / 10000 bytes 1.7810 us/op 1.9820 us/op 0.90
fastMsgIdFn h64 xxhash / 10000 bytes 1.1630 us/op 1.3010 us/op 0.89
send data - 1000 256B messages 11.823 ms/op 14.029 ms/op 0.84
send data - 1000 512B messages 17.182 ms/op 18.425 ms/op 0.93
send data - 1000 1024B messages 24.075 ms/op 29.796 ms/op 0.81
send data - 1000 1200B messages 24.794 ms/op 26.579 ms/op 0.93
send data - 1000 2048B messages 29.383 ms/op 34.994 ms/op 0.84
send data - 1000 4096B messages 30.406 ms/op 32.319 ms/op 0.94
send data - 1000 16384B messages 68.166 ms/op 75.384 ms/op 0.90
send data - 1000 65536B messages 201.16 ms/op 239.27 ms/op 0.84
enrSubnets - fastDeserialize 64 bits 1.0710 us/op 1.1550 us/op 0.93
enrSubnets - ssz BitVector 64 bits 345.00 ns/op 405.00 ns/op 0.85
enrSubnets - fastDeserialize 4 bits 142.00 ns/op 192.00 ns/op 0.74
enrSubnets - ssz BitVector 4 bits 347.00 ns/op 450.00 ns/op 0.77
prioritizePeers score -10:0 att 32-0.1 sync 2-0 132.52 us/op 188.24 us/op 0.70
prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 150.91 us/op 214.44 us/op 0.70
prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 219.38 us/op 328.36 us/op 0.67
prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 397.28 us/op 490.22 us/op 0.81
prioritizePeers score 0:0 att 64-1 sync 4-1 487.74 us/op 672.14 us/op 0.73
array of 16000 items push then shift 1.6011 us/op 1.7033 us/op 0.94
LinkedList of 16000 items push then shift 6.9630 ns/op 8.7420 ns/op 0.80
array of 16000 items push then pop 95.772 ns/op 140.65 ns/op 0.68
LinkedList of 16000 items push then pop 6.9300 ns/op 7.9340 ns/op 0.87
array of 24000 items push then shift 2.3606 us/op 2.4828 us/op 0.95
LinkedList of 24000 items push then shift 7.0960 ns/op 8.8330 ns/op 0.80
array of 24000 items push then pop 121.76 ns/op 164.64 ns/op 0.74
LinkedList of 24000 items push then pop 6.8510 ns/op 7.4090 ns/op 0.92
intersect bitArray bitLen 8 6.2430 ns/op 6.6620 ns/op 0.94
intersect array and set length 8 42.153 ns/op 46.657 ns/op 0.90
intersect bitArray bitLen 128 29.051 ns/op 31.228 ns/op 0.93
intersect array and set length 128 639.87 ns/op 691.96 ns/op 0.92
bitArray.getTrueBitIndexes() bitLen 128 1.2940 us/op 1.6090 us/op 0.80
bitArray.getTrueBitIndexes() bitLen 248 2.1240 us/op 2.5150 us/op 0.84
bitArray.getTrueBitIndexes() bitLen 512 4.0780 us/op 4.7850 us/op 0.85
Buffer.concat 32 items 726.00 ns/op 776.00 ns/op 0.94
Uint8Array.set 32 items 1.3900 us/op 1.4410 us/op 0.96
Buffer.copy 2.4570 us/op 2.6630 us/op 0.92
Uint8Array.set - with subarray 2.1120 us/op 2.2870 us/op 0.92
Uint8Array.set - without subarray 1.4720 us/op 1.4200 us/op 1.04
getUint32 - dataview 209.00 ns/op 233.00 ns/op 0.90
getUint32 - manual 170.00 ns/op 170.00 ns/op 1.00
Set add up to 64 items then delete first 2.1147 us/op 2.2593 us/op 0.94
OrderedSet add up to 64 items then delete first 3.1830 us/op 3.3249 us/op 0.96
Set add up to 64 items then delete last 2.3992 us/op 2.5328 us/op 0.95
OrderedSet add up to 64 items then delete last 3.5016 us/op 3.7826 us/op 0.93
Set add up to 64 items then delete middle 2.4893 us/op 2.5659 us/op 0.97
OrderedSet add up to 64 items then delete middle 4.9987 us/op 5.2497 us/op 0.95
Set add up to 128 items then delete first 4.9224 us/op 5.3500 us/op 0.92
OrderedSet add up to 128 items then delete first 7.6609 us/op 7.9665 us/op 0.96
Set add up to 128 items then delete last 4.7320 us/op 5.4551 us/op 0.87
OrderedSet add up to 128 items then delete last 6.8977 us/op 7.4776 us/op 0.92
Set add up to 128 items then delete middle 4.7030 us/op 5.3540 us/op 0.88
OrderedSet add up to 128 items then delete middle 13.175 us/op 15.682 us/op 0.84
Set add up to 256 items then delete first 9.7397 us/op 11.320 us/op 0.86
OrderedSet add up to 256 items then delete first 15.860 us/op 19.521 us/op 0.81
Set add up to 256 items then delete last 10.306 us/op 12.036 us/op 0.86
OrderedSet add up to 256 items then delete last 15.201 us/op 18.509 us/op 0.82
Set add up to 256 items then delete middle 10.518 us/op 11.724 us/op 0.90
OrderedSet add up to 256 items then delete middle 43.607 us/op 46.619 us/op 0.94
transfer serialized Status (84 B) 2.7150 us/op 2.8530 us/op 0.95
copy serialized Status (84 B) 1.3650 us/op 1.5070 us/op 0.91
transfer serialized SignedVoluntaryExit (112 B) 3.0600 us/op 2.9330 us/op 1.04
copy serialized SignedVoluntaryExit (112 B) 1.6960 us/op 1.4680 us/op 1.16
transfer serialized ProposerSlashing (416 B) 4.0540 us/op 3.1560 us/op 1.28
copy serialized ProposerSlashing (416 B) 1.7910 us/op 1.9010 us/op 0.94
transfer serialized Attestation (485 B) 3.3430 us/op 3.0880 us/op 1.08
copy serialized Attestation (485 B) 1.8770 us/op 1.8640 us/op 1.01
transfer serialized AttesterSlashing (33232 B) 2.6930 us/op 2.7640 us/op 0.97
copy serialized AttesterSlashing (33232 B) 4.6490 us/op 6.3920 us/op 0.73
transfer serialized Small SignedBeaconBlock (128000 B) 3.0250 us/op 3.6630 us/op 0.83
copy serialized Small SignedBeaconBlock (128000 B) 12.645 us/op 20.229 us/op 0.63
transfer serialized Avg SignedBeaconBlock (200000 B) 3.7670 us/op 4.5660 us/op 0.83
copy serialized Avg SignedBeaconBlock (200000 B) 20.444 us/op 27.684 us/op 0.74
transfer serialized BlobsSidecar (524380 B) 3.8480 us/op 4.7600 us/op 0.81
copy serialized BlobsSidecar (524380 B) 78.779 us/op 92.429 us/op 0.85
transfer serialized Big SignedBeaconBlock (1000000 B) 4.0200 us/op 5.3240 us/op 0.76
copy serialized Big SignedBeaconBlock (1000000 B) 147.64 us/op 396.50 us/op 0.37
pass gossip attestations to forkchoice per slot 2.7902 ms/op 2.9228 ms/op 0.95
forkChoice updateHead vc 100000 bc 64 eq 0 456.47 us/op 473.46 us/op 0.96
forkChoice updateHead vc 600000 bc 64 eq 0 2.8519 ms/op 3.1543 ms/op 0.90
forkChoice updateHead vc 1000000 bc 64 eq 0 4.7915 ms/op 5.1736 ms/op 0.93
forkChoice updateHead vc 600000 bc 320 eq 0 2.8518 ms/op 3.0562 ms/op 0.93
forkChoice updateHead vc 600000 bc 1200 eq 0 2.8916 ms/op 2.9986 ms/op 0.96
forkChoice updateHead vc 600000 bc 7200 eq 0 3.4382 ms/op 3.8554 ms/op 0.89
forkChoice updateHead vc 600000 bc 64 eq 1000 10.411 ms/op 10.649 ms/op 0.98
forkChoice updateHead vc 600000 bc 64 eq 10000 10.486 ms/op 10.644 ms/op 0.99
forkChoice updateHead vc 600000 bc 64 eq 300000 13.820 ms/op 15.971 ms/op 0.87
computeDeltas 500000 validators 300 proto nodes 3.9080 ms/op 4.2893 ms/op 0.91
computeDeltas 500000 validators 1200 proto nodes 4.1248 ms/op 4.1697 ms/op 0.99
computeDeltas 500000 validators 7200 proto nodes 4.1823 ms/op 4.1352 ms/op 1.01
computeDeltas 750000 validators 300 proto nodes 6.0891 ms/op 6.3695 ms/op 0.96
computeDeltas 750000 validators 1200 proto nodes 6.1308 ms/op 6.2209 ms/op 0.99
computeDeltas 750000 validators 7200 proto nodes 6.0390 ms/op 6.4931 ms/op 0.93
computeDeltas 1400000 validators 300 proto nodes 11.413 ms/op 11.953 ms/op 0.95
computeDeltas 1400000 validators 1200 proto nodes 11.394 ms/op 11.759 ms/op 0.97
computeDeltas 1400000 validators 7200 proto nodes 11.680 ms/op 11.898 ms/op 0.98
computeDeltas 2100000 validators 300 proto nodes 18.413 ms/op 18.269 ms/op 1.01
computeDeltas 2100000 validators 1200 proto nodes 18.326 ms/op 18.629 ms/op 0.98
computeDeltas 2100000 validators 7200 proto nodes 17.598 ms/op 17.742 ms/op 0.99
altair processAttestation - 250000 vs - 7PWei normalcase 1.9837 ms/op 2.1543 ms/op 0.92
altair processAttestation - 250000 vs - 7PWei worstcase 2.6914 ms/op 3.5250 ms/op 0.76
altair processAttestation - setStatus - 1/6 committees join 135.52 us/op 140.13 us/op 0.97
altair processAttestation - setStatus - 1/3 committees join 254.91 us/op 244.36 us/op 1.04
altair processAttestation - setStatus - 1/2 committees join 343.42 us/op 332.28 us/op 1.03
altair processAttestation - setStatus - 2/3 committees join 486.57 us/op 455.09 us/op 1.07
altair processAttestation - setStatus - 4/5 committees join 631.12 us/op 612.13 us/op 1.03
altair processAttestation - setStatus - 100% committees join 716.67 us/op 743.21 us/op 0.96
altair processBlock - 250000 vs - 7PWei normalcase 5.0123 ms/op 4.9100 ms/op 1.02
altair processBlock - 250000 vs - 7PWei normalcase hashState 27.157 ms/op 31.975 ms/op 0.85
altair processBlock - 250000 vs - 7PWei worstcase 33.490 ms/op 42.483 ms/op 0.79
altair processBlock - 250000 vs - 7PWei worstcase hashState 68.728 ms/op 78.945 ms/op 0.87
phase0 processBlock - 250000 vs - 7PWei normalcase 2.0792 ms/op 2.8450 ms/op 0.73
phase0 processBlock - 250000 vs - 7PWei worstcase 28.698 ms/op 29.773 ms/op 0.96
altair processEth1Data - 250000 vs - 7PWei normalcase 368.99 us/op 329.65 us/op 1.12
getExpectedWithdrawals 250000 eb:1,eth1:1,we:0,wn:0,smpl:15 11.112 us/op 9.3670 us/op 1.19
getExpectedWithdrawals 250000 eb:0.95,eth1:0.1,we:0.05,wn:0,smpl:219 92.135 us/op 72.768 us/op 1.27
getExpectedWithdrawals 250000 eb:0.95,eth1:0.3,we:0.05,wn:0,smpl:42 24.780 us/op 19.032 us/op 1.30
getExpectedWithdrawals 250000 eb:0.95,eth1:0.7,we:0.05,wn:0,smpl:18 14.989 us/op 10.249 us/op 1.46
getExpectedWithdrawals 250000 eb:0.1,eth1:0.1,we:0,wn:0,smpl:1020 215.07 us/op 224.53 us/op 0.96
getExpectedWithdrawals 250000 eb:0.03,eth1:0.03,we:0,wn:0,smpl:11777 1.3136 ms/op 1.2349 ms/op 1.06
getExpectedWithdrawals 250000 eb:0.01,eth1:0.01,we:0,wn:0,smpl:16384 1.8071 ms/op 2.3140 ms/op 0.78
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,smpl:16384 1.8182 ms/op 1.8216 ms/op 1.00
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,nocache,smpl:16384 4.6588 ms/op 5.1659 ms/op 0.90
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,smpl:16384 1.8202 ms/op 2.0149 ms/op 0.90
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,nocache,smpl:16384 5.3153 ms/op 4.7926 ms/op 1.11
Tree 40 250000 create 475.42 ms/op 253.23 ms/op 1.88
Tree 40 250000 get(125000) 158.83 ns/op 162.43 ns/op 0.98
Tree 40 250000 set(125000) 849.53 ns/op 741.34 ns/op 1.15
Tree 40 250000 toArray() 22.165 ms/op 21.468 ms/op 1.03
Tree 40 250000 iterate all - toArray() + loop 22.321 ms/op 21.387 ms/op 1.04
Tree 40 250000 iterate all - get(i) 60.141 ms/op 59.088 ms/op 1.02
Array 250000 create 4.1962 ms/op 3.9176 ms/op 1.07
Array 250000 clone - spread 2.0995 ms/op 1.6164 ms/op 1.30
Array 250000 get(125000) 0.45000 ns/op 0.47500 ns/op 0.95
Array 250000 set(125000) 0.48100 ns/op 0.51400 ns/op 0.94
Array 250000 iterate all - loop 101.46 us/op 94.157 us/op 1.08
phase0 afterProcessEpoch - 250000 vs - 7PWei 53.012 ms/op 57.027 ms/op 0.93
Array.fill - length 1000000 5.8583 ms/op 5.5505 ms/op 1.06
Array push - length 1000000 26.224 ms/op 21.109 ms/op 1.24
Array.get 0.33946 ns/op 0.29776 ns/op 1.14
Uint8Array.get 0.46472 ns/op 0.47685 ns/op 0.97
phase0 beforeProcessEpoch - 250000 vs - 7PWei 23.443 ms/op 20.567 ms/op 1.14
altair processEpoch - mainnet_e81889 337.48 ms/op 317.86 ms/op 1.06
mainnet_e81889 - altair beforeProcessEpoch 24.879 ms/op 21.073 ms/op 1.18
mainnet_e81889 - altair processJustificationAndFinalization 29.957 us/op 17.781 us/op 1.68
mainnet_e81889 - altair processInactivityUpdates 8.2512 ms/op 7.1549 ms/op 1.15
mainnet_e81889 - altair processRewardsAndPenalties 57.474 ms/op 44.795 ms/op 1.28
mainnet_e81889 - altair processRegistryUpdates 6.2320 us/op 5.2460 us/op 1.19
mainnet_e81889 - altair processSlashings 1.1490 us/op 594.00 ns/op 1.93
mainnet_e81889 - altair processEth1DataReset 1.7140 us/op 555.00 ns/op 3.09
mainnet_e81889 - altair processEffectiveBalanceUpdates 2.3114 ms/op 1.7784 ms/op 1.30
mainnet_e81889 - altair processSlashingsReset 9.0140 us/op 8.3160 us/op 1.08
mainnet_e81889 - altair processRandaoMixesReset 16.424 us/op 7.8260 us/op 2.10
mainnet_e81889 - altair processHistoricalRootsUpdate 1.9870 us/op 895.00 ns/op 2.22
mainnet_e81889 - altair processParticipationFlagUpdates 6.3230 us/op 3.2410 us/op 1.95
mainnet_e81889 - altair processSyncCommitteeUpdates 1.8070 us/op 1.3310 us/op 1.36
mainnet_e81889 - altair afterProcessEpoch 58.495 ms/op 52.158 ms/op 1.12
capella processEpoch - mainnet_e217614 1.2228 s/op 1.2015 s/op 1.02
mainnet_e217614 - capella beforeProcessEpoch 94.341 ms/op 85.113 ms/op 1.11
mainnet_e217614 - capella processJustificationAndFinalization 17.255 us/op 17.889 us/op 0.96
mainnet_e217614 - capella processInactivityUpdates 21.039 ms/op 19.372 ms/op 1.09
mainnet_e217614 - capella processRewardsAndPenalties 264.21 ms/op 237.64 ms/op 1.11
mainnet_e217614 - capella processRegistryUpdates 25.561 us/op 19.840 us/op 1.29
mainnet_e217614 - capella processSlashings 1.0090 us/op 727.00 ns/op 1.39
mainnet_e217614 - capella processEth1DataReset 492.00 ns/op 1.4760 us/op 0.33
mainnet_e217614 - capella processEffectiveBalanceUpdates 19.135 ms/op 17.574 ms/op 1.09
mainnet_e217614 - capella processSlashingsReset 8.7680 us/op 6.0130 us/op 1.46
mainnet_e217614 - capella processRandaoMixesReset 10.639 us/op 6.6620 us/op 1.60
mainnet_e217614 - capella processHistoricalRootsUpdate 1.0120 us/op 782.00 ns/op 1.29
mainnet_e217614 - capella processParticipationFlagUpdates 3.8990 us/op 2.7930 us/op 1.40
mainnet_e217614 - capella afterProcessEpoch 133.84 ms/op 127.13 ms/op 1.05
phase0 processEpoch - mainnet_e58758 405.55 ms/op 337.48 ms/op 1.20
mainnet_e58758 - phase0 beforeProcessEpoch 124.68 ms/op 96.191 ms/op 1.30
mainnet_e58758 - phase0 processJustificationAndFinalization 17.582 us/op 17.203 us/op 1.02
mainnet_e58758 - phase0 processRewardsAndPenalties 25.431 ms/op 27.590 ms/op 0.92
mainnet_e58758 - phase0 processRegistryUpdates 17.602 us/op 14.619 us/op 1.20
mainnet_e58758 - phase0 processSlashings 1.0050 us/op 652.00 ns/op 1.54
mainnet_e58758 - phase0 processEth1DataReset 712.00 ns/op 512.00 ns/op 1.39
mainnet_e58758 - phase0 processEffectiveBalanceUpdates 1.2265 ms/op 1.4284 ms/op 0.86
mainnet_e58758 - phase0 processSlashingsReset 6.9730 us/op 2.7580 us/op 2.53
mainnet_e58758 - phase0 processRandaoMixesReset 9.3640 us/op 5.3470 us/op 1.75
mainnet_e58758 - phase0 processHistoricalRootsUpdate 943.00 ns/op 649.00 ns/op 1.45
mainnet_e58758 - phase0 processParticipationRecordUpdates 7.3110 us/op 5.1810 us/op 1.41
mainnet_e58758 - phase0 afterProcessEpoch 45.515 ms/op 43.762 ms/op 1.04
phase0 processEffectiveBalanceUpdates - 250000 normalcase 1.4423 ms/op 1.4995 ms/op 0.96
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 3.8723 ms/op 2.0602 ms/op 1.88
altair processInactivityUpdates - 250000 normalcase 20.672 ms/op 21.428 ms/op 0.96
altair processInactivityUpdates - 250000 worstcase 24.036 ms/op 20.592 ms/op 1.17
phase0 processRegistryUpdates - 250000 normalcase 12.550 us/op 11.245 us/op 1.12
phase0 processRegistryUpdates - 250000 badcase_full_deposits 428.82 us/op 526.10 us/op 0.82
phase0 processRegistryUpdates - 250000 worstcase 0.5 141.09 ms/op 113.99 ms/op 1.24
altair processRewardsAndPenalties - 250000 normalcase 50.003 ms/op 43.912 ms/op 1.14
altair processRewardsAndPenalties - 250000 worstcase 42.402 ms/op 46.526 ms/op 0.91
phase0 getAttestationDeltas - 250000 normalcase 10.779 ms/op 7.6087 ms/op 1.42
phase0 getAttestationDeltas - 250000 worstcase 8.6817 ms/op 7.7062 ms/op 1.13
phase0 processSlashings - 250000 worstcase 141.38 us/op 136.50 us/op 1.04
altair processSyncCommitteeUpdates - 250000 151.73 ms/op 121.28 ms/op 1.25
BeaconState.hashTreeRoot - No change 301.00 ns/op 234.00 ns/op 1.29
BeaconState.hashTreeRoot - 1 full validator 137.60 us/op 110.52 us/op 1.25
BeaconState.hashTreeRoot - 32 full validator 1.7751 ms/op 1.2236 ms/op 1.45
BeaconState.hashTreeRoot - 512 full validator 11.817 ms/op 11.179 ms/op 1.06
BeaconState.hashTreeRoot - 1 validator.effectiveBalance 137.79 us/op 137.93 us/op 1.00
BeaconState.hashTreeRoot - 32 validator.effectiveBalance 2.1569 ms/op 2.0293 ms/op 1.06
BeaconState.hashTreeRoot - 512 validator.effectiveBalance 23.930 ms/op 23.071 ms/op 1.04
BeaconState.hashTreeRoot - 1 balances 112.75 us/op 98.803 us/op 1.14
BeaconState.hashTreeRoot - 32 balances 959.32 us/op 1.0152 ms/op 0.94
BeaconState.hashTreeRoot - 512 balances 9.3365 ms/op 8.1660 ms/op 1.14
BeaconState.hashTreeRoot - 250000 balances 184.05 ms/op 153.72 ms/op 1.20
aggregationBits - 2048 els - zipIndexesInBitList 38.342 us/op 23.814 us/op 1.61
byteArrayEquals 32 55.113 ns/op 53.734 ns/op 1.03
Buffer.compare 32 17.682 ns/op 17.297 ns/op 1.02
byteArrayEquals 1024 1.6264 us/op 1.5885 us/op 1.02
Buffer.compare 1024 25.823 ns/op 25.763 ns/op 1.00
byteArrayEquals 16384 26.917 us/op 25.277 us/op 1.06
Buffer.compare 16384 259.28 ns/op 193.58 ns/op 1.34
byteArrayEquals 123687377 204.17 ms/op 191.38 ms/op 1.07
Buffer.compare 123687377 11.130 ms/op 6.3346 ms/op 1.76
byteArrayEquals 32 - diff last byte 57.795 ns/op 52.755 ns/op 1.10
Buffer.compare 32 - diff last byte 19.716 ns/op 17.317 ns/op 1.14
byteArrayEquals 1024 - diff last byte 1.6042 us/op 1.5925 us/op 1.01
Buffer.compare 1024 - diff last byte 27.202 ns/op 26.238 ns/op 1.04
byteArrayEquals 16384 - diff last byte 27.280 us/op 25.326 us/op 1.08
Buffer.compare 16384 - diff last byte 246.12 ns/op 204.50 ns/op 1.20
byteArrayEquals 123687377 - diff last byte 204.21 ms/op 194.62 ms/op 1.05
Buffer.compare 123687377 - diff last byte 10.549 ms/op 6.9820 ms/op 1.51
byteArrayEquals 32 - random bytes 5.4470 ns/op 5.3490 ns/op 1.02
Buffer.compare 32 - random bytes 18.630 ns/op 17.843 ns/op 1.04
byteArrayEquals 1024 - random bytes 5.4610 ns/op 5.3130 ns/op 1.03
Buffer.compare 1024 - random bytes 18.942 ns/op 17.882 ns/op 1.06
byteArrayEquals 16384 - random bytes 5.5620 ns/op 5.3010 ns/op 1.05
Buffer.compare 16384 - random bytes 19.985 ns/op 17.867 ns/op 1.12
byteArrayEquals 123687377 - random bytes 7.9900 ns/op 6.7000 ns/op 1.19
Buffer.compare 123687377 - random bytes 24.660 ns/op 18.990 ns/op 1.30
regular array get 100000 times 41.164 us/op 35.848 us/op 1.15
wrappedArray get 100000 times 38.579 us/op 34.067 us/op 1.13
arrayWithProxy get 100000 times 13.404 ms/op 13.229 ms/op 1.01
ssz.Root.equals 48.035 ns/op 47.258 ns/op 1.02
byteArrayEquals 50.711 ns/op 46.529 ns/op 1.09
Buffer.compare 11.113 ns/op 10.802 ns/op 1.03
processSlot - 1 slots 15.953 us/op 13.402 us/op 1.19
processSlot - 32 slots 3.2813 ms/op 3.0955 ms/op 1.06
getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei 41.259 ms/op 38.550 ms/op 1.07
getCommitteeAssignments - req 1 vs - 250000 vc 2.1400 ms/op 2.2617 ms/op 0.95
getCommitteeAssignments - req 100 vs - 250000 vc 4.1551 ms/op 4.2529 ms/op 0.98
getCommitteeAssignments - req 1000 vs - 250000 vc 4.5803 ms/op 4.5708 ms/op 1.00
findModifiedValidators - 10000 modified validators 241.32 ms/op 226.25 ms/op 1.07
findModifiedValidators - 1000 modified validators 171.60 ms/op 180.35 ms/op 0.95
findModifiedValidators - 100 modified validators 169.06 ms/op 168.90 ms/op 1.00
findModifiedValidators - 10 modified validators 152.54 ms/op 172.22 ms/op 0.89
findModifiedValidators - 1 modified validators 153.44 ms/op 171.21 ms/op 0.90
findModifiedValidators - no difference 158.54 ms/op 171.46 ms/op 0.92
compare ViewDUs 3.1311 s/op 3.6014 s/op 0.87
compare each validator Uint8Array 1.3207 s/op 1.3366 s/op 0.99
compare ViewDU to Uint8Array 1.0456 s/op 1.2270 s/op 0.85
migrate state 1000000 validators, 24 modified, 0 new 739.27 ms/op 870.02 ms/op 0.85
migrate state 1000000 validators, 1700 modified, 1000 new 1.1013 s/op 1.0390 s/op 1.06
migrate state 1000000 validators, 3400 modified, 2000 new 1.2472 s/op 1.2435 s/op 1.00
migrate state 1500000 validators, 24 modified, 0 new 885.51 ms/op 870.07 ms/op 1.02
migrate state 1500000 validators, 1700 modified, 1000 new 1.1223 s/op 1.1091 s/op 1.01
migrate state 1500000 validators, 3400 modified, 2000 new 1.3150 s/op 1.4065 s/op 0.93
RootCache.getBlockRootAtSlot - 250000 vs - 7PWei 4.8300 ns/op 5.1800 ns/op 0.93
state getBlockRootAtSlot - 250000 vs - 7PWei 994.55 ns/op 722.48 ns/op 1.38
computeProposers - vc 250000 8.0125 ms/op 8.3247 ms/op 0.96
computeEpochShuffling - vc 250000 42.384 ms/op 44.264 ms/op 0.96
getNextSyncCommittee - vc 250000 131.87 ms/op 149.46 ms/op 0.88
computeSigningRoot for AttestationData 21.878 us/op 26.738 us/op 0.82
hash AttestationData serialized data then Buffer.toString(base64) 1.6531 us/op 1.6957 us/op 0.97
toHexString serialized data 1.0765 us/op 985.91 ns/op 1.09
Buffer.toString(base64) 205.58 ns/op 196.09 ns/op 1.05
nodejs block root to RootHex using toHex 154.36 ns/op 178.10 ns/op 0.87
nodejs block root to RootHex using toRootHex 96.584 ns/op 114.49 ns/op 0.84
browser block root to RootHex using the deprecated toHexString 276.21 ns/op 273.26 ns/op 1.01
browser block root to RootHex using toHex 213.35 ns/op 230.82 ns/op 0.92
browser block root to RootHex using toRootHex 178.25 ns/op 176.82 ns/op 1.01

by benchmarkbot/action

Copy link
Contributor

@ensi321 ensi321 left a comment

Choose a reason for hiding this comment

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

Much better thanks!

@nflaig nflaig merged commit cd1211f into unstable Dec 6, 2024
20 checks passed
@nflaig nflaig deleted the nflaig/commit-data-encoding branch December 6, 2024 08:56
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 <nflaig@protonmail.com>

* 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 <nflaig@protonmail.com>

* 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] <support@github.com>
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 <17676176+ensi321@users.noreply.github.com>

* 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 <nflaig@protonmail.com>
Co-authored-by: Cayman <caymannava@gmail.com>

* 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 <nflaig@protonmail.com>

* 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 <nflaig@protonmail.com>

* 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 <17676176+ensi321@users.noreply.github.com>

* 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 <nflaig@protonmail.com>

* 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 <nflaig@protonmail.com>

* correct spelling

Co-authored-by: Nico Flaig <nflaig@protonmail.com>

---------

Co-authored-by: Nico Flaig <nflaig@protonmail.com>

* 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] <support@github.com>
Co-authored-by: Nico Flaig <nflaig@protonmail.com>
Co-authored-by: Nazar Hussain <nazarhussain@gmail.com>
Co-authored-by: g11tech <develop@g11tech.io>
Co-authored-by: Matthew Keil <me@matthewkeil.com>
Co-authored-by: NC <17676176+ensi321@users.noreply.github.com>
Co-authored-by: twoeths <tuyen@chainsafe.io>
Co-authored-by: Phil Ngo <58080811+philknows@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: acolytec3 <17355484+acolytec3@users.noreply.github.com>
Co-authored-by: Varun Guleria <152203177+varunguleriaCodes@users.noreply.github.com>
Co-authored-by: ClockworkYuzu <yvetteheh@gmail.com>
@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.

Lodestar sends engine_getClientVersionV1 request with invalid 4-byte DATA encoding
3 participants