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: send and use validators fee recipient for engine block production #5831

Merged
merged 6 commits into from
Aug 14, 2023

Conversation

g11tech
Copy link
Contributor

@g11tech g11tech commented Aug 1, 2023

part of

Generally the validator registers fee recipient every epoch for engine (as well as builder block production). However in some edge cases like where registration was not updated (for e.g. fee recipient updated just few slots into epoch via keymanager) or registration issues or the block production requests routed to a fallback bn where validators registrations were not done .... (the edge case lodestar deployments witnessed on 31 july), its imperative that the produce block calls should carry the fee recipient and start a fresh engine block production with a new recipient if bn didn't have a prepared payload id which matches the requested fee recipient.

This PR achieves the same.

TODO:

  • add unit/mock test cases for the api
  • improve fee recipient logging for easy debugging

@g11tech g11tech requested a review from a team as a code owner August 1, 2023 11:26
@github-actions
Copy link
Contributor

github-actions bot commented Aug 1, 2023

Performance Report

✔️ no performance regression detected

Full benchmark results
Benchmark suite Current: 08fb337 Previous: a8ad567 Ratio
getPubkeys - index2pubkey - req 1000 vs - 250000 vc 595.76 us/op 615.85 us/op 0.97
getPubkeys - validatorsArr - req 1000 vs - 250000 vc 84.917 us/op 81.096 us/op 1.05
BLS verify - blst-native 1.2664 ms/op 1.2418 ms/op 1.02
BLS verifyMultipleSignatures 3 - blst-native 2.6289 ms/op 2.5074 ms/op 1.05
BLS verifyMultipleSignatures 8 - blst-native 5.6042 ms/op 5.3754 ms/op 1.04
BLS verifyMultipleSignatures 32 - blst-native 19.728 ms/op 19.446 ms/op 1.01
BLS aggregatePubkeys 32 - blst-native 26.025 us/op 25.688 us/op 1.01
BLS aggregatePubkeys 128 - blst-native 102.11 us/op 101.17 us/op 1.01
getAttestationsForBlock 61.960 ms/op 63.241 ms/op 0.98
isKnown best case - 1 super set check 369.00 ns/op 450.00 ns/op 0.82
isKnown normal case - 2 super set checks 315.00 ns/op 392.00 ns/op 0.80
isKnown worse case - 16 super set checks 305.00 ns/op 475.00 ns/op 0.64
CheckpointStateCache - add get delete 5.4860 us/op 5.7160 us/op 0.96
validate api signedAggregateAndProof - struct 2.9048 ms/op 2.8837 ms/op 1.01
validate gossip signedAggregateAndProof - struct 2.9102 ms/op 2.8891 ms/op 1.01
validate api attestation - struct 1.3866 ms/op 1.3747 ms/op 1.01
validate gossip attestation - struct 1.4018 ms/op 1.4118 ms/op 0.99
pickEth1Vote - no votes 1.3271 ms/op 1.3103 ms/op 1.01
pickEth1Vote - max votes 11.359 ms/op 9.8374 ms/op 1.15
pickEth1Vote - Eth1Data hashTreeRoot value x2048 9.5587 ms/op 9.4460 ms/op 1.01
pickEth1Vote - Eth1Data hashTreeRoot tree x2048 16.910 ms/op 14.882 ms/op 1.14
pickEth1Vote - Eth1Data fastSerialize value x2048 668.13 us/op 669.23 us/op 1.00
pickEth1Vote - Eth1Data fastSerialize tree x2048 5.9967 ms/op 5.1710 ms/op 1.16
bytes32 toHexString 581.00 ns/op 593.00 ns/op 0.98
bytes32 Buffer.toString(hex) 337.00 ns/op 300.00 ns/op 1.12
bytes32 Buffer.toString(hex) from Uint8Array 496.00 ns/op 535.00 ns/op 0.93
bytes32 Buffer.toString(hex) + 0x 315.00 ns/op 320.00 ns/op 0.98
Object access 1 prop 0.17600 ns/op 0.18600 ns/op 0.95
Map access 1 prop 0.16200 ns/op 0.15200 ns/op 1.07
Object get x1000 8.1420 ns/op 7.9640 ns/op 1.02
Map get x1000 0.72700 ns/op 0.71700 ns/op 1.01
Object set x1000 58.889 ns/op 54.724 ns/op 1.08
Map set x1000 41.878 ns/op 47.579 ns/op 0.88
Return object 10000 times 0.25260 ns/op 0.27150 ns/op 0.93
Throw Error 10000 times 4.0004 us/op 4.1228 us/op 0.97
fastMsgIdFn sha256 / 200 bytes 3.4340 us/op 3.4530 us/op 0.99
fastMsgIdFn h32 xxhash / 200 bytes 333.00 ns/op 373.00 ns/op 0.89
fastMsgIdFn h64 xxhash / 200 bytes 398.00 ns/op 421.00 ns/op 0.95
fastMsgIdFn sha256 / 1000 bytes 11.850 us/op 11.995 us/op 0.99
fastMsgIdFn h32 xxhash / 1000 bytes 468.00 ns/op 514.00 ns/op 0.91
fastMsgIdFn h64 xxhash / 1000 bytes 460.00 ns/op 479.00 ns/op 0.96
fastMsgIdFn sha256 / 10000 bytes 107.47 us/op 110.41 us/op 0.97
fastMsgIdFn h32 xxhash / 10000 bytes 2.0280 us/op 2.1170 us/op 0.96
fastMsgIdFn h64 xxhash / 10000 bytes 1.3960 us/op 1.4220 us/op 0.98
enrSubnets - fastDeserialize 64 bits 1.3870 us/op 1.6660 us/op 0.83
enrSubnets - ssz BitVector 64 bits 480.00 ns/op 586.00 ns/op 0.82
enrSubnets - fastDeserialize 4 bits 229.00 ns/op 237.00 ns/op 0.97
enrSubnets - ssz BitVector 4 bits 569.00 ns/op 565.00 ns/op 1.01
prioritizePeers score -10:0 att 32-0.1 sync 2-0 119.70 us/op 121.90 us/op 0.98
prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 143.03 us/op 156.85 us/op 0.91
prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 193.10 us/op 205.62 us/op 0.94
prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 327.81 us/op 363.82 us/op 0.90
prioritizePeers score 0:0 att 64-1 sync 4-1 349.62 us/op 376.92 us/op 0.93
array of 16000 items push then shift 1.6264 us/op 1.6903 us/op 0.96
LinkedList of 16000 items push then shift 9.4030 ns/op 9.2990 ns/op 1.01
array of 16000 items push then pop 61.056 ns/op 63.606 ns/op 0.96
LinkedList of 16000 items push then pop 9.0810 ns/op 9.3810 ns/op 0.97
array of 24000 items push then shift 2.5140 us/op 2.4837 us/op 1.01
LinkedList of 24000 items push then shift 9.4710 ns/op 9.2130 ns/op 1.03
array of 24000 items push then pop 124.63 ns/op 120.41 ns/op 1.04
LinkedList of 24000 items push then pop 8.9040 ns/op 9.1320 ns/op 0.98
intersect bitArray bitLen 8 7.2450 ns/op 7.5750 ns/op 0.96
intersect array and set length 8 60.401 ns/op 76.029 ns/op 0.79
intersect bitArray bitLen 128 32.815 ns/op 33.683 ns/op 0.97
intersect array and set length 128 825.57 ns/op 1.0264 us/op 0.80
bitArray.getTrueBitIndexes() bitLen 128 1.7380 us/op 1.8410 us/op 0.94
bitArray.getTrueBitIndexes() bitLen 248 2.5680 us/op 3.1270 us/op 0.82
bitArray.getTrueBitIndexes() bitLen 512 5.0520 us/op 6.8800 us/op 0.73
Buffer.concat 32 items 1.1150 us/op 1.0550 us/op 1.06
Uint8Array.set 32 items 2.2510 us/op 2.0490 us/op 1.10
transfer serialized Status (84 B) 1.9260 us/op 1.9000 us/op 1.01
copy serialized Status (84 B) 1.5540 us/op 1.7230 us/op 0.90
transfer serialized SignedVoluntaryExit (112 B) 2.0200 us/op 2.0330 us/op 0.99
copy serialized SignedVoluntaryExit (112 B) 1.6900 us/op 1.7780 us/op 0.95
transfer serialized ProposerSlashing (416 B) 2.4120 us/op 2.2570 us/op 1.07
copy serialized ProposerSlashing (416 B) 2.2520 us/op 2.3550 us/op 0.96
transfer serialized Attestation (485 B) 3.0530 us/op 2.3530 us/op 1.30
copy serialized Attestation (485 B) 3.2500 us/op 2.3100 us/op 1.41
transfer serialized AttesterSlashing (33232 B) 2.9900 us/op 2.2120 us/op 1.35
copy serialized AttesterSlashing (33232 B) 6.4840 us/op 7.4900 us/op 0.87
transfer serialized Small SignedBeaconBlock (128000 B) 3.0830 us/op 2.6180 us/op 1.18
copy serialized Small SignedBeaconBlock (128000 B) 14.162 us/op 23.613 us/op 0.60
transfer serialized Avg SignedBeaconBlock (200000 B) 3.3680 us/op 2.9250 us/op 1.15
copy serialized Avg SignedBeaconBlock (200000 B) 21.521 us/op 31.417 us/op 0.69
transfer serialized BlobsSidecar (524380 B) 3.5660 us/op 3.7220 us/op 0.96
copy serialized BlobsSidecar (524380 B) 144.89 us/op 206.81 us/op 0.70
transfer serialized Big SignedBeaconBlock (1000000 B) 3.3660 us/op 3.1020 us/op 1.09
copy serialized Big SignedBeaconBlock (1000000 B) 162.86 us/op 171.57 us/op 0.95
pass gossip attestations to forkchoice per slot 2.1827 ms/op 2.2708 ms/op 0.96
forkChoice updateHead vc 100000 bc 64 eq 0 2.1119 ms/op 2.3116 ms/op 0.91
forkChoice updateHead vc 600000 bc 64 eq 0 14.627 ms/op 11.641 ms/op 1.26
forkChoice updateHead vc 1000000 bc 64 eq 0 19.651 ms/op 19.981 ms/op 0.98
forkChoice updateHead vc 600000 bc 320 eq 0 16.888 ms/op 17.361 ms/op 0.97
forkChoice updateHead vc 600000 bc 1200 eq 0 88.393 ms/op 90.107 ms/op 0.98
forkChoice updateHead vc 600000 bc 64 eq 1000 22.355 ms/op 24.219 ms/op 0.92
forkChoice updateHead vc 600000 bc 64 eq 10000 25.098 ms/op 25.523 ms/op 0.98
forkChoice updateHead vc 600000 bc 64 eq 300000 34.071 ms/op 49.023 ms/op 0.70
computeDeltas 3.0888 ms/op 3.3949 ms/op 0.91
computeProposerBoostScoreFromBalances 407.47 us/op 400.70 us/op 1.02
altair processAttestation - 250000 vs - 7PWei normalcase 2.6656 ms/op 2.3382 ms/op 1.14
altair processAttestation - 250000 vs - 7PWei worstcase 4.3476 ms/op 3.3139 ms/op 1.31
altair processAttestation - setStatus - 1/6 committees join 207.03 us/op 147.61 us/op 1.40
altair processAttestation - setStatus - 1/3 committees join 365.15 us/op 286.11 us/op 1.28
altair processAttestation - setStatus - 1/2 committees join 509.81 us/op 391.87 us/op 1.30
altair processAttestation - setStatus - 2/3 committees join 598.01 us/op 486.95 us/op 1.23
altair processAttestation - setStatus - 4/5 committees join 942.43 us/op 673.62 us/op 1.40
altair processAttestation - setStatus - 100% committees join 1.1105 ms/op 789.75 us/op 1.41
altair processBlock - 250000 vs - 7PWei normalcase 10.377 ms/op 9.3678 ms/op 1.11
altair processBlock - 250000 vs - 7PWei normalcase hashState 17.669 ms/op 16.450 ms/op 1.07
altair processBlock - 250000 vs - 7PWei worstcase 40.916 ms/op 37.602 ms/op 1.09
altair processBlock - 250000 vs - 7PWei worstcase hashState 67.902 ms/op 59.274 ms/op 1.15
phase0 processBlock - 250000 vs - 7PWei normalcase 2.5233 ms/op 2.4646 ms/op 1.02
phase0 processBlock - 250000 vs - 7PWei worstcase 32.233 ms/op 30.073 ms/op 1.07
altair processEth1Data - 250000 vs - 7PWei normalcase 573.67 us/op 465.29 us/op 1.23
getExpectedWithdrawals 250000 eb:1,eth1:1,we:0,wn:0,smpl:15 21.681 us/op 9.4070 us/op 2.30
getExpectedWithdrawals 250000 eb:0.95,eth1:0.1,we:0.05,wn:0,smpl:219 77.790 us/op 41.021 us/op 1.90
getExpectedWithdrawals 250000 eb:0.95,eth1:0.3,we:0.05,wn:0,smpl:42 42.314 us/op 17.695 us/op 2.39
getExpectedWithdrawals 250000 eb:0.95,eth1:0.7,we:0.05,wn:0,smpl:18 22.291 us/op 11.000 us/op 2.03
getExpectedWithdrawals 250000 eb:0.1,eth1:0.1,we:0,wn:0,smpl:1020 276.20 us/op 154.29 us/op 1.79
getExpectedWithdrawals 250000 eb:0.03,eth1:0.03,we:0,wn:0,smpl:11777 1.7053 ms/op 1.1180 ms/op 1.53
getExpectedWithdrawals 250000 eb:0.01,eth1:0.01,we:0,wn:0,smpl:16384 2.6175 ms/op 1.5678 ms/op 1.67
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,smpl:16384 2.5594 ms/op 1.6122 ms/op 1.59
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,nocache,smpl:16384 6.4458 ms/op 2.9571 ms/op 2.18
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,smpl:16384 3.4335 ms/op 2.3398 ms/op 1.47
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,nocache,smpl:16384 8.6498 ms/op 4.6460 ms/op 1.86
Tree 40 250000 create 432.49 ms/op 300.99 ms/op 1.44
Tree 40 250000 get(125000) 232.16 ns/op 193.74 ns/op 1.20
Tree 40 250000 set(125000) 1.2695 us/op 870.98 ns/op 1.46
Tree 40 250000 toArray() 28.129 ms/op 17.926 ms/op 1.57
Tree 40 250000 iterate all - toArray() + loop 25.965 ms/op 18.084 ms/op 1.44
Tree 40 250000 iterate all - get(i) 82.768 ms/op 67.758 ms/op 1.22
MutableVector 250000 create 14.048 ms/op 10.859 ms/op 1.29
MutableVector 250000 get(125000) 7.8160 ns/op 6.5170 ns/op 1.20
MutableVector 250000 set(125000) 448.16 ns/op 257.16 ns/op 1.74
MutableVector 250000 toArray() 3.6279 ms/op 3.0904 ms/op 1.17
MutableVector 250000 iterate all - toArray() + loop 3.3745 ms/op 3.1996 ms/op 1.05
MutableVector 250000 iterate all - get(i) 1.6761 ms/op 1.5402 ms/op 1.09
Array 250000 create 3.1299 ms/op 2.7299 ms/op 1.15
Array 250000 clone - spread 1.2838 ms/op 1.1774 ms/op 1.09
Array 250000 get(125000) 0.70700 ns/op 0.59700 ns/op 1.18
Array 250000 set(125000) 0.99100 ns/op 0.68200 ns/op 1.45
Array 250000 iterate all - loop 97.329 us/op 84.050 us/op 1.16
effectiveBalanceIncrements clone Uint8Array 300000 65.052 us/op 29.878 us/op 2.18
effectiveBalanceIncrements clone MutableVector 300000 369.00 ns/op 376.00 ns/op 0.98
effectiveBalanceIncrements rw all Uint8Array 300000 190.32 us/op 181.36 us/op 1.05
effectiveBalanceIncrements rw all MutableVector 300000 98.625 ms/op 87.926 ms/op 1.12
phase0 afterProcessEpoch - 250000 vs - 7PWei 125.38 ms/op 119.68 ms/op 1.05
phase0 beforeProcessEpoch - 250000 vs - 7PWei 50.497 ms/op 32.746 ms/op 1.54
altair processEpoch - mainnet_e81889 371.47 ms/op 314.73 ms/op 1.18
mainnet_e81889 - altair beforeProcessEpoch 68.750 ms/op 56.776 ms/op 1.21
mainnet_e81889 - altair processJustificationAndFinalization 18.746 us/op 13.420 us/op 1.40
mainnet_e81889 - altair processInactivityUpdates 5.8450 ms/op 5.2811 ms/op 1.11
mainnet_e81889 - altair processRewardsAndPenalties 69.097 ms/op 49.516 ms/op 1.40
mainnet_e81889 - altair processRegistryUpdates 3.2850 us/op 2.3450 us/op 1.40
mainnet_e81889 - altair processSlashings 620.00 ns/op 463.00 ns/op 1.34
mainnet_e81889 - altair processEth1DataReset 768.00 ns/op 531.00 ns/op 1.45
mainnet_e81889 - altair processEffectiveBalanceUpdates 1.3391 ms/op 1.2599 ms/op 1.06
mainnet_e81889 - altair processSlashingsReset 3.3520 us/op 2.9300 us/op 1.14
mainnet_e81889 - altair processRandaoMixesReset 5.3990 us/op 7.3050 us/op 0.74
mainnet_e81889 - altair processHistoricalRootsUpdate 1.4400 us/op 750.00 ns/op 1.92
mainnet_e81889 - altair processParticipationFlagUpdates 4.2610 us/op 3.8320 us/op 1.11
mainnet_e81889 - altair processSyncCommitteeUpdates 996.00 ns/op 1.0160 us/op 0.98
mainnet_e81889 - altair afterProcessEpoch 136.59 ms/op 133.95 ms/op 1.02
capella processEpoch - mainnet_e217614 1.1997 s/op 1.1069 s/op 1.08
mainnet_e217614 - capella beforeProcessEpoch 257.82 ms/op 263.61 ms/op 0.98
mainnet_e217614 - capella processJustificationAndFinalization 20.566 us/op 21.935 us/op 0.94
mainnet_e217614 - capella processInactivityUpdates 21.942 ms/op 17.165 ms/op 1.28
mainnet_e217614 - capella processRewardsAndPenalties 330.88 ms/op 301.85 ms/op 1.10
mainnet_e217614 - capella processRegistryUpdates 30.321 us/op 21.595 us/op 1.40
mainnet_e217614 - capella processSlashings 1.3660 us/op 819.00 ns/op 1.67
mainnet_e217614 - capella processEth1DataReset 1.3430 us/op 501.00 ns/op 2.68
mainnet_e217614 - capella processEffectiveBalanceUpdates 5.9079 ms/op 4.2132 ms/op 1.40
mainnet_e217614 - capella processSlashingsReset 6.2720 us/op 3.3490 us/op 1.87
mainnet_e217614 - capella processRandaoMixesReset 17.215 us/op 6.0170 us/op 2.86
mainnet_e217614 - capella processHistoricalRootsUpdate 919.00 ns/op 924.00 ns/op 0.99
mainnet_e217614 - capella processParticipationFlagUpdates 2.5310 us/op 2.1780 us/op 1.16
mainnet_e217614 - capella afterProcessEpoch 334.73 ms/op 324.59 ms/op 1.03
phase0 processEpoch - mainnet_e58758 433.57 ms/op 359.79 ms/op 1.21
mainnet_e58758 - phase0 beforeProcessEpoch 212.14 ms/op 123.31 ms/op 1.72
mainnet_e58758 - phase0 processJustificationAndFinalization 38.858 us/op 19.089 us/op 2.04
mainnet_e58758 - phase0 processRewardsAndPenalties 93.306 ms/op 52.160 ms/op 1.79
mainnet_e58758 - phase0 processRegistryUpdates 24.846 us/op 10.399 us/op 2.39
mainnet_e58758 - phase0 processSlashings 1.6910 us/op 542.00 ns/op 3.12
mainnet_e58758 - phase0 processEth1DataReset 1.3950 us/op 447.00 ns/op 3.12
mainnet_e58758 - phase0 processEffectiveBalanceUpdates 1.3848 ms/op 1.0238 ms/op 1.35
mainnet_e58758 - phase0 processSlashingsReset 4.7170 us/op 2.1720 us/op 2.17
mainnet_e58758 - phase0 processRandaoMixesReset 9.9050 us/op 8.5620 us/op 1.16
mainnet_e58758 - phase0 processHistoricalRootsUpdate 1.1140 us/op 1.5330 us/op 0.73
mainnet_e58758 - phase0 processParticipationRecordUpdates 5.2910 us/op 3.9860 us/op 1.33
mainnet_e58758 - phase0 afterProcessEpoch 105.99 ms/op 108.62 ms/op 0.98
phase0 processEffectiveBalanceUpdates - 250000 normalcase 1.5631 ms/op 1.2477 ms/op 1.25
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 1.5261 ms/op 1.4430 ms/op 1.06
altair processInactivityUpdates - 250000 normalcase 28.934 ms/op 24.533 ms/op 1.18
altair processInactivityUpdates - 250000 worstcase 28.101 ms/op 22.754 ms/op 1.23
phase0 processRegistryUpdates - 250000 normalcase 15.688 us/op 9.1090 us/op 1.72
phase0 processRegistryUpdates - 250000 badcase_full_deposits 443.61 us/op 418.34 us/op 1.06
phase0 processRegistryUpdates - 250000 worstcase 0.5 183.67 ms/op 124.95 ms/op 1.47
altair processRewardsAndPenalties - 250000 normalcase 97.860 ms/op 68.503 ms/op 1.43
altair processRewardsAndPenalties - 250000 worstcase 96.153 ms/op 71.512 ms/op 1.34
phase0 getAttestationDeltas - 250000 normalcase 8.6181 ms/op 9.4477 ms/op 0.91
phase0 getAttestationDeltas - 250000 worstcase 8.1566 ms/op 8.6361 ms/op 0.94
phase0 processSlashings - 250000 worstcase 2.5042 ms/op 2.6114 ms/op 0.96
altair processSyncCommitteeUpdates - 250000 153.90 ms/op 160.71 ms/op 0.96
BeaconState.hashTreeRoot - No change 313.00 ns/op 285.00 ns/op 1.10
BeaconState.hashTreeRoot - 1 full validator 50.941 us/op 56.459 us/op 0.90
BeaconState.hashTreeRoot - 32 full validator 501.98 us/op 534.53 us/op 0.94
BeaconState.hashTreeRoot - 512 full validator 5.3414 ms/op 6.0276 ms/op 0.89
BeaconState.hashTreeRoot - 1 validator.effectiveBalance 63.506 us/op 66.049 us/op 0.96
BeaconState.hashTreeRoot - 32 validator.effectiveBalance 885.87 us/op 977.48 us/op 0.91
BeaconState.hashTreeRoot - 512 validator.effectiveBalance 11.553 ms/op 13.784 ms/op 0.84
BeaconState.hashTreeRoot - 1 balances 49.425 us/op 52.661 us/op 0.94
BeaconState.hashTreeRoot - 32 balances 449.00 us/op 489.36 us/op 0.92
BeaconState.hashTreeRoot - 512 balances 4.1033 ms/op 4.9436 ms/op 0.83
BeaconState.hashTreeRoot - 250000 balances 80.947 ms/op 81.281 ms/op 1.00
aggregationBits - 2048 els - zipIndexesInBitList 16.765 us/op 19.413 us/op 0.86
regular array get 100000 times 44.633 us/op 35.700 us/op 1.25
wrappedArray get 100000 times 45.825 us/op 36.225 us/op 1.27
arrayWithProxy get 100000 times 17.540 ms/op 17.253 ms/op 1.02
ssz.Root.equals 271.00 ns/op 270.00 ns/op 1.00
byteArrayEquals 283.00 ns/op 262.00 ns/op 1.08
shuffle list - 16384 els 7.7965 ms/op 7.5849 ms/op 1.03
shuffle list - 250000 els 114.05 ms/op 112.77 ms/op 1.01
processSlot - 1 slots 9.4490 us/op 10.197 us/op 0.93
processSlot - 32 slots 1.5610 ms/op 2.1763 ms/op 0.72
getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei 60.339 ms/op 56.267 ms/op 1.07
getCommitteeAssignments - req 1 vs - 250000 vc 2.9923 ms/op 2.5526 ms/op 1.17
getCommitteeAssignments - req 100 vs - 250000 vc 4.4832 ms/op 3.8200 ms/op 1.17
getCommitteeAssignments - req 1000 vs - 250000 vc 4.7880 ms/op 4.1933 ms/op 1.14
RootCache.getBlockRootAtSlot - 250000 vs - 7PWei 5.8400 ns/op 5.4000 ns/op 1.08
state getBlockRootAtSlot - 250000 vs - 7PWei 965.38 ns/op 786.24 ns/op 1.23
computeProposers - vc 250000 11.098 ms/op 10.033 ms/op 1.11
computeEpochShuffling - vc 250000 123.04 ms/op 111.23 ms/op 1.11
getNextSyncCommittee - vc 250000 166.61 ms/op 169.49 ms/op 0.98
computeSigningRoot for AttestationData 15.645 us/op 14.211 us/op 1.10
hash AttestationData serialized data then Buffer.toString(base64) 2.6162 us/op 2.4074 us/op 1.09
toHexString serialized data 1.4577 us/op 1.1146 us/op 1.31
Buffer.toString(base64) 238.13 ns/op 246.55 ns/op 0.97

by benchmarkbot/action

@@ -428,7 +431,7 @@ export type ReqTypes = {
getProposerDuties: {params: {epoch: Epoch}};
getSyncCommitteeDuties: {params: {epoch: Epoch}; body: U64Str[]};
produceBlock: {params: {slot: number}; query: {randao_reveal: string; graffiti: string}};
produceBlockV2: {params: {slot: number}; query: {randao_reveal: string; graffiti: string}};
produceBlockV2: {params: {slot: number}; query: {randao_reveal: string; graffiti: string; fee_recipient?: string}};
Copy link
Contributor

Choose a reason for hiding this comment

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

This is not part of the spec right? https://github.com/ethereum/beacon-APIs/blob/ea5668708f2c6717fd2934c9a0b82b6705818a2e/apis/validator/block.v2.yaml#L13 adding this here will cause our API client to break with spec compliant impls

Copy link
Contributor Author

Choose a reason for hiding this comment

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

yes you are correct 🙂 its not in spec, plan to PR there as well (for produce block v3),

but its spec compatible, in the sense that if the fee recipient is not passed, it will behave in the old spec complaint way

Copy link
Contributor

@dapplion dapplion left a comment

Choose a reason for hiding this comment

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

Looks good! Please upstream this change to API specs

@g11tech g11tech merged commit fa5c6cf into unstable Aug 14, 2023
11 checks passed
@g11tech g11tech deleted the g11tech/produceblock-feerecipient branch August 14, 2023 14:32
@g11tech
Copy link
Contributor Author

g11tech commented Aug 14, 2023

Looks good! Please upstream this change to API specs

sounds good! will open PR

@wemeetagain
Copy link
Member

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