Skip to content

feat: implement focil EIP-7805#7342

Draft
ensi321 wants to merge 139 commits intounstablefrom
focil
Draft

feat: implement focil EIP-7805#7342
ensi321 wants to merge 139 commits intounstablefrom
focil

Conversation

@ensi321
Copy link
Copy Markdown
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
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Jan 9, 2025

Performance Report

🚀🚀 Significant benchmark improvement detected

Benchmark suite Current: 2a69186 Previous: 9f5db5b Ratio
Full columns - reconstruct half of the blobs out of 10 94.165 us/op 294.43 us/op 0.32
Full benchmark results
Benchmark suite Current: 2a69186 Previous: 9f5db5b Ratio
getPubkeys - index2pubkey - req 1000 vs - 250000 vc 1.1406 ms/op 1.3821 ms/op 0.83
getPubkeys - validatorsArr - req 1000 vs - 250000 vc 39.848 us/op 39.546 us/op 1.01
BLS verify - blst 673.51 us/op 748.26 us/op 0.90
BLS verifyMultipleSignatures 3 - blst 1.3908 ms/op 1.3645 ms/op 1.02
BLS verifyMultipleSignatures 8 - blst 2.1970 ms/op 2.1716 ms/op 1.01
BLS verifyMultipleSignatures 32 - blst 6.9376 ms/op 6.9760 ms/op 0.99
BLS verifyMultipleSignatures 64 - blst 13.261 ms/op 13.364 ms/op 0.99
BLS verifyMultipleSignatures 128 - blst 25.889 ms/op 26.049 ms/op 0.99
BLS deserializing 10000 signatures 649.96 ms/op 635.95 ms/op 1.02
BLS deserializing 100000 signatures 6.4915 s/op 6.4979 s/op 1.00
BLS verifyMultipleSignatures - same message - 3 - blst 806.00 us/op 836.73 us/op 0.96
BLS verifyMultipleSignatures - same message - 8 - blst 951.57 us/op 980.10 us/op 0.97
BLS verifyMultipleSignatures - same message - 32 - blst 1.5469 ms/op 1.5695 ms/op 0.99
BLS verifyMultipleSignatures - same message - 64 - blst 2.3848 ms/op 2.4213 ms/op 0.98
BLS verifyMultipleSignatures - same message - 128 - blst 4.0511 ms/op 4.1543 ms/op 0.98
BLS aggregatePubkeys 32 - blst 17.589 us/op 17.909 us/op 0.98
BLS aggregatePubkeys 128 - blst 62.498 us/op 64.032 us/op 0.98
getSlashingsAndExits - default max 48.475 us/op 57.486 us/op 0.84
getSlashingsAndExits - 2k 347.43 us/op 462.79 us/op 0.75
proposeBlockBody type=full, size=empty 750.09 us/op 843.12 us/op 0.89
isKnown best case - 1 super set check 172.00 ns/op 182.00 ns/op 0.95
isKnown normal case - 2 super set checks 177.00 ns/op 168.00 ns/op 1.05
isKnown worse case - 16 super set checks 174.00 ns/op 172.00 ns/op 1.01
validate api signedAggregateAndProof - struct 1.5375 ms/op 1.5655 ms/op 0.98
validate gossip signedAggregateAndProof - struct 1.5273 ms/op 1.5617 ms/op 0.98
batch validate gossip attestation - vc 640000 - chunk 32 108.70 us/op 111.61 us/op 0.97
batch validate gossip attestation - vc 640000 - chunk 64 94.500 us/op 97.734 us/op 0.97
batch validate gossip attestation - vc 640000 - chunk 128 86.955 us/op 92.047 us/op 0.94
batch validate gossip attestation - vc 640000 - chunk 256 85.358 us/op 88.130 us/op 0.97
bytes32 toHexString 286.00 ns/op 292.00 ns/op 0.98
bytes32 Buffer.toString(hex) 166.00 ns/op 182.00 ns/op 0.91
bytes32 Buffer.toString(hex) from Uint8Array 243.00 ns/op 254.00 ns/op 0.96
bytes32 Buffer.toString(hex) + 0x 167.00 ns/op 180.00 ns/op 0.93
Return object 10000 times 0.21630 ns/op 0.21680 ns/op 1.00
Throw Error 10000 times 3.4705 us/op 3.3593 us/op 1.03
toHex 104.94 ns/op 96.769 ns/op 1.08
Buffer.from 90.136 ns/op 87.551 ns/op 1.03
shared Buffer 60.124 ns/op 59.331 ns/op 1.01
fastMsgIdFn sha256 / 200 bytes 1.4810 us/op 1.5370 us/op 0.96
fastMsgIdFn h32 xxhash / 200 bytes 149.00 ns/op 156.00 ns/op 0.96
fastMsgIdFn h64 xxhash / 200 bytes 199.00 ns/op 202.00 ns/op 0.99
fastMsgIdFn sha256 / 1000 bytes 4.7680 us/op 4.8470 us/op 0.98
fastMsgIdFn h32 xxhash / 1000 bytes 241.00 ns/op 257.00 ns/op 0.94
fastMsgIdFn h64 xxhash / 1000 bytes 246.00 ns/op 265.00 ns/op 0.93
fastMsgIdFn sha256 / 10000 bytes 41.908 us/op 42.485 us/op 0.99
fastMsgIdFn h32 xxhash / 10000 bytes 1.3010 us/op 1.2770 us/op 1.02
fastMsgIdFn h64 xxhash / 10000 bytes 845.00 ns/op 825.00 ns/op 1.02
send data - 1000 256B messages 4.2583 ms/op 4.1786 ms/op 1.02
send data - 1000 512B messages 4.4378 ms/op 4.2290 ms/op 1.05
send data - 1000 1024B messages 4.6051 ms/op 4.5719 ms/op 1.01
send data - 1000 1200B messages 4.9791 ms/op 4.6538 ms/op 1.07
send data - 1000 2048B messages 5.0076 ms/op 5.6032 ms/op 0.89
send data - 1000 4096B messages 5.6141 ms/op 6.5677 ms/op 0.85
send data - 1000 16384B messages 16.724 ms/op 44.468 ms/op 0.38
send data - 1000 65536B messages 265.20 ms/op 285.92 ms/op 0.93
enrSubnets - fastDeserialize 64 bits 783.00 ns/op 797.00 ns/op 0.98
enrSubnets - ssz BitVector 64 bits 264.00 ns/op 269.00 ns/op 0.98
enrSubnets - fastDeserialize 4 bits 102.00 ns/op 103.00 ns/op 0.99
enrSubnets - ssz BitVector 4 bits 345.00 ns/op 268.00 ns/op 1.29
prioritizePeers score -10:0 att 32-0.1 sync 2-0 212.62 us/op 216.33 us/op 0.98
prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 237.78 us/op 249.01 us/op 0.95
prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 371.50 us/op 349.79 us/op 1.06
prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 626.70 us/op 599.68 us/op 1.05
prioritizePeers score 0:0 att 64-1 sync 4-1 746.06 us/op 713.15 us/op 1.05
array of 16000 items push then shift 1.3137 us/op 1.3100 us/op 1.00
LinkedList of 16000 items push then shift 7.1470 ns/op 7.2480 ns/op 0.99
array of 16000 items push then pop 76.601 ns/op 71.670 ns/op 1.07
LinkedList of 16000 items push then pop 6.1380 ns/op 6.0030 ns/op 1.02
array of 24000 items push then shift 1.9152 us/op 1.9299 us/op 0.99
LinkedList of 24000 items push then shift 6.6520 ns/op 6.8910 ns/op 0.97
array of 24000 items push then pop 95.433 ns/op 98.782 ns/op 0.97
LinkedList of 24000 items push then pop 6.0680 ns/op 6.0200 ns/op 1.01
intersect bitArray bitLen 8 4.7720 ns/op 4.7970 ns/op 0.99
intersect array and set length 8 29.301 ns/op 33.438 ns/op 0.88
intersect bitArray bitLen 128 24.161 ns/op 24.409 ns/op 0.99
intersect array and set length 128 495.85 ns/op 499.44 ns/op 0.99
bitArray.getTrueBitIndexes() bitLen 128 1.0420 us/op 1.0350 us/op 1.01
bitArray.getTrueBitIndexes() bitLen 248 1.9010 us/op 1.7900 us/op 1.06
bitArray.getTrueBitIndexes() bitLen 512 3.9090 us/op 3.6510 us/op 1.07
Full columns - reconstruct all 6 blobs 113.40 us/op 181.98 us/op 0.62
Full columns - reconstruct half of the blobs out of 6 68.439 us/op 70.320 us/op 0.97
Full columns - reconstruct single blob out of 6 30.798 us/op 71.601 us/op 0.43
Half columns - reconstruct all 6 blobs 394.46 ms/op 402.30 ms/op 0.98
Half columns - reconstruct half of the blobs out of 6 198.41 ms/op 198.37 ms/op 1.00
Half columns - reconstruct single blob out of 6 71.272 ms/op 71.915 ms/op 0.99
Full columns - reconstruct all 10 blobs 186.96 us/op 304.11 us/op 0.61
Full columns - reconstruct half of the blobs out of 10 94.165 us/op 294.43 us/op 0.32
Full columns - reconstruct single blob out of 10 32.943 us/op 59.980 us/op 0.55
Half columns - reconstruct all 10 blobs 653.96 ms/op 674.33 ms/op 0.97
Half columns - reconstruct half of the blobs out of 10 332.02 ms/op 341.60 ms/op 0.97
Half columns - reconstruct single blob out of 10 72.170 ms/op 68.301 ms/op 1.06
Full columns - reconstruct all 20 blobs 1.3294 ms/op 1.8874 ms/op 0.70
Full columns - reconstruct half of the blobs out of 20 316.64 us/op 220.26 us/op 1.44
Full columns - reconstruct single blob out of 20 32.238 us/op 34.450 us/op 0.94
Half columns - reconstruct all 20 blobs 1.3263 s/op 1.3277 s/op 1.00
Half columns - reconstruct half of the blobs out of 20 670.72 ms/op 659.83 ms/op 1.02
Half columns - reconstruct single blob out of 20 73.404 ms/op 70.486 ms/op 1.04
Set add up to 64 items then delete first 2.5290 us/op 2.1920 us/op 1.15
OrderedSet add up to 64 items then delete first 3.3499 us/op 3.4855 us/op 0.96
Set add up to 64 items then delete last 2.3914 us/op 2.1708 us/op 1.10
OrderedSet add up to 64 items then delete last 3.3256 us/op 3.3949 us/op 0.98
Set add up to 64 items then delete middle 2.1661 us/op 2.1708 us/op 1.00
OrderedSet add up to 64 items then delete middle 4.8242 us/op 4.8577 us/op 0.99
Set add up to 128 items then delete first 4.3024 us/op 4.3911 us/op 0.98
OrderedSet add up to 128 items then delete first 6.6081 us/op 6.7053 us/op 0.99
Set add up to 128 items then delete last 3.9757 us/op 3.9796 us/op 1.00
OrderedSet add up to 128 items then delete last 5.9701 us/op 5.8898 us/op 1.01
Set add up to 128 items then delete middle 3.9373 us/op 3.9596 us/op 0.99
OrderedSet add up to 128 items then delete middle 12.103 us/op 11.873 us/op 1.02
Set add up to 256 items then delete first 8.1889 us/op 8.0169 us/op 1.02
OrderedSet add up to 256 items then delete first 12.461 us/op 12.402 us/op 1.00
Set add up to 256 items then delete last 7.7748 us/op 7.7757 us/op 1.00
OrderedSet add up to 256 items then delete last 11.628 us/op 11.794 us/op 0.99
Set add up to 256 items then delete middle 7.7321 us/op 7.7358 us/op 1.00
OrderedSet add up to 256 items then delete middle 36.142 us/op 35.428 us/op 1.02
pass gossip attestations to forkchoice per slot 2.6289 ms/op 2.5756 ms/op 1.02
forkChoice updateHead vc 100000 bc 64 eq 0 420.48 us/op 424.66 us/op 0.99
forkChoice updateHead vc 600000 bc 64 eq 0 2.6187 ms/op 2.5029 ms/op 1.05
forkChoice updateHead vc 1000000 bc 64 eq 0 4.7716 ms/op 4.0971 ms/op 1.16
forkChoice updateHead vc 600000 bc 320 eq 0 2.6584 ms/op 2.4654 ms/op 1.08
forkChoice updateHead vc 600000 bc 1200 eq 0 2.7137 ms/op 2.9142 ms/op 0.93
forkChoice updateHead vc 600000 bc 7200 eq 0 3.1927 ms/op 2.8884 ms/op 1.11
forkChoice updateHead vc 600000 bc 64 eq 1000 2.9486 ms/op 3.0026 ms/op 0.98
forkChoice updateHead vc 600000 bc 64 eq 10000 3.1995 ms/op 3.1097 ms/op 1.03
forkChoice updateHead vc 600000 bc 64 eq 300000 6.8166 ms/op 7.3946 ms/op 0.92
computeDeltas 1400000 validators 0% inactive 12.737 ms/op 13.085 ms/op 0.97
computeDeltas 1400000 validators 10% inactive 11.828 ms/op 12.237 ms/op 0.97
computeDeltas 1400000 validators 20% inactive 10.779 ms/op 11.192 ms/op 0.96
computeDeltas 1400000 validators 50% inactive 8.3271 ms/op 8.5383 ms/op 0.98
computeDeltas 2100000 validators 0% inactive 18.984 ms/op 19.609 ms/op 0.97
computeDeltas 2100000 validators 10% inactive 17.801 ms/op 18.336 ms/op 0.97
computeDeltas 2100000 validators 20% inactive 16.192 ms/op 16.791 ms/op 0.96
computeDeltas 2100000 validators 50% inactive 16.702 ms/op 9.8262 ms/op 1.70
altair processAttestation - 250000 vs - 7PWei normalcase 2.0122 ms/op 2.4809 ms/op 0.81
altair processAttestation - 250000 vs - 7PWei worstcase 2.9958 ms/op 3.1960 ms/op 0.94
altair processAttestation - setStatus - 1/6 committees join 101.73 us/op 104.36 us/op 0.97
altair processAttestation - setStatus - 1/3 committees join 194.41 us/op 213.45 us/op 0.91
altair processAttestation - setStatus - 1/2 committees join 286.03 us/op 293.43 us/op 0.97
altair processAttestation - setStatus - 2/3 committees join 368.49 us/op 385.10 us/op 0.96
altair processAttestation - setStatus - 4/5 committees join 511.72 us/op 539.71 us/op 0.95
altair processAttestation - setStatus - 100% committees join 598.97 us/op 621.65 us/op 0.96
altair processBlock - 250000 vs - 7PWei normalcase 2.9609 ms/op 4.4764 ms/op 0.66
altair processBlock - 250000 vs - 7PWei normalcase hashState 13.548 ms/op 17.574 ms/op 0.77
altair processBlock - 250000 vs - 7PWei worstcase 20.423 ms/op 23.353 ms/op 0.87
altair processBlock - 250000 vs - 7PWei worstcase hashState 42.645 ms/op 50.717 ms/op 0.84
phase0 processBlock - 250000 vs - 7PWei normalcase 1.4506 ms/op 1.5151 ms/op 0.96
phase0 processBlock - 250000 vs - 7PWei worstcase 17.142 ms/op 17.592 ms/op 0.97
altair processEth1Data - 250000 vs - 7PWei normalcase 306.87 us/op 305.08 us/op 1.01
getExpectedWithdrawals 250000 eb:1,eth1:1,we:0,wn:0,smpl:16 3.3150 us/op 4.7210 us/op 0.70
getExpectedWithdrawals 250000 eb:0.95,eth1:0.1,we:0.05,wn:0,smpl:220 18.674 us/op 22.416 us/op 0.83
getExpectedWithdrawals 250000 eb:0.95,eth1:0.3,we:0.05,wn:0,smpl:43 6.2440 us/op 8.3250 us/op 0.75
getExpectedWithdrawals 250000 eb:0.95,eth1:0.7,we:0.05,wn:0,smpl:19 3.7900 us/op 5.9940 us/op 0.63
getExpectedWithdrawals 250000 eb:0.1,eth1:0.1,we:0,wn:0,smpl:1021 102.71 us/op 99.526 us/op 1.03
getExpectedWithdrawals 250000 eb:0.03,eth1:0.03,we:0,wn:0,smpl:11778 1.3446 ms/op 1.4624 ms/op 0.92
getExpectedWithdrawals 250000 eb:0.01,eth1:0.01,we:0,wn:0,smpl:16384 1.7794 ms/op 1.9108 ms/op 0.93
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,smpl:16384 1.8192 ms/op 1.9085 ms/op 0.95
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,nocache,smpl:16384 3.6627 ms/op 4.2570 ms/op 0.86
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,smpl:16384 2.0477 ms/op 2.1628 ms/op 0.95
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,nocache,smpl:16384 4.1380 ms/op 6.4604 ms/op 0.64
Tree 40 250000 create 378.83 ms/op 327.49 ms/op 1.16
Tree 40 250000 get(125000) 102.98 ns/op 96.956 ns/op 1.06
Tree 40 250000 set(125000) 1.0898 us/op 1.0548 us/op 1.03
Tree 40 250000 toArray() 9.4623 ms/op 12.434 ms/op 0.76
Tree 40 250000 iterate all - toArray() + loop 9.5069 ms/op 17.949 ms/op 0.53
Tree 40 250000 iterate all - get(i) 33.721 ms/op 44.721 ms/op 0.75
Array 250000 create 2.0688 ms/op 2.3834 ms/op 0.87
Array 250000 clone - spread 657.37 us/op 856.12 us/op 0.77
Array 250000 get(125000) 0.29400 ns/op 0.30900 ns/op 0.95
Array 250000 set(125000) 0.29700 ns/op 0.31600 ns/op 0.94
Array 250000 iterate all - loop 57.637 us/op 59.581 us/op 0.97
phase0 afterProcessEpoch - 250000 vs - 7PWei 40.154 ms/op 40.218 ms/op 1.00
Array.fill - length 1000000 2.0885 ms/op 2.0798 ms/op 1.00
Array push - length 1000000 8.7922 ms/op 13.821 ms/op 0.64
Array.get 0.20137 ns/op 0.21760 ns/op 0.93
Uint8Array.get 0.23665 ns/op 0.24564 ns/op 0.96
phase0 beforeProcessEpoch - 250000 vs - 7PWei 16.362 ms/op 19.802 ms/op 0.83
altair processEpoch - mainnet_e81889 324.72 ms/op 283.11 ms/op 1.15
mainnet_e81889 - altair beforeProcessEpoch 41.387 ms/op 64.871 ms/op 0.64
mainnet_e81889 - altair processJustificationAndFinalization 6.6670 us/op 6.4140 us/op 1.04
mainnet_e81889 - altair processInactivityUpdates 4.4563 ms/op 4.2023 ms/op 1.06
mainnet_e81889 - altair processRewardsAndPenalties 17.615 ms/op 23.395 ms/op 0.75
mainnet_e81889 - altair processRegistryUpdates 568.00 ns/op 591.00 ns/op 0.96
mainnet_e81889 - altair processSlashings 126.00 ns/op 148.00 ns/op 0.85
mainnet_e81889 - altair processEth1DataReset 125.00 ns/op 153.00 ns/op 0.82
mainnet_e81889 - altair processEffectiveBalanceUpdates 1.6558 ms/op 1.6603 ms/op 1.00
mainnet_e81889 - altair processSlashingsReset 690.00 ns/op 756.00 ns/op 0.91
mainnet_e81889 - altair processRandaoMixesReset 1.3190 us/op 1.2630 us/op 1.04
mainnet_e81889 - altair processHistoricalRootsUpdate 127.00 ns/op 148.00 ns/op 0.86
mainnet_e81889 - altair processParticipationFlagUpdates 416.00 ns/op 503.00 ns/op 0.83
mainnet_e81889 - altair processSyncCommitteeUpdates 103.00 ns/op 122.00 ns/op 0.84
mainnet_e81889 - altair afterProcessEpoch 40.541 ms/op 43.395 ms/op 0.93
capella processEpoch - mainnet_e217614 1.0044 s/op 916.75 ms/op 1.10
mainnet_e217614 - capella beforeProcessEpoch 68.293 ms/op 81.554 ms/op 0.84
mainnet_e217614 - capella processJustificationAndFinalization 7.0060 us/op 6.0810 us/op 1.15
mainnet_e217614 - capella processInactivityUpdates 14.377 ms/op 16.832 ms/op 0.85
mainnet_e217614 - capella processRewardsAndPenalties 96.843 ms/op 100.98 ms/op 0.96
mainnet_e217614 - capella processRegistryUpdates 4.5030 us/op 4.6990 us/op 0.96
mainnet_e217614 - capella processSlashings 134.00 ns/op 148.00 ns/op 0.91
mainnet_e217614 - capella processEth1DataReset 131.00 ns/op 142.00 ns/op 0.92
mainnet_e217614 - capella processEffectiveBalanceUpdates 5.9980 ms/op 6.8053 ms/op 0.88
mainnet_e217614 - capella processSlashingsReset 686.00 ns/op 752.00 ns/op 0.91
mainnet_e217614 - capella processRandaoMixesReset 1.3020 us/op 1.6370 us/op 0.80
mainnet_e217614 - capella processHistoricalRootsUpdate 132.00 ns/op 147.00 ns/op 0.90
mainnet_e217614 - capella processParticipationFlagUpdates 502.00 ns/op 479.00 ns/op 1.05
mainnet_e217614 - capella afterProcessEpoch 108.30 ms/op 110.33 ms/op 0.98
phase0 processEpoch - mainnet_e58758 347.05 ms/op 348.54 ms/op 1.00
mainnet_e58758 - phase0 beforeProcessEpoch 71.671 ms/op 78.209 ms/op 0.92
mainnet_e58758 - phase0 processJustificationAndFinalization 7.1860 us/op 6.7100 us/op 1.07
mainnet_e58758 - phase0 processRewardsAndPenalties 17.562 ms/op 17.823 ms/op 0.99
mainnet_e58758 - phase0 processRegistryUpdates 2.2640 us/op 2.3480 us/op 0.96
mainnet_e58758 - phase0 processSlashings 134.00 ns/op 147.00 ns/op 0.91
mainnet_e58758 - phase0 processEth1DataReset 133.00 ns/op 142.00 ns/op 0.94
mainnet_e58758 - phase0 processEffectiveBalanceUpdates 814.39 us/op 1.0102 ms/op 0.81
mainnet_e58758 - phase0 processSlashingsReset 900.00 ns/op 1.0420 us/op 0.86
mainnet_e58758 - phase0 processRandaoMixesReset 1.4390 us/op 1.5090 us/op 0.95
mainnet_e58758 - phase0 processHistoricalRootsUpdate 134.00 ns/op 152.00 ns/op 0.88
mainnet_e58758 - phase0 processParticipationRecordUpdates 1.2680 us/op 1.3000 us/op 0.98
mainnet_e58758 - phase0 afterProcessEpoch 33.324 ms/op 34.877 ms/op 0.96
phase0 processEffectiveBalanceUpdates - 250000 normalcase 1.0254 ms/op 1.1322 ms/op 0.91
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 1.5739 ms/op 1.7956 ms/op 0.88
altair processInactivityUpdates - 250000 normalcase 13.749 ms/op 12.886 ms/op 1.07
altair processInactivityUpdates - 250000 worstcase 12.959 ms/op 13.308 ms/op 0.97
phase0 processRegistryUpdates - 250000 normalcase 3.1790 us/op 4.0690 us/op 0.78
phase0 processRegistryUpdates - 250000 badcase_full_deposits 146.14 us/op 158.65 us/op 0.92
phase0 processRegistryUpdates - 250000 worstcase 0.5 60.125 ms/op 70.288 ms/op 0.86
altair processRewardsAndPenalties - 250000 normalcase 14.271 ms/op 16.264 ms/op 0.88
altair processRewardsAndPenalties - 250000 worstcase 13.830 ms/op 15.980 ms/op 0.87
phase0 getAttestationDeltas - 250000 normalcase 5.2871 ms/op 5.8147 ms/op 0.91
phase0 getAttestationDeltas - 250000 worstcase 5.3816 ms/op 5.7397 ms/op 0.94
phase0 processSlashings - 250000 worstcase 61.679 us/op 68.787 us/op 0.90
altair processSyncCommitteeUpdates - 250000 10.247 ms/op 10.701 ms/op 0.96
BeaconState.hashTreeRoot - No change 194.00 ns/op 209.00 ns/op 0.93
BeaconState.hashTreeRoot - 1 full validator 65.506 us/op 75.273 us/op 0.87
BeaconState.hashTreeRoot - 32 full validator 928.20 us/op 1.1809 ms/op 0.79
BeaconState.hashTreeRoot - 512 full validator 6.7319 ms/op 8.6784 ms/op 0.78
BeaconState.hashTreeRoot - 1 validator.effectiveBalance 103.39 us/op 97.196 us/op 1.06
BeaconState.hashTreeRoot - 32 validator.effectiveBalance 1.8280 ms/op 1.3795 ms/op 1.33
BeaconState.hashTreeRoot - 512 validator.effectiveBalance 18.960 ms/op 14.543 ms/op 1.30
BeaconState.hashTreeRoot - 1 balances 105.89 us/op 78.841 us/op 1.34
BeaconState.hashTreeRoot - 32 balances 946.85 us/op 874.39 us/op 1.08
BeaconState.hashTreeRoot - 512 balances 5.8162 ms/op 5.7948 ms/op 1.00
BeaconState.hashTreeRoot - 250000 balances 165.32 ms/op 152.60 ms/op 1.08
aggregationBits - 2048 els - zipIndexesInBitList 20.062 us/op 21.466 us/op 0.93
regular array get 100000 times 23.015 us/op 23.668 us/op 0.97
wrappedArray get 100000 times 22.955 us/op 23.741 us/op 0.97
arrayWithProxy get 100000 times 9.7389 ms/op 10.065 ms/op 0.97
ssz.Root.equals 21.799 ns/op 22.175 ns/op 0.98
byteArrayEquals 21.456 ns/op 22.032 ns/op 0.97
Buffer.compare 9.0560 ns/op 9.1160 ns/op 0.99
processSlot - 1 slots 9.1520 us/op 10.135 us/op 0.90
processSlot - 32 slots 2.5355 ms/op 1.7319 ms/op 1.46
getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei 2.4921 ms/op 3.0860 ms/op 0.81
getCommitteeAssignments - req 1 vs - 250000 vc 1.7009 ms/op 1.7082 ms/op 1.00
getCommitteeAssignments - req 100 vs - 250000 vc 3.4545 ms/op 3.4717 ms/op 1.00
getCommitteeAssignments - req 1000 vs - 250000 vc 3.7209 ms/op 3.7483 ms/op 0.99
findModifiedValidators - 10000 modified validators 708.89 ms/op 770.72 ms/op 0.92
findModifiedValidators - 1000 modified validators 583.17 ms/op 529.31 ms/op 1.10
findModifiedValidators - 100 modified validators 274.17 ms/op 348.35 ms/op 0.79
findModifiedValidators - 10 modified validators 151.79 ms/op 237.64 ms/op 0.64
findModifiedValidators - 1 modified validators 175.08 ms/op 173.19 ms/op 1.01
findModifiedValidators - no difference 181.20 ms/op 171.50 ms/op 1.06
migrate state 1500000 validators, 3400 modified, 2000 new 3.6913 s/op 2.6846 s/op 1.37
RootCache.getBlockRootAtSlot - 250000 vs - 7PWei 3.6900 ns/op 3.8200 ns/op 0.97
state getBlockRootAtSlot - 250000 vs - 7PWei 449.01 ns/op 303.07 ns/op 1.48
computeProposerIndex 100000 validators 1.3117 ms/op 1.3289 ms/op 0.99
getNextSyncCommitteeIndices 1000 validators 2.8491 ms/op 2.8362 ms/op 1.00
getNextSyncCommitteeIndices 10000 validators 25.179 ms/op 25.183 ms/op 1.00
getNextSyncCommitteeIndices 100000 validators 83.216 ms/op 86.752 ms/op 0.96
computeProposers - vc 250000 567.02 us/op 561.12 us/op 1.01
computeEpochShuffling - vc 250000 39.594 ms/op 39.115 ms/op 1.01
getNextSyncCommittee - vc 250000 9.4979 ms/op 9.5636 ms/op 0.99
nodejs block root to RootHex using toHex 98.409 ns/op 95.760 ns/op 1.03
nodejs block root to RootHex using toRootHex 56.289 ns/op 60.459 ns/op 0.93
nodejs fromHex(blob) 821.82 us/op 953.59 us/op 0.86
nodejs fromHexInto(blob) 621.85 us/op 649.92 us/op 0.96
nodejs block root to RootHex using the deprecated toHexString 355.41 ns/op 546.10 ns/op 0.65
nodejs byteArrayEquals 32 bytes (block root) 25.430 ns/op 26.168 ns/op 0.97
nodejs byteArrayEquals 48 bytes (pubkey) 36.617 ns/op 38.063 ns/op 0.96
nodejs byteArrayEquals 96 bytes (signature) 33.491 ns/op 36.603 ns/op 0.91
nodejs byteArrayEquals 1024 bytes 41.383 ns/op 44.443 ns/op 0.93
nodejs byteArrayEquals 131072 bytes (blob) 1.7926 us/op 1.9345 us/op 0.93
browser block root to RootHex using toHex 148.43 ns/op 146.63 ns/op 1.01
browser block root to RootHex using toRootHex 134.08 ns/op 133.55 ns/op 1.00
browser fromHex(blob) 1.6575 ms/op 1.7402 ms/op 0.95
browser fromHexInto(blob) 660.86 us/op 646.68 us/op 1.02
browser block root to RootHex using the deprecated toHexString 490.94 ns/op 376.93 ns/op 1.30
browser byteArrayEquals 32 bytes (block root) 28.184 ns/op 28.567 ns/op 0.99
browser byteArrayEquals 48 bytes (pubkey) 39.879 ns/op 40.140 ns/op 0.99
browser byteArrayEquals 96 bytes (signature) 74.752 ns/op 74.855 ns/op 1.00
browser byteArrayEquals 1024 bytes 759.35 ns/op 766.75 ns/op 0.99
browser byteArrayEquals 131072 bytes (blob) 95.760 us/op 96.329 us/op 0.99

by benchmarkbot/action

Copy link
Copy Markdown
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.

5 participants