Handle invalid persisted ENR - #4481
Merged
Merged
Conversation
Contributor
|
| Benchmark suite | Current: 9d9a28f | Previous: d78131b | Ratio |
|---|---|---|---|
| bytes32 toHexString | 22.423 us/op | 978.00 ns/op | 22.93 |
Full benchmark results
| Benchmark suite | Current: 9d9a28f | Previous: d78131b | Ratio |
|---|---|---|---|
| getPubkeys - index2pubkey - req 1000 vs - 250000 vc | 2.4164 ms/op | 2.3694 ms/op | 1.02 |
| getPubkeys - validatorsArr - req 1000 vs - 250000 vc | 76.049 us/op | 67.100 us/op | 1.13 |
| BLS verify - blst-native | 2.0148 ms/op | 2.1659 ms/op | 0.93 |
| BLS verifyMultipleSignatures 3 - blst-native | 4.0543 ms/op | 4.4882 ms/op | 0.90 |
| BLS verifyMultipleSignatures 8 - blst-native | 8.6997 ms/op | 9.6838 ms/op | 0.90 |
| BLS verifyMultipleSignatures 32 - blst-native | 32.505 ms/op | 35.168 ms/op | 0.92 |
| BLS aggregatePubkeys 32 - blst-native | 46.091 us/op | 47.125 us/op | 0.98 |
| BLS aggregatePubkeys 128 - blst-native | 167.98 us/op | 182.43 us/op | 0.92 |
| getAttestationsForBlock | 202.96 ms/op | 159.00 ms/op | 1.28 |
| isKnown best case - 1 super set check | 492.00 ns/op | 475.00 ns/op | 1.04 |
| isKnown normal case - 2 super set checks | 454.00 ns/op | 463.00 ns/op | 0.98 |
| isKnown worse case - 16 super set checks | 493.00 ns/op | 464.00 ns/op | 1.06 |
| CheckpointStateCache - add get delete | 10.551 us/op | 9.1830 us/op | 1.15 |
| validate gossip signedAggregateAndProof - struct | 4.8666 ms/op | 5.0482 ms/op | 0.96 |
| validate gossip attestation - struct | 2.3922 ms/op | 2.3658 ms/op | 1.01 |
| altair verifyImport mainnet_s3766816:31 | 5.2839 s/op | 4.7816 s/op | 1.11 |
| pickEth1Vote - no votes | 2.8271 ms/op | 2.1374 ms/op | 1.32 |
| pickEth1Vote - max votes | 30.042 ms/op | 22.293 ms/op | 1.35 |
| pickEth1Vote - Eth1Data hashTreeRoot value x2048 | 15.589 ms/op | 13.220 ms/op | 1.18 |
| pickEth1Vote - Eth1Data hashTreeRoot tree x2048 | 29.185 ms/op | 23.775 ms/op | 1.23 |
| pickEth1Vote - Eth1Data fastSerialize value x2048 | 2.0581 ms/op | 1.5061 ms/op | 1.37 |
| pickEth1Vote - Eth1Data fastSerialize tree x2048 | 19.221 ms/op | 12.539 ms/op | 1.53 |
| bytes32 toHexString | 22.423 us/op | 978.00 ns/op | 22.93 |
| bytes32 Buffer.toString(hex) | 1.1700 us/op | 762.00 ns/op | 1.54 |
| bytes32 Buffer.toString(hex) from Uint8Array | 1.7100 us/op | 1.0160 us/op | 1.68 |
| bytes32 Buffer.toString(hex) + 0x | 1.1850 us/op | 783.00 ns/op | 1.51 |
| Object access 1 prop | 0.80000 ns/op | 0.39000 ns/op | 2.05 |
| Map access 1 prop | 0.40900 ns/op | 0.29900 ns/op | 1.37 |
| Object get x1000 | 17.398 ns/op | 10.948 ns/op | 1.59 |
| Map get x1000 | 0.97700 ns/op | 1.1520 ns/op | 0.85 |
| Object set x1000 | 115.17 ns/op | 69.822 ns/op | 1.65 |
| Map set x1000 | 87.091 ns/op | 46.877 ns/op | 1.86 |
| Return object 10000 times | 0.45130 ns/op | 0.45090 ns/op | 1.00 |
| Throw Error 10000 times | 8.2080 us/op | 6.1000 us/op | 1.35 |
| enrSubnets - fastDeserialize 64 bits | 3.5620 us/op | 2.8180 us/op | 1.26 |
| enrSubnets - ssz BitVector 64 bits | 986.00 ns/op | 917.00 ns/op | 1.08 |
| enrSubnets - fastDeserialize 4 bits | 508.00 ns/op | 532.00 ns/op | 0.95 |
| enrSubnets - ssz BitVector 4 bits | 995.00 ns/op | 927.00 ns/op | 1.07 |
| prioritizePeers score -10:0 att 32-0.1 sync 2-0 | 118.44 us/op | 83.318 us/op | 1.42 |
| prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 | 155.70 us/op | 127.02 us/op | 1.23 |
| prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 | 282.22 us/op | 207.26 us/op | 1.36 |
| prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 | 602.08 us/op | 337.11 us/op | 1.79 |
| prioritizePeers score 0:0 att 64-1 sync 4-1 | 548.54 us/op | 405.70 us/op | 1.35 |
| RateTracker 1000000 limit, 1 obj count per request | 204.09 ns/op | 184.79 ns/op | 1.10 |
| RateTracker 1000000 limit, 2 obj count per request | 147.17 ns/op | 136.48 ns/op | 1.08 |
| RateTracker 1000000 limit, 4 obj count per request | 131.17 ns/op | 113.29 ns/op | 1.16 |
| RateTracker 1000000 limit, 8 obj count per request | 115.12 ns/op | 102.09 ns/op | 1.13 |
| RateTracker with prune | 5.1280 us/op | 4.2050 us/op | 1.22 |
| array of 16000 items push then shift | 5.2811 us/op | 51.603 us/op | 0.10 |
| LinkedList of 16000 items push then shift | 30.551 ns/op | 16.252 ns/op | 1.88 |
| array of 16000 items push then pop | 256.32 ns/op | 202.14 ns/op | 1.27 |
| LinkedList of 16000 items push then pop | 27.914 ns/op | 14.631 ns/op | 1.91 |
| array of 24000 items push then shift | 9.3649 us/op | 77.366 us/op | 0.12 |
| LinkedList of 24000 items push then shift | 29.273 ns/op | 21.806 ns/op | 1.34 |
| array of 24000 items push then pop | 264.47 ns/op | 199.13 ns/op | 1.33 |
| LinkedList of 24000 items push then pop | 25.160 ns/op | 15.835 ns/op | 1.59 |
| intersect bitArray bitLen 8 | 14.187 ns/op | 10.725 ns/op | 1.32 |
| intersect array and set length 8 | 196.28 ns/op | 129.34 ns/op | 1.52 |
| intersect bitArray bitLen 128 | 77.269 ns/op | 57.434 ns/op | 1.35 |
| intersect array and set length 128 | 2.4877 us/op | 1.8018 us/op | 1.38 |
| Buffer.concat 32 items | 2.4090 ns/op | 2.0260 ns/op | 1.19 |
| pass gossip attestations to forkchoice per slot | 7.6100 ms/op | 5.1920 ms/op | 1.47 |
| computeDeltas | 3.7871 ms/op | 3.5354 ms/op | 1.07 |
| computeProposerBoostScoreFromBalances | 897.81 us/op | 805.88 us/op | 1.11 |
| altair processAttestation - 250000 vs - 7PWei normalcase | 4.9687 ms/op | 3.9291 ms/op | 1.26 |
| altair processAttestation - 250000 vs - 7PWei worstcase | 7.4291 ms/op | 5.7800 ms/op | 1.29 |
| altair processAttestation - setStatus - 1/6 committees join | 255.47 us/op | 179.70 us/op | 1.42 |
| altair processAttestation - setStatus - 1/3 committees join | 481.29 us/op | 345.13 us/op | 1.39 |
| altair processAttestation - setStatus - 1/2 committees join | 675.30 us/op | 494.05 us/op | 1.37 |
| altair processAttestation - setStatus - 2/3 committees join | 939.96 us/op | 648.20 us/op | 1.45 |
| altair processAttestation - setStatus - 4/5 committees join | 1.3326 ms/op | 910.10 us/op | 1.46 |
| altair processAttestation - setStatus - 100% committees join | 1.5484 ms/op | 1.1054 ms/op | 1.40 |
| altair processBlock - 250000 vs - 7PWei normalcase | 35.774 ms/op | 27.990 ms/op | 1.28 |
| altair processBlock - 250000 vs - 7PWei normalcase hashState | 43.966 ms/op | 42.240 ms/op | 1.04 |
| altair processBlock - 250000 vs - 7PWei worstcase | 93.957 ms/op | 92.516 ms/op | 1.02 |
| altair processBlock - 250000 vs - 7PWei worstcase hashState | 139.76 ms/op | 113.29 ms/op | 1.23 |
| phase0 processBlock - 250000 vs - 7PWei normalcase | 4.2994 ms/op | 4.0144 ms/op | 1.07 |
| phase0 processBlock - 250000 vs - 7PWei worstcase | 55.738 ms/op | 52.808 ms/op | 1.06 |
| altair processEth1Data - 250000 vs - 7PWei normalcase | 1.4042 ms/op | 1.0198 ms/op | 1.38 |
| Tree 40 250000 create | 928.57 ms/op | 755.99 ms/op | 1.23 |
| Tree 40 250000 get(125000) | 340.48 ns/op | 237.04 ns/op | 1.44 |
| Tree 40 250000 set(125000) | 2.9158 us/op | 2.1599 us/op | 1.35 |
| Tree 40 250000 toArray() | 42.137 ms/op | 28.413 ms/op | 1.48 |
| Tree 40 250000 iterate all - toArray() + loop | 39.044 ms/op | 32.238 ms/op | 1.21 |
| Tree 40 250000 iterate all - get(i) | 129.51 ms/op | 111.13 ms/op | 1.17 |
| MutableVector 250000 create | 16.348 ms/op | 20.767 ms/op | 0.79 |
| MutableVector 250000 get(125000) | 13.510 ns/op | 11.205 ns/op | 1.21 |
| MutableVector 250000 set(125000) | 736.51 ns/op | 494.04 ns/op | 1.49 |
| MutableVector 250000 toArray() | 7.8985 ms/op | 6.1796 ms/op | 1.28 |
| MutableVector 250000 iterate all - toArray() + loop | 6.7793 ms/op | 6.4553 ms/op | 1.05 |
| MutableVector 250000 iterate all - get(i) | 3.2828 ms/op | 2.7045 ms/op | 1.21 |
| Array 250000 create | 6.6356 ms/op | 6.0323 ms/op | 1.10 |
| Array 250000 clone - spread | 2.8204 ms/op | 2.5360 ms/op | 1.11 |
| Array 250000 get(125000) | 1.1910 ns/op | 1.2120 ns/op | 0.98 |
| Array 250000 set(125000) | 1.1720 ns/op | 1.1850 ns/op | 0.99 |
| Array 250000 iterate all - loop | 136.16 us/op | 157.00 us/op | 0.87 |
| effectiveBalanceIncrements clone Uint8Array 300000 | 71.117 us/op | 96.557 us/op | 0.74 |
| effectiveBalanceIncrements clone MutableVector 300000 | 810.00 ns/op | 638.00 ns/op | 1.27 |
| effectiveBalanceIncrements rw all Uint8Array 300000 | 289.10 us/op | 248.50 us/op | 1.16 |
| effectiveBalanceIncrements rw all MutableVector 300000 | 202.62 ms/op | 141.03 ms/op | 1.44 |
| phase0 afterProcessEpoch - 250000 vs - 7PWei | 184.89 ms/op | 190.53 ms/op | 0.97 |
| phase0 beforeProcessEpoch - 250000 vs - 7PWei | 76.679 ms/op | 119.02 ms/op | 0.64 |
| altair processEpoch - mainnet_e81889 | 634.60 ms/op | 650.70 ms/op | 0.98 |
| mainnet_e81889 - altair beforeProcessEpoch | 153.95 ms/op | 164.52 ms/op | 0.94 |
| mainnet_e81889 - altair processJustificationAndFinalization | 76.256 us/op | 15.962 us/op | 4.78 |
| mainnet_e81889 - altair processInactivityUpdates | 12.568 ms/op | 8.7953 ms/op | 1.43 |
| mainnet_e81889 - altair processRewardsAndPenalties | 103.83 ms/op | 159.23 ms/op | 0.65 |
| mainnet_e81889 - altair processRegistryUpdates | 13.966 us/op | 2.7160 us/op | 5.14 |
| mainnet_e81889 - altair processSlashings | 4.0900 us/op | 627.00 ns/op | 6.52 |
| mainnet_e81889 - altair processEth1DataReset | 4.6090 us/op | 640.00 ns/op | 7.20 |
| mainnet_e81889 - altair processEffectiveBalanceUpdates | 2.3336 ms/op | 2.0506 ms/op | 1.14 |
| mainnet_e81889 - altair processSlashingsReset | 27.932 us/op | 4.6730 us/op | 5.98 |
| mainnet_e81889 - altair processRandaoMixesReset | 25.967 us/op | 4.3760 us/op | 5.93 |
| mainnet_e81889 - altair processHistoricalRootsUpdate | 4.1130 us/op | 641.00 ns/op | 6.42 |
| mainnet_e81889 - altair processParticipationFlagUpdates | 16.223 us/op | 2.0580 us/op | 7.88 |
| mainnet_e81889 - altair processSyncCommitteeUpdates | 3.6190 us/op | 541.00 ns/op | 6.69 |
| mainnet_e81889 - altair afterProcessEpoch | 200.24 ms/op | 196.78 ms/op | 1.02 |
| phase0 processEpoch - mainnet_e58758 | 599.97 ms/op | 620.78 ms/op | 0.97 |
| mainnet_e58758 - phase0 beforeProcessEpoch | 293.49 ms/op | 238.22 ms/op | 1.23 |
| mainnet_e58758 - phase0 processJustificationAndFinalization | 72.675 us/op | 16.820 us/op | 4.32 |
| mainnet_e58758 - phase0 processRewardsAndPenalties | 87.440 ms/op | 137.27 ms/op | 0.64 |
| mainnet_e58758 - phase0 processRegistryUpdates | 31.518 us/op | 7.5160 us/op | 4.19 |
| mainnet_e58758 - phase0 processSlashings | 3.7240 us/op | 565.00 ns/op | 6.59 |
| mainnet_e58758 - phase0 processEth1DataReset | 3.9340 us/op | 611.00 ns/op | 6.44 |
| mainnet_e58758 - phase0 processEffectiveBalanceUpdates | 2.1807 ms/op | 1.7347 ms/op | 1.26 |
| mainnet_e58758 - phase0 processSlashingsReset | 17.352 us/op | 3.5330 us/op | 4.91 |
| mainnet_e58758 - phase0 processRandaoMixesReset | 26.797 us/op | 4.1640 us/op | 6.44 |
| mainnet_e58758 - phase0 processHistoricalRootsUpdate | 3.9030 us/op | 616.00 ns/op | 6.34 |
| mainnet_e58758 - phase0 processParticipationRecordUpdates | 24.979 us/op | 3.5140 us/op | 7.11 |
| mainnet_e58758 - phase0 afterProcessEpoch | 165.43 ms/op | 162.22 ms/op | 1.02 |
| phase0 processEffectiveBalanceUpdates - 250000 normalcase | 2.2974 ms/op | 1.9395 ms/op | 1.18 |
| phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 | 2.6351 ms/op | 2.3342 ms/op | 1.13 |
| altair processInactivityUpdates - 250000 normalcase | 50.627 ms/op | 59.336 ms/op | 0.85 |
| altair processInactivityUpdates - 250000 worstcase | 49.071 ms/op | 54.513 ms/op | 0.90 |
| phase0 processRegistryUpdates - 250000 normalcase | 28.457 us/op | 6.0940 us/op | 4.67 |
| phase0 processRegistryUpdates - 250000 badcase_full_deposits | 524.42 us/op | 370.97 us/op | 1.41 |
| phase0 processRegistryUpdates - 250000 worstcase 0.5 | 271.82 ms/op | 230.72 ms/op | 1.18 |
| altair processRewardsAndPenalties - 250000 normalcase | 128.34 ms/op | 136.27 ms/op | 0.94 |
| altair processRewardsAndPenalties - 250000 worstcase | 108.03 ms/op | 140.14 ms/op | 0.77 |
| phase0 getAttestationDeltas - 250000 normalcase | 12.843 ms/op | 12.184 ms/op | 1.05 |
| phase0 getAttestationDeltas - 250000 worstcase | 14.884 ms/op | 12.709 ms/op | 1.17 |
| phase0 processSlashings - 250000 worstcase | 6.7261 ms/op | 5.0845 ms/op | 1.32 |
| altair processSyncCommitteeUpdates - 250000 | 335.47 ms/op | 296.21 ms/op | 1.13 |
| BeaconState.hashTreeRoot - No change | 591.00 ns/op | 516.00 ns/op | 1.15 |
| BeaconState.hashTreeRoot - 1 full validator | 84.313 us/op | 70.414 us/op | 1.20 |
| BeaconState.hashTreeRoot - 32 full validator | 844.06 us/op | 820.84 us/op | 1.03 |
| BeaconState.hashTreeRoot - 512 full validator | 9.9521 ms/op | 6.9446 ms/op | 1.43 |
| BeaconState.hashTreeRoot - 1 validator.effectiveBalance | 100.10 us/op | 89.871 us/op | 1.11 |
| BeaconState.hashTreeRoot - 32 validator.effectiveBalance | 1.4674 ms/op | 1.3775 ms/op | 1.07 |
| BeaconState.hashTreeRoot - 512 validator.effectiveBalance | 19.187 ms/op | 16.623 ms/op | 1.15 |
| BeaconState.hashTreeRoot - 1 balances | 79.811 us/op | 70.391 us/op | 1.13 |
| BeaconState.hashTreeRoot - 32 balances | 655.71 us/op | 722.93 us/op | 0.91 |
| BeaconState.hashTreeRoot - 512 balances | 6.5857 ms/op | 7.0720 ms/op | 0.93 |
| BeaconState.hashTreeRoot - 250000 balances | 106.31 ms/op | 103.77 ms/op | 1.02 |
| aggregationBits - 2048 els - zipIndexesInBitList | 34.817 us/op | 27.376 us/op | 1.27 |
| regular array get 100000 times | 53.488 us/op | 68.638 us/op | 0.78 |
| wrappedArray get 100000 times | 54.965 us/op | 62.431 us/op | 0.88 |
| arrayWithProxy get 100000 times | 32.970 ms/op | 29.388 ms/op | 1.12 |
| ssz.Root.equals | 550.00 ns/op | 544.00 ns/op | 1.01 |
| byteArrayEquals | 541.00 ns/op | 457.00 ns/op | 1.18 |
| shuffle list - 16384 els | 11.716 ms/op | 11.359 ms/op | 1.03 |
| shuffle list - 250000 els | 172.19 ms/op | 166.21 ms/op | 1.04 |
| processSlot - 1 slots | 36.772 us/op | 13.292 us/op | 2.77 |
| processSlot - 32 slots | 2.2134 ms/op | 2.0712 ms/op | 1.07 |
| getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei | 435.05 us/op | 367.42 us/op | 1.18 |
| getCommitteeAssignments - req 1 vs - 250000 vc | 5.2914 ms/op | 5.4690 ms/op | 0.97 |
| getCommitteeAssignments - req 100 vs - 250000 vc | 7.4397 ms/op | 8.0248 ms/op | 0.93 |
| getCommitteeAssignments - req 1000 vs - 250000 vc | 8.3098 ms/op | 8.6153 ms/op | 0.96 |
| RootCache.getBlockRootAtSlot - 250000 vs - 7PWei | 9.7500 ns/op | 7.4300 ns/op | 1.31 |
| state getBlockRootAtSlot - 250000 vs - 7PWei | 1.2733 us/op | 1.1372 us/op | 1.12 |
| computeProposers - vc 250000 | 20.357 ms/op | 17.264 ms/op | 1.18 |
| computeEpochShuffling - vc 250000 | 175.79 ms/op | 171.22 ms/op | 1.03 |
| getNextSyncCommittee - vc 250000 | 325.28 ms/op | 288.98 ms/op | 1.13 |
by benchmarkbot/action
wemeetagain
approved these changes
Aug 25, 2022
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Motivation
Description
Wrap parsing ENR with try / catch, create new one if invalid
Closes #4082