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: update to ssz 0.13.0 #5959

Merged
merged 2 commits into from
Sep 19, 2023
Merged

chore: update to ssz 0.13.0 #5959

merged 2 commits into from
Sep 19, 2023

Conversation

twoeths
Copy link
Contributor

@twoeths twoeths commented Sep 15, 2023

Motivation

  • migrate to ssz 0.13.0

Description

  • use deserializeUint8ArrayBitListFromBytes util from @chainsafe/ssz

@twoeths twoeths requested a review from a team as a code owner September 15, 2023 11:18
@github-actions
Copy link
Contributor

Performance Report

✔️ no performance regression detected

Full benchmark results
Benchmark suite Current: 6e8cb6f Previous: 8794025 Ratio
getPubkeys - index2pubkey - req 1000 vs - 250000 vc 542.01 us/op 365.74 us/op 1.48
getPubkeys - validatorsArr - req 1000 vs - 250000 vc 84.717 us/op 47.477 us/op 1.78
BLS verify - blst-native 1.1509 ms/op 1.1504 ms/op 1.00
BLS verifyMultipleSignatures 3 - blst-native 2.4641 ms/op 2.4725 ms/op 1.00
BLS verifyMultipleSignatures 8 - blst-native 5.3816 ms/op 5.4949 ms/op 0.98
BLS verifyMultipleSignatures 32 - blst-native 19.493 ms/op 20.071 ms/op 0.97
BLS verifyMultipleSignatures 64 - blst-native 39.080 ms/op 40.182 ms/op 0.97
BLS verifyMultipleSignatures 128 - blst-native 76.135 ms/op 79.033 ms/op 0.96
BLS deserializing 10000 signatures 789.84 ms/op 842.26 ms/op 0.94
BLS deserializing 100000 signatures 7.9665 s/op 8.5035 s/op 0.94
BLS verifyMultipleSignatures - same message - 3 - blst-native 1.1712 ms/op 1.1783 ms/op 0.99
BLS verifyMultipleSignatures - same message - 8 - blst-native 1.2863 ms/op 1.3914 ms/op 0.92
BLS verifyMultipleSignatures - same message - 32 - blst-native 2.0576 ms/op 2.2468 ms/op 0.92
BLS verifyMultipleSignatures - same message - 64 - blst-native 3.0436 ms/op 3.1446 ms/op 0.97
BLS verifyMultipleSignatures - same message - 128 - blst-native 5.4319 ms/op 5.1688 ms/op 1.05
BLS aggregatePubkeys 32 - blst-native 22.648 us/op 24.614 us/op 0.92
BLS aggregatePubkeys 128 - blst-native 88.741 us/op 92.046 us/op 0.96
getAttestationsForBlock 32.218 ms/op 42.385 ms/op 0.76
isKnown best case - 1 super set check 315.00 ns/op 455.00 ns/op 0.69
isKnown normal case - 2 super set checks 282.00 ns/op 467.00 ns/op 0.60
isKnown worse case - 16 super set checks 295.00 ns/op 440.00 ns/op 0.67
CheckpointStateCache - add get delete 3.5580 us/op 4.2110 us/op 0.84
validate api signedAggregateAndProof - struct 2.4462 ms/op 2.5964 ms/op 0.94
validate gossip signedAggregateAndProof - struct 2.4102 ms/op 2.4986 ms/op 0.96
validate gossip attestation - vc 640000 1.1848 ms/op 1.2197 ms/op 0.97
batch validate gossip attestation - vc 640000 - chunk 32 149.55 us/op 155.48 us/op 0.96
batch validate gossip attestation - vc 640000 - chunk 64 126.30 us/op 143.82 us/op 0.88
batch validate gossip attestation - vc 640000 - chunk 128 113.04 us/op 137.83 us/op 0.82
batch validate gossip attestation - vc 640000 - chunk 256 108.81 us/op 133.38 us/op 0.82
pickEth1Vote - no votes 841.75 us/op 1.2477 ms/op 0.67
pickEth1Vote - max votes 7.2305 ms/op 7.3695 ms/op 0.98
pickEth1Vote - Eth1Data hashTreeRoot value x2048 14.113 ms/op 15.770 ms/op 0.89
pickEth1Vote - Eth1Data hashTreeRoot tree x2048 17.469 ms/op 20.851 ms/op 0.84
pickEth1Vote - Eth1Data fastSerialize value x2048 389.15 us/op 559.73 us/op 0.70
pickEth1Vote - Eth1Data fastSerialize tree x2048 4.5308 ms/op 9.5260 ms/op 0.48
bytes32 toHexString 393.00 ns/op 722.00 ns/op 0.54
bytes32 Buffer.toString(hex) 297.00 ns/op 253.00 ns/op 1.17
bytes32 Buffer.toString(hex) from Uint8Array 392.00 ns/op 322.00 ns/op 1.22
bytes32 Buffer.toString(hex) + 0x 302.00 ns/op 216.00 ns/op 1.40
Object access 1 prop 0.17500 ns/op 0.11300 ns/op 1.55
Map access 1 prop 0.17400 ns/op 0.10700 ns/op 1.63
Object get x1000 4.7800 ns/op 6.3530 ns/op 0.75
Map get x1000 0.49500 ns/op 0.66200 ns/op 0.75
Object set x1000 26.233 ns/op 45.556 ns/op 0.58
Map set x1000 16.845 ns/op 25.707 ns/op 0.66
Return object 10000 times 0.21410 ns/op 0.29130 ns/op 0.73
Throw Error 10000 times 2.6251 us/op 4.0110 us/op 0.65
fastMsgIdFn sha256 / 200 bytes 1.8790 us/op 2.2040 us/op 0.85
fastMsgIdFn h32 xxhash / 200 bytes 277.00 ns/op 279.00 ns/op 0.99
fastMsgIdFn h64 xxhash / 200 bytes 354.00 ns/op 366.00 ns/op 0.97
fastMsgIdFn sha256 / 1000 bytes 6.0000 us/op 10.079 us/op 0.60
fastMsgIdFn h32 xxhash / 1000 bytes 399.00 ns/op 512.00 ns/op 0.78
fastMsgIdFn h64 xxhash / 1000 bytes 416.00 ns/op 414.00 ns/op 1.00
fastMsgIdFn sha256 / 10000 bytes 51.967 us/op 73.434 us/op 0.71
fastMsgIdFn h32 xxhash / 10000 bytes 1.7570 us/op 2.0090 us/op 0.87
fastMsgIdFn h64 xxhash / 10000 bytes 1.2090 us/op 1.3640 us/op 0.89
send data - 1000 256B messages 10.958 ms/op 14.850 ms/op 0.74
send data - 1000 512B messages 15.417 ms/op 21.482 ms/op 0.72
send data - 1000 1024B messages 22.849 ms/op 32.201 ms/op 0.71
send data - 1000 1200B messages 21.201 ms/op 29.985 ms/op 0.71
send data - 1000 2048B messages 24.382 ms/op 36.655 ms/op 0.67
send data - 1000 4096B messages 24.084 ms/op 32.916 ms/op 0.73
send data - 1000 16384B messages 56.397 ms/op 75.600 ms/op 0.75
send data - 1000 65536B messages 226.12 ms/op 259.96 ms/op 0.87
enrSubnets - fastDeserialize 64 bits 865.00 ns/op 1.2010 us/op 0.72
enrSubnets - ssz BitVector 64 bits 419.00 ns/op 620.00 ns/op 0.68
enrSubnets - fastDeserialize 4 bits 183.00 ns/op 169.00 ns/op 1.08
enrSubnets - ssz BitVector 4 bits 415.00 ns/op 544.00 ns/op 0.76
prioritizePeers score -10:0 att 32-0.1 sync 2-0 67.643 us/op 104.51 us/op 0.65
prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 85.876 us/op 152.34 us/op 0.56
prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 108.55 us/op 186.40 us/op 0.58
prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 173.68 us/op 298.39 us/op 0.58
prioritizePeers score 0:0 att 64-1 sync 4-1 197.09 us/op 369.06 us/op 0.53
array of 16000 items push then shift 1.2674 us/op 1.6448 us/op 0.77
LinkedList of 16000 items push then shift 6.6740 ns/op 10.424 ns/op 0.64
array of 16000 items push then pop 52.500 ns/op 129.74 ns/op 0.40
LinkedList of 16000 items push then pop 5.4510 ns/op 9.2720 ns/op 0.59
array of 24000 items push then shift 1.7438 us/op 2.4241 us/op 0.72
LinkedList of 24000 items push then shift 6.3440 ns/op 8.9760 ns/op 0.71
array of 24000 items push then pop 84.422 ns/op 156.66 ns/op 0.54
LinkedList of 24000 items push then pop 5.5560 ns/op 10.223 ns/op 0.54
intersect bitArray bitLen 8 5.0940 ns/op 5.5340 ns/op 0.92
intersect array and set length 8 39.495 ns/op 72.821 ns/op 0.54
intersect bitArray bitLen 128 25.393 ns/op 34.422 ns/op 0.74
intersect array and set length 128 580.82 ns/op 801.32 ns/op 0.72
bitArray.getTrueBitIndexes() bitLen 128 1.2460 us/op 1.6020 us/op 0.78
bitArray.getTrueBitIndexes() bitLen 248 1.9840 us/op 2.7770 us/op 0.71
bitArray.getTrueBitIndexes() bitLen 512 3.7140 us/op 6.2760 us/op 0.59
Buffer.concat 32 items 809.00 ns/op 1.3810 us/op 0.59
Uint8Array.set 32 items 1.9270 us/op 2.4480 us/op 0.79
Set add up to 64 items then delete first 1.6834 us/op 2.3965 us/op 0.70
OrderedSet add up to 64 items then delete first 2.4325 us/op 2.8312 us/op 0.86
Set add up to 64 items then delete last 1.8371 us/op 2.6223 us/op 0.70
OrderedSet add up to 64 items then delete last 2.7525 us/op 4.0205 us/op 0.68
Set add up to 64 items then delete middle 1.8355 us/op 2.4242 us/op 0.76
OrderedSet add up to 64 items then delete middle 3.9023 us/op 5.2633 us/op 0.74
Set add up to 128 items then delete first 3.6755 us/op 4.8101 us/op 0.76
OrderedSet add up to 128 items then delete first 5.6960 us/op 8.0105 us/op 0.71
Set add up to 128 items then delete last 3.4960 us/op 4.9004 us/op 0.71
OrderedSet add up to 128 items then delete last 5.2664 us/op 10.036 us/op 0.52
Set add up to 128 items then delete middle 3.4786 us/op 5.0029 us/op 0.70
OrderedSet add up to 128 items then delete middle 9.9899 us/op 13.609 us/op 0.73
Set add up to 256 items then delete first 7.0829 us/op 11.397 us/op 0.62
OrderedSet add up to 256 items then delete first 11.630 us/op 16.452 us/op 0.71
Set add up to 256 items then delete last 6.8721 us/op 9.7477 us/op 0.70
OrderedSet add up to 256 items then delete last 10.634 us/op 15.112 us/op 0.70
Set add up to 256 items then delete middle 6.8608 us/op 12.106 us/op 0.57
OrderedSet add up to 256 items then delete middle 29.561 us/op 36.715 us/op 0.81
transfer serialized Status (84 B) 1.4950 us/op 1.7050 us/op 0.88
copy serialized Status (84 B) 1.3650 us/op 1.7260 us/op 0.79
transfer serialized SignedVoluntaryExit (112 B) 1.6980 us/op 1.9940 us/op 0.85
copy serialized SignedVoluntaryExit (112 B) 1.4530 us/op 1.6230 us/op 0.90
transfer serialized ProposerSlashing (416 B) 2.5100 us/op 3.3430 us/op 0.75
copy serialized ProposerSlashing (416 B) 2.7100 us/op 3.6770 us/op 0.74
transfer serialized Attestation (485 B) 2.6100 us/op 3.5310 us/op 0.74
copy serialized Attestation (485 B) 2.7310 us/op 3.7080 us/op 0.74
transfer serialized AttesterSlashing (33232 B) 2.6470 us/op 3.5120 us/op 0.75
copy serialized AttesterSlashing (33232 B) 6.0380 us/op 8.7800 us/op 0.69
transfer serialized Small SignedBeaconBlock (128000 B) 2.8870 us/op 3.0540 us/op 0.95
copy serialized Small SignedBeaconBlock (128000 B) 13.125 us/op 22.781 us/op 0.58
transfer serialized Avg SignedBeaconBlock (200000 B) 2.7070 us/op 3.2380 us/op 0.84
copy serialized Avg SignedBeaconBlock (200000 B) 16.743 us/op 33.105 us/op 0.51
transfer serialized BlobsSidecar (524380 B) 2.4900 us/op 3.6210 us/op 0.69
copy serialized BlobsSidecar (524380 B) 70.457 us/op 104.16 us/op 0.68
transfer serialized Big SignedBeaconBlock (1000000 B) 2.7500 us/op 4.0530 us/op 0.68
copy serialized Big SignedBeaconBlock (1000000 B) 204.90 us/op 197.74 us/op 1.04
pass gossip attestations to forkchoice per slot 2.5768 ms/op 2.7890 ms/op 0.92
forkChoice updateHead vc 100000 bc 64 eq 0 522.70 us/op 692.79 us/op 0.75
forkChoice updateHead vc 600000 bc 64 eq 0 3.1727 ms/op 3.2875 ms/op 0.97
forkChoice updateHead vc 1000000 bc 64 eq 0 4.3764 ms/op 5.7268 ms/op 0.76
forkChoice updateHead vc 600000 bc 320 eq 0 2.6617 ms/op 2.9925 ms/op 0.89
forkChoice updateHead vc 600000 bc 1200 eq 0 2.6901 ms/op 3.4406 ms/op 0.78
forkChoice updateHead vc 600000 bc 7200 eq 0 3.6864 ms/op 4.6665 ms/op 0.79
forkChoice updateHead vc 600000 bc 64 eq 1000 9.8538 ms/op 11.384 ms/op 0.87
forkChoice updateHead vc 600000 bc 64 eq 10000 9.7420 ms/op 10.988 ms/op 0.89
forkChoice updateHead vc 600000 bc 64 eq 300000 12.153 ms/op 32.064 ms/op 0.38
computeDeltas 500000 validators 300 proto nodes 2.8833 ms/op 3.1427 ms/op 0.92
computeDeltas 500000 validators 1200 proto nodes 2.8829 ms/op 2.9488 ms/op 0.98
computeDeltas 500000 validators 7200 proto nodes 2.9450 ms/op 2.9376 ms/op 1.00
computeDeltas 750000 validators 300 proto nodes 4.3814 ms/op 4.3989 ms/op 1.00
computeDeltas 750000 validators 1200 proto nodes 4.4069 ms/op 4.5411 ms/op 0.97
computeDeltas 750000 validators 7200 proto nodes 4.4164 ms/op 4.3696 ms/op 1.01
computeDeltas 1400000 validators 300 proto nodes 8.3478 ms/op 8.4551 ms/op 0.99
computeDeltas 1400000 validators 1200 proto nodes 8.4284 ms/op 8.4631 ms/op 1.00
computeDeltas 1400000 validators 7200 proto nodes 8.4334 ms/op 8.5060 ms/op 0.99
computeDeltas 2100000 validators 300 proto nodes 12.965 ms/op 13.527 ms/op 0.96
computeDeltas 2100000 validators 1200 proto nodes 13.783 ms/op 13.194 ms/op 1.04
computeDeltas 2100000 validators 7200 proto nodes 13.220 ms/op 13.245 ms/op 1.00
computeProposerBoostScoreFromBalances 500000 validators 2.8711 ms/op 2.9024 ms/op 0.99
computeProposerBoostScoreFromBalances 750000 validators 2.8341 ms/op 2.9302 ms/op 0.97
computeProposerBoostScoreFromBalances 1400000 validators 2.8265 ms/op 2.8790 ms/op 0.98
computeProposerBoostScoreFromBalances 2100000 validators 2.7700 ms/op 2.8178 ms/op 0.98
altair processAttestation - 250000 vs - 7PWei normalcase 1.5261 ms/op 1.6226 ms/op 0.94
altair processAttestation - 250000 vs - 7PWei worstcase 2.3692 ms/op 2.1287 ms/op 1.11
altair processAttestation - setStatus - 1/6 committees join 112.50 us/op 71.074 us/op 1.58
altair processAttestation - setStatus - 1/3 committees join 208.24 us/op 161.22 us/op 1.29
altair processAttestation - setStatus - 1/2 committees join 272.05 us/op 218.54 us/op 1.24
altair processAttestation - setStatus - 2/3 committees join 373.54 us/op 316.67 us/op 1.18
altair processAttestation - setStatus - 4/5 committees join 483.51 us/op 436.99 us/op 1.11
altair processAttestation - setStatus - 100% committees join 596.21 us/op 534.13 us/op 1.12
altair processBlock - 250000 vs - 7PWei normalcase 5.8758 ms/op 6.5380 ms/op 0.90
altair processBlock - 250000 vs - 7PWei normalcase hashState 23.810 ms/op 25.967 ms/op 0.92
altair processBlock - 250000 vs - 7PWei worstcase 32.380 ms/op 32.283 ms/op 1.00
altair processBlock - 250000 vs - 7PWei worstcase hashState 72.987 ms/op 78.207 ms/op 0.93
phase0 processBlock - 250000 vs - 7PWei normalcase 2.1395 ms/op 2.0638 ms/op 1.04
phase0 processBlock - 250000 vs - 7PWei worstcase 26.823 ms/op 26.133 ms/op 1.03
altair processEth1Data - 250000 vs - 7PWei normalcase 275.51 us/op 312.05 us/op 0.88
getExpectedWithdrawals 250000 eb:1,eth1:1,we:0,wn:0,smpl:15 6.3120 us/op 3.8900 us/op 1.62
getExpectedWithdrawals 250000 eb:0.95,eth1:0.1,we:0.05,wn:0,smpl:219 24.763 us/op 45.523 us/op 0.54
getExpectedWithdrawals 250000 eb:0.95,eth1:0.3,we:0.05,wn:0,smpl:42 11.990 us/op 12.686 us/op 0.95
getExpectedWithdrawals 250000 eb:0.95,eth1:0.7,we:0.05,wn:0,smpl:18 6.4180 us/op 3.6020 us/op 1.78
getExpectedWithdrawals 250000 eb:0.1,eth1:0.1,we:0,wn:0,smpl:1020 126.67 us/op 100.12 us/op 1.27
getExpectedWithdrawals 250000 eb:0.03,eth1:0.03,we:0,wn:0,smpl:11777 746.63 us/op 1.0526 ms/op 0.71
getExpectedWithdrawals 250000 eb:0.01,eth1:0.01,we:0,wn:0,smpl:16384 1.5019 ms/op 1.1783 ms/op 1.27
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,smpl:16384 1.0395 ms/op 1.0683 ms/op 0.97
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,nocache,smpl:16384 2.1249 ms/op 3.1840 ms/op 0.67
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,smpl:16384 1.8741 ms/op 2.1599 ms/op 0.87
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,nocache,smpl:16384 3.4321 ms/op 5.4796 ms/op 0.63
Tree 40 250000 create 231.84 ms/op 263.11 ms/op 0.88
Tree 40 250000 get(125000) 114.31 ns/op 121.61 ns/op 0.94
Tree 40 250000 set(125000) 675.03 ns/op 757.15 ns/op 0.89
Tree 40 250000 toArray() 9.4556 ms/op 20.525 ms/op 0.46
Tree 40 250000 iterate all - toArray() + loop 9.4108 ms/op 12.604 ms/op 0.75
Tree 40 250000 iterate all - get(i) 39.270 ms/op 44.833 ms/op 0.88
MutableVector 250000 create 9.9234 ms/op 8.0640 ms/op 1.23
MutableVector 250000 get(125000) 5.5530 ns/op 5.6530 ns/op 0.98
MutableVector 250000 set(125000) 198.86 ns/op 192.38 ns/op 1.03
MutableVector 250000 toArray() 2.3017 ms/op 2.9554 ms/op 0.78
MutableVector 250000 iterate all - toArray() + loop 2.0388 ms/op 3.5157 ms/op 0.58
MutableVector 250000 iterate all - get(i) 1.3167 ms/op 1.3440 ms/op 0.98
Array 250000 create 2.1107 ms/op 2.6090 ms/op 0.81
Array 250000 clone - spread 1.0086 ms/op 871.37 us/op 1.16
Array 250000 get(125000) 0.57400 ns/op 0.44700 ns/op 1.28
Array 250000 set(125000) 0.64500 ns/op 0.51300 ns/op 1.26
Array 250000 iterate all - loop 76.420 us/op 78.890 us/op 0.97
effectiveBalanceIncrements clone Uint8Array 300000 12.794 us/op 22.709 us/op 0.56
effectiveBalanceIncrements clone MutableVector 300000 369.00 ns/op 241.00 ns/op 1.53
effectiveBalanceIncrements rw all Uint8Array 300000 167.71 us/op 175.21 us/op 0.96
effectiveBalanceIncrements rw all MutableVector 300000 61.939 ms/op 59.715 ms/op 1.04
phase0 afterProcessEpoch - 250000 vs - 7PWei 73.944 ms/op 78.950 ms/op 0.94
phase0 beforeProcessEpoch - 250000 vs - 7PWei 24.096 ms/op 35.147 ms/op 0.69
altair processEpoch - mainnet_e81889 335.08 ms/op 328.48 ms/op 1.02
mainnet_e81889 - altair beforeProcessEpoch 49.013 ms/op 52.113 ms/op 0.94
mainnet_e81889 - altair processJustificationAndFinalization 10.354 us/op 8.9760 us/op 1.15
mainnet_e81889 - altair processInactivityUpdates 4.5098 ms/op 4.7779 ms/op 0.94
mainnet_e81889 - altair processRewardsAndPenalties 53.308 ms/op 53.941 ms/op 0.99
mainnet_e81889 - altair processRegistryUpdates 1.8580 us/op 1.3390 us/op 1.39
mainnet_e81889 - altair processSlashings 453.00 ns/op 274.00 ns/op 1.65
mainnet_e81889 - altair processEth1DataReset 488.00 ns/op 321.00 ns/op 1.52
mainnet_e81889 - altair processEffectiveBalanceUpdates 918.49 us/op 950.11 us/op 0.97
mainnet_e81889 - altair processSlashingsReset 1.6000 us/op 1.9180 us/op 0.83
mainnet_e81889 - altair processRandaoMixesReset 1.7280 us/op 1.9510 us/op 0.89
mainnet_e81889 - altair processHistoricalRootsUpdate 360.00 ns/op 330.00 ns/op 1.09
mainnet_e81889 - altair processParticipationFlagUpdates 2.2720 us/op 699.00 ns/op 3.25
mainnet_e81889 - altair processSyncCommitteeUpdates 525.00 ns/op 240.00 ns/op 2.19
mainnet_e81889 - altair afterProcessEpoch 79.090 ms/op 81.248 ms/op 0.97
capella processEpoch - mainnet_e217614 1.2424 s/op 1.0364 s/op 1.20
mainnet_e217614 - capella beforeProcessEpoch 198.47 ms/op 182.22 ms/op 1.09
mainnet_e217614 - capella processJustificationAndFinalization 9.3780 us/op 17.214 us/op 0.54
mainnet_e217614 - capella processInactivityUpdates 16.019 ms/op 21.708 ms/op 0.74
mainnet_e217614 - capella processRewardsAndPenalties 239.90 ms/op 230.32 ms/op 1.04
mainnet_e217614 - capella processRegistryUpdates 14.701 us/op 11.114 us/op 1.32
mainnet_e217614 - capella processSlashings 453.00 ns/op 252.00 ns/op 1.80
mainnet_e217614 - capella processEth1DataReset 742.00 ns/op 268.00 ns/op 2.77
mainnet_e217614 - capella processEffectiveBalanceUpdates 2.9520 ms/op 3.0883 ms/op 0.96
mainnet_e217614 - capella processSlashingsReset 2.0200 us/op 1.7880 us/op 1.13
mainnet_e217614 - capella processRandaoMixesReset 2.6060 us/op 1.8540 us/op 1.41
mainnet_e217614 - capella processHistoricalRootsUpdate 568.00 ns/op 472.00 ns/op 1.20
mainnet_e217614 - capella processParticipationFlagUpdates 736.00 ns/op 954.00 ns/op 0.77
mainnet_e217614 - capella afterProcessEpoch 188.30 ms/op 211.48 ms/op 0.89
phase0 processEpoch - mainnet_e58758 377.31 ms/op 346.05 ms/op 1.09
mainnet_e58758 - phase0 beforeProcessEpoch 104.96 ms/op 89.205 ms/op 1.18
mainnet_e58758 - phase0 processJustificationAndFinalization 10.827 us/op 9.0390 us/op 1.20
mainnet_e58758 - phase0 processRewardsAndPenalties 59.914 ms/op 44.801 ms/op 1.34
mainnet_e58758 - phase0 processRegistryUpdates 7.1980 us/op 10.616 us/op 0.68
mainnet_e58758 - phase0 processSlashings 569.00 ns/op 223.00 ns/op 2.55
mainnet_e58758 - phase0 processEth1DataReset 493.00 ns/op 308.00 ns/op 1.60
mainnet_e58758 - phase0 processEffectiveBalanceUpdates 1.2226 ms/op 788.57 us/op 1.55
mainnet_e58758 - phase0 processSlashingsReset 2.3460 us/op 1.9370 us/op 1.21
mainnet_e58758 - phase0 processRandaoMixesReset 2.4940 us/op 5.0230 us/op 0.50
mainnet_e58758 - phase0 processHistoricalRootsUpdate 595.00 ns/op 949.00 ns/op 0.63
mainnet_e58758 - phase0 processParticipationRecordUpdates 2.7630 us/op 4.6240 us/op 0.60
mainnet_e58758 - phase0 afterProcessEpoch 64.247 ms/op 72.504 ms/op 0.89
phase0 processEffectiveBalanceUpdates - 250000 normalcase 1.5246 ms/op 975.23 us/op 1.56
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 1.0507 ms/op 1.2011 ms/op 0.87
altair processInactivityUpdates - 250000 normalcase 14.676 ms/op 17.065 ms/op 0.86
altair processInactivityUpdates - 250000 worstcase 13.485 ms/op 18.772 ms/op 0.72
phase0 processRegistryUpdates - 250000 normalcase 3.4130 us/op 7.5540 us/op 0.45
phase0 processRegistryUpdates - 250000 badcase_full_deposits 383.31 us/op 416.13 us/op 0.92
phase0 processRegistryUpdates - 250000 worstcase 0.5 113.47 ms/op 113.28 ms/op 1.00
altair processRewardsAndPenalties - 250000 normalcase 55.529 ms/op 61.774 ms/op 0.90
altair processRewardsAndPenalties - 250000 worstcase 59.468 ms/op 59.383 ms/op 1.00
phase0 getAttestationDeltas - 250000 normalcase 5.0548 ms/op 6.2303 ms/op 0.81
phase0 getAttestationDeltas - 250000 worstcase 4.9530 ms/op 5.4224 ms/op 0.91
phase0 processSlashings - 250000 worstcase 1.6106 ms/op 1.9295 ms/op 0.83
altair processSyncCommitteeUpdates - 250000 105.67 ms/op 126.66 ms/op 0.83
BeaconState.hashTreeRoot - No change 324.00 ns/op 257.00 ns/op 1.26
BeaconState.hashTreeRoot - 1 full validator 159.13 us/op 131.97 us/op 1.21
BeaconState.hashTreeRoot - 32 full validator 1.2932 ms/op 1.2326 ms/op 1.05
BeaconState.hashTreeRoot - 512 full validator 13.726 ms/op 17.181 ms/op 0.80
BeaconState.hashTreeRoot - 1 validator.effectiveBalance 165.85 us/op 152.54 us/op 1.09
BeaconState.hashTreeRoot - 32 validator.effectiveBalance 2.1253 ms/op 2.7516 ms/op 0.77
BeaconState.hashTreeRoot - 512 validator.effectiveBalance 26.755 ms/op 32.068 ms/op 0.83
BeaconState.hashTreeRoot - 1 balances 143.35 us/op 108.62 us/op 1.32
BeaconState.hashTreeRoot - 32 balances 1.1063 ms/op 1.3728 ms/op 0.81
BeaconState.hashTreeRoot - 512 balances 11.209 ms/op 13.085 ms/op 0.86
BeaconState.hashTreeRoot - 250000 balances 182.98 ms/op 198.43 ms/op 0.92
aggregationBits - 2048 els - zipIndexesInBitList 9.0040 us/op 13.335 us/op 0.68
regular array get 100000 times 30.524 us/op 30.976 us/op 0.99
wrappedArray get 100000 times 30.588 us/op 30.933 us/op 0.99
arrayWithProxy get 100000 times 10.456 ms/op 10.588 ms/op 0.99
ssz.Root.equals 233.00 ns/op 187.00 ns/op 1.25
byteArrayEquals 227.00 ns/op 172.00 ns/op 1.32
shuffle list - 16384 els 4.2967 ms/op 5.3144 ms/op 0.81
shuffle list - 250000 els 63.646 ms/op 72.114 ms/op 0.88
processSlot - 1 slots 14.333 us/op 17.168 us/op 0.83
processSlot - 32 slots 3.3100 ms/op 2.9879 ms/op 1.11
getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei 49.493 ms/op 46.808 ms/op 1.06
getCommitteeAssignments - req 1 vs - 250000 vc 2.2313 ms/op 2.2408 ms/op 1.00
getCommitteeAssignments - req 100 vs - 250000 vc 3.3477 ms/op 3.3803 ms/op 0.99
getCommitteeAssignments - req 1000 vs - 250000 vc 3.6089 ms/op 3.6684 ms/op 0.98
RootCache.getBlockRootAtSlot - 250000 vs - 7PWei 4.5000 ns/op 4.1600 ns/op 1.08
state getBlockRootAtSlot - 250000 vs - 7PWei 715.19 ns/op 652.38 ns/op 1.10
computeProposers - vc 250000 5.9655 ms/op 5.8666 ms/op 1.02
computeEpochShuffling - vc 250000 66.860 ms/op 70.900 ms/op 0.94
getNextSyncCommittee - vc 250000 101.89 ms/op 106.48 ms/op 0.96
computeSigningRoot for AttestationData 23.172 us/op 22.805 us/op 1.02
hash AttestationData serialized data then Buffer.toString(base64) 1.1713 us/op 1.2797 us/op 0.92
toHexString serialized data 769.64 ns/op 784.86 ns/op 0.98
Buffer.toString(base64) 148.82 ns/op 153.68 ns/op 0.97

by benchmarkbot/action

@wemeetagain
Copy link
Member

We have to set the hasher to as-sha256, see ChainSafe/ssz#314

@twoeths
Copy link
Contributor Author

twoeths commented Sep 19, 2023

We have to set the hasher to as-sha256, see ChainSafe/ssz#314

@wemeetagain I'll work on it in another PR

@twoeths twoeths merged commit 4d5799e into unstable Sep 19, 2023
12 checks passed
@twoeths twoeths deleted the tuyen/ssz_0.13.0 branch September 19, 2023 06:40
@wemeetagain
Copy link
Member

🎉 This PR is included in v1.12.0 🎉

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.

3 participants