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: add inclusion lists for censorship resistance #6551

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

Conversation

g11tech
Copy link
Contributor

@g11tech g11tech commented Mar 15, 2024

currently schedule on electra (standlone) and should work with electra genesis

@g11tech g11tech changed the base branch from electra-fork to unstable March 16, 2024 16:17
Copy link
Contributor

github-actions bot commented Mar 16, 2024

Performance Report

✔️ no performance regression detected

🚀🚀 Significant benchmark improvement detected

Benchmark suite Current: 3db0c9e Previous: 57127cc Ratio
getExpectedWithdrawals 250000 eb:0.95,eth1:0.1,we:0.05,wn:0,smpl:219 28.545 us/op 87.842 us/op 0.32
getExpectedWithdrawals 250000 eb:0.03,eth1:0.03,we:0,wn:0,smpl:11777 789.38 us/op 2.7726 ms/op 0.28
getExpectedWithdrawals 250000 eb:0.01,eth1:0.01,we:0,wn:0,smpl:16384 869.97 us/op 2.6536 ms/op 0.33
Full benchmark results
Benchmark suite Current: 3db0c9e Previous: 57127cc Ratio
getPubkeys - index2pubkey - req 1000 vs - 250000 vc 416.74 us/op 1.0006 ms/op 0.42
getPubkeys - validatorsArr - req 1000 vs - 250000 vc 61.320 us/op 86.002 us/op 0.71
BLS verify - blst-native 1.1055 ms/op 1.2913 ms/op 0.86
BLS verifyMultipleSignatures 3 - blst-native 2.3307 ms/op 2.7452 ms/op 0.85
BLS verifyMultipleSignatures 8 - blst-native 5.1049 ms/op 5.9397 ms/op 0.86
BLS verifyMultipleSignatures 32 - blst-native 18.704 ms/op 21.945 ms/op 0.85
BLS verifyMultipleSignatures 64 - blst-native 36.896 ms/op 43.425 ms/op 0.85
BLS verifyMultipleSignatures 128 - blst-native 73.170 ms/op 88.401 ms/op 0.83
BLS deserializing 10000 signatures 778.10 ms/op 925.57 ms/op 0.84
BLS deserializing 100000 signatures 8.0196 s/op 9.4651 s/op 0.85
BLS verifyMultipleSignatures - same message - 3 - blst-native 1.0912 ms/op 1.3416 ms/op 0.81
BLS verifyMultipleSignatures - same message - 8 - blst-native 1.2368 ms/op 1.6891 ms/op 0.73
BLS verifyMultipleSignatures - same message - 32 - blst-native 1.9463 ms/op 2.3059 ms/op 0.84
BLS verifyMultipleSignatures - same message - 64 - blst-native 3.8516 ms/op 3.3898 ms/op 1.14
BLS verifyMultipleSignatures - same message - 128 - blst-native 4.9996 ms/op 8.0454 ms/op 0.62
BLS aggregatePubkeys 32 - blst-native 22.490 us/op 28.006 us/op 0.80
BLS aggregatePubkeys 128 - blst-native 89.473 us/op 100.74 us/op 0.89
notSeenSlots=1 numMissedVotes=1 numBadVotes=10 48.205 ms/op 60.698 ms/op 0.79
notSeenSlots=1 numMissedVotes=0 numBadVotes=4 36.377 ms/op 58.323 ms/op 0.62
notSeenSlots=2 numMissedVotes=1 numBadVotes=10 26.315 ms/op 34.725 ms/op 0.76
getSlashingsAndExits - default max 138.08 us/op 193.37 us/op 0.71
getSlashingsAndExits - 2k 342.32 us/op 392.73 us/op 0.87
proposeBlockBody type=full, size=empty 3.6320 ms/op 5.5382 ms/op 0.66
isKnown best case - 1 super set check 333.00 ns/op 322.00 ns/op 1.03
isKnown normal case - 2 super set checks 332.00 ns/op 304.00 ns/op 1.09
isKnown worse case - 16 super set checks 325.00 ns/op 304.00 ns/op 1.07
CheckpointStateCache - add get delete 4.2920 us/op 6.1530 us/op 0.70
validate api signedAggregateAndProof - struct 2.3884 ms/op 2.8029 ms/op 0.85
validate gossip signedAggregateAndProof - struct 2.3854 ms/op 2.8109 ms/op 0.85
validate gossip attestation - vc 640000 1.1379 ms/op 1.3583 ms/op 0.84
batch validate gossip attestation - vc 640000 - chunk 32 131.06 us/op 162.92 us/op 0.80
batch validate gossip attestation - vc 640000 - chunk 64 117.62 us/op 148.97 us/op 0.79
batch validate gossip attestation - vc 640000 - chunk 128 112.69 us/op 144.05 us/op 0.78
batch validate gossip attestation - vc 640000 - chunk 256 109.81 us/op 135.75 us/op 0.81
pickEth1Vote - no votes 1.0920 ms/op 1.2442 ms/op 0.88
pickEth1Vote - max votes 10.680 ms/op 8.6777 ms/op 1.23
pickEth1Vote - Eth1Data hashTreeRoot value x2048 19.331 ms/op 16.563 ms/op 1.17
pickEth1Vote - Eth1Data hashTreeRoot tree x2048 26.010 ms/op 32.685 ms/op 0.80
pickEth1Vote - Eth1Data fastSerialize value x2048 381.86 us/op 648.25 us/op 0.59
pickEth1Vote - Eth1Data fastSerialize tree x2048 5.9969 ms/op 7.3648 ms/op 0.81
bytes32 toHexString 432.00 ns/op 512.00 ns/op 0.84
bytes32 Buffer.toString(hex) 300.00 ns/op 317.00 ns/op 0.95
bytes32 Buffer.toString(hex) from Uint8Array 412.00 ns/op 447.00 ns/op 0.92
bytes32 Buffer.toString(hex) + 0x 301.00 ns/op 323.00 ns/op 0.93
Object access 1 prop 0.19300 ns/op 0.18700 ns/op 1.03
Map access 1 prop 0.18400 ns/op 0.16000 ns/op 1.15
Object get x1000 4.8170 ns/op 8.8570 ns/op 0.54
Map get x1000 0.69200 ns/op 0.86000 ns/op 0.80
Object set x1000 24.233 ns/op 53.780 ns/op 0.45
Map set x1000 16.838 ns/op 43.553 ns/op 0.39
Return object 10000 times 0.21470 ns/op 0.25300 ns/op 0.85
Throw Error 10000 times 2.5552 us/op 4.1779 us/op 0.61
fastMsgIdFn sha256 / 200 bytes 1.8550 us/op 3.5450 us/op 0.52
fastMsgIdFn h32 xxhash / 200 bytes 279.00 ns/op 334.00 ns/op 0.84
fastMsgIdFn h64 xxhash / 200 bytes 333.00 ns/op 393.00 ns/op 0.85
fastMsgIdFn sha256 / 1000 bytes 5.8780 us/op 12.281 us/op 0.48
fastMsgIdFn h32 xxhash / 1000 bytes 386.00 ns/op 478.00 ns/op 0.81
fastMsgIdFn h64 xxhash / 1000 bytes 388.00 ns/op 473.00 ns/op 0.82
fastMsgIdFn sha256 / 10000 bytes 50.640 us/op 112.03 us/op 0.45
fastMsgIdFn h32 xxhash / 10000 bytes 1.7290 us/op 2.0600 us/op 0.84
fastMsgIdFn h64 xxhash / 10000 bytes 1.1880 us/op 1.4410 us/op 0.82
send data - 1000 256B messages 11.641 ms/op 20.872 ms/op 0.56
send data - 1000 512B messages 15.595 ms/op 24.462 ms/op 0.64
send data - 1000 1024B messages 22.462 ms/op 42.239 ms/op 0.53
send data - 1000 1200B messages 29.278 ms/op 40.480 ms/op 0.72
send data - 1000 2048B messages 37.103 ms/op 50.396 ms/op 0.74
send data - 1000 4096B messages 32.312 ms/op 46.107 ms/op 0.70
send data - 1000 16384B messages 88.867 ms/op 124.11 ms/op 0.72
send data - 1000 65536B messages 420.00 ms/op 442.57 ms/op 0.95
enrSubnets - fastDeserialize 64 bits 1.0730 us/op 1.2680 us/op 0.85
enrSubnets - ssz BitVector 64 bits 439.00 ns/op 413.00 ns/op 1.06
enrSubnets - fastDeserialize 4 bits 202.00 ns/op 172.00 ns/op 1.17
enrSubnets - ssz BitVector 4 bits 417.00 ns/op 425.00 ns/op 0.98
prioritizePeers score -10:0 att 32-0.1 sync 2-0 64.114 us/op 108.17 us/op 0.59
prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 77.539 us/op 127.44 us/op 0.61
prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 108.62 us/op 163.78 us/op 0.66
prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 185.47 us/op 290.12 us/op 0.64
prioritizePeers score 0:0 att 64-1 sync 4-1 207.68 us/op 340.17 us/op 0.61
array of 16000 items push then shift 1.2447 us/op 1.6069 us/op 0.77
LinkedList of 16000 items push then shift 6.8190 ns/op 9.1700 ns/op 0.74
array of 16000 items push then pop 84.823 ns/op 79.001 ns/op 1.07
LinkedList of 16000 items push then pop 5.6320 ns/op 8.8370 ns/op 0.64
array of 24000 items push then shift 1.7907 us/op 2.4227 us/op 0.74
LinkedList of 24000 items push then shift 6.4670 ns/op 9.4800 ns/op 0.68
array of 24000 items push then pop 93.600 ns/op 114.90 ns/op 0.81
LinkedList of 24000 items push then pop 5.8140 ns/op 9.7680 ns/op 0.60
intersect bitArray bitLen 8 4.5840 ns/op 6.0770 ns/op 0.75
intersect array and set length 8 47.116 ns/op 63.531 ns/op 0.74
intersect bitArray bitLen 128 29.083 ns/op 36.442 ns/op 0.80
intersect array and set length 128 643.08 ns/op 876.46 ns/op 0.73
bitArray.getTrueBitIndexes() bitLen 128 1.1990 us/op 1.5000 us/op 0.80
bitArray.getTrueBitIndexes() bitLen 248 1.9320 us/op 2.5080 us/op 0.77
bitArray.getTrueBitIndexes() bitLen 512 4.0230 us/op 4.8580 us/op 0.83
Buffer.concat 32 items 842.00 ns/op 1.0280 us/op 0.82
Uint8Array.set 32 items 1.7790 us/op 2.2360 us/op 0.80
Set add up to 64 items then delete first 1.7428 us/op 4.3014 us/op 0.41
OrderedSet add up to 64 items then delete first 2.6897 us/op 5.4687 us/op 0.49
Set add up to 64 items then delete last 2.0069 us/op 4.6416 us/op 0.43
OrderedSet add up to 64 items then delete last 2.9513 us/op 5.8264 us/op 0.51
Set add up to 64 items then delete middle 1.9703 us/op 4.6656 us/op 0.42
OrderedSet add up to 64 items then delete middle 4.1479 us/op 7.2856 us/op 0.57
Set add up to 128 items then delete first 3.9893 us/op 9.3836 us/op 0.43
OrderedSet add up to 128 items then delete first 6.0707 us/op 12.675 us/op 0.48
Set add up to 128 items then delete last 3.7735 us/op 9.2818 us/op 0.41
OrderedSet add up to 128 items then delete last 5.6037 us/op 11.962 us/op 0.47
Set add up to 128 items then delete middle 3.6732 us/op 9.2739 us/op 0.40
OrderedSet add up to 128 items then delete middle 10.422 us/op 17.547 us/op 0.59
Set add up to 256 items then delete first 7.1506 us/op 19.223 us/op 0.37
OrderedSet add up to 256 items then delete first 11.931 us/op 25.788 us/op 0.46
Set add up to 256 items then delete last 7.2603 us/op 18.508 us/op 0.39
OrderedSet add up to 256 items then delete last 11.128 us/op 23.690 us/op 0.47
Set add up to 256 items then delete middle 7.2202 us/op 18.404 us/op 0.39
OrderedSet add up to 256 items then delete middle 30.170 us/op 47.006 us/op 0.64
transfer serialized Status (84 B) 1.4700 us/op 1.7710 us/op 0.83
copy serialized Status (84 B) 1.2310 us/op 1.3180 us/op 0.93
transfer serialized SignedVoluntaryExit (112 B) 1.6440 us/op 1.7690 us/op 0.93
copy serialized SignedVoluntaryExit (112 B) 1.3410 us/op 1.3970 us/op 0.96
transfer serialized ProposerSlashing (416 B) 2.5590 us/op 2.5800 us/op 0.99
copy serialized ProposerSlashing (416 B) 2.6660 us/op 2.4860 us/op 1.07
transfer serialized Attestation (485 B) 2.5300 us/op 3.0070 us/op 0.84
copy serialized Attestation (485 B) 2.2840 us/op 2.7500 us/op 0.83
transfer serialized AttesterSlashing (33232 B) 2.5290 us/op 2.9610 us/op 0.85
copy serialized AttesterSlashing (33232 B) 4.6350 us/op 7.4510 us/op 0.62
transfer serialized Small SignedBeaconBlock (128000 B) 2.2320 us/op 3.8250 us/op 0.58
copy serialized Small SignedBeaconBlock (128000 B) 9.8610 us/op 14.972 us/op 0.66
transfer serialized Avg SignedBeaconBlock (200000 B) 2.4870 us/op 3.6190 us/op 0.69
copy serialized Avg SignedBeaconBlock (200000 B) 53.014 us/op 21.960 us/op 2.41
transfer serialized BlobsSidecar (524380 B) 2.7970 us/op 3.0570 us/op 0.91
copy serialized BlobsSidecar (524380 B) 80.899 us/op 83.662 us/op 0.97
transfer serialized Big SignedBeaconBlock (1000000 B) 2.8630 us/op 3.4120 us/op 0.84
copy serialized Big SignedBeaconBlock (1000000 B) 153.51 us/op 185.77 us/op 0.83
pass gossip attestations to forkchoice per slot 2.7472 ms/op 4.4196 ms/op 0.62
forkChoice updateHead vc 100000 bc 64 eq 0 456.74 us/op 692.21 us/op 0.66
forkChoice updateHead vc 600000 bc 64 eq 0 3.0989 ms/op 4.3305 ms/op 0.72
forkChoice updateHead vc 1000000 bc 64 eq 0 4.4018 ms/op 7.1297 ms/op 0.62
forkChoice updateHead vc 600000 bc 320 eq 0 2.5460 ms/op 4.2475 ms/op 0.60
forkChoice updateHead vc 600000 bc 1200 eq 0 2.6322 ms/op 4.4014 ms/op 0.60
forkChoice updateHead vc 600000 bc 7200 eq 0 4.3124 ms/op 5.3108 ms/op 0.81
forkChoice updateHead vc 600000 bc 64 eq 1000 9.8111 ms/op 11.259 ms/op 0.87
forkChoice updateHead vc 600000 bc 64 eq 10000 9.6297 ms/op 12.123 ms/op 0.79
forkChoice updateHead vc 600000 bc 64 eq 300000 11.935 ms/op 16.353 ms/op 0.73
computeDeltas 500000 validators 300 proto nodes 3.0704 ms/op 6.9935 ms/op 0.44
computeDeltas 500000 validators 1200 proto nodes 2.9113 ms/op 6.9508 ms/op 0.42
computeDeltas 500000 validators 7200 proto nodes 2.9022 ms/op 6.7475 ms/op 0.43
computeDeltas 750000 validators 300 proto nodes 4.4449 ms/op 11.016 ms/op 0.40
computeDeltas 750000 validators 1200 proto nodes 4.4398 ms/op 11.698 ms/op 0.38
computeDeltas 750000 validators 7200 proto nodes 4.3904 ms/op 11.723 ms/op 0.37
computeDeltas 1400000 validators 300 proto nodes 8.5579 ms/op 24.332 ms/op 0.35
computeDeltas 1400000 validators 1200 proto nodes 8.6291 ms/op 24.138 ms/op 0.36
computeDeltas 1400000 validators 7200 proto nodes 8.6937 ms/op 25.029 ms/op 0.35
computeDeltas 2100000 validators 300 proto nodes 12.860 ms/op 36.897 ms/op 0.35
computeDeltas 2100000 validators 1200 proto nodes 12.989 ms/op 35.176 ms/op 0.37
computeDeltas 2100000 validators 7200 proto nodes 12.830 ms/op 35.324 ms/op 0.36
altair processAttestation - 250000 vs - 7PWei normalcase 1.5575 ms/op 3.1276 ms/op 0.50
altair processAttestation - 250000 vs - 7PWei worstcase 2.3064 ms/op 4.2119 ms/op 0.55
altair processAttestation - setStatus - 1/6 committees join 98.114 us/op 240.31 us/op 0.41
altair processAttestation - setStatus - 1/3 committees join 198.03 us/op 391.49 us/op 0.51
altair processAttestation - setStatus - 1/2 committees join 286.76 us/op 539.31 us/op 0.53
altair processAttestation - setStatus - 2/3 committees join 380.86 us/op 712.40 us/op 0.53
altair processAttestation - setStatus - 4/5 committees join 495.95 us/op 1.0527 ms/op 0.47
altair processAttestation - setStatus - 100% committees join 573.89 us/op 1.1614 ms/op 0.49
altair processBlock - 250000 vs - 7PWei normalcase 7.9420 ms/op 12.267 ms/op 0.65
altair processBlock - 250000 vs - 7PWei normalcase hashState 29.347 ms/op 45.935 ms/op 0.64
altair processBlock - 250000 vs - 7PWei worstcase 32.970 ms/op 43.437 ms/op 0.76
altair processBlock - 250000 vs - 7PWei worstcase hashState 83.375 ms/op 111.30 ms/op 0.75
phase0 processBlock - 250000 vs - 7PWei normalcase 1.9777 ms/op 2.6962 ms/op 0.73
phase0 processBlock - 250000 vs - 7PWei worstcase 23.753 ms/op 32.338 ms/op 0.73
altair processEth1Data - 250000 vs - 7PWei normalcase 307.09 us/op 647.62 us/op 0.47
getExpectedWithdrawals 250000 eb:1,eth1:1,we:0,wn:0,smpl:15 10.238 us/op 8.7860 us/op 1.17
getExpectedWithdrawals 250000 eb:0.95,eth1:0.1,we:0.05,wn:0,smpl:219 28.545 us/op 87.842 us/op 0.32
getExpectedWithdrawals 250000 eb:0.95,eth1:0.3,we:0.05,wn:0,smpl:42 9.3850 us/op 15.678 us/op 0.60
getExpectedWithdrawals 250000 eb:0.95,eth1:0.7,we:0.05,wn:0,smpl:18 6.1300 us/op 8.6810 us/op 0.71
getExpectedWithdrawals 250000 eb:0.1,eth1:0.1,we:0,wn:0,smpl:1020 126.67 us/op 218.55 us/op 0.58
getExpectedWithdrawals 250000 eb:0.03,eth1:0.03,we:0,wn:0,smpl:11777 789.38 us/op 2.7726 ms/op 0.28
getExpectedWithdrawals 250000 eb:0.01,eth1:0.01,we:0,wn:0,smpl:16384 869.97 us/op 2.6536 ms/op 0.33
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,smpl:16384 1.3874 ms/op 2.3903 ms/op 0.58
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,nocache,smpl:16384 2.2123 ms/op 4.1614 ms/op 0.53
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,smpl:16384 1.4985 ms/op 2.6070 ms/op 0.57
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,nocache,smpl:16384 3.3203 ms/op 4.8500 ms/op 0.68
Tree 40 250000 create 242.53 ms/op 364.99 ms/op 0.66
Tree 40 250000 get(125000) 106.66 ns/op 217.38 ns/op 0.49
Tree 40 250000 set(125000) 716.59 ns/op 1.0491 us/op 0.68
Tree 40 250000 toArray() 14.436 ms/op 20.208 ms/op 0.71
Tree 40 250000 iterate all - toArray() + loop 14.599 ms/op 20.175 ms/op 0.72
Tree 40 250000 iterate all - get(i) 41.452 ms/op 71.951 ms/op 0.58
MutableVector 250000 create 11.268 ms/op 19.818 ms/op 0.57
MutableVector 250000 get(125000) 5.6180 ns/op 7.0940 ns/op 0.79
MutableVector 250000 set(125000) 203.19 ns/op 268.37 ns/op 0.76
MutableVector 250000 toArray() 2.1320 ms/op 3.3902 ms/op 0.63
MutableVector 250000 iterate all - toArray() + loop 2.5245 ms/op 3.6941 ms/op 0.68
MutableVector 250000 iterate all - get(i) 1.2874 ms/op 1.6695 ms/op 0.77
Array 250000 create 2.1723 ms/op 3.0549 ms/op 0.71
Array 250000 clone - spread 1.1528 ms/op 1.2664 ms/op 0.91
Array 250000 get(125000) 1.0580 ns/op 1.1020 ns/op 0.96
Array 250000 set(125000) 1.2660 ns/op 4.2090 ns/op 0.30
Array 250000 iterate all - loop 153.57 us/op 180.75 us/op 0.85
effectiveBalanceIncrements clone Uint8Array 300000 14.570 us/op 26.372 us/op 0.55
effectiveBalanceIncrements clone MutableVector 300000 431.00 ns/op 368.00 ns/op 1.17
effectiveBalanceIncrements rw all Uint8Array 300000 185.02 us/op 221.73 us/op 0.83
effectiveBalanceIncrements rw all MutableVector 300000 65.861 ms/op 85.053 ms/op 0.77
phase0 afterProcessEpoch - 250000 vs - 7PWei 77.649 ms/op 123.64 ms/op 0.63
phase0 beforeProcessEpoch - 250000 vs - 7PWei 36.132 ms/op 57.312 ms/op 0.63
altair processEpoch - mainnet_e81889 431.98 ms/op 574.60 ms/op 0.75
mainnet_e81889 - altair beforeProcessEpoch 67.448 ms/op 81.793 ms/op 0.82
mainnet_e81889 - altair processJustificationAndFinalization 8.8770 us/op 24.624 us/op 0.36
mainnet_e81889 - altair processInactivityUpdates 4.9949 ms/op 6.1472 ms/op 0.81
mainnet_e81889 - altair processRewardsAndPenalties 62.801 ms/op 71.441 ms/op 0.88
mainnet_e81889 - altair processRegistryUpdates 2.2880 us/op 3.7970 us/op 0.60
mainnet_e81889 - altair processSlashings 580.00 ns/op 645.00 ns/op 0.90
mainnet_e81889 - altair processEth1DataReset 596.00 ns/op 821.00 ns/op 0.73
mainnet_e81889 - altair processEffectiveBalanceUpdates 1.7608 ms/op 2.6559 ms/op 0.66
mainnet_e81889 - altair processSlashingsReset 2.2230 us/op 6.2680 us/op 0.35
mainnet_e81889 - altair processRandaoMixesReset 2.5710 us/op 6.6870 us/op 0.38
mainnet_e81889 - altair processHistoricalRootsUpdate 624.00 ns/op 1.2210 us/op 0.51
mainnet_e81889 - altair processParticipationFlagUpdates 1.3060 us/op 2.5660 us/op 0.51
mainnet_e81889 - altair processSyncCommitteeUpdates 469.00 ns/op 924.00 ns/op 0.51
mainnet_e81889 - altair afterProcessEpoch 89.884 ms/op 131.51 ms/op 0.68
capella processEpoch - mainnet_e217614 1.5959 s/op 1.9922 s/op 0.80
mainnet_e217614 - capella beforeProcessEpoch 413.36 ms/op 502.70 ms/op 0.82
mainnet_e217614 - capella processJustificationAndFinalization 11.948 us/op 22.394 us/op 0.53
mainnet_e217614 - capella processInactivityUpdates 14.152 ms/op 16.795 ms/op 0.84
mainnet_e217614 - capella processRewardsAndPenalties 333.34 ms/op 441.33 ms/op 0.76
mainnet_e217614 - capella processRegistryUpdates 16.750 us/op 29.127 us/op 0.58
mainnet_e217614 - capella processSlashings 551.00 ns/op 913.00 ns/op 0.60
mainnet_e217614 - capella processEth1DataReset 533.00 ns/op 817.00 ns/op 0.65
mainnet_e217614 - capella processEffectiveBalanceUpdates 4.4178 ms/op 4.5999 ms/op 0.96
mainnet_e217614 - capella processSlashingsReset 1.7060 us/op 4.2890 us/op 0.40
mainnet_e217614 - capella processRandaoMixesReset 2.8360 us/op 6.7730 us/op 0.42
mainnet_e217614 - capella processHistoricalRootsUpdate 548.00 ns/op 952.00 ns/op 0.58
mainnet_e217614 - capella processParticipationFlagUpdates 1.2300 us/op 2.2760 us/op 0.54
mainnet_e217614 - capella afterProcessEpoch 206.61 ms/op 305.16 ms/op 0.68
phase0 processEpoch - mainnet_e58758 414.75 ms/op 548.80 ms/op 0.76
mainnet_e58758 - phase0 beforeProcessEpoch 121.93 ms/op 168.26 ms/op 0.72
mainnet_e58758 - phase0 processJustificationAndFinalization 11.347 us/op 26.104 us/op 0.43
mainnet_e58758 - phase0 processRewardsAndPenalties 53.654 ms/op 66.517 ms/op 0.81
mainnet_e58758 - phase0 processRegistryUpdates 9.1620 us/op 15.285 us/op 0.60
mainnet_e58758 - phase0 processSlashings 555.00 ns/op 711.00 ns/op 0.78
mainnet_e58758 - phase0 processEth1DataReset 505.00 ns/op 677.00 ns/op 0.75
mainnet_e58758 - phase0 processEffectiveBalanceUpdates 1.3869 ms/op 2.1472 ms/op 0.65
mainnet_e58758 - phase0 processSlashingsReset 2.3110 us/op 4.0560 us/op 0.57
mainnet_e58758 - phase0 processRandaoMixesReset 2.5510 us/op 6.0060 us/op 0.42
mainnet_e58758 - phase0 processHistoricalRootsUpdate 608.00 ns/op 711.00 ns/op 0.86
mainnet_e58758 - phase0 processParticipationRecordUpdates 2.7920 us/op 5.7830 us/op 0.48
mainnet_e58758 - phase0 afterProcessEpoch 68.273 ms/op 100.79 ms/op 0.68
phase0 processEffectiveBalanceUpdates - 250000 normalcase 980.48 us/op 1.2779 ms/op 0.77
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 1.1746 ms/op 1.4694 ms/op 0.80
altair processInactivityUpdates - 250000 normalcase 23.270 ms/op 30.436 ms/op 0.76
altair processInactivityUpdates - 250000 worstcase 25.026 ms/op 37.574 ms/op 0.67
phase0 processRegistryUpdates - 250000 normalcase 5.9930 us/op 12.465 us/op 0.48
phase0 processRegistryUpdates - 250000 badcase_full_deposits 420.94 us/op 683.16 us/op 0.62
phase0 processRegistryUpdates - 250000 worstcase 0.5 127.43 ms/op 136.26 ms/op 0.94
altair processRewardsAndPenalties - 250000 normalcase 57.422 ms/op 65.378 ms/op 0.88
altair processRewardsAndPenalties - 250000 worstcase 54.448 ms/op 69.084 ms/op 0.79
phase0 getAttestationDeltas - 250000 normalcase 5.6634 ms/op 8.8860 ms/op 0.64
phase0 getAttestationDeltas - 250000 worstcase 5.7495 ms/op 9.1892 ms/op 0.63
phase0 processSlashings - 250000 worstcase 84.312 us/op 129.31 us/op 0.65
altair processSyncCommitteeUpdates - 250000 108.95 ms/op 154.66 ms/op 0.70
BeaconState.hashTreeRoot - No change 386.00 ns/op 378.00 ns/op 1.02
BeaconState.hashTreeRoot - 1 full validator 154.58 us/op 163.63 us/op 0.94
BeaconState.hashTreeRoot - 32 full validator 1.6702 ms/op 1.8040 ms/op 0.93
BeaconState.hashTreeRoot - 512 full validator 11.956 ms/op 18.738 ms/op 0.64
BeaconState.hashTreeRoot - 1 validator.effectiveBalance 147.49 us/op 194.60 us/op 0.76
BeaconState.hashTreeRoot - 32 validator.effectiveBalance 1.9840 ms/op 2.3396 ms/op 0.85
BeaconState.hashTreeRoot - 512 validator.effectiveBalance 26.763 ms/op 40.615 ms/op 0.66
BeaconState.hashTreeRoot - 1 balances 123.12 us/op 156.41 us/op 0.79
BeaconState.hashTreeRoot - 32 balances 1.1445 ms/op 1.4324 ms/op 0.80
BeaconState.hashTreeRoot - 512 balances 11.195 ms/op 13.554 ms/op 0.83
BeaconState.hashTreeRoot - 250000 balances 207.47 ms/op 219.30 ms/op 0.95
aggregationBits - 2048 els - zipIndexesInBitList 20.246 us/op 27.247 us/op 0.74
byteArrayEquals 32 60.487 ns/op 77.600 ns/op 0.78
Buffer.compare 32 34.253 ns/op 57.958 ns/op 0.59
byteArrayEquals 1024 1.6156 us/op 2.1363 us/op 0.76
Buffer.compare 1024 39.664 ns/op 72.859 ns/op 0.54
byteArrayEquals 16384 25.665 us/op 34.080 us/op 0.75
Buffer.compare 16384 195.64 ns/op 254.88 ns/op 0.77
byteArrayEquals 123687377 204.57 ms/op 247.37 ms/op 0.83
Buffer.compare 123687377 4.0141 ms/op 6.3385 ms/op 0.63
byteArrayEquals 32 - diff last byte 62.249 ns/op 79.206 ns/op 0.79
Buffer.compare 32 - diff last byte 38.481 ns/op 56.620 ns/op 0.68
byteArrayEquals 1024 - diff last byte 1.7633 us/op 2.0584 us/op 0.86
Buffer.compare 1024 - diff last byte 44.723 ns/op 71.566 ns/op 0.62
byteArrayEquals 16384 - diff last byte 27.621 us/op 32.833 us/op 0.84
Buffer.compare 16384 - diff last byte 236.09 ns/op 257.70 ns/op 0.92
byteArrayEquals 123687377 - diff last byte 200.05 ms/op 247.91 ms/op 0.81
Buffer.compare 123687377 - diff last byte 3.8728 ms/op 6.1527 ms/op 0.63
byteArrayEquals 32 - random bytes 4.6650 ns/op 5.3300 ns/op 0.88
Buffer.compare 32 - random bytes 39.189 ns/op 61.117 ns/op 0.64
byteArrayEquals 1024 - random bytes 4.4600 ns/op 5.2700 ns/op 0.85
Buffer.compare 1024 - random bytes 41.393 ns/op 61.664 ns/op 0.67
byteArrayEquals 16384 - random bytes 4.4600 ns/op 5.2480 ns/op 0.85
Buffer.compare 16384 - random bytes 37.844 ns/op 60.744 ns/op 0.62
byteArrayEquals 123687377 - random bytes 7.9700 ns/op 8.6300 ns/op 0.92
Buffer.compare 123687377 - random bytes 41.700 ns/op 64.360 ns/op 0.65
regular array get 100000 times 41.070 us/op 44.488 us/op 0.92
wrappedArray get 100000 times 41.152 us/op 43.431 us/op 0.95
arrayWithProxy get 100000 times 10.750 ms/op 14.080 ms/op 0.76
ssz.Root.equals 56.084 ns/op 54.447 ns/op 1.03
byteArrayEquals 52.622 ns/op 54.141 ns/op 0.97
Buffer.compare 8.7840 ns/op 11.098 ns/op 0.79
shuffle list - 16384 els 5.5119 ms/op 8.7620 ms/op 0.63
shuffle list - 250000 els 81.635 ms/op 127.84 ms/op 0.64
processSlot - 1 slots 14.541 us/op 21.727 us/op 0.67
processSlot - 32 slots 3.0159 ms/op 3.9996 ms/op 0.75
getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei 50.987 ms/op 67.688 ms/op 0.75
getCommitteeAssignments - req 1 vs - 250000 vc 2.3968 ms/op 2.6798 ms/op 0.89
getCommitteeAssignments - req 100 vs - 250000 vc 3.5326 ms/op 3.8786 ms/op 0.91
getCommitteeAssignments - req 1000 vs - 250000 vc 3.7940 ms/op 4.1168 ms/op 0.92
findModifiedValidators - 10000 modified validators 424.77 ms/op 535.65 ms/op 0.79
findModifiedValidators - 1000 modified validators 271.65 ms/op 444.86 ms/op 0.61
findModifiedValidators - 100 modified validators 282.96 ms/op 438.48 ms/op 0.65
findModifiedValidators - 10 modified validators 301.68 ms/op 451.37 ms/op 0.67
findModifiedValidators - 1 modified validators 296.72 ms/op 406.77 ms/op 0.73
findModifiedValidators - no difference 307.72 ms/op 431.27 ms/op 0.71
compare ViewDUs 3.8654 s/op 5.2082 s/op 0.74
compare each validator Uint8Array 1.9271 s/op 2.1524 s/op 0.90
compare ViewDU to Uint8Array 810.82 ms/op 1.0896 s/op 0.74
migrate state 1000000 validators, 24 modified, 0 new 777.49 ms/op 914.81 ms/op 0.85
migrate state 1000000 validators, 1700 modified, 1000 new 1.0660 s/op 1.2288 s/op 0.87
migrate state 1000000 validators, 3400 modified, 2000 new 1.2739 s/op 1.4724 s/op 0.87
migrate state 1500000 validators, 24 modified, 0 new 760.66 ms/op 911.45 ms/op 0.83
migrate state 1500000 validators, 1700 modified, 1000 new 1.0845 s/op 1.2338 s/op 0.88
migrate state 1500000 validators, 3400 modified, 2000 new 1.2633 s/op 1.4821 s/op 0.85
RootCache.getBlockRootAtSlot - 250000 vs - 7PWei 4.4900 ns/op 4.3300 ns/op 1.04
state getBlockRootAtSlot - 250000 vs - 7PWei 787.75 ns/op 858.62 ns/op 0.92
computeProposers - vc 250000 5.9847 ms/op 9.3602 ms/op 0.64
computeEpochShuffling - vc 250000 81.141 ms/op 127.05 ms/op 0.64
getNextSyncCommittee - vc 250000 118.44 ms/op 163.01 ms/op 0.73
computeSigningRoot for AttestationData 32.035 us/op 30.513 us/op 1.05
hash AttestationData serialized data then Buffer.toString(base64) 1.1768 us/op 2.2948 us/op 0.51
toHexString serialized data 744.44 ns/op 1.0777 us/op 0.69
Buffer.toString(base64) 157.51 ns/op 211.43 ns/op 0.74

by benchmarkbot/action

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

1 participant