Skip to content

Commit

Permalink
chore: update lodestar script to properly forward exit signals (#7383)
Browse files Browse the repository at this point in the history
**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.
  • Loading branch information
nflaig authored Jan 23, 2025
1 parent c34e129 commit 6781de9
Showing 1 changed file with 1 addition and 1 deletion.
2 changes: 1 addition & 1 deletion lodestar
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,4 @@
#
# ./lodestar.sh beacon --network mainnet

node --trace-deprecation --max-old-space-size=8192 ./packages/cli/bin/lodestar.js "$@"
exec node --trace-deprecation --max-old-space-size=8192 ./packages/cli/bin/lodestar.js "$@"

1 comment on commit 6781de9

@github-actions
Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ Performance Alert ⚠️

Possible performance regression was detected for some benchmarks.
Benchmark result of this commit is worse than the previous benchmark result exceeding threshold.

Benchmark suite Current: 6781de9 Previous: c34e129 Ratio
forkChoice updateHead vc 600000 bc 64 eq 300000 44.830 ms/op 14.485 ms/op 3.09
Array.fill - length 1000000 10.397 ms/op 2.7163 ms/op 3.83
Full benchmark results
Benchmark suite Current: 6781de9 Previous: c34e129 Ratio
getPubkeys - index2pubkey - req 1000 vs - 250000 vc 1.6951 ms/op 1.8033 ms/op 0.94
getPubkeys - validatorsArr - req 1000 vs - 250000 vc 51.323 us/op 35.681 us/op 1.44
BLS verify - blst 962.75 us/op 925.39 us/op 1.04
BLS verifyMultipleSignatures 3 - blst 1.4290 ms/op 1.3209 ms/op 1.08
BLS verifyMultipleSignatures 8 - blst 1.9982 ms/op 1.9046 ms/op 1.05
BLS verifyMultipleSignatures 32 - blst 7.3711 ms/op 4.8125 ms/op 1.53
BLS verifyMultipleSignatures 64 - blst 10.782 ms/op 9.2791 ms/op 1.16
BLS verifyMultipleSignatures 128 - blst 17.162 ms/op 17.275 ms/op 0.99
BLS deserializing 10000 signatures 693.82 ms/op 648.65 ms/op 1.07
BLS deserializing 100000 signatures 7.0658 s/op 6.4409 s/op 1.10
BLS verifyMultipleSignatures - same message - 3 - blst 999.49 us/op 918.39 us/op 1.09
BLS verifyMultipleSignatures - same message - 8 - blst 1.2518 ms/op 1.1202 ms/op 1.12
BLS verifyMultipleSignatures - same message - 32 - blst 1.8443 ms/op 1.7286 ms/op 1.07
BLS verifyMultipleSignatures - same message - 64 - blst 2.8017 ms/op 2.5277 ms/op 1.11
BLS verifyMultipleSignatures - same message - 128 - blst 4.6224 ms/op 4.3004 ms/op 1.07
BLS aggregatePubkeys 32 - blst 21.107 us/op 18.777 us/op 1.12
BLS aggregatePubkeys 128 - blst 71.861 us/op 64.476 us/op 1.11
notSeenSlots=1 numMissedVotes=1 numBadVotes=10 91.820 ms/op 50.438 ms/op 1.82
notSeenSlots=1 numMissedVotes=0 numBadVotes=4 55.688 ms/op 45.039 ms/op 1.24
notSeenSlots=2 numMissedVotes=1 numBadVotes=10 49.299 ms/op 36.200 ms/op 1.36
getSlashingsAndExits - default max 79.079 us/op 77.302 us/op 1.02
getSlashingsAndExits - 2k 586.20 us/op 333.46 us/op 1.76
proposeBlockBody type=full, size=empty 5.3442 ms/op 5.0650 ms/op 1.06
isKnown best case - 1 super set check 286.00 ns/op 476.00 ns/op 0.60
isKnown normal case - 2 super set checks 284.00 ns/op 463.00 ns/op 0.61
isKnown worse case - 16 super set checks 281.00 ns/op 466.00 ns/op 0.60
InMemoryCheckpointStateCache - add get delete 2.8290 us/op 2.7430 us/op 1.03
validate api signedAggregateAndProof - struct 2.6280 ms/op 2.2022 ms/op 1.19
validate gossip signedAggregateAndProof - struct 1.8109 ms/op 2.2322 ms/op 0.81
batch validate gossip attestation - vc 640000 - chunk 32 130.76 us/op 125.81 us/op 1.04
batch validate gossip attestation - vc 640000 - chunk 64 119.31 us/op 106.86 us/op 1.12
batch validate gossip attestation - vc 640000 - chunk 128 120.05 us/op 97.615 us/op 1.23
batch validate gossip attestation - vc 640000 - chunk 256 122.82 us/op 104.73 us/op 1.17
pickEth1Vote - no votes 1.2155 ms/op 951.01 us/op 1.28
pickEth1Vote - max votes 10.002 ms/op 5.8852 ms/op 1.70
pickEth1Vote - Eth1Data hashTreeRoot value x2048 17.304 ms/op 13.244 ms/op 1.31
pickEth1Vote - Eth1Data hashTreeRoot tree x2048 29.815 ms/op 23.679 ms/op 1.26
pickEth1Vote - Eth1Data fastSerialize value x2048 566.41 us/op 374.53 us/op 1.51
pickEth1Vote - Eth1Data fastSerialize tree x2048 4.5616 ms/op 3.2101 ms/op 1.42
bytes32 toHexString 678.00 ns/op 586.00 ns/op 1.16
bytes32 Buffer.toString(hex) 274.00 ns/op 462.00 ns/op 0.59
bytes32 Buffer.toString(hex) from Uint8Array 468.00 ns/op 614.00 ns/op 0.76
bytes32 Buffer.toString(hex) + 0x 266.00 ns/op 491.00 ns/op 0.54
Object access 1 prop 0.16500 ns/op 0.38000 ns/op 0.43
Map access 1 prop 0.12700 ns/op 0.35900 ns/op 0.35
Object get x1000 6.2250 ns/op 5.1390 ns/op 1.21
Map get x1000 6.6720 ns/op 7.4580 ns/op 0.89
Object set x1000 50.360 ns/op 23.679 ns/op 2.13
Map set x1000 31.346 ns/op 22.631 ns/op 1.39
Return object 10000 times 0.32790 ns/op 0.31560 ns/op 1.04
Throw Error 10000 times 3.5457 us/op 2.8934 us/op 1.23
toHex 177.96 ns/op 111.30 ns/op 1.60
Buffer.from 157.61 ns/op 101.43 ns/op 1.55
shared Buffer 99.144 ns/op 68.644 ns/op 1.44
fastMsgIdFn sha256 / 200 bytes 2.4470 us/op 2.0530 us/op 1.19
fastMsgIdFn h32 xxhash / 200 bytes 298.00 ns/op 478.00 ns/op 0.62
fastMsgIdFn h64 xxhash / 200 bytes 288.00 ns/op 530.00 ns/op 0.54
fastMsgIdFn sha256 / 1000 bytes 7.7780 us/op 6.2810 us/op 1.24
fastMsgIdFn h32 xxhash / 1000 bytes 429.00 ns/op 636.00 ns/op 0.67
fastMsgIdFn h64 xxhash / 1000 bytes 354.00 ns/op 607.00 ns/op 0.58
fastMsgIdFn sha256 / 10000 bytes 67.533 us/op 51.055 us/op 1.32
fastMsgIdFn h32 xxhash / 10000 bytes 2.0090 us/op 2.0650 us/op 0.97
fastMsgIdFn h64 xxhash / 10000 bytes 1.2840 us/op 1.3830 us/op 0.93
send data - 1000 256B messages 14.190 ms/op 11.011 ms/op 1.29
send data - 1000 512B messages 20.123 ms/op 14.755 ms/op 1.36
send data - 1000 1024B messages 29.623 ms/op 25.654 ms/op 1.15
send data - 1000 1200B messages 30.524 ms/op 23.555 ms/op 1.30
send data - 1000 2048B messages 32.478 ms/op 33.717 ms/op 0.96
send data - 1000 4096B messages 35.267 ms/op 30.474 ms/op 1.16
send data - 1000 16384B messages 69.145 ms/op 70.130 ms/op 0.99
send data - 1000 65536B messages 198.62 ms/op 257.97 ms/op 0.77
enrSubnets - fastDeserialize 64 bits 1.1690 us/op 1.1060 us/op 1.06
enrSubnets - ssz BitVector 64 bits 367.00 ns/op 561.00 ns/op 0.65
enrSubnets - fastDeserialize 4 bits 140.00 ns/op 338.00 ns/op 0.41
enrSubnets - ssz BitVector 4 bits 402.00 ns/op 550.00 ns/op 0.73
prioritizePeers score -10:0 att 32-0.1 sync 2-0 144.55 us/op 112.04 us/op 1.29
prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 159.51 us/op 133.02 us/op 1.20
prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 228.97 us/op 223.77 us/op 1.02
prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 410.84 us/op 370.56 us/op 1.11
prioritizePeers score 0:0 att 64-1 sync 4-1 568.97 us/op 444.90 us/op 1.28
array of 16000 items push then shift 1.7026 us/op 1.3691 us/op 1.24
LinkedList of 16000 items push then shift 8.1030 ns/op 7.3340 ns/op 1.10
array of 16000 items push then pop 132.55 ns/op 116.17 ns/op 1.14
LinkedList of 16000 items push then pop 7.9160 ns/op 7.2930 ns/op 1.09
array of 24000 items push then shift 2.7431 us/op 1.8964 us/op 1.45
LinkedList of 24000 items push then shift 8.4820 ns/op 7.1460 ns/op 1.19
array of 24000 items push then pop 157.77 ns/op 153.06 ns/op 1.03
LinkedList of 24000 items push then pop 7.2950 ns/op 6.7070 ns/op 1.09
intersect bitArray bitLen 8 6.5490 ns/op 5.4390 ns/op 1.20
intersect array and set length 8 46.389 ns/op 38.691 ns/op 1.20
intersect bitArray bitLen 128 33.938 ns/op 27.779 ns/op 1.22
intersect array and set length 128 1.0779 us/op 671.39 ns/op 1.61
bitArray.getTrueBitIndexes() bitLen 128 2.3040 us/op 1.6940 us/op 1.36
bitArray.getTrueBitIndexes() bitLen 248 3.6500 us/op 2.6850 us/op 1.36
bitArray.getTrueBitIndexes() bitLen 512 8.2350 us/op 5.7930 us/op 1.42
Buffer.concat 32 items 1.1480 us/op 1.0970 us/op 1.05
Uint8Array.set 32 items 2.5460 us/op 1.8170 us/op 1.40
Buffer.copy 3.4540 us/op 2.9800 us/op 1.16
Uint8Array.set - with subarray 4.1310 us/op 2.8800 us/op 1.43
Uint8Array.set - without subarray 2.6990 us/op 1.6970 us/op 1.59
getUint32 - dataview 386.00 ns/op 473.00 ns/op 0.82
getUint32 - manual 279.00 ns/op 378.00 ns/op 0.74
Set add up to 64 items then delete first 3.4524 us/op 2.1171 us/op 1.63
OrderedSet add up to 64 items then delete first 4.7981 us/op 3.4149 us/op 1.41
Set add up to 64 items then delete last 3.3903 us/op 2.4996 us/op 1.36
OrderedSet add up to 64 items then delete last 4.9120 us/op 3.4299 us/op 1.43
Set add up to 64 items then delete middle 3.7571 us/op 2.1828 us/op 1.72
OrderedSet add up to 64 items then delete middle 7.8082 us/op 5.0361 us/op 1.55
Set add up to 128 items then delete first 7.0163 us/op 4.6094 us/op 1.52
OrderedSet add up to 128 items then delete first 10.826 us/op 6.7981 us/op 1.59
Set add up to 128 items then delete last 7.1047 us/op 4.4746 us/op 1.59
OrderedSet add up to 128 items then delete last 10.374 us/op 6.3304 us/op 1.64
Set add up to 128 items then delete middle 6.8262 us/op 4.6475 us/op 1.47
OrderedSet add up to 128 items then delete middle 17.542 us/op 12.718 us/op 1.38
Set add up to 256 items then delete first 14.443 us/op 9.4937 us/op 1.52
OrderedSet add up to 256 items then delete first 22.111 us/op 14.104 us/op 1.57
Set add up to 256 items then delete last 13.764 us/op 9.3094 us/op 1.48
OrderedSet add up to 256 items then delete last 21.829 us/op 13.527 us/op 1.61
Set add up to 256 items then delete middle 13.147 us/op 8.8198 us/op 1.49
OrderedSet add up to 256 items then delete middle 50.508 us/op 36.294 us/op 1.39
transfer serialized Status (84 B) 3.3470 us/op 2.2640 us/op 1.48
copy serialized Status (84 B) 1.7470 us/op 1.4070 us/op 1.24
transfer serialized SignedVoluntaryExit (112 B) 3.5580 us/op 2.6820 us/op 1.33
copy serialized SignedVoluntaryExit (112 B) 1.8450 us/op 1.6510 us/op 1.12
transfer serialized ProposerSlashing (416 B) 4.1250 us/op 3.2610 us/op 1.26
copy serialized ProposerSlashing (416 B) 2.6740 us/op 2.9180 us/op 0.92
transfer serialized Attestation (485 B) 4.0290 us/op 3.3410 us/op 1.21
copy serialized Attestation (485 B) 2.3420 us/op 2.8990 us/op 0.81
transfer serialized AttesterSlashing (33232 B) 4.0510 us/op 3.2620 us/op 1.24
copy serialized AttesterSlashing (33232 B) 10.780 us/op 5.1920 us/op 2.08
transfer serialized Small SignedBeaconBlock (128000 B) 5.4280 us/op 3.9660 us/op 1.37
copy serialized Small SignedBeaconBlock (128000 B) 31.731 us/op 11.664 us/op 2.72
transfer serialized Avg SignedBeaconBlock (200000 B) 6.2800 us/op 4.2480 us/op 1.48
copy serialized Avg SignedBeaconBlock (200000 B) 48.416 us/op 14.268 us/op 3.39
transfer serialized BlobsSidecar (524380 B) 7.9970 us/op 4.8700 us/op 1.64
copy serialized BlobsSidecar (524380 B) 149.66 us/op 84.847 us/op 1.76
transfer serialized Big SignedBeaconBlock (1000000 B) 10.123 us/op 5.3000 us/op 1.91
copy serialized Big SignedBeaconBlock (1000000 B) 257.62 us/op 419.81 us/op 0.61
pass gossip attestations to forkchoice per slot 3.1541 ms/op 2.3888 ms/op 1.32
forkChoice updateHead vc 100000 bc 64 eq 0 474.34 us/op 363.28 us/op 1.31
forkChoice updateHead vc 600000 bc 64 eq 0 5.2473 ms/op 2.3537 ms/op 2.23
forkChoice updateHead vc 1000000 bc 64 eq 0 6.3525 ms/op 3.6236 ms/op 1.75
forkChoice updateHead vc 600000 bc 320 eq 0 3.6194 ms/op 2.1926 ms/op 1.65
forkChoice updateHead vc 600000 bc 1200 eq 0 3.5327 ms/op 2.4036 ms/op 1.47
forkChoice updateHead vc 600000 bc 7200 eq 0 4.3829 ms/op 2.8391 ms/op 1.54
forkChoice updateHead vc 600000 bc 64 eq 1000 11.125 ms/op 9.3471 ms/op 1.19
forkChoice updateHead vc 600000 bc 64 eq 10000 11.275 ms/op 9.2129 ms/op 1.22
forkChoice updateHead vc 600000 bc 64 eq 300000 44.830 ms/op 14.485 ms/op 3.09
computeDeltas 500000 validators 300 proto nodes 5.0038 ms/op 3.4308 ms/op 1.46
computeDeltas 500000 validators 1200 proto nodes 5.4469 ms/op 3.2981 ms/op 1.65
computeDeltas 500000 validators 7200 proto nodes 5.1048 ms/op 3.2789 ms/op 1.56
computeDeltas 750000 validators 300 proto nodes 8.9012 ms/op 4.9177 ms/op 1.81
computeDeltas 750000 validators 1200 proto nodes 7.8187 ms/op 5.0155 ms/op 1.56
computeDeltas 750000 validators 7200 proto nodes 6.8165 ms/op 4.9371 ms/op 1.38
computeDeltas 1400000 validators 300 proto nodes 11.979 ms/op 9.3265 ms/op 1.28
computeDeltas 1400000 validators 1200 proto nodes 11.755 ms/op 9.6894 ms/op 1.21
computeDeltas 1400000 validators 7200 proto nodes 11.919 ms/op 9.5488 ms/op 1.25
computeDeltas 2100000 validators 300 proto nodes 18.326 ms/op 14.399 ms/op 1.27
computeDeltas 2100000 validators 1200 proto nodes 19.422 ms/op 14.144 ms/op 1.37
computeDeltas 2100000 validators 7200 proto nodes 20.615 ms/op 14.150 ms/op 1.46
altair processAttestation - 250000 vs - 7PWei normalcase 3.0972 ms/op 1.6356 ms/op 1.89
altair processAttestation - 250000 vs - 7PWei worstcase 4.5103 ms/op 2.3560 ms/op 1.91
altair processAttestation - setStatus - 1/6 committees join 177.48 us/op 100.76 us/op 1.76
altair processAttestation - setStatus - 1/3 committees join 373.28 us/op 192.05 us/op 1.94
altair processAttestation - setStatus - 1/2 committees join 413.48 us/op 268.17 us/op 1.54
altair processAttestation - setStatus - 2/3 committees join 471.36 us/op 359.10 us/op 1.31
altair processAttestation - setStatus - 4/5 committees join 634.51 us/op 496.41 us/op 1.28
altair processAttestation - setStatus - 100% committees join 842.88 us/op 598.75 us/op 1.41
altair processBlock - 250000 vs - 7PWei normalcase 7.1278 ms/op 4.1659 ms/op 1.71
altair processBlock - 250000 vs - 7PWei normalcase hashState 35.566 ms/op 27.576 ms/op 1.29
altair processBlock - 250000 vs - 7PWei worstcase 45.696 ms/op 32.521 ms/op 1.41
altair processBlock - 250000 vs - 7PWei worstcase hashState 97.108 ms/op 61.542 ms/op 1.58
phase0 processBlock - 250000 vs - 7PWei normalcase 2.6696 ms/op 1.8195 ms/op 1.47
phase0 processBlock - 250000 vs - 7PWei worstcase 29.776 ms/op 23.740 ms/op 1.25
altair processEth1Data - 250000 vs - 7PWei normalcase 389.39 us/op 348.98 us/op 1.12
getExpectedWithdrawals 250000 eb:1,eth1:1,we:0,wn:0,smpl:15 8.3530 us/op 4.6530 us/op 1.80
getExpectedWithdrawals 250000 eb:0.95,eth1:0.1,we:0.05,wn:0,smpl:219 35.103 us/op 25.981 us/op 1.35
getExpectedWithdrawals 250000 eb:0.95,eth1:0.3,we:0.05,wn:0,smpl:42 8.9250 us/op 8.4760 us/op 1.05
getExpectedWithdrawals 250000 eb:0.95,eth1:0.7,we:0.05,wn:0,smpl:18 6.2300 us/op 4.0750 us/op 1.53
getExpectedWithdrawals 250000 eb:0.1,eth1:0.1,we:0,wn:0,smpl:1020 175.91 us/op 103.02 us/op 1.71
getExpectedWithdrawals 250000 eb:0.03,eth1:0.03,we:0,wn:0,smpl:11777 941.75 us/op 1.2225 ms/op 0.77
getExpectedWithdrawals 250000 eb:0.01,eth1:0.01,we:0,wn:0,smpl:16384 2.5651 ms/op 962.80 us/op 2.66
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,smpl:16384 1.3546 ms/op 1.0440 ms/op 1.30
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,nocache,smpl:16384 3.5762 ms/op 2.8626 ms/op 1.25
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,smpl:16384 1.6462 ms/op 1.0230 ms/op 1.61
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,nocache,smpl:16384 3.8835 ms/op 3.0351 ms/op 1.28
Tree 40 250000 create 419.60 ms/op 448.52 ms/op 0.94
Tree 40 250000 get(125000) 160.06 ns/op 133.71 ns/op 1.20
Tree 40 250000 set(125000) 1.5172 us/op 1.5389 us/op 0.99
Tree 40 250000 toArray() 16.963 ms/op 20.606 ms/op 0.82
Tree 40 250000 iterate all - toArray() + loop 18.752 ms/op 20.847 ms/op 0.90
Tree 40 250000 iterate all - get(i) 56.545 ms/op 52.620 ms/op 1.07
Array 250000 create 3.0780 ms/op 3.4856 ms/op 0.88
Array 250000 clone - spread 1.5690 ms/op 1.3838 ms/op 1.13
Array 250000 get(125000) 0.42800 ns/op 0.59800 ns/op 0.72
Array 250000 set(125000) 0.46200 ns/op 0.62700 ns/op 0.74
Array 250000 iterate all - loop 109.95 us/op 77.559 us/op 1.42
phase0 afterProcessEpoch - 250000 vs - 7PWei 57.861 ms/op 46.766 ms/op 1.24
Array.fill - length 1000000 10.397 ms/op 2.7163 ms/op 3.83
Array push - length 1000000 35.499 ms/op 16.452 ms/op 2.16
Array.get 0.39952 ns/op 0.26054 ns/op 1.53
Uint8Array.get 0.54224 ns/op 0.34397 ns/op 1.58
phase0 beforeProcessEpoch - 250000 vs - 7PWei 40.609 ms/op 17.009 ms/op 2.39
altair processEpoch - mainnet_e81889 471.80 ms/op 292.26 ms/op 1.61
mainnet_e81889 - altair beforeProcessEpoch 39.346 ms/op 19.372 ms/op 2.03
mainnet_e81889 - altair processJustificationAndFinalization 47.021 us/op 15.862 us/op 2.96
mainnet_e81889 - altair processInactivityUpdates 9.4193 ms/op 4.6243 ms/op 2.04
mainnet_e81889 - altair processRewardsAndPenalties 72.076 ms/op 46.709 ms/op 1.54
mainnet_e81889 - altair processRegistryUpdates 9.2350 us/op 2.8010 us/op 3.30
mainnet_e81889 - altair processSlashings 1.3980 us/op 858.00 ns/op 1.63
mainnet_e81889 - altair processEth1DataReset 1.8690 us/op 919.00 ns/op 2.03
mainnet_e81889 - altair processEffectiveBalanceUpdates 1.7875 ms/op 1.0920 ms/op 1.64
mainnet_e81889 - altair processSlashingsReset 10.031 us/op 5.4510 us/op 1.84
mainnet_e81889 - altair processRandaoMixesReset 13.844 us/op 6.5320 us/op 2.12
mainnet_e81889 - altair processHistoricalRootsUpdate 2.3580 us/op 1.2880 us/op 1.83
mainnet_e81889 - altair processParticipationFlagUpdates 4.8980 us/op 3.5350 us/op 1.39
mainnet_e81889 - altair processSyncCommitteeUpdates 1.5540 us/op 955.00 ns/op 1.63
mainnet_e81889 - altair afterProcessEpoch 58.205 ms/op 41.775 ms/op 1.39
capella processEpoch - mainnet_e217614 1.2004 s/op 1.0315 s/op 1.16
mainnet_e217614 - capella beforeProcessEpoch 81.749 ms/op 71.076 ms/op 1.15
mainnet_e217614 - capella processJustificationAndFinalization 18.370 us/op 13.073 us/op 1.41
mainnet_e217614 - capella processInactivityUpdates 19.608 ms/op 13.067 ms/op 1.50
mainnet_e217614 - capella processRewardsAndPenalties 248.55 ms/op 250.05 ms/op 0.99
mainnet_e217614 - capella processRegistryUpdates 21.936 us/op 16.757 us/op 1.31
mainnet_e217614 - capella processSlashings 742.00 ns/op 916.00 ns/op 0.81
mainnet_e217614 - capella processEth1DataReset 837.00 ns/op 805.00 ns/op 1.04
mainnet_e217614 - capella processEffectiveBalanceUpdates 16.588 ms/op 6.2999 ms/op 2.63
mainnet_e217614 - capella processSlashingsReset 3.6450 us/op 3.6040 us/op 1.01
mainnet_e217614 - capella processRandaoMixesReset 10.618 us/op 4.8510 us/op 2.19
mainnet_e217614 - capella processHistoricalRootsUpdate 821.00 ns/op 812.00 ns/op 1.01
mainnet_e217614 - capella processParticipationFlagUpdates 3.0270 us/op 2.8220 us/op 1.07
mainnet_e217614 - capella afterProcessEpoch 130.66 ms/op 104.32 ms/op 1.25
phase0 processEpoch - mainnet_e58758 425.67 ms/op 312.55 ms/op 1.36
mainnet_e58758 - phase0 beforeProcessEpoch 95.670 ms/op 72.597 ms/op 1.32
mainnet_e58758 - phase0 processJustificationAndFinalization 25.494 us/op 17.428 us/op 1.46
mainnet_e58758 - phase0 processRewardsAndPenalties 34.725 ms/op 32.395 ms/op 1.07
mainnet_e58758 - phase0 processRegistryUpdates 10.621 us/op 8.8350 us/op 1.20
mainnet_e58758 - phase0 processSlashings 880.00 ns/op 1.0620 us/op 0.83
mainnet_e58758 - phase0 processEth1DataReset 669.00 ns/op 940.00 ns/op 0.71
mainnet_e58758 - phase0 processEffectiveBalanceUpdates 1.4517 ms/op 903.57 us/op 1.61
mainnet_e58758 - phase0 processSlashingsReset 4.9270 us/op 4.2740 us/op 1.15
mainnet_e58758 - phase0 processRandaoMixesReset 7.2000 us/op 5.8310 us/op 1.23
mainnet_e58758 - phase0 processHistoricalRootsUpdate 886.00 ns/op 886.00 ns/op 1.00
mainnet_e58758 - phase0 processParticipationRecordUpdates 8.4050 us/op 5.1680 us/op 1.63
mainnet_e58758 - phase0 afterProcessEpoch 47.766 ms/op 37.112 ms/op 1.29
phase0 processEffectiveBalanceUpdates - 250000 normalcase 1.9689 ms/op 945.33 us/op 2.08
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 3.3569 ms/op 1.9015 ms/op 1.77
altair processInactivityUpdates - 250000 normalcase 27.119 ms/op 16.745 ms/op 1.62
altair processInactivityUpdates - 250000 worstcase 29.169 ms/op 18.028 ms/op 1.62
phase0 processRegistryUpdates - 250000 normalcase 13.109 us/op 5.3270 us/op 2.46
phase0 processRegistryUpdates - 250000 badcase_full_deposits 426.16 us/op 289.60 us/op 1.47
phase0 processRegistryUpdates - 250000 worstcase 0.5 148.98 ms/op 106.99 ms/op 1.39
altair processRewardsAndPenalties - 250000 normalcase 48.475 ms/op 43.544 ms/op 1.11
altair processRewardsAndPenalties - 250000 worstcase 44.644 ms/op 43.188 ms/op 1.03
phase0 getAttestationDeltas - 250000 normalcase 12.142 ms/op 9.0538 ms/op 1.34
phase0 getAttestationDeltas - 250000 worstcase 8.3250 ms/op 5.2860 ms/op 1.57
phase0 processSlashings - 250000 worstcase 138.88 us/op 96.744 us/op 1.44
altair processSyncCommitteeUpdates - 250000 179.98 ms/op 95.388 ms/op 1.89
BeaconState.hashTreeRoot - No change 285.00 ns/op 471.00 ns/op 0.61
BeaconState.hashTreeRoot - 1 full validator 90.064 us/op 86.057 us/op 1.05
BeaconState.hashTreeRoot - 32 full validator 1.0397 ms/op 929.87 us/op 1.12
BeaconState.hashTreeRoot - 512 full validator 18.436 ms/op 7.9929 ms/op 2.31
BeaconState.hashTreeRoot - 1 validator.effectiveBalance 133.71 us/op 101.17 us/op 1.32
BeaconState.hashTreeRoot - 32 validator.effectiveBalance 1.7057 ms/op 2.0910 ms/op 0.82
BeaconState.hashTreeRoot - 512 validator.effectiveBalance 24.305 ms/op 22.425 ms/op 1.08
BeaconState.hashTreeRoot - 1 balances 127.75 us/op 106.92 us/op 1.19
BeaconState.hashTreeRoot - 32 balances 1.1977 ms/op 1.2001 ms/op 1.00
BeaconState.hashTreeRoot - 512 balances 8.9187 ms/op 7.8300 ms/op 1.14
BeaconState.hashTreeRoot - 250000 balances 212.50 ms/op 154.30 ms/op 1.38
aggregationBits - 2048 els - zipIndexesInBitList 26.561 us/op 19.401 us/op 1.37
byteArrayEquals 32 55.410 ns/op 48.240 ns/op 1.15
Buffer.compare 32 17.792 ns/op 15.779 ns/op 1.13
byteArrayEquals 1024 1.6210 us/op 1.2787 us/op 1.27
Buffer.compare 1024 25.268 ns/op 23.453 ns/op 1.08
byteArrayEquals 16384 25.703 us/op 20.565 us/op 1.25
Buffer.compare 16384 205.49 ns/op 176.22 ns/op 1.17
byteArrayEquals 123687377 200.74 ms/op 154.32 ms/op 1.30
Buffer.compare 123687377 11.535 ms/op 4.8359 ms/op 2.39
byteArrayEquals 32 - diff last byte 56.921 ns/op 48.551 ns/op 1.17
Buffer.compare 32 - diff last byte 19.337 ns/op 16.056 ns/op 1.20
byteArrayEquals 1024 - diff last byte 1.7320 us/op 1.2938 us/op 1.34
Buffer.compare 1024 - diff last byte 28.810 ns/op 23.467 ns/op 1.23
byteArrayEquals 16384 - diff last byte 34.528 us/op 20.455 us/op 1.69
Buffer.compare 16384 - diff last byte 205.61 ns/op 210.83 ns/op 0.98
byteArrayEquals 123687377 - diff last byte 199.76 ms/op 149.50 ms/op 1.34
Buffer.compare 123687377 - diff last byte 7.4832 ms/op 4.5778 ms/op 1.63
byteArrayEquals 32 - random bytes 5.2660 ns/op 4.7850 ns/op 1.10
Buffer.compare 32 - random bytes 18.018 ns/op 15.197 ns/op 1.19
byteArrayEquals 1024 - random bytes 5.2880 ns/op 4.7840 ns/op 1.11
Buffer.compare 1024 - random bytes 18.321 ns/op 15.062 ns/op 1.22
byteArrayEquals 16384 - random bytes 5.3890 ns/op 4.7760 ns/op 1.13
Buffer.compare 16384 - random bytes 17.641 ns/op 15.072 ns/op 1.17
byteArrayEquals 123687377 - random bytes 6.4100 ns/op 7.7500 ns/op 0.83
Buffer.compare 123687377 - random bytes 18.620 ns/op 20.400 ns/op 0.91
regular array get 100000 times 33.206 us/op 30.207 us/op 1.10
wrappedArray get 100000 times 34.592 us/op 30.554 us/op 1.13
arrayWithProxy get 100000 times 13.296 ms/op 8.6311 ms/op 1.54
ssz.Root.equals 45.809 ns/op 43.106 ns/op 1.06
byteArrayEquals 45.133 ns/op 38.280 ns/op 1.18
Buffer.compare 10.370 ns/op 8.7990 ns/op 1.18
processSlot - 1 slots 16.238 us/op 10.861 us/op 1.50
processSlot - 32 slots 3.5330 ms/op 2.3413 ms/op 1.51
getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei 37.363 ms/op 40.651 ms/op 0.92
getCommitteeAssignments - req 1 vs - 250000 vc 2.1631 ms/op 1.8414 ms/op 1.17
getCommitteeAssignments - req 100 vs - 250000 vc 4.2044 ms/op 3.5157 ms/op 1.20
getCommitteeAssignments - req 1000 vs - 250000 vc 4.4711 ms/op 3.8237 ms/op 1.17
findModifiedValidators - 10000 modified validators 245.13 ms/op 212.69 ms/op 1.15
findModifiedValidators - 1000 modified validators 164.16 ms/op 136.38 ms/op 1.20
findModifiedValidators - 100 modified validators 168.27 ms/op 144.35 ms/op 1.17
findModifiedValidators - 10 modified validators 167.39 ms/op 132.33 ms/op 1.26
findModifiedValidators - 1 modified validators 166.54 ms/op 145.31 ms/op 1.15
findModifiedValidators - no difference 179.52 ms/op 131.56 ms/op 1.36
compare ViewDUs 3.4187 s/op 3.2852 s/op 1.04
compare each validator Uint8Array 1.5699 s/op 1.0569 s/op 1.49
compare ViewDU to Uint8Array 898.86 ms/op 656.13 ms/op 1.37
migrate state 1000000 validators, 24 modified, 0 new 785.48 ms/op 598.84 ms/op 1.31
migrate state 1000000 validators, 1700 modified, 1000 new 1.0177 s/op 883.03 ms/op 1.15
migrate state 1000000 validators, 3400 modified, 2000 new 1.2656 s/op 1.0697 s/op 1.18
migrate state 1500000 validators, 24 modified, 0 new 819.88 ms/op 769.14 ms/op 1.07
migrate state 1500000 validators, 1700 modified, 1000 new 1.0578 s/op 1.0082 s/op 1.05
migrate state 1500000 validators, 3400 modified, 2000 new 1.2772 s/op 1.2002 s/op 1.06
RootCache.getBlockRootAtSlot - 250000 vs - 7PWei 4.3900 ns/op 6.3300 ns/op 0.69
state getBlockRootAtSlot - 250000 vs - 7PWei 626.35 ns/op 708.17 ns/op 0.88
computeProposers - vc 250000 8.0347 ms/op 7.0096 ms/op 1.15
computeEpochShuffling - vc 250000 41.148 ms/op 35.164 ms/op 1.17
getNextSyncCommittee - vc 250000 134.93 ms/op 113.33 ms/op 1.19
computeSigningRoot for AttestationData 29.662 us/op 22.801 us/op 1.30
hash AttestationData serialized data then Buffer.toString(base64) 1.5300 us/op 1.2966 us/op 1.18
toHexString serialized data 851.41 ns/op 784.88 ns/op 1.08
Buffer.toString(base64) 165.91 ns/op 135.42 ns/op 1.23
nodejs block root to RootHex using toHex 148.43 ns/op 110.49 ns/op 1.34
nodejs block root to RootHex using toRootHex 90.814 ns/op 74.059 ns/op 1.23
browser block root to RootHex using the deprecated toHexString 224.02 ns/op 207.60 ns/op 1.08
browser block root to RootHex using toHex 178.85 ns/op 169.69 ns/op 1.05
browser block root to RootHex using toRootHex 158.75 ns/op 151.30 ns/op 1.05

Please sign in to comment.