-
-
Notifications
You must be signed in to change notification settings - Fork 300
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
test: migrate validator tests to vitest #6301
Conversation
Codecov Report
Additional details and impacted files@@ Coverage Diff @@
## unstable #6301 +/- ##
============================================
- Coverage 81.05% 76.53% -4.53%
============================================
Files 120 248 +128
Lines 13835 25936 +12101
Branches 790 1449 +659
============================================
+ Hits 11214 19850 +8636
- Misses 2608 6056 +3448
- Partials 13 30 +17 |
validator e2e tests failing |
|
Benchmark suite | Current: 5ddbb97 | Previous: 4ff2911 | Ratio |
---|---|---|---|
isKnown normal case - 2 super set checks | 947.00 ns/op | 314.00 ns/op | 3.02 |
Full benchmark results
Benchmark suite | Current: 5ddbb97 | Previous: 4ff2911 | Ratio |
---|---|---|---|
getPubkeys - index2pubkey - req 1000 vs - 250000 vc | 521.09 us/op | 790.42 us/op | 0.66 |
getPubkeys - validatorsArr - req 1000 vs - 250000 vc | 85.727 us/op | 80.935 us/op | 1.06 |
BLS verify - blst-native | 1.3050 ms/op | 1.3015 ms/op | 1.00 |
BLS verifyMultipleSignatures 3 - blst-native | 2.7347 ms/op | 2.7542 ms/op | 0.99 |
BLS verifyMultipleSignatures 8 - blst-native | 5.9769 ms/op | 6.1017 ms/op | 0.98 |
BLS verifyMultipleSignatures 32 - blst-native | 22.049 ms/op | 22.375 ms/op | 0.99 |
BLS verifyMultipleSignatures 64 - blst-native | 43.375 ms/op | 43.855 ms/op | 0.99 |
BLS verifyMultipleSignatures 128 - blst-native | 85.477 ms/op | 86.832 ms/op | 0.98 |
BLS deserializing 10000 signatures | 939.73 ms/op | 928.19 ms/op | 1.01 |
BLS deserializing 100000 signatures | 9.5020 s/op | 9.3938 s/op | 1.01 |
BLS verifyMultipleSignatures - same message - 3 - blst-native | 1.4981 ms/op | 1.3394 ms/op | 1.12 |
BLS verifyMultipleSignatures - same message - 8 - blst-native | 1.9351 ms/op | 1.5185 ms/op | 1.27 |
BLS verifyMultipleSignatures - same message - 32 - blst-native | 3.1795 ms/op | 2.3234 ms/op | 1.37 |
BLS verifyMultipleSignatures - same message - 64 - blst-native | 5.2372 ms/op | 4.4427 ms/op | 1.18 |
BLS verifyMultipleSignatures - same message - 128 - blst-native | 6.1471 ms/op | 7.8803 ms/op | 0.78 |
BLS aggregatePubkeys 32 - blst-native | 26.590 us/op | 26.029 us/op | 1.02 |
BLS aggregatePubkeys 128 - blst-native | 107.57 us/op | 100.23 us/op | 1.07 |
getAttestationsForBlock | 68.744 ms/op | 49.463 ms/op | 1.39 |
getSlashingsAndExits - default max | 317.59 us/op | 158.89 us/op | 2.00 |
getSlashingsAndExits - 2k | 642.08 us/op | 370.92 us/op | 1.73 |
proposeBlockBody type=full, size=empty | 7.3305 ms/op | 4.9057 ms/op | 1.49 |
isKnown best case - 1 super set check | 819.00 ns/op | 320.00 ns/op | 2.56 |
isKnown normal case - 2 super set checks | 947.00 ns/op | 314.00 ns/op | 3.02 |
isKnown worse case - 16 super set checks | 782.00 ns/op | 309.00 ns/op | 2.53 |
CheckpointStateCache - add get delete | 8.6580 us/op | 5.8350 us/op | 1.48 |
validate api signedAggregateAndProof - struct | 3.2010 ms/op | 2.7171 ms/op | 1.18 |
validate gossip signedAggregateAndProof - struct | 3.7533 ms/op | 2.7186 ms/op | 1.38 |
validate gossip attestation - vc 640000 | 1.5323 ms/op | 1.3136 ms/op | 1.17 |
batch validate gossip attestation - vc 640000 - chunk 32 | 187.31 us/op | 156.85 us/op | 1.19 |
batch validate gossip attestation - vc 640000 - chunk 64 | 161.15 us/op | 143.75 us/op | 1.12 |
batch validate gossip attestation - vc 640000 - chunk 128 | 151.17 us/op | 131.74 us/op | 1.15 |
batch validate gossip attestation - vc 640000 - chunk 256 | 146.41 us/op | 128.63 us/op | 1.14 |
pickEth1Vote - no votes | 1.3556 ms/op | 1.2189 ms/op | 1.11 |
pickEth1Vote - max votes | 11.028 ms/op | 10.697 ms/op | 1.03 |
pickEth1Vote - Eth1Data hashTreeRoot value x2048 | 20.323 ms/op | 18.045 ms/op | 1.13 |
pickEth1Vote - Eth1Data hashTreeRoot tree x2048 | 29.444 ms/op | 26.088 ms/op | 1.13 |
pickEth1Vote - Eth1Data fastSerialize value x2048 | 734.94 us/op | 575.92 us/op | 1.28 |
pickEth1Vote - Eth1Data fastSerialize tree x2048 | 5.5539 ms/op | 6.1417 ms/op | 0.90 |
bytes32 toHexString | 728.00 ns/op | 476.00 ns/op | 1.53 |
bytes32 Buffer.toString(hex) | 308.00 ns/op | 274.00 ns/op | 1.12 |
bytes32 Buffer.toString(hex) from Uint8Array | 530.00 ns/op | 395.00 ns/op | 1.34 |
bytes32 Buffer.toString(hex) + 0x | 305.00 ns/op | 275.00 ns/op | 1.11 |
Object access 1 prop | 0.20200 ns/op | 0.14800 ns/op | 1.36 |
Map access 1 prop | 0.15900 ns/op | 0.13800 ns/op | 1.15 |
Object get x1000 | 7.5550 ns/op | 7.3300 ns/op | 1.03 |
Map get x1000 | 0.87100 ns/op | 0.70200 ns/op | 1.24 |
Object set x1000 | 69.429 ns/op | 47.136 ns/op | 1.47 |
Map set x1000 | 50.841 ns/op | 36.368 ns/op | 1.40 |
Return object 10000 times | 0.26770 ns/op | 0.22460 ns/op | 1.19 |
Throw Error 10000 times | 4.0157 us/op | 3.6671 us/op | 1.10 |
fastMsgIdFn sha256 / 200 bytes | 3.3520 us/op | 3.1190 us/op | 1.07 |
fastMsgIdFn h32 xxhash / 200 bytes | 307.00 ns/op | 275.00 ns/op | 1.12 |
fastMsgIdFn h64 xxhash / 200 bytes | 358.00 ns/op | 337.00 ns/op | 1.06 |
fastMsgIdFn sha256 / 1000 bytes | 11.640 us/op | 10.823 us/op | 1.08 |
fastMsgIdFn h32 xxhash / 1000 bytes | 437.00 ns/op | 396.00 ns/op | 1.10 |
fastMsgIdFn h64 xxhash / 1000 bytes | 435.00 ns/op | 393.00 ns/op | 1.11 |
fastMsgIdFn sha256 / 10000 bytes | 105.00 us/op | 99.559 us/op | 1.05 |
fastMsgIdFn h32 xxhash / 10000 bytes | 2.0110 us/op | 1.8430 us/op | 1.09 |
fastMsgIdFn h64 xxhash / 10000 bytes | 1.3920 us/op | 1.2710 us/op | 1.10 |
send data - 1000 256B messages | 20.602 ms/op | 17.545 ms/op | 1.17 |
send data - 1000 512B messages | 28.291 ms/op | 25.348 ms/op | 1.12 |
send data - 1000 1024B messages | 43.779 ms/op | 39.271 ms/op | 1.11 |
send data - 1000 1200B messages | 39.031 ms/op | 37.281 ms/op | 1.05 |
send data - 1000 2048B messages | 45.649 ms/op | 42.997 ms/op | 1.06 |
send data - 1000 4096B messages | 41.124 ms/op | 40.091 ms/op | 1.03 |
send data - 1000 16384B messages | 121.99 ms/op | 115.93 ms/op | 1.05 |
send data - 1000 65536B messages | 422.10 ms/op | 451.35 ms/op | 0.94 |
enrSubnets - fastDeserialize 64 bits | 1.2700 us/op | 1.2390 us/op | 1.03 |
enrSubnets - ssz BitVector 64 bits | 425.00 ns/op | 418.00 ns/op | 1.02 |
enrSubnets - fastDeserialize 4 bits | 167.00 ns/op | 173.00 ns/op | 0.97 |
enrSubnets - ssz BitVector 4 bits | 424.00 ns/op | 409.00 ns/op | 1.04 |
prioritizePeers score -10:0 att 32-0.1 sync 2-0 | 111.90 us/op | 98.759 us/op | 1.13 |
prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 | 137.59 us/op | 119.74 us/op | 1.15 |
prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 | 177.03 us/op | 155.55 us/op | 1.14 |
prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 | 311.04 us/op | 278.17 us/op | 1.12 |
prioritizePeers score 0:0 att 64-1 sync 4-1 | 351.93 us/op | 324.54 us/op | 1.08 |
array of 16000 items push then shift | 1.6221 us/op | 1.5390 us/op | 1.05 |
LinkedList of 16000 items push then shift | 8.8420 ns/op | 8.6190 ns/op | 1.03 |
array of 16000 items push then pop | 104.00 ns/op | 72.656 ns/op | 1.43 |
LinkedList of 16000 items push then pop | 8.8650 ns/op | 8.3760 ns/op | 1.06 |
array of 24000 items push then shift | 2.6468 us/op | 2.2840 us/op | 1.16 |
LinkedList of 24000 items push then shift | 9.0660 ns/op | 8.5720 ns/op | 1.06 |
array of 24000 items push then pop | 157.64 ns/op | 110.05 ns/op | 1.43 |
LinkedList of 24000 items push then pop | 9.2240 ns/op | 8.3110 ns/op | 1.11 |
intersect bitArray bitLen 8 | 6.5770 ns/op | 6.1340 ns/op | 1.07 |
intersect array and set length 8 | 69.009 ns/op | 60.318 ns/op | 1.14 |
intersect bitArray bitLen 128 | 37.473 ns/op | 32.565 ns/op | 1.15 |
intersect array and set length 128 | 1.0355 us/op | 816.37 ns/op | 1.27 |
bitArray.getTrueBitIndexes() bitLen 128 | 1.6790 us/op | 1.4100 us/op | 1.19 |
bitArray.getTrueBitIndexes() bitLen 248 | 2.8000 us/op | 2.3900 us/op | 1.17 |
bitArray.getTrueBitIndexes() bitLen 512 | 5.4040 us/op | 4.7750 us/op | 1.13 |
Buffer.concat 32 items | 986.00 ns/op | 959.00 ns/op | 1.03 |
Uint8Array.set 32 items | 1.6930 us/op | 1.9970 us/op | 0.85 |
Set add up to 64 items then delete first | 4.4770 us/op | 4.2766 us/op | 1.05 |
OrderedSet add up to 64 items then delete first | 5.8012 us/op | 5.3239 us/op | 1.09 |
Set add up to 64 items then delete last | 4.7042 us/op | 4.4071 us/op | 1.07 |
OrderedSet add up to 64 items then delete last | 5.9735 us/op | 5.4437 us/op | 1.10 |
Set add up to 64 items then delete middle | 4.8546 us/op | 4.3592 us/op | 1.11 |
OrderedSet add up to 64 items then delete middle | 7.4139 us/op | 6.6675 us/op | 1.11 |
Set add up to 128 items then delete first | 9.4153 us/op | 8.8194 us/op | 1.07 |
OrderedSet add up to 128 items then delete first | 12.530 us/op | 12.050 us/op | 1.04 |
Set add up to 128 items then delete last | 9.2762 us/op | 8.9694 us/op | 1.03 |
OrderedSet add up to 128 items then delete last | 12.102 us/op | 11.249 us/op | 1.08 |
Set add up to 128 items then delete middle | 9.1762 us/op | 8.9656 us/op | 1.02 |
OrderedSet add up to 128 items then delete middle | 18.919 us/op | 16.603 us/op | 1.14 |
Set add up to 256 items then delete first | 22.176 us/op | 18.457 us/op | 1.20 |
OrderedSet add up to 256 items then delete first | 29.752 us/op | 24.903 us/op | 1.19 |
Set add up to 256 items then delete last | 21.310 us/op | 17.955 us/op | 1.19 |
OrderedSet add up to 256 items then delete last | 28.621 us/op | 22.709 us/op | 1.26 |
Set add up to 256 items then delete middle | 21.897 us/op | 17.827 us/op | 1.23 |
OrderedSet add up to 256 items then delete middle | 52.259 us/op | 44.808 us/op | 1.17 |
transfer serialized Status (84 B) | 2.0800 us/op | 1.7300 us/op | 1.20 |
copy serialized Status (84 B) | 1.7410 us/op | 1.4500 us/op | 1.20 |
transfer serialized SignedVoluntaryExit (112 B) | 2.0610 us/op | 1.9570 us/op | 1.05 |
copy serialized SignedVoluntaryExit (112 B) | 1.8280 us/op | 1.6090 us/op | 1.14 |
transfer serialized ProposerSlashing (416 B) | 2.5940 us/op | 3.0070 us/op | 0.86 |
copy serialized ProposerSlashing (416 B) | 2.4390 us/op | 2.9280 us/op | 0.83 |
transfer serialized Attestation (485 B) | 2.6640 us/op | 3.1300 us/op | 0.85 |
copy serialized Attestation (485 B) | 2.6990 us/op | 2.9280 us/op | 0.92 |
transfer serialized AttesterSlashing (33232 B) | 2.6550 us/op | 3.0570 us/op | 0.87 |
copy serialized AttesterSlashing (33232 B) | 7.9120 us/op | 6.0850 us/op | 1.30 |
transfer serialized Small SignedBeaconBlock (128000 B) | 2.7360 us/op | 3.1580 us/op | 0.87 |
copy serialized Small SignedBeaconBlock (128000 B) | 18.197 us/op | 14.113 us/op | 1.29 |
transfer serialized Avg SignedBeaconBlock (200000 B) | 3.2230 us/op | 3.5600 us/op | 0.91 |
copy serialized Avg SignedBeaconBlock (200000 B) | 26.131 us/op | 20.032 us/op | 1.30 |
transfer serialized BlobsSidecar (524380 B) | 3.3590 us/op | 3.3220 us/op | 1.01 |
copy serialized BlobsSidecar (524380 B) | 144.60 us/op | 81.919 us/op | 1.77 |
transfer serialized Big SignedBeaconBlock (1000000 B) | 3.8020 us/op | 3.6740 us/op | 1.03 |
copy serialized Big SignedBeaconBlock (1000000 B) | 212.93 us/op | 148.79 us/op | 1.43 |
pass gossip attestations to forkchoice per slot | 3.9058 ms/op | 3.8246 ms/op | 1.02 |
forkChoice updateHead vc 100000 bc 64 eq 0 | 680.15 us/op | 660.19 us/op | 1.03 |
forkChoice updateHead vc 600000 bc 64 eq 0 | 4.7513 ms/op | 4.4605 ms/op | 1.07 |
forkChoice updateHead vc 1000000 bc 64 eq 0 | 7.5078 ms/op | 6.9217 ms/op | 1.08 |
forkChoice updateHead vc 600000 bc 320 eq 0 | 4.2889 ms/op | 4.1475 ms/op | 1.03 |
forkChoice updateHead vc 600000 bc 1200 eq 0 | 4.5805 ms/op | 4.2859 ms/op | 1.07 |
forkChoice updateHead vc 600000 bc 7200 eq 0 | 5.4590 ms/op | 5.1188 ms/op | 1.07 |
forkChoice updateHead vc 600000 bc 64 eq 1000 | 11.815 ms/op | 11.180 ms/op | 1.06 |
forkChoice updateHead vc 600000 bc 64 eq 10000 | 12.145 ms/op | 11.816 ms/op | 1.03 |
forkChoice updateHead vc 600000 bc 64 eq 300000 | 16.802 ms/op | 15.579 ms/op | 1.08 |
computeDeltas 500000 validators 300 proto nodes | 6.6516 ms/op | 6.5100 ms/op | 1.02 |
computeDeltas 500000 validators 1200 proto nodes | 6.6431 ms/op | 6.3606 ms/op | 1.04 |
computeDeltas 500000 validators 7200 proto nodes | 6.4835 ms/op | 6.3198 ms/op | 1.03 |
computeDeltas 750000 validators 300 proto nodes | 9.8384 ms/op | 9.2726 ms/op | 1.06 |
computeDeltas 750000 validators 1200 proto nodes | 10.151 ms/op | 9.3949 ms/op | 1.08 |
computeDeltas 750000 validators 7200 proto nodes | 10.151 ms/op | 9.4504 ms/op | 1.07 |
computeDeltas 1400000 validators 300 proto nodes | 20.382 ms/op | 18.846 ms/op | 1.08 |
computeDeltas 1400000 validators 1200 proto nodes | 19.365 ms/op | 18.823 ms/op | 1.03 |
computeDeltas 1400000 validators 7200 proto nodes | 18.839 ms/op | 18.532 ms/op | 1.02 |
computeDeltas 2100000 validators 300 proto nodes | 28.489 ms/op | 28.620 ms/op | 1.00 |
computeDeltas 2100000 validators 1200 proto nodes | 28.253 ms/op | 27.150 ms/op | 1.04 |
computeDeltas 2100000 validators 7200 proto nodes | 28.657 ms/op | 27.829 ms/op | 1.03 |
computeProposerBoostScoreFromBalances 500000 validators | 3.7045 ms/op | 3.6500 ms/op | 1.01 |
computeProposerBoostScoreFromBalances 750000 validators | 3.7106 ms/op | 3.5938 ms/op | 1.03 |
computeProposerBoostScoreFromBalances 1400000 validators | 3.6477 ms/op | 3.5832 ms/op | 1.02 |
computeProposerBoostScoreFromBalances 2100000 validators | 3.6330 ms/op | 3.6292 ms/op | 1.00 |
altair processAttestation - 250000 vs - 7PWei normalcase | 2.2286 ms/op | 2.0451 ms/op | 1.09 |
altair processAttestation - 250000 vs - 7PWei worstcase | 3.2619 ms/op | 3.0241 ms/op | 1.08 |
altair processAttestation - setStatus - 1/6 committees join | 172.36 us/op | 139.07 us/op | 1.24 |
altair processAttestation - setStatus - 1/3 committees join | 322.66 us/op | 272.95 us/op | 1.18 |
altair processAttestation - setStatus - 1/2 committees join | 438.31 us/op | 371.71 us/op | 1.18 |
altair processAttestation - setStatus - 2/3 committees join | 573.62 us/op | 457.49 us/op | 1.25 |
altair processAttestation - setStatus - 4/5 committees join | 766.96 us/op | 655.43 us/op | 1.17 |
altair processAttestation - setStatus - 100% committees join | 867.04 us/op | 758.18 us/op | 1.14 |
altair processBlock - 250000 vs - 7PWei normalcase | 10.060 ms/op | 9.7957 ms/op | 1.03 |
altair processBlock - 250000 vs - 7PWei normalcase hashState | 37.296 ms/op | 33.317 ms/op | 1.12 |
altair processBlock - 250000 vs - 7PWei worstcase | 36.934 ms/op | 35.864 ms/op | 1.03 |
altair processBlock - 250000 vs - 7PWei worstcase hashState | 94.857 ms/op | 88.727 ms/op | 1.07 |
phase0 processBlock - 250000 vs - 7PWei normalcase | 2.2978 ms/op | 2.4592 ms/op | 0.93 |
phase0 processBlock - 250000 vs - 7PWei worstcase | 28.789 ms/op | 30.141 ms/op | 0.96 |
altair processEth1Data - 250000 vs - 7PWei normalcase | 586.80 us/op | 503.90 us/op | 1.16 |
getExpectedWithdrawals 250000 eb:1,eth1:1,we:0,wn:0,smpl:15 | 7.1880 us/op | 12.199 us/op | 0.59 |
getExpectedWithdrawals 250000 eb:0.95,eth1:0.1,we:0.05,wn:0,smpl:219 | 47.659 us/op | 57.078 us/op | 0.83 |
getExpectedWithdrawals 250000 eb:0.95,eth1:0.3,we:0.05,wn:0,smpl:42 | 16.297 us/op | 10.631 us/op | 1.53 |
getExpectedWithdrawals 250000 eb:0.95,eth1:0.7,we:0.05,wn:0,smpl:18 | 11.905 us/op | 9.6820 us/op | 1.23 |
getExpectedWithdrawals 250000 eb:0.1,eth1:0.1,we:0,wn:0,smpl:1020 | 160.37 us/op | 130.14 us/op | 1.23 |
getExpectedWithdrawals 250000 eb:0.03,eth1:0.03,we:0,wn:0,smpl:11777 | 1.3589 ms/op | 1.0699 ms/op | 1.27 |
getExpectedWithdrawals 250000 eb:0.01,eth1:0.01,we:0,wn:0,smpl:16384 | 1.4563 ms/op | 1.5594 ms/op | 0.93 |
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,smpl:16384 | 1.7953 ms/op | 1.5198 ms/op | 1.18 |
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,nocache,smpl:16384 | 3.5447 ms/op | 3.2428 ms/op | 1.09 |
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,smpl:16384 | 2.3607 ms/op | 2.2669 ms/op | 1.04 |
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,nocache,smpl:16384 | 5.4498 ms/op | 4.4695 ms/op | 1.22 |
Tree 40 250000 create | 330.43 ms/op | 336.21 ms/op | 0.98 |
Tree 40 250000 get(125000) | 186.93 ns/op | 197.93 ns/op | 0.94 |
Tree 40 250000 set(125000) | 919.22 ns/op | 978.60 ns/op | 0.94 |
Tree 40 250000 toArray() | 18.146 ms/op | 18.555 ms/op | 0.98 |
Tree 40 250000 iterate all - toArray() + loop | 18.457 ms/op | 18.713 ms/op | 0.99 |
Tree 40 250000 iterate all - get(i) | 62.955 ms/op | 64.208 ms/op | 0.98 |
MutableVector 250000 create | 13.364 ms/op | 13.648 ms/op | 0.98 |
MutableVector 250000 get(125000) | 6.8420 ns/op | 6.3780 ns/op | 1.07 |
MutableVector 250000 set(125000) | 263.99 ns/op | 267.42 ns/op | 0.99 |
MutableVector 250000 toArray() | 2.9917 ms/op | 2.9909 ms/op | 1.00 |
MutableVector 250000 iterate all - toArray() + loop | 3.6243 ms/op | 3.6905 ms/op | 0.98 |
MutableVector 250000 iterate all - get(i) | 1.7550 ms/op | 1.8969 ms/op | 0.93 |
Array 250000 create | 2.6755 ms/op | 2.7935 ms/op | 0.96 |
Array 250000 clone - spread | 1.1393 ms/op | 1.2348 ms/op | 0.92 |
Array 250000 get(125000) | 0.97800 ns/op | 1.0270 ns/op | 0.95 |
Array 250000 set(125000) | 3.8830 ns/op | 4.0590 ns/op | 0.96 |
Array 250000 iterate all - loop | 158.97 us/op | 163.76 us/op | 0.97 |
effectiveBalanceIncrements clone Uint8Array 300000 | 24.555 us/op | 26.326 us/op | 0.93 |
effectiveBalanceIncrements clone MutableVector 300000 | 341.00 ns/op | 364.00 ns/op | 0.94 |
effectiveBalanceIncrements rw all Uint8Array 300000 | 190.92 us/op | 197.45 us/op | 0.97 |
effectiveBalanceIncrements rw all MutableVector 300000 | 77.376 ms/op | 80.961 ms/op | 0.96 |
phase0 afterProcessEpoch - 250000 vs - 7PWei | 110.46 ms/op | 111.13 ms/op | 0.99 |
phase0 beforeProcessEpoch - 250000 vs - 7PWei | 51.402 ms/op | 51.951 ms/op | 0.99 |
altair processEpoch - mainnet_e81889 | 496.78 ms/op | 496.82 ms/op | 1.00 |
mainnet_e81889 - altair beforeProcessEpoch | 85.945 ms/op | 80.107 ms/op | 1.07 |
mainnet_e81889 - altair processJustificationAndFinalization | 15.234 us/op | 14.500 us/op | 1.05 |
mainnet_e81889 - altair processInactivityUpdates | 5.7434 ms/op | 5.4021 ms/op | 1.06 |
mainnet_e81889 - altair processRewardsAndPenalties | 62.981 ms/op | 60.038 ms/op | 1.05 |
mainnet_e81889 - altair processRegistryUpdates | 2.8600 us/op | 2.5020 us/op | 1.14 |
mainnet_e81889 - altair processSlashings | 496.00 ns/op | 426.00 ns/op | 1.16 |
mainnet_e81889 - altair processEth1DataReset | 645.00 ns/op | 426.00 ns/op | 1.51 |
mainnet_e81889 - altair processEffectiveBalanceUpdates | 1.4670 ms/op | 1.4261 ms/op | 1.03 |
mainnet_e81889 - altair processSlashingsReset | 4.3720 us/op | 3.6460 us/op | 1.20 |
mainnet_e81889 - altair processRandaoMixesReset | 6.0530 us/op | 5.0450 us/op | 1.20 |
mainnet_e81889 - altair processHistoricalRootsUpdate | 1.0920 us/op | 599.00 ns/op | 1.82 |
mainnet_e81889 - altair processParticipationFlagUpdates | 2.8590 us/op | 2.0950 us/op | 1.36 |
mainnet_e81889 - altair processSyncCommitteeUpdates | 507.00 ns/op | 556.00 ns/op | 0.91 |
mainnet_e81889 - altair afterProcessEpoch | 122.04 ms/op | 115.28 ms/op | 1.06 |
capella processEpoch - mainnet_e217614 | 2.4761 s/op | 2.1276 s/op | 1.16 |
mainnet_e217614 - capella beforeProcessEpoch | 508.21 ms/op | 508.01 ms/op | 1.00 |
mainnet_e217614 - capella processJustificationAndFinalization | 14.961 us/op | 22.100 us/op | 0.68 |
mainnet_e217614 - capella processInactivityUpdates | 16.904 ms/op | 23.811 ms/op | 0.71 |
mainnet_e217614 - capella processRewardsAndPenalties | 391.80 ms/op | 401.69 ms/op | 0.98 |
mainnet_e217614 - capella processRegistryUpdates | 17.501 us/op | 29.402 us/op | 0.60 |
mainnet_e217614 - capella processSlashings | 661.00 ns/op | 551.00 ns/op | 1.20 |
mainnet_e217614 - capella processEth1DataReset | 479.00 ns/op | 516.00 ns/op | 0.93 |
mainnet_e217614 - capella processEffectiveBalanceUpdates | 4.9161 ms/op | 4.7723 ms/op | 1.03 |
mainnet_e217614 - capella processSlashingsReset | 3.4330 us/op | 4.3460 us/op | 0.79 |
mainnet_e217614 - capella processRandaoMixesReset | 4.9400 us/op | 7.5620 us/op | 0.65 |
mainnet_e217614 - capella processHistoricalRootsUpdate | 653.00 ns/op | 431.00 ns/op | 1.52 |
mainnet_e217614 - capella processParticipationFlagUpdates | 2.2600 us/op | 1.4720 us/op | 1.54 |
mainnet_e217614 - capella afterProcessEpoch | 342.54 ms/op | 324.86 ms/op | 1.05 |
phase0 processEpoch - mainnet_e58758 | 479.25 ms/op | 467.16 ms/op | 1.03 |
mainnet_e58758 - phase0 beforeProcessEpoch | 112.39 ms/op | 121.18 ms/op | 0.93 |
mainnet_e58758 - phase0 processJustificationAndFinalization | 15.713 us/op | 16.160 us/op | 0.97 |
mainnet_e58758 - phase0 processRewardsAndPenalties | 54.485 ms/op | 53.539 ms/op | 1.02 |
mainnet_e58758 - phase0 processRegistryUpdates | 11.703 us/op | 10.390 us/op | 1.13 |
mainnet_e58758 - phase0 processSlashings | 593.00 ns/op | 538.00 ns/op | 1.10 |
mainnet_e58758 - phase0 processEth1DataReset | 501.00 ns/op | 376.00 ns/op | 1.33 |
mainnet_e58758 - phase0 processEffectiveBalanceUpdates | 1.2218 ms/op | 1.1608 ms/op | 1.05 |
mainnet_e58758 - phase0 processSlashingsReset | 3.0410 us/op | 4.1090 us/op | 0.74 |
mainnet_e58758 - phase0 processRandaoMixesReset | 5.5390 us/op | 4.0210 us/op | 1.38 |
mainnet_e58758 - phase0 processHistoricalRootsUpdate | 563.00 ns/op | 465.00 ns/op | 1.21 |
mainnet_e58758 - phase0 processParticipationRecordUpdates | 4.0630 us/op | 3.1960 us/op | 1.27 |
mainnet_e58758 - phase0 afterProcessEpoch | 98.655 ms/op | 95.741 ms/op | 1.03 |
phase0 processEffectiveBalanceUpdates - 250000 normalcase | 1.3565 ms/op | 1.4046 ms/op | 0.97 |
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 | 1.4412 ms/op | 1.5675 ms/op | 0.92 |
altair processInactivityUpdates - 250000 normalcase | 27.739 ms/op | 22.633 ms/op | 1.23 |
altair processInactivityUpdates - 250000 worstcase | 20.230 ms/op | 26.726 ms/op | 0.76 |
phase0 processRegistryUpdates - 250000 normalcase | 9.1690 us/op | 8.5330 us/op | 1.07 |
phase0 processRegistryUpdates - 250000 badcase_full_deposits | 334.94 us/op | 392.11 us/op | 0.85 |
phase0 processRegistryUpdates - 250000 worstcase 0.5 | 143.10 ms/op | 122.18 ms/op | 1.17 |
altair processRewardsAndPenalties - 250000 normalcase | 58.739 ms/op | 60.541 ms/op | 0.97 |
altair processRewardsAndPenalties - 250000 worstcase | 61.945 ms/op | 56.345 ms/op | 1.10 |
phase0 getAttestationDeltas - 250000 normalcase | 8.9419 ms/op | 8.7505 ms/op | 1.02 |
phase0 getAttestationDeltas - 250000 worstcase | 8.6884 ms/op | 9.6382 ms/op | 0.90 |
phase0 processSlashings - 250000 worstcase | 87.913 us/op | 91.957 us/op | 0.96 |
altair processSyncCommitteeUpdates - 250000 | 157.46 ms/op | 156.41 ms/op | 1.01 |
BeaconState.hashTreeRoot - No change | 239.00 ns/op | 279.00 ns/op | 0.86 |
BeaconState.hashTreeRoot - 1 full validator | 136.09 us/op | 152.18 us/op | 0.89 |
BeaconState.hashTreeRoot - 32 full validator | 1.5831 ms/op | 1.5033 ms/op | 1.05 |
BeaconState.hashTreeRoot - 512 full validator | 14.650 ms/op | 18.899 ms/op | 0.78 |
BeaconState.hashTreeRoot - 1 validator.effectiveBalance | 156.34 us/op | 217.97 us/op | 0.72 |
BeaconState.hashTreeRoot - 32 validator.effectiveBalance | 2.3272 ms/op | 2.1629 ms/op | 1.08 |
BeaconState.hashTreeRoot - 512 validator.effectiveBalance | 29.197 ms/op | 28.830 ms/op | 1.01 |
BeaconState.hashTreeRoot - 1 balances | 149.09 us/op | 122.81 us/op | 1.21 |
BeaconState.hashTreeRoot - 32 balances | 1.3905 ms/op | 1.1012 ms/op | 1.26 |
BeaconState.hashTreeRoot - 512 balances | 12.443 ms/op | 17.039 ms/op | 0.73 |
BeaconState.hashTreeRoot - 250000 balances | 202.68 ms/op | 191.84 ms/op | 1.06 |
aggregationBits - 2048 els - zipIndexesInBitList | 17.357 us/op | 17.567 us/op | 0.99 |
byteArrayEquals 32 | 74.624 ns/op | 74.156 ns/op | 1.01 |
Buffer.compare 32 | 55.363 ns/op | 55.489 ns/op | 1.00 |
byteArrayEquals 1024 | 2.0319 us/op | 1.9760 us/op | 1.03 |
Buffer.compare 1024 | 71.547 ns/op | 68.704 ns/op | 1.04 |
byteArrayEquals 16384 | 32.516 us/op | 32.149 us/op | 1.01 |
Buffer.compare 16384 | 252.31 ns/op | 269.65 ns/op | 0.94 |
byteArrayEquals 123687377 | 246.62 ms/op | 248.04 ms/op | 0.99 |
Buffer.compare 123687377 | 6.8942 ms/op | 8.2399 ms/op | 0.84 |
byteArrayEquals 32 - diff last byte | 71.641 ns/op | 73.137 ns/op | 0.98 |
Buffer.compare 32 - diff last byte | 55.707 ns/op | 57.264 ns/op | 0.97 |
byteArrayEquals 1024 - diff last byte | 2.0357 us/op | 2.0942 us/op | 0.97 |
Buffer.compare 1024 - diff last byte | 71.858 ns/op | 74.388 ns/op | 0.97 |
byteArrayEquals 16384 - diff last byte | 32.485 us/op | 33.441 us/op | 0.97 |
Buffer.compare 16384 - diff last byte | 273.67 ns/op | 262.95 ns/op | 1.04 |
byteArrayEquals 123687377 - diff last byte | 246.68 ms/op | 247.00 ms/op | 1.00 |
Buffer.compare 123687377 - diff last byte | 7.4616 ms/op | 7.2223 ms/op | 1.03 |
byteArrayEquals 32 - random bytes | 6.1280 ns/op | 5.5930 ns/op | 1.10 |
Buffer.compare 32 - random bytes | 65.749 ns/op | 60.883 ns/op | 1.08 |
byteArrayEquals 1024 - random bytes | 5.9570 ns/op | 5.1950 ns/op | 1.15 |
Buffer.compare 1024 - random bytes | 62.293 ns/op | 59.228 ns/op | 1.05 |
byteArrayEquals 16384 - random bytes | 6.0080 ns/op | 5.3840 ns/op | 1.12 |
Buffer.compare 16384 - random bytes | 61.583 ns/op | 60.049 ns/op | 1.03 |
byteArrayEquals 123687377 - random bytes | 8.9700 ns/op | 8.5500 ns/op | 1.05 |
Buffer.compare 123687377 - random bytes | 63.360 ns/op | 63.820 ns/op | 0.99 |
regular array get 100000 times | 44.893 us/op | 44.849 us/op | 1.00 |
wrappedArray get 100000 times | 45.262 us/op | 44.861 us/op | 1.01 |
arrayWithProxy get 100000 times | 14.363 ms/op | 14.251 ms/op | 1.01 |
ssz.Root.equals | 54.174 ns/op | 54.040 ns/op | 1.00 |
byteArrayEquals | 53.590 ns/op | 53.087 ns/op | 1.01 |
Buffer.compare | 10.949 ns/op | 11.987 ns/op | 0.91 |
shuffle list - 16384 els | 7.0195 ms/op | 7.0339 ms/op | 1.00 |
shuffle list - 250000 els | 102.38 ms/op | 103.54 ms/op | 0.99 |
processSlot - 1 slots | 18.122 us/op | 17.249 us/op | 1.05 |
processSlot - 32 slots | 3.9992 ms/op | 3.0352 ms/op | 1.32 |
getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei | 59.104 ms/op | 55.220 ms/op | 1.07 |
getCommitteeAssignments - req 1 vs - 250000 vc | 2.4992 ms/op | 2.4843 ms/op | 1.01 |
getCommitteeAssignments - req 100 vs - 250000 vc | 3.7091 ms/op | 3.6614 ms/op | 1.01 |
getCommitteeAssignments - req 1000 vs - 250000 vc | 4.0299 ms/op | 4.0440 ms/op | 1.00 |
findModifiedValidators - 10000 modified validators | 511.60 ms/op | 523.62 ms/op | 0.98 |
findModifiedValidators - 1000 modified validators | 432.23 ms/op | 430.54 ms/op | 1.00 |
findModifiedValidators - 100 modified validators | 398.71 ms/op | 380.59 ms/op | 1.05 |
findModifiedValidators - 10 modified validators | 406.25 ms/op | 394.07 ms/op | 1.03 |
findModifiedValidators - 1 modified validators | 421.07 ms/op | 431.32 ms/op | 0.98 |
findModifiedValidators - no difference | 392.88 ms/op | 425.19 ms/op | 0.92 |
compare ViewDUs | 4.4223 s/op | 4.3265 s/op | 1.02 |
compare each validator Uint8Array | 1.8803 s/op | 1.8364 s/op | 1.02 |
compare ViewDU to Uint8Array | 1.1405 s/op | 1.1131 s/op | 1.02 |
migrate state 1000000 validators, 24 modified, 0 new | 750.87 ms/op | 781.60 ms/op | 0.96 |
migrate state 1000000 validators, 1700 modified, 1000 new | 1.1392 s/op | 1.0800 s/op | 1.05 |
migrate state 1000000 validators, 3400 modified, 2000 new | 1.3838 s/op | 1.3188 s/op | 1.05 |
migrate state 1500000 validators, 24 modified, 0 new | 746.36 ms/op | 796.33 ms/op | 0.94 |
migrate state 1500000 validators, 1700 modified, 1000 new | 1.1000 s/op | 1.0936 s/op | 1.01 |
migrate state 1500000 validators, 3400 modified, 2000 new | 1.3498 s/op | 1.3197 s/op | 1.02 |
RootCache.getBlockRootAtSlot - 250000 vs - 7PWei | 4.1100 ns/op | 4.4000 ns/op | 0.93 |
state getBlockRootAtSlot - 250000 vs - 7PWei | 715.67 ns/op | 730.74 ns/op | 0.98 |
computeProposers - vc 250000 | 8.7380 ms/op | 9.1791 ms/op | 0.95 |
computeEpochShuffling - vc 250000 | 97.485 ms/op | 99.063 ms/op | 0.98 |
getNextSyncCommittee - vc 250000 | 146.43 ms/op | 157.65 ms/op | 0.93 |
computeSigningRoot for AttestationData | 28.127 us/op | 26.756 us/op | 1.05 |
hash AttestationData serialized data then Buffer.toString(base64) | 2.2855 us/op | 2.2539 us/op | 1.01 |
toHexString serialized data | 1.0736 us/op | 1.0456 us/op | 1.03 |
Buffer.toString(base64) | 220.13 ns/op | 211.17 ns/op | 1.04 |
by benchmarkbot/action
Yes its timeout on downloading the docker image. In mocha single timeout value is used for both test and hooks. In Vitest we can configure those separately. Increased the hook timeout so docker image can be downloaded. |
* Migrate validator tests to vitest * Increase hook timeout for e2e test
🎉 This PR is included in v1.15.0 🎉 |
Motivation
Consolidate the testing frameworks and migrate to vitest.
Description
Migrate
validator
and spec tests to vitest.Steps to test or reproduce