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

chore: portable blst #7164

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

chore: portable blst #7164

wants to merge 2 commits into from

Conversation

matthewkeil
Copy link
Member

Motivation

Just a temp PR to run full CI to validate code

@matthewkeil matthewkeil added the status-do-not-merge Merging this issue will break the build. Do not merge! label Oct 15, 2024
Copy link

codecov bot commented Oct 15, 2024

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 49.21%. Comparing base (5adb4ef) to head (e471c6c).
Report is 2 commits behind head on unstable.

Additional details and impacted files
@@            Coverage Diff            @@
##           unstable    #7164   +/-   ##
=========================================
  Coverage     49.20%   49.21%           
=========================================
  Files           598      598           
  Lines         39726    39726           
  Branches       2088     2091    +3     
=========================================
+ Hits          19549    19551    +2     
+ Misses        20137    20135    -2     
  Partials         40       40           

Copy link
Contributor

Performance Report

✔️ no performance regression detected

🚀🚀 Significant benchmark improvement detected

Benchmark suite Current: ce06f05 Previous: cf72219 Ratio
enrSubnets - fastDeserialize 4 bits 147.00 ns/op 467.00 ns/op 0.31
getUint32 - manual 144.00 ns/op 610.00 ns/op 0.24
forkChoice updateHead vc 600000 bc 64 eq 300000 13.776 ms/op 65.050 ms/op 0.21
Full benchmark results
Benchmark suite Current: ce06f05 Previous: cf72219 Ratio
getPubkeys - index2pubkey - req 1000 vs - 250000 vc 1.8134 ms/op 1.8222 ms/op 1.00
getPubkeys - validatorsArr - req 1000 vs - 250000 vc 45.071 us/op 48.271 us/op 0.93
BLS verify - blst 830.28 us/op 901.48 us/op 0.92
BLS verifyMultipleSignatures 3 - blst 1.1691 ms/op 1.3719 ms/op 0.85
BLS verifyMultipleSignatures 8 - blst 1.6361 ms/op 2.1398 ms/op 0.76
BLS verifyMultipleSignatures 32 - blst 4.7169 ms/op 4.4521 ms/op 1.06
BLS verifyMultipleSignatures 64 - blst 8.8077 ms/op 8.3445 ms/op 1.06
BLS verifyMultipleSignatures 128 - blst 16.826 ms/op 15.986 ms/op 1.05
BLS deserializing 10000 signatures 675.52 ms/op 626.05 ms/op 1.08
BLS deserializing 100000 signatures 6.7222 s/op 6.3849 s/op 1.05
BLS verifyMultipleSignatures - same message - 3 - blst 876.30 us/op 946.56 us/op 0.93
BLS verifyMultipleSignatures - same message - 8 - blst 999.90 us/op 1.0932 ms/op 0.91
BLS verifyMultipleSignatures - same message - 32 - blst 1.6156 ms/op 1.8226 ms/op 0.89
BLS verifyMultipleSignatures - same message - 64 - blst 2.5208 ms/op 2.5419 ms/op 0.99
BLS verifyMultipleSignatures - same message - 128 - blst 4.2539 ms/op 4.2752 ms/op 1.00
BLS aggregatePubkeys 32 - blst 19.072 us/op 18.286 us/op 1.04
BLS aggregatePubkeys 128 - blst 67.662 us/op 64.152 us/op 1.05
notSeenSlots=1 numMissedVotes=1 numBadVotes=10 50.327 ms/op 77.079 ms/op 0.65
notSeenSlots=1 numMissedVotes=0 numBadVotes=4 44.997 ms/op 55.593 ms/op 0.81
notSeenSlots=2 numMissedVotes=1 numBadVotes=10 37.499 ms/op 46.273 ms/op 0.81
getSlashingsAndExits - default max 86.147 us/op 82.625 us/op 1.04
getSlashingsAndExits - 2k 251.23 us/op 334.15 us/op 0.75
proposeBlockBody type=full, size=empty 5.6739 ms/op 5.3953 ms/op 1.05
isKnown best case - 1 super set check 275.00 ns/op 478.00 ns/op 0.58
isKnown normal case - 2 super set checks 266.00 ns/op 472.00 ns/op 0.56
isKnown worse case - 16 super set checks 263.00 ns/op 470.00 ns/op 0.56
InMemoryCheckpointStateCache - add get delete 2.6790 us/op 3.3500 us/op 0.80
updateUnfinalizedPubkeys - updating 10 pubkeys 914.25 us/op 1.2222 ms/op 0.75
updateUnfinalizedPubkeys - updating 100 pubkeys 3.3745 ms/op 4.1910 ms/op 0.81
updateUnfinalizedPubkeys - updating 1000 pubkeys 48.496 ms/op 43.967 ms/op 1.10
validate api signedAggregateAndProof - struct 1.3327 ms/op 1.7581 ms/op 0.76
validate gossip signedAggregateAndProof - struct 1.3309 ms/op 1.9892 ms/op 0.67
batch validate gossip attestation - vc 640000 - chunk 32 119.66 us/op 136.66 us/op 0.88
batch validate gossip attestation - vc 640000 - chunk 64 108.52 us/op 116.18 us/op 0.93
batch validate gossip attestation - vc 640000 - chunk 128 102.14 us/op 109.78 us/op 0.93
batch validate gossip attestation - vc 640000 - chunk 256 99.086 us/op 116.77 us/op 0.85
pickEth1Vote - no votes 1.0125 ms/op 1.0689 ms/op 0.95
pickEth1Vote - max votes 6.0626 ms/op 8.0391 ms/op 0.75
pickEth1Vote - Eth1Data hashTreeRoot value x2048 15.605 ms/op 11.804 ms/op 1.32
pickEth1Vote - Eth1Data hashTreeRoot tree x2048 18.368 ms/op 16.828 ms/op 1.09
pickEth1Vote - Eth1Data fastSerialize value x2048 443.70 us/op 382.98 us/op 1.16
pickEth1Vote - Eth1Data fastSerialize tree x2048 3.9267 ms/op 3.3781 ms/op 1.16
bytes32 toHexString 416.00 ns/op 839.00 ns/op 0.50
bytes32 Buffer.toString(hex) 245.00 ns/op 521.00 ns/op 0.47
bytes32 Buffer.toString(hex) from Uint8Array 350.00 ns/op 725.00 ns/op 0.48
bytes32 Buffer.toString(hex) + 0x 249.00 ns/op 537.00 ns/op 0.46
Object access 1 prop 0.13800 ns/op 0.38600 ns/op 0.36
Map access 1 prop 0.13500 ns/op 0.34900 ns/op 0.39
Object get x1000 5.7450 ns/op 5.2990 ns/op 1.08
Map get x1000 6.3630 ns/op 5.9870 ns/op 1.06
Object set x1000 31.518 ns/op 24.752 ns/op 1.27
Map set x1000 21.366 ns/op 21.310 ns/op 1.00
Return object 10000 times 0.28130 ns/op 0.31230 ns/op 0.90
Throw Error 10000 times 3.2164 us/op 3.0244 us/op 1.06
toHex 136.50 ns/op 125.63 ns/op 1.09
Buffer.from 133.65 ns/op 106.69 ns/op 1.25
shared Buffer 84.722 ns/op 70.768 ns/op 1.20
fastMsgIdFn sha256 / 200 bytes 2.1660 us/op 2.1910 us/op 0.99
fastMsgIdFn h32 xxhash / 200 bytes 223.00 ns/op 510.00 ns/op 0.44
fastMsgIdFn h64 xxhash / 200 bytes 271.00 ns/op 508.00 ns/op 0.53
fastMsgIdFn sha256 / 1000 bytes 7.0900 us/op 6.0440 us/op 1.17
fastMsgIdFn h32 xxhash / 1000 bytes 347.00 ns/op 635.00 ns/op 0.55
fastMsgIdFn h64 xxhash / 1000 bytes 341.00 ns/op 584.00 ns/op 0.58
fastMsgIdFn sha256 / 10000 bytes 62.659 us/op 50.138 us/op 1.25
fastMsgIdFn h32 xxhash / 10000 bytes 1.8050 us/op 2.0220 us/op 0.89
fastMsgIdFn h64 xxhash / 10000 bytes 1.2120 us/op 1.3740 us/op 0.88
send data - 1000 256B messages 11.234 ms/op 12.996 ms/op 0.86
send data - 1000 512B messages 15.071 ms/op 19.212 ms/op 0.78
send data - 1000 1024B messages 25.429 ms/op 26.372 ms/op 0.96
send data - 1000 1200B messages 23.398 ms/op 28.823 ms/op 0.81
send data - 1000 2048B messages 31.183 ms/op 37.722 ms/op 0.83
send data - 1000 4096B messages 30.337 ms/op 38.454 ms/op 0.79
send data - 1000 16384B messages 67.867 ms/op 88.441 ms/op 0.77
send data - 1000 65536B messages 209.81 ms/op 339.72 ms/op 0.62
enrSubnets - fastDeserialize 64 bits 1.0650 us/op 2.1450 us/op 0.50
enrSubnets - ssz BitVector 64 bits 342.00 ns/op 840.00 ns/op 0.41
enrSubnets - fastDeserialize 4 bits 147.00 ns/op 467.00 ns/op 0.31
enrSubnets - ssz BitVector 4 bits 343.00 ns/op 719.00 ns/op 0.48
prioritizePeers score -10:0 att 32-0.1 sync 2-0 127.24 us/op 206.47 us/op 0.62
prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 153.06 us/op 226.27 us/op 0.68
prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 221.35 us/op 391.72 us/op 0.57
prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 387.24 us/op 551.54 us/op 0.70
prioritizePeers score 0:0 att 64-1 sync 4-1 488.58 us/op 967.98 us/op 0.50
array of 16000 items push then shift 1.5853 us/op 1.4064 us/op 1.13
LinkedList of 16000 items push then shift 6.9440 ns/op 8.4800 ns/op 0.82
array of 16000 items push then pop 98.007 ns/op 164.78 ns/op 0.59
LinkedList of 16000 items push then pop 6.9150 ns/op 8.0520 ns/op 0.86
array of 24000 items push then shift 2.3407 us/op 2.0304 us/op 1.15
LinkedList of 24000 items push then shift 7.3850 ns/op 6.7010 ns/op 1.10
array of 24000 items push then pop 126.73 ns/op 181.00 ns/op 0.70
LinkedList of 24000 items push then pop 7.3420 ns/op 6.4480 ns/op 1.14
intersect bitArray bitLen 8 6.2160 ns/op 6.0110 ns/op 1.03
intersect array and set length 8 42.224 ns/op 75.099 ns/op 0.56
intersect bitArray bitLen 128 28.878 ns/op 27.071 ns/op 1.07
intersect array and set length 128 636.52 ns/op 890.33 ns/op 0.71
bitArray.getTrueBitIndexes() bitLen 128 1.3030 us/op 2.8620 us/op 0.46
bitArray.getTrueBitIndexes() bitLen 248 2.1370 us/op 3.8080 us/op 0.56
bitArray.getTrueBitIndexes() bitLen 512 4.1210 us/op 10.012 us/op 0.41
Buffer.concat 32 items 865.00 ns/op 1.1060 us/op 0.78
Uint8Array.set 32 items 2.1630 us/op 1.6200 us/op 1.34
Buffer.copy 2.3960 us/op 2.7130 us/op 0.88
Uint8Array.set - with subarray 2.7020 us/op 4.2460 us/op 0.64
Uint8Array.set - without subarray 2.1050 us/op 2.7170 us/op 0.77
getUint32 - dataview 225.00 ns/op 591.00 ns/op 0.38
getUint32 - manual 144.00 ns/op 610.00 ns/op 0.24
Set add up to 64 items then delete first 2.0622 us/op 3.2989 us/op 0.63
OrderedSet add up to 64 items then delete first 3.1069 us/op 5.2607 us/op 0.59
Set add up to 64 items then delete last 2.4055 us/op 3.2958 us/op 0.73
OrderedSet add up to 64 items then delete last 3.4886 us/op 5.6689 us/op 0.62
Set add up to 64 items then delete middle 2.3996 us/op 3.4290 us/op 0.70
OrderedSet add up to 64 items then delete middle 5.0117 us/op 6.4786 us/op 0.77
Set add up to 128 items then delete first 4.9507 us/op 5.2356 us/op 0.95
OrderedSet add up to 128 items then delete first 7.6012 us/op 7.3698 us/op 1.03
Set add up to 128 items then delete last 4.8120 us/op 5.3874 us/op 0.89
OrderedSet add up to 128 items then delete last 6.8981 us/op 7.4141 us/op 0.93
Set add up to 128 items then delete middle 4.6577 us/op 5.5669 us/op 0.84
OrderedSet add up to 128 items then delete middle 13.320 us/op 14.690 us/op 0.91
Set add up to 256 items then delete first 10.181 us/op 13.556 us/op 0.75
OrderedSet add up to 256 items then delete first 15.367 us/op 21.379 us/op 0.72
Set add up to 256 items then delete last 9.2910 us/op 12.461 us/op 0.75
OrderedSet add up to 256 items then delete last 14.141 us/op 21.344 us/op 0.66
Set add up to 256 items then delete middle 9.3913 us/op 12.953 us/op 0.73
OrderedSet add up to 256 items then delete middle 40.979 us/op 43.659 us/op 0.94
transfer serialized Status (84 B) 1.3760 us/op 1.8520 us/op 0.74
copy serialized Status (84 B) 1.1050 us/op 1.8570 us/op 0.60
transfer serialized SignedVoluntaryExit (112 B) 1.4520 us/op 1.7960 us/op 0.81
copy serialized SignedVoluntaryExit (112 B) 1.2380 us/op 1.5650 us/op 0.79
transfer serialized ProposerSlashing (416 B) 2.2640 us/op 2.1100 us/op 1.07
copy serialized ProposerSlashing (416 B) 2.0110 us/op 2.3930 us/op 0.84
transfer serialized Attestation (485 B) 2.3160 us/op 3.1250 us/op 0.74
copy serialized Attestation (485 B) 2.0090 us/op 2.8840 us/op 0.70
transfer serialized AttesterSlashing (33232 B) 2.3180 us/op 2.7690 us/op 0.84
copy serialized AttesterSlashing (33232 B) 11.526 us/op 11.233 us/op 1.03
transfer serialized Small SignedBeaconBlock (128000 B) 2.8520 us/op 3.2700 us/op 0.87
copy serialized Small SignedBeaconBlock (128000 B) 13.043 us/op 15.051 us/op 0.87
transfer serialized Avg SignedBeaconBlock (200000 B) 3.1340 us/op 3.2650 us/op 0.96
copy serialized Avg SignedBeaconBlock (200000 B) 18.612 us/op 17.677 us/op 1.05
transfer serialized BlobsSidecar (524380 B) 3.2490 us/op 3.8510 us/op 0.84
copy serialized BlobsSidecar (524380 B) 76.021 us/op 98.945 us/op 0.77
transfer serialized Big SignedBeaconBlock (1000000 B) 3.2510 us/op 4.1880 us/op 0.78
copy serialized Big SignedBeaconBlock (1000000 B) 176.58 us/op 167.56 us/op 1.05
pass gossip attestations to forkchoice per slot 2.7402 ms/op 3.0846 ms/op 0.89
forkChoice updateHead vc 100000 bc 64 eq 0 439.41 us/op 376.41 us/op 1.17
forkChoice updateHead vc 600000 bc 64 eq 0 2.7885 ms/op 4.5434 ms/op 0.61
forkChoice updateHead vc 1000000 bc 64 eq 0 4.8391 ms/op 5.2672 ms/op 0.92
forkChoice updateHead vc 600000 bc 320 eq 0 2.7542 ms/op 3.1325 ms/op 0.88
forkChoice updateHead vc 600000 bc 1200 eq 0 2.8613 ms/op 2.3871 ms/op 1.20
forkChoice updateHead vc 600000 bc 7200 eq 0 3.5708 ms/op 4.3150 ms/op 0.83
forkChoice updateHead vc 600000 bc 64 eq 1000 10.153 ms/op 10.207 ms/op 0.99
forkChoice updateHead vc 600000 bc 64 eq 10000 10.432 ms/op 11.418 ms/op 0.91
forkChoice updateHead vc 600000 bc 64 eq 300000 13.776 ms/op 65.050 ms/op 0.21
computeDeltas 500000 validators 300 proto nodes 3.8426 ms/op 4.1427 ms/op 0.93
computeDeltas 500000 validators 1200 proto nodes 3.8514 ms/op 3.8162 ms/op 1.01
computeDeltas 500000 validators 7200 proto nodes 3.9326 ms/op 3.6051 ms/op 1.09
computeDeltas 750000 validators 300 proto nodes 5.8614 ms/op 5.7122 ms/op 1.03
computeDeltas 750000 validators 1200 proto nodes 5.9341 ms/op 5.8615 ms/op 1.01
computeDeltas 750000 validators 7200 proto nodes 5.8891 ms/op 5.8561 ms/op 1.01
computeDeltas 1400000 validators 300 proto nodes 10.947 ms/op 11.367 ms/op 0.96
computeDeltas 1400000 validators 1200 proto nodes 11.015 ms/op 10.311 ms/op 1.07
computeDeltas 1400000 validators 7200 proto nodes 11.073 ms/op 10.120 ms/op 1.09
computeDeltas 2100000 validators 300 proto nodes 16.442 ms/op 15.896 ms/op 1.03
computeDeltas 2100000 validators 1200 proto nodes 16.389 ms/op 16.054 ms/op 1.02
computeDeltas 2100000 validators 7200 proto nodes 17.215 ms/op 16.556 ms/op 1.04
altair processAttestation - 250000 vs - 7PWei normalcase 1.9898 ms/op 2.7190 ms/op 0.73
altair processAttestation - 250000 vs - 7PWei worstcase 3.0113 ms/op 2.3286 ms/op 1.29
altair processAttestation - setStatus - 1/6 committees join 98.068 us/op 89.154 us/op 1.10
altair processAttestation - setStatus - 1/3 committees join 196.60 us/op 244.06 us/op 0.81
altair processAttestation - setStatus - 1/2 committees join 267.55 us/op 402.49 us/op 0.66
altair processAttestation - setStatus - 2/3 committees join 334.89 us/op 506.45 us/op 0.66
altair processAttestation - setStatus - 4/5 committees join 510.24 us/op 798.02 us/op 0.64
altair processAttestation - setStatus - 100% committees join 578.86 us/op 775.15 us/op 0.75
altair processBlock - 250000 vs - 7PWei normalcase 4.7052 ms/op 11.358 ms/op 0.41
altair processBlock - 250000 vs - 7PWei normalcase hashState 25.940 ms/op 50.418 ms/op 0.51
altair processBlock - 250000 vs - 7PWei worstcase 33.742 ms/op 45.412 ms/op 0.74
altair processBlock - 250000 vs - 7PWei worstcase hashState 70.324 ms/op 76.593 ms/op 0.92
phase0 processBlock - 250000 vs - 7PWei normalcase 2.1154 ms/op 1.3948 ms/op 1.52
phase0 processBlock - 250000 vs - 7PWei worstcase 21.617 ms/op 30.575 ms/op 0.71
altair processEth1Data - 250000 vs - 7PWei normalcase 334.10 us/op 291.83 us/op 1.14
getExpectedWithdrawals 250000 eb:1,eth1:1,we:0,wn:0,smpl:15 5.4540 us/op 12.289 us/op 0.44
getExpectedWithdrawals 250000 eb:0.95,eth1:0.1,we:0.05,wn:0,smpl:219 35.972 us/op 65.257 us/op 0.55
getExpectedWithdrawals 250000 eb:0.95,eth1:0.3,we:0.05,wn:0,smpl:42 10.270 us/op 13.620 us/op 0.75
getExpectedWithdrawals 250000 eb:0.95,eth1:0.7,we:0.05,wn:0,smpl:18 6.4050 us/op 8.1020 us/op 0.79
getExpectedWithdrawals 250000 eb:0.1,eth1:0.1,we:0,wn:0,smpl:1020 131.63 us/op 130.41 us/op 1.01
getExpectedWithdrawals 250000 eb:0.03,eth1:0.03,we:0,wn:0,smpl:11777 1.0194 ms/op 982.02 us/op 1.04
getExpectedWithdrawals 250000 eb:0.01,eth1:0.01,we:0,wn:0,smpl:16384 1.4301 ms/op 1.4081 ms/op 1.02
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,smpl:16384 1.4069 ms/op 1.5920 ms/op 0.88
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,nocache,smpl:16384 3.6126 ms/op 4.0991 ms/op 0.88
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,smpl:16384 1.4399 ms/op 1.9714 ms/op 0.73
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,nocache,smpl:16384 3.7314 ms/op 3.5797 ms/op 1.04
Tree 40 250000 create 228.21 ms/op 213.75 ms/op 1.07
Tree 40 250000 get(125000) 147.19 ns/op 169.54 ns/op 0.87
Tree 40 250000 set(125000) 643.86 ns/op 655.84 ns/op 0.98
Tree 40 250000 toArray() 16.173 ms/op 27.756 ms/op 0.58
Tree 40 250000 iterate all - toArray() + loop 15.204 ms/op 25.912 ms/op 0.59
Tree 40 250000 iterate all - get(i) 49.713 ms/op 63.321 ms/op 0.79
Array 250000 create 2.8943 ms/op 3.4455 ms/op 0.84
Array 250000 clone - spread 1.3603 ms/op 1.5037 ms/op 0.90
Array 250000 get(125000) 0.40900 ns/op 0.62500 ns/op 0.65
Array 250000 set(125000) 0.42800 ns/op 0.64000 ns/op 0.67
Array 250000 iterate all - loop 108.00 us/op 80.848 us/op 1.34
phase0 afterProcessEpoch - 250000 vs - 7PWei 48.995 ms/op 50.903 ms/op 0.96
Array.fill - length 1000000 3.5552 ms/op 2.8926 ms/op 1.23
Array push - length 1000000 17.196 ms/op 20.660 ms/op 0.83
Array.get 0.28231 ns/op 0.28288 ns/op 1.00
Uint8Array.get 0.43371 ns/op 0.35835 ns/op 1.21
phase0 beforeProcessEpoch - 250000 vs - 7PWei 17.156 ms/op 21.915 ms/op 0.78
altair processEpoch - mainnet_e81889 258.92 ms/op 328.28 ms/op 0.79
mainnet_e81889 - altair beforeProcessEpoch 18.335 ms/op 25.524 ms/op 0.72
mainnet_e81889 - altair processJustificationAndFinalization 11.875 us/op 23.879 us/op 0.50
mainnet_e81889 - altair processInactivityUpdates 5.2932 ms/op 7.6612 ms/op 0.69
mainnet_e81889 - altair processRewardsAndPenalties 43.678 ms/op 57.458 ms/op 0.76
mainnet_e81889 - altair processRegistryUpdates 2.3490 us/op 3.3150 us/op 0.71
mainnet_e81889 - altair processSlashings 372.00 ns/op 1.2040 us/op 0.31
mainnet_e81889 - altair processEth1DataReset 317.00 ns/op 887.00 ns/op 0.36
mainnet_e81889 - altair processEffectiveBalanceUpdates 1.9373 ms/op 2.2597 ms/op 0.86
mainnet_e81889 - altair processSlashingsReset 2.8650 us/op 4.2340 us/op 0.68
mainnet_e81889 - altair processRandaoMixesReset 4.3730 us/op 5.0090 us/op 0.87
mainnet_e81889 - altair processHistoricalRootsUpdate 609.00 ns/op 993.00 ns/op 0.61
mainnet_e81889 - altair processParticipationFlagUpdates 1.8480 us/op 4.8330 us/op 0.38
mainnet_e81889 - altair processSyncCommitteeUpdates 468.00 ns/op 1.3000 us/op 0.36
mainnet_e81889 - altair afterProcessEpoch 50.408 ms/op 45.734 ms/op 1.10
capella processEpoch - mainnet_e217614 937.43 ms/op 1.0274 s/op 0.91
mainnet_e217614 - capella beforeProcessEpoch 71.595 ms/op 73.915 ms/op 0.97
mainnet_e217614 - capella processJustificationAndFinalization 14.840 us/op 21.312 us/op 0.70
mainnet_e217614 - capella processInactivityUpdates 16.640 ms/op 14.236 ms/op 1.17
mainnet_e217614 - capella processRewardsAndPenalties 216.26 ms/op 211.91 ms/op 1.02
mainnet_e217614 - capella processRegistryUpdates 11.366 us/op 15.520 us/op 0.73
mainnet_e217614 - capella processSlashings 408.00 ns/op 962.00 ns/op 0.42
mainnet_e217614 - capella processEth1DataReset 339.00 ns/op 866.00 ns/op 0.39
mainnet_e217614 - capella processEffectiveBalanceUpdates 10.096 ms/op 18.296 ms/op 0.55
mainnet_e217614 - capella processSlashingsReset 3.4270 us/op 3.5510 us/op 0.97
mainnet_e217614 - capella processRandaoMixesReset 3.6150 us/op 12.011 us/op 0.30
mainnet_e217614 - capella processHistoricalRootsUpdate 628.00 ns/op 1.1140 us/op 0.56
mainnet_e217614 - capella processParticipationFlagUpdates 1.8010 us/op 3.3670 us/op 0.53
mainnet_e217614 - capella afterProcessEpoch 117.48 ms/op 111.21 ms/op 1.06
phase0 processEpoch - mainnet_e58758 301.93 ms/op 319.31 ms/op 0.95
mainnet_e58758 - phase0 beforeProcessEpoch 72.544 ms/op 87.207 ms/op 0.83
mainnet_e58758 - phase0 processJustificationAndFinalization 13.517 us/op 17.789 us/op 0.76
mainnet_e58758 - phase0 processRewardsAndPenalties 28.548 ms/op 32.901 ms/op 0.87
mainnet_e58758 - phase0 processRegistryUpdates 7.8330 us/op 7.7860 us/op 1.01
mainnet_e58758 - phase0 processSlashings 404.00 ns/op 859.00 ns/op 0.47
mainnet_e58758 - phase0 processEth1DataReset 314.00 ns/op 756.00 ns/op 0.42
mainnet_e58758 - phase0 processEffectiveBalanceUpdates 1.1529 ms/op 954.73 us/op 1.21
mainnet_e58758 - phase0 processSlashingsReset 3.4280 us/op 4.3050 us/op 0.80
mainnet_e58758 - phase0 processRandaoMixesReset 4.5030 us/op 5.1930 us/op 0.87
mainnet_e58758 - phase0 processHistoricalRootsUpdate 589.00 ns/op 411.00 ns/op 1.43
mainnet_e58758 - phase0 processParticipationRecordUpdates 3.2070 us/op 3.6590 us/op 0.88
mainnet_e58758 - phase0 afterProcessEpoch 41.886 ms/op 36.456 ms/op 1.15
phase0 processEffectiveBalanceUpdates - 250000 normalcase 1.7814 ms/op 1.1433 ms/op 1.56
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 2.4245 ms/op 2.1769 ms/op 1.11
altair processInactivityUpdates - 250000 normalcase 15.051 ms/op 17.160 ms/op 0.88
altair processInactivityUpdates - 250000 worstcase 14.489 ms/op 19.699 ms/op 0.74
phase0 processRegistryUpdates - 250000 normalcase 5.6560 us/op 7.5910 us/op 0.75
phase0 processRegistryUpdates - 250000 badcase_full_deposits 228.52 us/op 302.83 us/op 0.75
phase0 processRegistryUpdates - 250000 worstcase 0.5 116.13 ms/op 108.24 ms/op 1.07
altair processRewardsAndPenalties - 250000 normalcase 36.236 ms/op 34.529 ms/op 1.05
altair processRewardsAndPenalties - 250000 worstcase 36.584 ms/op 35.889 ms/op 1.02
phase0 getAttestationDeltas - 250000 normalcase 7.4527 ms/op 6.6152 ms/op 1.13
phase0 getAttestationDeltas - 250000 worstcase 7.1195 ms/op 7.2565 ms/op 0.98
phase0 processSlashings - 250000 worstcase 77.169 us/op 92.010 us/op 0.84
altair processSyncCommitteeUpdates - 250000 115.70 ms/op 98.175 ms/op 1.18
BeaconState.hashTreeRoot - No change 227.00 ns/op 483.00 ns/op 0.47
BeaconState.hashTreeRoot - 1 full validator 107.44 us/op 120.15 us/op 0.89
BeaconState.hashTreeRoot - 32 full validator 1.1551 ms/op 1.4969 ms/op 0.77
BeaconState.hashTreeRoot - 512 full validator 11.289 ms/op 10.191 ms/op 1.11
BeaconState.hashTreeRoot - 1 validator.effectiveBalance 161.75 us/op 147.78 us/op 1.09
BeaconState.hashTreeRoot - 32 validator.effectiveBalance 1.8384 ms/op 2.0787 ms/op 0.88
BeaconState.hashTreeRoot - 512 validator.effectiveBalance 18.816 ms/op 23.068 ms/op 0.82
BeaconState.hashTreeRoot - 1 balances 110.47 us/op 87.040 us/op 1.27
BeaconState.hashTreeRoot - 32 balances 1.0145 ms/op 867.79 us/op 1.17
BeaconState.hashTreeRoot - 512 balances 7.7513 ms/op 7.8375 ms/op 0.99
BeaconState.hashTreeRoot - 250000 balances 190.71 ms/op 206.61 ms/op 0.92
aggregationBits - 2048 els - zipIndexesInBitList 22.540 us/op 21.087 us/op 1.07
byteArrayEquals 32 52.119 ns/op 48.484 ns/op 1.07
Buffer.compare 32 16.860 ns/op 15.794 ns/op 1.07
byteArrayEquals 1024 1.5398 us/op 1.2884 us/op 1.20
Buffer.compare 1024 24.277 ns/op 23.063 ns/op 1.05
byteArrayEquals 16384 24.491 us/op 20.397 us/op 1.20
Buffer.compare 16384 176.81 ns/op 185.67 ns/op 0.95
byteArrayEquals 123687377 185.42 ms/op 153.55 ms/op 1.21
Buffer.compare 123687377 6.0252 ms/op 4.4817 ms/op 1.34
byteArrayEquals 32 - diff last byte 50.794 ns/op 47.320 ns/op 1.07
Buffer.compare 32 - diff last byte 16.593 ns/op 15.778 ns/op 1.05
byteArrayEquals 1024 - diff last byte 1.5294 us/op 1.2683 us/op 1.21
Buffer.compare 1024 - diff last byte 25.132 ns/op 24.664 ns/op 1.02
byteArrayEquals 16384 - diff last byte 24.428 us/op 20.047 us/op 1.22
Buffer.compare 16384 - diff last byte 200.98 ns/op 207.43 ns/op 0.97
byteArrayEquals 123687377 - diff last byte 183.31 ms/op 156.92 ms/op 1.17
Buffer.compare 123687377 - diff last byte 6.0669 ms/op 7.0003 ms/op 0.87
byteArrayEquals 32 - random bytes 4.9390 ns/op 5.1100 ns/op 0.97
Buffer.compare 32 - random bytes 16.465 ns/op 16.121 ns/op 1.02
byteArrayEquals 1024 - random bytes 4.9360 ns/op 5.1330 ns/op 0.96
Buffer.compare 1024 - random bytes 16.466 ns/op 15.998 ns/op 1.03
byteArrayEquals 16384 - random bytes 4.9310 ns/op 5.1200 ns/op 0.96
Buffer.compare 16384 - random bytes 16.473 ns/op 16.410 ns/op 1.00
byteArrayEquals 123687377 - random bytes 6.2500 ns/op 8.2600 ns/op 0.76
Buffer.compare 123687377 - random bytes 17.710 ns/op 19.560 ns/op 0.91
regular array get 100000 times 36.300 us/op 32.384 us/op 1.12
wrappedArray get 100000 times 31.559 us/op 32.451 us/op 0.97
arrayWithProxy get 100000 times 12.844 ms/op 10.465 ms/op 1.23
ssz.Root.equals 44.174 ns/op 47.075 ns/op 0.94
byteArrayEquals 43.464 ns/op 44.603 ns/op 0.97
Buffer.compare 9.9330 ns/op 9.8030 ns/op 1.01
processSlot - 1 slots 12.644 us/op 15.581 us/op 0.81
processSlot - 32 slots 2.7566 ms/op 2.7861 ms/op 0.99
getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei 36.954 ms/op 37.999 ms/op 0.97
getCommitteeAssignments - req 1 vs - 250000 vc 2.0700 ms/op 1.8208 ms/op 1.14
getCommitteeAssignments - req 100 vs - 250000 vc 4.0155 ms/op 3.5727 ms/op 1.12
getCommitteeAssignments - req 1000 vs - 250000 vc 4.2670 ms/op 3.8084 ms/op 1.12
findModifiedValidators - 10000 modified validators 257.58 ms/op 229.81 ms/op 1.12
findModifiedValidators - 1000 modified validators 165.56 ms/op 148.44 ms/op 1.12
findModifiedValidators - 100 modified validators 152.07 ms/op 161.17 ms/op 0.94
findModifiedValidators - 10 modified validators 151.33 ms/op 158.38 ms/op 0.96
findModifiedValidators - 1 modified validators 155.13 ms/op 131.88 ms/op 1.18
findModifiedValidators - no difference 161.60 ms/op 146.03 ms/op 1.11
compare ViewDUs 2.8848 s/op 3.0162 s/op 0.96
compare each validator Uint8Array 935.38 ms/op 1.5419 s/op 0.61
compare ViewDU to Uint8Array 960.58 ms/op 786.50 ms/op 1.22
migrate state 1000000 validators, 24 modified, 0 new 707.62 ms/op 681.11 ms/op 1.04
migrate state 1000000 validators, 1700 modified, 1000 new 959.29 ms/op 883.01 ms/op 1.09
migrate state 1000000 validators, 3400 modified, 2000 new 1.1532 s/op 1.0362 s/op 1.11
migrate state 1500000 validators, 24 modified, 0 new 756.95 ms/op 639.35 ms/op 1.18
migrate state 1500000 validators, 1700 modified, 1000 new 953.99 ms/op 978.29 ms/op 0.98
migrate state 1500000 validators, 3400 modified, 2000 new 1.0216 s/op 1.0193 s/op 1.00
RootCache.getBlockRootAtSlot - 250000 vs - 7PWei 4.2600 ns/op 6.2900 ns/op 0.68
state getBlockRootAtSlot - 250000 vs - 7PWei 559.50 ns/op 734.26 ns/op 0.76
computeProposers - vc 250000 7.1884 ms/op 6.0565 ms/op 1.19
computeEpochShuffling - vc 250000 41.613 ms/op 34.532 ms/op 1.21
getNextSyncCommittee - vc 250000 131.16 ms/op 108.96 ms/op 1.20
computeSigningRoot for AttestationData 19.022 us/op 21.140 us/op 0.90
hash AttestationData serialized data then Buffer.toString(base64) 1.5827 us/op 1.1739 us/op 1.35
toHexString serialized data 927.24 ns/op 785.04 ns/op 1.18
Buffer.toString(base64) 173.92 ns/op 168.95 ns/op 1.03
nodejs block root to RootHex using toHex 169.35 ns/op 121.57 ns/op 1.39
nodejs block root to RootHex using toRootHex 106.08 ns/op 76.796 ns/op 1.38
browser block root to RootHex using the deprecated toHexString 234.40 ns/op 210.94 ns/op 1.11
browser block root to RootHex using toHex 184.29 ns/op 171.18 ns/op 1.08
browser block root to RootHex using toRootHex 169.90 ns/op 161.13 ns/op 1.05

by benchmarkbot/action

@matthewkeil
Copy link
Member Author

@wemeetagain this branch was deployed last night to feat3 and the metrics look commensurate with unstable. Going to let them soak for another 24hours to verify though. @twoeths let me know if you see anything that jumps out at you. We changed the way the blst rust code gets compiled in ChainSafe/blst-ts#154

@wemeetagain
Copy link
Member

So far metrics look good. Equivalent and better metrics in bls job time, peering, etc.

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.

2 participants