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 lodestar script to properly forward exit signals #7383

Merged
merged 2 commits into from
Jan 23, 2025

Conversation

nflaig
Copy link
Member

@nflaig nflaig commented Jan 21, 2025

Motivation

Users might use the lodestar script inside docker or with a process manager like systemd (#7378) and in those cases we need to make sure Lodestar runs as primary process and not the shell script as otherwise exit signals are not properly forwarded or in case of systemd it does not wait for Lodestar to shut down.

Description

Update lodestar script to properly forward exit signals by execution the main node process via exec. This shouldn't change anything in regard to how we use the script during development.

@nflaig nflaig requested a review from a team as a code owner January 21, 2025 19:26
Copy link

codecov bot commented Jan 21, 2025

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 48.62%. Comparing base (d584aed) to head (0625d4e).
Report is 4 commits behind head on unstable.

Additional details and impacted files
@@            Coverage Diff            @@
##           unstable    #7383   +/-   ##
=========================================
  Coverage     48.62%   48.62%           
=========================================
  Files           603      603           
  Lines         40510    40510           
  Branches       2071     2071           
=========================================
  Hits          19700    19700           
  Misses        20772    20772           
  Partials         38       38           

Copy link
Contributor

Performance Report

✔️ no performance regression detected

Full benchmark results
Benchmark suite Current: 64dd550 Previous: d584aed Ratio
getPubkeys - index2pubkey - req 1000 vs - 250000 vc 1.6056 ms/op 1.5995 ms/op 1.00
getPubkeys - validatorsArr - req 1000 vs - 250000 vc 40.214 us/op 32.423 us/op 1.24
BLS verify - blst 901.89 us/op 894.82 us/op 1.01
BLS verifyMultipleSignatures 3 - blst 1.2777 ms/op 1.3409 ms/op 0.95
BLS verifyMultipleSignatures 8 - blst 1.9372 ms/op 2.0534 ms/op 0.94
BLS verifyMultipleSignatures 32 - blst 5.0682 ms/op 4.4121 ms/op 1.15
BLS verifyMultipleSignatures 64 - blst 9.2638 ms/op 8.2600 ms/op 1.12
BLS verifyMultipleSignatures 128 - blst 17.294 ms/op 15.677 ms/op 1.10
BLS deserializing 10000 signatures 701.69 ms/op 642.86 ms/op 1.09
BLS deserializing 100000 signatures 6.9154 s/op 6.6339 s/op 1.04
BLS verifyMultipleSignatures - same message - 3 - blst 879.69 us/op 937.64 us/op 0.94
BLS verifyMultipleSignatures - same message - 8 - blst 1.0070 ms/op 1.0316 ms/op 0.98
BLS verifyMultipleSignatures - same message - 32 - blst 1.6895 ms/op 1.6675 ms/op 1.01
BLS verifyMultipleSignatures - same message - 64 - blst 2.5788 ms/op 2.4738 ms/op 1.04
BLS verifyMultipleSignatures - same message - 128 - blst 4.4247 ms/op 4.0126 ms/op 1.10
BLS aggregatePubkeys 32 - blst 19.689 us/op 18.216 us/op 1.08
BLS aggregatePubkeys 128 - blst 70.452 us/op 63.269 us/op 1.11
notSeenSlots=1 numMissedVotes=1 numBadVotes=10 45.700 ms/op 44.756 ms/op 1.02
notSeenSlots=1 numMissedVotes=0 numBadVotes=4 42.854 ms/op 38.669 ms/op 1.11
notSeenSlots=2 numMissedVotes=1 numBadVotes=10 33.843 ms/op 34.266 ms/op 0.99
getSlashingsAndExits - default max 79.007 us/op 54.772 us/op 1.44
getSlashingsAndExits - 2k 310.51 us/op 254.80 us/op 1.22
proposeBlockBody type=full, size=empty 5.8729 ms/op 4.2684 ms/op 1.38
isKnown best case - 1 super set check 302.00 ns/op 463.00 ns/op 0.65
isKnown normal case - 2 super set checks 278.00 ns/op 438.00 ns/op 0.63
isKnown worse case - 16 super set checks 277.00 ns/op 436.00 ns/op 0.64
InMemoryCheckpointStateCache - add get delete 2.7930 us/op 2.7120 us/op 1.03
validate api signedAggregateAndProof - struct 1.5078 ms/op 2.0252 ms/op 0.74
validate gossip signedAggregateAndProof - struct 1.5162 ms/op 1.7471 ms/op 0.87
batch validate gossip attestation - vc 640000 - chunk 32 134.86 us/op 124.62 us/op 1.08
batch validate gossip attestation - vc 640000 - chunk 64 128.15 us/op 102.98 us/op 1.24
batch validate gossip attestation - vc 640000 - chunk 128 128.30 us/op 95.936 us/op 1.34
batch validate gossip attestation - vc 640000 - chunk 256 114.60 us/op 94.064 us/op 1.22
pickEth1Vote - no votes 1.1079 ms/op 784.87 us/op 1.41
pickEth1Vote - max votes 7.5875 ms/op 4.7289 ms/op 1.60
pickEth1Vote - Eth1Data hashTreeRoot value x2048 11.828 ms/op 18.862 ms/op 0.63
pickEth1Vote - Eth1Data hashTreeRoot tree x2048 20.112 ms/op 21.093 ms/op 0.95
pickEth1Vote - Eth1Data fastSerialize value x2048 514.10 us/op 388.43 us/op 1.32
pickEth1Vote - Eth1Data fastSerialize tree x2048 4.0968 ms/op 3.2427 ms/op 1.26
bytes32 toHexString 494.00 ns/op 592.00 ns/op 0.83
bytes32 Buffer.toString(hex) 243.00 ns/op 409.00 ns/op 0.59
bytes32 Buffer.toString(hex) from Uint8Array 395.00 ns/op 509.00 ns/op 0.78
bytes32 Buffer.toString(hex) + 0x 242.00 ns/op 416.00 ns/op 0.58
Object access 1 prop 0.15200 ns/op 0.33100 ns/op 0.46
Map access 1 prop 0.13800 ns/op 0.32700 ns/op 0.42
Object get x1000 6.1960 ns/op 4.8180 ns/op 1.29
Map get x1000 6.9450 ns/op 5.4930 ns/op 1.26
Object set x1000 45.817 ns/op 22.332 ns/op 2.05
Map set x1000 38.320 ns/op 19.022 ns/op 2.01
Return object 10000 times 0.32160 ns/op 0.28150 ns/op 1.14
Throw Error 10000 times 3.4642 us/op 2.5034 us/op 1.38
toHex 183.37 ns/op 98.527 ns/op 1.86
Buffer.from 176.27 ns/op 90.349 ns/op 1.95
shared Buffer 102.92 ns/op 60.849 ns/op 1.69
fastMsgIdFn sha256 / 200 bytes 2.5070 us/op 1.8710 us/op 1.34
fastMsgIdFn h32 xxhash / 200 bytes 333.00 ns/op 384.00 ns/op 0.87
fastMsgIdFn h64 xxhash / 200 bytes 296.00 ns/op 425.00 ns/op 0.70
fastMsgIdFn sha256 / 1000 bytes 8.0850 us/op 5.7070 us/op 1.42
fastMsgIdFn h32 xxhash / 1000 bytes 449.00 ns/op 531.00 ns/op 0.85
fastMsgIdFn h64 xxhash / 1000 bytes 380.00 ns/op 506.00 ns/op 0.75
fastMsgIdFn sha256 / 10000 bytes 69.650 us/op 46.214 us/op 1.51
fastMsgIdFn h32 xxhash / 10000 bytes 2.0330 us/op 1.8090 us/op 1.12
fastMsgIdFn h64 xxhash / 10000 bytes 1.3250 us/op 1.2590 us/op 1.05
send data - 1000 256B messages 15.422 ms/op 10.374 ms/op 1.49
send data - 1000 512B messages 19.937 ms/op 14.851 ms/op 1.34
send data - 1000 1024B messages 29.432 ms/op 22.370 ms/op 1.32
send data - 1000 1200B messages 29.081 ms/op 24.249 ms/op 1.20
send data - 1000 2048B messages 34.651 ms/op 29.278 ms/op 1.18
send data - 1000 4096B messages 35.378 ms/op 25.223 ms/op 1.40
send data - 1000 16384B messages 82.671 ms/op 65.741 ms/op 1.26
send data - 1000 65536B messages 237.48 ms/op 257.96 ms/op 0.92
enrSubnets - fastDeserialize 64 bits 1.6420 us/op 1.0700 us/op 1.53
enrSubnets - ssz BitVector 64 bits 484.00 ns/op 493.00 ns/op 0.98
enrSubnets - fastDeserialize 4 bits 216.00 ns/op 323.00 ns/op 0.67
enrSubnets - ssz BitVector 4 bits 492.00 ns/op 500.00 ns/op 0.98
prioritizePeers score -10:0 att 32-0.1 sync 2-0 205.28 us/op 106.50 us/op 1.93
prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 224.67 us/op 128.80 us/op 1.74
prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 361.30 us/op 189.38 us/op 1.91
prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 587.85 us/op 347.90 us/op 1.69
prioritizePeers score 0:0 att 64-1 sync 4-1 751.36 us/op 416.61 us/op 1.80
array of 16000 items push then shift 1.7513 us/op 1.2035 us/op 1.46
LinkedList of 16000 items push then shift 9.0170 ns/op 7.0750 ns/op 1.27
array of 16000 items push then pop 133.12 ns/op 85.527 ns/op 1.56
LinkedList of 16000 items push then pop 8.1200 ns/op 6.0900 ns/op 1.33
array of 24000 items push then shift 2.5965 us/op 1.7561 us/op 1.48
LinkedList of 24000 items push then shift 9.3050 ns/op 6.7800 ns/op 1.37
array of 24000 items push then pop 189.21 ns/op 106.25 ns/op 1.78
LinkedList of 24000 items push then pop 8.1820 ns/op 5.9720 ns/op 1.37
intersect bitArray bitLen 8 7.1010 ns/op 5.1510 ns/op 1.38
intersect array and set length 8 50.848 ns/op 35.139 ns/op 1.45
intersect bitArray bitLen 128 32.912 ns/op 25.152 ns/op 1.31
intersect array and set length 128 754.61 ns/op 534.40 ns/op 1.41
bitArray.getTrueBitIndexes() bitLen 128 1.6320 us/op 1.2870 us/op 1.27
bitArray.getTrueBitIndexes() bitLen 248 2.9360 us/op 2.1450 us/op 1.37
bitArray.getTrueBitIndexes() bitLen 512 5.6380 us/op 3.7920 us/op 1.49
Buffer.concat 32 items 981.00 ns/op 884.00 ns/op 1.11
Uint8Array.set 32 items 1.8570 us/op 2.0060 us/op 0.93
Buffer.copy 2.9630 us/op 2.8750 us/op 1.03
Uint8Array.set - with subarray 3.2250 us/op 2.7440 us/op 1.18
Uint8Array.set - without subarray 2.2030 us/op 2.0380 us/op 1.08
getUint32 - dataview 280.00 ns/op 384.00 ns/op 0.73
getUint32 - manual 219.00 ns/op 325.00 ns/op 0.67
Set add up to 64 items then delete first 2.5962 us/op 1.7467 us/op 1.49
OrderedSet add up to 64 items then delete first 3.7045 us/op 2.7100 us/op 1.37
Set add up to 64 items then delete last 3.0048 us/op 1.9930 us/op 1.51
OrderedSet add up to 64 items then delete last 4.5528 us/op 2.8755 us/op 1.58
Set add up to 64 items then delete middle 3.4349 us/op 1.8524 us/op 1.85
OrderedSet add up to 64 items then delete middle 6.8211 us/op 4.1289 us/op 1.65
Set add up to 128 items then delete first 6.5785 us/op 3.6746 us/op 1.79
OrderedSet add up to 128 items then delete first 8.4752 us/op 6.1900 us/op 1.37
Set add up to 128 items then delete last 6.0424 us/op 3.6970 us/op 1.63
OrderedSet add up to 128 items then delete last 9.1575 us/op 5.7680 us/op 1.59
Set add up to 128 items then delete middle 5.6316 us/op 3.9869 us/op 1.41
OrderedSet add up to 128 items then delete middle 15.861 us/op 11.371 us/op 1.39
Set add up to 256 items then delete first 12.492 us/op 8.1167 us/op 1.54
OrderedSet add up to 256 items then delete first 19.996 us/op 12.191 us/op 1.64
Set add up to 256 items then delete last 14.161 us/op 7.3972 us/op 1.91
OrderedSet add up to 256 items then delete last 20.417 us/op 11.216 us/op 1.82
Set add up to 256 items then delete middle 12.788 us/op 7.1300 us/op 1.79
OrderedSet add up to 256 items then delete middle 46.981 us/op 32.648 us/op 1.44
transfer serialized Status (84 B) 3.4760 us/op 2.2080 us/op 1.57
copy serialized Status (84 B) 1.8270 us/op 1.5510 us/op 1.18
transfer serialized SignedVoluntaryExit (112 B) 3.3820 us/op 2.8380 us/op 1.19
copy serialized SignedVoluntaryExit (112 B) 1.7850 us/op 1.6760 us/op 1.07
transfer serialized ProposerSlashing (416 B) 4.3760 us/op 2.7190 us/op 1.61
copy serialized ProposerSlashing (416 B) 3.1790 us/op 1.7400 us/op 1.83
transfer serialized Attestation (485 B) 3.6890 us/op 2.6130 us/op 1.41
copy serialized Attestation (485 B) 2.2000 us/op 1.7780 us/op 1.24
transfer serialized AttesterSlashing (33232 B) 4.1600 us/op 2.7070 us/op 1.54
copy serialized AttesterSlashing (33232 B) 9.2740 us/op 4.1850 us/op 2.22
transfer serialized Small SignedBeaconBlock (128000 B) 4.1780 us/op 2.9920 us/op 1.40
copy serialized Small SignedBeaconBlock (128000 B) 18.840 us/op 9.6560 us/op 1.95
transfer serialized Avg SignedBeaconBlock (200000 B) 4.9130 us/op 3.7420 us/op 1.31
copy serialized Avg SignedBeaconBlock (200000 B) 29.609 us/op 14.401 us/op 2.06
transfer serialized BlobsSidecar (524380 B) 4.7290 us/op 4.8140 us/op 0.98
copy serialized BlobsSidecar (524380 B) 104.47 us/op 78.007 us/op 1.34
transfer serialized Big SignedBeaconBlock (1000000 B) 5.4430 us/op 4.8370 us/op 1.13
copy serialized Big SignedBeaconBlock (1000000 B) 346.23 us/op 166.04 us/op 2.09
pass gossip attestations to forkchoice per slot 2.8556 ms/op 2.2639 ms/op 1.26
forkChoice updateHead vc 100000 bc 64 eq 0 477.50 us/op 332.22 us/op 1.44
forkChoice updateHead vc 600000 bc 64 eq 0 3.2497 ms/op 2.9883 ms/op 1.09
forkChoice updateHead vc 1000000 bc 64 eq 0 5.4612 ms/op 3.7346 ms/op 1.46
forkChoice updateHead vc 600000 bc 320 eq 0 3.6208 ms/op 2.3944 ms/op 1.51
forkChoice updateHead vc 600000 bc 1200 eq 0 3.4380 ms/op 2.3170 ms/op 1.48
forkChoice updateHead vc 600000 bc 7200 eq 0 3.8995 ms/op 2.2980 ms/op 1.70
forkChoice updateHead vc 600000 bc 64 eq 1000 10.713 ms/op 9.4327 ms/op 1.14
forkChoice updateHead vc 600000 bc 64 eq 10000 10.509 ms/op 9.3117 ms/op 1.13
forkChoice updateHead vc 600000 bc 64 eq 300000 15.356 ms/op 11.530 ms/op 1.33
computeDeltas 500000 validators 300 proto nodes 4.3729 ms/op 3.2827 ms/op 1.33
computeDeltas 500000 validators 1200 proto nodes 4.3159 ms/op 3.4081 ms/op 1.27
computeDeltas 500000 validators 7200 proto nodes 4.2237 ms/op 3.3157 ms/op 1.27
computeDeltas 750000 validators 300 proto nodes 6.2058 ms/op 4.9541 ms/op 1.25
computeDeltas 750000 validators 1200 proto nodes 6.3378 ms/op 4.9877 ms/op 1.27
computeDeltas 750000 validators 7200 proto nodes 6.3147 ms/op 4.9948 ms/op 1.26
computeDeltas 1400000 validators 300 proto nodes 11.714 ms/op 9.2545 ms/op 1.27
computeDeltas 1400000 validators 1200 proto nodes 11.904 ms/op 9.4817 ms/op 1.26
computeDeltas 1400000 validators 7200 proto nodes 12.157 ms/op 8.9167 ms/op 1.36
computeDeltas 2100000 validators 300 proto nodes 18.353 ms/op 14.099 ms/op 1.30
computeDeltas 2100000 validators 1200 proto nodes 18.448 ms/op 13.994 ms/op 1.32
computeDeltas 2100000 validators 7200 proto nodes 18.390 ms/op 13.943 ms/op 1.32
altair processAttestation - 250000 vs - 7PWei normalcase 3.5145 ms/op 1.7244 ms/op 2.04
altair processAttestation - 250000 vs - 7PWei worstcase 4.2531 ms/op 2.3826 ms/op 1.79
altair processAttestation - setStatus - 1/6 committees join 156.45 us/op 97.512 us/op 1.60
altair processAttestation - setStatus - 1/3 committees join 263.61 us/op 187.93 us/op 1.40
altair processAttestation - setStatus - 1/2 committees join 366.47 us/op 265.21 us/op 1.38
altair processAttestation - setStatus - 2/3 committees join 487.42 us/op 345.30 us/op 1.41
altair processAttestation - setStatus - 4/5 committees join 757.95 us/op 475.44 us/op 1.59
altair processAttestation - setStatus - 100% committees join 759.19 us/op 561.07 us/op 1.35
altair processBlock - 250000 vs - 7PWei normalcase 4.6246 ms/op 4.8590 ms/op 0.95
altair processBlock - 250000 vs - 7PWei normalcase hashState 27.279 ms/op 28.434 ms/op 0.96
altair processBlock - 250000 vs - 7PWei worstcase 33.811 ms/op 35.268 ms/op 0.96
altair processBlock - 250000 vs - 7PWei worstcase hashState 70.801 ms/op 81.194 ms/op 0.87
phase0 processBlock - 250000 vs - 7PWei normalcase 1.9214 ms/op 2.0702 ms/op 0.93
phase0 processBlock - 250000 vs - 7PWei worstcase 22.154 ms/op 25.431 ms/op 0.87
altair processEth1Data - 250000 vs - 7PWei normalcase 382.20 us/op 291.42 us/op 1.31
getExpectedWithdrawals 250000 eb:1,eth1:1,we:0,wn:0,smpl:15 5.5850 us/op 2.7950 us/op 2.00
getExpectedWithdrawals 250000 eb:0.95,eth1:0.1,we:0.05,wn:0,smpl:219 37.669 us/op 17.882 us/op 2.11
getExpectedWithdrawals 250000 eb:0.95,eth1:0.3,we:0.05,wn:0,smpl:42 10.566 us/op 10.369 us/op 1.02
getExpectedWithdrawals 250000 eb:0.95,eth1:0.7,we:0.05,wn:0,smpl:18 6.2350 us/op 4.8460 us/op 1.29
getExpectedWithdrawals 250000 eb:0.1,eth1:0.1,we:0,wn:0,smpl:1020 139.66 us/op 128.38 us/op 1.09
getExpectedWithdrawals 250000 eb:0.03,eth1:0.03,we:0,wn:0,smpl:11777 1.2585 ms/op 851.85 us/op 1.48
getExpectedWithdrawals 250000 eb:0.01,eth1:0.01,we:0,wn:0,smpl:16384 1.4986 ms/op 1.1453 ms/op 1.31
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,smpl:16384 1.5258 ms/op 1.0664 ms/op 1.43
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,nocache,smpl:16384 4.1353 ms/op 2.9878 ms/op 1.38
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,smpl:16384 1.5510 ms/op 1.1760 ms/op 1.32
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,nocache,smpl:16384 4.9204 ms/op 2.8650 ms/op 1.72
Tree 40 250000 create 535.49 ms/op 355.02 ms/op 1.51
Tree 40 250000 get(125000) 163.11 ns/op 103.86 ns/op 1.57
Tree 40 250000 set(125000) 1.9304 us/op 1.0878 us/op 1.77
Tree 40 250000 toArray() 20.009 ms/op 12.145 ms/op 1.65
Tree 40 250000 iterate all - toArray() + loop 16.002 ms/op 12.741 ms/op 1.26
Tree 40 250000 iterate all - get(i) 51.437 ms/op 40.851 ms/op 1.26
Array 250000 create 3.5421 ms/op 2.3215 ms/op 1.53
Array 250000 clone - spread 1.4551 ms/op 1.1087 ms/op 1.31
Array 250000 get(125000) 0.44800 ns/op 0.55800 ns/op 0.80
Array 250000 set(125000) 0.47500 ns/op 0.57100 ns/op 0.83
Array 250000 iterate all - loop 114.14 us/op 72.799 us/op 1.57
phase0 afterProcessEpoch - 250000 vs - 7PWei 53.830 ms/op 38.987 ms/op 1.38
Array.fill - length 1000000 3.6189 ms/op 2.2377 ms/op 1.62
Array push - length 1000000 19.789 ms/op 14.132 ms/op 1.40
Array.get 0.29445 ns/op 0.25894 ns/op 1.14
Uint8Array.get 0.45446 ns/op 0.33991 ns/op 1.34
phase0 beforeProcessEpoch - 250000 vs - 7PWei 20.469 ms/op 12.887 ms/op 1.59
altair processEpoch - mainnet_e81889 266.27 ms/op 274.11 ms/op 0.97
mainnet_e81889 - altair beforeProcessEpoch 18.562 ms/op 14.803 ms/op 1.25
mainnet_e81889 - altair processJustificationAndFinalization 16.637 us/op 12.418 us/op 1.34
mainnet_e81889 - altair processInactivityUpdates 4.9086 ms/op 3.4306 ms/op 1.43
mainnet_e81889 - altair processRewardsAndPenalties 37.750 ms/op 57.339 ms/op 0.66
mainnet_e81889 - altair processRegistryUpdates 3.1240 us/op 2.6420 us/op 1.18
mainnet_e81889 - altair processSlashings 539.00 ns/op 823.00 ns/op 0.65
mainnet_e81889 - altair processEth1DataReset 474.00 ns/op 879.00 ns/op 0.54
mainnet_e81889 - altair processEffectiveBalanceUpdates 1.5074 ms/op 1.6237 ms/op 0.93
mainnet_e81889 - altair processSlashingsReset 5.0070 us/op 2.4220 us/op 2.07
mainnet_e81889 - altair processRandaoMixesReset 5.2050 us/op 3.4820 us/op 1.49
mainnet_e81889 - altair processHistoricalRootsUpdate 707.00 ns/op 1.2750 us/op 0.55
mainnet_e81889 - altair processParticipationFlagUpdates 3.1070 us/op 2.0990 us/op 1.48
mainnet_e81889 - altair processSyncCommitteeUpdates 614.00 ns/op 815.00 ns/op 0.75
mainnet_e81889 - altair afterProcessEpoch 52.260 ms/op 42.315 ms/op 1.24
capella processEpoch - mainnet_e217614 1.1478 s/op 991.03 ms/op 1.16
mainnet_e217614 - capella beforeProcessEpoch 84.308 ms/op 67.642 ms/op 1.25
mainnet_e217614 - capella processJustificationAndFinalization 14.546 us/op 11.781 us/op 1.23
mainnet_e217614 - capella processInactivityUpdates 17.685 ms/op 11.049 ms/op 1.60
mainnet_e217614 - capella processRewardsAndPenalties 241.07 ms/op 249.99 ms/op 0.96
mainnet_e217614 - capella processRegistryUpdates 15.719 us/op 10.679 us/op 1.47
mainnet_e217614 - capella processSlashings 1.0540 us/op 832.00 ns/op 1.27
mainnet_e217614 - capella processEth1DataReset 551.00 ns/op 820.00 ns/op 0.67
mainnet_e217614 - capella processEffectiveBalanceUpdates 15.881 ms/op 3.2528 ms/op 4.88
mainnet_e217614 - capella processSlashingsReset 4.0680 us/op 3.0510 us/op 1.33
mainnet_e217614 - capella processRandaoMixesReset 5.4740 us/op 3.7490 us/op 1.46
mainnet_e217614 - capella processHistoricalRootsUpdate 913.00 ns/op 872.00 ns/op 1.05
mainnet_e217614 - capella processParticipationFlagUpdates 2.4330 us/op 1.8930 us/op 1.29
mainnet_e217614 - capella afterProcessEpoch 129.51 ms/op 101.08 ms/op 1.28
phase0 processEpoch - mainnet_e58758 358.20 ms/op 307.67 ms/op 1.16
mainnet_e58758 - phase0 beforeProcessEpoch 90.769 ms/op 58.171 ms/op 1.56
mainnet_e58758 - phase0 processJustificationAndFinalization 15.449 us/op 13.880 us/op 1.11
mainnet_e58758 - phase0 processRewardsAndPenalties 24.853 ms/op 26.391 ms/op 0.94
mainnet_e58758 - phase0 processRegistryUpdates 12.348 us/op 5.6690 us/op 2.18
mainnet_e58758 - phase0 processSlashings 748.00 ns/op 841.00 ns/op 0.89
mainnet_e58758 - phase0 processEth1DataReset 804.00 ns/op 928.00 ns/op 0.87
mainnet_e58758 - phase0 processEffectiveBalanceUpdates 1.2149 ms/op 762.03 us/op 1.59
mainnet_e58758 - phase0 processSlashingsReset 3.4470 us/op 2.6180 us/op 1.32
mainnet_e58758 - phase0 processRandaoMixesReset 6.0850 us/op 5.5160 us/op 1.10
mainnet_e58758 - phase0 processHistoricalRootsUpdate 767.00 ns/op 983.00 ns/op 0.78
mainnet_e58758 - phase0 processParticipationRecordUpdates 4.7610 us/op 4.1530 us/op 1.15
mainnet_e58758 - phase0 afterProcessEpoch 44.864 ms/op 36.714 ms/op 1.22
phase0 processEffectiveBalanceUpdates - 250000 normalcase 1.3454 ms/op 938.89 us/op 1.43
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 3.3370 ms/op 1.3412 ms/op 2.49
altair processInactivityUpdates - 250000 normalcase 18.265 ms/op 19.420 ms/op 0.94
altair processInactivityUpdates - 250000 worstcase 16.645 ms/op 17.684 ms/op 0.94
phase0 processRegistryUpdates - 250000 normalcase 9.3180 us/op 3.0560 us/op 3.05
phase0 processRegistryUpdates - 250000 badcase_full_deposits 341.97 us/op 274.73 us/op 1.24
phase0 processRegistryUpdates - 250000 worstcase 0.5 115.35 ms/op 110.32 ms/op 1.05
altair processRewardsAndPenalties - 250000 normalcase 39.378 ms/op 48.589 ms/op 0.81
altair processRewardsAndPenalties - 250000 worstcase 43.261 ms/op 41.734 ms/op 1.04
phase0 getAttestationDeltas - 250000 normalcase 8.4523 ms/op 6.4262 ms/op 1.32
phase0 getAttestationDeltas - 250000 worstcase 7.8233 ms/op 5.5333 ms/op 1.41
phase0 processSlashings - 250000 worstcase 115.32 us/op 92.821 us/op 1.24
altair processSyncCommitteeUpdates - 250000 124.14 ms/op 96.087 ms/op 1.29
BeaconState.hashTreeRoot - No change 286.00 ns/op 465.00 ns/op 0.62
BeaconState.hashTreeRoot - 1 full validator 101.76 us/op 121.68 us/op 0.84
BeaconState.hashTreeRoot - 32 full validator 1.4458 ms/op 1.1373 ms/op 1.27
BeaconState.hashTreeRoot - 512 full validator 13.830 ms/op 8.7281 ms/op 1.58
BeaconState.hashTreeRoot - 1 validator.effectiveBalance 203.92 us/op 125.99 us/op 1.62
BeaconState.hashTreeRoot - 32 validator.effectiveBalance 2.0109 ms/op 1.5190 ms/op 1.32
BeaconState.hashTreeRoot - 512 validator.effectiveBalance 21.718 ms/op 18.806 ms/op 1.15
BeaconState.hashTreeRoot - 1 balances 112.67 us/op 89.538 us/op 1.26
BeaconState.hashTreeRoot - 32 balances 986.83 us/op 880.77 us/op 1.12
BeaconState.hashTreeRoot - 512 balances 7.7296 ms/op 6.8752 ms/op 1.12
BeaconState.hashTreeRoot - 250000 balances 139.43 ms/op 134.14 ms/op 1.04
aggregationBits - 2048 els - zipIndexesInBitList 24.548 us/op 19.117 us/op 1.28
byteArrayEquals 32 54.010 ns/op 48.143 ns/op 1.12
Buffer.compare 32 17.347 ns/op 16.363 ns/op 1.06
byteArrayEquals 1024 1.6007 us/op 1.2650 us/op 1.27
Buffer.compare 1024 25.021 ns/op 24.635 ns/op 1.02
byteArrayEquals 16384 25.445 us/op 20.094 us/op 1.27
Buffer.compare 16384 186.28 ns/op 210.92 ns/op 0.88
byteArrayEquals 123687377 193.72 ms/op 151.18 ms/op 1.28
Buffer.compare 123687377 6.0919 ms/op 3.8722 ms/op 1.57
byteArrayEquals 32 - diff last byte 52.098 ns/op 46.619 ns/op 1.12
Buffer.compare 32 - diff last byte 16.928 ns/op 16.547 ns/op 1.02
byteArrayEquals 1024 - diff last byte 1.5716 us/op 1.2569 us/op 1.25
Buffer.compare 1024 - diff last byte 25.872 ns/op 23.344 ns/op 1.11
byteArrayEquals 16384 - diff last byte 24.974 us/op 19.951 us/op 1.25
Buffer.compare 16384 - diff last byte 182.62 ns/op 177.43 ns/op 1.03
byteArrayEquals 123687377 - diff last byte 190.76 ms/op 149.46 ms/op 1.28
Buffer.compare 123687377 - diff last byte 6.4361 ms/op 3.8172 ms/op 1.69
byteArrayEquals 32 - random bytes 5.2070 ns/op 4.8700 ns/op 1.07
Buffer.compare 32 - random bytes 17.101 ns/op 16.652 ns/op 1.03
byteArrayEquals 1024 - random bytes 5.1200 ns/op 4.8710 ns/op 1.05
Buffer.compare 1024 - random bytes 17.171 ns/op 16.677 ns/op 1.03
byteArrayEquals 16384 - random bytes 5.1220 ns/op 4.8330 ns/op 1.06
Buffer.compare 16384 - random bytes 17.121 ns/op 16.709 ns/op 1.02
byteArrayEquals 123687377 - random bytes 6.4700 ns/op 7.6900 ns/op 0.84
Buffer.compare 123687377 - random bytes 18.500 ns/op 19.720 ns/op 0.94
regular array get 100000 times 42.956 us/op 30.994 us/op 1.39
wrappedArray get 100000 times 32.959 us/op 31.057 us/op 1.06
arrayWithProxy get 100000 times 13.620 ms/op 9.8019 ms/op 1.39
ssz.Root.equals 46.156 ns/op 43.174 ns/op 1.07
byteArrayEquals 44.987 ns/op 42.796 ns/op 1.05
Buffer.compare 10.289 ns/op 9.7020 ns/op 1.06
processSlot - 1 slots 13.051 us/op 11.650 us/op 1.12
processSlot - 32 slots 2.3220 ms/op 1.8462 ms/op 1.26
getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei 34.635 ms/op 38.050 ms/op 0.91
getCommitteeAssignments - req 1 vs - 250000 vc 2.1271 ms/op 1.7756 ms/op 1.20
getCommitteeAssignments - req 100 vs - 250000 vc 4.1346 ms/op 3.5444 ms/op 1.17
getCommitteeAssignments - req 1000 vs - 250000 vc 4.5565 ms/op 3.7008 ms/op 1.23
findModifiedValidators - 10000 modified validators 252.42 ms/op 220.24 ms/op 1.15
findModifiedValidators - 1000 modified validators 163.63 ms/op 139.34 ms/op 1.17
findModifiedValidators - 100 modified validators 172.01 ms/op 139.25 ms/op 1.24
findModifiedValidators - 10 modified validators 189.68 ms/op 131.79 ms/op 1.44
findModifiedValidators - 1 modified validators 176.23 ms/op 124.90 ms/op 1.41
findModifiedValidators - no difference 167.88 ms/op 151.00 ms/op 1.11
compare ViewDUs 3.1075 s/op 3.2692 s/op 0.95
compare each validator Uint8Array 1.6605 s/op 1.6863 s/op 0.98
compare ViewDU to Uint8Array 1.0125 s/op 737.08 ms/op 1.37
migrate state 1000000 validators, 24 modified, 0 new 731.65 ms/op 679.76 ms/op 1.08
migrate state 1000000 validators, 1700 modified, 1000 new 1.1773 s/op 918.68 ms/op 1.28
migrate state 1000000 validators, 3400 modified, 2000 new 1.4351 s/op 1.2131 s/op 1.18
migrate state 1500000 validators, 24 modified, 0 new 975.34 ms/op 747.01 ms/op 1.31
migrate state 1500000 validators, 1700 modified, 1000 new 1.1629 s/op 977.36 ms/op 1.19
migrate state 1500000 validators, 3400 modified, 2000 new 1.4275 s/op 1.1608 s/op 1.23
RootCache.getBlockRootAtSlot - 250000 vs - 7PWei 5.2600 ns/op 5.7500 ns/op 0.91
state getBlockRootAtSlot - 250000 vs - 7PWei 1.0010 us/op 1.0498 us/op 0.95
computeProposers - vc 250000 7.9011 ms/op 6.7175 ms/op 1.18
computeEpochShuffling - vc 250000 44.431 ms/op 33.506 ms/op 1.33
getNextSyncCommittee - vc 250000 173.72 ms/op 105.61 ms/op 1.64
computeSigningRoot for AttestationData 31.483 us/op 21.716 us/op 1.45
hash AttestationData serialized data then Buffer.toString(base64) 1.8917 us/op 1.1725 us/op 1.61
toHexString serialized data 1.5637 us/op 787.62 ns/op 1.99
Buffer.toString(base64) 222.28 ns/op 127.43 ns/op 1.74
nodejs block root to RootHex using toHex 169.78 ns/op 115.32 ns/op 1.47
nodejs block root to RootHex using toRootHex 108.31 ns/op 75.014 ns/op 1.44
browser block root to RootHex using the deprecated toHexString 243.21 ns/op 210.16 ns/op 1.16
browser block root to RootHex using toHex 197.83 ns/op 167.65 ns/op 1.18
browser block root to RootHex using toRootHex 173.95 ns/op 146.65 ns/op 1.19

by benchmarkbot/action

@wemeetagain wemeetagain merged commit 6781de9 into unstable Jan 23, 2025
20 checks passed
@wemeetagain wemeetagain deleted the nflaig/update-lodestar-script branch January 23, 2025 21:01
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