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: update flag to pass builder url #6190

Merged
merged 2 commits into from
Dec 18, 2023
Merged

Conversation

nflaig
Copy link
Member

@nflaig nflaig commented Dec 14, 2023

Motivation

Lodestar only supports a single builder URL and silently removes fallback URLs if multiple are provided. This behavior is not transparent to the end user and we should be more explicit about it.

Description

Update flag to pass builder URL to --builder.url (previous flag is kept as alias)

Note that I explicitly removed the support for array and comma-separated values as I think it is better to throw an error on startup then to let the user have wrong assumptions that builder has a fallback configured. I don't know any setup that sets multiple builders but better to have an informative error.

Closes #6181

@nflaig nflaig requested a review from a team as a code owner December 14, 2023 09:01
Copy link

codecov bot commented Dec 14, 2023

Codecov Report

Merging #6190 (dded743) into unstable (5b38552) will not change coverage.
Report is 10 commits behind head on unstable.
The diff coverage is n/a.

Additional details and impacted files
@@            Coverage Diff            @@
##           unstable    #6190   +/-   ##
=========================================
  Coverage     90.35%   90.35%           
=========================================
  Files            78       78           
  Lines          8087     8087           
  Branches        490      490           
=========================================
  Hits           7307     7307           
  Misses          772      772           
  Partials          8        8           

Copy link
Contributor

github-actions bot commented Dec 14, 2023

Performance Report

✔️ no performance regression detected

Full benchmark results
Benchmark suite Current: e5fcc69 Previous: 4658348 Ratio
getPubkeys - index2pubkey - req 1000 vs - 250000 vc 538.94 us/op 882.70 us/op 0.61
getPubkeys - validatorsArr - req 1000 vs - 250000 vc 85.441 us/op 120.35 us/op 0.71
BLS verify - blst-native 1.3071 ms/op 1.4129 ms/op 0.93
BLS verifyMultipleSignatures 3 - blst-native 2.7221 ms/op 3.0208 ms/op 0.90
BLS verifyMultipleSignatures 8 - blst-native 5.9753 ms/op 6.7764 ms/op 0.88
BLS verifyMultipleSignatures 32 - blst-native 21.955 ms/op 25.414 ms/op 0.86
BLS verifyMultipleSignatures 64 - blst-native 43.382 ms/op 46.629 ms/op 0.93
BLS verifyMultipleSignatures 128 - blst-native 86.634 ms/op 95.842 ms/op 0.90
BLS deserializing 10000 signatures 943.84 ms/op 1.0122 s/op 0.93
BLS deserializing 100000 signatures 9.6151 s/op 9.7136 s/op 0.99
BLS verifyMultipleSignatures - same message - 3 - blst-native 1.4288 ms/op 1.4406 ms/op 0.99
BLS verifyMultipleSignatures - same message - 8 - blst-native 1.6786 ms/op 1.6743 ms/op 1.00
BLS verifyMultipleSignatures - same message - 32 - blst-native 2.5478 ms/op 2.5283 ms/op 1.01
BLS verifyMultipleSignatures - same message - 64 - blst-native 5.4530 ms/op 3.9022 ms/op 1.40
BLS verifyMultipleSignatures - same message - 128 - blst-native 6.4788 ms/op 6.2711 ms/op 1.03
BLS aggregatePubkeys 32 - blst-native 29.406 us/op 28.518 us/op 1.03
BLS aggregatePubkeys 128 - blst-native 109.02 us/op 111.93 us/op 0.97
getAttestationsForBlock 91.185 ms/op 71.687 ms/op 1.27
getSlashingsAndExits - default max 284.33 us/op 213.84 us/op 1.33
getSlashingsAndExits - 2k 737.54 us/op 629.77 us/op 1.17
proposeBlockBody type=full, size=empty 8.1515 ms/op 6.4094 ms/op 1.27
isKnown best case - 1 super set check 679.00 ns/op 392.00 ns/op 1.73
isKnown normal case - 2 super set checks 678.00 ns/op 442.00 ns/op 1.53
isKnown worse case - 16 super set checks 759.00 ns/op 431.00 ns/op 1.76
CheckpointStateCache - add get delete 7.3860 us/op 6.2830 us/op 1.18
validate api signedAggregateAndProof - struct 3.0559 ms/op 2.9800 ms/op 1.03
validate gossip signedAggregateAndProof - struct 2.9588 ms/op 2.9898 ms/op 0.99
validate gossip attestation - vc 640000 1.6661 ms/op 1.4403 ms/op 1.16
batch validate gossip attestation - vc 640000 - chunk 32 209.59 us/op 172.52 us/op 1.21
batch validate gossip attestation - vc 640000 - chunk 64 155.60 us/op 149.08 us/op 1.04
batch validate gossip attestation - vc 640000 - chunk 128 148.30 us/op 141.79 us/op 1.05
batch validate gossip attestation - vc 640000 - chunk 256 139.06 us/op 139.49 us/op 1.00
pickEth1Vote - no votes 1.4591 ms/op 1.4380 ms/op 1.01
pickEth1Vote - max votes 10.821 ms/op 13.693 ms/op 0.79
pickEth1Vote - Eth1Data hashTreeRoot value x2048 20.905 ms/op 19.386 ms/op 1.08
pickEth1Vote - Eth1Data hashTreeRoot tree x2048 34.110 ms/op 34.656 ms/op 0.98
pickEth1Vote - Eth1Data fastSerialize value x2048 692.80 us/op 727.01 us/op 0.95
pickEth1Vote - Eth1Data fastSerialize tree x2048 8.1431 ms/op 8.4885 ms/op 0.96
bytes32 toHexString 647.00 ns/op 552.00 ns/op 1.17
bytes32 Buffer.toString(hex) 317.00 ns/op 303.00 ns/op 1.05
bytes32 Buffer.toString(hex) from Uint8Array 472.00 ns/op 455.00 ns/op 1.04
bytes32 Buffer.toString(hex) + 0x 308.00 ns/op 309.00 ns/op 1.00
Object access 1 prop 0.17300 ns/op 0.17300 ns/op 1.00
Map access 1 prop 0.14800 ns/op 0.15400 ns/op 0.96
Object get x1000 7.7380 ns/op 7.5740 ns/op 1.02
Map get x1000 0.81400 ns/op 0.85500 ns/op 0.95
Object set x1000 54.641 ns/op 60.155 ns/op 0.91
Map set x1000 42.803 ns/op 49.719 ns/op 0.86
Return object 10000 times 0.24580 ns/op 0.25420 ns/op 0.97
Throw Error 10000 times 3.9560 us/op 3.9618 us/op 1.00
fastMsgIdFn sha256 / 200 bytes 3.3980 us/op 3.3960 us/op 1.00
fastMsgIdFn h32 xxhash / 200 bytes 298.00 ns/op 334.00 ns/op 0.89
fastMsgIdFn h64 xxhash / 200 bytes 363.00 ns/op 411.00 ns/op 0.88
fastMsgIdFn sha256 / 1000 bytes 11.803 us/op 12.253 us/op 0.96
fastMsgIdFn h32 xxhash / 1000 bytes 474.00 ns/op 501.00 ns/op 0.95
fastMsgIdFn h64 xxhash / 1000 bytes 443.00 ns/op 479.00 ns/op 0.92
fastMsgIdFn sha256 / 10000 bytes 104.29 us/op 112.67 us/op 0.93
fastMsgIdFn h32 xxhash / 10000 bytes 2.0200 us/op 2.0950 us/op 0.96
fastMsgIdFn h64 xxhash / 10000 bytes 1.3560 us/op 1.4890 us/op 0.91
send data - 1000 256B messages 21.585 ms/op 22.716 ms/op 0.95
send data - 1000 512B messages 27.803 ms/op 29.809 ms/op 0.93
send data - 1000 1024B messages 40.248 ms/op 46.404 ms/op 0.87
send data - 1000 1200B messages 34.353 ms/op 46.073 ms/op 0.75
send data - 1000 2048B messages 23.798 ms/op 50.023 ms/op 0.48
send data - 1000 4096B messages 40.572 ms/op 48.695 ms/op 0.83
send data - 1000 16384B messages 112.62 ms/op 121.81 ms/op 0.92
send data - 1000 65536B messages 399.76 ms/op 555.25 ms/op 0.72
enrSubnets - fastDeserialize 64 bits 1.3580 us/op 1.8390 us/op 0.74
enrSubnets - ssz BitVector 64 bits 429.00 ns/op 551.00 ns/op 0.78
enrSubnets - fastDeserialize 4 bits 168.00 ns/op 255.00 ns/op 0.66
enrSubnets - ssz BitVector 4 bits 409.00 ns/op 560.00 ns/op 0.73
prioritizePeers score -10:0 att 32-0.1 sync 2-0 101.61 us/op 120.19 us/op 0.85
prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 135.11 us/op 152.32 us/op 0.89
prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 164.70 us/op 227.55 us/op 0.72
prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 289.98 us/op 358.07 us/op 0.81
prioritizePeers score 0:0 att 64-1 sync 4-1 342.95 us/op 389.00 us/op 0.88
array of 16000 items push then shift 1.6215 us/op 1.7831 us/op 0.91
LinkedList of 16000 items push then shift 8.8350 ns/op 9.9810 ns/op 0.89
array of 16000 items push then pop 97.578 ns/op 109.65 ns/op 0.89
LinkedList of 16000 items push then pop 9.0190 ns/op 9.7930 ns/op 0.92
array of 24000 items push then shift 2.4718 us/op 2.6875 us/op 0.92
LinkedList of 24000 items push then shift 8.7060 ns/op 10.010 ns/op 0.87
array of 24000 items push then pop 115.81 ns/op 150.97 ns/op 0.77
LinkedList of 24000 items push then pop 8.6810 ns/op 9.3180 ns/op 0.93
intersect bitArray bitLen 8 6.4560 ns/op 6.8220 ns/op 0.95
intersect array and set length 8 64.432 ns/op 77.427 ns/op 0.83
intersect bitArray bitLen 128 33.720 ns/op 36.184 ns/op 0.93
intersect array and set length 128 868.53 ns/op 1.1185 us/op 0.78
bitArray.getTrueBitIndexes() bitLen 128 1.5330 us/op 1.8200 us/op 0.84
bitArray.getTrueBitIndexes() bitLen 248 2.4010 us/op 3.0830 us/op 0.78
bitArray.getTrueBitIndexes() bitLen 512 5.1490 us/op 5.8150 us/op 0.89
Buffer.concat 32 items 920.00 ns/op 1.0460 us/op 0.88
Uint8Array.set 32 items 1.5290 us/op 2.0830 us/op 0.73
Set add up to 64 items then delete first 4.2732 us/op 4.8910 us/op 0.87
OrderedSet add up to 64 items then delete first 5.4676 us/op 6.5355 us/op 0.84
Set add up to 64 items then delete last 4.5650 us/op 5.1979 us/op 0.88
OrderedSet add up to 64 items then delete last 5.8368 us/op 6.6742 us/op 0.87
Set add up to 64 items then delete middle 4.5709 us/op 5.1421 us/op 0.89
OrderedSet add up to 64 items then delete middle 7.1709 us/op 8.4158 us/op 0.85
Set add up to 128 items then delete first 9.5189 us/op 10.801 us/op 0.88
OrderedSet add up to 128 items then delete first 12.394 us/op 15.508 us/op 0.80
Set add up to 128 items then delete last 9.4604 us/op 11.019 us/op 0.86
OrderedSet add up to 128 items then delete last 11.448 us/op 13.310 us/op 0.86
Set add up to 128 items then delete middle 9.3619 us/op 10.886 us/op 0.86
OrderedSet add up to 128 items then delete middle 18.130 us/op 19.622 us/op 0.92
Set add up to 256 items then delete first 19.090 us/op 21.072 us/op 0.91
OrderedSet add up to 256 items then delete first 25.210 us/op 27.862 us/op 0.90
Set add up to 256 items then delete last 18.365 us/op 21.466 us/op 0.86
OrderedSet add up to 256 items then delete last 23.159 us/op 25.540 us/op 0.91
Set add up to 256 items then delete middle 17.985 us/op 19.239 us/op 0.93
OrderedSet add up to 256 items then delete middle 44.431 us/op 51.681 us/op 0.86
transfer serialized Status (84 B) 1.7180 us/op 1.8330 us/op 0.94
copy serialized Status (84 B) 1.4360 us/op 1.6010 us/op 0.90
transfer serialized SignedVoluntaryExit (112 B) 1.8280 us/op 1.9120 us/op 0.96
copy serialized SignedVoluntaryExit (112 B) 1.4660 us/op 1.6830 us/op 0.87
transfer serialized ProposerSlashing (416 B) 1.9570 us/op 2.1880 us/op 0.89
copy serialized ProposerSlashing (416 B) 1.7600 us/op 2.1440 us/op 0.82
transfer serialized Attestation (485 B) 2.1790 us/op 2.2670 us/op 0.96
copy serialized Attestation (485 B) 2.1270 us/op 3.1110 us/op 0.68
transfer serialized AttesterSlashing (33232 B) 2.2520 us/op 3.1600 us/op 0.71
copy serialized AttesterSlashing (33232 B) 5.6270 us/op 6.8690 us/op 0.82
transfer serialized Small SignedBeaconBlock (128000 B) 2.4390 us/op 3.2410 us/op 0.75
copy serialized Small SignedBeaconBlock (128000 B) 13.918 us/op 20.516 us/op 0.68
transfer serialized Avg SignedBeaconBlock (200000 B) 2.9610 us/op 3.6510 us/op 0.81
copy serialized Avg SignedBeaconBlock (200000 B) 20.619 us/op 30.211 us/op 0.68
transfer serialized BlobsSidecar (524380 B) 2.9540 us/op 3.7160 us/op 0.79
copy serialized BlobsSidecar (524380 B) 84.294 us/op 146.42 us/op 0.58
transfer serialized Big SignedBeaconBlock (1000000 B) 2.9870 us/op 3.9060 us/op 0.76
copy serialized Big SignedBeaconBlock (1000000 B) 155.80 us/op 440.02 us/op 0.35
pass gossip attestations to forkchoice per slot 4.0067 ms/op 4.2543 ms/op 0.94
forkChoice updateHead vc 100000 bc 64 eq 0 667.38 us/op 822.73 us/op 0.81
forkChoice updateHead vc 600000 bc 64 eq 0 4.3909 ms/op 4.4371 ms/op 0.99
forkChoice updateHead vc 1000000 bc 64 eq 0 7.1441 ms/op 7.6048 ms/op 0.94
forkChoice updateHead vc 600000 bc 320 eq 0 4.0884 ms/op 4.8353 ms/op 0.85
forkChoice updateHead vc 600000 bc 1200 eq 0 4.3318 ms/op 4.9266 ms/op 0.88
forkChoice updateHead vc 600000 bc 7200 eq 0 5.1992 ms/op 5.8589 ms/op 0.89
forkChoice updateHead vc 600000 bc 64 eq 1000 11.234 ms/op 12.515 ms/op 0.90
forkChoice updateHead vc 600000 bc 64 eq 10000 11.887 ms/op 12.687 ms/op 0.94
forkChoice updateHead vc 600000 bc 64 eq 300000 16.308 ms/op 20.370 ms/op 0.80
computeDeltas 500000 validators 300 proto nodes 6.5148 ms/op 7.3850 ms/op 0.88
computeDeltas 500000 validators 1200 proto nodes 6.4478 ms/op 7.5132 ms/op 0.86
computeDeltas 500000 validators 7200 proto nodes 6.4345 ms/op 7.1197 ms/op 0.90
computeDeltas 750000 validators 300 proto nodes 9.6529 ms/op 10.983 ms/op 0.88
computeDeltas 750000 validators 1200 proto nodes 9.4550 ms/op 10.807 ms/op 0.87
computeDeltas 750000 validators 7200 proto nodes 9.7203 ms/op 10.959 ms/op 0.89
computeDeltas 1400000 validators 300 proto nodes 18.581 ms/op 21.770 ms/op 0.85
computeDeltas 1400000 validators 1200 proto nodes 18.294 ms/op 20.724 ms/op 0.88
computeDeltas 1400000 validators 7200 proto nodes 18.463 ms/op 20.340 ms/op 0.91
computeDeltas 2100000 validators 300 proto nodes 28.298 ms/op 30.408 ms/op 0.93
computeDeltas 2100000 validators 1200 proto nodes 28.614 ms/op 30.126 ms/op 0.95
computeDeltas 2100000 validators 7200 proto nodes 28.906 ms/op 30.063 ms/op 0.96
computeProposerBoostScoreFromBalances 500000 validators 3.7314 ms/op 3.9348 ms/op 0.95
computeProposerBoostScoreFromBalances 750000 validators 3.7428 ms/op 3.9708 ms/op 0.94
computeProposerBoostScoreFromBalances 1400000 validators 3.7483 ms/op 4.0003 ms/op 0.94
computeProposerBoostScoreFromBalances 2100000 validators 3.7221 ms/op 3.9232 ms/op 0.95
altair processAttestation - 250000 vs - 7PWei normalcase 2.1952 ms/op 2.3746 ms/op 0.92
altair processAttestation - 250000 vs - 7PWei worstcase 3.5210 ms/op 3.8248 ms/op 0.92
altair processAttestation - setStatus - 1/6 committees join 184.99 us/op 155.76 us/op 1.19
altair processAttestation - setStatus - 1/3 committees join 356.22 us/op 295.18 us/op 1.21
altair processAttestation - setStatus - 1/2 committees join 465.95 us/op 396.45 us/op 1.18
altair processAttestation - setStatus - 2/3 committees join 592.13 us/op 488.79 us/op 1.21
altair processAttestation - setStatus - 4/5 committees join 821.16 us/op 678.30 us/op 1.21
altair processAttestation - setStatus - 100% committees join 934.69 us/op 817.90 us/op 1.14
altair processBlock - 250000 vs - 7PWei normalcase 10.597 ms/op 11.305 ms/op 0.94
altair processBlock - 250000 vs - 7PWei normalcase hashState 35.601 ms/op 40.306 ms/op 0.88
altair processBlock - 250000 vs - 7PWei worstcase 36.682 ms/op 40.115 ms/op 0.91
altair processBlock - 250000 vs - 7PWei worstcase hashState 92.979 ms/op 102.61 ms/op 0.91
phase0 processBlock - 250000 vs - 7PWei normalcase 2.9002 ms/op 2.6923 ms/op 1.08
phase0 processBlock - 250000 vs - 7PWei worstcase 33.184 ms/op 33.188 ms/op 1.00
altair processEth1Data - 250000 vs - 7PWei normalcase 739.98 us/op 692.00 us/op 1.07
getExpectedWithdrawals 250000 eb:1,eth1:1,we:0,wn:0,smpl:15 17.222 us/op 9.6230 us/op 1.79
getExpectedWithdrawals 250000 eb:0.95,eth1:0.1,we:0.05,wn:0,smpl:219 80.963 us/op 73.695 us/op 1.10
getExpectedWithdrawals 250000 eb:0.95,eth1:0.3,we:0.05,wn:0,smpl:42 23.824 us/op 26.418 us/op 0.90
getExpectedWithdrawals 250000 eb:0.95,eth1:0.7,we:0.05,wn:0,smpl:18 15.419 us/op 15.115 us/op 1.02
getExpectedWithdrawals 250000 eb:0.1,eth1:0.1,we:0,wn:0,smpl:1020 249.12 us/op 195.04 us/op 1.28
getExpectedWithdrawals 250000 eb:0.03,eth1:0.03,we:0,wn:0,smpl:11777 1.6949 ms/op 1.2987 ms/op 1.31
getExpectedWithdrawals 250000 eb:0.01,eth1:0.01,we:0,wn:0,smpl:16384 2.2151 ms/op 1.8292 ms/op 1.21
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,smpl:16384 1.7094 ms/op 1.5619 ms/op 1.09
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,nocache,smpl:16384 4.5786 ms/op 3.5488 ms/op 1.29
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,smpl:16384 2.9100 ms/op 2.7979 ms/op 1.04
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,nocache,smpl:16384 6.2810 ms/op 6.3707 ms/op 0.99
Tree 40 250000 create 384.68 ms/op 364.58 ms/op 1.06
Tree 40 250000 get(125000) 212.68 ns/op 205.96 ns/op 1.03
Tree 40 250000 set(125000) 1.1145 us/op 1.0673 us/op 1.04
Tree 40 250000 toArray() 23.852 ms/op 20.403 ms/op 1.17
Tree 40 250000 iterate all - toArray() + loop 26.354 ms/op 20.892 ms/op 1.26
Tree 40 250000 iterate all - get(i) 79.304 ms/op 70.407 ms/op 1.13
MutableVector 250000 create 22.938 ms/op 15.209 ms/op 1.51
MutableVector 250000 get(125000) 7.4080 ns/op 6.6350 ns/op 1.12
MutableVector 250000 set(125000) 312.24 ns/op 293.36 ns/op 1.06
MutableVector 250000 toArray() 3.5346 ms/op 3.3986 ms/op 1.04
MutableVector 250000 iterate all - toArray() + loop 3.4831 ms/op 5.8806 ms/op 0.59
MutableVector 250000 iterate all - get(i) 1.5592 ms/op 1.5632 ms/op 1.00
Array 250000 create 3.3348 ms/op 3.0244 ms/op 1.10
Array 250000 clone - spread 1.2939 ms/op 1.2683 ms/op 1.02
Array 250000 get(125000) 1.0970 ns/op 1.0620 ns/op 1.03
Array 250000 set(125000) 4.3480 ns/op 4.2250 ns/op 1.03
Array 250000 iterate all - loop 168.41 us/op 169.60 us/op 0.99
effectiveBalanceIncrements clone Uint8Array 300000 39.260 us/op 25.863 us/op 1.52
effectiveBalanceIncrements clone MutableVector 300000 409.00 ns/op 365.00 ns/op 1.12
effectiveBalanceIncrements rw all Uint8Array 300000 209.93 us/op 211.60 us/op 0.99
effectiveBalanceIncrements rw all MutableVector 300000 164.95 ms/op 84.749 ms/op 1.95
phase0 afterProcessEpoch - 250000 vs - 7PWei 127.23 ms/op 117.50 ms/op 1.08
phase0 beforeProcessEpoch - 250000 vs - 7PWei 63.040 ms/op 54.913 ms/op 1.15
altair processEpoch - mainnet_e81889 685.26 ms/op 491.14 ms/op 1.40
mainnet_e81889 - altair beforeProcessEpoch 116.35 ms/op 88.570 ms/op 1.31
mainnet_e81889 - altair processJustificationAndFinalization 29.411 us/op 16.587 us/op 1.77
mainnet_e81889 - altair processInactivityUpdates 8.5782 ms/op 6.8458 ms/op 1.25
mainnet_e81889 - altair processRewardsAndPenalties 82.879 ms/op 66.975 ms/op 1.24
mainnet_e81889 - altair processRegistryUpdates 6.7420 us/op 2.6990 us/op 2.50
mainnet_e81889 - altair processSlashings 809.00 ns/op 381.00 ns/op 2.12
mainnet_e81889 - altair processEth1DataReset 1.0060 us/op 440.00 ns/op 2.29
mainnet_e81889 - altair processEffectiveBalanceUpdates 1.7786 ms/op 1.4510 ms/op 1.23
mainnet_e81889 - altair processSlashingsReset 4.4500 us/op 3.3780 us/op 1.32
mainnet_e81889 - altair processRandaoMixesReset 6.9260 us/op 5.2960 us/op 1.31
mainnet_e81889 - altair processHistoricalRootsUpdate 946.00 ns/op 656.00 ns/op 1.44
mainnet_e81889 - altair processParticipationFlagUpdates 3.0410 us/op 2.3550 us/op 1.29
mainnet_e81889 - altair processSyncCommitteeUpdates 1.1420 us/op 676.00 ns/op 1.69
mainnet_e81889 - altair afterProcessEpoch 125.12 ms/op 125.40 ms/op 1.00
capella processEpoch - mainnet_e217614 2.2361 s/op 2.2830 s/op 0.98
mainnet_e217614 - capella beforeProcessEpoch 505.88 ms/op 507.27 ms/op 1.00
mainnet_e217614 - capella processJustificationAndFinalization 22.753 us/op 15.519 us/op 1.47
mainnet_e217614 - capella processInactivityUpdates 27.399 ms/op 21.027 ms/op 1.30
mainnet_e217614 - capella processRewardsAndPenalties 412.21 ms/op 424.59 ms/op 0.97
mainnet_e217614 - capella processRegistryUpdates 34.505 us/op 22.098 us/op 1.56
mainnet_e217614 - capella processSlashings 523.00 ns/op 888.00 ns/op 0.59
mainnet_e217614 - capella processEth1DataReset 445.00 ns/op 398.00 ns/op 1.12
mainnet_e217614 - capella processEffectiveBalanceUpdates 6.1038 ms/op 6.1410 ms/op 0.99
mainnet_e217614 - capella processSlashingsReset 3.8780 us/op 3.6900 us/op 1.05
mainnet_e217614 - capella processRandaoMixesReset 4.2780 us/op 4.6470 us/op 0.92
mainnet_e217614 - capella processHistoricalRootsUpdate 951.00 ns/op 472.00 ns/op 2.01
mainnet_e217614 - capella processParticipationFlagUpdates 1.7820 us/op 1.4450 us/op 1.23
mainnet_e217614 - capella afterProcessEpoch 332.12 ms/op 317.27 ms/op 1.05
phase0 processEpoch - mainnet_e58758 493.76 ms/op 463.71 ms/op 1.06
mainnet_e58758 - phase0 beforeProcessEpoch 139.76 ms/op 131.53 ms/op 1.06
mainnet_e58758 - phase0 processJustificationAndFinalization 21.623 us/op 16.907 us/op 1.28
mainnet_e58758 - phase0 processRewardsAndPenalties 42.611 ms/op 53.273 ms/op 0.80
mainnet_e58758 - phase0 processRegistryUpdates 14.112 us/op 23.246 us/op 0.61
mainnet_e58758 - phase0 processSlashings 656.00 ns/op 718.00 ns/op 0.91
mainnet_e58758 - phase0 processEth1DataReset 527.00 ns/op 1.1730 us/op 0.45
mainnet_e58758 - phase0 processEffectiveBalanceUpdates 1.2111 ms/op 1.1838 ms/op 1.02
mainnet_e58758 - phase0 processSlashingsReset 4.2940 us/op 3.2500 us/op 1.32
mainnet_e58758 - phase0 processRandaoMixesReset 6.2340 us/op 5.3970 us/op 1.16
mainnet_e58758 - phase0 processHistoricalRootsUpdate 711.00 ns/op 490.00 ns/op 1.45
mainnet_e58758 - phase0 processParticipationRecordUpdates 4.7320 us/op 5.5510 us/op 0.85
mainnet_e58758 - phase0 afterProcessEpoch 102.11 ms/op 101.45 ms/op 1.01
phase0 processEffectiveBalanceUpdates - 250000 normalcase 1.4275 ms/op 1.4237 ms/op 1.00
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 1.4768 ms/op 1.4887 ms/op 0.99
altair processInactivityUpdates - 250000 normalcase 24.234 ms/op 26.112 ms/op 0.93
altair processInactivityUpdates - 250000 worstcase 25.179 ms/op 27.046 ms/op 0.93
phase0 processRegistryUpdates - 250000 normalcase 14.080 us/op 9.7150 us/op 1.45
phase0 processRegistryUpdates - 250000 badcase_full_deposits 412.18 us/op 390.29 us/op 1.06
phase0 processRegistryUpdates - 250000 worstcase 0.5 161.80 ms/op 120.32 ms/op 1.34
altair processRewardsAndPenalties - 250000 normalcase 60.282 ms/op 58.650 ms/op 1.03
altair processRewardsAndPenalties - 250000 worstcase 57.878 ms/op 57.520 ms/op 1.01
phase0 getAttestationDeltas - 250000 normalcase 12.088 ms/op 10.101 ms/op 1.20
phase0 getAttestationDeltas - 250000 worstcase 11.416 ms/op 10.058 ms/op 1.13
phase0 processSlashings - 250000 worstcase 134.58 us/op 95.215 us/op 1.41
altair processSyncCommitteeUpdates - 250000 167.36 ms/op 175.48 ms/op 0.95
BeaconState.hashTreeRoot - No change 283.00 ns/op 272.00 ns/op 1.04
BeaconState.hashTreeRoot - 1 full validator 169.75 us/op 129.98 us/op 1.31
BeaconState.hashTreeRoot - 32 full validator 1.6474 ms/op 1.4092 ms/op 1.17
BeaconState.hashTreeRoot - 512 full validator 18.327 ms/op 13.575 ms/op 1.35
BeaconState.hashTreeRoot - 1 validator.effectiveBalance 223.50 us/op 152.07 us/op 1.47
BeaconState.hashTreeRoot - 32 validator.effectiveBalance 3.1532 ms/op 2.1238 ms/op 1.48
BeaconState.hashTreeRoot - 512 validator.effectiveBalance 38.131 ms/op 28.175 ms/op 1.35
BeaconState.hashTreeRoot - 1 balances 177.55 us/op 143.13 us/op 1.24
BeaconState.hashTreeRoot - 32 balances 1.7226 ms/op 1.2551 ms/op 1.37
BeaconState.hashTreeRoot - 512 balances 14.295 ms/op 12.253 ms/op 1.17
BeaconState.hashTreeRoot - 250000 balances 222.13 ms/op 235.73 ms/op 0.94
aggregationBits - 2048 els - zipIndexesInBitList 20.372 us/op 16.370 us/op 1.24
byteArrayEquals 32 78.801 ns/op 74.860 ns/op 1.05
Buffer.compare 32 56.323 ns/op 56.012 ns/op 1.01
byteArrayEquals 1024 2.1274 us/op 2.0292 us/op 1.05
Buffer.compare 1024 74.396 ns/op 71.329 ns/op 1.04
byteArrayEquals 16384 32.871 us/op 32.293 us/op 1.02
Buffer.compare 16384 261.33 ns/op 261.50 ns/op 1.00
byteArrayEquals 123687377 251.72 ms/op 240.13 ms/op 1.05
Buffer.compare 123687377 8.2362 ms/op 6.0344 ms/op 1.36
byteArrayEquals 32 - diff last byte 80.895 ns/op 70.432 ns/op 1.15
Buffer.compare 32 - diff last byte 58.712 ns/op 55.944 ns/op 1.05
byteArrayEquals 1024 - diff last byte 2.1152 us/op 1.9874 us/op 1.06
Buffer.compare 1024 - diff last byte 75.504 ns/op 70.364 ns/op 1.07
byteArrayEquals 16384 - diff last byte 34.378 us/op 31.684 us/op 1.09
Buffer.compare 16384 - diff last byte 258.98 ns/op 270.69 ns/op 0.96
byteArrayEquals 123687377 - diff last byte 253.38 ms/op 249.41 ms/op 1.02
Buffer.compare 123687377 - diff last byte 7.9392 ms/op 6.1991 ms/op 1.28
byteArrayEquals 32 - random bytes 5.4560 ns/op 5.2710 ns/op 1.04
Buffer.compare 32 - random bytes 62.108 ns/op 59.580 ns/op 1.04
byteArrayEquals 1024 - random bytes 5.8470 ns/op 5.1280 ns/op 1.14
Buffer.compare 1024 - random bytes 61.537 ns/op 58.982 ns/op 1.04
byteArrayEquals 16384 - random bytes 5.8230 ns/op 5.0890 ns/op 1.14
Buffer.compare 16384 - random bytes 61.586 ns/op 58.769 ns/op 1.05
byteArrayEquals 123687377 - random bytes 8.6200 ns/op 8.2000 ns/op 1.05
Buffer.compare 123687377 - random bytes 64.110 ns/op 62.110 ns/op 1.03
regular array get 100000 times 45.571 us/op 43.527 us/op 1.05
wrappedArray get 100000 times 45.985 us/op 43.518 us/op 1.06
arrayWithProxy get 100000 times 14.147 ms/op 13.787 ms/op 1.03
ssz.Root.equals 55.274 ns/op 53.000 ns/op 1.04
byteArrayEquals 56.018 ns/op 52.130 ns/op 1.07
Buffer.compare 12.022 ns/op 10.666 ns/op 1.13
shuffle list - 16384 els 7.3158 ms/op 6.9635 ms/op 1.05
shuffle list - 250000 els 104.41 ms/op 102.05 ms/op 1.02
processSlot - 1 slots 18.600 us/op 17.018 us/op 1.09
processSlot - 32 slots 4.1672 ms/op 3.5627 ms/op 1.17
getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei 73.834 ms/op 58.614 ms/op 1.26
getCommitteeAssignments - req 1 vs - 250000 vc 2.5654 ms/op 2.4704 ms/op 1.04
getCommitteeAssignments - req 100 vs - 250000 vc 3.7817 ms/op 3.6362 ms/op 1.04
getCommitteeAssignments - req 1000 vs - 250000 vc 4.2099 ms/op 4.0091 ms/op 1.05
findModifiedValidators - 10000 modified validators 561.34 ms/op 533.52 ms/op 1.05
findModifiedValidators - 1000 modified validators 523.61 ms/op 440.96 ms/op 1.19
findModifiedValidators - 100 modified validators 520.89 ms/op 409.15 ms/op 1.27
findModifiedValidators - 10 modified validators 526.70 ms/op 413.39 ms/op 1.27
findModifiedValidators - 1 modified validators 496.03 ms/op 389.95 ms/op 1.27
findModifiedValidators - no difference 542.39 ms/op 414.72 ms/op 1.31
compare ViewDUs 5.4219 s/op 4.3646 s/op 1.24
compare each validator Uint8Array 2.1484 s/op 1.8015 s/op 1.19
compare ViewDU to Uint8Array 1.6550 s/op 1.1058 s/op 1.50
migrate state 1000000 validators, 24 modified, 0 new 947.58 ms/op 793.59 ms/op 1.19
migrate state 1000000 validators, 1700 modified, 1000 new 1.4206 s/op 1.0999 s/op 1.29
migrate state 1000000 validators, 3400 modified, 2000 new 1.7338 s/op 1.3564 s/op 1.28
migrate state 1500000 validators, 24 modified, 0 new 1.0124 s/op 766.56 ms/op 1.32
migrate state 1500000 validators, 1700 modified, 1000 new 1.2919 s/op 1.0926 s/op 1.18
migrate state 1500000 validators, 3400 modified, 2000 new 1.4531 s/op 1.3374 s/op 1.09
RootCache.getBlockRootAtSlot - 250000 vs - 7PWei 4.7200 ns/op 4.1600 ns/op 1.13
state getBlockRootAtSlot - 250000 vs - 7PWei 749.06 ns/op 790.40 ns/op 0.95
computeProposers - vc 250000 9.4261 ms/op 9.2034 ms/op 1.02
computeEpochShuffling - vc 250000 104.31 ms/op 104.71 ms/op 1.00
getNextSyncCommittee - vc 250000 151.10 ms/op 158.41 ms/op 0.95
computeSigningRoot for AttestationData 25.591 us/op 26.799 us/op 0.95
hash AttestationData serialized data then Buffer.toString(base64) 2.3345 us/op 2.3085 us/op 1.01
toHexString serialized data 1.1099 us/op 1.0741 us/op 1.03
Buffer.toString(base64) 242.66 ns/op 215.07 ns/op 1.13

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.

this is a breaking change in cli usage and i don't actually see real need except may be clarifying help on this

@nflaig
Copy link
Member Author

nflaig commented Dec 18, 2023

this is a breaking change in cli usage and i don't actually see real need except may be clarifying help on this

It's not breaking as I kept builder.urls as an alias. I opted to throw an error if someone passes multiple URLs (as array is not supported anymore). Alternative would be to keep array support and silently just pick the first URL entry (as we do right now) but I don't think this is great as I already outlined in the PR description.

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 as previous option still works as alias

@g11tech g11tech merged commit 54e8c45 into unstable Dec 18, 2023
15 checks passed
@g11tech g11tech deleted the nflaig/builder-url-flag branch December 18, 2023 11:24
@wemeetagain
Copy link
Member

🎉 This PR is included in v1.13.0 🎉

ensi321 pushed a commit to ensi321/lodestar that referenced this pull request Jan 22, 2024
* Update flag to pass builder url

* Throw error if multiple builder urls are set
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.

Investigate --builder.urls usage
3 participants