Skip to content

chore: simplify LightClient usage - #6506

Merged
nazarhussain merged 3 commits into
unstablefrom
jeluard/light-client-utils
Mar 6, 2024
Merged

chore: simplify LightClient usage#6506
nazarhussain merged 3 commits into
unstablefrom
jeluard/light-client-utils

Conversation

@jeluard

@jeluard jeluard commented Mar 4, 2024

Copy link
Copy Markdown
Contributor

Motivation

Introduce helper function to make it easier to use LightClient

@codecov

codecov Bot commented Mar 4, 2024

Copy link
Copy Markdown

Codecov Report

Merging #6506 (61b0248) into unstable (10c1b11) will decrease coverage by 0.02%.
The diff coverage is 26.31%.

Additional details and impacted files
@@             Coverage Diff              @@
##           unstable    #6506      +/-   ##
============================================
- Coverage     61.72%   61.70%   -0.02%     
============================================
  Files           555      555              
  Lines         58302    58320      +18     
  Branches       1846     1846              
============================================
+ Hits          35985    35989       +4     
- Misses        22277    22291      +14     
  Partials         40       40              

@github-actions

github-actions Bot commented Mar 4, 2024

Copy link
Copy Markdown
Contributor

Performance Report

鉁旓笍 no performance regression detected

Full benchmark results
Benchmark suite Current: 9ddf67f Previous: 918924e Ratio
getPubkeys - index2pubkey - req 1000 vs - 250000 vc 950.11 us/op 795.48 us/op 1.19
getPubkeys - validatorsArr - req 1000 vs - 250000 vc 154.97 us/op 95.674 us/op 1.62
BLS verify - blst-native 1.4846 ms/op 1.1537 ms/op 1.29
BLS verifyMultipleSignatures 3 - blst-native 3.0878 ms/op 2.4925 ms/op 1.24
BLS verifyMultipleSignatures 8 - blst-native 6.8343 ms/op 5.4487 ms/op 1.25
BLS verifyMultipleSignatures 32 - blst-native 25.046 ms/op 21.128 ms/op 1.19
BLS verifyMultipleSignatures 64 - blst-native 48.369 ms/op 42.379 ms/op 1.14
BLS verifyMultipleSignatures 128 - blst-native 109.71 ms/op 78.588 ms/op 1.40
BLS deserializing 10000 signatures 992.41 ms/op 852.98 ms/op 1.16
BLS deserializing 100000 signatures 10.025 s/op 8.7094 s/op 1.15
BLS verifyMultipleSignatures - same message - 3 - blst-native 1.8058 ms/op 1.1538 ms/op 1.57
BLS verifyMultipleSignatures - same message - 8 - blst-native 1.8340 ms/op 1.3090 ms/op 1.40
BLS verifyMultipleSignatures - same message - 32 - blst-native 2.5930 ms/op 2.1753 ms/op 1.19
BLS verifyMultipleSignatures - same message - 64 - blst-native 3.8960 ms/op 4.0295 ms/op 0.97
BLS verifyMultipleSignatures - same message - 128 - blst-native 6.9877 ms/op 5.2997 ms/op 1.32
BLS aggregatePubkeys 32 - blst-native 31.352 us/op 23.691 us/op 1.32
BLS aggregatePubkeys 128 - blst-native 111.00 us/op 90.397 us/op 1.23
notSeenSlots=1 numMissedVotes=1 numBadVotes=10 67.618 ms/op 44.498 ms/op 1.52
notSeenSlots=1 numMissedVotes=0 numBadVotes=4 60.729 ms/op 47.065 ms/op 1.29
notSeenSlots=2 numMissedVotes=1 numBadVotes=10 58.268 ms/op 27.456 ms/op 2.12
getSlashingsAndExits - default max 310.13 us/op 231.48 us/op 1.34
getSlashingsAndExits - 2k 584.61 us/op 438.41 us/op 1.33
proposeBlockBody type=full, size=empty 6.7329 ms/op 4.2090 ms/op 1.60
isKnown best case - 1 super set check 457.00 ns/op 385.00 ns/op 1.19
isKnown normal case - 2 super set checks 319.00 ns/op 347.00 ns/op 0.92
isKnown worse case - 16 super set checks 308.00 ns/op 344.00 ns/op 0.90
CheckpointStateCache - add get delete 5.2900 us/op 7.3830 us/op 0.72
validate api signedAggregateAndProof - struct 2.8362 ms/op 2.7223 ms/op 1.04
validate gossip signedAggregateAndProof - struct 2.8348 ms/op 2.6510 ms/op 1.07
validate gossip attestation - vc 640000 1.3909 ms/op 1.2675 ms/op 1.10
batch validate gossip attestation - vc 640000 - chunk 32 168.14 us/op 158.19 us/op 1.06
batch validate gossip attestation - vc 640000 - chunk 64 148.90 us/op 141.07 us/op 1.06
batch validate gossip attestation - vc 640000 - chunk 128 142.30 us/op 124.82 us/op 1.14
batch validate gossip attestation - vc 640000 - chunk 256 137.89 us/op 133.13 us/op 1.04
pickEth1Vote - no votes 1.3006 ms/op 1.0471 ms/op 1.24
pickEth1Vote - max votes 10.846 ms/op 15.726 ms/op 0.69
pickEth1Vote - Eth1Data hashTreeRoot value x2048 23.874 ms/op 26.340 ms/op 0.91
pickEth1Vote - Eth1Data hashTreeRoot tree x2048 30.748 ms/op 26.264 ms/op 1.17
pickEth1Vote - Eth1Data fastSerialize value x2048 714.80 us/op 610.83 us/op 1.17
pickEth1Vote - Eth1Data fastSerialize tree x2048 4.9037 ms/op 8.6647 ms/op 0.57
bytes32 toHexString 533.00 ns/op 961.00 ns/op 0.55
bytes32 Buffer.toString(hex) 303.00 ns/op 387.00 ns/op 0.78
bytes32 Buffer.toString(hex) from Uint8Array 517.00 ns/op 553.00 ns/op 0.93
bytes32 Buffer.toString(hex) + 0x 312.00 ns/op 401.00 ns/op 0.78
Object access 1 prop 0.17500 ns/op 0.28200 ns/op 0.62
Map access 1 prop 0.16300 ns/op 0.22700 ns/op 0.72
Object get x1000 7.4400 ns/op 5.5920 ns/op 1.33
Map get x1000 0.81800 ns/op 0.90200 ns/op 0.91
Object set x1000 58.254 ns/op 31.070 ns/op 1.87
Map set x1000 42.416 ns/op 21.920 ns/op 1.94
Return object 10000 times 0.27310 ns/op 0.26950 ns/op 1.01
Throw Error 10000 times 4.0631 us/op 3.2842 us/op 1.24
fastMsgIdFn sha256 / 200 bytes 3.6150 us/op 2.5560 us/op 1.41
fastMsgIdFn h32 xxhash / 200 bytes 321.00 ns/op 558.00 ns/op 0.58
fastMsgIdFn h64 xxhash / 200 bytes 379.00 ns/op 526.00 ns/op 0.72
fastMsgIdFn sha256 / 1000 bytes 11.884 us/op 8.1370 us/op 1.46
fastMsgIdFn h32 xxhash / 1000 bytes 468.00 ns/op 582.00 ns/op 0.80
fastMsgIdFn h64 xxhash / 1000 bytes 461.00 ns/op 516.00 ns/op 0.89
fastMsgIdFn sha256 / 10000 bytes 107.44 us/op 57.367 us/op 1.87
fastMsgIdFn h32 xxhash / 10000 bytes 2.0090 us/op 2.1410 us/op 0.94
fastMsgIdFn h64 xxhash / 10000 bytes 1.4200 us/op 1.4250 us/op 1.00
send data - 1000 256B messages 23.430 ms/op 17.229 ms/op 1.36
send data - 1000 512B messages 29.670 ms/op 18.576 ms/op 1.60
send data - 1000 1024B messages 48.740 ms/op 30.864 ms/op 1.58
send data - 1000 1200B messages 43.253 ms/op 38.200 ms/op 1.13
send data - 1000 2048B messages 52.060 ms/op 37.568 ms/op 1.39
send data - 1000 4096B messages 45.104 ms/op 38.886 ms/op 1.16
send data - 1000 16384B messages 122.11 ms/op 92.556 ms/op 1.32
send data - 1000 65536B messages 552.63 ms/op 443.14 ms/op 1.25
enrSubnets - fastDeserialize 64 bits 2.0680 us/op 1.5760 us/op 1.31
enrSubnets - ssz BitVector 64 bits 569.00 ns/op 631.00 ns/op 0.90
enrSubnets - fastDeserialize 4 bits 231.00 ns/op 324.00 ns/op 0.71
enrSubnets - ssz BitVector 4 bits 521.00 ns/op 639.00 ns/op 0.82
prioritizePeers score -10:0 att 32-0.1 sync 2-0 123.33 us/op 77.338 us/op 1.59
prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 156.50 us/op 110.46 us/op 1.42
prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 212.90 us/op 162.21 us/op 1.31
prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 378.01 us/op 290.19 us/op 1.30
prioritizePeers score 0:0 att 64-1 sync 4-1 398.66 us/op 270.91 us/op 1.47
array of 16000 items push then shift 1.7681 us/op 1.5188 us/op 1.16
LinkedList of 16000 items push then shift 9.7940 ns/op 6.3750 ns/op 1.54
array of 16000 items push then pop 117.93 ns/op 94.718 ns/op 1.25
LinkedList of 16000 items push then pop 9.5550 ns/op 5.7710 ns/op 1.66
array of 24000 items push then shift 2.6385 us/op 2.0227 us/op 1.30
LinkedList of 24000 items push then shift 9.8840 ns/op 6.0730 ns/op 1.63
array of 24000 items push then pop 153.05 ns/op 113.01 ns/op 1.35
LinkedList of 24000 items push then pop 9.2140 ns/op 6.9790 ns/op 1.32
intersect bitArray bitLen 8 6.5120 ns/op 5.1320 ns/op 1.27
intersect array and set length 8 73.464 ns/op 50.588 ns/op 1.45
intersect bitArray bitLen 128 38.377 ns/op 30.505 ns/op 1.26
intersect array and set length 128 1.0645 us/op 719.57 ns/op 1.48
bitArray.getTrueBitIndexes() bitLen 128 1.9340 us/op 1.5730 us/op 1.23
bitArray.getTrueBitIndexes() bitLen 248 3.1910 us/op 2.3270 us/op 1.37
bitArray.getTrueBitIndexes() bitLen 512 6.3450 us/op 4.0520 us/op 1.57
Buffer.concat 32 items 1.0830 us/op 879.00 ns/op 1.23
Uint8Array.set 32 items 1.9380 us/op 1.7580 us/op 1.10
Set add up to 64 items then delete first 4.9397 us/op 1.8612 us/op 2.65
OrderedSet add up to 64 items then delete first 6.2175 us/op 3.0036 us/op 2.07
Set add up to 64 items then delete last 5.5291 us/op 2.6341 us/op 2.10
OrderedSet add up to 64 items then delete last 7.1976 us/op 4.0149 us/op 1.79
Set add up to 64 items then delete middle 5.5101 us/op 2.5222 us/op 2.18
OrderedSet add up to 64 items then delete middle 8.9838 us/op 5.6195 us/op 1.60
Set add up to 128 items then delete first 11.241 us/op 5.3248 us/op 2.11
OrderedSet add up to 128 items then delete first 15.323 us/op 6.6151 us/op 2.32
Set add up to 128 items then delete last 11.036 us/op 3.8692 us/op 2.85
OrderedSet add up to 128 items then delete last 14.427 us/op 5.9780 us/op 2.41
Set add up to 128 items then delete middle 10.937 us/op 3.8148 us/op 2.87
OrderedSet add up to 128 items then delete middle 20.657 us/op 10.668 us/op 1.94
Set add up to 256 items then delete first 23.115 us/op 7.8826 us/op 2.93
OrderedSet add up to 256 items then delete first 31.291 us/op 12.171 us/op 2.57
Set add up to 256 items then delete last 22.035 us/op 7.4873 us/op 2.94
OrderedSet add up to 256 items then delete last 29.372 us/op 11.480 us/op 2.56
Set add up to 256 items then delete middle 22.475 us/op 7.4933 us/op 3.00
OrderedSet add up to 256 items then delete middle 55.414 us/op 30.413 us/op 1.82
transfer serialized Status (84 B) 1.9390 us/op 1.2690 us/op 1.53
copy serialized Status (84 B) 1.4600 us/op 1.0130 us/op 1.44
transfer serialized SignedVoluntaryExit (112 B) 2.0890 us/op 1.3230 us/op 1.58
copy serialized SignedVoluntaryExit (112 B) 1.5010 us/op 1.0480 us/op 1.43
transfer serialized ProposerSlashing (416 B) 2.3560 us/op 1.5560 us/op 1.51
copy serialized ProposerSlashing (416 B) 2.0770 us/op 1.3690 us/op 1.52
transfer serialized Attestation (485 B) 2.7630 us/op 1.6250 us/op 1.70
copy serialized Attestation (485 B) 2.1510 us/op 1.3870 us/op 1.55
transfer serialized AttesterSlashing (33232 B) 2.3210 us/op 2.2630 us/op 1.03
copy serialized AttesterSlashing (33232 B) 7.0420 us/op 5.1470 us/op 1.37
transfer serialized Small SignedBeaconBlock (128000 B) 2.7550 us/op 2.3930 us/op 1.15
copy serialized Small SignedBeaconBlock (128000 B) 24.225 us/op 12.213 us/op 1.98
transfer serialized Avg SignedBeaconBlock (200000 B) 3.0360 us/op 2.9510 us/op 1.03
copy serialized Avg SignedBeaconBlock (200000 B) 33.282 us/op 23.099 us/op 1.44
transfer serialized BlobsSidecar (524380 B) 3.3020 us/op 2.9790 us/op 1.11
copy serialized BlobsSidecar (524380 B) 88.385 us/op 68.578 us/op 1.29
transfer serialized Big SignedBeaconBlock (1000000 B) 3.4320 us/op 3.1620 us/op 1.09
copy serialized Big SignedBeaconBlock (1000000 B) 161.53 us/op 138.22 us/op 1.17
pass gossip attestations to forkchoice per slot 4.3213 ms/op 2.7392 ms/op 1.58
forkChoice updateHead vc 100000 bc 64 eq 0 709.38 us/op 436.02 us/op 1.63
forkChoice updateHead vc 600000 bc 64 eq 0 4.6467 ms/op 3.9759 ms/op 1.17
forkChoice updateHead vc 1000000 bc 64 eq 0 7.6086 ms/op 4.7300 ms/op 1.61
forkChoice updateHead vc 600000 bc 320 eq 0 4.3854 ms/op 2.6168 ms/op 1.68
forkChoice updateHead vc 600000 bc 1200 eq 0 4.8024 ms/op 2.7441 ms/op 1.75
forkChoice updateHead vc 600000 bc 7200 eq 0 5.6734 ms/op 3.3402 ms/op 1.70
forkChoice updateHead vc 600000 bc 64 eq 1000 11.655 ms/op 10.141 ms/op 1.15
forkChoice updateHead vc 600000 bc 64 eq 10000 12.752 ms/op 9.7660 ms/op 1.31
forkChoice updateHead vc 600000 bc 64 eq 300000 18.389 ms/op 11.923 ms/op 1.54
computeDeltas 500000 validators 300 proto nodes 7.2268 ms/op 3.3634 ms/op 2.15
computeDeltas 500000 validators 1200 proto nodes 7.6775 ms/op 3.4003 ms/op 2.26
computeDeltas 500000 validators 7200 proto nodes 7.3876 ms/op 4.0593 ms/op 1.82
computeDeltas 750000 validators 300 proto nodes 11.723 ms/op 5.8967 ms/op 1.99
computeDeltas 750000 validators 1200 proto nodes 9.9166 ms/op 5.2569 ms/op 1.89
computeDeltas 750000 validators 7200 proto nodes 9.8808 ms/op 5.0187 ms/op 1.97
computeDeltas 1400000 validators 300 proto nodes 19.438 ms/op 9.6321 ms/op 2.02
computeDeltas 1400000 validators 1200 proto nodes 20.062 ms/op 9.9602 ms/op 2.01
computeDeltas 1400000 validators 7200 proto nodes 21.060 ms/op 8.8812 ms/op 2.37
computeDeltas 2100000 validators 300 proto nodes 30.857 ms/op 13.292 ms/op 2.32
computeDeltas 2100000 validators 1200 proto nodes 28.063 ms/op 13.783 ms/op 2.04
computeDeltas 2100000 validators 7200 proto nodes 28.743 ms/op 13.371 ms/op 2.15
altair processAttestation - 250000 vs - 7PWei normalcase 2.5851 ms/op 1.8119 ms/op 1.43
altair processAttestation - 250000 vs - 7PWei worstcase 3.6643 ms/op 2.5297 ms/op 1.45
altair processAttestation - setStatus - 1/6 committees join 155.47 us/op 75.246 us/op 2.07
altair processAttestation - setStatus - 1/3 committees join 313.65 us/op 157.76 us/op 1.99
altair processAttestation - setStatus - 1/2 committees join 391.69 us/op 227.80 us/op 1.72
altair processAttestation - setStatus - 2/3 committees join 505.84 us/op 291.18 us/op 1.74
altair processAttestation - setStatus - 4/5 committees join 702.32 us/op 410.52 us/op 1.71
altair processAttestation - setStatus - 100% committees join 861.91 us/op 520.39 us/op 1.66
altair processBlock - 250000 vs - 7PWei normalcase 10.032 ms/op 7.8769 ms/op 1.27
altair processBlock - 250000 vs - 7PWei normalcase hashState 41.820 ms/op 34.550 ms/op 1.21
altair processBlock - 250000 vs - 7PWei worstcase 41.317 ms/op 30.820 ms/op 1.34
altair processBlock - 250000 vs - 7PWei worstcase hashState 97.792 ms/op 82.071 ms/op 1.19
phase0 processBlock - 250000 vs - 7PWei normalcase 3.0648 ms/op 2.0821 ms/op 1.47
phase0 processBlock - 250000 vs - 7PWei worstcase 34.797 ms/op 26.347 ms/op 1.32
altair processEth1Data - 250000 vs - 7PWei normalcase 761.31 us/op 428.86 us/op 1.78
getExpectedWithdrawals 250000 eb:1,eth1:1,we:0,wn:0,smpl:15 15.662 us/op 12.878 us/op 1.22
getExpectedWithdrawals 250000 eb:0.95,eth1:0.1,we:0.05,wn:0,smpl:219 101.35 us/op 40.971 us/op 2.47
getExpectedWithdrawals 250000 eb:0.95,eth1:0.3,we:0.05,wn:0,smpl:42 25.846 us/op 16.362 us/op 1.58
getExpectedWithdrawals 250000 eb:0.95,eth1:0.7,we:0.05,wn:0,smpl:18 16.205 us/op 11.095 us/op 1.46
getExpectedWithdrawals 250000 eb:0.1,eth1:0.1,we:0,wn:0,smpl:1020 211.37 us/op 149.57 us/op 1.41
getExpectedWithdrawals 250000 eb:0.03,eth1:0.03,we:0,wn:0,smpl:11777 1.5208 ms/op 1.0655 ms/op 1.43
getExpectedWithdrawals 250000 eb:0.01,eth1:0.01,we:0,wn:0,smpl:16384 2.1981 ms/op 1.2226 ms/op 1.80
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,smpl:16384 2.0160 ms/op 1.1474 ms/op 1.76
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,nocache,smpl:16384 5.5621 ms/op 2.9467 ms/op 1.89
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,smpl:16384 2.9326 ms/op 1.8773 ms/op 1.56
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,nocache,smpl:16384 6.6164 ms/op 4.2027 ms/op 1.57
Tree 40 250000 create 497.74 ms/op 322.87 ms/op 1.54
Tree 40 250000 get(125000) 218.38 ns/op 127.89 ns/op 1.71
Tree 40 250000 set(125000) 1.4138 us/op 870.09 ns/op 1.62
Tree 40 250000 toArray() 25.606 ms/op 21.209 ms/op 1.21
Tree 40 250000 iterate all - toArray() + loop 25.989 ms/op 20.127 ms/op 1.29
Tree 40 250000 iterate all - get(i) 79.055 ms/op 50.673 ms/op 1.56
MutableVector 250000 create 18.496 ms/op 9.3451 ms/op 1.98
MutableVector 250000 get(125000) 7.6610 ns/op 9.7760 ns/op 0.78
MutableVector 250000 set(125000) 387.25 ns/op 230.93 ns/op 1.68
MutableVector 250000 toArray() 4.0973 ms/op 3.1428 ms/op 1.30
MutableVector 250000 iterate all - toArray() + loop 4.2255 ms/op 3.3234 ms/op 1.27
MutableVector 250000 iterate all - get(i) 1.6010 ms/op 1.4378 ms/op 1.11
Array 250000 create 3.9212 ms/op 3.1746 ms/op 1.24
Array 250000 clone - spread 1.4582 ms/op 1.2754 ms/op 1.14
Array 250000 get(125000) 1.2160 ns/op 1.0110 ns/op 1.20
Array 250000 set(125000) 4.6890 ns/op 1.2180 ns/op 3.85
Array 250000 iterate all - loop 181.95 us/op 155.13 us/op 1.17
effectiveBalanceIncrements clone Uint8Array 300000 46.489 us/op 13.385 us/op 3.47
effectiveBalanceIncrements clone MutableVector 300000 458.00 ns/op 374.00 ns/op 1.22
effectiveBalanceIncrements rw all Uint8Array 300000 208.44 us/op 187.43 us/op 1.11
effectiveBalanceIncrements rw all MutableVector 300000 101.75 ms/op 74.820 ms/op 1.36
phase0 afterProcessEpoch - 250000 vs - 7PWei 121.17 ms/op 77.690 ms/op 1.56
phase0 beforeProcessEpoch - 250000 vs - 7PWei 41.246 ms/op 48.132 ms/op 0.86
altair processEpoch - mainnet_e81889 502.91 ms/op 408.17 ms/op 1.23
mainnet_e81889 - altair beforeProcessEpoch 82.902 ms/op 80.978 ms/op 1.02
mainnet_e81889 - altair processJustificationAndFinalization 14.324 us/op 14.825 us/op 0.97
mainnet_e81889 - altair processInactivityUpdates 5.5775 ms/op 7.1509 ms/op 0.78
mainnet_e81889 - altair processRewardsAndPenalties 62.667 ms/op 63.208 ms/op 0.99
mainnet_e81889 - altair processRegistryUpdates 2.6960 us/op 3.2580 us/op 0.83
mainnet_e81889 - altair processSlashings 484.00 ns/op 1.0240 us/op 0.47
mainnet_e81889 - altair processEth1DataReset 630.00 ns/op 820.00 ns/op 0.77
mainnet_e81889 - altair processEffectiveBalanceUpdates 1.3883 ms/op 1.1947 ms/op 1.16
mainnet_e81889 - altair processSlashingsReset 3.4970 us/op 4.5620 us/op 0.77
mainnet_e81889 - altair processRandaoMixesReset 5.6320 us/op 9.1850 us/op 0.61
mainnet_e81889 - altair processHistoricalRootsUpdate 541.00 ns/op 1.4850 us/op 0.36
mainnet_e81889 - altair processParticipationFlagUpdates 1.7950 us/op 3.9380 us/op 0.46
mainnet_e81889 - altair processSyncCommitteeUpdates 587.00 ns/op 1.0120 us/op 0.58
mainnet_e81889 - altair afterProcessEpoch 117.41 ms/op 87.478 ms/op 1.34
capella processEpoch - mainnet_e217614 2.6717 s/op 2.2393 s/op 1.19
mainnet_e217614 - capella beforeProcessEpoch 588.61 ms/op 452.43 ms/op 1.30
mainnet_e217614 - capella processJustificationAndFinalization 31.965 us/op 18.544 us/op 1.72
mainnet_e217614 - capella processInactivityUpdates 29.933 ms/op 24.249 ms/op 1.23
mainnet_e217614 - capella processRewardsAndPenalties 427.37 ms/op 436.33 ms/op 0.98
mainnet_e217614 - capella processRegistryUpdates 26.591 us/op 16.343 us/op 1.63
mainnet_e217614 - capella processSlashings 471.00 ns/op 1.2700 us/op 0.37
mainnet_e217614 - capella processEth1DataReset 476.00 ns/op 636.00 ns/op 0.75
mainnet_e217614 - capella processEffectiveBalanceUpdates 5.8895 ms/op 3.9448 ms/op 1.49
mainnet_e217614 - capella processSlashingsReset 3.7110 us/op 3.0340 us/op 1.22
mainnet_e217614 - capella processRandaoMixesReset 4.0990 us/op 5.6200 us/op 0.73
mainnet_e217614 - capella processHistoricalRootsUpdate 629.00 ns/op 926.00 ns/op 0.68
mainnet_e217614 - capella processParticipationFlagUpdates 1.5310 us/op 2.4470 us/op 0.63
mainnet_e217614 - capella afterProcessEpoch 315.00 ms/op 217.17 ms/op 1.45
phase0 processEpoch - mainnet_e58758 480.45 ms/op 418.22 ms/op 1.15
mainnet_e58758 - phase0 beforeProcessEpoch 151.70 ms/op 127.45 ms/op 1.19
mainnet_e58758 - phase0 processJustificationAndFinalization 24.441 us/op 13.177 us/op 1.85
mainnet_e58758 - phase0 processRewardsAndPenalties 55.281 ms/op 53.804 ms/op 1.03
mainnet_e58758 - phase0 processRegistryUpdates 12.718 us/op 10.527 us/op 1.21
mainnet_e58758 - phase0 processSlashings 482.00 ns/op 679.00 ns/op 0.71
mainnet_e58758 - phase0 processEth1DataReset 498.00 ns/op 716.00 ns/op 0.70
mainnet_e58758 - phase0 processEffectiveBalanceUpdates 1.1726 ms/op 943.43 us/op 1.24
mainnet_e58758 - phase0 processSlashingsReset 3.4670 us/op 4.8820 us/op 0.71
mainnet_e58758 - phase0 processRandaoMixesReset 3.9880 us/op 5.6310 us/op 0.71
mainnet_e58758 - phase0 processHistoricalRootsUpdate 464.00 ns/op 1.2010 us/op 0.39
mainnet_e58758 - phase0 processParticipationRecordUpdates 3.7570 us/op 3.5960 us/op 1.04
mainnet_e58758 - phase0 afterProcessEpoch 102.64 ms/op 69.596 ms/op 1.47
phase0 processEffectiveBalanceUpdates - 250000 normalcase 1.6919 ms/op 1.0833 ms/op 1.56
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 1.6434 ms/op 1.5267 ms/op 1.08
altair processInactivityUpdates - 250000 normalcase 35.198 ms/op 27.108 ms/op 1.30
altair processInactivityUpdates - 250000 worstcase 32.455 ms/op 26.038 ms/op 1.25
phase0 processRegistryUpdates - 250000 normalcase 12.646 us/op 10.912 us/op 1.16
phase0 processRegistryUpdates - 250000 badcase_full_deposits 422.49 us/op 482.09 us/op 0.88
phase0 processRegistryUpdates - 250000 worstcase 0.5 155.99 ms/op 126.75 ms/op 1.23
altair processRewardsAndPenalties - 250000 normalcase 67.731 ms/op 57.331 ms/op 1.18
altair processRewardsAndPenalties - 250000 worstcase 68.837 ms/op 55.918 ms/op 1.23
phase0 getAttestationDeltas - 250000 normalcase 11.448 ms/op 7.3145 ms/op 1.57
phase0 getAttestationDeltas - 250000 worstcase 14.052 ms/op 7.7384 ms/op 1.82
phase0 processSlashings - 250000 worstcase 115.13 us/op 83.035 us/op 1.39
altair processSyncCommitteeUpdates - 250000 171.93 ms/op 106.75 ms/op 1.61
BeaconState.hashTreeRoot - No change 374.00 ns/op 354.00 ns/op 1.06
BeaconState.hashTreeRoot - 1 full validator 148.62 us/op 123.08 us/op 1.21
BeaconState.hashTreeRoot - 32 full validator 1.2243 ms/op 1.0962 ms/op 1.12
BeaconState.hashTreeRoot - 512 full validator 13.554 ms/op 9.7652 ms/op 1.39
BeaconState.hashTreeRoot - 1 validator.effectiveBalance 152.86 us/op 150.22 us/op 1.02
BeaconState.hashTreeRoot - 32 validator.effectiveBalance 2.1429 ms/op 1.6883 ms/op 1.27
BeaconState.hashTreeRoot - 512 validator.effectiveBalance 40.665 ms/op 20.989 ms/op 1.94
BeaconState.hashTreeRoot - 1 balances 245.32 us/op 100.36 us/op 2.44
BeaconState.hashTreeRoot - 32 balances 1.6979 ms/op 990.33 us/op 1.71
BeaconState.hashTreeRoot - 512 balances 16.992 ms/op 13.206 ms/op 1.29
BeaconState.hashTreeRoot - 250000 balances 393.08 ms/op 205.95 ms/op 1.91
aggregationBits - 2048 els - zipIndexesInBitList 76.220 us/op 10.921 us/op 6.98
byteArrayEquals 32 153.15 ns/op 66.851 ns/op 2.29
Buffer.compare 32 101.32 ns/op 38.600 ns/op 2.62
byteArrayEquals 1024 2.8217 us/op 1.8534 us/op 1.52
Buffer.compare 1024 88.381 ns/op 46.272 ns/op 1.91
byteArrayEquals 16384 44.104 us/op 28.804 us/op 1.53
Buffer.compare 16384 427.50 ns/op 208.94 ns/op 2.05
byteArrayEquals 123687377 283.22 ms/op 210.84 ms/op 1.34
Buffer.compare 123687377 11.040 ms/op 5.2797 ms/op 2.09
byteArrayEquals 32 - diff last byte 107.38 ns/op 66.373 ns/op 1.62
Buffer.compare 32 - diff last byte 64.938 ns/op 39.684 ns/op 1.64
byteArrayEquals 1024 - diff last byte 2.2622 us/op 1.7632 us/op 1.28
Buffer.compare 1024 - diff last byte 85.759 ns/op 45.781 ns/op 1.87
byteArrayEquals 16384 - diff last byte 38.022 us/op 28.327 us/op 1.34
Buffer.compare 16384 - diff last byte 285.81 ns/op 205.51 ns/op 1.39
byteArrayEquals 123687377 - diff last byte 267.47 ms/op 218.79 ms/op 1.22
Buffer.compare 123687377 - diff last byte 6.3861 ms/op 4.5272 ms/op 1.41
byteArrayEquals 32 - random bytes 5.9330 ns/op 4.5780 ns/op 1.30
Buffer.compare 32 - random bytes 62.357 ns/op 39.747 ns/op 1.57
byteArrayEquals 1024 - random bytes 5.3720 ns/op 4.5020 ns/op 1.19
Buffer.compare 1024 - random bytes 63.659 ns/op 38.123 ns/op 1.67
byteArrayEquals 16384 - random bytes 5.5580 ns/op 4.4930 ns/op 1.24
Buffer.compare 16384 - random bytes 63.382 ns/op 38.222 ns/op 1.66
byteArrayEquals 123687377 - random bytes 9.0400 ns/op 8.0800 ns/op 1.12
Buffer.compare 123687377 - random bytes 69.510 ns/op 41.720 ns/op 1.67
regular array get 100000 times 46.168 us/op 41.078 us/op 1.12
wrappedArray get 100000 times 45.569 us/op 40.942 us/op 1.11
arrayWithProxy get 100000 times 14.640 ms/op 9.8873 ms/op 1.48
ssz.Root.equals 57.197 ns/op 55.374 ns/op 1.03
byteArrayEquals 55.369 ns/op 54.413 ns/op 1.02
Buffer.compare 11.771 ns/op 10.156 ns/op 1.16
shuffle list - 16384 els 7.0110 ms/op 4.5342 ms/op 1.55
shuffle list - 250000 els 103.90 ms/op 69.032 ms/op 1.51
processSlot - 1 slots 15.740 us/op 14.383 us/op 1.09
processSlot - 32 slots 2.8164 ms/op 2.9010 ms/op 0.97
getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei 58.538 ms/op 53.065 ms/op 1.10
getCommitteeAssignments - req 1 vs - 250000 vc 2.6324 ms/op 2.1947 ms/op 1.20
getCommitteeAssignments - req 100 vs - 250000 vc 3.9157 ms/op 3.3461 ms/op 1.17
getCommitteeAssignments - req 1000 vs - 250000 vc 4.3158 ms/op 3.7326 ms/op 1.16
findModifiedValidators - 10000 modified validators 671.36 ms/op 403.99 ms/op 1.66
findModifiedValidators - 1000 modified validators 452.61 ms/op 341.51 ms/op 1.33
findModifiedValidators - 100 modified validators 441.07 ms/op 330.02 ms/op 1.34
findModifiedValidators - 10 modified validators 433.35 ms/op 319.84 ms/op 1.35
findModifiedValidators - 1 modified validators 435.64 ms/op 322.63 ms/op 1.35
findModifiedValidators - no difference 432.25 ms/op 326.88 ms/op 1.32
compare ViewDUs 4.5006 s/op 4.1765 s/op 1.08
compare each validator Uint8Array 1.3712 s/op 1.7222 s/op 0.80
compare ViewDU to Uint8Array 1.2234 s/op 988.73 ms/op 1.24
migrate state 1000000 validators, 24 modified, 0 new 766.19 ms/op 749.77 ms/op 1.02
migrate state 1000000 validators, 1700 modified, 1000 new 1.0556 s/op 1.0264 s/op 1.03
migrate state 1000000 validators, 3400 modified, 2000 new 1.3285 s/op 1.3753 s/op 0.97
migrate state 1500000 validators, 24 modified, 0 new 854.78 ms/op 708.10 ms/op 1.21
migrate state 1500000 validators, 1700 modified, 1000 new 1.3259 s/op 1.0319 s/op 1.28
migrate state 1500000 validators, 3400 modified, 2000 new 1.4090 s/op 1.1864 s/op 1.19
RootCache.getBlockRootAtSlot - 250000 vs - 7PWei 5.1300 ns/op 4.9300 ns/op 1.04
state getBlockRootAtSlot - 250000 vs - 7PWei 1.0922 us/op 992.83 ns/op 1.10
computeProposers - vc 250000 11.807 ms/op 8.1622 ms/op 1.45
computeEpochShuffling - vc 250000 114.18 ms/op 81.083 ms/op 1.41
getNextSyncCommittee - vc 250000 175.74 ms/op 132.74 ms/op 1.32
computeSigningRoot for AttestationData 34.570 us/op 26.233 us/op 1.32
hash AttestationData serialized data then Buffer.toString(base64) 2.5135 us/op 1.3939 us/op 1.80
toHexString serialized data 1.4095 us/op 900.64 ns/op 1.56
Buffer.toString(base64) 271.09 ns/op 175.99 ns/op 1.54

by benchmarkbot/action

@jeluard
jeluard requested a review from nazarhussain March 4, 2024 19:28
@jeluard
jeluard marked this pull request as ready for review March 4, 2024 19:28
@jeluard
jeluard requested a review from a team as a code owner March 4, 2024 19:28
Comment thread packages/light-client/src/utils/utils.ts
@nazarhussain
nazarhussain merged commit 8ad2cb0 into unstable Mar 6, 2024
@nazarhussain
nazarhussain deleted the jeluard/light-client-utils branch March 6, 2024 14:41
philknows pushed a commit that referenced this pull request Mar 6, 2024
* chore: simplify LightClient usage

* chore: lint

* chore: lint
@wemeetagain

Copy link
Copy Markdown
Member

馃帀 This PR is included in v1.17.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