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

refactor: more explicit voluntary exit process #5863

Merged
merged 2 commits into from
Aug 8, 2023

Conversation

nflaig
Copy link
Member

@nflaig nflaig commented Aug 8, 2023

Motivation

As noted by @SeaMonkey82 on discord our voluntary exit is pretty "lax" compared to how it works on Lighthouse.

  • There is no warning that this is irreversible
  • And we default to "Y" in the prompt which makes it less explicit

I also think we should make the whole process a bit more explicit to make the user "think twice" before executing the command.

Description

  • Default confirm to exit prompt to "N"
  • Add warning that this operation is irreversible
> ./lodestar validator voluntary-exit --network goerli
? Enter the keystore(s) password [hidden]
100% of keystores imported. current=3 total=3 rate=1065.09keys/m
Loaded keystores via keystore cache

WARNING: THIS IS AN IRREVERSIBLE OPERATION

? Confirm to exit pubkeys at epoch 194408 from network goerli?
0xa21c0e0cd0166eacc3eb51d855c17edb264ea2e5432ac3de4ea4c2e16fb5fdd6070b12cc5bd029b70b4436f7e973751e 462278 active_ongoing
0xa2db29290e6d2f7cbc4665638e80c090b7e8ae226dbf548179bfe531c1a43cff018543b7bf54d9e608c73ecbd6771e9e 460986 active_ongoing
0xa40233164c674c424a877495535293e969eae0d849add2f17fa70595673a740b4a94fbffb7c377b750f523176dcaed7e 461251 active_ongoing (y/N)

@nflaig nflaig requested a review from a team as a code owner August 8, 2023 10:15
@nflaig nflaig changed the title Nflaig/voluntary exit procedure chore: more explicit voluntary exit process Aug 8, 2023
@nflaig nflaig changed the title chore: more explicit voluntary exit process refactor: more explicit voluntary exit process Aug 8, 2023
@github-actions
Copy link
Contributor

github-actions bot commented Aug 8, 2023

Performance Report

✔️ no performance regression detected

Full benchmark results
Benchmark suite Current: 4521fe5 Previous: a8ad567 Ratio
getPubkeys - index2pubkey - req 1000 vs - 250000 vc 549.17 us/op 615.85 us/op 0.89
getPubkeys - validatorsArr - req 1000 vs - 250000 vc 94.460 us/op 81.096 us/op 1.16
BLS verify - blst-native 1.2432 ms/op 1.2418 ms/op 1.00
BLS verifyMultipleSignatures 3 - blst-native 2.5205 ms/op 2.5074 ms/op 1.01
BLS verifyMultipleSignatures 8 - blst-native 5.4228 ms/op 5.3754 ms/op 1.01
BLS verifyMultipleSignatures 32 - blst-native 19.473 ms/op 19.446 ms/op 1.00
BLS aggregatePubkeys 32 - blst-native 25.829 us/op 25.688 us/op 1.01
BLS aggregatePubkeys 128 - blst-native 101.24 us/op 101.17 us/op 1.00
getAttestationsForBlock 55.133 ms/op 63.241 ms/op 0.87
isKnown best case - 1 super set check 320.00 ns/op 450.00 ns/op 0.71
isKnown normal case - 2 super set checks 284.00 ns/op 392.00 ns/op 0.72
isKnown worse case - 16 super set checks 355.00 ns/op 475.00 ns/op 0.75
CheckpointStateCache - add get delete 5.8590 us/op 5.7160 us/op 1.03
validate api signedAggregateAndProof - struct 2.9540 ms/op 2.8837 ms/op 1.02
validate gossip signedAggregateAndProof - struct 2.9458 ms/op 2.8891 ms/op 1.02
validate api attestation - struct 1.3812 ms/op 1.3747 ms/op 1.00
validate gossip attestation - struct 1.4016 ms/op 1.4118 ms/op 0.99
pickEth1Vote - no votes 1.3106 ms/op 1.3103 ms/op 1.00
pickEth1Vote - max votes 10.650 ms/op 9.8374 ms/op 1.08
pickEth1Vote - Eth1Data hashTreeRoot value x2048 9.6702 ms/op 9.4460 ms/op 1.02
pickEth1Vote - Eth1Data hashTreeRoot tree x2048 16.395 ms/op 14.882 ms/op 1.10
pickEth1Vote - Eth1Data fastSerialize value x2048 706.05 us/op 669.23 us/op 1.06
pickEth1Vote - Eth1Data fastSerialize tree x2048 5.3937 ms/op 5.1710 ms/op 1.04
bytes32 toHexString 648.00 ns/op 593.00 ns/op 1.09
bytes32 Buffer.toString(hex) 324.00 ns/op 300.00 ns/op 1.08
bytes32 Buffer.toString(hex) from Uint8Array 502.00 ns/op 535.00 ns/op 0.94
bytes32 Buffer.toString(hex) + 0x 321.00 ns/op 320.00 ns/op 1.00
Object access 1 prop 0.18200 ns/op 0.18600 ns/op 0.98
Map access 1 prop 0.15400 ns/op 0.15200 ns/op 1.01
Object get x1000 7.4490 ns/op 7.9640 ns/op 0.94
Map get x1000 0.71000 ns/op 0.71700 ns/op 0.99
Object set x1000 57.837 ns/op 54.724 ns/op 1.06
Map set x1000 45.302 ns/op 47.579 ns/op 0.95
Return object 10000 times 0.25580 ns/op 0.27150 ns/op 0.94
Throw Error 10000 times 3.9998 us/op 4.1228 us/op 0.97
fastMsgIdFn sha256 / 200 bytes 3.3750 us/op 3.4530 us/op 0.98
fastMsgIdFn h32 xxhash / 200 bytes 328.00 ns/op 373.00 ns/op 0.88
fastMsgIdFn h64 xxhash / 200 bytes 385.00 ns/op 421.00 ns/op 0.91
fastMsgIdFn sha256 / 1000 bytes 11.717 us/op 11.995 us/op 0.98
fastMsgIdFn h32 xxhash / 1000 bytes 448.00 ns/op 514.00 ns/op 0.87
fastMsgIdFn h64 xxhash / 1000 bytes 454.00 ns/op 479.00 ns/op 0.95
fastMsgIdFn sha256 / 10000 bytes 106.35 us/op 110.41 us/op 0.96
fastMsgIdFn h32 xxhash / 10000 bytes 2.0350 us/op 2.1170 us/op 0.96
fastMsgIdFn h64 xxhash / 10000 bytes 1.4330 us/op 1.4220 us/op 1.01
enrSubnets - fastDeserialize 64 bits 1.5770 us/op 1.6660 us/op 0.95
enrSubnets - ssz BitVector 64 bits 542.00 ns/op 586.00 ns/op 0.92
enrSubnets - fastDeserialize 4 bits 218.00 ns/op 237.00 ns/op 0.92
enrSubnets - ssz BitVector 4 bits 475.00 ns/op 565.00 ns/op 0.84
prioritizePeers score -10:0 att 32-0.1 sync 2-0 112.11 us/op 121.90 us/op 0.92
prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 144.34 us/op 156.85 us/op 0.92
prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 205.36 us/op 205.62 us/op 1.00
prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 344.88 us/op 363.82 us/op 0.95
prioritizePeers score 0:0 att 64-1 sync 4-1 381.73 us/op 376.92 us/op 1.01
array of 16000 items push then shift 1.6413 us/op 1.6903 us/op 0.97
LinkedList of 16000 items push then shift 9.4970 ns/op 9.2990 ns/op 1.02
array of 16000 items push then pop 54.448 ns/op 63.606 ns/op 0.86
LinkedList of 16000 items push then pop 8.8340 ns/op 9.3810 ns/op 0.94
array of 24000 items push then shift 2.4209 us/op 2.4837 us/op 0.97
LinkedList of 24000 items push then shift 9.0220 ns/op 9.2130 ns/op 0.98
array of 24000 items push then pop 119.45 ns/op 120.41 ns/op 0.99
LinkedList of 24000 items push then pop 8.9660 ns/op 9.1320 ns/op 0.98
intersect bitArray bitLen 8 6.9900 ns/op 7.5750 ns/op 0.92
intersect array and set length 8 60.587 ns/op 76.029 ns/op 0.80
intersect bitArray bitLen 128 31.719 ns/op 33.683 ns/op 0.94
intersect array and set length 128 856.00 ns/op 1.0264 us/op 0.83
bitArray.getTrueBitIndexes() bitLen 128 1.7080 us/op 1.8410 us/op 0.93
bitArray.getTrueBitIndexes() bitLen 248 3.0680 us/op 3.1270 us/op 0.98
bitArray.getTrueBitIndexes() bitLen 512 5.4410 us/op 6.8800 us/op 0.79
Buffer.concat 32 items 1.1420 us/op 1.0550 us/op 1.08
Uint8Array.set 32 items 1.9010 us/op 2.0490 us/op 0.93
transfer serialized Status (84 B) 1.9520 us/op 1.9000 us/op 1.03
copy serialized Status (84 B) 1.6740 us/op 1.7230 us/op 0.97
transfer serialized SignedVoluntaryExit (112 B) 1.9550 us/op 2.0330 us/op 0.96
copy serialized SignedVoluntaryExit (112 B) 1.6600 us/op 1.7780 us/op 0.93
transfer serialized ProposerSlashing (416 B) 2.7280 us/op 2.2570 us/op 1.21
copy serialized ProposerSlashing (416 B) 2.2880 us/op 2.3550 us/op 0.97
transfer serialized Attestation (485 B) 2.2950 us/op 2.3530 us/op 0.98
copy serialized Attestation (485 B) 2.0050 us/op 2.3100 us/op 0.87
transfer serialized AttesterSlashing (33232 B) 2.1480 us/op 2.2120 us/op 0.97
copy serialized AttesterSlashing (33232 B) 5.9700 us/op 7.4900 us/op 0.80
transfer serialized Small SignedBeaconBlock (128000 B) 3.0350 us/op 2.6180 us/op 1.16
copy serialized Small SignedBeaconBlock (128000 B) 16.797 us/op 23.613 us/op 0.71
transfer serialized Avg SignedBeaconBlock (200000 B) 3.2970 us/op 2.9250 us/op 1.13
copy serialized Avg SignedBeaconBlock (200000 B) 22.712 us/op 31.417 us/op 0.72
transfer serialized BlobsSidecar (524380 B) 3.0070 us/op 3.7220 us/op 0.81
copy serialized BlobsSidecar (524380 B) 118.31 us/op 206.81 us/op 0.57
transfer serialized Big SignedBeaconBlock (1000000 B) 3.2150 us/op 3.1020 us/op 1.04
copy serialized Big SignedBeaconBlock (1000000 B) 154.59 us/op 171.57 us/op 0.90
pass gossip attestations to forkchoice per slot 2.1654 ms/op 2.2708 ms/op 0.95
forkChoice updateHead vc 100000 bc 64 eq 0 2.2048 ms/op 2.3116 ms/op 0.95
forkChoice updateHead vc 600000 bc 64 eq 0 14.468 ms/op 11.641 ms/op 1.24
forkChoice updateHead vc 1000000 bc 64 eq 0 19.629 ms/op 19.981 ms/op 0.98
forkChoice updateHead vc 600000 bc 320 eq 0 17.236 ms/op 17.361 ms/op 0.99
forkChoice updateHead vc 600000 bc 1200 eq 0 92.323 ms/op 90.107 ms/op 1.02
forkChoice updateHead vc 600000 bc 64 eq 1000 22.818 ms/op 24.219 ms/op 0.94
forkChoice updateHead vc 600000 bc 64 eq 10000 25.076 ms/op 25.523 ms/op 0.98
forkChoice updateHead vc 600000 bc 64 eq 300000 31.129 ms/op 49.023 ms/op 0.63
computeDeltas 3.1358 ms/op 3.3949 ms/op 0.92
computeProposerBoostScoreFromBalances 391.90 us/op 400.70 us/op 0.98
altair processAttestation - 250000 vs - 7PWei normalcase 2.2484 ms/op 2.3382 ms/op 0.96
altair processAttestation - 250000 vs - 7PWei worstcase 3.0680 ms/op 3.3139 ms/op 0.93
altair processAttestation - setStatus - 1/6 committees join 225.70 us/op 147.61 us/op 1.53
altair processAttestation - setStatus - 1/3 committees join 401.30 us/op 286.11 us/op 1.40
altair processAttestation - setStatus - 1/2 committees join 457.84 us/op 391.87 us/op 1.17
altair processAttestation - setStatus - 2/3 committees join 571.09 us/op 486.95 us/op 1.17
altair processAttestation - setStatus - 4/5 committees join 850.84 us/op 673.62 us/op 1.26
altair processAttestation - setStatus - 100% committees join 963.58 us/op 789.75 us/op 1.22
altair processBlock - 250000 vs - 7PWei normalcase 9.8780 ms/op 9.3678 ms/op 1.05
altair processBlock - 250000 vs - 7PWei normalcase hashState 16.541 ms/op 16.450 ms/op 1.01
altair processBlock - 250000 vs - 7PWei worstcase 37.222 ms/op 37.602 ms/op 0.99
altair processBlock - 250000 vs - 7PWei worstcase hashState 59.506 ms/op 59.274 ms/op 1.00
phase0 processBlock - 250000 vs - 7PWei normalcase 1.9052 ms/op 2.4646 ms/op 0.77
phase0 processBlock - 250000 vs - 7PWei worstcase 28.093 ms/op 30.073 ms/op 0.93
altair processEth1Data - 250000 vs - 7PWei normalcase 521.27 us/op 465.29 us/op 1.12
getExpectedWithdrawals 250000 eb:1,eth1:1,we:0,wn:0,smpl:15 11.582 us/op 9.4070 us/op 1.23
getExpectedWithdrawals 250000 eb:0.95,eth1:0.1,we:0.05,wn:0,smpl:219 65.522 us/op 41.021 us/op 1.60
getExpectedWithdrawals 250000 eb:0.95,eth1:0.3,we:0.05,wn:0,smpl:42 11.188 us/op 17.695 us/op 0.63
getExpectedWithdrawals 250000 eb:0.95,eth1:0.7,we:0.05,wn:0,smpl:18 11.013 us/op 11.000 us/op 1.00
getExpectedWithdrawals 250000 eb:0.1,eth1:0.1,we:0,wn:0,smpl:1020 168.50 us/op 154.29 us/op 1.09
getExpectedWithdrawals 250000 eb:0.03,eth1:0.03,we:0,wn:0,smpl:11777 1.0251 ms/op 1.1180 ms/op 0.92
getExpectedWithdrawals 250000 eb:0.01,eth1:0.01,we:0,wn:0,smpl:16384 1.4313 ms/op 1.5678 ms/op 0.91
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,smpl:16384 1.4329 ms/op 1.6122 ms/op 0.89
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,nocache,smpl:16384 3.1679 ms/op 2.9571 ms/op 1.07
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,smpl:16384 2.2469 ms/op 2.3398 ms/op 0.96
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,nocache,smpl:16384 4.5376 ms/op 4.6460 ms/op 0.98
Tree 40 250000 create 306.18 ms/op 300.99 ms/op 1.02
Tree 40 250000 get(125000) 193.74 ns/op 193.74 ns/op 1.00
Tree 40 250000 set(125000) 927.01 ns/op 870.98 ns/op 1.06
Tree 40 250000 toArray() 17.941 ms/op 17.926 ms/op 1.00
Tree 40 250000 iterate all - toArray() + loop 17.885 ms/op 18.084 ms/op 0.99
Tree 40 250000 iterate all - get(i) 66.381 ms/op 67.758 ms/op 0.98
MutableVector 250000 create 10.001 ms/op 10.859 ms/op 0.92
MutableVector 250000 get(125000) 6.5670 ns/op 6.5170 ns/op 1.01
MutableVector 250000 set(125000) 252.94 ns/op 257.16 ns/op 0.98
MutableVector 250000 toArray() 2.7710 ms/op 3.0904 ms/op 0.90
MutableVector 250000 iterate all - toArray() + loop 2.9057 ms/op 3.1996 ms/op 0.91
MutableVector 250000 iterate all - get(i) 1.5249 ms/op 1.5402 ms/op 0.99
Array 250000 create 2.5701 ms/op 2.7299 ms/op 0.94
Array 250000 clone - spread 1.0702 ms/op 1.1774 ms/op 0.91
Array 250000 get(125000) 0.53600 ns/op 0.59700 ns/op 0.90
Array 250000 set(125000) 0.60500 ns/op 0.68200 ns/op 0.89
Array 250000 iterate all - loop 82.063 us/op 84.050 us/op 0.98
effectiveBalanceIncrements clone Uint8Array 300000 24.085 us/op 29.878 us/op 0.81
effectiveBalanceIncrements clone MutableVector 300000 305.00 ns/op 376.00 ns/op 0.81
effectiveBalanceIncrements rw all Uint8Array 300000 179.38 us/op 181.36 us/op 0.99
effectiveBalanceIncrements rw all MutableVector 300000 78.915 ms/op 87.926 ms/op 0.90
phase0 afterProcessEpoch - 250000 vs - 7PWei 113.22 ms/op 119.68 ms/op 0.95
phase0 beforeProcessEpoch - 250000 vs - 7PWei 38.067 ms/op 32.746 ms/op 1.16
altair processEpoch - mainnet_e81889 329.61 ms/op 314.73 ms/op 1.05
mainnet_e81889 - altair beforeProcessEpoch 60.374 ms/op 56.776 ms/op 1.06
mainnet_e81889 - altair processJustificationAndFinalization 15.083 us/op 13.420 us/op 1.12
mainnet_e81889 - altair processInactivityUpdates 5.6452 ms/op 5.2811 ms/op 1.07
mainnet_e81889 - altair processRewardsAndPenalties 65.131 ms/op 49.516 ms/op 1.32
mainnet_e81889 - altair processRegistryUpdates 2.6770 us/op 2.3450 us/op 1.14
mainnet_e81889 - altair processSlashings 467.00 ns/op 463.00 ns/op 1.01
mainnet_e81889 - altair processEth1DataReset 861.00 ns/op 531.00 ns/op 1.62
mainnet_e81889 - altair processEffectiveBalanceUpdates 1.2828 ms/op 1.2599 ms/op 1.02
mainnet_e81889 - altair processSlashingsReset 3.9880 us/op 2.9300 us/op 1.36
mainnet_e81889 - altair processRandaoMixesReset 5.5830 us/op 7.3050 us/op 0.76
mainnet_e81889 - altair processHistoricalRootsUpdate 1.0130 us/op 750.00 ns/op 1.35
mainnet_e81889 - altair processParticipationFlagUpdates 3.2030 us/op 3.8320 us/op 0.84
mainnet_e81889 - altair processSyncCommitteeUpdates 640.00 ns/op 1.0160 us/op 0.63
mainnet_e81889 - altair afterProcessEpoch 129.00 ms/op 133.95 ms/op 0.96
capella processEpoch - mainnet_e217614 1.1208 s/op 1.1069 s/op 1.01
mainnet_e217614 - capella beforeProcessEpoch 296.49 ms/op 263.61 ms/op 1.12
mainnet_e217614 - capella processJustificationAndFinalization 23.242 us/op 21.935 us/op 1.06
mainnet_e217614 - capella processInactivityUpdates 20.987 ms/op 17.165 ms/op 1.22
mainnet_e217614 - capella processRewardsAndPenalties 309.10 ms/op 301.85 ms/op 1.02
mainnet_e217614 - capella processRegistryUpdates 27.143 us/op 21.595 us/op 1.26
mainnet_e217614 - capella processSlashings 1.2530 us/op 819.00 ns/op 1.53
mainnet_e217614 - capella processEth1DataReset 517.00 ns/op 501.00 ns/op 1.03
mainnet_e217614 - capella processEffectiveBalanceUpdates 4.3844 ms/op 4.2132 ms/op 1.04
mainnet_e217614 - capella processSlashingsReset 2.7550 us/op 3.3490 us/op 0.82
mainnet_e217614 - capella processRandaoMixesReset 4.8450 us/op 6.0170 us/op 0.81
mainnet_e217614 - capella processHistoricalRootsUpdate 844.00 ns/op 924.00 ns/op 0.91
mainnet_e217614 - capella processParticipationFlagUpdates 1.9100 us/op 2.1780 us/op 0.88
mainnet_e217614 - capella afterProcessEpoch 307.72 ms/op 324.59 ms/op 0.95
phase0 processEpoch - mainnet_e58758 341.74 ms/op 359.79 ms/op 0.95
mainnet_e58758 - phase0 beforeProcessEpoch 125.55 ms/op 123.31 ms/op 1.02
mainnet_e58758 - phase0 processJustificationAndFinalization 17.219 us/op 19.089 us/op 0.90
mainnet_e58758 - phase0 processRewardsAndPenalties 55.164 ms/op 52.160 ms/op 1.06
mainnet_e58758 - phase0 processRegistryUpdates 13.214 us/op 10.399 us/op 1.27
mainnet_e58758 - phase0 processSlashings 872.00 ns/op 542.00 ns/op 1.61
mainnet_e58758 - phase0 processEth1DataReset 700.00 ns/op 447.00 ns/op 1.57
mainnet_e58758 - phase0 processEffectiveBalanceUpdates 1.2495 ms/op 1.0238 ms/op 1.22
mainnet_e58758 - phase0 processSlashingsReset 3.9750 us/op 2.1720 us/op 1.83
mainnet_e58758 - phase0 processRandaoMixesReset 6.0910 us/op 8.5620 us/op 0.71
mainnet_e58758 - phase0 processHistoricalRootsUpdate 877.00 ns/op 1.5330 us/op 0.57
mainnet_e58758 - phase0 processParticipationRecordUpdates 5.9640 us/op 3.9860 us/op 1.50
mainnet_e58758 - phase0 afterProcessEpoch 108.80 ms/op 108.62 ms/op 1.00
phase0 processEffectiveBalanceUpdates - 250000 normalcase 1.3743 ms/op 1.2477 ms/op 1.10
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 1.9949 ms/op 1.4430 ms/op 1.38
altair processInactivityUpdates - 250000 normalcase 20.989 ms/op 24.533 ms/op 0.86
altair processInactivityUpdates - 250000 worstcase 23.146 ms/op 22.754 ms/op 1.02
phase0 processRegistryUpdates - 250000 normalcase 9.3230 us/op 9.1090 us/op 1.02
phase0 processRegistryUpdates - 250000 badcase_full_deposits 431.65 us/op 418.34 us/op 1.03
phase0 processRegistryUpdates - 250000 worstcase 0.5 140.63 ms/op 124.95 ms/op 1.13
altair processRewardsAndPenalties - 250000 normalcase 62.585 ms/op 68.503 ms/op 0.91
altair processRewardsAndPenalties - 250000 worstcase 59.162 ms/op 71.512 ms/op 0.83
phase0 getAttestationDeltas - 250000 normalcase 9.3745 ms/op 9.4477 ms/op 0.99
phase0 getAttestationDeltas - 250000 worstcase 8.7202 ms/op 8.6361 ms/op 1.01
phase0 processSlashings - 250000 worstcase 2.2773 ms/op 2.6114 ms/op 0.87
altair processSyncCommitteeUpdates - 250000 161.01 ms/op 160.71 ms/op 1.00
BeaconState.hashTreeRoot - No change 355.00 ns/op 285.00 ns/op 1.25
BeaconState.hashTreeRoot - 1 full validator 52.757 us/op 56.459 us/op 0.93
BeaconState.hashTreeRoot - 32 full validator 509.00 us/op 534.53 us/op 0.95
BeaconState.hashTreeRoot - 512 full validator 5.5454 ms/op 6.0276 ms/op 0.92
BeaconState.hashTreeRoot - 1 validator.effectiveBalance 65.470 us/op 66.049 us/op 0.99
BeaconState.hashTreeRoot - 32 validator.effectiveBalance 902.79 us/op 977.48 us/op 0.92
BeaconState.hashTreeRoot - 512 validator.effectiveBalance 11.842 ms/op 13.784 ms/op 0.86
BeaconState.hashTreeRoot - 1 balances 50.166 us/op 52.661 us/op 0.95
BeaconState.hashTreeRoot - 32 balances 454.24 us/op 489.36 us/op 0.93
BeaconState.hashTreeRoot - 512 balances 4.2117 ms/op 4.9436 ms/op 0.85
BeaconState.hashTreeRoot - 250000 balances 81.054 ms/op 81.281 ms/op 1.00
aggregationBits - 2048 els - zipIndexesInBitList 18.444 us/op 19.413 us/op 0.95
regular array get 100000 times 34.724 us/op 35.700 us/op 0.97
wrappedArray get 100000 times 46.569 us/op 36.225 us/op 1.29
arrayWithProxy get 100000 times 14.920 ms/op 17.253 ms/op 0.86
ssz.Root.equals 265.00 ns/op 270.00 ns/op 0.98
byteArrayEquals 264.00 ns/op 262.00 ns/op 1.01
shuffle list - 16384 els 7.2344 ms/op 7.5849 ms/op 0.95
shuffle list - 250000 els 107.98 ms/op 112.77 ms/op 0.96
processSlot - 1 slots 8.0530 us/op 10.197 us/op 0.79
processSlot - 32 slots 1.4132 ms/op 2.1763 ms/op 0.65
getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei 52.008 ms/op 56.267 ms/op 0.92
getCommitteeAssignments - req 1 vs - 250000 vc 2.6755 ms/op 2.5526 ms/op 1.05
getCommitteeAssignments - req 100 vs - 250000 vc 4.0670 ms/op 3.8200 ms/op 1.06
getCommitteeAssignments - req 1000 vs - 250000 vc 4.3573 ms/op 4.1933 ms/op 1.04
RootCache.getBlockRootAtSlot - 250000 vs - 7PWei 5.9800 ns/op 5.4000 ns/op 1.11
state getBlockRootAtSlot - 250000 vs - 7PWei 768.84 ns/op 786.24 ns/op 0.98
computeProposers - vc 250000 10.038 ms/op 10.033 ms/op 1.00
computeEpochShuffling - vc 250000 112.71 ms/op 111.23 ms/op 1.01
getNextSyncCommittee - vc 250000 171.10 ms/op 169.49 ms/op 1.01
computeSigningRoot for AttestationData 15.150 us/op 14.211 us/op 1.07
hash AttestationData serialized data then Buffer.toString(base64) 2.5359 us/op 2.4074 us/op 1.05
toHexString serialized data 1.7406 us/op 1.1146 us/op 1.56
Buffer.toString(base64) 286.85 ns/op 246.55 ns/op 1.16

by benchmarkbot/action

@wemeetagain wemeetagain merged commit e690ac6 into unstable Aug 8, 2023
19 of 20 checks passed
@wemeetagain wemeetagain deleted the nflaig/voluntary-exit-procedure branch August 8, 2023 13:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants