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

chore: unhide flags relevant for devnets / testing #7271

Merged
merged 1 commit into from
Dec 3, 2024

Conversation

nflaig
Copy link
Member

@nflaig nflaig commented Dec 2, 2024

Motivation

Those flags are relevant for devnets or testing and are used quite commonly

Description

Unhides the following flags

  • --genesisStateFile (required to configure custom network)
  • --ignoreWeakSubjectivityCheck (required in devnets with long non-finality)
  • --persistNetworkIdentity (has been asked multiple times by users if this options exists)

@nflaig nflaig requested a review from a team as a code owner December 2, 2024 10:22
@nflaig nflaig mentioned this pull request Dec 2, 2024
Copy link
Contributor

github-actions bot commented Dec 2, 2024

Performance Report

✔️ no performance regression detected

Full benchmark results
Benchmark suite Current: 291371e Previous: 8922d55 Ratio
getPubkeys - index2pubkey - req 1000 vs - 250000 vc 1.8987 ms/op 1.9879 ms/op 0.96
getPubkeys - validatorsArr - req 1000 vs - 250000 vc 41.426 us/op 47.282 us/op 0.88
BLS verify - blst 950.38 us/op 1.1382 ms/op 0.83
BLS verifyMultipleSignatures 3 - blst 1.3239 ms/op 1.9902 ms/op 0.67
BLS verifyMultipleSignatures 8 - blst 2.0991 ms/op 2.4507 ms/op 0.86
BLS verifyMultipleSignatures 32 - blst 4.5450 ms/op 7.3454 ms/op 0.62
BLS verifyMultipleSignatures 64 - blst 8.2900 ms/op 10.658 ms/op 0.78
BLS verifyMultipleSignatures 128 - blst 16.032 ms/op 17.381 ms/op 0.92
BLS deserializing 10000 signatures 619.21 ms/op 686.54 ms/op 0.90
BLS deserializing 100000 signatures 6.2484 s/op 6.9331 s/op 0.90
BLS verifyMultipleSignatures - same message - 3 - blst 978.60 us/op 1.4139 ms/op 0.69
BLS verifyMultipleSignatures - same message - 8 - blst 1.0833 ms/op 990.86 us/op 1.09
BLS verifyMultipleSignatures - same message - 32 - blst 1.7068 ms/op 1.6745 ms/op 1.02
BLS verifyMultipleSignatures - same message - 64 - blst 2.5617 ms/op 2.5716 ms/op 1.00
BLS verifyMultipleSignatures - same message - 128 - blst 4.1741 ms/op 4.3535 ms/op 0.96
BLS aggregatePubkeys 32 - blst 18.381 us/op 19.698 us/op 0.93
BLS aggregatePubkeys 128 - blst 64.560 us/op 70.078 us/op 0.92
notSeenSlots=1 numMissedVotes=1 numBadVotes=10 73.086 ms/op 66.991 ms/op 1.09
notSeenSlots=1 numMissedVotes=0 numBadVotes=4 53.977 ms/op 61.504 ms/op 0.88
notSeenSlots=2 numMissedVotes=1 numBadVotes=10 43.766 ms/op 56.272 ms/op 0.78
getSlashingsAndExits - default max 80.043 us/op 91.204 us/op 0.88
getSlashingsAndExits - 2k 268.89 us/op 271.76 us/op 0.99
proposeBlockBody type=full, size=empty 5.2315 ms/op 5.8111 ms/op 0.90
isKnown best case - 1 super set check 514.00 ns/op 282.00 ns/op 1.82
isKnown normal case - 2 super set checks 480.00 ns/op 267.00 ns/op 1.80
isKnown worse case - 16 super set checks 524.00 ns/op 268.00 ns/op 1.96
InMemoryCheckpointStateCache - add get delete 2.8910 us/op 2.6260 us/op 1.10
validate api signedAggregateAndProof - struct 1.4944 ms/op 2.3817 ms/op 0.63
validate gossip signedAggregateAndProof - struct 1.8714 ms/op 2.5927 ms/op 0.72
batch validate gossip attestation - vc 640000 - chunk 32 127.23 us/op 138.33 us/op 0.92
batch validate gossip attestation - vc 640000 - chunk 64 110.70 us/op 120.73 us/op 0.92
batch validate gossip attestation - vc 640000 - chunk 128 101.61 us/op 108.25 us/op 0.94
batch validate gossip attestation - vc 640000 - chunk 256 100.33 us/op 106.81 us/op 0.94
pickEth1Vote - no votes 935.77 us/op 1.0888 ms/op 0.86
pickEth1Vote - max votes 4.8128 ms/op 7.8290 ms/op 0.61
pickEth1Vote - Eth1Data hashTreeRoot value x2048 12.668 ms/op 11.350 ms/op 1.12
pickEth1Vote - Eth1Data hashTreeRoot tree x2048 19.201 ms/op 25.432 ms/op 0.75
pickEth1Vote - Eth1Data fastSerialize value x2048 423.98 us/op 455.66 us/op 0.93
pickEth1Vote - Eth1Data fastSerialize tree x2048 4.0059 ms/op 3.5912 ms/op 1.12
bytes32 toHexString 734.00 ns/op 426.00 ns/op 1.72
bytes32 Buffer.toString(hex) 469.00 ns/op 250.00 ns/op 1.88
bytes32 Buffer.toString(hex) from Uint8Array 633.00 ns/op 360.00 ns/op 1.76
bytes32 Buffer.toString(hex) + 0x 454.00 ns/op 250.00 ns/op 1.82
Object access 1 prop 0.34700 ns/op 0.13100 ns/op 2.65
Map access 1 prop 0.33000 ns/op 0.12900 ns/op 2.56
Object get x1000 5.2050 ns/op 5.6250 ns/op 0.93
Map get x1000 5.9840 ns/op 6.2220 ns/op 0.96
Object set x1000 24.201 ns/op 31.099 ns/op 0.78
Map set x1000 19.333 ns/op 21.333 ns/op 0.91
Return object 10000 times 0.30670 ns/op 0.28340 ns/op 1.08
Throw Error 10000 times 2.7637 us/op 3.2636 us/op 0.85
toHex 111.61 ns/op 145.43 ns/op 0.77
Buffer.from 105.06 ns/op 125.17 ns/op 0.84
shared Buffer 77.859 ns/op 85.733 ns/op 0.91
fastMsgIdFn sha256 / 200 bytes 2.0280 us/op 2.1780 us/op 0.93
fastMsgIdFn h32 xxhash / 200 bytes 401.00 ns/op 225.00 ns/op 1.78
fastMsgIdFn h64 xxhash / 200 bytes 450.00 ns/op 268.00 ns/op 1.68
fastMsgIdFn sha256 / 1000 bytes 5.8900 us/op 7.2860 us/op 0.81
fastMsgIdFn h32 xxhash / 1000 bytes 561.00 ns/op 355.00 ns/op 1.58
fastMsgIdFn h64 xxhash / 1000 bytes 537.00 ns/op 336.00 ns/op 1.60
fastMsgIdFn sha256 / 10000 bytes 49.901 us/op 64.701 us/op 0.77
fastMsgIdFn h32 xxhash / 10000 bytes 1.9370 us/op 1.8090 us/op 1.07
fastMsgIdFn h64 xxhash / 10000 bytes 1.3330 us/op 1.1940 us/op 1.12
send data - 1000 256B messages 10.482 ms/op 11.880 ms/op 0.88
send data - 1000 512B messages 12.906 ms/op 15.863 ms/op 0.81
send data - 1000 1024B messages 21.544 ms/op 28.189 ms/op 0.76
send data - 1000 1200B messages 24.589 ms/op 26.782 ms/op 0.92
send data - 1000 2048B messages 31.630 ms/op 32.769 ms/op 0.97
send data - 1000 4096B messages 27.235 ms/op 32.508 ms/op 0.84
send data - 1000 16384B messages 72.092 ms/op 74.542 ms/op 0.97
send data - 1000 65536B messages 319.58 ms/op 227.12 ms/op 1.41
enrSubnets - fastDeserialize 64 bits 1.1940 us/op 1.0960 us/op 1.09
enrSubnets - ssz BitVector 64 bits 576.00 ns/op 371.00 ns/op 1.55
enrSubnets - fastDeserialize 4 bits 372.00 ns/op 155.00 ns/op 2.40
enrSubnets - ssz BitVector 4 bits 585.00 ns/op 368.00 ns/op 1.59
prioritizePeers score -10:0 att 32-0.1 sync 2-0 135.57 us/op 139.02 us/op 0.98
prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 163.21 us/op 160.75 us/op 1.02
prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 350.70 us/op 297.77 us/op 1.18
prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 530.89 us/op 475.05 us/op 1.12
prioritizePeers score 0:0 att 64-1 sync 4-1 768.64 us/op 904.50 us/op 0.85
array of 16000 items push then shift 1.4192 us/op 1.6149 us/op 0.88
LinkedList of 16000 items push then shift 8.5400 ns/op 7.0680 ns/op 1.21
array of 16000 items push then pop 141.77 ns/op 117.35 ns/op 1.21
LinkedList of 16000 items push then pop 6.6790 ns/op 7.5130 ns/op 0.89
array of 24000 items push then shift 2.1435 us/op 2.5497 us/op 0.84
LinkedList of 24000 items push then shift 7.7890 ns/op 7.4210 ns/op 1.05
array of 24000 items push then pop 186.87 ns/op 152.07 ns/op 1.23
LinkedList of 24000 items push then pop 6.7000 ns/op 7.3380 ns/op 0.91
intersect bitArray bitLen 8 5.8030 ns/op 6.7660 ns/op 0.86
intersect array and set length 8 40.825 ns/op 48.288 ns/op 0.85
intersect bitArray bitLen 128 27.397 ns/op 31.278 ns/op 0.88
intersect array and set length 128 607.94 ns/op 798.60 ns/op 0.76
bitArray.getTrueBitIndexes() bitLen 128 2.8260 us/op 2.5320 us/op 1.12
bitArray.getTrueBitIndexes() bitLen 248 3.9780 us/op 4.5730 us/op 0.87
bitArray.getTrueBitIndexes() bitLen 512 9.0870 us/op 9.2070 us/op 0.99
Buffer.concat 32 items 1.2690 us/op 998.00 ns/op 1.27
Uint8Array.set 32 items 2.1750 us/op 1.6130 us/op 1.35
Buffer.copy 2.2390 us/op 1.6900 us/op 1.32
Uint8Array.set - with subarray 2.5990 us/op 2.4610 us/op 1.06
Uint8Array.set - without subarray 1.8860 us/op 1.4830 us/op 1.27
getUint32 - dataview 487.00 ns/op 254.00 ns/op 1.92
getUint32 - manual 507.00 ns/op 172.00 ns/op 2.95
Set add up to 64 items then delete first 2.7280 us/op 2.4340 us/op 1.12
OrderedSet add up to 64 items then delete first 4.5595 us/op 3.9057 us/op 1.17
Set add up to 64 items then delete last 2.9980 us/op 2.7621 us/op 1.09
OrderedSet add up to 64 items then delete last 3.5151 us/op 4.0352 us/op 0.87
Set add up to 64 items then delete middle 2.2244 us/op 2.6707 us/op 0.83
OrderedSet add up to 64 items then delete middle 4.8280 us/op 5.5805 us/op 0.87
Set add up to 128 items then delete first 4.3334 us/op 5.2071 us/op 0.83
OrderedSet add up to 128 items then delete first 6.6737 us/op 8.7025 us/op 0.77
Set add up to 128 items then delete last 4.5621 us/op 5.6212 us/op 0.81
OrderedSet add up to 128 items then delete last 6.2894 us/op 8.5578 us/op 0.73
Set add up to 128 items then delete middle 4.1937 us/op 5.1186 us/op 0.82
OrderedSet add up to 128 items then delete middle 14.187 us/op 14.626 us/op 0.97
Set add up to 256 items then delete first 8.7590 us/op 10.659 us/op 0.82
OrderedSet add up to 256 items then delete first 13.943 us/op 16.009 us/op 0.87
Set add up to 256 items then delete last 8.9440 us/op 10.515 us/op 0.85
OrderedSet add up to 256 items then delete last 13.215 us/op 16.366 us/op 0.81
Set add up to 256 items then delete middle 8.6460 us/op 9.9527 us/op 0.87
OrderedSet add up to 256 items then delete middle 39.986 us/op 42.422 us/op 0.94
transfer serialized Status (84 B) 1.5460 us/op 1.5470 us/op 1.00
copy serialized Status (84 B) 1.5930 us/op 1.3570 us/op 1.17
transfer serialized SignedVoluntaryExit (112 B) 1.7280 us/op 1.8030 us/op 0.96
copy serialized SignedVoluntaryExit (112 B) 1.6370 us/op 1.4800 us/op 1.11
transfer serialized ProposerSlashing (416 B) 2.7360 us/op 2.3800 us/op 1.15
copy serialized ProposerSlashing (416 B) 2.2470 us/op 2.2140 us/op 1.01
transfer serialized Attestation (485 B) 2.0380 us/op 1.9950 us/op 1.02
copy serialized Attestation (485 B) 2.2210 us/op 1.8700 us/op 1.19
transfer serialized AttesterSlashing (33232 B) 2.2600 us/op 2.6870 us/op 0.84
copy serialized AttesterSlashing (33232 B) 5.6320 us/op 5.8750 us/op 0.96
transfer serialized Small SignedBeaconBlock (128000 B) 3.2280 us/op 3.4510 us/op 0.94
copy serialized Small SignedBeaconBlock (128000 B) 13.988 us/op 16.448 us/op 0.85
transfer serialized Avg SignedBeaconBlock (200000 B) 3.6710 us/op 4.0500 us/op 0.91
copy serialized Avg SignedBeaconBlock (200000 B) 22.807 us/op 30.191 us/op 0.76
transfer serialized BlobsSidecar (524380 B) 4.3770 us/op 3.6060 us/op 1.21
copy serialized BlobsSidecar (524380 B) 145.85 us/op 85.267 us/op 1.71
transfer serialized Big SignedBeaconBlock (1000000 B) 4.6920 us/op 3.4340 us/op 1.37
copy serialized Big SignedBeaconBlock (1000000 B) 150.72 us/op 159.30 us/op 0.95
pass gossip attestations to forkchoice per slot 2.6348 ms/op 2.8754 ms/op 0.92
forkChoice updateHead vc 100000 bc 64 eq 0 368.17 us/op 459.71 us/op 0.80
forkChoice updateHead vc 600000 bc 64 eq 0 3.5367 ms/op 2.9067 ms/op 1.22
forkChoice updateHead vc 1000000 bc 64 eq 0 4.8705 ms/op 5.0038 ms/op 0.97
forkChoice updateHead vc 600000 bc 320 eq 0 2.7724 ms/op 2.9194 ms/op 0.95
forkChoice updateHead vc 600000 bc 1200 eq 0 2.3812 ms/op 2.9718 ms/op 0.80
forkChoice updateHead vc 600000 bc 7200 eq 0 3.6002 ms/op 3.6294 ms/op 0.99
forkChoice updateHead vc 600000 bc 64 eq 1000 9.6399 ms/op 10.644 ms/op 0.91
forkChoice updateHead vc 600000 bc 64 eq 10000 9.7854 ms/op 10.615 ms/op 0.92
forkChoice updateHead vc 600000 bc 64 eq 300000 12.139 ms/op 15.367 ms/op 0.79
computeDeltas 500000 validators 300 proto nodes 3.6289 ms/op 4.2461 ms/op 0.85
computeDeltas 500000 validators 1200 proto nodes 3.3897 ms/op 4.2564 ms/op 0.80
computeDeltas 500000 validators 7200 proto nodes 3.2615 ms/op 4.3433 ms/op 0.75
computeDeltas 750000 validators 300 proto nodes 5.0997 ms/op 6.3287 ms/op 0.81
computeDeltas 750000 validators 1200 proto nodes 5.0846 ms/op 6.2987 ms/op 0.81
computeDeltas 750000 validators 7200 proto nodes 4.9869 ms/op 6.4320 ms/op 0.78
computeDeltas 1400000 validators 300 proto nodes 9.4659 ms/op 12.152 ms/op 0.78
computeDeltas 1400000 validators 1200 proto nodes 9.3237 ms/op 12.663 ms/op 0.74
computeDeltas 1400000 validators 7200 proto nodes 9.1644 ms/op 12.019 ms/op 0.76
computeDeltas 2100000 validators 300 proto nodes 14.254 ms/op 18.062 ms/op 0.79
computeDeltas 2100000 validators 1200 proto nodes 14.207 ms/op 17.908 ms/op 0.79
computeDeltas 2100000 validators 7200 proto nodes 14.868 ms/op 19.572 ms/op 0.76
altair processAttestation - 250000 vs - 7PWei normalcase 3.0612 ms/op 2.6732 ms/op 1.15
altair processAttestation - 250000 vs - 7PWei worstcase 2.6688 ms/op 2.8867 ms/op 0.92
altair processAttestation - setStatus - 1/6 committees join 67.988 us/op 97.155 us/op 0.70
altair processAttestation - setStatus - 1/3 committees join 147.57 us/op 210.21 us/op 0.70
altair processAttestation - setStatus - 1/2 committees join 182.42 us/op 295.39 us/op 0.62
altair processAttestation - setStatus - 2/3 committees join 254.20 us/op 344.09 us/op 0.74
altair processAttestation - setStatus - 4/5 committees join 394.50 us/op 516.56 us/op 0.76
altair processAttestation - setStatus - 100% committees join 469.29 us/op 643.14 us/op 0.73
altair processBlock - 250000 vs - 7PWei normalcase 4.7349 ms/op 5.3289 ms/op 0.89
altair processBlock - 250000 vs - 7PWei normalcase hashState 25.439 ms/op 28.550 ms/op 0.89
altair processBlock - 250000 vs - 7PWei worstcase 34.448 ms/op 39.556 ms/op 0.87
altair processBlock - 250000 vs - 7PWei worstcase hashState 88.335 ms/op 76.212 ms/op 1.16
phase0 processBlock - 250000 vs - 7PWei normalcase 1.4444 ms/op 2.2500 ms/op 0.64
phase0 processBlock - 250000 vs - 7PWei worstcase 21.236 ms/op 25.422 ms/op 0.84
altair processEth1Data - 250000 vs - 7PWei normalcase 261.70 us/op 456.28 us/op 0.57
getExpectedWithdrawals 250000 eb:1,eth1:1,we:0,wn:0,smpl:15 5.8340 us/op 5.4210 us/op 1.08
getExpectedWithdrawals 250000 eb:0.95,eth1:0.1,we:0.05,wn:0,smpl:219 26.015 us/op 38.058 us/op 0.68
getExpectedWithdrawals 250000 eb:0.95,eth1:0.3,we:0.05,wn:0,smpl:42 8.6760 us/op 9.8910 us/op 0.88
getExpectedWithdrawals 250000 eb:0.95,eth1:0.7,we:0.05,wn:0,smpl:18 6.6510 us/op 6.3850 us/op 1.04
getExpectedWithdrawals 250000 eb:0.1,eth1:0.1,we:0,wn:0,smpl:1020 133.45 us/op 175.31 us/op 0.76
getExpectedWithdrawals 250000 eb:0.03,eth1:0.03,we:0,wn:0,smpl:11777 1.4452 ms/op 1.4183 ms/op 1.02
getExpectedWithdrawals 250000 eb:0.01,eth1:0.01,we:0,wn:0,smpl:16384 1.1532 ms/op 1.8465 ms/op 0.62
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,smpl:16384 1.2207 ms/op 1.6260 ms/op 0.75
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,nocache,smpl:16384 2.8990 ms/op 4.1212 ms/op 0.70
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,smpl:16384 1.3620 ms/op 1.6639 ms/op 0.82
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,nocache,smpl:16384 3.0877 ms/op 4.1104 ms/op 0.75
Tree 40 250000 create 171.49 ms/op 254.05 ms/op 0.68
Tree 40 250000 get(125000) 114.77 ns/op 165.70 ns/op 0.69
Tree 40 250000 set(125000) 518.13 ns/op 778.54 ns/op 0.67
Tree 40 250000 toArray() 13.217 ms/op 22.711 ms/op 0.58
Tree 40 250000 iterate all - toArray() + loop 14.154 ms/op 23.729 ms/op 0.60
Tree 40 250000 iterate all - get(i) 48.452 ms/op 63.725 ms/op 0.76
Array 250000 create 2.5920 ms/op 3.7039 ms/op 0.70
Array 250000 clone - spread 1.3438 ms/op 1.5260 ms/op 0.88
Array 250000 get(125000) 0.61800 ns/op 0.44700 ns/op 1.38
Array 250000 set(125000) 0.61600 ns/op 0.44700 ns/op 1.38
Array 250000 iterate all - loop 79.000 us/op 107.17 us/op 0.74
phase0 afterProcessEpoch - 250000 vs - 7PWei 45.528 ms/op 55.006 ms/op 0.83
Array.fill - length 1000000 2.6168 ms/op 3.7505 ms/op 0.70
Array push - length 1000000 16.281 ms/op 20.014 ms/op 0.81
Array.get 0.26533 ns/op 0.30001 ns/op 0.88
Uint8Array.get 0.33431 ns/op 0.49007 ns/op 0.68
phase0 beforeProcessEpoch - 250000 vs - 7PWei 22.770 ms/op 19.040 ms/op 1.20
altair processEpoch - mainnet_e81889 299.58 ms/op 315.82 ms/op 0.95
mainnet_e81889 - altair beforeProcessEpoch 20.378 ms/op 19.498 ms/op 1.05
mainnet_e81889 - altair processJustificationAndFinalization 15.155 us/op 14.288 us/op 1.06
mainnet_e81889 - altair processInactivityUpdates 4.4576 ms/op 5.3545 ms/op 0.83
mainnet_e81889 - altair processRewardsAndPenalties 47.004 ms/op 42.435 ms/op 1.11
mainnet_e81889 - altair processRegistryUpdates 3.2210 us/op 1.6960 us/op 1.90
mainnet_e81889 - altair processSlashings 1.0590 us/op 589.00 ns/op 1.80
mainnet_e81889 - altair processEth1DataReset 865.00 ns/op 326.00 ns/op 2.65
mainnet_e81889 - altair processEffectiveBalanceUpdates 1.1927 ms/op 1.9457 ms/op 0.61
mainnet_e81889 - altair processSlashingsReset 4.4860 us/op 2.4810 us/op 1.81
mainnet_e81889 - altair processRandaoMixesReset 6.0690 us/op 3.3590 us/op 1.81
mainnet_e81889 - altair processHistoricalRootsUpdate 1.5480 us/op 356.00 ns/op 4.35
mainnet_e81889 - altair processParticipationFlagUpdates 4.0020 us/op 3.5120 us/op 1.14
mainnet_e81889 - altair processSyncCommitteeUpdates 1.5010 us/op 724.00 ns/op 2.07
mainnet_e81889 - altair afterProcessEpoch 45.355 ms/op 51.416 ms/op 0.88
capella processEpoch - mainnet_e217614 1.4200 s/op 1.1504 s/op 1.23
mainnet_e217614 - capella beforeProcessEpoch 106.95 ms/op 80.524 ms/op 1.33
mainnet_e217614 - capella processJustificationAndFinalization 24.573 us/op 25.374 us/op 0.97
mainnet_e217614 - capella processInactivityUpdates 30.402 ms/op 17.481 ms/op 1.74
mainnet_e217614 - capella processRewardsAndPenalties 342.85 ms/op 279.40 ms/op 1.23
mainnet_e217614 - capella processRegistryUpdates 18.473 us/op 20.532 us/op 0.90
mainnet_e217614 - capella processSlashings 898.00 ns/op 681.00 ns/op 1.32
mainnet_e217614 - capella processEth1DataReset 1.1380 us/op 530.00 ns/op 2.15
mainnet_e217614 - capella processEffectiveBalanceUpdates 25.324 ms/op 12.562 ms/op 2.02
mainnet_e217614 - capella processSlashingsReset 5.5580 us/op 5.3110 us/op 1.05
mainnet_e217614 - capella processRandaoMixesReset 7.0420 us/op 6.5760 us/op 1.07
mainnet_e217614 - capella processHistoricalRootsUpdate 1.0440 us/op 404.00 ns/op 2.58
mainnet_e217614 - capella processParticipationFlagUpdates 4.2160 us/op 2.4510 us/op 1.72
mainnet_e217614 - capella afterProcessEpoch 114.58 ms/op 126.13 ms/op 0.91
phase0 processEpoch - mainnet_e58758 484.60 ms/op 359.50 ms/op 1.35
mainnet_e58758 - phase0 beforeProcessEpoch 119.36 ms/op 91.600 ms/op 1.30
mainnet_e58758 - phase0 processJustificationAndFinalization 21.055 us/op 19.740 us/op 1.07
mainnet_e58758 - phase0 processRewardsAndPenalties 38.264 ms/op 41.074 ms/op 0.93
mainnet_e58758 - phase0 processRegistryUpdates 12.355 us/op 11.688 us/op 1.06
mainnet_e58758 - phase0 processSlashings 1.2570 us/op 599.00 ns/op 2.10
mainnet_e58758 - phase0 processEth1DataReset 1.0850 us/op 520.00 ns/op 2.09
mainnet_e58758 - phase0 processEffectiveBalanceUpdates 1.4573 ms/op 2.1088 ms/op 0.69
mainnet_e58758 - phase0 processSlashingsReset 4.6450 us/op 6.7370 us/op 0.69
mainnet_e58758 - phase0 processRandaoMixesReset 15.057 us/op 6.7010 us/op 2.25
mainnet_e58758 - phase0 processHistoricalRootsUpdate 1.2300 us/op 921.00 ns/op 1.34
mainnet_e58758 - phase0 processParticipationRecordUpdates 7.0570 us/op 4.8540 us/op 1.45
mainnet_e58758 - phase0 afterProcessEpoch 37.973 ms/op 41.300 ms/op 0.92
phase0 processEffectiveBalanceUpdates - 250000 normalcase 1.4348 ms/op 1.3391 ms/op 1.07
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 4.5079 ms/op 2.5174 ms/op 1.79
altair processInactivityUpdates - 250000 normalcase 23.979 ms/op 19.748 ms/op 1.21
altair processInactivityUpdates - 250000 worstcase 24.841 ms/op 22.158 ms/op 1.12
phase0 processRegistryUpdates - 250000 normalcase 7.9540 us/op 10.395 us/op 0.77
phase0 processRegistryUpdates - 250000 badcase_full_deposits 326.84 us/op 449.40 us/op 0.73
phase0 processRegistryUpdates - 250000 worstcase 0.5 166.81 ms/op 129.27 ms/op 1.29
altair processRewardsAndPenalties - 250000 normalcase 62.923 ms/op 41.337 ms/op 1.52
altair processRewardsAndPenalties - 250000 worstcase 55.069 ms/op 42.066 ms/op 1.31
phase0 getAttestationDeltas - 250000 normalcase 9.4880 ms/op 7.9835 ms/op 1.19
phase0 getAttestationDeltas - 250000 worstcase 6.9593 ms/op 7.8072 ms/op 0.89
phase0 processSlashings - 250000 worstcase 106.35 us/op 94.721 us/op 1.12
altair processSyncCommitteeUpdates - 250000 116.83 ms/op 121.24 ms/op 0.96
BeaconState.hashTreeRoot - No change 482.00 ns/op 233.00 ns/op 2.07
BeaconState.hashTreeRoot - 1 full validator 182.33 us/op 96.098 us/op 1.90
BeaconState.hashTreeRoot - 32 full validator 2.0290 ms/op 1.3881 ms/op 1.46
BeaconState.hashTreeRoot - 512 full validator 15.711 ms/op 12.282 ms/op 1.28
BeaconState.hashTreeRoot - 1 validator.effectiveBalance 202.92 us/op 152.55 us/op 1.33
BeaconState.hashTreeRoot - 32 validator.effectiveBalance 3.0430 ms/op 1.7658 ms/op 1.72
BeaconState.hashTreeRoot - 512 validator.effectiveBalance 32.898 ms/op 27.362 ms/op 1.20
BeaconState.hashTreeRoot - 1 balances 163.87 us/op 126.53 us/op 1.30
BeaconState.hashTreeRoot - 32 balances 1.2994 ms/op 1.2297 ms/op 1.06
BeaconState.hashTreeRoot - 512 balances 10.104 ms/op 8.1773 ms/op 1.24
BeaconState.hashTreeRoot - 250000 balances 176.94 ms/op 172.94 ms/op 1.02
aggregationBits - 2048 els - zipIndexesInBitList 25.042 us/op 25.323 us/op 0.99
byteArrayEquals 32 48.198 ns/op 54.413 ns/op 0.89
Buffer.compare 32 15.759 ns/op 18.016 ns/op 0.87
byteArrayEquals 1024 1.2813 us/op 1.6088 us/op 0.80
Buffer.compare 1024 24.646 ns/op 24.943 ns/op 0.99
byteArrayEquals 16384 19.791 us/op 25.510 us/op 0.78
Buffer.compare 16384 196.69 ns/op 204.62 ns/op 0.96
byteArrayEquals 123687377 155.39 ms/op 194.31 ms/op 0.80
Buffer.compare 123687377 8.1751 ms/op 7.0454 ms/op 1.16
byteArrayEquals 32 - diff last byte 48.301 ns/op 53.928 ns/op 0.90
Buffer.compare 32 - diff last byte 17.244 ns/op 17.338 ns/op 0.99
byteArrayEquals 1024 - diff last byte 1.4304 us/op 1.6056 us/op 0.89
Buffer.compare 1024 - diff last byte 24.222 ns/op 25.173 ns/op 0.96
byteArrayEquals 16384 - diff last byte 22.483 us/op 25.612 us/op 0.88
Buffer.compare 16384 - diff last byte 196.88 ns/op 212.23 ns/op 0.93
byteArrayEquals 123687377 - diff last byte 150.59 ms/op 195.83 ms/op 0.77
Buffer.compare 123687377 - diff last byte 6.2207 ms/op 9.7336 ms/op 0.64
byteArrayEquals 32 - random bytes 5.3910 ns/op 5.6320 ns/op 0.96
Buffer.compare 32 - random bytes 15.731 ns/op 18.417 ns/op 0.85
byteArrayEquals 1024 - random bytes 4.8110 ns/op 5.4840 ns/op 0.88
Buffer.compare 1024 - random bytes 14.933 ns/op 18.145 ns/op 0.82
byteArrayEquals 16384 - random bytes 4.8450 ns/op 5.4970 ns/op 0.88
Buffer.compare 16384 - random bytes 14.943 ns/op 18.097 ns/op 0.83
byteArrayEquals 123687377 - random bytes 7.5800 ns/op 7.0800 ns/op 1.07
Buffer.compare 123687377 - random bytes 17.700 ns/op 20.420 ns/op 0.87
regular array get 100000 times 29.837 us/op 34.951 us/op 0.85
wrappedArray get 100000 times 29.885 us/op 35.059 us/op 0.85
arrayWithProxy get 100000 times 10.177 ms/op 14.104 ms/op 0.72
ssz.Root.equals 43.228 ns/op 48.700 ns/op 0.89
byteArrayEquals 38.367 ns/op 48.359 ns/op 0.79
Buffer.compare 8.8500 ns/op 10.955 ns/op 0.81
processSlot - 1 slots 14.104 us/op 21.920 us/op 0.64
processSlot - 32 slots 3.2201 ms/op 4.4545 ms/op 0.72
getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei 38.733 ms/op 41.989 ms/op 0.92
getCommitteeAssignments - req 1 vs - 250000 vc 1.7595 ms/op 2.2607 ms/op 0.78
getCommitteeAssignments - req 100 vs - 250000 vc 3.4839 ms/op 4.3883 ms/op 0.79
getCommitteeAssignments - req 1000 vs - 250000 vc 3.7714 ms/op 4.7451 ms/op 0.79
findModifiedValidators - 10000 modified validators 222.95 ms/op 294.89 ms/op 0.76
findModifiedValidators - 1000 modified validators 156.01 ms/op 213.70 ms/op 0.73
findModifiedValidators - 100 modified validators 150.57 ms/op 218.29 ms/op 0.69
findModifiedValidators - 10 modified validators 146.10 ms/op 199.23 ms/op 0.73
findModifiedValidators - 1 modified validators 143.95 ms/op 187.09 ms/op 0.77
findModifiedValidators - no difference 143.20 ms/op 199.79 ms/op 0.72
compare ViewDUs 3.5044 s/op 3.3272 s/op 1.05
compare each validator Uint8Array 1.5875 s/op 1.6694 s/op 0.95
compare ViewDU to Uint8Array 974.51 ms/op 980.33 ms/op 0.99
migrate state 1000000 validators, 24 modified, 0 new 721.07 ms/op 759.38 ms/op 0.95
migrate state 1000000 validators, 1700 modified, 1000 new 1.0847 s/op 1.0264 s/op 1.06
migrate state 1000000 validators, 3400 modified, 2000 new 1.2244 s/op 1.2349 s/op 0.99
migrate state 1500000 validators, 24 modified, 0 new 643.89 ms/op 776.39 ms/op 0.83
migrate state 1500000 validators, 1700 modified, 1000 new 915.77 ms/op 1.0286 s/op 0.89
migrate state 1500000 validators, 3400 modified, 2000 new 1.2621 s/op 1.2771 s/op 0.99
RootCache.getBlockRootAtSlot - 250000 vs - 7PWei 7.2900 ns/op 4.1900 ns/op 1.74
state getBlockRootAtSlot - 250000 vs - 7PWei 950.40 ns/op 701.60 ns/op 1.35
computeProposers - vc 250000 7.0421 ms/op 8.0638 ms/op 0.87
computeEpochShuffling - vc 250000 35.722 ms/op 41.727 ms/op 0.86
getNextSyncCommittee - vc 250000 125.16 ms/op 137.14 ms/op 0.91
computeSigningRoot for AttestationData 26.086 us/op 22.594 us/op 1.15
hash AttestationData serialized data then Buffer.toString(base64) 1.3925 us/op 1.5492 us/op 0.90
toHexString serialized data 857.78 ns/op 882.14 ns/op 0.97
Buffer.toString(base64) 192.60 ns/op 186.78 ns/op 1.03
nodejs block root to RootHex using toHex 130.18 ns/op 142.73 ns/op 0.91
nodejs block root to RootHex using toRootHex 89.100 ns/op 93.475 ns/op 0.95
browser block root to RootHex using the deprecated toHexString 228.32 ns/op 228.40 ns/op 1.00
browser block root to RootHex using toHex 173.30 ns/op 181.43 ns/op 0.96
browser block root to RootHex using toRootHex 163.62 ns/op 161.35 ns/op 1.01

by benchmarkbot/action

@eenagy
Copy link

eenagy commented Dec 2, 2024

I'm chipping in with some options I use for spinning up custom testnet and validator, that I didn't see in the docs.

-keystoresDir
--secretsDir
--disableKeystoresThreadPool

And for custom testnets:
--eth1.depositContractDeployBlock
--network.connectToDiscv5Bootnodes

I think one more new option is supernode which I don't know if lodestar supports, but generally, I see this option in many clients, but many of them hide it. Not sure if it's should be hidden or not.

Copy link

codecov bot commented Dec 2, 2024

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 48.51%. Comparing base (8922d55) to head (9a1873c).
Report is 4 commits behind head on unstable.

Additional details and impacted files
@@            Coverage Diff            @@
##           unstable    #7271   +/-   ##
=========================================
  Coverage     48.51%   48.51%           
=========================================
  Files           600      600           
  Lines         40138    40138           
  Branches       2058     2058           
=========================================
  Hits          19471    19471           
  Misses        20629    20629           
  Partials         38       38           

@nflaig
Copy link
Member Author

nflaig commented Dec 2, 2024

-keystoresDir
--secretsDir

Those should all not be relevant, you can just use the default values and only configure the storage location via --dataDir, I think unhiding every single one of the dir options would bloat the CLI reference docs and those are not relevant for 99% of users.

And disableKeystoresThreadPool makes the key import slightly faster if you are running in kurtosis but only if insecure keys are used which are really fast to decrypt, otherwise this will make the key import much slower.

And for custom testnets:

depositContractDeployBlock the default value for this is 0, I don't think it's required to set this at all for post-merge networks (which all new test networks are at this point).

--network.connectToDiscv5Bootnodes is a bit controversial as well as you should not have to set this, usually bootnodes are there to discover peers, not to use as peers (and many don't even run libp2p). So I would rather tend towards keeping this flag hidden.

Copy link
Member

@wemeetagain wemeetagain left a comment

Choose a reason for hiding this comment

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

LGTM

@nflaig nflaig merged commit 37c4287 into unstable Dec 3, 2024
20 checks passed
@nflaig nflaig deleted the nflaig/unhide-flags branch December 3, 2024 20:22
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