lodestar icon indicating copy to clipboard operation
lodestar copied to clipboard

feat: dual export some modules (params, utils, test-utils, spec-test-util)

Open matthewkeil opened this issue 9 months ago • 1 comments

Motivation

I updated the spec tests in blst-ts and the util in lodestar is much better. Need a CJS module though to be able to import it there. Dual-module export of spec-test-util depends on utils so update that one as well. There are some good other test-utils that may be helpful in other repos and the script was already written so exported that as well. That depends on params so updated that also. Sets a pretty good precedent for how we can export packages as dual module should we want to.

Description

  • Adds scripts/fix_dual_modules_lib.mjs
  • Adds scripts/fix_dirname_and_filename.mjs
  • Rename tsconfig.build.json to tsconfig.esm.json for all dual module packages
  • Adds tsconfig.cjs.json to all dual module packages
  • Updates package.json in all dual module packages
    • Correct exports/types/files that are exported/bundled
    • Adds scripts for build process

matthewkeil avatar May 04 '24 11:05 matthewkeil

Performance Report

✔️ no performance regression detected

🚀🚀 Significant benchmark improvement detected

Benchmark suite Current: b84ab1631845b445aae059971efe190f3a508d11 Previous: 8c55820d888d097946e677e78b10f12a1046c7a3 Ratio
BLS verify - blst-native 1.3305 ms/op 4.6220 ms/op 0.29
BLS verifyMultipleSignatures - same message - 32 - blst-native 2.2868 ms/op 7.5494 ms/op 0.30
BLS verifyMultipleSignatures - same message - 64 - blst-native 3.4950 ms/op 10.497 ms/op 0.33
getSlashingsAndExits - 2k 456.70 us/op 2.2596 ms/op 0.20
forkChoice updateHead vc 600000 bc 64 eq 300000 15.894 ms/op 48.872 ms/op 0.33
altair processAttestation - 250000 vs - 7PWei worstcase 3.4939 ms/op 10.646 ms/op 0.33
altair processAttestation - setStatus - 4/5 committees join 777.11 us/op 2.9447 ms/op 0.26
altair processAttestation - setStatus - 100% committees join 903.80 us/op 3.0049 ms/op 0.30
altair processBlock - 250000 vs - 7PWei normalcase hashState 31.074 ms/op 94.917 ms/op 0.33
altair processBlock - 250000 vs - 7PWei worstcase 35.857 ms/op 120.51 ms/op 0.30
altair processBlock - 250000 vs - 7PWei worstcase hashState 89.544 ms/op 329.24 ms/op 0.27
phase0 processBlock - 250000 vs - 7PWei normalcase 2.5616 ms/op 8.8081 ms/op 0.29
phase0 processBlock - 250000 vs - 7PWei worstcase 30.578 ms/op 92.794 ms/op 0.33
altair processEth1Data - 250000 vs - 7PWei normalcase 481.03 us/op 1.9698 ms/op 0.24
getExpectedWithdrawals 250000 eb:0.95,eth1:0.7,we:0.05,wn:0,smpl:18 12.073 us/op 45.205 us/op 0.27
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,nocache,smpl:16384 5.3086 ms/op 16.270 ms/op 0.33
phase0 afterProcessEpoch - 250000 vs - 7PWei 111.16 ms/op 478.32 ms/op 0.23
migrate state 1000000 validators, 1700 modified, 1000 new 1.3736 s/op 4.6549 s/op 0.30
RootCache.getBlockRootAtSlot - 250000 vs - 7PWei 5.5800 ns/op 19.810 ns/op 0.28
computeEpochShuffling - vc 250000 142.10 ms/op 500.90 ms/op 0.28
hash AttestationData serialized data then Buffer.toString(base64) 2.4461 us/op 7.5467 us/op 0.32
toHexString serialized data 1.4267 us/op 4.3130 us/op 0.33
Full benchmark results
Benchmark suite Current: b84ab1631845b445aae059971efe190f3a508d11 Previous: 8c55820d888d097946e677e78b10f12a1046c7a3 Ratio
getPubkeys - index2pubkey - req 1000 vs - 250000 vc 975.18 us/op 2.3029 ms/op 0.42
getPubkeys - validatorsArr - req 1000 vs - 250000 vc 109.17 us/op 242.33 us/op 0.45
BLS verify - blst-native 1.3305 ms/op 4.6220 ms/op 0.29
BLS verifyMultipleSignatures 3 - blst-native 2.5453 ms/op 7.2131 ms/op 0.35
BLS verifyMultipleSignatures 8 - blst-native 5.4287 ms/op 14.164 ms/op 0.38
BLS verifyMultipleSignatures 32 - blst-native 20.148 ms/op 41.266 ms/op 0.49
BLS verifyMultipleSignatures 64 - blst-native 39.066 ms/op 113.27 ms/op 0.34
BLS verifyMultipleSignatures 128 - blst-native 76.924 ms/op 177.83 ms/op 0.43
BLS deserializing 10000 signatures 895.09 ms/op 2.5177 s/op 0.36
BLS deserializing 100000 signatures 8.9474 s/op 24.749 s/op 0.36
BLS verifyMultipleSignatures - same message - 3 - blst-native 1.3186 ms/op 3.6470 ms/op 0.36
BLS verifyMultipleSignatures - same message - 8 - blst-native 1.5024 ms/op 4.2004 ms/op 0.36
BLS verifyMultipleSignatures - same message - 32 - blst-native 2.2868 ms/op 7.5494 ms/op 0.30
BLS verifyMultipleSignatures - same message - 64 - blst-native 3.4950 ms/op 10.497 ms/op 0.33
BLS verifyMultipleSignatures - same message - 128 - blst-native 5.7275 ms/op 16.639 ms/op 0.34
BLS aggregatePubkeys 32 - blst-native 29.179 us/op 71.598 us/op 0.41
BLS aggregatePubkeys 128 - blst-native 110.98 us/op 295.81 us/op 0.38
notSeenSlots=1 numMissedVotes=1 numBadVotes=10 61.383 ms/op 132.90 ms/op 0.46
notSeenSlots=1 numMissedVotes=0 numBadVotes=4 56.936 ms/op 127.17 ms/op 0.45
notSeenSlots=2 numMissedVotes=1 numBadVotes=10 38.233 ms/op 98.591 ms/op 0.39
getSlashingsAndExits - default max 182.92 us/op 521.95 us/op 0.35
getSlashingsAndExits - 2k 456.70 us/op 2.2596 ms/op 0.20
proposeBlockBody type=full, size=empty 6.1686 ms/op 12.699 ms/op 0.49
isKnown best case - 1 super set check 543.00 ns/op 882.00 ns/op 0.62
isKnown normal case - 2 super set checks 462.00 ns/op 760.00 ns/op 0.61
isKnown worse case - 16 super set checks 401.00 ns/op 610.00 ns/op 0.66
InMemoryCheckpointStateCache - add get delete 6.7480 us/op 14.577 us/op 0.46
validate api signedAggregateAndProof - struct 2.4084 ms/op 3.3289 ms/op 0.72
validate gossip signedAggregateAndProof - struct 2.4345 ms/op 3.1935 ms/op 0.76
validate gossip attestation - vc 640000 1.3617 ms/op 1.7124 ms/op 0.80
batch validate gossip attestation - vc 640000 - chunk 32 167.30 us/op 198.34 us/op 0.84
batch validate gossip attestation - vc 640000 - chunk 64 154.32 us/op 192.42 us/op 0.80
batch validate gossip attestation - vc 640000 - chunk 128 151.10 us/op 178.30 us/op 0.85
batch validate gossip attestation - vc 640000 - chunk 256 147.17 us/op 171.99 us/op 0.86
pickEth1Vote - no votes 1.2925 ms/op 1.5660 ms/op 0.83
pickEth1Vote - max votes 11.480 ms/op 10.131 ms/op 1.13
pickEth1Vote - Eth1Data hashTreeRoot value x2048 18.287 ms/op 21.705 ms/op 0.84
pickEth1Vote - Eth1Data hashTreeRoot tree x2048 20.885 ms/op 29.042 ms/op 0.72
pickEth1Vote - Eth1Data fastSerialize value x2048 625.27 us/op 888.39 us/op 0.70
pickEth1Vote - Eth1Data fastSerialize tree x2048 8.4061 ms/op 7.6711 ms/op 1.10
bytes32 toHexString 646.00 ns/op 708.00 ns/op 0.91
bytes32 Buffer.toString(hex) 299.00 ns/op 369.00 ns/op 0.81
bytes32 Buffer.toString(hex) from Uint8Array 493.00 ns/op 538.00 ns/op 0.92
bytes32 Buffer.toString(hex) + 0x 304.00 ns/op 388.00 ns/op 0.78
Object access 1 prop 0.16400 ns/op 0.24000 ns/op 0.68
Map access 1 prop 0.16000 ns/op 0.25000 ns/op 0.64
Object get x1000 7.8460 ns/op 8.8980 ns/op 0.88
Map get x1000 0.77600 ns/op 0.92900 ns/op 0.84
Object set x1000 49.876 ns/op 76.016 ns/op 0.66
Map set x1000 39.736 ns/op 53.552 ns/op 0.74
Return object 10000 times 0.24000 ns/op 0.27560 ns/op 0.87
Throw Error 10000 times 3.9986 us/op 5.3164 us/op 0.75
fastMsgIdFn sha256 / 200 bytes 3.4090 us/op 4.0820 us/op 0.84
fastMsgIdFn h32 xxhash / 200 bytes 331.00 ns/op 421.00 ns/op 0.79
fastMsgIdFn h64 xxhash / 200 bytes 391.00 ns/op 429.00 ns/op 0.91
fastMsgIdFn sha256 / 1000 bytes 11.557 us/op 14.245 us/op 0.81
fastMsgIdFn h32 xxhash / 1000 bytes 463.00 ns/op 726.00 ns/op 0.64
fastMsgIdFn h64 xxhash / 1000 bytes 456.00 ns/op 737.00 ns/op 0.62
fastMsgIdFn sha256 / 10000 bytes 104.13 us/op 187.20 us/op 0.56
fastMsgIdFn h32 xxhash / 10000 bytes 2.0600 us/op 2.8300 us/op 0.73
fastMsgIdFn h64 xxhash / 10000 bytes 1.4170 us/op 2.4660 us/op 0.57
send data - 1000 256B messages 19.018 ms/op 32.836 ms/op 0.58
send data - 1000 512B messages 25.832 ms/op 40.521 ms/op 0.64
send data - 1000 1024B messages 41.155 ms/op 84.961 ms/op 0.48
send data - 1000 1200B messages 29.040 ms/op 60.476 ms/op 0.48
send data - 1000 2048B messages 37.012 ms/op 64.310 ms/op 0.58
send data - 1000 4096B messages 37.670 ms/op 78.691 ms/op 0.48
send data - 1000 16384B messages 94.192 ms/op 146.65 ms/op 0.64
send data - 1000 65536B messages 324.96 ms/op 611.10 ms/op 0.53
enrSubnets - fastDeserialize 64 bits 1.2880 us/op 2.1060 us/op 0.61
enrSubnets - ssz BitVector 64 bits 456.00 ns/op 695.00 ns/op 0.66
enrSubnets - fastDeserialize 4 bits 179.00 ns/op 247.00 ns/op 0.72
enrSubnets - ssz BitVector 4 bits 474.00 ns/op 666.00 ns/op 0.71
prioritizePeers score -10:0 att 32-0.1 sync 2-0 218.53 us/op 431.17 us/op 0.51
prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 296.49 us/op 607.33 us/op 0.49
prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 384.81 us/op 643.22 us/op 0.60
prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 601.29 us/op 865.74 us/op 0.69
prioritizePeers score 0:0 att 64-1 sync 4-1 738.73 us/op 1.5802 ms/op 0.47
array of 16000 items push then shift 1.6245 us/op 2.0285 us/op 0.80
LinkedList of 16000 items push then shift 9.1050 ns/op 11.112 ns/op 0.82
array of 16000 items push then pop 93.561 ns/op 186.22 ns/op 0.50
LinkedList of 16000 items push then pop 8.6990 ns/op 17.679 ns/op 0.49
array of 24000 items push then shift 2.6055 us/op 3.6848 us/op 0.71
LinkedList of 24000 items push then shift 9.2090 ns/op 12.309 ns/op 0.75
array of 24000 items push then pop 150.06 ns/op 167.87 ns/op 0.89
LinkedList of 24000 items push then pop 9.7380 ns/op 11.313 ns/op 0.86
intersect bitArray bitLen 8 5.8610 ns/op 7.5290 ns/op 0.78
intersect array and set length 8 64.654 ns/op 83.034 ns/op 0.78
intersect bitArray bitLen 128 36.947 ns/op 43.841 ns/op 0.84
intersect array and set length 128 900.23 ns/op 1.0799 us/op 0.83
bitArray.getTrueBitIndexes() bitLen 128 1.7110 us/op 2.0070 us/op 0.85
bitArray.getTrueBitIndexes() bitLen 248 2.6700 us/op 3.6230 us/op 0.74
bitArray.getTrueBitIndexes() bitLen 512 5.1580 us/op 8.8410 us/op 0.58
Buffer.concat 32 items 1.0160 us/op 1.4520 us/op 0.70
Uint8Array.set 32 items 2.2740 us/op 2.4790 us/op 0.92
Set add up to 64 items then delete first 4.7169 us/op 7.0549 us/op 0.67
OrderedSet add up to 64 items then delete first 5.7156 us/op 8.5126 us/op 0.67
Set add up to 64 items then delete last 4.7468 us/op 6.1580 us/op 0.77
OrderedSet add up to 64 items then delete last 6.6794 us/op 9.8331 us/op 0.68
Set add up to 64 items then delete middle 4.9400 us/op 6.1083 us/op 0.81
OrderedSet add up to 64 items then delete middle 8.2549 us/op 9.6719 us/op 0.85
Set add up to 128 items then delete first 10.305 us/op 12.588 us/op 0.82
OrderedSet add up to 128 items then delete first 12.603 us/op 16.187 us/op 0.78
Set add up to 128 items then delete last 9.5213 us/op 12.185 us/op 0.78
OrderedSet add up to 128 items then delete last 12.689 us/op 15.338 us/op 0.83
Set add up to 128 items then delete middle 9.2525 us/op 12.271 us/op 0.75
OrderedSet add up to 128 items then delete middle 18.339 us/op 22.606 us/op 0.81
Set add up to 256 items then delete first 19.134 us/op 25.144 us/op 0.76
OrderedSet add up to 256 items then delete first 24.043 us/op 34.591 us/op 0.70
Set add up to 256 items then delete last 18.371 us/op 24.789 us/op 0.74
OrderedSet add up to 256 items then delete last 24.784 us/op 32.742 us/op 0.76
Set add up to 256 items then delete middle 18.709 us/op 25.820 us/op 0.72
OrderedSet add up to 256 items then delete middle 46.363 us/op 61.515 us/op 0.75
transfer serialized Status (84 B) 1.6890 us/op 2.4020 us/op 0.70
copy serialized Status (84 B) 1.2380 us/op 1.7540 us/op 0.71
transfer serialized SignedVoluntaryExit (112 B) 1.7590 us/op 2.4020 us/op 0.73
copy serialized SignedVoluntaryExit (112 B) 1.2820 us/op 1.7840 us/op 0.72
transfer serialized ProposerSlashing (416 B) 2.3910 us/op 2.6750 us/op 0.89
copy serialized ProposerSlashing (416 B) 2.1260 us/op 2.3400 us/op 0.91
transfer serialized Attestation (485 B) 2.8440 us/op 2.7310 us/op 1.04
copy serialized Attestation (485 B) 2.6550 us/op 2.4700 us/op 1.07
transfer serialized AttesterSlashing (33232 B) 2.1770 us/op 2.3550 us/op 0.92
copy serialized AttesterSlashing (33232 B) 4.6990 us/op 7.5150 us/op 0.63
transfer serialized Small SignedBeaconBlock (128000 B) 2.4310 us/op 2.9510 us/op 0.82
copy serialized Small SignedBeaconBlock (128000 B) 13.239 us/op 25.524 us/op 0.52
transfer serialized Avg SignedBeaconBlock (200000 B) 3.3790 us/op 4.9100 us/op 0.69
copy serialized Avg SignedBeaconBlock (200000 B) 21.099 us/op 38.146 us/op 0.55
transfer serialized BlobsSidecar (524380 B) 3.0350 us/op 5.0500 us/op 0.60
copy serialized BlobsSidecar (524380 B) 82.513 us/op 111.45 us/op 0.74
transfer serialized Big SignedBeaconBlock (1000000 B) 3.1460 us/op 5.1350 us/op 0.61
copy serialized Big SignedBeaconBlock (1000000 B) 154.67 us/op 202.15 us/op 0.77
pass gossip attestations to forkchoice per slot 3.8130 ms/op 6.7785 ms/op 0.56
forkChoice updateHead vc 100000 bc 64 eq 0 715.32 us/op 1.2608 ms/op 0.57
forkChoice updateHead vc 600000 bc 64 eq 0 4.2154 ms/op 5.7986 ms/op 0.73
forkChoice updateHead vc 1000000 bc 64 eq 0 6.9910 ms/op 11.661 ms/op 0.60
forkChoice updateHead vc 600000 bc 320 eq 0 4.1813 ms/op 8.4573 ms/op 0.49
forkChoice updateHead vc 600000 bc 1200 eq 0 4.2849 ms/op 10.871 ms/op 0.39
forkChoice updateHead vc 600000 bc 7200 eq 0 5.8000 ms/op 12.849 ms/op 0.45
forkChoice updateHead vc 600000 bc 64 eq 1000 11.137 ms/op 24.805 ms/op 0.45
forkChoice updateHead vc 600000 bc 64 eq 10000 11.911 ms/op 15.513 ms/op 0.77
forkChoice updateHead vc 600000 bc 64 eq 300000 15.894 ms/op 48.872 ms/op 0.33
computeDeltas 500000 validators 300 proto nodes 6.6392 ms/op 14.398 ms/op 0.46
computeDeltas 500000 validators 1200 proto nodes 6.4626 ms/op 13.345 ms/op 0.48
computeDeltas 500000 validators 7200 proto nodes 6.4249 ms/op 10.291 ms/op 0.62
computeDeltas 750000 validators 300 proto nodes 9.6543 ms/op 14.484 ms/op 0.67
computeDeltas 750000 validators 1200 proto nodes 9.5955 ms/op 13.783 ms/op 0.70
computeDeltas 750000 validators 7200 proto nodes 9.6249 ms/op 13.164 ms/op 0.73
computeDeltas 1400000 validators 300 proto nodes 18.146 ms/op 25.279 ms/op 0.72
computeDeltas 1400000 validators 1200 proto nodes 18.657 ms/op 25.346 ms/op 0.74
computeDeltas 1400000 validators 7200 proto nodes 17.955 ms/op 19.808 ms/op 0.91
computeDeltas 2100000 validators 300 proto nodes 27.430 ms/op 37.939 ms/op 0.72
computeDeltas 2100000 validators 1200 proto nodes 27.295 ms/op 59.623 ms/op 0.46
computeDeltas 2100000 validators 7200 proto nodes 28.167 ms/op 55.428 ms/op 0.51
altair processAttestation - 250000 vs - 7PWei normalcase 2.2463 ms/op 5.2133 ms/op 0.43
altair processAttestation - 250000 vs - 7PWei worstcase 3.4939 ms/op 10.646 ms/op 0.33
altair processAttestation - setStatus - 1/6 committees join 170.59 us/op 470.01 us/op 0.36
altair processAttestation - setStatus - 1/3 committees join 358.50 us/op 814.17 us/op 0.44
altair processAttestation - setStatus - 1/2 committees join 451.40 us/op 1.2769 ms/op 0.35
altair processAttestation - setStatus - 2/3 committees join 586.66 us/op 1.7340 ms/op 0.34
altair processAttestation - setStatus - 4/5 committees join 777.11 us/op 2.9447 ms/op 0.26
altair processAttestation - setStatus - 100% committees join 903.80 us/op 3.0049 ms/op 0.30
altair processBlock - 250000 vs - 7PWei normalcase 8.9623 ms/op 24.380 ms/op 0.37
altair processBlock - 250000 vs - 7PWei normalcase hashState 31.074 ms/op 94.917 ms/op 0.33
altair processBlock - 250000 vs - 7PWei worstcase 35.857 ms/op 120.51 ms/op 0.30
altair processBlock - 250000 vs - 7PWei worstcase hashState 89.544 ms/op 329.24 ms/op 0.27
phase0 processBlock - 250000 vs - 7PWei normalcase 2.5616 ms/op 8.8081 ms/op 0.29
phase0 processBlock - 250000 vs - 7PWei worstcase 30.578 ms/op 92.794 ms/op 0.33
altair processEth1Data - 250000 vs - 7PWei normalcase 481.03 us/op 1.9698 ms/op 0.24
getExpectedWithdrawals 250000 eb:1,eth1:1,we:0,wn:0,smpl:15 16.177 us/op 41.794 us/op 0.39
getExpectedWithdrawals 250000 eb:0.95,eth1:0.1,we:0.05,wn:0,smpl:219 67.376 us/op 117.08 us/op 0.58
getExpectedWithdrawals 250000 eb:0.95,eth1:0.3,we:0.05,wn:0,smpl:42 27.012 us/op 64.244 us/op 0.42
getExpectedWithdrawals 250000 eb:0.95,eth1:0.7,we:0.05,wn:0,smpl:18 12.073 us/op 45.205 us/op 0.27
getExpectedWithdrawals 250000 eb:0.1,eth1:0.1,we:0,wn:0,smpl:1020 207.57 us/op 314.82 us/op 0.66
getExpectedWithdrawals 250000 eb:0.03,eth1:0.03,we:0,wn:0,smpl:11777 1.6715 ms/op 3.6116 ms/op 0.46
getExpectedWithdrawals 250000 eb:0.01,eth1:0.01,we:0,wn:0,smpl:16384 2.0527 ms/op 4.4367 ms/op 0.46
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,smpl:16384 1.9621 ms/op 4.3347 ms/op 0.45
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,nocache,smpl:16384 3.6717 ms/op 8.7883 ms/op 0.42
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,smpl:16384 3.0704 ms/op 7.7213 ms/op 0.40
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,nocache,smpl:16384 5.3086 ms/op 16.270 ms/op 0.33
Tree 40 250000 create 336.57 ms/op 1.0421 s/op 0.32
Tree 40 250000 get(125000) 205.44 ns/op 621.35 ns/op 0.33
Tree 40 250000 set(125000) 745.18 ns/op 3.0284 us/op 0.25
Tree 40 250000 toArray() 21.053 ms/op 44.971 ms/op 0.47
Tree 40 250000 iterate all - toArray() + loop 20.476 ms/op 44.999 ms/op 0.46
Tree 40 250000 iterate all - get(i) 72.184 ms/op 260.23 ms/op 0.28
MutableVector 250000 create 17.614 ms/op 46.855 ms/op 0.38
MutableVector 250000 get(125000) 6.9690 ns/op 19.321 ns/op 0.36
MutableVector 250000 set(125000) 305.10 ns/op 1.3137 us/op 0.23
MutableVector 250000 toArray() 3.8571 ms/op 9.1841 ms/op 0.42
MutableVector 250000 iterate all - toArray() + loop 3.6704 ms/op 12.201 ms/op 0.30
MutableVector 250000 iterate all - get(i) 1.5066 ms/op 5.8402 ms/op 0.26
Array 250000 create 3.4506 ms/op 7.9029 ms/op 0.44
Array 250000 clone - spread 1.2803 ms/op 3.9764 ms/op 0.32
Array 250000 get(125000) 1.0780 ns/op 5.0550 ns/op 0.21
Array 250000 set(125000) 4.2290 ns/op 15.946 ns/op 0.27
Array 250000 iterate all - loop 164.58 us/op 627.57 us/op 0.26
effectiveBalanceIncrements clone Uint8Array 300000 34.805 us/op 91.245 us/op 0.38
effectiveBalanceIncrements clone MutableVector 300000 418.00 ns/op 1.4380 us/op 0.29
effectiveBalanceIncrements rw all Uint8Array 300000 199.72 us/op 681.29 us/op 0.29
effectiveBalanceIncrements rw all MutableVector 300000 89.207 ms/op 434.77 ms/op 0.21
phase0 afterProcessEpoch - 250000 vs - 7PWei 111.16 ms/op 478.32 ms/op 0.23
phase0 beforeProcessEpoch - 250000 vs - 7PWei 50.965 ms/op 123.49 ms/op 0.41
altair processEpoch - mainnet_e81889 521.78 ms/op 959.39 ms/op 0.54
mainnet_e81889 - altair beforeProcessEpoch 73.021 ms/op 160.22 ms/op 0.46
mainnet_e81889 - altair processJustificationAndFinalization 22.249 us/op 53.413 us/op 0.42
mainnet_e81889 - altair processInactivityUpdates 5.2347 ms/op 9.1277 ms/op 0.57
mainnet_e81889 - altair processRewardsAndPenalties 69.975 ms/op 120.70 ms/op 0.58
mainnet_e81889 - altair processRegistryUpdates 2.3360 us/op 5.4250 us/op 0.43
mainnet_e81889 - altair processSlashings 586.00 ns/op 853.00 ns/op 0.69
mainnet_e81889 - altair processEth1DataReset 656.00 ns/op 1.2180 us/op 0.54
mainnet_e81889 - altair processEffectiveBalanceUpdates 2.5044 ms/op 6.2420 ms/op 0.40
mainnet_e81889 - altair processSlashingsReset 4.6020 us/op 9.1910 us/op 0.50
mainnet_e81889 - altair processRandaoMixesReset 6.6600 us/op 5.3550 us/op 1.24
mainnet_e81889 - altair processHistoricalRootsUpdate 959.00 ns/op 896.00 ns/op 1.07
mainnet_e81889 - altair processParticipationFlagUpdates 3.7420 us/op 7.5430 us/op 0.50
mainnet_e81889 - altair processSyncCommitteeUpdates 1000.0 ns/op 2.7760 us/op 0.36
mainnet_e81889 - altair afterProcessEpoch 121.94 ms/op 195.28 ms/op 0.62
capella processEpoch - mainnet_e217614 1.6949 s/op 2.3104 s/op 0.73
mainnet_e217614 - capella beforeProcessEpoch 288.03 ms/op 348.89 ms/op 0.83
mainnet_e217614 - capella processJustificationAndFinalization 17.648 us/op 19.271 us/op 0.92
mainnet_e217614 - capella processInactivityUpdates 19.764 ms/op 20.650 ms/op 0.96
mainnet_e217614 - capella processRewardsAndPenalties 290.14 ms/op 323.68 ms/op 0.90
mainnet_e217614 - capella processRegistryUpdates 24.217 us/op 25.347 us/op 0.96
mainnet_e217614 - capella processSlashings 455.00 ns/op 489.00 ns/op 0.93
mainnet_e217614 - capella processEth1DataReset 515.00 ns/op 445.00 ns/op 1.16
mainnet_e217614 - capella processEffectiveBalanceUpdates 14.472 ms/op 5.0352 ms/op 2.87
mainnet_e217614 - capella processSlashingsReset 2.9520 us/op 3.0600 us/op 0.96
mainnet_e217614 - capella processRandaoMixesReset 4.1920 us/op 4.4080 us/op 0.95
mainnet_e217614 - capella processHistoricalRootsUpdate 798.00 ns/op 604.00 ns/op 1.32
mainnet_e217614 - capella processParticipationFlagUpdates 1.9480 us/op 1.3410 us/op 1.45
mainnet_e217614 - capella afterProcessEpoch 352.19 ms/op 397.69 ms/op 0.89
phase0 processEpoch - mainnet_e58758 560.31 ms/op 553.38 ms/op 1.01
mainnet_e58758 - phase0 beforeProcessEpoch 136.04 ms/op 206.70 ms/op 0.66
mainnet_e58758 - phase0 processJustificationAndFinalization 17.902 us/op 21.247 us/op 0.84
mainnet_e58758 - phase0 processRewardsAndPenalties 34.101 ms/op 44.161 ms/op 0.77
mainnet_e58758 - phase0 processRegistryUpdates 12.947 us/op 11.768 us/op 1.10
mainnet_e58758 - phase0 processSlashings 648.00 ns/op 475.00 ns/op 1.36
mainnet_e58758 - phase0 processEth1DataReset 530.00 ns/op 504.00 ns/op 1.05
mainnet_e58758 - phase0 processEffectiveBalanceUpdates 1.3307 ms/op 1.9309 ms/op 0.69
mainnet_e58758 - phase0 processSlashingsReset 5.2520 us/op 4.8400 us/op 1.09
mainnet_e58758 - phase0 processRandaoMixesReset 6.3210 us/op 7.2610 us/op 0.87
mainnet_e58758 - phase0 processHistoricalRootsUpdate 713.00 ns/op 720.00 ns/op 0.99
mainnet_e58758 - phase0 processParticipationRecordUpdates 5.6190 us/op 6.0190 us/op 0.93
mainnet_e58758 - phase0 afterProcessEpoch 103.25 ms/op 214.48 ms/op 0.48
phase0 processEffectiveBalanceUpdates - 250000 normalcase 1.3410 ms/op 1.8546 ms/op 0.72
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 1.8165 ms/op 1.7389 ms/op 1.04
altair processInactivityUpdates - 250000 normalcase 20.148 ms/op 25.693 ms/op 0.78
altair processInactivityUpdates - 250000 worstcase 18.936 ms/op 39.047 ms/op 0.48
phase0 processRegistryUpdates - 250000 normalcase 14.243 us/op 14.436 us/op 0.99
phase0 processRegistryUpdates - 250000 badcase_full_deposits 508.27 us/op 847.30 us/op 0.60
phase0 processRegistryUpdates - 250000 worstcase 0.5 169.71 ms/op 219.19 ms/op 0.77
altair processRewardsAndPenalties - 250000 normalcase 47.585 ms/op 70.435 ms/op 0.68
altair processRewardsAndPenalties - 250000 worstcase 50.334 ms/op 61.309 ms/op 0.82
phase0 getAttestationDeltas - 250000 normalcase 9.0161 ms/op 14.521 ms/op 0.62
phase0 getAttestationDeltas - 250000 worstcase 9.5730 ms/op 12.249 ms/op 0.78
phase0 processSlashings - 250000 worstcase 128.49 us/op 92.518 us/op 1.39
altair processSyncCommitteeUpdates - 250000 154.14 ms/op 213.08 ms/op 0.72
BeaconState.hashTreeRoot - No change 529.00 ns/op 960.00 ns/op 0.55
BeaconState.hashTreeRoot - 1 full validator 129.38 us/op 194.16 us/op 0.67
BeaconState.hashTreeRoot - 32 full validator 2.0305 ms/op 1.9199 ms/op 1.06
BeaconState.hashTreeRoot - 512 full validator 19.201 ms/op 27.923 ms/op 0.69
BeaconState.hashTreeRoot - 1 validator.effectiveBalance 162.40 us/op 283.44 us/op 0.57
BeaconState.hashTreeRoot - 32 validator.effectiveBalance 2.5640 ms/op 3.0884 ms/op 0.83
BeaconState.hashTreeRoot - 512 validator.effectiveBalance 28.875 ms/op 30.902 ms/op 0.93
BeaconState.hashTreeRoot - 1 balances 125.23 us/op 191.49 us/op 0.65
BeaconState.hashTreeRoot - 32 balances 1.1911 ms/op 1.5638 ms/op 0.76
BeaconState.hashTreeRoot - 512 balances 10.228 ms/op 20.024 ms/op 0.51
BeaconState.hashTreeRoot - 250000 balances 252.47 ms/op 281.13 ms/op 0.90
aggregationBits - 2048 els - zipIndexesInBitList 35.513 us/op 37.695 us/op 0.94
byteArrayEquals 32 77.123 ns/op 164.66 ns/op 0.47
Buffer.compare 32 57.166 ns/op 128.39 ns/op 0.45
byteArrayEquals 1024 2.3441 us/op 6.0662 us/op 0.39
Buffer.compare 1024 75.842 ns/op 208.96 ns/op 0.36
byteArrayEquals 16384 36.497 us/op 52.783 us/op 0.69
Buffer.compare 16384 311.18 ns/op 336.36 ns/op 0.93
byteArrayEquals 123687377 253.11 ms/op 422.08 ms/op 0.60
Buffer.compare 123687377 10.094 ms/op 8.8872 ms/op 1.14
byteArrayEquals 32 - diff last byte 78.574 ns/op 102.57 ns/op 0.77
Buffer.compare 32 - diff last byte 60.329 ns/op 88.388 ns/op 0.68
byteArrayEquals 1024 - diff last byte 2.1396 us/op 4.2711 us/op 0.50
Buffer.compare 1024 - diff last byte 75.048 ns/op 126.94 ns/op 0.59
byteArrayEquals 16384 - diff last byte 33.019 us/op 49.907 us/op 0.66
Buffer.compare 16384 - diff last byte 277.14 ns/op 343.93 ns/op 0.81
byteArrayEquals 123687377 - diff last byte 249.18 ms/op 482.80 ms/op 0.52
Buffer.compare 123687377 - diff last byte 11.380 ms/op 9.1040 ms/op 1.25
byteArrayEquals 32 - random bytes 7.2840 ns/op 12.403 ns/op 0.59
Buffer.compare 32 - random bytes 70.270 ns/op 127.04 ns/op 0.55
byteArrayEquals 1024 - random bytes 6.8460 ns/op 14.640 ns/op 0.47
Buffer.compare 1024 - random bytes 65.300 ns/op 135.09 ns/op 0.48
byteArrayEquals 16384 - random bytes 6.8920 ns/op 16.974 ns/op 0.41
Buffer.compare 16384 - random bytes 67.710 ns/op 174.58 ns/op 0.39
byteArrayEquals 123687377 - random bytes 11.730 ns/op 25.280 ns/op 0.46
Buffer.compare 123687377 - random bytes 80.610 ns/op 190.83 ns/op 0.42
regular array get 100000 times 49.741 us/op 110.71 us/op 0.45
wrappedArray get 100000 times 50.407 us/op 100.81 us/op 0.50
arrayWithProxy get 100000 times 15.760 ms/op 37.669 ms/op 0.42
ssz.Root.equals 60.366 ns/op 168.49 ns/op 0.36
byteArrayEquals 59.316 ns/op 161.81 ns/op 0.37
Buffer.compare 17.677 ns/op 32.746 ns/op 0.54
shuffle list - 16384 els 12.018 ms/op 26.524 ms/op 0.45
shuffle list - 250000 els 170.91 ms/op 380.60 ms/op 0.45
processSlot - 1 slots 26.251 us/op 44.354 us/op 0.59
processSlot - 32 slots 5.3212 ms/op 8.1109 ms/op 0.66
getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei 82.417 ms/op 167.01 ms/op 0.49
getCommitteeAssignments - req 1 vs - 250000 vc 3.2414 ms/op 8.7768 ms/op 0.37
getCommitteeAssignments - req 100 vs - 250000 vc 4.5978 ms/op 11.986 ms/op 0.38
getCommitteeAssignments - req 1000 vs - 250000 vc 5.2939 ms/op 14.745 ms/op 0.36
findModifiedValidators - 10000 modified validators 660.16 ms/op 1.1368 s/op 0.58
findModifiedValidators - 1000 modified validators 469.96 ms/op 876.43 ms/op 0.54
findModifiedValidators - 100 modified validators 385.84 ms/op 785.94 ms/op 0.49
findModifiedValidators - 10 modified validators 298.78 ms/op 722.83 ms/op 0.41
findModifiedValidators - 1 modified validators 319.81 ms/op 773.27 ms/op 0.41
findModifiedValidators - no difference 251.45 ms/op 702.18 ms/op 0.36
compare ViewDUs 4.5875 s/op 9.7908 s/op 0.47
compare each validator Uint8Array 1.9742 s/op 3.6924 s/op 0.53
compare ViewDU to Uint8Array 1.6556 s/op 3.9297 s/op 0.42
migrate state 1000000 validators, 24 modified, 0 new 975.08 ms/op 2.5827 s/op 0.38
migrate state 1000000 validators, 1700 modified, 1000 new 1.3736 s/op 4.6549 s/op 0.30
migrate state 1000000 validators, 3400 modified, 2000 new 1.7499 s/op 4.8929 s/op 0.36
migrate state 1500000 validators, 24 modified, 0 new 1.0326 s/op 2.4157 s/op 0.43
migrate state 1500000 validators, 1700 modified, 1000 new 1.8976 s/op 3.9785 s/op 0.48
migrate state 1500000 validators, 3400 modified, 2000 new 2.0605 s/op 5.1021 s/op 0.40
RootCache.getBlockRootAtSlot - 250000 vs - 7PWei 5.5800 ns/op 19.810 ns/op 0.28
state getBlockRootAtSlot - 250000 vs - 7PWei 890.79 ns/op 1.8982 us/op 0.47
computeProposers - vc 250000 13.663 ms/op 31.089 ms/op 0.44
computeEpochShuffling - vc 250000 142.10 ms/op 500.90 ms/op 0.28
getNextSyncCommittee - vc 250000 196.26 ms/op 561.19 ms/op 0.35
computeSigningRoot for AttestationData 35.149 us/op 92.298 us/op 0.38
hash AttestationData serialized data then Buffer.toString(base64) 2.4461 us/op 7.5467 us/op 0.32
toHexString serialized data 1.4267 us/op 4.3130 us/op 0.33
Buffer.toString(base64) 273.33 ns/op 810.64 ns/op 0.34

by benchmarkbot/action

github-actions[bot] avatar May 04 '24 12:05 github-actions[bot]