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

feat: add keymanager endpoint to retrieve proposer config #7210

Merged
merged 11 commits into from
Oct 30, 2024

Conversation

nflaig
Copy link
Member

@nflaig nflaig commented Oct 30, 2024

Motivation

As discussed on discord with @g11tech this can be useful for some users.

Description

Adds GET /eth/v0/validator/{pubkey}/proposer_config endpoint to keymanager api. As this is non-standardized it's versioned as v0 (similar to proof apis) as it might be part of the spec in the future which would then be v1.

The return format of this api might change based on proposer config format which is still considered an alpha feature.

@nflaig nflaig requested a review from a team as a code owner October 30, 2024 09:40
@nflaig nflaig marked this pull request as draft October 30, 2024 10:18
Copy link

codecov bot commented Oct 30, 2024

Codecov Report

Attention: Patch coverage is 60.86957% with 9 lines in your changes missing coverage. Please review.

Project coverage is 49.22%. Comparing base (558ec2f) to head (cf74e32).
Report is 1 commits behind head on unstable.

Additional details and impacted files
@@            Coverage Diff            @@
##           unstable    #7210   +/-   ##
=========================================
  Coverage     49.21%   49.22%           
=========================================
  Files           598      598           
  Lines         39803    39820   +17     
  Branches       2102     2099    -3     
=========================================
+ Hits          19588    19600   +12     
- Misses        20175    20182    +7     
+ Partials         40       38    -2     

@nflaig nflaig marked this pull request as ready for review October 30, 2024 11:15
Copy link
Contributor

Performance Report

✔️ no performance regression detected

🚀🚀 Significant benchmark improvement detected

Benchmark suite Current: 3b07204 Previous: 558ec2f Ratio
forkChoice updateHead vc 600000 bc 64 eq 300000 14.246 ms/op 51.362 ms/op 0.28
Full benchmark results
Benchmark suite Current: 3b07204 Previous: 558ec2f Ratio
getPubkeys - index2pubkey - req 1000 vs - 250000 vc 2.1694 ms/op 1.8128 ms/op 1.20
getPubkeys - validatorsArr - req 1000 vs - 250000 vc 51.134 us/op 48.881 us/op 1.05
BLS verify - blst 865.87 us/op 834.47 us/op 1.04
BLS verifyMultipleSignatures 3 - blst 1.5554 ms/op 1.2204 ms/op 1.27
BLS verifyMultipleSignatures 8 - blst 1.9322 ms/op 1.6628 ms/op 1.16
BLS verifyMultipleSignatures 32 - blst 7.1082 ms/op 4.8985 ms/op 1.45
BLS verifyMultipleSignatures 64 - blst 10.911 ms/op 8.8855 ms/op 1.23
BLS verifyMultipleSignatures 128 - blst 17.805 ms/op 17.142 ms/op 1.04
BLS deserializing 10000 signatures 729.61 ms/op 681.01 ms/op 1.07
BLS deserializing 100000 signatures 7.3135 s/op 6.9392 s/op 1.05
BLS verifyMultipleSignatures - same message - 3 - blst 1.1143 ms/op 944.15 us/op 1.18
BLS verifyMultipleSignatures - same message - 8 - blst 1.2383 ms/op 1.1259 ms/op 1.10
BLS verifyMultipleSignatures - same message - 32 - blst 1.7658 ms/op 1.8836 ms/op 0.94
BLS verifyMultipleSignatures - same message - 64 - blst 2.8294 ms/op 2.7701 ms/op 1.02
BLS verifyMultipleSignatures - same message - 128 - blst 4.6608 ms/op 4.4765 ms/op 1.04
BLS aggregatePubkeys 32 - blst 20.523 us/op 20.853 us/op 0.98
BLS aggregatePubkeys 128 - blst 72.925 us/op 72.497 us/op 1.01
notSeenSlots=1 numMissedVotes=1 numBadVotes=10 88.288 ms/op 57.309 ms/op 1.54
notSeenSlots=1 numMissedVotes=0 numBadVotes=4 61.125 ms/op 57.738 ms/op 1.06
notSeenSlots=2 numMissedVotes=1 numBadVotes=10 53.701 ms/op 52.412 ms/op 1.02
getSlashingsAndExits - default max 111.20 us/op 106.19 us/op 1.05
getSlashingsAndExits - 2k 287.41 us/op 328.95 us/op 0.87
proposeBlockBody type=full, size=empty 5.8990 ms/op 7.6912 ms/op 0.77
isKnown best case - 1 super set check 286.00 ns/op 491.00 ns/op 0.58
isKnown normal case - 2 super set checks 266.00 ns/op 447.00 ns/op 0.60
isKnown worse case - 16 super set checks 266.00 ns/op 477.00 ns/op 0.56
InMemoryCheckpointStateCache - add get delete 2.6380 us/op 3.4140 us/op 0.77
updateUnfinalizedPubkeys - updating 10 pubkeys 963.43 us/op 1.4364 ms/op 0.67
updateUnfinalizedPubkeys - updating 100 pubkeys 3.9719 ms/op 3.8202 ms/op 1.04
updateUnfinalizedPubkeys - updating 1000 pubkeys 50.874 ms/op 58.064 ms/op 0.88
validate api signedAggregateAndProof - struct 2.6195 ms/op 1.5093 ms/op 1.74
validate gossip signedAggregateAndProof - struct 2.5798 ms/op 1.5061 ms/op 1.71
batch validate gossip attestation - vc 640000 - chunk 32 142.20 us/op 156.58 us/op 0.91
batch validate gossip attestation - vc 640000 - chunk 64 126.91 us/op 143.72 us/op 0.88
batch validate gossip attestation - vc 640000 - chunk 128 110.89 us/op 136.83 us/op 0.81
batch validate gossip attestation - vc 640000 - chunk 256 103.82 us/op 134.85 us/op 0.77
pickEth1Vote - no votes 1.0115 ms/op 1.3662 ms/op 0.74
pickEth1Vote - max votes 5.6549 ms/op 8.8989 ms/op 0.64
pickEth1Vote - Eth1Data hashTreeRoot value x2048 16.030 ms/op 21.928 ms/op 0.73
pickEth1Vote - Eth1Data hashTreeRoot tree x2048 21.546 ms/op 32.162 ms/op 0.67
pickEth1Vote - Eth1Data fastSerialize value x2048 450.99 us/op 605.68 us/op 0.74
pickEth1Vote - Eth1Data fastSerialize tree x2048 2.9627 ms/op 3.4028 ms/op 0.87
bytes32 toHexString 418.00 ns/op 649.00 ns/op 0.64
bytes32 Buffer.toString(hex) 247.00 ns/op 302.00 ns/op 0.82
bytes32 Buffer.toString(hex) from Uint8Array 368.00 ns/op 519.00 ns/op 0.71
bytes32 Buffer.toString(hex) + 0x 244.00 ns/op 289.00 ns/op 0.84
Object access 1 prop 0.13000 ns/op 0.19700 ns/op 0.66
Map access 1 prop 0.12900 ns/op 0.16300 ns/op 0.79
Object get x1000 5.8140 ns/op 7.3500 ns/op 0.79
Map get x1000 6.5010 ns/op 7.0140 ns/op 0.93
Object set x1000 31.917 ns/op 56.050 ns/op 0.57
Map set x1000 21.807 ns/op 40.295 ns/op 0.54
Return object 10000 times 0.28750 ns/op 0.35680 ns/op 0.81
Throw Error 10000 times 3.3174 us/op 4.4255 us/op 0.75
toHex 150.50 ns/op 224.74 ns/op 0.67
Buffer.from 131.55 ns/op 197.41 ns/op 0.67
shared Buffer 89.752 ns/op 113.30 ns/op 0.79
fastMsgIdFn sha256 / 200 bytes 2.1970 us/op 2.6630 us/op 0.83
fastMsgIdFn h32 xxhash / 200 bytes 222.00 ns/op 330.00 ns/op 0.67
fastMsgIdFn h64 xxhash / 200 bytes 257.00 ns/op 317.00 ns/op 0.81
fastMsgIdFn sha256 / 1000 bytes 7.3840 us/op 8.5910 us/op 0.86
fastMsgIdFn h32 xxhash / 1000 bytes 349.00 ns/op 474.00 ns/op 0.74
fastMsgIdFn h64 xxhash / 1000 bytes 326.00 ns/op 386.00 ns/op 0.84
fastMsgIdFn sha256 / 10000 bytes 63.467 us/op 74.776 us/op 0.85
fastMsgIdFn h32 xxhash / 10000 bytes 1.8220 us/op 2.0920 us/op 0.87
fastMsgIdFn h64 xxhash / 10000 bytes 1.2080 us/op 1.3560 us/op 0.89
send data - 1000 256B messages 11.954 ms/op 16.075 ms/op 0.74
send data - 1000 512B messages 15.811 ms/op 22.137 ms/op 0.71
send data - 1000 1024B messages 26.830 ms/op 35.662 ms/op 0.75
send data - 1000 1200B messages 25.806 ms/op 35.352 ms/op 0.73
send data - 1000 2048B messages 31.916 ms/op 39.380 ms/op 0.81
send data - 1000 4096B messages 30.911 ms/op 40.439 ms/op 0.76
send data - 1000 16384B messages 70.078 ms/op 100.88 ms/op 0.69
send data - 1000 65536B messages 208.23 ms/op 280.37 ms/op 0.74
enrSubnets - fastDeserialize 64 bits 1.0170 us/op 1.6020 us/op 0.63
enrSubnets - ssz BitVector 64 bits 338.00 ns/op 578.00 ns/op 0.58
enrSubnets - fastDeserialize 4 bits 135.00 ns/op 272.00 ns/op 0.50
enrSubnets - ssz BitVector 4 bits 346.00 ns/op 561.00 ns/op 0.62
prioritizePeers score -10:0 att 32-0.1 sync 2-0 144.14 us/op 222.93 us/op 0.65
prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 183.82 us/op 222.18 us/op 0.83
prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 380.21 us/op 439.87 us/op 0.86
prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 626.02 us/op 476.52 us/op 1.31
prioritizePeers score 0:0 att 64-1 sync 4-1 796.22 us/op 1.0838 ms/op 0.73
array of 16000 items push then shift 1.5834 us/op 1.8060 us/op 0.88
LinkedList of 16000 items push then shift 6.9110 ns/op 10.100 ns/op 0.68
array of 16000 items push then pop 101.60 ns/op 199.87 ns/op 0.51
LinkedList of 16000 items push then pop 6.7930 ns/op 13.962 ns/op 0.49
array of 24000 items push then shift 2.3374 us/op 2.9061 us/op 0.80
LinkedList of 24000 items push then shift 6.9020 ns/op 13.565 ns/op 0.51
array of 24000 items push then pop 122.38 ns/op 223.89 ns/op 0.55
LinkedList of 24000 items push then pop 6.7400 ns/op 11.656 ns/op 0.58
intersect bitArray bitLen 8 6.2280 ns/op 10.494 ns/op 0.59
intersect array and set length 8 45.386 ns/op 117.79 ns/op 0.39
intersect bitArray bitLen 128 29.313 ns/op 38.758 ns/op 0.76
intersect array and set length 128 755.25 ns/op 1.0739 us/op 0.70
bitArray.getTrueBitIndexes() bitLen 128 2.2310 us/op 2.8400 us/op 0.79
bitArray.getTrueBitIndexes() bitLen 248 3.8970 us/op 5.2560 us/op 0.74
bitArray.getTrueBitIndexes() bitLen 512 8.0290 us/op 12.385 us/op 0.65
Buffer.concat 32 items 956.00 ns/op 1.2090 us/op 0.79
Uint8Array.set 32 items 1.9110 us/op 2.0270 us/op 0.94
Buffer.copy 2.3750 us/op 2.4230 us/op 0.98
Uint8Array.set - with subarray 2.8990 us/op 4.2350 us/op 0.68
Uint8Array.set - without subarray 1.5660 us/op 2.0910 us/op 0.75
getUint32 - dataview 240.00 ns/op 389.00 ns/op 0.62
getUint32 - manual 153.00 ns/op 346.00 ns/op 0.44
Set add up to 64 items then delete first 2.1987 us/op 4.2833 us/op 0.51
OrderedSet add up to 64 items then delete first 3.3371 us/op 6.6868 us/op 0.50
Set add up to 64 items then delete last 2.4684 us/op 4.2365 us/op 0.58
OrderedSet add up to 64 items then delete last 3.5857 us/op 6.4645 us/op 0.55
Set add up to 64 items then delete middle 2.4926 us/op 4.2279 us/op 0.59
OrderedSet add up to 64 items then delete middle 5.2140 us/op 7.8873 us/op 0.66
Set add up to 128 items then delete first 5.0589 us/op 8.0824 us/op 0.63
OrderedSet add up to 128 items then delete first 7.8185 us/op 13.715 us/op 0.57
Set add up to 128 items then delete last 4.9282 us/op 8.2653 us/op 0.60
OrderedSet add up to 128 items then delete last 7.1190 us/op 12.790 us/op 0.56
Set add up to 128 items then delete middle 4.9469 us/op 8.6188 us/op 0.57
OrderedSet add up to 128 items then delete middle 14.202 us/op 20.475 us/op 0.69
Set add up to 256 items then delete first 10.563 us/op 16.423 us/op 0.64
OrderedSet add up to 256 items then delete first 16.332 us/op 26.977 us/op 0.61
Set add up to 256 items then delete last 9.8283 us/op 17.403 us/op 0.56
OrderedSet add up to 256 items then delete last 14.906 us/op 27.114 us/op 0.55
Set add up to 256 items then delete middle 9.8207 us/op 16.606 us/op 0.59
OrderedSet add up to 256 items then delete middle 41.142 us/op 55.088 us/op 0.75
transfer serialized Status (84 B) 1.3620 us/op 1.8380 us/op 0.74
copy serialized Status (84 B) 1.1160 us/op 1.6270 us/op 0.69
transfer serialized SignedVoluntaryExit (112 B) 1.4550 us/op 1.9820 us/op 0.73
copy serialized SignedVoluntaryExit (112 B) 1.2300 us/op 1.6490 us/op 0.75
transfer serialized ProposerSlashing (416 B) 1.6300 us/op 2.5680 us/op 0.63
copy serialized ProposerSlashing (416 B) 1.3850 us/op 2.5680 us/op 0.54
transfer serialized Attestation (485 B) 1.8650 us/op 2.2250 us/op 0.84
copy serialized Attestation (485 B) 1.7390 us/op 2.2090 us/op 0.79
transfer serialized AttesterSlashing (33232 B) 1.8540 us/op 2.4770 us/op 0.75
copy serialized AttesterSlashing (33232 B) 5.0830 us/op 14.131 us/op 0.36
transfer serialized Small SignedBeaconBlock (128000 B) 2.6750 us/op 3.6240 us/op 0.74
copy serialized Small SignedBeaconBlock (128000 B) 16.088 us/op 48.689 us/op 0.33
transfer serialized Avg SignedBeaconBlock (200000 B) 3.4910 us/op 4.7570 us/op 0.73
copy serialized Avg SignedBeaconBlock (200000 B) 24.151 us/op 47.247 us/op 0.51
transfer serialized BlobsSidecar (524380 B) 2.5610 us/op 4.6720 us/op 0.55
copy serialized BlobsSidecar (524380 B) 85.204 us/op 182.30 us/op 0.47
transfer serialized Big SignedBeaconBlock (1000000 B) 2.8380 us/op 12.202 us/op 0.23
copy serialized Big SignedBeaconBlock (1000000 B) 150.12 us/op 322.74 us/op 0.47
pass gossip attestations to forkchoice per slot 2.8216 ms/op 3.7746 ms/op 0.75
forkChoice updateHead vc 100000 bc 64 eq 0 449.30 us/op 658.45 us/op 0.68
forkChoice updateHead vc 600000 bc 64 eq 0 3.3915 ms/op 4.6199 ms/op 0.73
forkChoice updateHead vc 1000000 bc 64 eq 0 4.9466 ms/op 7.3518 ms/op 0.67
forkChoice updateHead vc 600000 bc 320 eq 0 2.8577 ms/op 4.2606 ms/op 0.67
forkChoice updateHead vc 600000 bc 1200 eq 0 2.9389 ms/op 5.0303 ms/op 0.58
forkChoice updateHead vc 600000 bc 7200 eq 0 3.3110 ms/op 5.8325 ms/op 0.57
forkChoice updateHead vc 600000 bc 64 eq 1000 10.313 ms/op 11.727 ms/op 0.88
forkChoice updateHead vc 600000 bc 64 eq 10000 10.535 ms/op 12.161 ms/op 0.87
forkChoice updateHead vc 600000 bc 64 eq 300000 14.246 ms/op 51.362 ms/op 0.28
computeDeltas 500000 validators 300 proto nodes 4.1825 ms/op 5.7635 ms/op 0.73
computeDeltas 500000 validators 1200 proto nodes 4.2378 ms/op 4.5034 ms/op 0.94
computeDeltas 500000 validators 7200 proto nodes 4.1520 ms/op 4.3393 ms/op 0.96
computeDeltas 750000 validators 300 proto nodes 6.4202 ms/op 6.3750 ms/op 1.01
computeDeltas 750000 validators 1200 proto nodes 6.5235 ms/op 6.2290 ms/op 1.05
computeDeltas 750000 validators 7200 proto nodes 7.4312 ms/op 6.2800 ms/op 1.18
computeDeltas 1400000 validators 300 proto nodes 11.937 ms/op 11.346 ms/op 1.05
computeDeltas 1400000 validators 1200 proto nodes 12.009 ms/op 11.980 ms/op 1.00
computeDeltas 1400000 validators 7200 proto nodes 12.842 ms/op 11.762 ms/op 1.09
computeDeltas 2100000 validators 300 proto nodes 19.375 ms/op 16.862 ms/op 1.15
computeDeltas 2100000 validators 1200 proto nodes 18.161 ms/op 17.571 ms/op 1.03
computeDeltas 2100000 validators 7200 proto nodes 18.224 ms/op 17.535 ms/op 1.04
altair processAttestation - 250000 vs - 7PWei normalcase 1.7757 ms/op 2.0283 ms/op 0.88
altair processAttestation - 250000 vs - 7PWei worstcase 2.6995 ms/op 3.9519 ms/op 0.68
altair processAttestation - setStatus - 1/6 committees join 91.996 us/op 106.39 us/op 0.86
altair processAttestation - setStatus - 1/3 committees join 198.19 us/op 180.57 us/op 1.10
altair processAttestation - setStatus - 1/2 committees join 266.46 us/op 255.89 us/op 1.04
altair processAttestation - setStatus - 2/3 committees join 332.17 us/op 363.91 us/op 0.91
altair processAttestation - setStatus - 4/5 committees join 507.61 us/op 492.84 us/op 1.03
altair processAttestation - setStatus - 100% committees join 588.93 us/op 607.37 us/op 0.97
altair processBlock - 250000 vs - 7PWei normalcase 5.5888 ms/op 8.5337 ms/op 0.65
altair processBlock - 250000 vs - 7PWei normalcase hashState 29.206 ms/op 28.307 ms/op 1.03
altair processBlock - 250000 vs - 7PWei worstcase 44.846 ms/op 42.287 ms/op 1.06
altair processBlock - 250000 vs - 7PWei worstcase hashState 82.662 ms/op 77.951 ms/op 1.06
phase0 processBlock - 250000 vs - 7PWei normalcase 2.7198 ms/op 2.1719 ms/op 1.25
phase0 processBlock - 250000 vs - 7PWei worstcase 28.362 ms/op 23.994 ms/op 1.18
altair processEth1Data - 250000 vs - 7PWei normalcase 463.45 us/op 509.83 us/op 0.91
getExpectedWithdrawals 250000 eb:1,eth1:1,we:0,wn:0,smpl:15 6.7360 us/op 7.7840 us/op 0.87
getExpectedWithdrawals 250000 eb:0.95,eth1:0.1,we:0.05,wn:0,smpl:219 42.877 us/op 48.967 us/op 0.88
getExpectedWithdrawals 250000 eb:0.95,eth1:0.3,we:0.05,wn:0,smpl:42 13.221 us/op 11.586 us/op 1.14
getExpectedWithdrawals 250000 eb:0.95,eth1:0.7,we:0.05,wn:0,smpl:18 8.6630 us/op 8.5950 us/op 1.01
getExpectedWithdrawals 250000 eb:0.1,eth1:0.1,we:0,wn:0,smpl:1020 168.78 us/op 171.23 us/op 0.99
getExpectedWithdrawals 250000 eb:0.03,eth1:0.03,we:0,wn:0,smpl:11777 1.3196 ms/op 1.2241 ms/op 1.08
getExpectedWithdrawals 250000 eb:0.01,eth1:0.01,we:0,wn:0,smpl:16384 1.8624 ms/op 1.6217 ms/op 1.15
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,smpl:16384 1.8175 ms/op 1.6701 ms/op 1.09
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,nocache,smpl:16384 3.9341 ms/op 4.1393 ms/op 0.95
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,smpl:16384 2.0050 ms/op 1.6666 ms/op 1.20
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,nocache,smpl:16384 4.2952 ms/op 4.2471 ms/op 1.01
Tree 40 250000 create 239.58 ms/op 272.95 ms/op 0.88
Tree 40 250000 get(125000) 162.64 ns/op 163.93 ns/op 0.99
Tree 40 250000 set(125000) 714.38 ns/op 747.66 ns/op 0.96
Tree 40 250000 toArray() 20.105 ms/op 22.922 ms/op 0.88
Tree 40 250000 iterate all - toArray() + loop 19.449 ms/op 23.477 ms/op 0.83
Tree 40 250000 iterate all - get(i) 58.806 ms/op 65.546 ms/op 0.90
Array 250000 create 3.4547 ms/op 4.0295 ms/op 0.86
Array 250000 clone - spread 1.6814 ms/op 1.8829 ms/op 0.89
Array 250000 get(125000) 0.44900 ns/op 0.48300 ns/op 0.93
Array 250000 set(125000) 0.46800 ns/op 0.49400 ns/op 0.95
Array 250000 iterate all - loop 97.486 us/op 117.91 us/op 0.83
phase0 afterProcessEpoch - 250000 vs - 7PWei 56.231 ms/op 56.505 ms/op 1.00
Array.fill - length 1000000 4.0851 ms/op 4.5277 ms/op 0.90
Array push - length 1000000 19.471 ms/op 19.962 ms/op 0.98
Array.get 0.31250 ns/op 0.30565 ns/op 1.02
Uint8Array.get 0.45428 ns/op 0.47308 ns/op 0.96
phase0 beforeProcessEpoch - 250000 vs - 7PWei 19.764 ms/op 21.472 ms/op 0.92
altair processEpoch - mainnet_e81889 349.64 ms/op 336.82 ms/op 1.04
mainnet_e81889 - altair beforeProcessEpoch 21.926 ms/op 23.500 ms/op 0.93
mainnet_e81889 - altair processJustificationAndFinalization 12.432 us/op 18.573 us/op 0.67
mainnet_e81889 - altair processInactivityUpdates 6.0243 ms/op 7.2852 ms/op 0.83
mainnet_e81889 - altair processRewardsAndPenalties 56.631 ms/op 43.194 ms/op 1.31
mainnet_e81889 - altair processRegistryUpdates 3.1210 us/op 2.5270 us/op 1.24
mainnet_e81889 - altair processSlashings 911.00 ns/op 516.00 ns/op 1.77
mainnet_e81889 - altair processEth1DataReset 569.00 ns/op 548.00 ns/op 1.04
mainnet_e81889 - altair processEffectiveBalanceUpdates 3.9958 ms/op 1.5290 ms/op 2.61
mainnet_e81889 - altair processSlashingsReset 4.1210 us/op 5.5320 us/op 0.74
mainnet_e81889 - altair processRandaoMixesReset 5.3070 us/op 11.046 us/op 0.48
mainnet_e81889 - altair processHistoricalRootsUpdate 758.00 ns/op 755.00 ns/op 1.00
mainnet_e81889 - altair processParticipationFlagUpdates 3.1580 us/op 3.9910 us/op 0.79
mainnet_e81889 - altair processSyncCommitteeUpdates 738.00 ns/op 836.00 ns/op 0.88
mainnet_e81889 - altair afterProcessEpoch 54.494 ms/op 54.902 ms/op 0.99
capella processEpoch - mainnet_e217614 976.79 ms/op 1.1815 s/op 0.83
mainnet_e217614 - capella beforeProcessEpoch 74.212 ms/op 81.092 ms/op 0.92
mainnet_e217614 - capella processJustificationAndFinalization 17.347 us/op 19.352 us/op 0.90
mainnet_e217614 - capella processInactivityUpdates 19.019 ms/op 19.617 ms/op 0.97
mainnet_e217614 - capella processRewardsAndPenalties 257.58 ms/op 255.82 ms/op 1.01
mainnet_e217614 - capella processRegistryUpdates 14.436 us/op 22.312 us/op 0.65
mainnet_e217614 - capella processSlashings 440.00 ns/op 1.1270 us/op 0.39
mainnet_e217614 - capella processEth1DataReset 434.00 ns/op 719.00 ns/op 0.60
mainnet_e217614 - capella processEffectiveBalanceUpdates 20.182 ms/op 18.669 ms/op 1.08
mainnet_e217614 - capella processSlashingsReset 4.4490 us/op 6.0880 us/op 0.73
mainnet_e217614 - capella processRandaoMixesReset 8.2130 us/op 12.248 us/op 0.67
mainnet_e217614 - capella processHistoricalRootsUpdate 1.5180 us/op 1.1470 us/op 1.32
mainnet_e217614 - capella processParticipationFlagUpdates 2.3740 us/op 3.5780 us/op 0.66
mainnet_e217614 - capella afterProcessEpoch 130.62 ms/op 131.83 ms/op 0.99
phase0 processEpoch - mainnet_e58758 375.60 ms/op 367.03 ms/op 1.02
mainnet_e58758 - phase0 beforeProcessEpoch 95.633 ms/op 102.91 ms/op 0.93
mainnet_e58758 - phase0 processJustificationAndFinalization 17.087 us/op 22.999 us/op 0.74
mainnet_e58758 - phase0 processRewardsAndPenalties 35.600 ms/op 30.964 ms/op 1.15
mainnet_e58758 - phase0 processRegistryUpdates 8.9420 us/op 12.023 us/op 0.74
mainnet_e58758 - phase0 processSlashings 521.00 ns/op 600.00 ns/op 0.87
mainnet_e58758 - phase0 processEth1DataReset 416.00 ns/op 1.4260 us/op 0.29
mainnet_e58758 - phase0 processEffectiveBalanceUpdates 1.2322 ms/op 1.4508 ms/op 0.85
mainnet_e58758 - phase0 processSlashingsReset 3.8900 us/op 5.7440 us/op 0.68
mainnet_e58758 - phase0 processRandaoMixesReset 5.6430 us/op 8.4070 us/op 0.67
mainnet_e58758 - phase0 processHistoricalRootsUpdate 650.00 ns/op 1.1300 us/op 0.58
mainnet_e58758 - phase0 processParticipationRecordUpdates 3.6700 us/op 6.4070 us/op 0.57
mainnet_e58758 - phase0 afterProcessEpoch 47.284 ms/op 49.570 ms/op 0.95
phase0 processEffectiveBalanceUpdates - 250000 normalcase 2.2730 ms/op 1.7527 ms/op 1.30
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 4.7540 ms/op 2.2092 ms/op 2.15
altair processInactivityUpdates - 250000 normalcase 23.023 ms/op 19.631 ms/op 1.17
altair processInactivityUpdates - 250000 worstcase 20.184 ms/op 20.415 ms/op 0.99
phase0 processRegistryUpdates - 250000 normalcase 10.903 us/op 12.897 us/op 0.85
phase0 processRegistryUpdates - 250000 badcase_full_deposits 355.20 us/op 356.66 us/op 1.00
phase0 processRegistryUpdates - 250000 worstcase 0.5 164.77 ms/op 122.76 ms/op 1.34
altair processRewardsAndPenalties - 250000 normalcase 43.362 ms/op 44.413 ms/op 0.98
altair processRewardsAndPenalties - 250000 worstcase 40.481 ms/op 51.845 ms/op 0.78
phase0 getAttestationDeltas - 250000 normalcase 11.107 ms/op 9.8066 ms/op 1.13
phase0 getAttestationDeltas - 250000 worstcase 8.6831 ms/op 10.437 ms/op 0.83
phase0 processSlashings - 250000 worstcase 130.91 us/op 121.22 us/op 1.08
altair processSyncCommitteeUpdates - 250000 150.87 ms/op 178.84 ms/op 0.84
BeaconState.hashTreeRoot - No change 416.00 ns/op 401.00 ns/op 1.04
BeaconState.hashTreeRoot - 1 full validator 153.14 us/op 136.48 us/op 1.12
BeaconState.hashTreeRoot - 32 full validator 1.2280 ms/op 1.2506 ms/op 0.98
BeaconState.hashTreeRoot - 512 full validator 11.684 ms/op 12.324 ms/op 0.95
BeaconState.hashTreeRoot - 1 validator.effectiveBalance 170.87 us/op 151.26 us/op 1.13
BeaconState.hashTreeRoot - 32 validator.effectiveBalance 2.5064 ms/op 1.7160 ms/op 1.46
BeaconState.hashTreeRoot - 512 validator.effectiveBalance 33.763 ms/op 22.434 ms/op 1.50
BeaconState.hashTreeRoot - 1 balances 151.28 us/op 107.03 us/op 1.41
BeaconState.hashTreeRoot - 32 balances 1.4815 ms/op 1.3836 ms/op 1.07
BeaconState.hashTreeRoot - 512 balances 10.615 ms/op 9.8484 ms/op 1.08
BeaconState.hashTreeRoot - 250000 balances 206.46 ms/op 161.79 ms/op 1.28
aggregationBits - 2048 els - zipIndexesInBitList 41.991 us/op 32.695 us/op 1.28
byteArrayEquals 32 65.385 ns/op 58.961 ns/op 1.11
Buffer.compare 32 19.428 ns/op 19.646 ns/op 0.99
byteArrayEquals 1024 1.8042 us/op 1.7849 us/op 1.01
Buffer.compare 1024 27.747 ns/op 27.787 ns/op 1.00
byteArrayEquals 16384 26.728 us/op 27.154 us/op 0.98
Buffer.compare 16384 211.08 ns/op 216.25 ns/op 0.98
byteArrayEquals 123687377 216.18 ms/op 195.98 ms/op 1.10
Buffer.compare 123687377 16.953 ms/op 7.8371 ms/op 2.16
byteArrayEquals 32 - diff last byte 58.754 ns/op 53.895 ns/op 1.09
Buffer.compare 32 - diff last byte 23.218 ns/op 17.629 ns/op 1.32
byteArrayEquals 1024 - diff last byte 1.7912 us/op 1.6263 us/op 1.10
Buffer.compare 1024 - diff last byte 29.732 ns/op 26.045 ns/op 1.14
byteArrayEquals 16384 - diff last byte 27.905 us/op 25.868 us/op 1.08
Buffer.compare 16384 - diff last byte 230.74 ns/op 185.91 ns/op 1.24
byteArrayEquals 123687377 - diff last byte 210.97 ms/op 194.06 ms/op 1.09
Buffer.compare 123687377 - diff last byte 13.425 ms/op 6.8421 ms/op 1.96
byteArrayEquals 32 - random bytes 5.7320 ns/op 5.3570 ns/op 1.07
Buffer.compare 32 - random bytes 19.098 ns/op 17.470 ns/op 1.09
byteArrayEquals 1024 - random bytes 5.6740 ns/op 5.5210 ns/op 1.03
Buffer.compare 1024 - random bytes 18.356 ns/op 17.806 ns/op 1.03
byteArrayEquals 16384 - random bytes 5.9200 ns/op 5.3590 ns/op 1.10
Buffer.compare 16384 - random bytes 18.620 ns/op 17.769 ns/op 1.05
byteArrayEquals 123687377 - random bytes 7.1100 ns/op 6.7500 ns/op 1.05
Buffer.compare 123687377 - random bytes 21.310 ns/op 19.060 ns/op 1.12
regular array get 100000 times 40.057 us/op 45.107 us/op 0.89
wrappedArray get 100000 times 38.058 us/op 33.966 us/op 1.12
arrayWithProxy get 100000 times 17.706 ms/op 15.348 ms/op 1.15
ssz.Root.equals 52.322 ns/op 48.114 ns/op 1.09
byteArrayEquals 56.207 ns/op 46.071 ns/op 1.22
Buffer.compare 12.657 ns/op 10.431 ns/op 1.21
processSlot - 1 slots 22.915 us/op 16.621 us/op 1.38
processSlot - 32 slots 3.7717 ms/op 3.0612 ms/op 1.23
getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei 44.573 ms/op 38.334 ms/op 1.16
getCommitteeAssignments - req 1 vs - 250000 vc 2.3337 ms/op 2.2818 ms/op 1.02
getCommitteeAssignments - req 100 vs - 250000 vc 4.3539 ms/op 4.3758 ms/op 0.99
getCommitteeAssignments - req 1000 vs - 250000 vc 5.0012 ms/op 4.6412 ms/op 1.08
findModifiedValidators - 10000 modified validators 322.91 ms/op 287.27 ms/op 1.12
findModifiedValidators - 1000 modified validators 218.70 ms/op 204.34 ms/op 1.07
findModifiedValidators - 100 modified validators 246.19 ms/op 205.72 ms/op 1.20
findModifiedValidators - 10 modified validators 245.96 ms/op 215.93 ms/op 1.14
findModifiedValidators - 1 modified validators 226.89 ms/op 195.48 ms/op 1.16
findModifiedValidators - no difference 268.52 ms/op 198.21 ms/op 1.35
compare ViewDUs 3.7985 s/op 3.4022 s/op 1.12
compare each validator Uint8Array 1.6691 s/op 1.5343 s/op 1.09
compare ViewDU to Uint8Array 1.3234 s/op 1.2391 s/op 1.07
migrate state 1000000 validators, 24 modified, 0 new 917.36 ms/op 760.93 ms/op 1.21
migrate state 1000000 validators, 1700 modified, 1000 new 1.2131 s/op 952.66 ms/op 1.27
migrate state 1000000 validators, 3400 modified, 2000 new 1.2048 s/op 1.1375 s/op 1.06
migrate state 1500000 validators, 24 modified, 0 new 773.77 ms/op 707.30 ms/op 1.09
migrate state 1500000 validators, 1700 modified, 1000 new 1.0623 s/op 862.99 ms/op 1.23
migrate state 1500000 validators, 3400 modified, 2000 new 1.1863 s/op 981.79 ms/op 1.21
RootCache.getBlockRootAtSlot - 250000 vs - 7PWei 4.4200 ns/op 4.4300 ns/op 1.00
state getBlockRootAtSlot - 250000 vs - 7PWei 481.47 ns/op 586.48 ns/op 0.82
computeProposers - vc 250000 7.1385 ms/op 7.1967 ms/op 0.99
computeEpochShuffling - vc 250000 42.958 ms/op 42.083 ms/op 1.02
getNextSyncCommittee - vc 250000 127.62 ms/op 123.04 ms/op 1.04
computeSigningRoot for AttestationData 17.935 us/op 23.016 us/op 0.78
hash AttestationData serialized data then Buffer.toString(base64) 1.5761 us/op 1.5359 us/op 1.03
toHexString serialized data 882.80 ns/op 871.52 ns/op 1.01
Buffer.toString(base64) 183.40 ns/op 171.00 ns/op 1.07
nodejs block root to RootHex using toHex 160.82 ns/op 164.45 ns/op 0.98
nodejs block root to RootHex using toRootHex 90.780 ns/op 92.257 ns/op 0.98
browser block root to RootHex using the deprecated toHexString 225.39 ns/op 225.50 ns/op 1.00
browser block root to RootHex using toHex 181.79 ns/op 186.09 ns/op 0.98
browser block root to RootHex using toRootHex 161.43 ns/op 160.59 ns/op 1.01

by benchmarkbot/action

@nflaig nflaig merged commit 99c0dcb into unstable Oct 30, 2024
20 checks passed
@nflaig nflaig deleted the nflaig/proposer-config-api branch October 30, 2024 18:13
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.

3 participants