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: prevent non-local IP enr warning #5802

Merged
merged 1 commit into from
Jul 25, 2023
Merged

Conversation

wemeetagain
Copy link
Member

Motivation

Description

  • Do not use the listenAddress or listenAddress6 to populate the local ENR's ip/ip6
    • Rather, rely on explicit configuration (enr.ip and enr.ip6) or discv5 pongs to populate the ENR's ip/ip6
    • This restores the behavior to pre feat: add IPv6 support #5758
  • Allow ENR ip/ip6/tcp/tcp6/udp/udp6 values to fall back to prior ENR values (in the case of persistentNetworkIdentity)

@wemeetagain wemeetagain requested a review from a team as a code owner July 25, 2023 15:10
Copy link
Member

@nflaig nflaig left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good, issue is resolved 👍

@github-actions
Copy link
Contributor

Performance Report

✔️ no performance regression detected

Full benchmark results
Benchmark suite Current: c51f608 Previous: ab285d3 Ratio
getPubkeys - index2pubkey - req 1000 vs - 250000 vc 553.33 us/op 554.96 us/op 1.00
getPubkeys - validatorsArr - req 1000 vs - 250000 vc 85.481 us/op 77.318 us/op 1.11
BLS verify - blst-native 1.2683 ms/op 1.2785 ms/op 0.99
BLS verifyMultipleSignatures 3 - blst-native 2.5963 ms/op 2.6108 ms/op 0.99
BLS verifyMultipleSignatures 8 - blst-native 5.5768 ms/op 5.5948 ms/op 1.00
BLS verifyMultipleSignatures 32 - blst-native 20.268 ms/op 20.299 ms/op 1.00
BLS aggregatePubkeys 32 - blst-native 27.004 us/op 26.695 us/op 1.01
BLS aggregatePubkeys 128 - blst-native 106.11 us/op 105.22 us/op 1.01
getAttestationsForBlock 80.531 ms/op 63.058 ms/op 1.28
isKnown best case - 1 super set check 461.00 ns/op 300.00 ns/op 1.54
isKnown normal case - 2 super set checks 456.00 ns/op 284.00 ns/op 1.61
isKnown worse case - 16 super set checks 405.00 ns/op 286.00 ns/op 1.42
CheckpointStateCache - add get delete 5.8590 us/op 5.0450 us/op 1.16
validate api signedAggregateAndProof - struct 2.8891 ms/op 2.8713 ms/op 1.01
validate gossip signedAggregateAndProof - struct 2.9616 ms/op 2.8855 ms/op 1.03
validate api attestation - struct 1.3919 ms/op 1.3745 ms/op 1.01
validate gossip attestation - struct 1.4498 ms/op 1.3882 ms/op 1.04
pickEth1Vote - no votes 1.2977 ms/op 1.2633 ms/op 1.03
pickEth1Vote - max votes 10.462 ms/op 8.2238 ms/op 1.27
pickEth1Vote - Eth1Data hashTreeRoot value x2048 10.046 ms/op 9.2805 ms/op 1.08
pickEth1Vote - Eth1Data hashTreeRoot tree x2048 16.108 ms/op 17.744 ms/op 0.91
pickEth1Vote - Eth1Data fastSerialize value x2048 713.05 us/op 660.68 us/op 1.08
pickEth1Vote - Eth1Data fastSerialize tree x2048 6.3042 ms/op 4.7585 ms/op 1.32
bytes32 toHexString 701.00 ns/op 529.00 ns/op 1.33
bytes32 Buffer.toString(hex) 315.00 ns/op 323.00 ns/op 0.98
bytes32 Buffer.toString(hex) from Uint8Array 552.00 ns/op 508.00 ns/op 1.09
bytes32 Buffer.toString(hex) + 0x 327.00 ns/op 326.00 ns/op 1.00
Object access 1 prop 0.20900 ns/op 0.18800 ns/op 1.11
Map access 1 prop 0.17400 ns/op 0.16200 ns/op 1.07
Object get x1000 7.6100 ns/op 7.6630 ns/op 0.99
Map get x1000 0.74700 ns/op 0.67100 ns/op 1.11
Object set x1000 63.324 ns/op 56.817 ns/op 1.11
Map set x1000 51.042 ns/op 43.340 ns/op 1.18
Return object 10000 times 0.27300 ns/op 0.25670 ns/op 1.06
Throw Error 10000 times 4.1045 us/op 4.0199 us/op 1.02
fastMsgIdFn sha256 / 200 bytes 3.4630 us/op 3.4330 us/op 1.01
fastMsgIdFn h32 xxhash / 200 bytes 344.00 ns/op 322.00 ns/op 1.07
fastMsgIdFn h64 xxhash / 200 bytes 395.00 ns/op 371.00 ns/op 1.06
fastMsgIdFn sha256 / 1000 bytes 11.831 us/op 12.104 us/op 0.98
fastMsgIdFn h32 xxhash / 1000 bytes 468.00 ns/op 450.00 ns/op 1.04
fastMsgIdFn h64 xxhash / 1000 bytes 464.00 ns/op 468.00 ns/op 0.99
fastMsgIdFn sha256 / 10000 bytes 107.92 us/op 106.69 us/op 1.01
fastMsgIdFn h32 xxhash / 10000 bytes 2.0820 us/op 2.0260 us/op 1.03
fastMsgIdFn h64 xxhash / 10000 bytes 1.4160 us/op 1.3910 us/op 1.02
enrSubnets - fastDeserialize 64 bits 1.6070 us/op 1.3640 us/op 1.18
enrSubnets - ssz BitVector 64 bits 556.00 ns/op 517.00 ns/op 1.08
enrSubnets - fastDeserialize 4 bits 243.00 ns/op 194.00 ns/op 1.25
enrSubnets - ssz BitVector 4 bits 571.00 ns/op 481.00 ns/op 1.19
prioritizePeers score -10:0 att 32-0.1 sync 2-0 122.07 us/op 121.50 us/op 1.00
prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 155.33 us/op 139.24 us/op 1.12
prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 200.95 us/op 168.70 us/op 1.19
prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 357.16 us/op 335.36 us/op 1.07
prioritizePeers score 0:0 att 64-1 sync 4-1 388.10 us/op 388.58 us/op 1.00
array of 16000 items push then shift 1.6630 us/op 1.6635 us/op 1.00
LinkedList of 16000 items push then shift 10.750 ns/op 9.3580 ns/op 1.15
array of 16000 items push then pop 79.707 ns/op 60.128 ns/op 1.33
LinkedList of 16000 items push then pop 9.6950 ns/op 8.8500 ns/op 1.10
array of 24000 items push then shift 2.6907 us/op 2.5165 us/op 1.07
LinkedList of 24000 items push then shift 10.087 ns/op 9.3080 ns/op 1.08
array of 24000 items push then pop 133.83 ns/op 116.96 ns/op 1.14
LinkedList of 24000 items push then pop 9.0060 ns/op 8.8630 ns/op 1.02
intersect bitArray bitLen 8 7.0820 ns/op 7.1940 ns/op 0.98
intersect array and set length 8 63.181 ns/op 59.618 ns/op 1.06
intersect bitArray bitLen 128 32.603 ns/op 32.737 ns/op 1.00
intersect array and set length 128 900.80 ns/op 802.58 ns/op 1.12
bitArray.getTrueBitIndexes() bitLen 128 1.8390 us/op 1.5440 us/op 1.19
bitArray.getTrueBitIndexes() bitLen 248 3.1820 us/op 2.7020 us/op 1.18
bitArray.getTrueBitIndexes() bitLen 512 6.2370 us/op 4.9660 us/op 1.26
Buffer.concat 32 items 1.0800 us/op 1.0130 us/op 1.07
Uint8Array.set 32 items 2.0050 us/op 1.7060 us/op 1.18
transfer serialized Status (84 B) 1.9500 us/op 1.8680 us/op 1.04
copy serialized Status (84 B) 1.6170 us/op 1.5900 us/op 1.02
transfer serialized SignedVoluntaryExit (112 B) 2.1360 us/op 1.8990 us/op 1.12
copy serialized SignedVoluntaryExit (112 B) 1.7390 us/op 1.5780 us/op 1.10
transfer serialized ProposerSlashing (416 B) 3.0370 us/op 2.0880 us/op 1.45
copy serialized ProposerSlashing (416 B) 2.8340 us/op 1.9450 us/op 1.46
transfer serialized Attestation (485 B) 2.8560 us/op 2.1490 us/op 1.33
copy serialized Attestation (485 B) 2.7510 us/op 1.9520 us/op 1.41
transfer serialized AttesterSlashing (33232 B) 2.7860 us/op 2.0770 us/op 1.34
copy serialized AttesterSlashing (33232 B) 7.8550 us/op 5.7000 us/op 1.38
transfer serialized Small SignedBeaconBlock (128000 B) 2.8770 us/op 2.4830 us/op 1.16
copy serialized Small SignedBeaconBlock (128000 B) 16.144 us/op 15.294 us/op 1.06
transfer serialized Avg SignedBeaconBlock (200000 B) 3.0380 us/op 2.7400 us/op 1.11
copy serialized Avg SignedBeaconBlock (200000 B) 23.405 us/op 23.541 us/op 0.99
transfer serialized BlobsSidecar (524380 B) 3.1060 us/op 2.9180 us/op 1.06
copy serialized BlobsSidecar (524380 B) 91.678 us/op 205.11 us/op 0.45
transfer serialized Big SignedBeaconBlock (1000000 B) 3.0030 us/op 3.0110 us/op 1.00
copy serialized Big SignedBeaconBlock (1000000 B) 184.33 us/op 156.24 us/op 1.18
pass gossip attestations to forkchoice per slot 2.2176 ms/op 2.1780 ms/op 1.02
forkChoice updateHead vc 100000 bc 64 eq 0 2.5612 ms/op 2.1496 ms/op 1.19
forkChoice updateHead vc 600000 bc 64 eq 0 11.150 ms/op 13.970 ms/op 0.80
forkChoice updateHead vc 1000000 bc 64 eq 0 18.495 ms/op 23.129 ms/op 0.80
forkChoice updateHead vc 600000 bc 320 eq 0 16.778 ms/op 17.107 ms/op 0.98
forkChoice updateHead vc 600000 bc 1200 eq 0 85.823 ms/op 86.342 ms/op 0.99
forkChoice updateHead vc 600000 bc 64 eq 1000 19.250 ms/op 22.850 ms/op 0.84
forkChoice updateHead vc 600000 bc 64 eq 10000 21.080 ms/op 24.042 ms/op 0.88
forkChoice updateHead vc 600000 bc 64 eq 300000 28.589 ms/op 29.310 ms/op 0.98
computeDeltas 3.1733 ms/op 3.7482 ms/op 0.85
computeProposerBoostScoreFromBalances 397.73 us/op 403.19 us/op 0.99
altair processAttestation - 250000 vs - 7PWei normalcase 2.6035 ms/op 2.3181 ms/op 1.12
altair processAttestation - 250000 vs - 7PWei worstcase 3.8817 ms/op 3.2703 ms/op 1.19
altair processAttestation - setStatus - 1/6 committees join 154.07 us/op 181.53 us/op 0.85
altair processAttestation - setStatus - 1/3 committees join 289.38 us/op 354.37 us/op 0.82
altair processAttestation - setStatus - 1/2 committees join 442.17 us/op 485.04 us/op 0.91
altair processAttestation - setStatus - 2/3 committees join 493.44 us/op 619.75 us/op 0.80
altair processAttestation - setStatus - 4/5 committees join 708.67 us/op 841.63 us/op 0.84
altair processAttestation - setStatus - 100% committees join 811.76 us/op 987.68 us/op 0.82
altair processBlock - 250000 vs - 7PWei normalcase 10.524 ms/op 10.797 ms/op 0.97
altair processBlock - 250000 vs - 7PWei normalcase hashState 17.933 ms/op 18.934 ms/op 0.95
altair processBlock - 250000 vs - 7PWei worstcase 40.762 ms/op 40.245 ms/op 1.01
altair processBlock - 250000 vs - 7PWei worstcase hashState 65.095 ms/op 64.257 ms/op 1.01
phase0 processBlock - 250000 vs - 7PWei normalcase 3.2302 ms/op 3.1923 ms/op 1.01
phase0 processBlock - 250000 vs - 7PWei worstcase 35.707 ms/op 34.803 ms/op 1.03
altair processEth1Data - 250000 vs - 7PWei normalcase 606.56 us/op 525.03 us/op 1.16
getExpectedWithdrawals 250000 eb:1,eth1:1,we:0,wn:0,smpl:15 17.456 us/op 9.4370 us/op 1.85
getExpectedWithdrawals 250000 eb:0.95,eth1:0.1,we:0.05,wn:0,smpl:219 80.712 us/op 68.140 us/op 1.18
getExpectedWithdrawals 250000 eb:0.95,eth1:0.3,we:0.05,wn:0,smpl:42 18.605 us/op 12.259 us/op 1.52
getExpectedWithdrawals 250000 eb:0.95,eth1:0.7,we:0.05,wn:0,smpl:18 19.889 us/op 12.815 us/op 1.55
getExpectedWithdrawals 250000 eb:0.1,eth1:0.1,we:0,wn:0,smpl:1020 202.29 us/op 175.29 us/op 1.15
getExpectedWithdrawals 250000 eb:0.03,eth1:0.03,we:0,wn:0,smpl:11777 1.3414 ms/op 1.5349 ms/op 0.87
getExpectedWithdrawals 250000 eb:0.01,eth1:0.01,we:0,wn:0,smpl:16384 2.0275 ms/op 1.8673 ms/op 1.09
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,smpl:16384 1.9894 ms/op 1.9709 ms/op 1.01
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,nocache,smpl:16384 4.4175 ms/op 3.6492 ms/op 1.21
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,smpl:16384 3.0061 ms/op 3.0283 ms/op 0.99
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,nocache,smpl:16384 7.4622 ms/op 5.3837 ms/op 1.39
Tree 40 250000 create 496.17 ms/op 361.51 ms/op 1.37
Tree 40 250000 get(125000) 214.52 ns/op 215.75 ns/op 0.99
Tree 40 250000 set(125000) 1.0526 us/op 1.6458 us/op 0.64
Tree 40 250000 toArray() 23.749 ms/op 25.065 ms/op 0.95
Tree 40 250000 iterate all - toArray() + loop 24.432 ms/op 25.418 ms/op 0.96
Tree 40 250000 iterate all - get(i) 77.918 ms/op 83.606 ms/op 0.93
MutableVector 250000 create 16.145 ms/op 17.897 ms/op 0.90
MutableVector 250000 get(125000) 6.7330 ns/op 7.3110 ns/op 0.92
MutableVector 250000 set(125000) 316.97 ns/op 337.89 ns/op 0.94
MutableVector 250000 toArray() 4.8402 ms/op 4.6883 ms/op 1.03
MutableVector 250000 iterate all - toArray() + loop 4.5134 ms/op 4.2920 ms/op 1.05
MutableVector 250000 iterate all - get(i) 1.6329 ms/op 1.6743 ms/op 0.98
Array 250000 create 3.7165 ms/op 4.1082 ms/op 0.90
Array 250000 clone - spread 1.0805 ms/op 1.2241 ms/op 0.88
Array 250000 get(125000) 0.56000 ns/op 0.61800 ns/op 0.91
Array 250000 set(125000) 0.60300 ns/op 0.70500 ns/op 0.86
Array 250000 iterate all - loop 93.495 us/op 95.825 us/op 0.98
effectiveBalanceIncrements clone Uint8Array 300000 46.172 us/op 40.219 us/op 1.15
effectiveBalanceIncrements clone MutableVector 300000 271.00 ns/op 357.00 ns/op 0.76
effectiveBalanceIncrements rw all Uint8Array 300000 181.44 us/op 203.96 us/op 0.89
effectiveBalanceIncrements rw all MutableVector 300000 86.670 ms/op 124.91 ms/op 0.69
phase0 afterProcessEpoch - 250000 vs - 7PWei 118.42 ms/op 133.06 ms/op 0.89
phase0 beforeProcessEpoch - 250000 vs - 7PWei 45.611 ms/op 52.707 ms/op 0.87
altair processEpoch - mainnet_e81889 341.67 ms/op 406.35 ms/op 0.84
mainnet_e81889 - altair beforeProcessEpoch 70.658 ms/op 76.636 ms/op 0.92
mainnet_e81889 - altair processJustificationAndFinalization 17.451 us/op 23.239 us/op 0.75
mainnet_e81889 - altair processInactivityUpdates 6.1509 ms/op 8.8206 ms/op 0.70
mainnet_e81889 - altair processRewardsAndPenalties 72.978 ms/op 94.394 ms/op 0.77
mainnet_e81889 - altair processRegistryUpdates 4.4940 us/op 6.6090 us/op 0.68
mainnet_e81889 - altair processSlashings 658.00 ns/op 1.3440 us/op 0.49
mainnet_e81889 - altair processEth1DataReset 561.00 ns/op 1.3770 us/op 0.41
mainnet_e81889 - altair processEffectiveBalanceUpdates 1.2793 ms/op 1.5983 ms/op 0.80
mainnet_e81889 - altair processSlashingsReset 7.7870 us/op 6.3520 us/op 1.23
mainnet_e81889 - altair processRandaoMixesReset 8.2730 us/op 8.9690 us/op 0.92
mainnet_e81889 - altair processHistoricalRootsUpdate 1.1490 us/op 2.8640 us/op 0.40
mainnet_e81889 - altair processParticipationFlagUpdates 2.2280 us/op 5.5420 us/op 0.40
mainnet_e81889 - altair processSyncCommitteeUpdates 1.1960 us/op 2.6000 us/op 0.46
mainnet_e81889 - altair afterProcessEpoch 130.54 ms/op 151.37 ms/op 0.86
phase0 processEpoch - mainnet_e58758 386.99 ms/op 466.80 ms/op 0.83
mainnet_e58758 - phase0 beforeProcessEpoch 159.41 ms/op 177.83 ms/op 0.90
mainnet_e58758 - phase0 processJustificationAndFinalization 17.396 us/op 37.539 us/op 0.46
mainnet_e58758 - phase0 processRewardsAndPenalties 72.371 ms/op 85.386 ms/op 0.85
mainnet_e58758 - phase0 processRegistryUpdates 14.639 us/op 21.353 us/op 0.69
mainnet_e58758 - phase0 processSlashings 847.00 ns/op 1.0070 us/op 0.84
mainnet_e58758 - phase0 processEth1DataReset 669.00 ns/op 999.00 ns/op 0.67
mainnet_e58758 - phase0 processEffectiveBalanceUpdates 2.6782 ms/op 3.0175 ms/op 0.89
mainnet_e58758 - phase0 processSlashingsReset 2.7100 us/op 5.8660 us/op 0.46
mainnet_e58758 - phase0 processRandaoMixesReset 6.3260 us/op 4.9840 us/op 1.27
mainnet_e58758 - phase0 processHistoricalRootsUpdate 783.00 ns/op 911.00 ns/op 0.86
mainnet_e58758 - phase0 processParticipationRecordUpdates 4.5810 us/op 4.5090 us/op 1.02
mainnet_e58758 - phase0 afterProcessEpoch 112.77 ms/op 115.66 ms/op 0.98
phase0 processEffectiveBalanceUpdates - 250000 normalcase 1.8390 ms/op 1.6715 ms/op 1.10
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 1.4835 ms/op 1.6827 ms/op 0.88
altair processInactivityUpdates - 250000 normalcase 29.291 ms/op 28.867 ms/op 1.01
altair processInactivityUpdates - 250000 worstcase 28.063 ms/op 23.117 ms/op 1.21
phase0 processRegistryUpdates - 250000 normalcase 10.140 us/op 12.496 us/op 0.81
phase0 processRegistryUpdates - 250000 badcase_full_deposits 356.31 us/op 472.92 us/op 0.75
phase0 processRegistryUpdates - 250000 worstcase 0.5 158.06 ms/op 147.80 ms/op 1.07
altair processRewardsAndPenalties - 250000 normalcase 75.966 ms/op 75.532 ms/op 1.01
altair processRewardsAndPenalties - 250000 worstcase 77.466 ms/op 72.919 ms/op 1.06
phase0 getAttestationDeltas - 250000 normalcase 9.1429 ms/op 8.1537 ms/op 1.12
phase0 getAttestationDeltas - 250000 worstcase 10.010 ms/op 8.2701 ms/op 1.21
phase0 processSlashings - 250000 worstcase 2.5362 ms/op 2.4186 ms/op 1.05
altair processSyncCommitteeUpdates - 250000 168.92 ms/op 166.65 ms/op 1.01
BeaconState.hashTreeRoot - No change 303.00 ns/op 284.00 ns/op 1.07
BeaconState.hashTreeRoot - 1 full validator 54.197 us/op 61.769 us/op 0.88
BeaconState.hashTreeRoot - 32 full validator 581.63 us/op 598.30 us/op 0.97
BeaconState.hashTreeRoot - 512 full validator 6.4185 ms/op 6.3841 ms/op 1.01
BeaconState.hashTreeRoot - 1 validator.effectiveBalance 73.308 us/op 68.409 us/op 1.07
BeaconState.hashTreeRoot - 32 validator.effectiveBalance 837.66 us/op 961.70 us/op 0.87
BeaconState.hashTreeRoot - 512 validator.effectiveBalance 12.380 ms/op 13.443 ms/op 0.92
BeaconState.hashTreeRoot - 1 balances 52.142 us/op 55.015 us/op 0.95
BeaconState.hashTreeRoot - 32 balances 514.78 us/op 472.15 us/op 1.09
BeaconState.hashTreeRoot - 512 balances 4.4689 ms/op 5.0488 ms/op 0.89
BeaconState.hashTreeRoot - 250000 balances 76.441 ms/op 80.547 ms/op 0.95
aggregationBits - 2048 els - zipIndexesInBitList 18.224 us/op 16.522 us/op 1.10
regular array get 100000 times 34.141 us/op 35.812 us/op 0.95
wrappedArray get 100000 times 43.765 us/op 37.664 us/op 1.16
arrayWithProxy get 100000 times 15.205 ms/op 16.342 ms/op 0.93
ssz.Root.equals 224.00 ns/op 245.00 ns/op 0.91
byteArrayEquals 231.00 ns/op 231.00 ns/op 1.00
shuffle list - 16384 els 7.0560 ms/op 7.5492 ms/op 0.93
shuffle list - 250000 els 104.13 ms/op 109.93 ms/op 0.95
processSlot - 1 slots 8.7850 us/op 8.8380 us/op 0.99
processSlot - 32 slots 1.3789 ms/op 1.4158 ms/op 0.97
getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei 59.034 ms/op 59.207 ms/op 1.00
getCommitteeAssignments - req 1 vs - 250000 vc 2.6332 ms/op 2.7321 ms/op 0.96
getCommitteeAssignments - req 100 vs - 250000 vc 3.8286 ms/op 4.1868 ms/op 0.91
getCommitteeAssignments - req 1000 vs - 250000 vc 4.1337 ms/op 4.4423 ms/op 0.93
RootCache.getBlockRootAtSlot - 250000 vs - 7PWei 4.7200 ns/op 6.1200 ns/op 0.77
state getBlockRootAtSlot - 250000 vs - 7PWei 593.34 ns/op 635.00 ns/op 0.93
computeProposers - vc 250000 8.8190 ms/op 10.101 ms/op 0.87
computeEpochShuffling - vc 250000 108.81 ms/op 118.51 ms/op 0.92
getNextSyncCommittee - vc 250000 155.45 ms/op 165.80 ms/op 0.94
computeSigningRoot for AttestationData 13.928 us/op 14.419 us/op 0.97
hash AttestationData serialized data then Buffer.toString(base64) 2.3960 us/op 2.7741 us/op 0.86
toHexString serialized data 1.0935 us/op 1.5256 us/op 0.72
Buffer.toString(base64) 245.40 ns/op 282.32 ns/op 0.87

by benchmarkbot/action

@wemeetagain wemeetagain merged commit 11bbca1 into unstable Jul 25, 2023
11 checks passed
@wemeetagain wemeetagain deleted the cayman/fix-enr-warn branch July 25, 2023 18:05
@wemeetagain
Copy link
Member Author

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

2 participants