Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: implement focil EIP-7805 #7342

Draft
wants to merge 54 commits into
base: unstable
Choose a base branch
from
Draft

feat: implement focil EIP-7805 #7342

wants to merge 54 commits into from

Conversation

ensi321
Copy link
Contributor

@ensi321 ensi321 commented Jan 9, 2025

Do not merge - PR for reference only

Relevant issue #7340

@nflaig nflaig assigned nflaig and unassigned nflaig Jan 9, 2025
@nflaig nflaig added the status-do-not-merge Merging this issue will break the build. Do not merge! label Jan 9, 2025
Copy link
Contributor

github-actions bot commented Jan 9, 2025

Performance Report

✔️ no performance regression detected

Full benchmark results
Benchmark suite Current: dbf6e63 Previous: cf23839 Ratio
getPubkeys - index2pubkey - req 1000 vs - 250000 vc 1.8945 ms/op 1.8832 ms/op 1.01
getPubkeys - validatorsArr - req 1000 vs - 250000 vc 59.508 us/op 72.092 us/op 0.83
BLS verify - blst 989.08 us/op 1.0572 ms/op 0.94
BLS verifyMultipleSignatures 3 - blst 1.5284 ms/op 1.5013 ms/op 1.02
BLS verifyMultipleSignatures 8 - blst 2.4928 ms/op 2.2984 ms/op 1.08
BLS verifyMultipleSignatures 32 - blst 6.1866 ms/op 5.5450 ms/op 1.12
BLS verifyMultipleSignatures 64 - blst 11.549 ms/op 10.678 ms/op 1.08
BLS verifyMultipleSignatures 128 - blst 19.091 ms/op 23.000 ms/op 0.83
BLS deserializing 10000 signatures 719.30 ms/op 747.06 ms/op 0.96
BLS deserializing 100000 signatures 7.3088 s/op 7.8820 s/op 0.93
BLS verifyMultipleSignatures - same message - 3 - blst 1.2035 ms/op 1.1294 ms/op 1.07
BLS verifyMultipleSignatures - same message - 8 - blst 1.4132 ms/op 1.2279 ms/op 1.15
BLS verifyMultipleSignatures - same message - 32 - blst 2.1110 ms/op 2.0489 ms/op 1.03
BLS verifyMultipleSignatures - same message - 64 - blst 2.9369 ms/op 3.0749 ms/op 0.96
BLS verifyMultipleSignatures - same message - 128 - blst 4.9891 ms/op 5.2355 ms/op 0.95
BLS aggregatePubkeys 32 - blst 21.819 us/op 23.398 us/op 0.93
BLS aggregatePubkeys 128 - blst 78.535 us/op 81.670 us/op 0.96
notSeenSlots=1 numMissedVotes=1 numBadVotes=10 102.70 ms/op 132.94 ms/op 0.77
notSeenSlots=1 numMissedVotes=0 numBadVotes=4 59.190 ms/op 74.609 ms/op 0.79
notSeenSlots=2 numMissedVotes=1 numBadVotes=10 51.021 ms/op 52.359 ms/op 0.97
getSlashingsAndExits - default max 76.298 us/op 159.29 us/op 0.48
getSlashingsAndExits - 2k 335.67 us/op 499.75 us/op 0.67
proposeBlockBody type=full, size=empty 5.6013 ms/op 7.5142 ms/op 0.75
isKnown best case - 1 super set check 288.00 ns/op 782.00 ns/op 0.37
isKnown normal case - 2 super set checks 264.00 ns/op 681.00 ns/op 0.39
isKnown worse case - 16 super set checks 273.00 ns/op 660.00 ns/op 0.41
InMemoryCheckpointStateCache - add get delete 2.8850 us/op 5.4080 us/op 0.53
validate api signedAggregateAndProof - struct 1.8024 ms/op 1.6938 ms/op 1.06
validate gossip signedAggregateAndProof - struct 1.7439 ms/op 1.5866 ms/op 1.10
batch validate gossip attestation - vc 640000 - chunk 32 130.36 us/op 160.76 us/op 0.81
batch validate gossip attestation - vc 640000 - chunk 64 117.91 us/op 144.27 us/op 0.82
batch validate gossip attestation - vc 640000 - chunk 128 113.09 us/op 128.32 us/op 0.88
batch validate gossip attestation - vc 640000 - chunk 256 111.16 us/op 129.79 us/op 0.86
pickEth1Vote - no votes 1.0422 ms/op 1.3818 ms/op 0.75
pickEth1Vote - max votes 7.2269 ms/op 8.7810 ms/op 0.82
pickEth1Vote - Eth1Data hashTreeRoot value x2048 21.884 ms/op 17.443 ms/op 1.25
pickEth1Vote - Eth1Data hashTreeRoot tree x2048 21.356 ms/op 25.492 ms/op 0.84
pickEth1Vote - Eth1Data fastSerialize value x2048 574.44 us/op 641.78 us/op 0.90
pickEth1Vote - Eth1Data fastSerialize tree x2048 4.2063 ms/op 4.7575 ms/op 0.88
bytes32 toHexString 407.00 ns/op 646.00 ns/op 0.63
bytes32 Buffer.toString(hex) 229.00 ns/op 275.00 ns/op 0.83
bytes32 Buffer.toString(hex) from Uint8Array 351.00 ns/op 493.00 ns/op 0.71
bytes32 Buffer.toString(hex) + 0x 223.00 ns/op 272.00 ns/op 0.82
Object access 1 prop 0.14500 ns/op 0.15900 ns/op 0.91
Map access 1 prop 0.13700 ns/op 0.14300 ns/op 0.96
Object get x1000 5.9790 ns/op 6.2930 ns/op 0.95
Map get x1000 6.6480 ns/op 7.2460 ns/op 0.92
Object set x1000 32.551 ns/op 50.961 ns/op 0.64
Map set x1000 21.844 ns/op 37.018 ns/op 0.59
Return object 10000 times 0.29210 ns/op 0.32990 ns/op 0.89
Throw Error 10000 times 3.4074 us/op 3.6725 us/op 0.93
toHex 139.39 ns/op 185.29 ns/op 0.75
Buffer.from 125.50 ns/op 172.29 ns/op 0.73
shared Buffer 82.408 ns/op 99.381 ns/op 0.83
fastMsgIdFn sha256 / 200 bytes 2.2220 us/op 2.5080 us/op 0.89
fastMsgIdFn h32 xxhash / 200 bytes 225.00 ns/op 296.00 ns/op 0.76
fastMsgIdFn h64 xxhash / 200 bytes 263.00 ns/op 315.00 ns/op 0.83
fastMsgIdFn sha256 / 1000 bytes 7.5320 us/op 8.2370 us/op 0.91
fastMsgIdFn h32 xxhash / 1000 bytes 367.00 ns/op 444.00 ns/op 0.83
fastMsgIdFn h64 xxhash / 1000 bytes 337.00 ns/op 386.00 ns/op 0.87
fastMsgIdFn sha256 / 10000 bytes 64.261 us/op 70.619 us/op 0.91
fastMsgIdFn h32 xxhash / 10000 bytes 1.8710 us/op 2.0460 us/op 0.91
fastMsgIdFn h64 xxhash / 10000 bytes 1.2190 us/op 1.3340 us/op 0.91
send data - 1000 256B messages 13.860 ms/op 14.012 ms/op 0.99
send data - 1000 512B messages 16.474 ms/op 19.051 ms/op 0.86
send data - 1000 1024B messages 27.330 ms/op 29.130 ms/op 0.94
send data - 1000 1200B messages 25.449 ms/op 21.317 ms/op 1.19
send data - 1000 2048B messages 32.843 ms/op 36.590 ms/op 0.90
send data - 1000 4096B messages 31.973 ms/op 36.171 ms/op 0.88
send data - 1000 16384B messages 74.253 ms/op 82.455 ms/op 0.90
send data - 1000 65536B messages 211.31 ms/op 288.63 ms/op 0.73
enrSubnets - fastDeserialize 64 bits 1.0560 us/op 1.6450 us/op 0.64
enrSubnets - ssz BitVector 64 bits 349.00 ns/op 485.00 ns/op 0.72
enrSubnets - fastDeserialize 4 bits 143.00 ns/op 203.00 ns/op 0.70
enrSubnets - ssz BitVector 4 bits 340.00 ns/op 516.00 ns/op 0.66
prioritizePeers score -10:0 att 32-0.1 sync 2-0 136.35 us/op 200.29 us/op 0.68
prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 152.16 us/op 255.20 us/op 0.60
prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 219.16 us/op 358.28 us/op 0.61
prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 391.42 us/op 585.47 us/op 0.67
prioritizePeers score 0:0 att 64-1 sync 4-1 489.69 us/op 770.13 us/op 0.64
array of 16000 items push then shift 1.6169 us/op 1.8182 us/op 0.89
LinkedList of 16000 items push then shift 7.0320 ns/op 9.3550 ns/op 0.75
array of 16000 items push then pop 91.691 ns/op 143.66 ns/op 0.64
LinkedList of 16000 items push then pop 6.9050 ns/op 8.9160 ns/op 0.77
array of 24000 items push then shift 2.3908 us/op 3.0172 us/op 0.79
LinkedList of 24000 items push then shift 7.5030 ns/op 9.7100 ns/op 0.77
array of 24000 items push then pop 129.62 ns/op 199.61 ns/op 0.65
LinkedList of 24000 items push then pop 6.9690 ns/op 8.0690 ns/op 0.86
intersect bitArray bitLen 8 6.4290 ns/op 6.9310 ns/op 0.93
intersect array and set length 8 43.536 ns/op 58.274 ns/op 0.75
intersect bitArray bitLen 128 30.288 ns/op 32.632 ns/op 0.93
intersect array and set length 128 656.95 ns/op 788.46 ns/op 0.83
bitArray.getTrueBitIndexes() bitLen 128 1.3850 us/op 1.7500 us/op 0.79
bitArray.getTrueBitIndexes() bitLen 248 2.1130 us/op 2.7580 us/op 0.77
bitArray.getTrueBitIndexes() bitLen 512 4.1250 us/op 6.6460 us/op 0.62
Buffer.concat 32 items 785.00 ns/op 937.00 ns/op 0.84
Uint8Array.set 32 items 1.5050 us/op 1.5250 us/op 0.99
Buffer.copy 2.6130 us/op 2.9510 us/op 0.89
Uint8Array.set - with subarray 2.2000 us/op 3.2310 us/op 0.68
Uint8Array.set - without subarray 1.4750 us/op 1.6830 us/op 0.88
getUint32 - dataview 225.00 ns/op 276.00 ns/op 0.82
getUint32 - manual 144.00 ns/op 189.00 ns/op 0.76
Set add up to 64 items then delete first 2.1332 us/op 2.6853 us/op 0.79
OrderedSet add up to 64 items then delete first 3.1579 us/op 4.4127 us/op 0.72
Set add up to 64 items then delete last 2.4060 us/op 3.1176 us/op 0.77
OrderedSet add up to 64 items then delete last 3.5238 us/op 4.5755 us/op 0.77
Set add up to 64 items then delete middle 2.4271 us/op 3.1833 us/op 0.76
OrderedSet add up to 64 items then delete middle 5.0507 us/op 6.2719 us/op 0.81
Set add up to 128 items then delete first 4.9631 us/op 6.6475 us/op 0.75
OrderedSet add up to 128 items then delete first 7.5973 us/op 9.5723 us/op 0.79
Set add up to 128 items then delete last 4.7469 us/op 6.8869 us/op 0.69
OrderedSet add up to 128 items then delete last 7.0867 us/op 10.994 us/op 0.64
Set add up to 128 items then delete middle 4.7043 us/op 6.7616 us/op 0.70
OrderedSet add up to 128 items then delete middle 13.281 us/op 16.078 us/op 0.83
Set add up to 256 items then delete first 9.8728 us/op 13.262 us/op 0.74
OrderedSet add up to 256 items then delete first 15.650 us/op 19.489 us/op 0.80
Set add up to 256 items then delete last 9.3685 us/op 11.510 us/op 0.81
OrderedSet add up to 256 items then delete last 14.280 us/op 19.349 us/op 0.74
Set add up to 256 items then delete middle 9.3459 us/op 12.649 us/op 0.74
OrderedSet add up to 256 items then delete middle 40.339 us/op 48.678 us/op 0.83
transfer serialized Status (84 B) 2.5940 us/op 3.4120 us/op 0.76
copy serialized Status (84 B) 1.4200 us/op 1.6620 us/op 0.85
transfer serialized SignedVoluntaryExit (112 B) 2.7740 us/op 3.5260 us/op 0.79
copy serialized SignedVoluntaryExit (112 B) 1.4370 us/op 1.7180 us/op 0.84
transfer serialized ProposerSlashing (416 B) 3.4680 us/op 4.1610 us/op 0.83
copy serialized ProposerSlashing (416 B) 2.2400 us/op 2.3020 us/op 0.97
transfer serialized Attestation (485 B) 3.5130 us/op 4.2580 us/op 0.83
copy serialized Attestation (485 B) 2.1980 us/op 2.3990 us/op 0.92
transfer serialized AttesterSlashing (33232 B) 3.3940 us/op 4.1820 us/op 0.81
copy serialized AttesterSlashing (33232 B) 7.5800 us/op 8.1240 us/op 0.93
transfer serialized Small SignedBeaconBlock (128000 B) 3.6570 us/op 4.5980 us/op 0.80
copy serialized Small SignedBeaconBlock (128000 B) 16.036 us/op 20.849 us/op 0.77
transfer serialized Avg SignedBeaconBlock (200000 B) 4.4440 us/op 5.1780 us/op 0.86
copy serialized Avg SignedBeaconBlock (200000 B) 20.036 us/op 28.524 us/op 0.70
transfer serialized BlobsSidecar (524380 B) 3.5020 us/op 5.4500 us/op 0.64
copy serialized BlobsSidecar (524380 B) 134.89 us/op 98.024 us/op 1.38
transfer serialized Big SignedBeaconBlock (1000000 B) 3.9160 us/op 5.3240 us/op 0.74
copy serialized Big SignedBeaconBlock (1000000 B) 143.09 us/op 152.14 us/op 0.94
pass gossip attestations to forkchoice per slot 2.6873 ms/op 2.9288 ms/op 0.92
forkChoice updateHead vc 100000 bc 64 eq 0 454.35 us/op 586.75 us/op 0.77
forkChoice updateHead vc 600000 bc 64 eq 0 2.8893 ms/op 4.0388 ms/op 0.72
forkChoice updateHead vc 1000000 bc 64 eq 0 4.8790 ms/op 5.5961 ms/op 0.87
forkChoice updateHead vc 600000 bc 320 eq 0 2.9700 ms/op 3.3626 ms/op 0.88
forkChoice updateHead vc 600000 bc 1200 eq 0 2.9876 ms/op 3.2033 ms/op 0.93
forkChoice updateHead vc 600000 bc 7200 eq 0 3.9860 ms/op 3.9230 ms/op 1.02
forkChoice updateHead vc 600000 bc 64 eq 1000 10.420 ms/op 10.846 ms/op 0.96
forkChoice updateHead vc 600000 bc 64 eq 10000 10.481 ms/op 11.031 ms/op 0.95
forkChoice updateHead vc 600000 bc 64 eq 300000 13.427 ms/op 22.657 ms/op 0.59
computeDeltas 500000 validators 300 proto nodes 4.2176 ms/op 4.6721 ms/op 0.90
computeDeltas 500000 validators 1200 proto nodes 4.1757 ms/op 4.6128 ms/op 0.91
computeDeltas 500000 validators 7200 proto nodes 4.2019 ms/op 5.2858 ms/op 0.79
computeDeltas 750000 validators 300 proto nodes 6.5600 ms/op 7.7805 ms/op 0.84
computeDeltas 750000 validators 1200 proto nodes 6.5519 ms/op 8.2643 ms/op 0.79
computeDeltas 750000 validators 7200 proto nodes 6.1871 ms/op 7.1681 ms/op 0.86
computeDeltas 1400000 validators 300 proto nodes 11.789 ms/op 16.552 ms/op 0.71
computeDeltas 1400000 validators 1200 proto nodes 11.906 ms/op 18.779 ms/op 0.63
computeDeltas 1400000 validators 7200 proto nodes 12.006 ms/op 21.477 ms/op 0.56
computeDeltas 2100000 validators 300 proto nodes 18.521 ms/op 25.548 ms/op 0.72
computeDeltas 2100000 validators 1200 proto nodes 18.017 ms/op 24.435 ms/op 0.74
computeDeltas 2100000 validators 7200 proto nodes 18.396 ms/op 23.188 ms/op 0.79
altair processAttestation - 250000 vs - 7PWei normalcase 2.4322 ms/op 3.5109 ms/op 0.69
altair processAttestation - 250000 vs - 7PWei worstcase 3.3808 ms/op 4.7269 ms/op 0.72
altair processAttestation - setStatus - 1/6 committees join 144.28 us/op 206.69 us/op 0.70
altair processAttestation - setStatus - 1/3 committees join 258.11 us/op 322.11 us/op 0.80
altair processAttestation - setStatus - 1/2 committees join 393.73 us/op 409.36 us/op 0.96
altair processAttestation - setStatus - 2/3 committees join 462.74 us/op 532.44 us/op 0.87
altair processAttestation - setStatus - 4/5 committees join 597.44 us/op 702.50 us/op 0.85
altair processAttestation - setStatus - 100% committees join 763.14 us/op 829.36 us/op 0.92
altair processBlock - 250000 vs - 7PWei normalcase 6.8368 ms/op 8.0554 ms/op 0.85
altair processBlock - 250000 vs - 7PWei normalcase hashState 32.709 ms/op 33.281 ms/op 0.98
altair processBlock - 250000 vs - 7PWei worstcase 46.050 ms/op 58.890 ms/op 0.78
altair processBlock - 250000 vs - 7PWei worstcase hashState 99.540 ms/op 83.355 ms/op 1.19
phase0 processBlock - 250000 vs - 7PWei normalcase 2.8425 ms/op 2.6818 ms/op 1.06
phase0 processBlock - 250000 vs - 7PWei worstcase 25.378 ms/op 25.528 ms/op 0.99
altair processEth1Data - 250000 vs - 7PWei normalcase 522.00 us/op 649.61 us/op 0.80
getExpectedWithdrawals 250000 eb:1,eth1:1,we:0,wn:0,smpl:15 6.3030 us/op 7.8650 us/op 0.80
getExpectedWithdrawals 250000 eb:0.95,eth1:0.1,we:0.05,wn:0,smpl:219 39.473 us/op 42.505 us/op 0.93
getExpectedWithdrawals 250000 eb:0.95,eth1:0.3,we:0.05,wn:0,smpl:42 12.442 us/op 11.237 us/op 1.11
getExpectedWithdrawals 250000 eb:0.95,eth1:0.7,we:0.05,wn:0,smpl:18 8.3960 us/op 8.3150 us/op 1.01
getExpectedWithdrawals 250000 eb:0.1,eth1:0.1,we:0,wn:0,smpl:1020 175.78 us/op 129.70 us/op 1.36
getExpectedWithdrawals 250000 eb:0.03,eth1:0.03,we:0,wn:0,smpl:11777 1.2395 ms/op 1.0509 ms/op 1.18
getExpectedWithdrawals 250000 eb:0.01,eth1:0.01,we:0,wn:0,smpl:16384 1.7750 ms/op 1.5678 ms/op 1.13
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,smpl:16384 1.8283 ms/op 1.6388 ms/op 1.12
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,nocache,smpl:16384 3.8320 ms/op 4.2443 ms/op 0.90
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,smpl:16384 1.7355 ms/op 1.6650 ms/op 1.04
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,nocache,smpl:16384 3.6360 ms/op 4.6493 ms/op 0.78
Tree 40 250000 create 616.25 ms/op 629.88 ms/op 0.98
Tree 40 250000 get(125000) 175.18 ns/op 169.55 ns/op 1.03
Tree 40 250000 set(125000) 2.5741 us/op 1.8231 us/op 1.41
Tree 40 250000 toArray() 23.827 ms/op 21.728 ms/op 1.10
Tree 40 250000 iterate all - toArray() + loop 27.691 ms/op 22.954 ms/op 1.21
Tree 40 250000 iterate all - get(i) 65.652 ms/op 66.033 ms/op 0.99
Array 250000 create 4.4785 ms/op 4.2975 ms/op 1.04
Array 250000 clone - spread 2.8128 ms/op 1.8965 ms/op 1.48
Array 250000 get(125000) 0.55300 ns/op 0.45300 ns/op 1.22
Array 250000 set(125000) 0.56900 ns/op 0.47900 ns/op 1.19
Array 250000 iterate all - loop 117.01 us/op 98.728 us/op 1.19
phase0 afterProcessEpoch - 250000 vs - 7PWei 109.80 ms/op 57.858 ms/op 1.90
Array.fill - length 1000000 7.3491 ms/op 5.5121 ms/op 1.33
Array push - length 1000000 23.756 ms/op 17.065 ms/op 1.39
Array.get 0.32107 ns/op 0.32193 ns/op 1.00
Uint8Array.get 0.51547 ns/op 0.49751 ns/op 1.04
phase0 beforeProcessEpoch - 250000 vs - 7PWei 25.486 ms/op 21.183 ms/op 1.20
altair processEpoch - mainnet_e81889 365.83 ms/op 361.28 ms/op 1.01
mainnet_e81889 - altair beforeProcessEpoch 22.113 ms/op 23.152 ms/op 0.96
mainnet_e81889 - altair processJustificationAndFinalization 19.418 us/op 18.613 us/op 1.04
mainnet_e81889 - altair processInactivityUpdates 5.2582 ms/op 6.6209 ms/op 0.79
mainnet_e81889 - altair processRewardsAndPenalties 54.364 ms/op 45.804 ms/op 1.19
mainnet_e81889 - altair processRegistryUpdates 3.8540 us/op 4.8780 us/op 0.79
mainnet_e81889 - altair processSlashings 836.00 ns/op 642.00 ns/op 1.30
mainnet_e81889 - altair processEth1DataReset 646.00 ns/op 533.00 ns/op 1.21
mainnet_e81889 - altair processEffectiveBalanceUpdates 1.8251 ms/op 1.5514 ms/op 1.18
mainnet_e81889 - altair processSlashingsReset 4.9290 us/op 5.1920 us/op 0.95
mainnet_e81889 - altair processRandaoMixesReset 6.7690 us/op 5.1070 us/op 1.33
mainnet_e81889 - altair processHistoricalRootsUpdate 1.0340 us/op 786.00 ns/op 1.32
mainnet_e81889 - altair processParticipationFlagUpdates 4.1450 us/op 2.7560 us/op 1.50
mainnet_e81889 - altair processSyncCommitteeUpdates 686.00 ns/op 789.00 ns/op 0.87
mainnet_e81889 - altair afterProcessEpoch 100.49 ms/op 57.858 ms/op 1.74
capella processEpoch - mainnet_e217614 1.3007 s/op 970.32 ms/op 1.34
mainnet_e217614 - capella beforeProcessEpoch 78.076 ms/op 74.652 ms/op 1.05
mainnet_e217614 - capella processJustificationAndFinalization 19.469 us/op 13.143 us/op 1.48
mainnet_e217614 - capella processInactivityUpdates 18.055 ms/op 16.167 ms/op 1.12
mainnet_e217614 - capella processRewardsAndPenalties 252.06 ms/op 228.48 ms/op 1.10
mainnet_e217614 - capella processRegistryUpdates 18.429 us/op 13.866 us/op 1.33
mainnet_e217614 - capella processSlashings 714.00 ns/op 566.00 ns/op 1.26
mainnet_e217614 - capella processEth1DataReset 567.00 ns/op 484.00 ns/op 1.17
mainnet_e217614 - capella processEffectiveBalanceUpdates 15.690 ms/op 13.559 ms/op 1.16
mainnet_e217614 - capella processSlashingsReset 5.2910 us/op 3.5200 us/op 1.50
mainnet_e217614 - capella processRandaoMixesReset 13.988 us/op 4.8810 us/op 2.87
mainnet_e217614 - capella processHistoricalRootsUpdate 1.1020 us/op 463.00 ns/op 2.38
mainnet_e217614 - capella processParticipationFlagUpdates 4.0970 us/op 3.7040 us/op 1.11
mainnet_e217614 - capella afterProcessEpoch 255.69 ms/op 131.68 ms/op 1.94
phase0 processEpoch - mainnet_e58758 410.60 ms/op 366.41 ms/op 1.12
mainnet_e58758 - phase0 beforeProcessEpoch 100.26 ms/op 78.221 ms/op 1.28
mainnet_e58758 - phase0 processJustificationAndFinalization 20.149 us/op 31.676 us/op 0.64
mainnet_e58758 - phase0 processRewardsAndPenalties 34.940 ms/op 30.825 ms/op 1.13
mainnet_e58758 - phase0 processRegistryUpdates 8.6940 us/op 16.470 us/op 0.53
mainnet_e58758 - phase0 processSlashings 873.00 ns/op 1.0890 us/op 0.80
mainnet_e58758 - phase0 processEth1DataReset 813.00 ns/op 818.00 ns/op 0.99
mainnet_e58758 - phase0 processEffectiveBalanceUpdates 1.5354 ms/op 1.2523 ms/op 1.23
mainnet_e58758 - phase0 processSlashingsReset 5.9730 us/op 4.0480 us/op 1.48
mainnet_e58758 - phase0 processRandaoMixesReset 10.758 us/op 5.6270 us/op 1.91
mainnet_e58758 - phase0 processHistoricalRootsUpdate 1.1790 us/op 781.00 ns/op 1.51
mainnet_e58758 - phase0 processParticipationRecordUpdates 11.149 us/op 6.4280 us/op 1.73
mainnet_e58758 - phase0 afterProcessEpoch 89.751 ms/op 44.880 ms/op 2.00
phase0 processEffectiveBalanceUpdates - 250000 normalcase 1.8291 ms/op 1.3980 ms/op 1.31
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 3.2152 ms/op 1.9682 ms/op 1.63
altair processInactivityUpdates - 250000 normalcase 27.324 ms/op 18.196 ms/op 1.50
altair processInactivityUpdates - 250000 worstcase 26.432 ms/op 23.206 ms/op 1.14
phase0 processRegistryUpdates - 250000 normalcase 12.196 us/op 10.512 us/op 1.16
phase0 processRegistryUpdates - 250000 badcase_full_deposits 471.10 us/op 315.68 us/op 1.49
phase0 processRegistryUpdates - 250000 worstcase 0.5 156.33 ms/op 126.24 ms/op 1.24
altair processRewardsAndPenalties - 250000 normalcase 76.958 ms/op 32.617 ms/op 2.36
altair processRewardsAndPenalties - 250000 worstcase 57.926 ms/op 45.452 ms/op 1.27
phase0 getAttestationDeltas - 250000 normalcase 11.122 ms/op 11.224 ms/op 0.99
phase0 getAttestationDeltas - 250000 worstcase 8.7803 ms/op 8.7053 ms/op 1.01
phase0 processSlashings - 250000 worstcase 141.95 us/op 132.23 us/op 1.07
altair processSyncCommitteeUpdates - 250000 159.18 ms/op 143.45 ms/op 1.11
BeaconState.hashTreeRoot - No change 326.00 ns/op 273.00 ns/op 1.19
BeaconState.hashTreeRoot - 1 full validator 159.46 us/op 107.48 us/op 1.48
BeaconState.hashTreeRoot - 32 full validator 1.4186 ms/op 1.1138 ms/op 1.27
BeaconState.hashTreeRoot - 512 full validator 15.156 ms/op 11.366 ms/op 1.33
BeaconState.hashTreeRoot - 1 validator.effectiveBalance 192.82 us/op 151.22 us/op 1.28
BeaconState.hashTreeRoot - 32 validator.effectiveBalance 3.2199 ms/op 2.1671 ms/op 1.49
BeaconState.hashTreeRoot - 512 validator.effectiveBalance 36.478 ms/op 21.442 ms/op 1.70
BeaconState.hashTreeRoot - 1 balances 124.61 us/op 102.25 us/op 1.22
BeaconState.hashTreeRoot - 32 balances 1.3216 ms/op 1.0930 ms/op 1.21
BeaconState.hashTreeRoot - 512 balances 11.053 ms/op 8.2616 ms/op 1.34
BeaconState.hashTreeRoot - 250000 balances 182.70 ms/op 173.12 ms/op 1.06
aggregationBits - 2048 els - zipIndexesInBitList 33.107 us/op 23.951 us/op 1.38
byteArrayEquals 32 57.600 ns/op 52.594 ns/op 1.10
Buffer.compare 32 18.293 ns/op 17.116 ns/op 1.07
byteArrayEquals 1024 1.6739 us/op 1.5600 us/op 1.07
Buffer.compare 1024 30.946 ns/op 24.854 ns/op 1.25
byteArrayEquals 16384 27.028 us/op 24.643 us/op 1.10
Buffer.compare 16384 201.22 ns/op 181.46 ns/op 1.11
byteArrayEquals 123687377 199.39 ms/op 191.32 ms/op 1.04
Buffer.compare 123687377 7.2834 ms/op 6.9811 ms/op 1.04
byteArrayEquals 32 - diff last byte 54.722 ns/op 52.868 ns/op 1.04
Buffer.compare 32 - diff last byte 17.836 ns/op 17.494 ns/op 1.02
byteArrayEquals 1024 - diff last byte 1.6394 us/op 1.6081 us/op 1.02
Buffer.compare 1024 - diff last byte 27.957 ns/op 25.531 ns/op 1.10
byteArrayEquals 16384 - diff last byte 26.092 us/op 25.920 us/op 1.01
Buffer.compare 16384 - diff last byte 212.75 ns/op 208.71 ns/op 1.02
byteArrayEquals 123687377 - diff last byte 196.75 ms/op 199.29 ms/op 0.99
Buffer.compare 123687377 - diff last byte 7.9150 ms/op 7.6033 ms/op 1.04
byteArrayEquals 32 - random bytes 5.4440 ns/op 5.3260 ns/op 1.02
Buffer.compare 32 - random bytes 17.783 ns/op 18.058 ns/op 0.98
byteArrayEquals 1024 - random bytes 5.3480 ns/op 5.3380 ns/op 1.00
Buffer.compare 1024 - random bytes 17.856 ns/op 18.129 ns/op 0.98
byteArrayEquals 16384 - random bytes 5.3040 ns/op 5.3380 ns/op 0.99
Buffer.compare 16384 - random bytes 17.794 ns/op 18.165 ns/op 0.98
byteArrayEquals 123687377 - random bytes 6.7200 ns/op 6.5300 ns/op 1.03
Buffer.compare 123687377 - random bytes 19.130 ns/op 19.180 ns/op 1.00
regular array get 100000 times 39.170 us/op 34.333 us/op 1.14
wrappedArray get 100000 times 36.539 us/op 34.574 us/op 1.06
arrayWithProxy get 100000 times 14.377 ms/op 13.270 ms/op 1.08
ssz.Root.equals 47.613 ns/op 48.173 ns/op 0.99
byteArrayEquals 46.794 ns/op 46.670 ns/op 1.00
Buffer.compare 10.820 ns/op 10.838 ns/op 1.00
processSlot - 1 slots 14.608 us/op 14.002 us/op 1.04
processSlot - 32 slots 2.5525 ms/op 3.2896 ms/op 0.78
getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei 38.497 ms/op 35.061 ms/op 1.10
getCommitteeAssignments - req 1 vs - 250000 vc 2.1679 ms/op 2.2723 ms/op 0.95
getCommitteeAssignments - req 100 vs - 250000 vc 4.2380 ms/op 4.3346 ms/op 0.98
getCommitteeAssignments - req 1000 vs - 250000 vc 4.5033 ms/op 4.6496 ms/op 0.97
findModifiedValidators - 10000 modified validators 261.05 ms/op 254.89 ms/op 1.02
findModifiedValidators - 1000 modified validators 163.77 ms/op 159.35 ms/op 1.03
findModifiedValidators - 100 modified validators 150.22 ms/op 146.35 ms/op 1.03
findModifiedValidators - 10 modified validators 184.78 ms/op 170.55 ms/op 1.08
findModifiedValidators - 1 modified validators 145.93 ms/op 179.44 ms/op 0.81
findModifiedValidators - no difference 201.29 ms/op 159.59 ms/op 1.26
compare ViewDUs 3.3516 s/op 3.4119 s/op 0.98
compare each validator Uint8Array 1.3026 s/op 1.6273 s/op 0.80
compare ViewDU to Uint8Array 1.2500 s/op 1.1722 s/op 1.07
migrate state 1000000 validators, 24 modified, 0 new 915.39 ms/op 758.06 ms/op 1.21
migrate state 1000000 validators, 1700 modified, 1000 new 1.2024 s/op 1.0691 s/op 1.12
migrate state 1000000 validators, 3400 modified, 2000 new 1.4515 s/op 1.1695 s/op 1.24
migrate state 1500000 validators, 24 modified, 0 new 999.50 ms/op 691.06 ms/op 1.45
migrate state 1500000 validators, 1700 modified, 1000 new 1.1248 s/op 898.29 ms/op 1.25
migrate state 1500000 validators, 3400 modified, 2000 new 1.4132 s/op 1.0612 s/op 1.33
RootCache.getBlockRootAtSlot - 250000 vs - 7PWei 5.4800 ns/op 4.6400 ns/op 1.18
state getBlockRootAtSlot - 250000 vs - 7PWei 1.0112 us/op 572.27 ns/op 1.77
computeProposers - vc 250000 9.1461 ms/op 7.1449 ms/op 1.28
computeEpochShuffling - vc 250000 86.117 ms/op 42.843 ms/op 2.01
getNextSyncCommittee - vc 250000 152.08 ms/op 120.28 ms/op 1.26
computeSigningRoot for AttestationData 26.011 us/op 22.698 us/op 1.15
hash AttestationData serialized data then Buffer.toString(base64) 1.6368 us/op 1.5864 us/op 1.03
toHexString serialized data 973.31 ns/op 894.71 ns/op 1.09
Buffer.toString(base64) 200.53 ns/op 176.21 ns/op 1.14
nodejs block root to RootHex using toHex 160.31 ns/op 149.26 ns/op 1.07
nodejs block root to RootHex using toRootHex 94.304 ns/op 106.00 ns/op 0.89
browser block root to RootHex using the deprecated toHexString 233.98 ns/op 230.80 ns/op 1.01
browser block root to RootHex using toHex 185.47 ns/op 183.57 ns/op 1.01
browser block root to RootHex using toRootHex 163.56 ns/op 165.03 ns/op 0.99

by benchmarkbot/action

Copy link
Contributor

@g11tech g11tech left a comment

Choose a reason for hiding this comment

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

reviewed to keep track and backup if required 👍

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
status-do-not-merge Merging this issue will break the build. Do not merge!
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants