Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: add bootnode cli command #5876

Merged
merged 4 commits into from
Aug 23, 2023
Merged

feat: add bootnode cli command #5876

merged 4 commits into from
Aug 23, 2023

Conversation

wemeetagain
Copy link
Member

Motivation

Description

  • Add a lodestar bootnode cli command

@github-actions
Copy link
Contributor

github-actions bot commented Aug 11, 2023

Performance Report

✔️ no performance regression detected

🚀🚀 Significant benchmark improvement detected

Benchmark suite Current: 25a200d Previous: 8c6ad38 Ratio
forkChoice updateHead vc 600000 bc 64 eq 300000 21.183 ms/op 88.923 ms/op 0.24
Full benchmark results
Benchmark suite Current: 25a200d Previous: 8c6ad38 Ratio
getPubkeys - index2pubkey - req 1000 vs - 250000 vc 1.1938 ms/op 583.11 us/op 2.05
getPubkeys - validatorsArr - req 1000 vs - 250000 vc 141.03 us/op 118.29 us/op 1.19
BLS verify - blst-native 1.5518 ms/op 1.3179 ms/op 1.18
BLS verifyMultipleSignatures 3 - blst-native 3.3376 ms/op 2.6660 ms/op 1.25
BLS verifyMultipleSignatures 8 - blst-native 6.6747 ms/op 5.6243 ms/op 1.19
BLS verifyMultipleSignatures 32 - blst-native 25.312 ms/op 20.362 ms/op 1.24
BLS aggregatePubkeys 32 - blst-native 31.611 us/op 27.050 us/op 1.17
BLS aggregatePubkeys 128 - blst-native 118.84 us/op 106.80 us/op 1.11
getAttestationsForBlock 93.633 ms/op 97.151 ms/op 0.96
isKnown best case - 1 super set check 610.00 ns/op 633.00 ns/op 0.96
isKnown normal case - 2 super set checks 673.00 ns/op 607.00 ns/op 1.11
isKnown worse case - 16 super set checks 587.00 ns/op 615.00 ns/op 0.95
CheckpointStateCache - add get delete 6.9510 us/op 7.2140 us/op 0.96
validate api signedAggregateAndProof - struct 3.4218 ms/op 3.1097 ms/op 1.10
validate gossip signedAggregateAndProof - struct 3.4030 ms/op 3.0851 ms/op 1.10
validate api attestation - struct 1.7827 ms/op 1.4958 ms/op 1.19
validate gossip attestation - struct 1.7989 ms/op 1.5106 ms/op 1.19
pickEth1Vote - no votes 1.7552 ms/op 2.2464 ms/op 0.78
pickEth1Vote - max votes 14.888 ms/op 19.880 ms/op 0.75
pickEth1Vote - Eth1Data hashTreeRoot value x2048 12.660 ms/op 11.426 ms/op 1.11
pickEth1Vote - Eth1Data hashTreeRoot tree x2048 26.385 ms/op 24.787 ms/op 1.06
pickEth1Vote - Eth1Data fastSerialize value x2048 990.78 us/op 883.25 us/op 1.12
pickEth1Vote - Eth1Data fastSerialize tree x2048 8.3946 ms/op 12.534 ms/op 0.67
bytes32 toHexString 1.0570 us/op 902.00 ns/op 1.17
bytes32 Buffer.toString(hex) 456.00 ns/op 375.00 ns/op 1.22
bytes32 Buffer.toString(hex) from Uint8Array 738.00 ns/op 772.00 ns/op 0.96
bytes32 Buffer.toString(hex) + 0x 432.00 ns/op 424.00 ns/op 1.02
Object access 1 prop 0.27400 ns/op 0.28100 ns/op 0.98
Map access 1 prop 0.22800 ns/op 0.18500 ns/op 1.23
Object get x1000 11.085 ns/op 10.240 ns/op 1.08
Map get x1000 1.0010 ns/op 0.80800 ns/op 1.24
Object set x1000 87.517 ns/op 88.724 ns/op 0.99
Map set x1000 69.774 ns/op 64.521 ns/op 1.08
Return object 10000 times 0.32730 ns/op 0.30570 ns/op 1.07
Throw Error 10000 times 5.2271 us/op 4.4103 us/op 1.19
fastMsgIdFn sha256 / 200 bytes 4.3950 us/op 4.7120 us/op 0.93
fastMsgIdFn h32 xxhash / 200 bytes 535.00 ns/op 464.00 ns/op 1.15
fastMsgIdFn h64 xxhash / 200 bytes 505.00 ns/op 659.00 ns/op 0.77
fastMsgIdFn sha256 / 1000 bytes 15.039 us/op 12.731 us/op 1.18
fastMsgIdFn h32 xxhash / 1000 bytes 620.00 ns/op 651.00 ns/op 0.95
fastMsgIdFn h64 xxhash / 1000 bytes 600.00 ns/op 740.00 ns/op 0.81
fastMsgIdFn sha256 / 10000 bytes 131.66 us/op 122.45 us/op 1.08
fastMsgIdFn h32 xxhash / 10000 bytes 2.3320 us/op 2.1400 us/op 1.09
fastMsgIdFn h64 xxhash / 10000 bytes 1.6540 us/op 1.6330 us/op 1.01
enrSubnets - fastDeserialize 64 bits 1.8300 us/op 2.2500 us/op 0.81
enrSubnets - ssz BitVector 64 bits 624.00 ns/op 837.00 ns/op 0.75
enrSubnets - fastDeserialize 4 bits 285.00 ns/op 309.00 ns/op 0.92
enrSubnets - ssz BitVector 4 bits 658.00 ns/op 936.00 ns/op 0.70
prioritizePeers score -10:0 att 32-0.1 sync 2-0 133.87 us/op 165.98 us/op 0.81
prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 152.80 us/op 204.55 us/op 0.75
prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 214.70 us/op 293.21 us/op 0.73
prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 421.06 us/op 598.55 us/op 0.70
prioritizePeers score 0:0 att 64-1 sync 4-1 396.56 us/op 557.27 us/op 0.71
array of 16000 items push then shift 1.8737 us/op 2.1480 us/op 0.87
LinkedList of 16000 items push then shift 10.639 ns/op 15.605 ns/op 0.68
array of 16000 items push then pop 65.946 ns/op 98.577 ns/op 0.67
LinkedList of 16000 items push then pop 10.108 ns/op 12.996 ns/op 0.78
array of 24000 items push then shift 2.7432 us/op 3.3258 us/op 0.82
LinkedList of 24000 items push then shift 10.010 ns/op 17.562 ns/op 0.57
array of 24000 items push then pop 133.59 ns/op 198.26 ns/op 0.67
LinkedList of 24000 items push then pop 10.970 ns/op 12.932 ns/op 0.85
intersect bitArray bitLen 8 8.5520 ns/op 8.8160 ns/op 0.97
intersect array and set length 8 75.307 ns/op 99.065 ns/op 0.76
intersect bitArray bitLen 128 40.035 ns/op 42.202 ns/op 0.95
intersect array and set length 128 1.0812 us/op 1.2440 us/op 0.87
bitArray.getTrueBitIndexes() bitLen 128 1.8550 us/op 2.7640 us/op 0.67
bitArray.getTrueBitIndexes() bitLen 248 3.2160 us/op 4.6910 us/op 0.69
bitArray.getTrueBitIndexes() bitLen 512 7.0830 us/op 8.3870 us/op 0.84
Buffer.concat 32 items 1.4710 us/op 1.5760 us/op 0.93
Uint8Array.set 32 items 2.5090 us/op 3.2600 us/op 0.77
Set add up to 64 items then delete first 5.5537 us/op 5.3837 us/op 1.03
OrderedSet add up to 64 items then delete first 7.5979 us/op 7.1666 us/op 1.06
Set add up to 64 items then delete last 6.5147 us/op 5.8912 us/op 1.11
OrderedSet add up to 64 items then delete last 7.4513 us/op 8.4772 us/op 0.88
Set add up to 64 items then delete middle 5.9210 us/op 5.5665 us/op 1.06
OrderedSet add up to 64 items then delete middle 9.2298 us/op 9.3635 us/op 0.99
Set add up to 128 items then delete first 11.959 us/op 12.042 us/op 0.99
OrderedSet add up to 128 items then delete first 15.936 us/op 16.527 us/op 0.96
Set add up to 128 items then delete last 11.549 us/op 12.905 us/op 0.89
OrderedSet add up to 128 items then delete last 15.502 us/op 16.961 us/op 0.91
Set add up to 128 items then delete middle 11.793 us/op 11.264 us/op 1.05
OrderedSet add up to 128 items then delete middle 21.858 us/op 22.948 us/op 0.95
Set add up to 256 items then delete first 25.731 us/op 23.258 us/op 1.11
OrderedSet add up to 256 items then delete first 33.908 us/op 32.332 us/op 1.05
Set add up to 256 items then delete last 23.394 us/op 23.386 us/op 1.00
OrderedSet add up to 256 items then delete last 31.182 us/op 37.348 us/op 0.83
Set add up to 256 items then delete middle 23.662 us/op 24.414 us/op 0.97
OrderedSet add up to 256 items then delete middle 56.610 us/op 57.099 us/op 0.99
transfer serialized Status (84 B) 2.1820 us/op 3.3990 us/op 0.64
copy serialized Status (84 B) 1.8990 us/op 2.5660 us/op 0.74
transfer serialized SignedVoluntaryExit (112 B) 2.3440 us/op 3.1400 us/op 0.75
copy serialized SignedVoluntaryExit (112 B) 1.9270 us/op 2.4860 us/op 0.78
transfer serialized ProposerSlashing (416 B) 2.6020 us/op 3.2500 us/op 0.80
copy serialized ProposerSlashing (416 B) 2.6160 us/op 3.4880 us/op 0.75
transfer serialized Attestation (485 B) 2.6600 us/op 3.4950 us/op 0.76
copy serialized Attestation (485 B) 3.3110 us/op 3.6480 us/op 0.91
transfer serialized AttesterSlashing (33232 B) 2.7680 us/op 4.2810 us/op 0.65
copy serialized AttesterSlashing (33232 B) 8.7960 us/op 15.038 us/op 0.58
transfer serialized Small SignedBeaconBlock (128000 B) 3.4110 us/op 5.4080 us/op 0.63
copy serialized Small SignedBeaconBlock (128000 B) 21.638 us/op 45.354 us/op 0.48
transfer serialized Avg SignedBeaconBlock (200000 B) 4.6210 us/op 6.3970 us/op 0.72
copy serialized Avg SignedBeaconBlock (200000 B) 37.319 us/op 63.969 us/op 0.58
transfer serialized BlobsSidecar (524380 B) 5.1590 us/op 7.1090 us/op 0.73
copy serialized BlobsSidecar (524380 B) 140.62 us/op 199.05 us/op 0.71
transfer serialized Big SignedBeaconBlock (1000000 B) 5.4750 us/op 9.0040 us/op 0.61
copy serialized Big SignedBeaconBlock (1000000 B) 192.95 us/op 408.84 us/op 0.47
pass gossip attestations to forkchoice per slot 6.2704 ms/op 5.5674 ms/op 1.13
forkChoice updateHead vc 100000 bc 64 eq 0 820.72 us/op 759.34 us/op 1.08
forkChoice updateHead vc 600000 bc 64 eq 0 5.5301 ms/op 6.9538 ms/op 0.80
forkChoice updateHead vc 1000000 bc 64 eq 0 8.3595 ms/op 11.220 ms/op 0.75
forkChoice updateHead vc 600000 bc 320 eq 0 6.8509 ms/op 7.6581 ms/op 0.89
forkChoice updateHead vc 600000 bc 1200 eq 0 5.1793 ms/op 7.3551 ms/op 0.70
forkChoice updateHead vc 600000 bc 7200 eq 0 6.4922 ms/op 10.010 ms/op 0.65
forkChoice updateHead vc 600000 bc 64 eq 1000 14.647 ms/op 14.429 ms/op 1.02
forkChoice updateHead vc 600000 bc 64 eq 10000 16.000 ms/op 16.235 ms/op 0.99
forkChoice updateHead vc 600000 bc 64 eq 300000 21.183 ms/op 88.923 ms/op 0.24
computeDeltas 500000 validators 300 proto nodes 7.6004 ms/op 8.3456 ms/op 0.91
computeDeltas 500000 validators 1200 proto nodes 7.4017 ms/op 7.7754 ms/op 0.95
computeDeltas 500000 validators 7200 proto nodes 7.3748 ms/op 7.5948 ms/op 0.97
computeDeltas 750000 validators 300 proto nodes 11.341 ms/op 10.087 ms/op 1.12
computeDeltas 750000 validators 1200 proto nodes 11.241 ms/op 10.342 ms/op 1.09
computeDeltas 750000 validators 7200 proto nodes 11.362 ms/op 10.366 ms/op 1.10
computeDeltas 1400000 validators 300 proto nodes 20.701 ms/op 19.346 ms/op 1.07
computeDeltas 1400000 validators 1200 proto nodes 21.051 ms/op 18.657 ms/op 1.13
computeDeltas 1400000 validators 7200 proto nodes 19.989 ms/op 19.874 ms/op 1.01
computeDeltas 2100000 validators 300 proto nodes 29.754 ms/op 27.885 ms/op 1.07
computeDeltas 2100000 validators 1200 proto nodes 31.555 ms/op 27.596 ms/op 1.14
computeDeltas 2100000 validators 7200 proto nodes 32.520 ms/op 27.501 ms/op 1.18
computeProposerBoostScoreFromBalances 500000 validators 3.8048 ms/op 3.4304 ms/op 1.11
computeProposerBoostScoreFromBalances 750000 validators 3.7656 ms/op 3.3827 ms/op 1.11
computeProposerBoostScoreFromBalances 1400000 validators 3.6058 ms/op 3.7896 ms/op 0.95
computeProposerBoostScoreFromBalances 2100000 validators 4.1207 ms/op 3.7836 ms/op 1.09
altair processAttestation - 250000 vs - 7PWei normalcase 4.8399 ms/op 2.5830 ms/op 1.87
altair processAttestation - 250000 vs - 7PWei worstcase 7.6102 ms/op 4.2656 ms/op 1.78
altair processAttestation - setStatus - 1/6 committees join 274.88 us/op 186.17 us/op 1.48
altair processAttestation - setStatus - 1/3 committees join 458.48 us/op 354.21 us/op 1.29
altair processAttestation - setStatus - 1/2 committees join 703.18 us/op 494.12 us/op 1.42
altair processAttestation - setStatus - 2/3 committees join 754.04 us/op 621.04 us/op 1.21
altair processAttestation - setStatus - 4/5 committees join 984.18 us/op 852.86 us/op 1.15
altair processAttestation - setStatus - 100% committees join 1.2649 ms/op 1.0013 ms/op 1.26
altair processBlock - 250000 vs - 7PWei normalcase 12.532 ms/op 10.393 ms/op 1.21
altair processBlock - 250000 vs - 7PWei normalcase hashState 20.805 ms/op 19.884 ms/op 1.05
altair processBlock - 250000 vs - 7PWei worstcase 51.678 ms/op 42.433 ms/op 1.22
altair processBlock - 250000 vs - 7PWei worstcase hashState 81.104 ms/op 67.993 ms/op 1.19
phase0 processBlock - 250000 vs - 7PWei normalcase 3.6799 ms/op 3.1210 ms/op 1.18
phase0 processBlock - 250000 vs - 7PWei worstcase 41.262 ms/op 35.322 ms/op 1.17
altair processEth1Data - 250000 vs - 7PWei normalcase 753.59 us/op 666.95 us/op 1.13
getExpectedWithdrawals 250000 eb:1,eth1:1,we:0,wn:0,smpl:15 20.771 us/op 12.286 us/op 1.69
getExpectedWithdrawals 250000 eb:0.95,eth1:0.1,we:0.05,wn:0,smpl:219 69.174 us/op 93.928 us/op 0.74
getExpectedWithdrawals 250000 eb:0.95,eth1:0.3,we:0.05,wn:0,smpl:42 37.024 us/op 34.737 us/op 1.07
getExpectedWithdrawals 250000 eb:0.95,eth1:0.7,we:0.05,wn:0,smpl:18 24.405 us/op 21.408 us/op 1.14
getExpectedWithdrawals 250000 eb:0.1,eth1:0.1,we:0,wn:0,smpl:1020 187.39 us/op 220.03 us/op 0.85
getExpectedWithdrawals 250000 eb:0.03,eth1:0.03,we:0,wn:0,smpl:11777 1.7560 ms/op 1.4474 ms/op 1.21
getExpectedWithdrawals 250000 eb:0.01,eth1:0.01,we:0,wn:0,smpl:16384 2.1680 ms/op 2.2025 ms/op 0.98
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,smpl:16384 2.1138 ms/op 1.8636 ms/op 1.13
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,nocache,smpl:16384 6.1109 ms/op 5.4899 ms/op 1.11
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,smpl:16384 3.2302 ms/op 5.3710 ms/op 0.60
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,nocache,smpl:16384 9.6229 ms/op 8.5747 ms/op 1.12
Tree 40 250000 create 752.82 ms/op 514.08 ms/op 1.46
Tree 40 250000 get(125000) 228.15 ns/op 219.50 ns/op 1.04
Tree 40 250000 set(125000) 2.0995 us/op 1.3089 us/op 1.60
Tree 40 250000 toArray() 32.877 ms/op 23.388 ms/op 1.41
Tree 40 250000 iterate all - toArray() + loop 27.610 ms/op 24.119 ms/op 1.14
Tree 40 250000 iterate all - get(i) 91.957 ms/op 83.852 ms/op 1.10
MutableVector 250000 create 15.564 ms/op 14.481 ms/op 1.07
MutableVector 250000 get(125000) 7.5780 ns/op 6.8400 ns/op 1.11
MutableVector 250000 set(125000) 573.04 ns/op 339.05 ns/op 1.69
MutableVector 250000 toArray() 5.4530 ms/op 3.6200 ms/op 1.51
MutableVector 250000 iterate all - toArray() + loop 6.0967 ms/op 4.3904 ms/op 1.39
MutableVector 250000 iterate all - get(i) 1.9601 ms/op 1.6740 ms/op 1.17
Array 250000 create 5.6743 ms/op 3.9551 ms/op 1.43
Array 250000 clone - spread 5.0373 ms/op 1.3201 ms/op 3.82
Array 250000 get(125000) 1.0090 ns/op 0.62500 ns/op 1.61
Array 250000 set(125000) 1.8420 ns/op 0.72100 ns/op 2.55
Array 250000 iterate all - loop 96.892 us/op 110.69 us/op 0.88
effectiveBalanceIncrements clone Uint8Array 300000 84.253 us/op 45.593 us/op 1.85
effectiveBalanceIncrements clone MutableVector 300000 519.00 ns/op 385.00 ns/op 1.35
effectiveBalanceIncrements rw all Uint8Array 300000 210.54 us/op 187.52 us/op 1.12
effectiveBalanceIncrements rw all MutableVector 300000 161.62 ms/op 106.02 ms/op 1.52
phase0 afterProcessEpoch - 250000 vs - 7PWei 136.38 ms/op 138.88 ms/op 0.98
phase0 beforeProcessEpoch - 250000 vs - 7PWei 56.861 ms/op 40.303 ms/op 1.41
altair processEpoch - mainnet_e81889 434.34 ms/op 407.61 ms/op 1.07
mainnet_e81889 - altair beforeProcessEpoch 66.528 ms/op 92.367 ms/op 0.72
mainnet_e81889 - altair processJustificationAndFinalization 28.813 us/op 31.078 us/op 0.93
mainnet_e81889 - altair processInactivityUpdates 9.1486 ms/op 9.3057 ms/op 0.98
mainnet_e81889 - altair processRewardsAndPenalties 95.064 ms/op 82.088 ms/op 1.16
mainnet_e81889 - altair processRegistryUpdates 6.4320 us/op 6.1730 us/op 1.04
mainnet_e81889 - altair processSlashings 1.0550 us/op 908.00 ns/op 1.16
mainnet_e81889 - altair processEth1DataReset 1.4760 us/op 1.0470 us/op 1.41
mainnet_e81889 - altair processEffectiveBalanceUpdates 1.4566 ms/op 1.5316 ms/op 0.95
mainnet_e81889 - altair processSlashingsReset 6.4910 us/op 5.4910 us/op 1.18
mainnet_e81889 - altair processRandaoMixesReset 8.3440 us/op 7.8130 us/op 1.07
mainnet_e81889 - altair processHistoricalRootsUpdate 1.7370 us/op 1.3220 us/op 1.31
mainnet_e81889 - altair processParticipationFlagUpdates 4.2060 us/op 2.1760 us/op 1.93
mainnet_e81889 - altair processSyncCommitteeUpdates 1.5800 us/op 964.00 ns/op 1.64
mainnet_e81889 - altair afterProcessEpoch 178.67 ms/op 132.57 ms/op 1.35
capella processEpoch - mainnet_e217614 1.4514 s/op 1.1635 s/op 1.25
mainnet_e217614 - capella beforeProcessEpoch 348.73 ms/op 286.55 ms/op 1.22
mainnet_e217614 - capella processJustificationAndFinalization 25.579 us/op 25.480 us/op 1.00
mainnet_e217614 - capella processInactivityUpdates 29.736 ms/op 22.257 ms/op 1.34
mainnet_e217614 - capella processRewardsAndPenalties 383.34 ms/op 326.51 ms/op 1.17
mainnet_e217614 - capella processRegistryUpdates 34.189 us/op 33.520 us/op 1.02
mainnet_e217614 - capella processSlashings 1.5790 us/op 1.0420 us/op 1.52
mainnet_e217614 - capella processEth1DataReset 986.00 ns/op 843.00 ns/op 1.17
mainnet_e217614 - capella processEffectiveBalanceUpdates 5.2401 ms/op 4.4853 ms/op 1.17
mainnet_e217614 - capella processSlashingsReset 4.3490 us/op 3.4100 us/op 1.28
mainnet_e217614 - capella processRandaoMixesReset 10.971 us/op 6.8280 us/op 1.61
mainnet_e217614 - capella processHistoricalRootsUpdate 1.4480 us/op 789.00 ns/op 1.84
mainnet_e217614 - capella processParticipationFlagUpdates 10.751 us/op 4.2580 us/op 2.52
mainnet_e217614 - capella afterProcessEpoch 414.98 ms/op 356.94 ms/op 1.16
phase0 processEpoch - mainnet_e58758 476.32 ms/op 401.57 ms/op 1.19
mainnet_e58758 - phase0 beforeProcessEpoch 191.09 ms/op 173.45 ms/op 1.10
mainnet_e58758 - phase0 processJustificationAndFinalization 41.866 us/op 29.569 us/op 1.42
mainnet_e58758 - phase0 processRewardsAndPenalties 74.215 ms/op 51.914 ms/op 1.43
mainnet_e58758 - phase0 processRegistryUpdates 19.401 us/op 21.355 us/op 0.91
mainnet_e58758 - phase0 processSlashings 1.1570 us/op 1.4800 us/op 0.78
mainnet_e58758 - phase0 processEth1DataReset 1.0060 us/op 1.0350 us/op 0.97
mainnet_e58758 - phase0 processEffectiveBalanceUpdates 1.3163 ms/op 1.5271 ms/op 0.86
mainnet_e58758 - phase0 processSlashingsReset 6.3030 us/op 5.8890 us/op 1.07
mainnet_e58758 - phase0 processRandaoMixesReset 13.714 us/op 11.874 us/op 1.15
mainnet_e58758 - phase0 processHistoricalRootsUpdate 975.00 ns/op 1.5370 us/op 0.63
mainnet_e58758 - phase0 processParticipationRecordUpdates 10.103 us/op 7.3670 us/op 1.37
mainnet_e58758 - phase0 afterProcessEpoch 120.91 ms/op 117.37 ms/op 1.03
phase0 processEffectiveBalanceUpdates - 250000 normalcase 1.3848 ms/op 2.0920 ms/op 0.66
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 2.1116 ms/op 2.2833 ms/op 0.92
altair processInactivityUpdates - 250000 normalcase 35.551 ms/op 39.554 ms/op 0.90
altair processInactivityUpdates - 250000 worstcase 35.727 ms/op 30.971 ms/op 1.15
phase0 processRegistryUpdates - 250000 normalcase 16.313 us/op 14.919 us/op 1.09
phase0 processRegistryUpdates - 250000 badcase_full_deposits 461.99 us/op 436.78 us/op 1.06
phase0 processRegistryUpdates - 250000 worstcase 0.5 187.69 ms/op 173.65 ms/op 1.08
altair processRewardsAndPenalties - 250000 normalcase 90.743 ms/op 81.151 ms/op 1.12
altair processRewardsAndPenalties - 250000 worstcase 90.000 ms/op 88.723 ms/op 1.01
phase0 getAttestationDeltas - 250000 normalcase 10.755 ms/op 13.233 ms/op 0.81
phase0 getAttestationDeltas - 250000 worstcase 10.281 ms/op 12.633 ms/op 0.81
phase0 processSlashings - 250000 worstcase 2.7433 ms/op 3.4890 ms/op 0.79
altair processSyncCommitteeUpdates - 250000 184.63 ms/op 178.96 ms/op 1.03
BeaconState.hashTreeRoot - No change 355.00 ns/op 329.00 ns/op 1.08
BeaconState.hashTreeRoot - 1 full validator 64.590 us/op 56.799 us/op 1.14
BeaconState.hashTreeRoot - 32 full validator 637.46 us/op 603.49 us/op 1.06
BeaconState.hashTreeRoot - 512 full validator 7.5533 ms/op 7.1041 ms/op 1.06
BeaconState.hashTreeRoot - 1 validator.effectiveBalance 78.883 us/op 70.069 us/op 1.13
BeaconState.hashTreeRoot - 32 validator.effectiveBalance 1.0529 ms/op 1.0183 ms/op 1.03
BeaconState.hashTreeRoot - 512 validator.effectiveBalance 15.023 ms/op 13.428 ms/op 1.12
BeaconState.hashTreeRoot - 1 balances 58.146 us/op 56.504 us/op 1.03
BeaconState.hashTreeRoot - 32 balances 622.12 us/op 490.27 us/op 1.27
BeaconState.hashTreeRoot - 512 balances 6.0976 ms/op 5.7796 ms/op 1.06
BeaconState.hashTreeRoot - 250000 balances 89.800 ms/op 91.190 ms/op 0.98
aggregationBits - 2048 els - zipIndexesInBitList 26.688 us/op 28.384 us/op 0.94
regular array get 100000 times 51.626 us/op 46.821 us/op 1.10
wrappedArray get 100000 times 44.027 us/op 46.359 us/op 0.95
arrayWithProxy get 100000 times 22.304 ms/op 15.327 ms/op 1.46
ssz.Root.equals 315.00 ns/op 298.00 ns/op 1.06
byteArrayEquals 312.00 ns/op 275.00 ns/op 1.13
shuffle list - 16384 els 8.2805 ms/op 8.6454 ms/op 0.96
shuffle list - 250000 els 122.98 ms/op 114.65 ms/op 1.07
processSlot - 1 slots 12.336 us/op 12.421 us/op 0.99
processSlot - 32 slots 1.9191 ms/op 1.4523 ms/op 1.32
getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei 64.914 ms/op 66.370 ms/op 0.98
getCommitteeAssignments - req 1 vs - 250000 vc 3.1946 ms/op 2.7183 ms/op 1.18
getCommitteeAssignments - req 100 vs - 250000 vc 4.4517 ms/op 4.0481 ms/op 1.10
getCommitteeAssignments - req 1000 vs - 250000 vc 4.8711 ms/op 4.5978 ms/op 1.06
RootCache.getBlockRootAtSlot - 250000 vs - 7PWei 6.2400 ns/op 5.9900 ns/op 1.04
state getBlockRootAtSlot - 250000 vs - 7PWei 1.3711 us/op 1.0437 us/op 1.31
computeProposers - vc 250000 13.406 ms/op 10.148 ms/op 1.32
computeEpochShuffling - vc 250000 131.05 ms/op 132.95 ms/op 0.99
getNextSyncCommittee - vc 250000 204.47 ms/op 181.86 ms/op 1.12
computeSigningRoot for AttestationData 17.522 us/op 16.452 us/op 1.07
hash AttestationData serialized data then Buffer.toString(base64) 2.8914 us/op 2.6387 us/op 1.10
toHexString serialized data 1.4275 us/op 1.8381 us/op 0.78
Buffer.toString(base64) 293.36 ns/op 288.75 ns/op 1.02

by benchmarkbot/action

@philknows philknows added this to the v1.11.0 milestone Aug 15, 2023
@wemeetagain wemeetagain marked this pull request as ready for review August 18, 2023 15:33
@wemeetagain wemeetagain requested a review from a team as a code owner August 18, 2023 15:33
Copy link
Member

@nflaig nflaig left a comment

Choose a reason for hiding this comment

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

LGTM!

ip4AndIp6Nodes: ip4ip6,
unreachableNodes: unreachable,
});
}, 10_000);
Copy link
Contributor

Choose a reason for hiding this comment

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

Metrics should be done with prometheus as first medium, dumping to logs becomes noise for processes expected to run for days or weeks

Copy link
Member Author

Choose a reason for hiding this comment

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

Agree that metrics should be done with prometheus first. I think some logging can be useful tho.

I used this as reference: https://github.com/sigp/lighthouse/blob/dfcb3363c757671eb19d5f8e519b4b94ac74677a/boot_node/src/server.rs#L78-L121

@wemeetagain wemeetagain merged commit cac8bfa into unstable Aug 23, 2023
11 checks passed
@wemeetagain wemeetagain deleted the cayman/bootnode branch August 23, 2023 03:35
@wemeetagain
Copy link
Member Author

🎉 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.

Lodestar Bootnode Functionality
4 participants