-
-
Notifications
You must be signed in to change notification settings - Fork 343
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
fix: use cjs version of hasher #7387
Conversation
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## unstable #7387 +/- ##
=========================================
Coverage 48.62% 48.62%
=========================================
Files 603 603
Lines 40510 40510
Branches 2071 2071
=========================================
Hits 19700 19700
Misses 20772 20772
Partials 38 38 |
|
Benchmark suite | Current: 7f9c97b | Previous: d584aed | Ratio |
---|---|---|---|
getExpectedWithdrawals 250000 eb:1,eth1:1,we:0,wn:0,smpl:15 | 10.623 us/op | 2.7950 us/op | 3.80 |
getExpectedWithdrawals 250000 eb:0.95,eth1:0.1,we:0.05,wn:0,smpl:219 | 61.100 us/op | 17.882 us/op | 3.42 |
Array.fill - length 1000000 | 7.5727 ms/op | 2.2377 ms/op | 3.38 |
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 | 4.8461 ms/op | 1.3412 ms/op | 3.61 |
Full benchmark results
Benchmark suite | Current: 7f9c97b | Previous: d584aed | Ratio |
---|---|---|---|
getPubkeys - index2pubkey - req 1000 vs - 250000 vc | 2.4560 ms/op | 1.5995 ms/op | 1.54 |
getPubkeys - validatorsArr - req 1000 vs - 250000 vc | 60.093 us/op | 32.423 us/op | 1.85 |
BLS verify - blst | 987.81 us/op | 894.82 us/op | 1.10 |
BLS verifyMultipleSignatures 3 - blst | 1.4575 ms/op | 1.3409 ms/op | 1.09 |
BLS verifyMultipleSignatures 8 - blst | 2.0940 ms/op | 2.0534 ms/op | 1.02 |
BLS verifyMultipleSignatures 32 - blst | 6.3097 ms/op | 4.4121 ms/op | 1.43 |
BLS verifyMultipleSignatures 64 - blst | 11.437 ms/op | 8.2600 ms/op | 1.38 |
BLS verifyMultipleSignatures 128 - blst | 19.483 ms/op | 15.677 ms/op | 1.24 |
BLS deserializing 10000 signatures | 753.47 ms/op | 642.86 ms/op | 1.17 |
BLS deserializing 100000 signatures | 7.5360 s/op | 6.6339 s/op | 1.14 |
BLS verifyMultipleSignatures - same message - 3 - blst | 994.67 us/op | 937.64 us/op | 1.06 |
BLS verifyMultipleSignatures - same message - 8 - blst | 1.1138 ms/op | 1.0316 ms/op | 1.08 |
BLS verifyMultipleSignatures - same message - 32 - blst | 1.8478 ms/op | 1.6675 ms/op | 1.11 |
BLS verifyMultipleSignatures - same message - 64 - blst | 2.7839 ms/op | 2.4738 ms/op | 1.13 |
BLS verifyMultipleSignatures - same message - 128 - blst | 4.7091 ms/op | 4.0126 ms/op | 1.17 |
BLS aggregatePubkeys 32 - blst | 21.323 us/op | 18.216 us/op | 1.17 |
BLS aggregatePubkeys 128 - blst | 77.666 us/op | 63.269 us/op | 1.23 |
notSeenSlots=1 numMissedVotes=1 numBadVotes=10 | 104.88 ms/op | 44.756 ms/op | 2.34 |
notSeenSlots=1 numMissedVotes=0 numBadVotes=4 | 59.419 ms/op | 38.669 ms/op | 1.54 |
notSeenSlots=2 numMissedVotes=1 numBadVotes=10 | 43.242 ms/op | 34.266 ms/op | 1.26 |
getSlashingsAndExits - default max | 109.12 us/op | 54.772 us/op | 1.99 |
getSlashingsAndExits - 2k | 364.92 us/op | 254.80 us/op | 1.43 |
proposeBlockBody type=full, size=empty | 6.0387 ms/op | 4.2684 ms/op | 1.41 |
isKnown best case - 1 super set check | 375.00 ns/op | 463.00 ns/op | 0.81 |
isKnown normal case - 2 super set checks | 336.00 ns/op | 438.00 ns/op | 0.77 |
isKnown worse case - 16 super set checks | 309.00 ns/op | 436.00 ns/op | 0.71 |
InMemoryCheckpointStateCache - add get delete | 3.4180 us/op | 2.7120 us/op | 1.26 |
validate api signedAggregateAndProof - struct | 1.6175 ms/op | 2.0252 ms/op | 0.80 |
validate gossip signedAggregateAndProof - struct | 1.8154 ms/op | 1.7471 ms/op | 1.04 |
batch validate gossip attestation - vc 640000 - chunk 32 | 145.60 us/op | 124.62 us/op | 1.17 |
batch validate gossip attestation - vc 640000 - chunk 64 | 131.56 us/op | 102.98 us/op | 1.28 |
batch validate gossip attestation - vc 640000 - chunk 128 | 126.53 us/op | 95.936 us/op | 1.32 |
batch validate gossip attestation - vc 640000 - chunk 256 | 124.78 us/op | 94.064 us/op | 1.33 |
pickEth1Vote - no votes | 1.2020 ms/op | 784.87 us/op | 1.53 |
pickEth1Vote - max votes | 9.3764 ms/op | 4.7289 ms/op | 1.98 |
pickEth1Vote - Eth1Data hashTreeRoot value x2048 | 17.170 ms/op | 18.862 ms/op | 0.91 |
pickEth1Vote - Eth1Data hashTreeRoot tree x2048 | 28.498 ms/op | 21.093 ms/op | 1.35 |
pickEth1Vote - Eth1Data fastSerialize value x2048 | 679.31 us/op | 388.43 us/op | 1.75 |
pickEth1Vote - Eth1Data fastSerialize tree x2048 | 3.8955 ms/op | 3.2427 ms/op | 1.20 |
bytes32 toHexString | 642.00 ns/op | 592.00 ns/op | 1.08 |
bytes32 Buffer.toString(hex) | 275.00 ns/op | 409.00 ns/op | 0.67 |
bytes32 Buffer.toString(hex) from Uint8Array | 488.00 ns/op | 509.00 ns/op | 0.96 |
bytes32 Buffer.toString(hex) + 0x | 279.00 ns/op | 416.00 ns/op | 0.67 |
Object access 1 prop | 0.20200 ns/op | 0.33100 ns/op | 0.61 |
Map access 1 prop | 0.15100 ns/op | 0.32700 ns/op | 0.46 |
Object get x1000 | 6.4380 ns/op | 4.8180 ns/op | 1.34 |
Map get x1000 | 7.1880 ns/op | 5.4930 ns/op | 1.31 |
Object set x1000 | 43.067 ns/op | 22.332 ns/op | 1.93 |
Map set x1000 | 28.690 ns/op | 19.022 ns/op | 1.51 |
Return object 10000 times | 0.33320 ns/op | 0.28150 ns/op | 1.18 |
Throw Error 10000 times | 3.7901 us/op | 2.5034 us/op | 1.51 |
toHex | 169.11 ns/op | 98.527 ns/op | 1.72 |
Buffer.from | 170.69 ns/op | 90.349 ns/op | 1.89 |
shared Buffer | 101.45 ns/op | 60.849 ns/op | 1.67 |
fastMsgIdFn sha256 / 200 bytes | 2.6250 us/op | 1.8710 us/op | 1.40 |
fastMsgIdFn h32 xxhash / 200 bytes | 292.00 ns/op | 384.00 ns/op | 0.76 |
fastMsgIdFn h64 xxhash / 200 bytes | 304.00 ns/op | 425.00 ns/op | 0.72 |
fastMsgIdFn sha256 / 1000 bytes | 7.9650 us/op | 5.7070 us/op | 1.40 |
fastMsgIdFn h32 xxhash / 1000 bytes | 434.00 ns/op | 531.00 ns/op | 0.82 |
fastMsgIdFn h64 xxhash / 1000 bytes | 389.00 ns/op | 506.00 ns/op | 0.77 |
fastMsgIdFn sha256 / 10000 bytes | 70.047 us/op | 46.214 us/op | 1.52 |
fastMsgIdFn h32 xxhash / 10000 bytes | 2.0750 us/op | 1.8090 us/op | 1.15 |
fastMsgIdFn h64 xxhash / 10000 bytes | 1.3470 us/op | 1.2590 us/op | 1.07 |
send data - 1000 256B messages | 15.559 ms/op | 10.374 ms/op | 1.50 |
send data - 1000 512B messages | 19.807 ms/op | 14.851 ms/op | 1.33 |
send data - 1000 1024B messages | 29.343 ms/op | 22.370 ms/op | 1.31 |
send data - 1000 1200B messages | 29.937 ms/op | 24.249 ms/op | 1.23 |
send data - 1000 2048B messages | 33.924 ms/op | 29.278 ms/op | 1.16 |
send data - 1000 4096B messages | 32.763 ms/op | 25.223 ms/op | 1.30 |
send data - 1000 16384B messages | 79.058 ms/op | 65.741 ms/op | 1.20 |
send data - 1000 65536B messages | 233.00 ms/op | 257.96 ms/op | 0.90 |
enrSubnets - fastDeserialize 64 bits | 1.6240 us/op | 1.0700 us/op | 1.52 |
enrSubnets - ssz BitVector 64 bits | 484.00 ns/op | 493.00 ns/op | 0.98 |
enrSubnets - fastDeserialize 4 bits | 204.00 ns/op | 323.00 ns/op | 0.63 |
enrSubnets - ssz BitVector 4 bits | 481.00 ns/op | 500.00 ns/op | 0.96 |
prioritizePeers score -10:0 att 32-0.1 sync 2-0 | 197.47 us/op | 106.50 us/op | 1.85 |
prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 | 215.47 us/op | 128.80 us/op | 1.67 |
prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 | 339.58 us/op | 189.38 us/op | 1.79 |
prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 | 548.85 us/op | 347.90 us/op | 1.58 |
prioritizePeers score 0:0 att 64-1 sync 4-1 | 694.67 us/op | 416.61 us/op | 1.67 |
array of 16000 items push then shift | 1.8034 us/op | 1.2035 us/op | 1.50 |
LinkedList of 16000 items push then shift | 8.7540 ns/op | 7.0750 ns/op | 1.24 |
array of 16000 items push then pop | 132.60 ns/op | 85.527 ns/op | 1.55 |
LinkedList of 16000 items push then pop | 8.0000 ns/op | 6.0900 ns/op | 1.31 |
array of 24000 items push then shift | 2.6688 us/op | 1.7561 us/op | 1.52 |
LinkedList of 24000 items push then shift | 9.0640 ns/op | 6.7800 ns/op | 1.34 |
array of 24000 items push then pop | 178.83 ns/op | 106.25 ns/op | 1.68 |
LinkedList of 24000 items push then pop | 8.6740 ns/op | 5.9720 ns/op | 1.45 |
intersect bitArray bitLen 8 | 7.1130 ns/op | 5.1510 ns/op | 1.38 |
intersect array and set length 8 | 66.226 ns/op | 35.139 ns/op | 1.88 |
intersect bitArray bitLen 128 | 32.684 ns/op | 25.152 ns/op | 1.30 |
intersect array and set length 128 | 894.12 ns/op | 534.40 ns/op | 1.67 |
bitArray.getTrueBitIndexes() bitLen 128 | 1.9750 us/op | 1.2870 us/op | 1.53 |
bitArray.getTrueBitIndexes() bitLen 248 | 3.0750 us/op | 2.1450 us/op | 1.43 |
bitArray.getTrueBitIndexes() bitLen 512 | 6.6950 us/op | 3.7920 us/op | 1.77 |
Buffer.concat 32 items | 1.0640 us/op | 884.00 ns/op | 1.20 |
Uint8Array.set 32 items | 2.2320 us/op | 2.0060 us/op | 1.11 |
Buffer.copy | 3.0990 us/op | 2.8750 us/op | 1.08 |
Uint8Array.set - with subarray | 2.8170 us/op | 2.7440 us/op | 1.03 |
Uint8Array.set - without subarray | 1.8320 us/op | 2.0380 us/op | 0.90 |
getUint32 - dataview | 320.00 ns/op | 384.00 ns/op | 0.83 |
getUint32 - manual | 247.00 ns/op | 325.00 ns/op | 0.76 |
Set add up to 64 items then delete first | 2.9806 us/op | 1.7467 us/op | 1.71 |
OrderedSet add up to 64 items then delete first | 4.5210 us/op | 2.7100 us/op | 1.67 |
Set add up to 64 items then delete last | 3.3974 us/op | 1.9930 us/op | 1.70 |
OrderedSet add up to 64 items then delete last | 5.1921 us/op | 2.8755 us/op | 1.81 |
Set add up to 64 items then delete middle | 3.2851 us/op | 1.8524 us/op | 1.77 |
OrderedSet add up to 64 items then delete middle | 6.7801 us/op | 4.1289 us/op | 1.64 |
Set add up to 128 items then delete first | 6.6301 us/op | 3.6746 us/op | 1.80 |
OrderedSet add up to 128 items then delete first | 10.444 us/op | 6.1900 us/op | 1.69 |
Set add up to 128 items then delete last | 6.4223 us/op | 3.6970 us/op | 1.74 |
OrderedSet add up to 128 items then delete last | 10.033 us/op | 5.7680 us/op | 1.74 |
Set add up to 128 items then delete middle | 6.7353 us/op | 3.9869 us/op | 1.69 |
OrderedSet add up to 128 items then delete middle | 17.279 us/op | 11.371 us/op | 1.52 |
Set add up to 256 items then delete first | 13.539 us/op | 8.1167 us/op | 1.67 |
OrderedSet add up to 256 items then delete first | 19.289 us/op | 12.191 us/op | 1.58 |
Set add up to 256 items then delete last | 13.347 us/op | 7.3972 us/op | 1.80 |
OrderedSet add up to 256 items then delete last | 21.143 us/op | 11.216 us/op | 1.89 |
Set add up to 256 items then delete middle | 12.926 us/op | 7.1300 us/op | 1.81 |
OrderedSet add up to 256 items then delete middle | 48.679 us/op | 32.648 us/op | 1.49 |
transfer serialized Status (84 B) | 3.0070 us/op | 2.2080 us/op | 1.36 |
copy serialized Status (84 B) | 1.6010 us/op | 1.5510 us/op | 1.03 |
transfer serialized SignedVoluntaryExit (112 B) | 3.1520 us/op | 2.8380 us/op | 1.11 |
copy serialized SignedVoluntaryExit (112 B) | 1.6100 us/op | 1.6760 us/op | 0.96 |
transfer serialized ProposerSlashing (416 B) | 4.2830 us/op | 2.7190 us/op | 1.58 |
copy serialized ProposerSlashing (416 B) | 2.5590 us/op | 1.7400 us/op | 1.47 |
transfer serialized Attestation (485 B) | 4.0910 us/op | 2.6130 us/op | 1.57 |
copy serialized Attestation (485 B) | 2.2100 us/op | 1.7780 us/op | 1.24 |
transfer serialized AttesterSlashing (33232 B) | 4.3690 us/op | 2.7070 us/op | 1.61 |
copy serialized AttesterSlashing (33232 B) | 10.003 us/op | 4.1850 us/op | 2.39 |
transfer serialized Small SignedBeaconBlock (128000 B) | 6.3770 us/op | 2.9920 us/op | 2.13 |
copy serialized Small SignedBeaconBlock (128000 B) | 32.987 us/op | 9.6560 us/op | 3.42 |
transfer serialized Avg SignedBeaconBlock (200000 B) | 6.6000 us/op | 3.7420 us/op | 1.76 |
copy serialized Avg SignedBeaconBlock (200000 B) | 42.612 us/op | 14.401 us/op | 2.96 |
transfer serialized BlobsSidecar (524380 B) | 7.4260 us/op | 4.8140 us/op | 1.54 |
copy serialized BlobsSidecar (524380 B) | 225.13 us/op | 78.007 us/op | 2.89 |
transfer serialized Big SignedBeaconBlock (1000000 B) | 6.2030 us/op | 4.8370 us/op | 1.28 |
copy serialized Big SignedBeaconBlock (1000000 B) | 235.09 us/op | 166.04 us/op | 1.42 |
pass gossip attestations to forkchoice per slot | 3.0491 ms/op | 2.2639 ms/op | 1.35 |
forkChoice updateHead vc 100000 bc 64 eq 0 | 550.89 us/op | 332.22 us/op | 1.66 |
forkChoice updateHead vc 600000 bc 64 eq 0 | 4.4652 ms/op | 2.9883 ms/op | 1.49 |
forkChoice updateHead vc 1000000 bc 64 eq 0 | 6.6240 ms/op | 3.7346 ms/op | 1.77 |
forkChoice updateHead vc 600000 bc 320 eq 0 | 3.4285 ms/op | 2.3944 ms/op | 1.43 |
forkChoice updateHead vc 600000 bc 1200 eq 0 | 3.3017 ms/op | 2.3170 ms/op | 1.43 |
forkChoice updateHead vc 600000 bc 7200 eq 0 | 3.9479 ms/op | 2.2980 ms/op | 1.72 |
forkChoice updateHead vc 600000 bc 64 eq 1000 | 11.856 ms/op | 9.4327 ms/op | 1.26 |
forkChoice updateHead vc 600000 bc 64 eq 10000 | 11.552 ms/op | 9.3117 ms/op | 1.24 |
forkChoice updateHead vc 600000 bc 64 eq 300000 | 25.275 ms/op | 11.530 ms/op | 2.19 |
computeDeltas 500000 validators 300 proto nodes | 4.7729 ms/op | 3.2827 ms/op | 1.45 |
computeDeltas 500000 validators 1200 proto nodes | 4.7334 ms/op | 3.4081 ms/op | 1.39 |
computeDeltas 500000 validators 7200 proto nodes | 4.6343 ms/op | 3.3157 ms/op | 1.40 |
computeDeltas 750000 validators 300 proto nodes | 6.6770 ms/op | 4.9541 ms/op | 1.35 |
computeDeltas 750000 validators 1200 proto nodes | 6.6124 ms/op | 4.9877 ms/op | 1.33 |
computeDeltas 750000 validators 7200 proto nodes | 6.9376 ms/op | 4.9948 ms/op | 1.39 |
computeDeltas 1400000 validators 300 proto nodes | 12.344 ms/op | 9.2545 ms/op | 1.33 |
computeDeltas 1400000 validators 1200 proto nodes | 12.933 ms/op | 9.4817 ms/op | 1.36 |
computeDeltas 1400000 validators 7200 proto nodes | 13.879 ms/op | 8.9167 ms/op | 1.56 |
computeDeltas 2100000 validators 300 proto nodes | 23.355 ms/op | 14.099 ms/op | 1.66 |
computeDeltas 2100000 validators 1200 proto nodes | 21.795 ms/op | 13.994 ms/op | 1.56 |
computeDeltas 2100000 validators 7200 proto nodes | 21.285 ms/op | 13.943 ms/op | 1.53 |
altair processAttestation - 250000 vs - 7PWei normalcase | 2.8484 ms/op | 1.7244 ms/op | 1.65 |
altair processAttestation - 250000 vs - 7PWei worstcase | 4.4951 ms/op | 2.3826 ms/op | 1.89 |
altair processAttestation - setStatus - 1/6 committees join | 148.69 us/op | 97.512 us/op | 1.52 |
altair processAttestation - setStatus - 1/3 committees join | 255.61 us/op | 187.93 us/op | 1.36 |
altair processAttestation - setStatus - 1/2 committees join | 402.29 us/op | 265.21 us/op | 1.52 |
altair processAttestation - setStatus - 2/3 committees join | 518.00 us/op | 345.30 us/op | 1.50 |
altair processAttestation - setStatus - 4/5 committees join | 723.57 us/op | 475.44 us/op | 1.52 |
altair processAttestation - setStatus - 100% committees join | 765.50 us/op | 561.07 us/op | 1.36 |
altair processBlock - 250000 vs - 7PWei normalcase | 6.6972 ms/op | 4.8590 ms/op | 1.38 |
altair processBlock - 250000 vs - 7PWei normalcase hashState | 47.788 ms/op | 28.434 ms/op | 1.68 |
altair processBlock - 250000 vs - 7PWei worstcase | 44.651 ms/op | 35.268 ms/op | 1.27 |
altair processBlock - 250000 vs - 7PWei worstcase hashState | 95.930 ms/op | 81.194 ms/op | 1.18 |
phase0 processBlock - 250000 vs - 7PWei normalcase | 2.9418 ms/op | 2.0702 ms/op | 1.42 |
phase0 processBlock - 250000 vs - 7PWei worstcase | 30.302 ms/op | 25.431 ms/op | 1.19 |
altair processEth1Data - 250000 vs - 7PWei normalcase | 700.13 us/op | 291.42 us/op | 2.40 |
getExpectedWithdrawals 250000 eb:1,eth1:1,we:0,wn:0,smpl:15 | 10.623 us/op | 2.7950 us/op | 3.80 |
getExpectedWithdrawals 250000 eb:0.95,eth1:0.1,we:0.05,wn:0,smpl:219 | 61.100 us/op | 17.882 us/op | 3.42 |
getExpectedWithdrawals 250000 eb:0.95,eth1:0.3,we:0.05,wn:0,smpl:42 | 15.723 us/op | 10.369 us/op | 1.52 |
getExpectedWithdrawals 250000 eb:0.95,eth1:0.7,we:0.05,wn:0,smpl:18 | 10.218 us/op | 4.8460 us/op | 2.11 |
getExpectedWithdrawals 250000 eb:0.1,eth1:0.1,we:0,wn:0,smpl:1020 | 213.25 us/op | 128.38 us/op | 1.66 |
getExpectedWithdrawals 250000 eb:0.03,eth1:0.03,we:0,wn:0,smpl:11777 | 1.3710 ms/op | 851.85 us/op | 1.61 |
getExpectedWithdrawals 250000 eb:0.01,eth1:0.01,we:0,wn:0,smpl:16384 | 1.8607 ms/op | 1.1453 ms/op | 1.62 |
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,smpl:16384 | 1.8347 ms/op | 1.0664 ms/op | 1.72 |
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,nocache,smpl:16384 | 5.4692 ms/op | 2.9878 ms/op | 1.83 |
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,smpl:16384 | 1.6668 ms/op | 1.1760 ms/op | 1.42 |
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,nocache,smpl:16384 | 6.1357 ms/op | 2.8650 ms/op | 2.14 |
Tree 40 250000 create | 724.77 ms/op | 355.02 ms/op | 2.04 |
Tree 40 250000 get(125000) | 166.40 ns/op | 103.86 ns/op | 1.60 |
Tree 40 250000 set(125000) | 2.6046 us/op | 1.0878 us/op | 2.39 |
Tree 40 250000 toArray() | 24.351 ms/op | 12.145 ms/op | 2.00 |
Tree 40 250000 iterate all - toArray() + loop | 24.541 ms/op | 12.741 ms/op | 1.93 |
Tree 40 250000 iterate all - get(i) | 64.707 ms/op | 40.851 ms/op | 1.58 |
Array 250000 create | 4.4833 ms/op | 2.3215 ms/op | 1.93 |
Array 250000 clone - spread | 2.4679 ms/op | 1.1087 ms/op | 2.23 |
Array 250000 get(125000) | 0.47800 ns/op | 0.55800 ns/op | 0.86 |
Array 250000 set(125000) | 0.52800 ns/op | 0.57100 ns/op | 0.92 |
Array 250000 iterate all - loop | 90.815 us/op | 72.799 us/op | 1.25 |
phase0 afterProcessEpoch - 250000 vs - 7PWei | 58.597 ms/op | 38.987 ms/op | 1.50 |
Array.fill - length 1000000 | 7.5727 ms/op | 2.2377 ms/op | 3.38 |
Array push - length 1000000 | 22.188 ms/op | 14.132 ms/op | 1.57 |
Array.get | 0.32055 ns/op | 0.25894 ns/op | 1.24 |
Uint8Array.get | 0.48083 ns/op | 0.33991 ns/op | 1.41 |
phase0 beforeProcessEpoch - 250000 vs - 7PWei | 25.358 ms/op | 12.887 ms/op | 1.97 |
altair processEpoch - mainnet_e81889 | 417.82 ms/op | 274.11 ms/op | 1.52 |
mainnet_e81889 - altair beforeProcessEpoch | 28.413 ms/op | 14.803 ms/op | 1.92 |
mainnet_e81889 - altair processJustificationAndFinalization | 34.865 us/op | 12.418 us/op | 2.81 |
mainnet_e81889 - altair processInactivityUpdates | 8.8046 ms/op | 3.4306 ms/op | 2.57 |
mainnet_e81889 - altair processRewardsAndPenalties | 62.594 ms/op | 57.339 ms/op | 1.09 |
mainnet_e81889 - altair processRegistryUpdates | 5.8830 us/op | 2.6420 us/op | 2.23 |
mainnet_e81889 - altair processSlashings | 1.3860 us/op | 823.00 ns/op | 1.68 |
mainnet_e81889 - altair processEth1DataReset | 1.3840 us/op | 879.00 ns/op | 1.57 |
mainnet_e81889 - altair processEffectiveBalanceUpdates | 2.4882 ms/op | 1.6237 ms/op | 1.53 |
mainnet_e81889 - altair processSlashingsReset | 10.122 us/op | 2.4220 us/op | 4.18 |
mainnet_e81889 - altair processRandaoMixesReset | 12.332 us/op | 3.4820 us/op | 3.54 |
mainnet_e81889 - altair processHistoricalRootsUpdate | 1.6650 us/op | 1.2750 us/op | 1.31 |
mainnet_e81889 - altair processParticipationFlagUpdates | 6.1610 us/op | 2.0990 us/op | 2.94 |
mainnet_e81889 - altair processSyncCommitteeUpdates | 2.0160 us/op | 815.00 ns/op | 2.47 |
mainnet_e81889 - altair afterProcessEpoch | 59.305 ms/op | 42.315 ms/op | 1.40 |
capella processEpoch - mainnet_e217614 | 1.3757 s/op | 991.03 ms/op | 1.39 |
mainnet_e217614 - capella beforeProcessEpoch | 96.919 ms/op | 67.642 ms/op | 1.43 |
mainnet_e217614 - capella processJustificationAndFinalization | 21.440 us/op | 11.781 us/op | 1.82 |
mainnet_e217614 - capella processInactivityUpdates | 25.571 ms/op | 11.049 ms/op | 2.31 |
mainnet_e217614 - capella processRewardsAndPenalties | 304.73 ms/op | 249.99 ms/op | 1.22 |
mainnet_e217614 - capella processRegistryUpdates | 21.808 us/op | 10.679 us/op | 2.04 |
mainnet_e217614 - capella processSlashings | 1.4050 us/op | 832.00 ns/op | 1.69 |
mainnet_e217614 - capella processEth1DataReset | 1.1060 us/op | 820.00 ns/op | 1.35 |
mainnet_e217614 - capella processEffectiveBalanceUpdates | 20.859 ms/op | 3.2528 ms/op | 6.41 |
mainnet_e217614 - capella processSlashingsReset | 9.7510 us/op | 3.0510 us/op | 3.20 |
mainnet_e217614 - capella processRandaoMixesReset | 8.5140 us/op | 3.7490 us/op | 2.27 |
mainnet_e217614 - capella processHistoricalRootsUpdate | 1.1590 us/op | 872.00 ns/op | 1.33 |
mainnet_e217614 - capella processParticipationFlagUpdates | 2.9750 us/op | 1.8930 us/op | 1.57 |
mainnet_e217614 - capella afterProcessEpoch | 139.12 ms/op | 101.08 ms/op | 1.38 |
phase0 processEpoch - mainnet_e58758 | 476.55 ms/op | 307.67 ms/op | 1.55 |
mainnet_e58758 - phase0 beforeProcessEpoch | 119.74 ms/op | 58.171 ms/op | 2.06 |
mainnet_e58758 - phase0 processJustificationAndFinalization | 29.079 us/op | 13.880 us/op | 2.10 |
mainnet_e58758 - phase0 processRewardsAndPenalties | 31.284 ms/op | 26.391 ms/op | 1.19 |
mainnet_e58758 - phase0 processRegistryUpdates | 10.592 us/op | 5.6690 us/op | 1.87 |
mainnet_e58758 - phase0 processSlashings | 1.5110 us/op | 841.00 ns/op | 1.80 |
mainnet_e58758 - phase0 processEth1DataReset | 982.00 ns/op | 928.00 ns/op | 1.06 |
mainnet_e58758 - phase0 processEffectiveBalanceUpdates | 1.7904 ms/op | 762.03 us/op | 2.35 |
mainnet_e58758 - phase0 processSlashingsReset | 5.7830 us/op | 2.6180 us/op | 2.21 |
mainnet_e58758 - phase0 processRandaoMixesReset | 9.3380 us/op | 5.5160 us/op | 1.69 |
mainnet_e58758 - phase0 processHistoricalRootsUpdate | 1.1090 us/op | 983.00 ns/op | 1.13 |
mainnet_e58758 - phase0 processParticipationRecordUpdates | 9.9470 us/op | 4.1530 us/op | 2.40 |
mainnet_e58758 - phase0 afterProcessEpoch | 49.926 ms/op | 36.714 ms/op | 1.36 |
phase0 processEffectiveBalanceUpdates - 250000 normalcase | 1.8152 ms/op | 938.89 us/op | 1.93 |
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 | 4.8461 ms/op | 1.3412 ms/op | 3.61 |
altair processInactivityUpdates - 250000 normalcase | 24.919 ms/op | 19.420 ms/op | 1.28 |
altair processInactivityUpdates - 250000 worstcase | 25.071 ms/op | 17.684 ms/op | 1.42 |
phase0 processRegistryUpdates - 250000 normalcase | 11.121 us/op | 3.0560 us/op | 3.64 |
phase0 processRegistryUpdates - 250000 badcase_full_deposits | 412.24 us/op | 274.73 us/op | 1.50 |
phase0 processRegistryUpdates - 250000 worstcase 0.5 | 144.27 ms/op | 110.32 ms/op | 1.31 |
altair processRewardsAndPenalties - 250000 normalcase | 69.241 ms/op | 48.589 ms/op | 1.43 |
altair processRewardsAndPenalties - 250000 worstcase | 51.904 ms/op | 41.734 ms/op | 1.24 |
phase0 getAttestationDeltas - 250000 normalcase | 10.253 ms/op | 6.4262 ms/op | 1.60 |
phase0 getAttestationDeltas - 250000 worstcase | 8.3192 ms/op | 5.5333 ms/op | 1.50 |
phase0 processSlashings - 250000 worstcase | 111.46 us/op | 92.821 us/op | 1.20 |
altair processSyncCommitteeUpdates - 250000 | 155.55 ms/op | 96.087 ms/op | 1.62 |
BeaconState.hashTreeRoot - No change | 367.00 ns/op | 465.00 ns/op | 0.79 |
BeaconState.hashTreeRoot - 1 full validator | 122.86 us/op | 121.68 us/op | 1.01 |
BeaconState.hashTreeRoot - 32 full validator | 1.2295 ms/op | 1.1373 ms/op | 1.08 |
BeaconState.hashTreeRoot - 512 full validator | 14.489 ms/op | 8.7281 ms/op | 1.66 |
BeaconState.hashTreeRoot - 1 validator.effectiveBalance | 180.78 us/op | 125.99 us/op | 1.43 |
BeaconState.hashTreeRoot - 32 validator.effectiveBalance | 2.2566 ms/op | 1.5190 ms/op | 1.49 |
BeaconState.hashTreeRoot - 512 validator.effectiveBalance | 27.263 ms/op | 18.806 ms/op | 1.45 |
BeaconState.hashTreeRoot - 1 balances | 142.08 us/op | 89.538 us/op | 1.59 |
BeaconState.hashTreeRoot - 32 balances | 1.0573 ms/op | 880.77 us/op | 1.20 |
BeaconState.hashTreeRoot - 512 balances | 8.7731 ms/op | 6.8752 ms/op | 1.28 |
BeaconState.hashTreeRoot - 250000 balances | 175.91 ms/op | 134.14 ms/op | 1.31 |
aggregationBits - 2048 els - zipIndexesInBitList | 31.109 us/op | 19.117 us/op | 1.63 |
byteArrayEquals 32 | 57.420 ns/op | 48.143 ns/op | 1.19 |
Buffer.compare 32 | 18.409 ns/op | 16.363 ns/op | 1.13 |
byteArrayEquals 1024 | 1.6861 us/op | 1.2650 us/op | 1.33 |
Buffer.compare 1024 | 29.589 ns/op | 24.635 ns/op | 1.20 |
byteArrayEquals 16384 | 26.816 us/op | 20.094 us/op | 1.33 |
Buffer.compare 16384 | 223.35 ns/op | 210.92 ns/op | 1.06 |
byteArrayEquals 123687377 | 200.60 ms/op | 151.18 ms/op | 1.33 |
Buffer.compare 123687377 | 8.0693 ms/op | 3.8722 ms/op | 2.08 |
byteArrayEquals 32 - diff last byte | 53.732 ns/op | 46.619 ns/op | 1.15 |
Buffer.compare 32 - diff last byte | 17.716 ns/op | 16.547 ns/op | 1.07 |
byteArrayEquals 1024 - diff last byte | 1.6516 us/op | 1.2569 us/op | 1.31 |
Buffer.compare 1024 - diff last byte | 28.480 ns/op | 23.344 ns/op | 1.22 |
byteArrayEquals 16384 - diff last byte | 26.560 us/op | 19.951 us/op | 1.33 |
Buffer.compare 16384 - diff last byte | 189.09 ns/op | 177.43 ns/op | 1.07 |
byteArrayEquals 123687377 - diff last byte | 198.44 ms/op | 149.46 ms/op | 1.33 |
Buffer.compare 123687377 - diff last byte | 7.8750 ms/op | 3.8172 ms/op | 2.06 |
byteArrayEquals 32 - random bytes | 5.4050 ns/op | 4.8700 ns/op | 1.11 |
Buffer.compare 32 - random bytes | 18.449 ns/op | 16.652 ns/op | 1.11 |
byteArrayEquals 1024 - random bytes | 5.3890 ns/op | 4.8710 ns/op | 1.11 |
Buffer.compare 1024 - random bytes | 18.202 ns/op | 16.677 ns/op | 1.09 |
byteArrayEquals 16384 - random bytes | 5.3960 ns/op | 4.8330 ns/op | 1.12 |
Buffer.compare 16384 - random bytes | 18.084 ns/op | 16.709 ns/op | 1.08 |
byteArrayEquals 123687377 - random bytes | 6.6300 ns/op | 7.6900 ns/op | 0.86 |
Buffer.compare 123687377 - random bytes | 19.830 ns/op | 19.720 ns/op | 1.01 |
regular array get 100000 times | 34.518 us/op | 30.994 us/op | 1.11 |
wrappedArray get 100000 times | 34.576 us/op | 31.057 us/op | 1.11 |
arrayWithProxy get 100000 times | 13.368 ms/op | 9.8019 ms/op | 1.36 |
ssz.Root.equals | 47.645 ns/op | 43.174 ns/op | 1.10 |
byteArrayEquals | 47.441 ns/op | 42.796 ns/op | 1.11 |
Buffer.compare | 11.017 ns/op | 9.7020 ns/op | 1.14 |
processSlot - 1 slots | 15.081 us/op | 11.650 us/op | 1.29 |
processSlot - 32 slots | 2.5396 ms/op | 1.8462 ms/op | 1.38 |
getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei | 39.137 ms/op | 38.050 ms/op | 1.03 |
getCommitteeAssignments - req 1 vs - 250000 vc | 2.3434 ms/op | 1.7756 ms/op | 1.32 |
getCommitteeAssignments - req 100 vs - 250000 vc | 4.5299 ms/op | 3.5444 ms/op | 1.28 |
getCommitteeAssignments - req 1000 vs - 250000 vc | 4.8552 ms/op | 3.7008 ms/op | 1.31 |
findModifiedValidators - 10000 modified validators | 327.35 ms/op | 220.24 ms/op | 1.49 |
findModifiedValidators - 1000 modified validators | 272.31 ms/op | 139.34 ms/op | 1.95 |
findModifiedValidators - 100 modified validators | 249.70 ms/op | 139.25 ms/op | 1.79 |
findModifiedValidators - 10 modified validators | 200.34 ms/op | 131.79 ms/op | 1.52 |
findModifiedValidators - 1 modified validators | 222.09 ms/op | 124.90 ms/op | 1.78 |
findModifiedValidators - no difference | 201.04 ms/op | 151.00 ms/op | 1.33 |
compare ViewDUs | 3.5968 s/op | 3.2692 s/op | 1.10 |
compare each validator Uint8Array | 1.7257 s/op | 1.6863 s/op | 1.02 |
compare ViewDU to Uint8Array | 1.2390 s/op | 737.08 ms/op | 1.68 |
migrate state 1000000 validators, 24 modified, 0 new | 857.39 ms/op | 679.76 ms/op | 1.26 |
migrate state 1000000 validators, 1700 modified, 1000 new | 1.0685 s/op | 918.68 ms/op | 1.16 |
migrate state 1000000 validators, 3400 modified, 2000 new | 1.2630 s/op | 1.2131 s/op | 1.04 |
migrate state 1500000 validators, 24 modified, 0 new | 830.15 ms/op | 747.01 ms/op | 1.11 |
migrate state 1500000 validators, 1700 modified, 1000 new | 999.76 ms/op | 977.36 ms/op | 1.02 |
migrate state 1500000 validators, 3400 modified, 2000 new | 1.2736 s/op | 1.1608 s/op | 1.10 |
RootCache.getBlockRootAtSlot - 250000 vs - 7PWei | 4.6900 ns/op | 5.7500 ns/op | 0.82 |
state getBlockRootAtSlot - 250000 vs - 7PWei | 578.65 ns/op | 1.0498 us/op | 0.55 |
computeProposers - vc 250000 | 7.3743 ms/op | 6.7175 ms/op | 1.10 |
computeEpochShuffling - vc 250000 | 41.498 ms/op | 33.506 ms/op | 1.24 |
getNextSyncCommittee - vc 250000 | 144.26 ms/op | 105.61 ms/op | 1.37 |
computeSigningRoot for AttestationData | 30.066 us/op | 21.716 us/op | 1.38 |
hash AttestationData serialized data then Buffer.toString(base64) | 1.5919 us/op | 1.1725 us/op | 1.36 |
toHexString serialized data | 914.69 ns/op | 787.62 ns/op | 1.16 |
Buffer.toString(base64) | 174.86 ns/op | 127.43 ns/op | 1.37 |
nodejs block root to RootHex using toHex | 166.07 ns/op | 115.32 ns/op | 1.44 |
nodejs block root to RootHex using toRootHex | 103.22 ns/op | 75.014 ns/op | 1.38 |
browser block root to RootHex using the deprecated toHexString | 241.62 ns/op | 210.16 ns/op | 1.15 |
browser block root to RootHex using toHex | 191.19 ns/op | 167.65 ns/op | 1.14 |
browser block root to RootHex using toRootHex | 166.19 ns/op | 146.65 ns/op | 1.13 |
by benchmarkbot/action
can we go with ChainSafe/ssz#440 instead? |
Just DM'd @wemeetagain about that. I think that is the safer route honestly because its not 100 deterministic to do it this way |
Closed in favor of #7393 |
Motivation
There was a performance regression because the wrong hasher (default noble) was getting used by the ssz lib even though the as-sha256 was set. Has to do with dual module export and node resolving both versions of the library.