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

fix: gossipsub seen_ttl should be in ms #6607

Merged
merged 1 commit into from
Mar 28, 2024
Merged

Conversation

twoeths
Copy link
Contributor

@twoeths twoeths commented Mar 28, 2024

Motivation

Fix #6569

Description

In lodestar, seen_ttl should be in ms, not second

Closes #6606

@twoeths twoeths requested a review from a team as a code owner March 28, 2024 07:23
@jeluard
Copy link
Contributor

jeluard commented Mar 28, 2024

Nice catch! Current discussions hint that the spec will probably define those number in seconds, so I'm wondering if it's not more sensible to have all parameters follow the units of the specs in the definition and have the proper conversion being done when used. That would help with checking values match the spec (same applies to some other parameters apparently).

Also worth noting that the mentioned changes haven't been merged in the specs yet, and are thus not part of a spec release.

@twoeths
Copy link
Contributor Author

twoeths commented Mar 28, 2024

Nice catch! Current discussions hint that the spec will probably define those number in seconds, so I'm wondering if it's not more sensible to have all parameters follow the units of the specs in the definition and have the proper conversion being done when used. That would help with checking values match the spec (same applies to some other parameters apparently).

Also worth noting that the mentioned changes haven't been merged in the specs yet, and are thus not part of a spec release.

this needs to be fixed regardless of the unit specified in the spec since that's what implemented in js-libp2p-gossipsub https://github.com/ChainSafe/js-libp2p-gossipsub/blob/ff620fda077da6bea89f3da1408b29c5151ab581/src/index.ts#L475

once spec is finalized we should change in js-libp2p-gossipsub first before applying to lodestar. Probably that needs to chain with other enhancements as it is not backward compatible

Copy link
Contributor

Performance Report

✔️ no performance regression detected

🚀🚀 Significant benchmark improvement detected

Benchmark suite Current: bdf1f7c Previous: 841e3cd Ratio
getExpectedWithdrawals 250000 eb:0.95,eth1:0.3,we:0.05,wn:0,smpl:42 5.7030 us/op 19.763 us/op 0.29
Full benchmark results
Benchmark suite Current: bdf1f7c Previous: 841e3cd Ratio
getPubkeys - index2pubkey - req 1000 vs - 250000 vc 764.99 us/op 325.46 us/op 2.35
getPubkeys - validatorsArr - req 1000 vs - 250000 vc 51.730 us/op 50.798 us/op 1.02
BLS verify - blst-native 1.0739 ms/op 1.0910 ms/op 0.98
BLS verifyMultipleSignatures 3 - blst-native 2.3530 ms/op 2.3285 ms/op 1.01
BLS verifyMultipleSignatures 8 - blst-native 5.0780 ms/op 5.1481 ms/op 0.99
BLS verifyMultipleSignatures 32 - blst-native 19.475 ms/op 18.921 ms/op 1.03
BLS verifyMultipleSignatures 64 - blst-native 37.096 ms/op 37.369 ms/op 0.99
BLS verifyMultipleSignatures 128 - blst-native 75.407 ms/op 74.096 ms/op 1.02
BLS deserializing 10000 signatures 795.38 ms/op 776.94 ms/op 1.02
BLS deserializing 100000 signatures 8.2813 s/op 8.1489 s/op 1.02
BLS verifyMultipleSignatures - same message - 3 - blst-native 1.1698 ms/op 1.1430 ms/op 1.02
BLS verifyMultipleSignatures - same message - 8 - blst-native 1.2803 ms/op 1.2984 ms/op 0.99
BLS verifyMultipleSignatures - same message - 32 - blst-native 2.0005 ms/op 2.0479 ms/op 0.98
BLS verifyMultipleSignatures - same message - 64 - blst-native 3.8347 ms/op 3.7444 ms/op 1.02
BLS verifyMultipleSignatures - same message - 128 - blst-native 5.1103 ms/op 6.3523 ms/op 0.80
BLS aggregatePubkeys 32 - blst-native 24.111 us/op 22.878 us/op 1.05
BLS aggregatePubkeys 128 - blst-native 88.450 us/op 86.936 us/op 1.02
notSeenSlots=1 numMissedVotes=1 numBadVotes=10 47.133 ms/op 47.748 ms/op 0.99
notSeenSlots=1 numMissedVotes=0 numBadVotes=4 44.762 ms/op 50.550 ms/op 0.89
notSeenSlots=2 numMissedVotes=1 numBadVotes=10 25.482 ms/op 25.586 ms/op 1.00
getSlashingsAndExits - default max 114.50 us/op 145.01 us/op 0.79
getSlashingsAndExits - 2k 294.29 us/op 354.71 us/op 0.83
proposeBlockBody type=full, size=empty 4.7712 ms/op 4.3603 ms/op 1.09
isKnown best case - 1 super set check 326.00 ns/op 319.00 ns/op 1.02
isKnown normal case - 2 super set checks 316.00 ns/op 307.00 ns/op 1.03
isKnown worse case - 16 super set checks 316.00 ns/op 309.00 ns/op 1.02
InMemoryCheckpointStateCache - add get delete 4.3330 us/op 4.2940 us/op 1.01
validate api signedAggregateAndProof - struct 2.4063 ms/op 2.3618 ms/op 1.02
validate gossip signedAggregateAndProof - struct 2.4544 ms/op 2.3606 ms/op 1.04
validate gossip attestation - vc 640000 1.1745 ms/op 1.1276 ms/op 1.04
batch validate gossip attestation - vc 640000 - chunk 32 142.85 us/op 136.49 us/op 1.05
batch validate gossip attestation - vc 640000 - chunk 64 126.18 us/op 119.45 us/op 1.06
batch validate gossip attestation - vc 640000 - chunk 128 119.74 us/op 112.33 us/op 1.07
batch validate gossip attestation - vc 640000 - chunk 256 123.05 us/op 107.66 us/op 1.14
pickEth1Vote - no votes 967.38 us/op 785.97 us/op 1.23
pickEth1Vote - max votes 7.3342 ms/op 8.3562 ms/op 0.88
pickEth1Vote - Eth1Data hashTreeRoot value x2048 15.136 ms/op 16.243 ms/op 0.93
pickEth1Vote - Eth1Data hashTreeRoot tree x2048 25.176 ms/op 22.525 ms/op 1.12
pickEth1Vote - Eth1Data fastSerialize value x2048 598.28 us/op 394.92 us/op 1.51
pickEth1Vote - Eth1Data fastSerialize tree x2048 5.7628 ms/op 6.9449 ms/op 0.83
bytes32 toHexString 624.00 ns/op 434.00 ns/op 1.44
bytes32 Buffer.toString(hex) 402.00 ns/op 298.00 ns/op 1.35
bytes32 Buffer.toString(hex) from Uint8Array 523.00 ns/op 397.00 ns/op 1.32
bytes32 Buffer.toString(hex) + 0x 408.00 ns/op 307.00 ns/op 1.33
Object access 1 prop 0.22100 ns/op 0.18800 ns/op 1.18
Map access 1 prop 0.21300 ns/op 0.19000 ns/op 1.12
Object get x1000 5.4460 ns/op 5.4050 ns/op 1.01
Map get x1000 0.82200 ns/op 0.70800 ns/op 1.16
Object set x1000 28.336 ns/op 25.526 ns/op 1.11
Map set x1000 18.257 ns/op 17.000 ns/op 1.07
Return object 10000 times 0.24210 ns/op 0.22070 ns/op 1.10
Throw Error 10000 times 3.2688 us/op 2.6902 us/op 1.22
fastMsgIdFn sha256 / 200 bytes 2.2080 us/op 1.8660 us/op 1.18
fastMsgIdFn h32 xxhash / 200 bytes 358.00 ns/op 271.00 ns/op 1.32
fastMsgIdFn h64 xxhash / 200 bytes 438.00 ns/op 335.00 ns/op 1.31
fastMsgIdFn sha256 / 1000 bytes 6.7790 us/op 5.8000 us/op 1.17
fastMsgIdFn h32 xxhash / 1000 bytes 547.00 ns/op 379.00 ns/op 1.44
fastMsgIdFn h64 xxhash / 1000 bytes 547.00 ns/op 384.00 ns/op 1.42
fastMsgIdFn sha256 / 10000 bytes 56.945 us/op 49.220 us/op 1.16
fastMsgIdFn h32 xxhash / 10000 bytes 1.9780 us/op 1.7120 us/op 1.16
fastMsgIdFn h64 xxhash / 10000 bytes 1.3750 us/op 1.1750 us/op 1.17
send data - 1000 256B messages 13.908 ms/op 12.631 ms/op 1.10
send data - 1000 512B messages 18.726 ms/op 13.702 ms/op 1.37
send data - 1000 1024B messages 29.907 ms/op 22.492 ms/op 1.33
send data - 1000 1200B messages 30.527 ms/op 29.795 ms/op 1.02
send data - 1000 2048B messages 43.258 ms/op 37.582 ms/op 1.15
send data - 1000 4096B messages 39.597 ms/op 33.757 ms/op 1.17
send data - 1000 16384B messages 120.23 ms/op 91.296 ms/op 1.32
send data - 1000 65536B messages 468.93 ms/op 379.40 ms/op 1.24
enrSubnets - fastDeserialize 64 bits 1.0410 us/op 965.00 ns/op 1.08
enrSubnets - ssz BitVector 64 bits 552.00 ns/op 427.00 ns/op 1.29
enrSubnets - fastDeserialize 4 bits 249.00 ns/op 200.00 ns/op 1.25
enrSubnets - ssz BitVector 4 bits 508.00 ns/op 423.00 ns/op 1.20
prioritizePeers score -10:0 att 32-0.1 sync 2-0 90.702 us/op 71.129 us/op 1.28
prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 103.37 us/op 81.130 us/op 1.27
prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 156.26 us/op 126.07 us/op 1.24
prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 272.81 us/op 178.57 us/op 1.53
prioritizePeers score 0:0 att 64-1 sync 4-1 268.68 us/op 200.11 us/op 1.34
array of 16000 items push then shift 1.3289 us/op 1.2333 us/op 1.08
LinkedList of 16000 items push then shift 7.7440 ns/op 6.6550 ns/op 1.16
array of 16000 items push then pop 106.31 ns/op 63.639 ns/op 1.67
LinkedList of 16000 items push then pop 6.6540 ns/op 5.6820 ns/op 1.17
array of 24000 items push then shift 1.9748 us/op 1.8094 us/op 1.09
LinkedList of 24000 items push then shift 6.5800 ns/op 6.3180 ns/op 1.04
array of 24000 items push then pop 150.21 ns/op 129.16 ns/op 1.16
LinkedList of 24000 items push then pop 6.1220 ns/op 5.6160 ns/op 1.09
intersect bitArray bitLen 8 4.7340 ns/op 4.5310 ns/op 1.04
intersect array and set length 8 81.633 ns/op 47.045 ns/op 1.74
intersect bitArray bitLen 128 30.047 ns/op 28.425 ns/op 1.06
intersect array and set length 128 1.0033 us/op 659.35 ns/op 1.52
bitArray.getTrueBitIndexes() bitLen 128 1.5100 us/op 1.1740 us/op 1.29
bitArray.getTrueBitIndexes() bitLen 248 2.1760 us/op 1.9400 us/op 1.12
bitArray.getTrueBitIndexes() bitLen 512 4.2090 us/op 3.8000 us/op 1.11
Buffer.concat 32 items 898.00 ns/op 852.00 ns/op 1.05
Uint8Array.set 32 items 1.9590 us/op 1.5990 us/op 1.23
Set add up to 64 items then delete first 1.7925 us/op 1.6816 us/op 1.07
OrderedSet add up to 64 items then delete first 2.7200 us/op 2.5855 us/op 1.05
Set add up to 64 items then delete last 2.0428 us/op 1.9320 us/op 1.06
OrderedSet add up to 64 items then delete last 3.1178 us/op 3.0424 us/op 1.02
Set add up to 64 items then delete middle 2.1060 us/op 1.9885 us/op 1.06
OrderedSet add up to 64 items then delete middle 4.4520 us/op 4.1607 us/op 1.07
Set add up to 128 items then delete first 4.0500 us/op 3.9418 us/op 1.03
OrderedSet add up to 128 items then delete first 6.2216 us/op 6.1345 us/op 1.01
Set add up to 128 items then delete last 4.1053 us/op 3.7967 us/op 1.08
OrderedSet add up to 128 items then delete last 5.8577 us/op 5.6775 us/op 1.03
Set add up to 128 items then delete middle 3.8919 us/op 3.7787 us/op 1.03
OrderedSet add up to 128 items then delete middle 11.075 us/op 10.624 us/op 1.04
Set add up to 256 items then delete first 7.7665 us/op 7.6656 us/op 1.01
OrderedSet add up to 256 items then delete first 12.574 us/op 12.096 us/op 1.04
Set add up to 256 items then delete last 7.6349 us/op 7.3957 us/op 1.03
OrderedSet add up to 256 items then delete last 11.809 us/op 10.655 us/op 1.11
Set add up to 256 items then delete middle 7.5987 us/op 6.8463 us/op 1.11
OrderedSet add up to 256 items then delete middle 36.353 us/op 28.847 us/op 1.26
transfer serialized Status (84 B) 1.6090 us/op 1.1960 us/op 1.35
copy serialized Status (84 B) 1.3210 us/op 981.00 ns/op 1.35
transfer serialized SignedVoluntaryExit (112 B) 1.8140 us/op 1.2770 us/op 1.42
copy serialized SignedVoluntaryExit (112 B) 1.4680 us/op 1.0090 us/op 1.45
transfer serialized ProposerSlashing (416 B) 2.9910 us/op 2.1860 us/op 1.37
copy serialized ProposerSlashing (416 B) 2.9880 us/op 1.6760 us/op 1.78
transfer serialized Attestation (485 B) 2.7880 us/op 1.9410 us/op 1.44
copy serialized Attestation (485 B) 2.6450 us/op 2.3940 us/op 1.10
transfer serialized AttesterSlashing (33232 B) 1.9760 us/op 2.4170 us/op 0.82
copy serialized AttesterSlashing (33232 B) 4.8960 us/op 5.8110 us/op 0.84
transfer serialized Small SignedBeaconBlock (128000 B) 2.6140 us/op 2.8580 us/op 0.91
copy serialized Small SignedBeaconBlock (128000 B) 13.889 us/op 13.455 us/op 1.03
transfer serialized Avg SignedBeaconBlock (200000 B) 3.4000 us/op 2.8920 us/op 1.18
copy serialized Avg SignedBeaconBlock (200000 B) 14.368 us/op 18.497 us/op 0.78
transfer serialized BlobsSidecar (524380 B) 2.6340 us/op 2.8270 us/op 0.93
copy serialized BlobsSidecar (524380 B) 75.493 us/op 68.355 us/op 1.10
transfer serialized Big SignedBeaconBlock (1000000 B) 3.1800 us/op 2.5930 us/op 1.23
copy serialized Big SignedBeaconBlock (1000000 B) 152.91 us/op 129.35 us/op 1.18
pass gossip attestations to forkchoice per slot 2.9456 ms/op 2.6716 ms/op 1.10
forkChoice updateHead vc 100000 bc 64 eq 0 466.07 us/op 473.09 us/op 0.99
forkChoice updateHead vc 600000 bc 64 eq 0 4.3370 ms/op 2.6822 ms/op 1.62
forkChoice updateHead vc 1000000 bc 64 eq 0 4.9962 ms/op 4.4202 ms/op 1.13
forkChoice updateHead vc 600000 bc 320 eq 0 2.7022 ms/op 2.6428 ms/op 1.02
forkChoice updateHead vc 600000 bc 1200 eq 0 3.0697 ms/op 2.6305 ms/op 1.17
forkChoice updateHead vc 600000 bc 7200 eq 0 3.9027 ms/op 3.5168 ms/op 1.11
forkChoice updateHead vc 600000 bc 64 eq 1000 9.9513 ms/op 9.6303 ms/op 1.03
forkChoice updateHead vc 600000 bc 64 eq 10000 10.011 ms/op 9.5289 ms/op 1.05
forkChoice updateHead vc 600000 bc 64 eq 300000 29.157 ms/op 11.587 ms/op 2.52
computeDeltas 500000 validators 300 proto nodes 3.1638 ms/op 3.0613 ms/op 1.03
computeDeltas 500000 validators 1200 proto nodes 3.2236 ms/op 2.9401 ms/op 1.10
computeDeltas 500000 validators 7200 proto nodes 3.2226 ms/op 2.9275 ms/op 1.10
computeDeltas 750000 validators 300 proto nodes 4.6425 ms/op 4.5525 ms/op 1.02
computeDeltas 750000 validators 1200 proto nodes 4.6315 ms/op 4.5580 ms/op 1.02
computeDeltas 750000 validators 7200 proto nodes 4.5807 ms/op 4.6973 ms/op 0.98
computeDeltas 1400000 validators 300 proto nodes 9.0256 ms/op 9.0206 ms/op 1.00
computeDeltas 1400000 validators 1200 proto nodes 8.8243 ms/op 8.8171 ms/op 1.00
computeDeltas 1400000 validators 7200 proto nodes 8.8100 ms/op 8.9350 ms/op 0.99
computeDeltas 2100000 validators 300 proto nodes 12.677 ms/op 13.533 ms/op 0.94
computeDeltas 2100000 validators 1200 proto nodes 13.002 ms/op 15.264 ms/op 0.85
computeDeltas 2100000 validators 7200 proto nodes 13.473 ms/op 14.440 ms/op 0.93
altair processAttestation - 250000 vs - 7PWei normalcase 1.8968 ms/op 3.2096 ms/op 0.59
altair processAttestation - 250000 vs - 7PWei worstcase 2.6041 ms/op 4.5147 ms/op 0.58
altair processAttestation - setStatus - 1/6 committees join 107.10 us/op 107.38 us/op 1.00
altair processAttestation - setStatus - 1/3 committees join 206.74 us/op 219.76 us/op 0.94
altair processAttestation - setStatus - 1/2 committees join 293.00 us/op 280.90 us/op 1.04
altair processAttestation - setStatus - 2/3 committees join 374.67 us/op 375.62 us/op 1.00
altair processAttestation - setStatus - 4/5 committees join 493.19 us/op 493.62 us/op 1.00
altair processAttestation - setStatus - 100% committees join 592.75 us/op 586.54 us/op 1.01
altair processBlock - 250000 vs - 7PWei normalcase 7.6586 ms/op 6.8022 ms/op 1.13
altair processBlock - 250000 vs - 7PWei normalcase hashState 29.931 ms/op 26.761 ms/op 1.12
altair processBlock - 250000 vs - 7PWei worstcase 31.922 ms/op 33.464 ms/op 0.95
altair processBlock - 250000 vs - 7PWei worstcase hashState 89.506 ms/op 79.328 ms/op 1.13
phase0 processBlock - 250000 vs - 7PWei normalcase 2.2460 ms/op 2.0846 ms/op 1.08
phase0 processBlock - 250000 vs - 7PWei worstcase 26.397 ms/op 24.621 ms/op 1.07
altair processEth1Data - 250000 vs - 7PWei normalcase 313.58 us/op 270.03 us/op 1.16
getExpectedWithdrawals 250000 eb:1,eth1:1,we:0,wn:0,smpl:15 6.7630 us/op 9.3380 us/op 0.72
getExpectedWithdrawals 250000 eb:0.95,eth1:0.1,we:0.05,wn:0,smpl:219 66.002 us/op 77.250 us/op 0.85
getExpectedWithdrawals 250000 eb:0.95,eth1:0.3,we:0.05,wn:0,smpl:42 5.7030 us/op 19.763 us/op 0.29
getExpectedWithdrawals 250000 eb:0.95,eth1:0.7,we:0.05,wn:0,smpl:18 7.4610 us/op 7.9360 us/op 0.94
getExpectedWithdrawals 250000 eb:0.1,eth1:0.1,we:0,wn:0,smpl:1020 135.21 us/op 69.301 us/op 1.95
getExpectedWithdrawals 250000 eb:0.03,eth1:0.03,we:0,wn:0,smpl:11777 1.5248 ms/op 1.2814 ms/op 1.19
getExpectedWithdrawals 250000 eb:0.01,eth1:0.01,we:0,wn:0,smpl:16384 1.0779 ms/op 1.1087 ms/op 0.97
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,smpl:16384 1.3934 ms/op 863.73 us/op 1.61
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,nocache,smpl:16384 2.2843 ms/op 2.5967 ms/op 0.88
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,smpl:16384 1.5071 ms/op 1.5475 ms/op 0.97
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,nocache,smpl:16384 3.5775 ms/op 3.5370 ms/op 1.01
Tree 40 250000 create 242.51 ms/op 284.81 ms/op 0.85
Tree 40 250000 get(125000) 106.36 ns/op 113.16 ns/op 0.94
Tree 40 250000 set(125000) 736.48 ns/op 724.47 ns/op 1.02
Tree 40 250000 toArray() 9.4496 ms/op 9.7873 ms/op 0.97
Tree 40 250000 iterate all - toArray() + loop 9.5874 ms/op 9.5818 ms/op 1.00
Tree 40 250000 iterate all - get(i) 39.540 ms/op 41.302 ms/op 0.96
MutableVector 250000 create 9.8298 ms/op 11.492 ms/op 0.86
MutableVector 250000 get(125000) 5.4620 ns/op 5.8880 ns/op 0.93
MutableVector 250000 set(125000) 201.80 ns/op 214.38 ns/op 0.94
MutableVector 250000 toArray() 2.6214 ms/op 2.8956 ms/op 0.91
MutableVector 250000 iterate all - toArray() + loop 2.7167 ms/op 3.0666 ms/op 0.89
MutableVector 250000 iterate all - get(i) 1.3474 ms/op 1.3177 ms/op 1.02
Array 250000 create 2.1093 ms/op 2.0633 ms/op 1.02
Array 250000 clone - spread 1.2218 ms/op 1.1217 ms/op 1.09
Array 250000 get(125000) 1.0770 ns/op 1.0290 ns/op 1.05
Array 250000 set(125000) 1.2880 ns/op 1.2400 ns/op 1.04
Array 250000 iterate all - loop 156.23 us/op 151.62 us/op 1.03
effectiveBalanceIncrements clone Uint8Array 300000 15.251 us/op 14.791 us/op 1.03
effectiveBalanceIncrements clone MutableVector 300000 446.00 ns/op 423.00 ns/op 1.05
effectiveBalanceIncrements rw all Uint8Array 300000 186.93 us/op 182.29 us/op 1.03
effectiveBalanceIncrements rw all MutableVector 300000 70.820 ms/op 64.885 ms/op 1.09
phase0 afterProcessEpoch - 250000 vs - 7PWei 76.064 ms/op 74.955 ms/op 1.01
phase0 beforeProcessEpoch - 250000 vs - 7PWei 44.132 ms/op 49.892 ms/op 0.88
altair processEpoch - mainnet_e81889 402.86 ms/op 361.53 ms/op 1.11
mainnet_e81889 - altair beforeProcessEpoch 69.877 ms/op 67.096 ms/op 1.04
mainnet_e81889 - altair processJustificationAndFinalization 13.564 us/op 12.058 us/op 1.12
mainnet_e81889 - altair processInactivityUpdates 4.2478 ms/op 4.4798 ms/op 0.95
mainnet_e81889 - altair processRewardsAndPenalties 56.095 ms/op 64.468 ms/op 0.87
mainnet_e81889 - altair processRegistryUpdates 3.2600 us/op 1.8000 us/op 1.81
mainnet_e81889 - altair processSlashings 612.00 ns/op 564.00 ns/op 1.09
mainnet_e81889 - altair processEth1DataReset 695.00 ns/op 584.00 ns/op 1.19
mainnet_e81889 - altair processEffectiveBalanceUpdates 990.92 us/op 1.7838 ms/op 0.56
mainnet_e81889 - altair processSlashingsReset 3.1710 us/op 2.4020 us/op 1.32
mainnet_e81889 - altair processRandaoMixesReset 3.1870 us/op 2.8470 us/op 1.12
mainnet_e81889 - altair processHistoricalRootsUpdate 780.00 ns/op 714.00 ns/op 1.09
mainnet_e81889 - altair processParticipationFlagUpdates 3.0040 us/op 2.7310 us/op 1.10
mainnet_e81889 - altair processSyncCommitteeUpdates 653.00 ns/op 786.00 ns/op 0.83
mainnet_e81889 - altair afterProcessEpoch 85.111 ms/op 80.798 ms/op 1.05
capella processEpoch - mainnet_e217614 1.6396 s/op 1.7413 s/op 0.94
mainnet_e217614 - capella beforeProcessEpoch 403.24 ms/op 419.64 ms/op 0.96
mainnet_e217614 - capella processJustificationAndFinalization 12.606 us/op 12.596 us/op 1.00
mainnet_e217614 - capella processInactivityUpdates 15.007 ms/op 14.564 ms/op 1.03
mainnet_e217614 - capella processRewardsAndPenalties 457.91 ms/op 468.25 ms/op 0.98
mainnet_e217614 - capella processRegistryUpdates 15.192 us/op 17.700 us/op 0.86
mainnet_e217614 - capella processSlashings 569.00 ns/op 596.00 ns/op 0.95
mainnet_e217614 - capella processEth1DataReset 497.00 ns/op 536.00 ns/op 0.93
mainnet_e217614 - capella processEffectiveBalanceUpdates 4.4295 ms/op 3.1618 ms/op 1.40
mainnet_e217614 - capella processSlashingsReset 1.3810 us/op 1.4680 us/op 0.94
mainnet_e217614 - capella processRandaoMixesReset 1.6590 us/op 1.8550 us/op 0.89
mainnet_e217614 - capella processHistoricalRootsUpdate 361.00 ns/op 586.00 ns/op 0.62
mainnet_e217614 - capella processParticipationFlagUpdates 2.3830 us/op 1.1040 us/op 2.16
mainnet_e217614 - capella afterProcessEpoch 248.34 ms/op 193.80 ms/op 1.28
phase0 processEpoch - mainnet_e58758 396.76 ms/op 418.01 ms/op 0.95
mainnet_e58758 - phase0 beforeProcessEpoch 122.75 ms/op 103.09 ms/op 1.19
mainnet_e58758 - phase0 processJustificationAndFinalization 12.707 us/op 9.9170 us/op 1.28
mainnet_e58758 - phase0 processRewardsAndPenalties 59.377 ms/op 62.233 ms/op 0.95
mainnet_e58758 - phase0 processRegistryUpdates 8.0550 us/op 4.7180 us/op 1.71
mainnet_e58758 - phase0 processSlashings 630.00 ns/op 399.00 ns/op 1.58
mainnet_e58758 - phase0 processEth1DataReset 546.00 ns/op 535.00 ns/op 1.02
mainnet_e58758 - phase0 processEffectiveBalanceUpdates 811.13 us/op 1.4127 ms/op 0.57
mainnet_e58758 - phase0 processSlashingsReset 1.8880 us/op 2.7260 us/op 0.69
mainnet_e58758 - phase0 processRandaoMixesReset 2.5850 us/op 2.7070 us/op 0.95
mainnet_e58758 - phase0 processHistoricalRootsUpdate 526.00 ns/op 669.00 ns/op 0.79
mainnet_e58758 - phase0 processParticipationRecordUpdates 2.3940 us/op 2.9590 us/op 0.81
mainnet_e58758 - phase0 afterProcessEpoch 73.993 ms/op 64.603 ms/op 1.15
phase0 processEffectiveBalanceUpdates - 250000 normalcase 1.0123 ms/op 996.45 us/op 1.02
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 1.1255 ms/op 1.8422 ms/op 0.61
altair processInactivityUpdates - 250000 normalcase 24.593 ms/op 25.623 ms/op 0.96
altair processInactivityUpdates - 250000 worstcase 23.180 ms/op 24.854 ms/op 0.93
phase0 processRegistryUpdates - 250000 normalcase 6.4510 us/op 4.0110 us/op 1.61
phase0 processRegistryUpdates - 250000 badcase_full_deposits 377.25 us/op 410.90 us/op 0.92
phase0 processRegistryUpdates - 250000 worstcase 0.5 111.07 ms/op 133.85 ms/op 0.83
altair processRewardsAndPenalties - 250000 normalcase 71.014 ms/op 73.292 ms/op 0.97
altair processRewardsAndPenalties - 250000 worstcase 69.221 ms/op 67.805 ms/op 1.02
phase0 getAttestationDeltas - 250000 normalcase 5.0718 ms/op 4.9723 ms/op 1.02
phase0 getAttestationDeltas - 250000 worstcase 5.6170 ms/op 5.7106 ms/op 0.98
phase0 processSlashings - 250000 worstcase 81.908 us/op 80.944 us/op 1.01
altair processSyncCommitteeUpdates - 250000 107.00 ms/op 107.37 ms/op 1.00
BeaconState.hashTreeRoot - No change 333.00 ns/op 332.00 ns/op 1.00
BeaconState.hashTreeRoot - 1 full validator 147.47 us/op 128.68 us/op 1.15
BeaconState.hashTreeRoot - 32 full validator 1.6063 ms/op 1.3793 ms/op 1.16
BeaconState.hashTreeRoot - 512 full validator 17.094 ms/op 14.942 ms/op 1.14
BeaconState.hashTreeRoot - 1 validator.effectiveBalance 171.57 us/op 148.64 us/op 1.15
BeaconState.hashTreeRoot - 32 validator.effectiveBalance 2.4651 ms/op 1.7948 ms/op 1.37
BeaconState.hashTreeRoot - 512 validator.effectiveBalance 31.947 ms/op 26.786 ms/op 1.19
BeaconState.hashTreeRoot - 1 balances 139.69 us/op 139.37 us/op 1.00
BeaconState.hashTreeRoot - 32 balances 1.4103 ms/op 1.3310 ms/op 1.06
BeaconState.hashTreeRoot - 512 balances 10.715 ms/op 11.012 ms/op 0.97
BeaconState.hashTreeRoot - 250000 balances 205.13 ms/op 194.16 ms/op 1.06
aggregationBits - 2048 els - zipIndexesInBitList 20.114 us/op 20.985 us/op 0.96
byteArrayEquals 32 61.039 ns/op 59.948 ns/op 1.02
Buffer.compare 32 34.517 ns/op 34.015 ns/op 1.01
byteArrayEquals 1024 1.6373 us/op 1.5979 us/op 1.02
Buffer.compare 1024 40.453 ns/op 39.260 ns/op 1.03
byteArrayEquals 16384 26.124 us/op 25.379 us/op 1.03
Buffer.compare 16384 217.06 ns/op 197.46 ns/op 1.10
byteArrayEquals 123687377 206.35 ms/op 193.10 ms/op 1.07
Buffer.compare 123687377 3.6418 ms/op 5.3254 ms/op 0.68
byteArrayEquals 32 - diff last byte 62.429 ns/op 60.303 ns/op 1.04
Buffer.compare 32 - diff last byte 38.754 ns/op 35.797 ns/op 1.08
byteArrayEquals 1024 - diff last byte 1.7870 us/op 1.6088 us/op 1.11
Buffer.compare 1024 - diff last byte 48.600 ns/op 41.593 ns/op 1.17
byteArrayEquals 16384 - diff last byte 27.888 us/op 26.104 us/op 1.07
Buffer.compare 16384 - diff last byte 224.36 ns/op 211.79 ns/op 1.06
byteArrayEquals 123687377 - diff last byte 207.86 ms/op 203.57 ms/op 1.02
Buffer.compare 123687377 - diff last byte 3.8895 ms/op 5.5953 ms/op 0.70
byteArrayEquals 32 - random bytes 4.5490 ns/op 4.4050 ns/op 1.03
Buffer.compare 32 - random bytes 39.457 ns/op 37.370 ns/op 1.06
byteArrayEquals 1024 - random bytes 4.4430 ns/op 4.4010 ns/op 1.01
Buffer.compare 1024 - random bytes 37.476 ns/op 35.905 ns/op 1.04
byteArrayEquals 16384 - random bytes 4.4520 ns/op 4.3100 ns/op 1.03
Buffer.compare 16384 - random bytes 38.134 ns/op 34.916 ns/op 1.09
byteArrayEquals 123687377 - random bytes 7.7800 ns/op 7.5300 ns/op 1.03
Buffer.compare 123687377 - random bytes 44.230 ns/op 37.770 ns/op 1.17
regular array get 100000 times 41.104 us/op 39.073 us/op 1.05
wrappedArray get 100000 times 41.078 us/op 38.946 us/op 1.05
arrayWithProxy get 100000 times 9.2521 ms/op 9.8052 ms/op 0.94
ssz.Root.equals 50.402 ns/op 52.201 ns/op 0.97
byteArrayEquals 49.486 ns/op 51.055 ns/op 0.97
Buffer.compare 8.5740 ns/op 9.7380 ns/op 0.88
shuffle list - 16384 els 5.1809 ms/op 5.4876 ms/op 0.94
shuffle list - 250000 els 76.151 ms/op 80.973 ms/op 0.94
processSlot - 1 slots 14.730 us/op 14.776 us/op 1.00
processSlot - 32 slots 3.6810 ms/op 3.9394 ms/op 0.93
getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei 58.511 ms/op 55.600 ms/op 1.05
getCommitteeAssignments - req 1 vs - 250000 vc 2.4263 ms/op 2.4031 ms/op 1.01
getCommitteeAssignments - req 100 vs - 250000 vc 3.5895 ms/op 3.5299 ms/op 1.02
getCommitteeAssignments - req 1000 vs - 250000 vc 3.8420 ms/op 3.7800 ms/op 1.02
findModifiedValidators - 10000 modified validators 277.20 ms/op 294.45 ms/op 0.94
findModifiedValidators - 1000 modified validators 151.67 ms/op 152.60 ms/op 0.99
findModifiedValidators - 100 modified validators 138.55 ms/op 144.43 ms/op 0.96
findModifiedValidators - 10 modified validators 137.41 ms/op 153.85 ms/op 0.89
findModifiedValidators - 1 modified validators 139.78 ms/op 138.96 ms/op 1.01
findModifiedValidators - no difference 158.66 ms/op 158.25 ms/op 1.00
compare ViewDUs 3.8375 s/op 3.8677 s/op 0.99
compare each validator Uint8Array 1.6114 s/op 1.4832 s/op 1.09
compare ViewDU to Uint8Array 759.59 ms/op 768.41 ms/op 0.99
migrate state 1000000 validators, 24 modified, 0 new 725.88 ms/op 712.14 ms/op 1.02
migrate state 1000000 validators, 1700 modified, 1000 new 899.07 ms/op 842.31 ms/op 1.07
migrate state 1000000 validators, 3400 modified, 2000 new 1.1563 s/op 1.1541 s/op 1.00
migrate state 1500000 validators, 24 modified, 0 new 660.24 ms/op 724.33 ms/op 0.91
migrate state 1500000 validators, 1700 modified, 1000 new 946.38 ms/op 992.67 ms/op 0.95
migrate state 1500000 validators, 3400 modified, 2000 new 979.48 ms/op 1.2122 s/op 0.81
RootCache.getBlockRootAtSlot - 250000 vs - 7PWei 4.6500 ns/op 5.6700 ns/op 0.82
state getBlockRootAtSlot - 250000 vs - 7PWei 430.10 ns/op 458.58 ns/op 0.94
computeProposers - vc 250000 6.2336 ms/op 6.7811 ms/op 0.92
computeEpochShuffling - vc 250000 84.242 ms/op 89.517 ms/op 0.94
getNextSyncCommittee - vc 250000 105.46 ms/op 141.83 ms/op 0.74
computeSigningRoot for AttestationData 22.694 us/op 25.488 us/op 0.89
hash AttestationData serialized data then Buffer.toString(base64) 1.2631 us/op 1.3356 us/op 0.95
toHexString serialized data 743.68 ns/op 1.3343 us/op 0.56
Buffer.toString(base64) 156.92 ns/op 211.13 ns/op 0.74

by benchmarkbot/action

Copy link

codecov bot commented Mar 28, 2024

Codecov Report

Merging #6607 (dd919b6) into unstable (20bc193) will increase coverage by 0.00%.
Report is 3 commits behind head on unstable.
The diff coverage is 0.00%.

Additional details and impacted files
@@            Coverage Diff            @@
##           unstable    #6607   +/-   ##
=========================================
  Coverage     61.61%   61.61%           
=========================================
  Files           556      556           
  Lines         58561    58567    +6     
  Branches       1859     1859           
=========================================
+ Hits          36080    36084    +4     
- Misses        22440    22442    +2     
  Partials         41       41           

@twoeths twoeths merged commit ae9a32e into unstable Mar 28, 2024
17 of 20 checks passed
@twoeths twoeths deleted the tuyen/fix_seen_ttl branch March 28, 2024 11:24
@wemeetagain
Copy link
Member

🎉 This PR is included in v1.18.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.

More gc time on main thread since Mar 26
4 participants