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: remove duplicate validator registration calls #5993

Merged
merged 1 commit into from
Oct 9, 2023

Conversation

nflaig
Copy link
Member

@nflaig nflaig commented Sep 25, 2023

Motivation

Validator registration calls with beacon node / builder should only be done once at startup.

Description

Removed duplicate validator registration calls.

The function call queued up in runEveryEpoch runs immediately on first time, it is not required to explicitly call the function.

// Run immediately first
let slot = getCurrentSlot(this.config, this.genesisTime);
let slotOrEpoch = timeItem === TimeItem.Slot ? slot : computeEpochAtSlot(slot);
while (!signal.aborted) {
// Must catch fn() to ensure `sleep()` is awaited both for resolve and reject
await fn(slotOrEpoch, signal).catch((e: Error) => {
if (!isErrorAborted(e)) this.logger.error("Error on runEvery fn", {}, e);
});

Startup logs

Sep-24 11:11:03.258[]                 info: Published validator registrations to builder network epoch=205848, count=10
Sep-24 11:11:03.302[]                 info: Published validator registrations to builder network epoch=205848, count=10

@g11tech I noticed this was brought up in the inital PR #3969 (comment), the comment in code does not seem to be accurate but might be worth to double check.

@nflaig nflaig requested a review from a team as a code owner September 25, 2023 09:07
@github-actions
Copy link
Contributor

github-actions bot commented Sep 25, 2023

Performance Report

✔️ no performance regression detected

Full benchmark results
Benchmark suite Current: 35101ab Previous: b46dfcb Ratio
getPubkeys - index2pubkey - req 1000 vs - 250000 vc 814.28 us/op 790.89 us/op 1.03
getPubkeys - validatorsArr - req 1000 vs - 250000 vc 75.330 us/op 80.939 us/op 0.93
BLS verify - blst-native 1.3133 ms/op 1.2789 ms/op 1.03
BLS verifyMultipleSignatures 3 - blst-native 2.6748 ms/op 2.6797 ms/op 1.00
BLS verifyMultipleSignatures 8 - blst-native 5.8832 ms/op 5.8856 ms/op 1.00
BLS verifyMultipleSignatures 32 - blst-native 21.651 ms/op 21.426 ms/op 1.01
BLS verifyMultipleSignatures 64 - blst-native 42.397 ms/op 42.917 ms/op 0.99
BLS verifyMultipleSignatures 128 - blst-native 84.132 ms/op 82.519 ms/op 1.02
BLS deserializing 10000 signatures 865.83 ms/op 850.71 ms/op 1.02
BLS deserializing 100000 signatures 8.8129 s/op 8.7231 s/op 1.01
BLS verifyMultipleSignatures - same message - 3 - blst-native 1.3495 ms/op 1.2827 ms/op 1.05
BLS verifyMultipleSignatures - same message - 8 - blst-native 1.4749 ms/op 1.4524 ms/op 1.02
BLS verifyMultipleSignatures - same message - 32 - blst-native 2.2972 ms/op 2.4232 ms/op 0.95
BLS verifyMultipleSignatures - same message - 64 - blst-native 3.6607 ms/op 3.2160 ms/op 1.14
BLS verifyMultipleSignatures - same message - 128 - blst-native 5.4978 ms/op 5.2625 ms/op 1.04
BLS aggregatePubkeys 32 - blst-native 25.427 us/op 24.368 us/op 1.04
BLS aggregatePubkeys 128 - blst-native 99.590 us/op 94.447 us/op 1.05
getAttestationsForBlock 35.718 ms/op 44.500 ms/op 0.80
isKnown best case - 1 super set check 280.00 ns/op 283.00 ns/op 0.99
isKnown normal case - 2 super set checks 284.00 ns/op 266.00 ns/op 1.07
isKnown worse case - 16 super set checks 275.00 ns/op 272.00 ns/op 1.01
CheckpointStateCache - add get delete 4.8710 us/op 5.0900 us/op 0.96
validate api signedAggregateAndProof - struct 2.7108 ms/op 2.7028 ms/op 1.00
validate gossip signedAggregateAndProof - struct 2.7420 ms/op 2.6805 ms/op 1.02
validate gossip attestation - vc 640000 1.3289 ms/op 1.3131 ms/op 1.01
batch validate gossip attestation - vc 640000 - chunk 32 156.41 us/op 154.25 us/op 1.01
batch validate gossip attestation - vc 640000 - chunk 64 135.35 us/op 138.02 us/op 0.98
batch validate gossip attestation - vc 640000 - chunk 128 124.13 us/op 128.46 us/op 0.97
batch validate gossip attestation - vc 640000 - chunk 256 124.79 us/op 122.09 us/op 1.02
pickEth1Vote - no votes 1.1755 ms/op 1.0748 ms/op 1.09
pickEth1Vote - max votes 10.069 ms/op 12.421 ms/op 0.81
pickEth1Vote - Eth1Data hashTreeRoot value x2048 18.340 ms/op 19.147 ms/op 0.96
pickEth1Vote - Eth1Data hashTreeRoot tree x2048 25.781 ms/op 30.198 ms/op 0.85
pickEth1Vote - Eth1Data fastSerialize value x2048 526.89 us/op 529.37 us/op 1.00
pickEth1Vote - Eth1Data fastSerialize tree x2048 6.9279 ms/op 7.7606 ms/op 0.89
bytes32 toHexString 492.00 ns/op 445.00 ns/op 1.11
bytes32 Buffer.toString(hex) 273.00 ns/op 274.00 ns/op 1.00
bytes32 Buffer.toString(hex) from Uint8Array 402.00 ns/op 402.00 ns/op 1.00
bytes32 Buffer.toString(hex) + 0x 272.00 ns/op 277.00 ns/op 0.98
Object access 1 prop 0.14800 ns/op 0.14800 ns/op 1.00
Map access 1 prop 0.14500 ns/op 0.13900 ns/op 1.04
Object get x1000 6.6320 ns/op 7.4080 ns/op 0.90
Map get x1000 0.58500 ns/op 0.50800 ns/op 1.15
Object set x1000 45.492 ns/op 46.368 ns/op 0.98
Map set x1000 36.346 ns/op 37.505 ns/op 0.97
Return object 10000 times 0.22470 ns/op 0.23040 ns/op 0.98
Throw Error 10000 times 3.6416 us/op 3.7364 us/op 0.97
fastMsgIdFn sha256 / 200 bytes 3.1070 us/op 3.1670 us/op 0.98
fastMsgIdFn h32 xxhash / 200 bytes 257.00 ns/op 262.00 ns/op 0.98
fastMsgIdFn h64 xxhash / 200 bytes 320.00 ns/op 334.00 ns/op 0.96
fastMsgIdFn sha256 / 1000 bytes 10.856 us/op 11.083 us/op 0.98
fastMsgIdFn h32 xxhash / 1000 bytes 383.00 ns/op 381.00 ns/op 1.01
fastMsgIdFn h64 xxhash / 1000 bytes 390.00 ns/op 401.00 ns/op 0.97
fastMsgIdFn sha256 / 10000 bytes 98.954 us/op 101.53 us/op 0.97
fastMsgIdFn h32 xxhash / 10000 bytes 1.8090 us/op 1.8680 us/op 0.97
fastMsgIdFn h64 xxhash / 10000 bytes 1.2360 us/op 1.2970 us/op 0.95
send data - 1000 256B messages 17.720 ms/op 17.175 ms/op 1.03
send data - 1000 512B messages 24.221 ms/op 25.541 ms/op 0.95
send data - 1000 1024B messages 38.189 ms/op 39.820 ms/op 0.96
send data - 1000 1200B messages 27.226 ms/op 29.297 ms/op 0.93
send data - 1000 2048B messages 22.975 ms/op 31.274 ms/op 0.73
send data - 1000 4096B messages 31.001 ms/op 33.344 ms/op 0.93
send data - 1000 16384B messages 71.515 ms/op 77.126 ms/op 0.93
send data - 1000 65536B messages 269.66 ms/op 311.22 ms/op 0.87
enrSubnets - fastDeserialize 64 bits 1.1780 us/op 1.1870 us/op 0.99
enrSubnets - ssz BitVector 64 bits 396.00 ns/op 401.00 ns/op 0.99
enrSubnets - fastDeserialize 4 bits 160.00 ns/op 152.00 ns/op 1.05
enrSubnets - ssz BitVector 4 bits 395.00 ns/op 396.00 ns/op 1.00
prioritizePeers score -10:0 att 32-0.1 sync 2-0 96.638 us/op 98.363 us/op 0.98
prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 121.00 us/op 119.86 us/op 1.01
prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 154.75 us/op 151.71 us/op 1.02
prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 276.13 us/op 279.21 us/op 0.99
prioritizePeers score 0:0 att 64-1 sync 4-1 330.80 us/op 331.06 us/op 1.00
array of 16000 items push then shift 1.5930 us/op 1.5638 us/op 1.02
LinkedList of 16000 items push then shift 8.8340 ns/op 8.7590 ns/op 1.01
array of 16000 items push then pop 72.266 ns/op 69.383 ns/op 1.04
LinkedList of 16000 items push then pop 8.6740 ns/op 8.7800 ns/op 0.99
array of 24000 items push then shift 2.3592 us/op 2.3845 us/op 0.99
LinkedList of 24000 items push then shift 8.7780 ns/op 8.9550 ns/op 0.98
array of 24000 items push then pop 97.113 ns/op 95.189 ns/op 1.02
LinkedList of 24000 items push then pop 8.4390 ns/op 8.6030 ns/op 0.98
intersect bitArray bitLen 8 6.5770 ns/op 6.8840 ns/op 0.96
intersect array and set length 8 52.687 ns/op 52.637 ns/op 1.00
intersect bitArray bitLen 128 31.278 ns/op 31.491 ns/op 0.99
intersect array and set length 128 741.02 ns/op 730.33 ns/op 1.01
bitArray.getTrueBitIndexes() bitLen 128 1.4320 us/op 1.4480 us/op 0.99
bitArray.getTrueBitIndexes() bitLen 248 2.3410 us/op 2.3800 us/op 0.98
bitArray.getTrueBitIndexes() bitLen 512 4.4300 us/op 4.4850 us/op 0.99
Buffer.concat 32 items 918.00 ns/op 976.00 ns/op 0.94
Uint8Array.set 32 items 1.7520 us/op 1.9560 us/op 0.90
Set add up to 64 items then delete first 4.2131 us/op 4.2107 us/op 1.00
OrderedSet add up to 64 items then delete first 5.2052 us/op 5.1742 us/op 1.01
Set add up to 64 items then delete last 4.5051 us/op 4.4443 us/op 1.01
OrderedSet add up to 64 items then delete last 5.8692 us/op 5.5035 us/op 1.07
Set add up to 64 items then delete middle 4.5010 us/op 4.4274 us/op 1.02
OrderedSet add up to 64 items then delete middle 7.0836 us/op 6.7621 us/op 1.05
Set add up to 128 items then delete first 9.0183 us/op 9.0194 us/op 1.00
OrderedSet add up to 128 items then delete first 11.325 us/op 11.891 us/op 0.95
Set add up to 128 items then delete last 8.9976 us/op 8.8428 us/op 1.02
OrderedSet add up to 128 items then delete last 11.901 us/op 11.236 us/op 1.06
Set add up to 128 items then delete middle 8.8658 us/op 8.7514 us/op 1.01
OrderedSet add up to 128 items then delete middle 16.887 us/op 16.299 us/op 1.04
Set add up to 256 items then delete first 18.250 us/op 18.259 us/op 1.00
OrderedSet add up to 256 items then delete first 22.602 us/op 24.153 us/op 0.94
Set add up to 256 items then delete last 17.916 us/op 17.643 us/op 1.02
OrderedSet add up to 256 items then delete last 23.870 us/op 22.639 us/op 1.05
Set add up to 256 items then delete middle 17.766 us/op 17.467 us/op 1.02
OrderedSet add up to 256 items then delete middle 44.978 us/op 43.612 us/op 1.03
transfer serialized Status (84 B) 1.8440 us/op 1.8580 us/op 0.99
copy serialized Status (84 B) 1.5530 us/op 1.6060 us/op 0.97
transfer serialized SignedVoluntaryExit (112 B) 1.9600 us/op 1.9570 us/op 1.00
copy serialized SignedVoluntaryExit (112 B) 1.6320 us/op 1.6480 us/op 0.99
transfer serialized ProposerSlashing (416 B) 3.0810 us/op 3.2700 us/op 0.94
copy serialized ProposerSlashing (416 B) 2.3840 us/op 3.3740 us/op 0.71
transfer serialized Attestation (485 B) 2.1910 us/op 3.5830 us/op 0.61
copy serialized Attestation (485 B) 1.9650 us/op 3.4500 us/op 0.57
transfer serialized AttesterSlashing (33232 B) 2.3720 us/op 3.4760 us/op 0.68
copy serialized AttesterSlashing (33232 B) 4.9000 us/op 6.9180 us/op 0.71
transfer serialized Small SignedBeaconBlock (128000 B) 2.6230 us/op 3.5950 us/op 0.73
copy serialized Small SignedBeaconBlock (128000 B) 12.618 us/op 13.846 us/op 0.91
transfer serialized Avg SignedBeaconBlock (200000 B) 3.0130 us/op 3.5760 us/op 0.84
copy serialized Avg SignedBeaconBlock (200000 B) 17.747 us/op 18.877 us/op 0.94
transfer serialized BlobsSidecar (524380 B) 2.9210 us/op 3.4610 us/op 0.84
copy serialized BlobsSidecar (524380 B) 111.90 us/op 127.38 us/op 0.88
transfer serialized Big SignedBeaconBlock (1000000 B) 3.0560 us/op 3.4660 us/op 0.88
copy serialized Big SignedBeaconBlock (1000000 B) 190.92 us/op 167.71 us/op 1.14
pass gossip attestations to forkchoice per slot 3.8192 ms/op 3.8180 ms/op 1.00
forkChoice updateHead vc 100000 bc 64 eq 0 678.25 us/op 676.61 us/op 1.00
forkChoice updateHead vc 600000 bc 64 eq 0 4.7948 ms/op 4.4941 ms/op 1.07
forkChoice updateHead vc 1000000 bc 64 eq 0 6.9165 ms/op 7.3300 ms/op 0.94
forkChoice updateHead vc 600000 bc 320 eq 0 4.1382 ms/op 4.1572 ms/op 1.00
forkChoice updateHead vc 600000 bc 1200 eq 0 4.3379 ms/op 4.1589 ms/op 1.04
forkChoice updateHead vc 600000 bc 7200 eq 0 4.9222 ms/op 5.0254 ms/op 0.98
forkChoice updateHead vc 600000 bc 64 eq 1000 11.225 ms/op 11.338 ms/op 0.99
forkChoice updateHead vc 600000 bc 64 eq 10000 12.053 ms/op 12.305 ms/op 0.98
forkChoice updateHead vc 600000 bc 64 eq 300000 15.582 ms/op 15.717 ms/op 0.99
computeDeltas 500000 validators 300 proto nodes 6.2158 ms/op 6.3287 ms/op 0.98
computeDeltas 500000 validators 1200 proto nodes 6.1713 ms/op 6.2605 ms/op 0.99
computeDeltas 500000 validators 7200 proto nodes 6.1140 ms/op 6.3450 ms/op 0.96
computeDeltas 750000 validators 300 proto nodes 9.1802 ms/op 9.7089 ms/op 0.95
computeDeltas 750000 validators 1200 proto nodes 9.2564 ms/op 9.7914 ms/op 0.95
computeDeltas 750000 validators 7200 proto nodes 9.1834 ms/op 10.154 ms/op 0.90
computeDeltas 1400000 validators 300 proto nodes 17.491 ms/op 19.330 ms/op 0.90
computeDeltas 1400000 validators 1200 proto nodes 17.433 ms/op 18.880 ms/op 0.92
computeDeltas 1400000 validators 7200 proto nodes 17.370 ms/op 19.153 ms/op 0.91
computeDeltas 2100000 validators 300 proto nodes 26.044 ms/op 29.302 ms/op 0.89
computeDeltas 2100000 validators 1200 proto nodes 26.328 ms/op 29.371 ms/op 0.90
computeDeltas 2100000 validators 7200 proto nodes 26.085 ms/op 30.064 ms/op 0.87
computeProposerBoostScoreFromBalances 500000 validators 3.1827 ms/op 3.7280 ms/op 0.85
computeProposerBoostScoreFromBalances 750000 validators 3.2521 ms/op 3.6192 ms/op 0.90
computeProposerBoostScoreFromBalances 1400000 validators 3.2387 ms/op 3.6076 ms/op 0.90
computeProposerBoostScoreFromBalances 2100000 validators 3.2348 ms/op 3.6625 ms/op 0.88
altair processAttestation - 250000 vs - 7PWei normalcase 2.3675 ms/op 2.6639 ms/op 0.89
altair processAttestation - 250000 vs - 7PWei worstcase 3.2033 ms/op 3.3531 ms/op 0.96
altair processAttestation - setStatus - 1/6 committees join 175.86 us/op 191.82 us/op 0.92
altair processAttestation - setStatus - 1/3 committees join 336.72 us/op 381.86 us/op 0.88
altair processAttestation - setStatus - 1/2 committees join 454.52 us/op 522.62 us/op 0.87
altair processAttestation - setStatus - 2/3 committees join 568.38 us/op 618.62 us/op 0.92
altair processAttestation - setStatus - 4/5 committees join 762.44 us/op 852.95 us/op 0.89
altair processAttestation - setStatus - 100% committees join 948.96 us/op 1.0180 ms/op 0.93
altair processBlock - 250000 vs - 7PWei normalcase 9.3642 ms/op 7.9043 ms/op 1.18
altair processBlock - 250000 vs - 7PWei normalcase hashState 30.933 ms/op 33.569 ms/op 0.92
altair processBlock - 250000 vs - 7PWei worstcase 38.113 ms/op 42.945 ms/op 0.89
altair processBlock - 250000 vs - 7PWei worstcase hashState 92.803 ms/op 99.708 ms/op 0.93
phase0 processBlock - 250000 vs - 7PWei normalcase 2.2995 ms/op 3.2099 ms/op 0.72
phase0 processBlock - 250000 vs - 7PWei worstcase 30.353 ms/op 36.714 ms/op 0.83
altair processEth1Data - 250000 vs - 7PWei normalcase 459.24 us/op 503.27 us/op 0.91
getExpectedWithdrawals 250000 eb:1,eth1:1,we:0,wn:0,smpl:15 9.6630 us/op 20.636 us/op 0.47
getExpectedWithdrawals 250000 eb:0.95,eth1:0.1,we:0.05,wn:0,smpl:219 61.829 us/op 58.420 us/op 1.06
getExpectedWithdrawals 250000 eb:0.95,eth1:0.3,we:0.05,wn:0,smpl:42 11.531 us/op 13.654 us/op 0.84
getExpectedWithdrawals 250000 eb:0.95,eth1:0.7,we:0.05,wn:0,smpl:18 12.837 us/op 18.025 us/op 0.71
getExpectedWithdrawals 250000 eb:0.1,eth1:0.1,we:0,wn:0,smpl:1020 146.37 us/op 304.31 us/op 0.48
getExpectedWithdrawals 250000 eb:0.03,eth1:0.03,we:0,wn:0,smpl:11777 1.3507 ms/op 1.7923 ms/op 0.75
getExpectedWithdrawals 250000 eb:0.01,eth1:0.01,we:0,wn:0,smpl:16384 1.4240 ms/op 2.1154 ms/op 0.67
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,smpl:16384 1.5853 ms/op 2.1930 ms/op 0.72
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,nocache,smpl:16384 3.2165 ms/op 4.2981 ms/op 0.75
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,smpl:16384 2.3241 ms/op 2.9266 ms/op 0.79
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,nocache,smpl:16384 5.1316 ms/op 6.1040 ms/op 0.84
Tree 40 250000 create 329.09 ms/op 328.55 ms/op 1.00
Tree 40 250000 get(125000) 202.83 ns/op 232.58 ns/op 0.87
Tree 40 250000 set(125000) 934.75 ns/op 987.59 ns/op 0.95
Tree 40 250000 toArray() 19.054 ms/op 20.224 ms/op 0.94
Tree 40 250000 iterate all - toArray() + loop 17.379 ms/op 19.947 ms/op 0.87
Tree 40 250000 iterate all - get(i) 64.551 ms/op 76.949 ms/op 0.84
MutableVector 250000 create 11.494 ms/op 16.270 ms/op 0.71
MutableVector 250000 get(125000) 6.4430 ns/op 8.2470 ns/op 0.78
MutableVector 250000 set(125000) 234.07 ns/op 307.24 ns/op 0.76
MutableVector 250000 toArray() 2.9251 ms/op 3.3668 ms/op 0.87
MutableVector 250000 iterate all - toArray() + loop 3.0861 ms/op 3.5087 ms/op 0.88
MutableVector 250000 iterate all - get(i) 1.5231 ms/op 1.7749 ms/op 0.86
Array 250000 create 2.6795 ms/op 2.6771 ms/op 1.00
Array 250000 clone - spread 1.0291 ms/op 1.3243 ms/op 0.78
Array 250000 get(125000) 0.51400 ns/op 0.65100 ns/op 0.79
Array 250000 set(125000) 0.58800 ns/op 0.74100 ns/op 0.79
Array 250000 iterate all - loop 81.832 us/op 92.294 us/op 0.89
effectiveBalanceIncrements clone Uint8Array 300000 22.880 us/op 30.325 us/op 0.75
effectiveBalanceIncrements clone MutableVector 300000 294.00 ns/op 385.00 ns/op 0.76
effectiveBalanceIncrements rw all Uint8Array 300000 177.00 us/op 193.04 us/op 0.92
effectiveBalanceIncrements rw all MutableVector 300000 76.440 ms/op 85.084 ms/op 0.90
phase0 afterProcessEpoch - 250000 vs - 7PWei 112.10 ms/op 122.81 ms/op 0.91
phase0 beforeProcessEpoch - 250000 vs - 7PWei 36.636 ms/op 40.551 ms/op 0.90
altair processEpoch - mainnet_e81889 457.56 ms/op 556.31 ms/op 0.82
mainnet_e81889 - altair beforeProcessEpoch 58.593 ms/op 63.839 ms/op 0.92
mainnet_e81889 - altair processJustificationAndFinalization 14.862 us/op 23.458 us/op 0.63
mainnet_e81889 - altair processInactivityUpdates 7.3427 ms/op 6.6930 ms/op 1.10
mainnet_e81889 - altair processRewardsAndPenalties 61.525 ms/op 90.278 ms/op 0.68
mainnet_e81889 - altair processRegistryUpdates 2.5910 us/op 4.1220 us/op 0.63
mainnet_e81889 - altair processSlashings 589.00 ns/op 858.00 ns/op 0.69
mainnet_e81889 - altair processEth1DataReset 568.00 ns/op 873.00 ns/op 0.65
mainnet_e81889 - altair processEffectiveBalanceUpdates 1.2162 ms/op 2.3834 ms/op 0.51
mainnet_e81889 - altair processSlashingsReset 3.2340 us/op 4.8080 us/op 0.67
mainnet_e81889 - altair processRandaoMixesReset 5.3160 us/op 6.4780 us/op 0.82
mainnet_e81889 - altair processHistoricalRootsUpdate 986.00 ns/op 1.1480 us/op 0.86
mainnet_e81889 - altair processParticipationFlagUpdates 2.2290 us/op 3.2200 us/op 0.69
mainnet_e81889 - altair processSyncCommitteeUpdates 534.00 ns/op 1.0110 us/op 0.53
mainnet_e81889 - altair afterProcessEpoch 124.81 ms/op 134.22 ms/op 0.93
capella processEpoch - mainnet_e217614 1.4619 s/op 1.5597 s/op 0.94
mainnet_e217614 - capella beforeProcessEpoch 213.46 ms/op 228.00 ms/op 0.94
mainnet_e217614 - capella processJustificationAndFinalization 12.889 us/op 12.622 us/op 1.02
mainnet_e217614 - capella processInactivityUpdates 20.698 ms/op 19.229 ms/op 1.08
mainnet_e217614 - capella processRewardsAndPenalties 257.25 ms/op 306.73 ms/op 0.84
mainnet_e217614 - capella processRegistryUpdates 19.917 us/op 32.319 us/op 0.62
mainnet_e217614 - capella processSlashings 532.00 ns/op 857.00 ns/op 0.62
mainnet_e217614 - capella processEth1DataReset 493.00 ns/op 813.00 ns/op 0.61
mainnet_e217614 - capella processEffectiveBalanceUpdates 4.1388 ms/op 3.9423 ms/op 1.05
mainnet_e217614 - capella processSlashingsReset 3.0450 us/op 4.6380 us/op 0.66
mainnet_e217614 - capella processRandaoMixesReset 4.5160 us/op 7.1640 us/op 0.63
mainnet_e217614 - capella processHistoricalRootsUpdate 612.00 ns/op 1.2730 us/op 0.48
mainnet_e217614 - capella processParticipationFlagUpdates 2.4050 us/op 3.3140 us/op 0.73
mainnet_e217614 - capella afterProcessEpoch 316.38 ms/op 299.69 ms/op 1.06
phase0 processEpoch - mainnet_e58758 447.38 ms/op 477.92 ms/op 0.94
mainnet_e58758 - phase0 beforeProcessEpoch 129.61 ms/op 127.56 ms/op 1.02
mainnet_e58758 - phase0 processJustificationAndFinalization 13.992 us/op 22.976 us/op 0.61
mainnet_e58758 - phase0 processRewardsAndPenalties 60.617 ms/op 76.428 ms/op 0.79
mainnet_e58758 - phase0 processRegistryUpdates 10.333 us/op 16.743 us/op 0.62
mainnet_e58758 - phase0 processSlashings 486.00 ns/op 797.00 ns/op 0.61
mainnet_e58758 - phase0 processEth1DataReset 429.00 ns/op 659.00 ns/op 0.65
mainnet_e58758 - phase0 processEffectiveBalanceUpdates 988.83 us/op 2.1456 ms/op 0.46
mainnet_e58758 - phase0 processSlashingsReset 2.2150 us/op 3.3510 us/op 0.66
mainnet_e58758 - phase0 processRandaoMixesReset 3.8460 us/op 6.2630 us/op 0.61
mainnet_e58758 - phase0 processHistoricalRootsUpdate 351.00 ns/op 1.0730 us/op 0.33
mainnet_e58758 - phase0 processParticipationRecordUpdates 3.8150 us/op 5.8560 us/op 0.65
mainnet_e58758 - phase0 afterProcessEpoch 97.988 ms/op 97.513 ms/op 1.00
phase0 processEffectiveBalanceUpdates - 250000 normalcase 1.2895 ms/op 1.2633 ms/op 1.02
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 1.4095 ms/op 1.3684 ms/op 1.03
altair processInactivityUpdates - 250000 normalcase 19.054 ms/op 18.278 ms/op 1.04
altair processInactivityUpdates - 250000 worstcase 17.740 ms/op 19.471 ms/op 0.91
phase0 processRegistryUpdates - 250000 normalcase 9.2700 us/op 12.615 us/op 0.73
phase0 processRegistryUpdates - 250000 badcase_full_deposits 353.17 us/op 603.18 us/op 0.59
phase0 processRegistryUpdates - 250000 worstcase 0.5 116.58 ms/op 136.05 ms/op 0.86
altair processRewardsAndPenalties - 250000 normalcase 64.645 ms/op 83.363 ms/op 0.78
altair processRewardsAndPenalties - 250000 worstcase 65.497 ms/op 68.604 ms/op 0.95
phase0 getAttestationDeltas - 250000 normalcase 7.5882 ms/op 7.7826 ms/op 0.98
phase0 getAttestationDeltas - 250000 worstcase 7.5161 ms/op 8.1462 ms/op 0.92
phase0 processSlashings - 250000 worstcase 2.4223 ms/op 2.4243 ms/op 1.00
altair processSyncCommitteeUpdates - 250000 151.18 ms/op 149.78 ms/op 1.01
BeaconState.hashTreeRoot - No change 325.00 ns/op 335.00 ns/op 0.97
BeaconState.hashTreeRoot - 1 full validator 137.59 us/op 171.38 us/op 0.80
BeaconState.hashTreeRoot - 32 full validator 1.5567 ms/op 1.7665 ms/op 0.88
BeaconState.hashTreeRoot - 512 full validator 17.415 ms/op 18.368 ms/op 0.95
BeaconState.hashTreeRoot - 1 validator.effectiveBalance 187.14 us/op 218.23 us/op 0.86
BeaconState.hashTreeRoot - 32 validator.effectiveBalance 2.5219 ms/op 2.9027 ms/op 0.87
BeaconState.hashTreeRoot - 512 validator.effectiveBalance 30.905 ms/op 33.617 ms/op 0.92
BeaconState.hashTreeRoot - 1 balances 141.69 us/op 163.71 us/op 0.87
BeaconState.hashTreeRoot - 32 balances 1.3741 ms/op 1.3490 ms/op 1.02
BeaconState.hashTreeRoot - 512 balances 13.234 ms/op 13.750 ms/op 0.96
BeaconState.hashTreeRoot - 250000 balances 204.54 ms/op 208.26 ms/op 0.98
aggregationBits - 2048 els - zipIndexesInBitList 14.291 us/op 13.959 us/op 1.02
regular array get 100000 times 43.023 us/op 34.446 us/op 1.25
wrappedArray get 100000 times 32.723 us/op 31.571 us/op 1.04
arrayWithProxy get 100000 times 14.216 ms/op 14.019 ms/op 1.01
ssz.Root.equals 207.00 ns/op 204.00 ns/op 1.01
byteArrayEquals 208.00 ns/op 206.00 ns/op 1.01
shuffle list - 16384 els 6.8117 ms/op 7.0071 ms/op 0.97
shuffle list - 250000 els 100.17 ms/op 103.03 ms/op 0.97
processSlot - 1 slots 16.928 us/op 17.898 us/op 0.95
processSlot - 32 slots 3.2350 ms/op 3.9021 ms/op 0.83
getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei 54.249 ms/op 53.059 ms/op 1.02
getCommitteeAssignments - req 1 vs - 250000 vc 2.4938 ms/op 2.4836 ms/op 1.00
getCommitteeAssignments - req 100 vs - 250000 vc 3.6715 ms/op 3.6375 ms/op 1.01
getCommitteeAssignments - req 1000 vs - 250000 vc 4.0263 ms/op 3.9883 ms/op 1.01
RootCache.getBlockRootAtSlot - 250000 vs - 7PWei 4.5300 ns/op 4.7400 ns/op 0.96
state getBlockRootAtSlot - 250000 vs - 7PWei 665.48 ns/op 915.11 ns/op 0.73
computeProposers - vc 250000 8.6896 ms/op 8.8923 ms/op 0.98
computeEpochShuffling - vc 250000 105.57 ms/op 104.37 ms/op 1.01
getNextSyncCommittee - vc 250000 148.07 ms/op 150.22 ms/op 0.99
computeSigningRoot for AttestationData 28.408 us/op 27.161 us/op 1.05
hash AttestationData serialized data then Buffer.toString(base64) 2.2805 us/op 2.2975 us/op 0.99
toHexString serialized data 1.0411 us/op 1.0992 us/op 0.95
Buffer.toString(base64) 215.83 ns/op 215.66 ns/op 1.00

by benchmarkbot/action

Copy link
Contributor

@g11tech g11tech left a comment

Choose a reason for hiding this comment

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

Will review in detail and respond/approve

@nflaig nflaig force-pushed the nflaig/remove-duplicate-registration branch from bfa8215 to 71b9979 Compare September 29, 2023 12:50
@nflaig nflaig force-pushed the nflaig/remove-duplicate-registration branch from 71b9979 to f9e3f6d Compare September 30, 2023 13:05
@nflaig nflaig added this to the v1.12.0 milestone Oct 1, 2023
@nflaig nflaig requested a review from g11tech October 9, 2023 14:57
Copy link
Contributor

@g11tech g11tech left a comment

Choose a reason for hiding this comment

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

lgtm

@g11tech g11tech merged commit e42d6cc into unstable Oct 9, 2023
15 checks passed
@g11tech g11tech deleted the nflaig/remove-duplicate-registration branch October 9, 2023 17:40
@wemeetagain
Copy link
Member

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