From d1a4b14b48bc3272224e0c22770b5e082335e6cc Mon Sep 17 00:00:00 2001 From: Kittywhiskers Van Gogh <63189531+kwvg@users.noreply.github.com> Date: Sat, 1 Jun 2024 19:33:25 +0000 Subject: [PATCH] merge bitcoin#23354: Introduce new V4 format addrman --- src/addrman.cpp | 2 +- src/addrman_impl.h | 3 ++- test/functional/feature_addrman.py | 4 ++-- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/addrman.cpp b/src/addrman.cpp index 55a77c8ebe..285407b3f0 100644 --- a/src/addrman.cpp +++ b/src/addrman.cpp @@ -174,7 +174,7 @@ void AddrManImpl::Serialize(Stream& s_) const // Increment `lowest_compatible` iff a newly introduced format is incompatible with // the previous one. - static constexpr uint8_t lowest_compatible = Format::V3_BIP155; + static constexpr uint8_t lowest_compatible = Format::V4_MULTIPORT; s << static_cast(INCOMPATIBILITY_BASE + lowest_compatible); s << nKey; diff --git a/src/addrman_impl.h b/src/addrman_impl.h index 22d900c48e..2e4093eeb6 100644 --- a/src/addrman_impl.h +++ b/src/addrman_impl.h @@ -159,6 +159,7 @@ private: V1_DETERMINISTIC = 1, //!< for pre-asmap files V2_ASMAP = 2, //!< for files including asmap version V3_BIP155 = 3, //!< same as V2_ASMAP plus addresses are in BIP155 format + V4_MULTIPORT = 4, //!< adds support for multiple ports per IP }; //! The maximum format this software knows it can unserialize. Also, we always serialize @@ -166,7 +167,7 @@ private: //! The format (first byte in the serialized stream) can be higher than this and //! still this software may be able to unserialize the file - if the second byte //! (see `lowest_compatible` in `Unserialize()`) is less or equal to this. - static constexpr Format FILE_FORMAT = Format::V3_BIP155; + static constexpr Format FILE_FORMAT = Format::V4_MULTIPORT; //! The initial value of a field that is incremented every time an incompatible format //! change is made (such that old software versions would not be able to parse and diff --git a/test/functional/feature_addrman.py b/test/functional/feature_addrman.py index 9fe2da53a5..1dc1bfae51 100755 --- a/test/functional/feature_addrman.py +++ b/test/functional/feature_addrman.py @@ -17,7 +17,7 @@ from test_framework.util import assert_equal def serialize_addrman( *, format=1, - lowest_compatible=3, + lowest_compatible=4, net_magic="regtest", bucket_key=1, len_new=None, @@ -74,7 +74,7 @@ class AddrmanTest(BitcoinTestFramework): expected_msg=init_error( "Unsupported format of addrman database: 1. It is compatible with " "formats >=111, but the maximum supported by this version of " - f"{self.config['environment']['PACKAGE_NAME']} is 3.: (.+)" + f"{self.config['environment']['PACKAGE_NAME']} is 4.: (.+)" ), match=ErrorMatch.FULL_REGEX, )