aboutsummaryrefslogtreecommitdiff
path: root/contrib
diff options
context:
space:
mode:
Diffstat (limited to 'contrib')
-rw-r--r--contrib/builder-keys/keys.txt1
-rw-r--r--contrib/devtools/iwyu/bitcoin.core.imp1
-rwxr-xr-xcontrib/devtools/symbol-check.py6
-rw-r--r--contrib/guix/INSTALL.md4
-rw-r--r--contrib/guix/README.md2
-rwxr-xr-xcontrib/guix/libexec/build.sh8
-rw-r--r--contrib/guix/manifest.scm107
-rw-r--r--contrib/guix/patches/elfsteem-value-error-python-39.patch13
-rw-r--r--contrib/guix/patches/gcc-10-remap-guix-store.patch25
-rw-r--r--contrib/guix/patches/glibc-2.24-guix-prefix.patch25
-rw-r--r--contrib/guix/patches/glibc-2.27-guix-prefix.patch25
-rw-r--r--contrib/guix/patches/lief-fix-ppc64-nx-default.patch29
-rw-r--r--contrib/guix/patches/nsis-disable-installer-reloc.patch30
-rw-r--r--contrib/macdeploy/README.md2
-rwxr-xr-xcontrib/message-capture/message-capture-parser.py3
-rwxr-xr-xcontrib/seeds/makeseeds.py7
-rw-r--r--contrib/seeds/nodes_main.txt1502
-rw-r--r--contrib/seeds/nodes_main_manual.txt77
-rw-r--r--contrib/seeds/nodes_test.txt99
-rwxr-xr-xcontrib/signet/getcoins.py2
-rwxr-xr-xcontrib/signet/miner111
-rw-r--r--contrib/valgrind.supp21
-rw-r--r--contrib/verify-commits/trusted-keys2
23 files changed, 1202 insertions, 900 deletions
diff --git a/contrib/builder-keys/keys.txt b/contrib/builder-keys/keys.txt
index c70069b440..f8377cce33 100644
--- a/contrib/builder-keys/keys.txt
+++ b/contrib/builder-keys/keys.txt
@@ -19,6 +19,7 @@ BF6273FAEF7CC0BA1F562E50989F6B3048A116B5 Dev Random (devrandom)
D35176BE9264832E4ACA8986BF0792FBE95DC863 fivepiece (fivepiece)
6F993B250557E7B016ADE5713BDCDA2D87A881D9 Fuzzbawls (Fuzzbawls)
01CDF4627A3B88AAE4A571C87588242FBE38D3A8 Gavin Andresen (gavinandresen)
+6B002C6EA3F91B1B0DF0C9BC8F617F1200A6D25C Gloria Zhao (glozow)
D1DBF2C4B96F2DEBF4C16654410108112E7EA81F Hennadii Stepanov (hebasto)
A2FD494D0021AA9B4FA58F759102B7AE654A4A5A Ilyas Ridhuan (IlyasRidhuan)
2688F5A9A4BE0F295E921E8A25F27A38A47AD566 James O'Beirne (jamesob)
diff --git a/contrib/devtools/iwyu/bitcoin.core.imp b/contrib/devtools/iwyu/bitcoin.core.imp
index ce7786f58c..919ffab102 100644
--- a/contrib/devtools/iwyu/bitcoin.core.imp
+++ b/contrib/devtools/iwyu/bitcoin.core.imp
@@ -3,4 +3,5 @@
{ include: [ "<bits/termios-c_lflag.h>", private, "<termios.h>", public ] },
{ include: [ "<bits/termios-struct.h>", private, "<termios.h>", public ] },
{ include: [ "<bits/termios-tcflow.h>", private, "<termios.h>", public ] },
+ { include: [ "<bits/chrono.h>", private, "<chrono>", public ] },
]
diff --git a/contrib/devtools/symbol-check.py b/contrib/devtools/symbol-check.py
index 23d29af3f1..4b1cceb57c 100755
--- a/contrib/devtools/symbol-check.py
+++ b/contrib/devtools/symbol-check.py
@@ -35,7 +35,6 @@ import lief #type:ignore
MAX_VERSIONS = {
'GCC': (4,8,0),
'GLIBC': {
- lief.ELF.ARCH.i386: (2,18),
lief.ELF.ARCH.x86_64: (2,18),
lief.ELF.ARCH.ARM: (2,18),
lief.ELF.ARCH.AARCH64:(2,18),
@@ -45,8 +44,6 @@ MAX_VERSIONS = {
'LIBATOMIC': (1,0),
'V': (0,5,0), # xkb (bitcoin-qt only)
}
-# See here for a description of _IO_stdin_used:
-# https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=634261#109
# Ignore symbols that are exported as part of every executable
IGNORE_EXPORTS = {
@@ -57,9 +54,6 @@ IGNORE_EXPORTS = {
# Expected linker-loader names can be found here:
# https://sourceware.org/glibc/wiki/ABIList?action=recall&rev=16
ELF_INTERPRETER_NAMES: Dict[lief.ELF.ARCH, Dict[lief.ENDIANNESS, str]] = {
- lief.ELF.ARCH.i386: {
- lief.ENDIANNESS.LITTLE: "/lib/ld-linux.so.2",
- },
lief.ELF.ARCH.x86_64: {
lief.ENDIANNESS.LITTLE: "/lib64/ld-linux-x86-64.so.2",
},
diff --git a/contrib/guix/INSTALL.md b/contrib/guix/INSTALL.md
index 68aae18731..a9a41ddff6 100644
--- a/contrib/guix/INSTALL.md
+++ b/contrib/guix/INSTALL.md
@@ -72,11 +72,11 @@ writing (July 2021). Guix is expected to be more widely packaged over time. For
an up-to-date view on Guix's package status/version across distros, please see:
https://repology.org/project/guix/versions
-### Debian 11 (Bullseye)/Ubuntu 21.04 (Hirsute Hippo)
+### Debian / Ubuntu
Guix v1.2.0 is available as a distribution package starting in [Debian
11](https://packages.debian.org/bullseye/guix) and [Ubuntu
-21.04](https://packages.ubuntu.com/hirsute/guix).
+21.04](https://packages.ubuntu.com/search?keywords=guix).
Note that if you intend on using Guix without using any substitutes (more
details [here][security-model]), v1.2.0 has a known problem when building GnuTLS
diff --git a/contrib/guix/README.md b/contrib/guix/README.md
index af5607c710..ed6ac8d589 100644
--- a/contrib/guix/README.md
+++ b/contrib/guix/README.md
@@ -382,7 +382,7 @@ https://ci.guix.gnu.org is automatically used unless the `--no-substitutes` flag
is supplied. This default list of substitute servers is overridable both on a
`guix-daemon` level and when you invoke `guix` commands. See examples below for
the various ways of adding dongcarl's substitute server after having [authorized
-his signing key](#authorize-the-signing-keys).
+his signing key](#step-1-authorize-the-signing-keys).
Change the **default list** of substitute servers by starting `guix-daemon` with
the `--substitute-urls` option (you will likely need to edit your init script):
diff --git a/contrib/guix/libexec/build.sh b/contrib/guix/libexec/build.sh
index 44c769f463..f39f83d443 100755
--- a/contrib/guix/libexec/build.sh
+++ b/contrib/guix/libexec/build.sh
@@ -196,7 +196,6 @@ make -C depends --jobs="$JOBS" HOST="$HOST" \
x86_64_linux_RANLIB=x86_64-linux-gnu-ranlib \
x86_64_linux_NM=x86_64-linux-gnu-nm \
x86_64_linux_STRIP=x86_64-linux-gnu-strip \
- qt_config_opts_x86_64_linux='-platform linux-g++ -xplatform bitcoin-linux-g++' \
FORCE_USE_SYSTEM_CLANG=1
@@ -223,6 +222,7 @@ CONFIGFLAGS="--enable-reduce-exports --disable-bench --disable-gui-tests --disab
# CFLAGS
HOST_CFLAGS="-O2 -g"
+HOST_CFLAGS+=$(find /gnu/store -maxdepth 1 -mindepth 1 -type d -exec echo -n " -ffile-prefix-map={}=/usr" \;)
case "$HOST" in
*linux*) HOST_CFLAGS+=" -ffile-prefix-map=${PWD}=." ;;
*mingw*) HOST_CFLAGS+=" -fno-ident" ;;
@@ -249,10 +249,6 @@ case "$HOST" in
*powerpc64*) HOST_LDFLAGS="${HOST_LDFLAGS} -Wl,--no-tls-get-addr-optimize" ;;
esac
-case "$HOST" in
- powerpc64-linux-*) HOST_LDFLAGS="${HOST_LDFLAGS} -Wl,-z,noexecstack" ;;
-esac
-
# Make $HOST-specific native binaries from depends available in $PATH
export PATH="${BASEPREFIX}/${HOST}/native/bin:${PATH}"
mkdir -p "$DISTSRC"
@@ -372,6 +368,8 @@ mkdir -p "$DISTSRC"
# has not been run before buildling, this file will be a stub
cp "${DISTSRC}/share/examples/bitcoin.conf" "${DISTNAME}/"
+ cp -r "${DISTSRC}/share/rpcauth" "${DISTNAME}/share/"
+
# Finally, deterministically produce {non-,}debug binary tarballs ready
# for release
case "$HOST" in
diff --git a/contrib/guix/manifest.scm b/contrib/guix/manifest.scm
index d35ad85e56..8e5c89cc5e 100644
--- a/contrib/guix/manifest.scm
+++ b/contrib/guix/manifest.scm
@@ -21,7 +21,6 @@
(gnu packages llvm)
(gnu packages mingw)
(gnu packages moreutils)
- (gnu packages perl)
(gnu packages pkg-config)
(gnu packages python)
(gnu packages python-crypto)
@@ -78,6 +77,11 @@ http://www.linuxfromscratch.org/hlfs/view/development/chapter05/gcc-pass1.html"
(("-rpath=") "-rpath-link="))
#t))))))))
+(define building-on (string-append (list-ref (string-split (%current-system) #\-) 0) "-guix-linux-gnu"))
+
+(define (explicit-cross-configure package)
+ (package-with-extra-configure-variable package "--build" building-on))
+
(define (make-cross-toolchain target
base-gcc-for-libc
base-kernel-headers
@@ -87,9 +91,9 @@ http://www.linuxfromscratch.org/hlfs/view/development/chapter05/gcc-pass1.html"
(let* ((xbinutils (cross-binutils target))
;; 1. Build a cross-compiling gcc without targeting any libc, derived
;; from BASE-GCC-FOR-LIBC
- (xgcc-sans-libc (cross-gcc target
- #:xgcc base-gcc-for-libc
- #:xbinutils xbinutils))
+ (xgcc-sans-libc (explicit-cross-configure (cross-gcc target
+ #:xgcc base-gcc-for-libc
+ #:xbinutils xbinutils)))
;; 2. Build cross-compiled kernel headers with XGCC-SANS-LIBC, derived
;; from BASE-KERNEL-HEADERS
(xkernel (cross-kernel-headers target
@@ -98,17 +102,17 @@ http://www.linuxfromscratch.org/hlfs/view/development/chapter05/gcc-pass1.html"
xbinutils))
;; 3. Build a cross-compiled libc with XGCC-SANS-LIBC and XKERNEL,
;; derived from BASE-LIBC
- (xlibc (cross-libc target
- base-libc
- xgcc-sans-libc
- xbinutils
- xkernel))
+ (xlibc (explicit-cross-configure (cross-libc target
+ base-libc
+ xgcc-sans-libc
+ xbinutils
+ xkernel)))
;; 4. Build a cross-compiling gcc targeting XLIBC, derived from
;; BASE-GCC
- (xgcc (cross-gcc target
- #:xgcc base-gcc
- #:xbinutils xbinutils
- #:libc xlibc)))
+ (xgcc (explicit-cross-configure (cross-gcc target
+ #:xgcc base-gcc
+ #:xbinutils xbinutils
+ #:libc xlibc))))
;; Define a meta-package that propagates the resulting XBINUTILS, XLIBC, and
;; XGCC
(package
@@ -132,26 +136,19 @@ chain for " target " development."))
(define base-gcc gcc-10)
(define base-linux-kernel-headers linux-libre-headers-5.15)
-;; Building glibc with stack smashing protector first landed in glibc 2.25, use
-;; this function to disable for older glibcs
-;;
-;; From glibc 2.25 changelog:
-;;
-;; * Most of glibc can now be built with the stack smashing protector enabled.
-;; It is recommended to build glibc with --enable-stack-protector=strong.
-;; Implemented by Nick Alcock (Oracle).
-(define (make-glibc-without-ssp xglibc)
- (package-with-extra-configure-variable
- (package-with-extra-configure-variable
- xglibc "libc_cv_ssp" "no")
- "libc_cv_ssp_strong" "no"))
+;; https://gcc.gnu.org/install/configure.html
+(define (hardened-gcc gcc)
+ (package-with-extra-configure-variable (
+ package-with-extra-configure-variable gcc
+ "--enable-default-ssp" "yes")
+ "--enable-default-pie" "yes"))
(define* (make-bitcoin-cross-toolchain target
#:key
(base-gcc-for-libc base-gcc)
(base-kernel-headers base-linux-kernel-headers)
- (base-libc (make-glibc-without-ssp (make-glibc-without-werror glibc-2.24)))
- (base-gcc (make-gcc-rpath-link base-gcc)))
+ (base-libc (make-glibc-with-bind-now (make-glibc-without-werror glibc-2.24)))
+ (base-gcc (make-gcc-rpath-link (hardened-gcc base-gcc))))
"Convenience wrapper around MAKE-CROSS-TOOLCHAIN with default values
desirable for building Bitcoin Core release binaries."
(make-cross-toolchain target
@@ -161,7 +158,10 @@ desirable for building Bitcoin Core release binaries."
base-gcc))
(define (make-gcc-with-pthreads gcc)
- (package-with-extra-configure-variable gcc "--enable-threads" "posix"))
+ (package-with-extra-configure-variable
+ (package-with-extra-patches gcc
+ (search-our-patches "gcc-10-remap-guix-store.patch"))
+ "--enable-threads" "posix"))
(define (make-mingw-w64-cross-gcc cross-gcc)
(package-with-extra-patches cross-gcc
@@ -198,12 +198,17 @@ chain for " target " development."))
(define (make-nsis-for-gcc-10 base-nsis)
(package-with-extra-patches base-nsis
- (search-our-patches "nsis-gcc-10-memmove.patch")))
+ (search-our-patches "nsis-gcc-10-memmove.patch"
+ "nsis-disable-installer-reloc.patch")))
+
+(define (fix-ppc64-nx-default lief)
+ (package-with-extra-patches lief
+ (search-our-patches "lief-fix-ppc64-nx-default.patch")))
(define-public lief
(package
(name "python-lief")
- (version "0.12.0")
+ (version "0.12.1")
(source
(origin
(method git-fetch)
@@ -213,8 +218,15 @@ chain for " target " development."))
(file-name (git-file-name name version))
(sha256
(base32
- "026jchj56q25v6gc0754dj9cj5hz5zaza8ij93y5ga94w20kzm9q"))))
+ "1xzbh3bxy4rw1yamnx68da1v5s56ay4g081cyamv67256g0qy2i1"))))
(build-system python-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'parallel-jobs
+ ;; build with multiple cores
+ (lambda _
+ (substitute* "setup.py" (("self.parallel if self.parallel else 1") (number->string (parallel-job-count)))))))))
(native-inputs
`(("cmake" ,cmake)))
(home-page "https://github.com/lief-project/LIEF")
@@ -256,7 +268,7 @@ thus should be able to compile on most platforms where these exist.")
(license license:gpl3+))) ; license is with openssl exception
(define-public python-elfesteem
- (let ((commit "87bbd79ab7e361004c98cc8601d4e5f029fd8bd5"))
+ (let ((commit "2eb1e5384ff7a220fd1afacd4a0170acff54fe56"))
(package
(name "python-elfesteem")
(version (git-version "0.1" "1" commit))
@@ -269,8 +281,7 @@ thus should be able to compile on most platforms where these exist.")
(file-name (git-file-name name commit))
(sha256
(base32
- "1nyvjisvyxyxnd0023xjf5846xd03lwawp5pfzr8vrky7wwm5maz"))
- (patches (search-our-patches "elfsteem-value-error-python-39.patch"))))
+ "07x6p8clh11z8s1n2kdxrqwqm2almgc5qpkcr9ckb6y5ivjdr5r6"))))
(build-system python-build-system)
;; There are no tests, but attempting to run python setup.py test leads to
;; PYTHONPATH problems, just disable the test
@@ -403,6 +414,11 @@ thus should be able to compile on most platforms where these exist.")
(string-append indent
"@unittest.skip(\"Disabled by Guix\")\n"
line)))
+ (substitute* "tests/test_validate.py"
+ (("^(.*)def test_revocation_mode_soft" line indent)
+ (string-append indent
+ "@unittest.skip(\"Disabled by Guix\")\n"
+ line)))
#t))
(replace 'check
(lambda _
@@ -521,6 +537,12 @@ inspecting signatures in Mach-O binaries.")
(define (make-glibc-without-werror glibc)
(package-with-extra-configure-variable glibc "enable_werror" "no"))
+(define (make-glibc-with-stack-protector glibc)
+ (package-with-extra-configure-variable glibc "--enable-stack-protector" "all"))
+
+(define (make-glibc-with-bind-now glibc)
+ (package-with-extra-configure-variable glibc "--enable-bind-now" "yes"))
+
(define-public glibc-2.24
(package
(inherit glibc-2.31)
@@ -538,7 +560,8 @@ inspecting signatures in Mach-O binaries.")
"glibc-versioned-locpath.patch"
"glibc-2.24-elfm-loadaddr-dynamic-rewrite.patch"
"glibc-2.24-no-build-time-cxx-header-run.patch"
- "glibc-2.24-fcommon.patch"))))))
+ "glibc-2.24-fcommon.patch"
+ "glibc-2.24-guix-prefix.patch"))))))
(define-public glibc-2.27/bitcoin-patched
(package
@@ -555,7 +578,8 @@ inspecting signatures in Mach-O binaries.")
"1b2n1gxv9f4fd5yy68qjbnarhf8mf4vmlxk10i3328c1w5pmp0ca"))
(patches (search-our-patches "glibc-ldd-x86_64.patch"
"glibc-2.27-riscv64-Use-__has_include-to-include-asm-syscalls.h.patch"
- "glibc-2.27-dont-redefine-nss-database.patch"))))))
+ "glibc-2.27-dont-redefine-nss-database.patch"
+ "glibc-2.27-guix-prefix.patch"))))))
(packages->manifest
(append
@@ -590,12 +614,11 @@ inspecting signatures in Mach-O binaries.")
gcc-toolchain-10
(list gcc-toolchain-10 "static")
;; Scripting
- perl
python-3
;; Git
- git
+ git-minimal
;; Tests
- lief)
+ (fix-ppc64-nx-default lief))
(let ((target (getenv "HOST")))
(cond ((string-suffix? "-mingw32" target)
;; Windows
@@ -606,8 +629,8 @@ inspecting signatures in Mach-O binaries.")
((string-contains target "-linux-")
(list (cond ((string-contains target "riscv64-")
(make-bitcoin-cross-toolchain target
- #:base-libc (make-glibc-without-werror glibc-2.27/bitcoin-patched)
- #:base-kernel-headers base-linux-kernel-headers))
+ #:base-libc (make-glibc-with-stack-protector
+ (make-glibc-with-bind-now (make-glibc-without-werror glibc-2.27/bitcoin-patched)))))
(else
(make-bitcoin-cross-toolchain target)))))
((string-contains target "darwin")
diff --git a/contrib/guix/patches/elfsteem-value-error-python-39.patch b/contrib/guix/patches/elfsteem-value-error-python-39.patch
deleted file mode 100644
index 21e1228afd..0000000000
--- a/contrib/guix/patches/elfsteem-value-error-python-39.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/examples/otool.py b/examples/otool.py
-index 2b8efc0..d797b2e 100755
---- a/examples/otool.py
-+++ b/examples/otool.py
-@@ -342,7 +342,7 @@ if __name__ == '__main__':
- try:
- e = macho_init.MACHO(raw,
- parseSymbols = False)
-- except ValueError, err:
-+ except ValueError as err:
- print("%s:" %file)
- print(" %s" % err)
- continue
diff --git a/contrib/guix/patches/gcc-10-remap-guix-store.patch b/contrib/guix/patches/gcc-10-remap-guix-store.patch
new file mode 100644
index 0000000000..a47ef7a2df
--- /dev/null
+++ b/contrib/guix/patches/gcc-10-remap-guix-store.patch
@@ -0,0 +1,25 @@
+From aad25427e74f387412e8bc9a9d7bbc6c496c792f Mon Sep 17 00:00:00 2001
+From: Andrew Chow <achow101-github@achow101.com>
+Date: Wed, 6 Jul 2022 16:49:41 -0400
+Subject: [PATCH] guix: remap guix store paths to /usr
+
+---
+ libgcc/Makefile.in | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/libgcc/Makefile.in b/libgcc/Makefile.in
+index 851e7657d07..476c2becd1c 100644
+--- a/libgcc/Makefile.in
++++ b/libgcc/Makefile.in
+@@ -854,7 +854,7 @@ endif
+ # libgcc_eh.a, only LIB2ADDEH matters. If we do, only LIB2ADDEHSTATIC and
+ # LIB2ADDEHSHARED matter. (Usually all three are identical.)
+
+-c_flags := -fexceptions
++c_flags := -fexceptions $(shell find /gnu/store -maxdepth 1 -mindepth 1 -type d -exec echo -n " -ffile-prefix-map={}=/usr" \;)
+
+ ifeq ($(enable_shared),yes)
+
+--
+2.37.0
+
diff --git a/contrib/guix/patches/glibc-2.24-guix-prefix.patch b/contrib/guix/patches/glibc-2.24-guix-prefix.patch
new file mode 100644
index 0000000000..875e8cd611
--- /dev/null
+++ b/contrib/guix/patches/glibc-2.24-guix-prefix.patch
@@ -0,0 +1,25 @@
+Without ffile-prefix-map, the debug symbols will contain paths for the
+guix store which will include the hashes of each package. However, the
+hash for the same package will differ when on different architectures.
+In order to be reproducible regardless of the architecture used to build
+the package, map all guix store prefixes to something fixed, e.g. /usr.
+
+We might be able to drop this in favour of using --with-nonshared-cflags
+when we being using newer versions of glibc.
+
+--- a/Makeconfig
++++ b/Makeconfig
+@@ -950,6 +950,10 @@ object-suffixes-for-libc += .oS
+ # shared objects. We don't want to use CFLAGS-os because users may, for
+ # example, make that processor-specific.
+ CFLAGS-.oS = $(CFLAGS-.o) $(PIC-ccflag)
++
++# Map Guix store paths to /usr
++CFLAGS-.oS += `find /gnu/store -maxdepth 1 -mindepth 1 -type d -exec echo -n " -ffile-prefix-map={}=/usr" \;`
++
+ CPPFLAGS-.oS = $(CPPFLAGS-.o) -DPIC -DLIBC_NONSHARED=1
+ libtype.oS = lib%_nonshared.a
+ endif
+--
+2.35.1
+
diff --git a/contrib/guix/patches/glibc-2.27-guix-prefix.patch b/contrib/guix/patches/glibc-2.27-guix-prefix.patch
new file mode 100644
index 0000000000..d777af74f0
--- /dev/null
+++ b/contrib/guix/patches/glibc-2.27-guix-prefix.patch
@@ -0,0 +1,25 @@
+Without ffile-prefix-map, the debug symbols will contain paths for the
+guix store which will include the hashes of each package. However, the
+hash for the same package will differ when on different architectures.
+In order to be reproducible regardless of the architecture used to build
+the package, map all guix store prefixes to something fixed, e.g. /usr.
+
+We might be able to drop this in favour of using --with-nonshared-cflags
+when we being using newer versions of glibc.
+
+--- a/Makeconfig
++++ b/Makeconfig
+@@ -992,6 +992,10 @@ object-suffixes :=
+ CPPFLAGS-.o = $(pic-default)
+ # libc.a must be compiled with -fPIE/-fpie for static PIE.
+ CFLAGS-.o = $(filter %frame-pointer,$(+cflags)) $(pie-default)
++
++# Map Guix store paths to /usr
++CFLAGS-.o += `find /gnu/store -maxdepth 1 -mindepth 1 -type d -exec echo -n " -ffile-prefix-map={}=/usr" \;`
++
+ libtype.o := lib%.a
+ object-suffixes += .o
+ ifeq (yes,$(build-shared))
+--
+2.35.1
+
diff --git a/contrib/guix/patches/lief-fix-ppc64-nx-default.patch b/contrib/guix/patches/lief-fix-ppc64-nx-default.patch
new file mode 100644
index 0000000000..101bc1ddc0
--- /dev/null
+++ b/contrib/guix/patches/lief-fix-ppc64-nx-default.patch
@@ -0,0 +1,29 @@
+Correct default for Binary::has_nx on ppc64
+
+From the Linux kernel source:
+
+ * This is the default if a program doesn't have a PT_GNU_STACK
+ * program header entry. The PPC64 ELF ABI has a non executable stack
+ * stack by default, so in the absence of a PT_GNU_STACK program header
+ * we turn execute permission off.
+
+This patch can be dropped the next time we update LIEF.
+
+diff --git a/src/ELF/Binary.cpp b/src/ELF/Binary.cpp
+index a90be1ab..fd2d9764 100644
+--- a/src/ELF/Binary.cpp
++++ b/src/ELF/Binary.cpp
+@@ -1084,7 +1084,12 @@ bool Binary::has_nx() const {
+ return segment->type() == SEGMENT_TYPES::PT_GNU_STACK;
+ });
+ if (it_stack == std::end(segments_)) {
+- return false;
++ if (header().machine_type() == ARCH::EM_PPC64) {
++ // The PPC64 ELF ABI has a non-executable stack by default.
++ return true;
++ } else {
++ return false;
++ }
+ }
+
+ return !(*it_stack)->has(ELF_SEGMENT_FLAGS::PF_X);
diff --git a/contrib/guix/patches/nsis-disable-installer-reloc.patch b/contrib/guix/patches/nsis-disable-installer-reloc.patch
new file mode 100644
index 0000000000..4914527e56
--- /dev/null
+++ b/contrib/guix/patches/nsis-disable-installer-reloc.patch
@@ -0,0 +1,30 @@
+Patch NSIS so that it's installer stubs, produced at NSIS build time,
+do not contain .reloc sections, which will exist by default when using
+binutils/ld 2.36+.
+
+This ultimately fixes an issue when running the installer with the
+"Force randomization for images (Mandatory ASLR)" setting active.
+
+This patch has not yet been sent upstream, because it's not clear if this
+is the best fix, for the underlying issue, which seems to be that makensis
+doesn't account for .reloc sections when it builds installers.
+
+The existence of a reloc section shouldn't be a problem, and, if anything,
+is actually a requirement for working ASLR. All other Windows binaries we
+produce contain them, and function correctly when under the same
+"Force randomization for images (Mandatory ASLR)" setting.
+
+See:
+https://github.com/bitcoin/bitcoin/issues/25726
+https://sourceforge.net/p/nsis/bugs/1131/
+
+--- a/SCons/Config/gnu
++++ b/SCons/Config/gnu
+@@ -102,6 +102,7 @@ stub_env.Append(LINKFLAGS = ['-mwindows']) # build windows executables
+ stub_env.Append(LINKFLAGS = ['$NODEFLIBS_FLAG']) # no standard libraries
+ stub_env.Append(LINKFLAGS = ['$ALIGN_FLAG']) # 512 bytes align
+ stub_env.Append(LINKFLAGS = ['$MAP_FLAG']) # generate map file
++stub_env.Append(LINKFLAGS = ['-Wl,--disable-reloc-section'])
+
+ conf = FlagsConfigure(stub_env)
+ conf.CheckCompileFlag('-fno-tree-loop-distribute-patterns') # GCC 10: Don't generate msvcrt!memmove calls (bug #1248)
diff --git a/contrib/macdeploy/README.md b/contrib/macdeploy/README.md
index 64e36f22b9..599a0bfa6c 100644
--- a/contrib/macdeploy/README.md
+++ b/contrib/macdeploy/README.md
@@ -20,7 +20,7 @@ can be extracted from
[Xcode_12.2.xip](https://download.developer.apple.com/Developer_Tools/Xcode_12.2/Xcode_12.2.xip).
Alternatively, after logging in to your account go to 'Downloads', then 'More'
-and search for [`Xcode_12.2`](https://developer.apple.com/download/all/?q=Xcode%2012.2).
+and search for [`Xcode 12.2`](https://developer.apple.com/download/all/?q=Xcode%2012.2).
An Apple ID and cookies enabled for the hostname are needed to download this.
diff --git a/contrib/message-capture/message-capture-parser.py b/contrib/message-capture/message-capture-parser.py
index eefd22a60e..33759ee713 100755
--- a/contrib/message-capture/message-capture-parser.py
+++ b/contrib/message-capture/message-capture-parser.py
@@ -79,8 +79,7 @@ def to_jsonable(obj: Any) -> Any:
val = getattr(obj, slot, None)
if slot in HASH_INTS and isinstance(val, int):
ret[slot] = ser_uint256(val).hex()
- elif slot in HASH_INT_VECTORS:
- assert all(isinstance(a, int) for a in val)
+ elif slot in HASH_INT_VECTORS and all(isinstance(a, int) for a in val):
ret[slot] = [ser_uint256(a).hex() for a in val]
else:
ret[slot] = to_jsonable(val)
diff --git a/contrib/seeds/makeseeds.py b/contrib/seeds/makeseeds.py
index 37c6f5fd7c..eda58c370f 100755
--- a/contrib/seeds/makeseeds.py
+++ b/contrib/seeds/makeseeds.py
@@ -1,5 +1,5 @@
#!/usr/bin/env python3
-# Copyright (c) 2013-2020 The Bitcoin Core developers
+# Copyright (c) 2013-2022 The Bitcoin Core developers
# Distributed under the MIT software license, see the accompanying
# file COPYING or http://www.opensource.org/licenses/mit-license.php.
#
@@ -7,10 +7,10 @@
#
import argparse
+import collections
import ipaddress
import re
import sys
-import collections
from typing import List, Dict, Union
from asmap import ASMap, net_to_prefix
@@ -38,7 +38,8 @@ PATTERN_AGENT = re.compile(
r"0.20.(0|1|2|99)|"
r"0.21.(0|1|2|99)|"
r"22.(0|99)|"
- r"23.99"
+ r"23.(0|99)|"
+ r"24.99"
r")")
def parseline(line: str) -> Union[dict, None]:
diff --git a/contrib/seeds/nodes_main.txt b/contrib/seeds/nodes_main.txt
index d8e34bdb60..f8572b26c7 100644
--- a/contrib/seeds/nodes_main.txt
+++ b/contrib/seeds/nodes_main.txt
@@ -1,688 +1,856 @@
-2.37.30.144:8777
-2.138.174.158:8333
-2.152.78.124:8333
-5.8.18.154:8333
-5.45.74.50:8333
-5.79.123.3:8333
-5.102.168.217:22220
-5.103.137.146:9333
-5.128.87.126:8333
-5.172.132.200:8333
-5.188.62.18:8333
-5.254.101.226:8334
-8.210.18.56:8333
-8.210.92.32:8333
-14.13.34.225:16181
-14.39.151.167:8333
-18.196.79.108:8333
-18.218.139.58:48333
-20.184.15.116:8433
-23.175.0.220:8333
-23.233.107.21:8333
-24.35.68.229:8333
-24.37.3.26:8333
-24.102.91.203:8333
-24.116.153.115:8333
-24.134.6.165:8333
-24.155.218.13:8333
-24.160.137.173:8333
-24.177.106.85:8333
-24.184.0.146:8333
-24.194.222.116:8333
-24.205.215.192:8333
-27.124.108.19:8333
-31.14.40.64:8333
-31.47.202.112:8333
-31.165.115.7:8333
-34.65.45.157:8333
-34.78.48.104:8333
-34.80.134.68:8333
-34.101.132.198:8333
-34.227.68.216:8333
-35.137.212.22:8333
-35.231.190.134:8333
-37.1.217.35:8333
-37.15.62.32:8333
-37.143.118.174:8333
-37.200.59.67:8333
-37.205.9.165:8333
-38.23.180.228:8333
-38.65.119.26:8333
-38.141.134.140:8333
-39.109.122.127:8444
-41.79.70.146:8333
-41.193.122.191:8333
-43.225.62.107:8333
-45.35.73.152:8333
-45.43.97.103:8333
-45.63.10.52:20008
-45.84.153.40:8333
-45.95.64.225:8333
-45.129.180.214:8333
-45.154.255.162:8333
-45.226.80.102:8333
-46.6.10.230:8333
-46.23.87.218:8333
-46.32.50.98:8333
-46.47.84.85:8333
-46.48.126.58:8333
-46.146.248.89:8333
-46.165.221.209:9333
-46.166.142.2:8333
-46.166.162.45:20001
-46.173.50.58:8333
-46.175.178.3:8333
-46.188.30.118:8333
-46.219.120.59:3673
-46.229.238.187:8333
-47.93.230.171:8333
-47.100.162.210:18332
-47.144.106.249:8333
-47.188.70.205:8333
-47.227.226.242:8333
-50.2.13.164:8333
-50.5.46.195:8333
-50.45.128.28:8333
-51.148.153.60:8333
-51.154.62.103:8333
-51.154.131.18:8333
-51.158.150.155:8333
-51.159.2.218:8333
-54.198.19.34:8333
-58.105.168.41:8333
-58.158.0.86:8333
-60.251.129.61:8336
-61.239.91.250:8333
-62.28.190.194:8333
-62.152.58.16:9421
-62.171.129.32:8333
-62.251.54.163:8333
-63.247.147.166:8333
-64.33.68.176:8333
-64.156.192.61:8333
-64.187.175.226:8333
-64.233.245.39:8333
-64.237.82.149:8333
-65.101.247.26:8333
-66.29.129.218:8333
-66.49.204.11:8333
-66.58.243.215:8333
-66.85.234.129:8333
-66.130.120.52:8333
-67.10.121.145:8333
-67.210.228.203:8333
-67.213.87.21:8333
-68.181.4.12:8333
-69.7.124.146:8333
-69.8.175.201:8333
-69.59.18.22:8333
-69.119.193.9:8333
-69.130.201.27:8333
-69.131.101.176:8333
-70.15.194.32:8333
-70.64.27.12:8333
-72.29.170.151:8333
-72.74.34.99:8333
-72.133.177.119:8333
-73.166.84.222:8333
-74.67.240.204:8333
-74.91.115.229:8333
-74.118.137.119:8333
-74.213.251.203:8333
-74.220.255.190:8333
-76.11.60.155:8333
-76.66.144.127:8333
-77.70.16.245:8333
-77.85.204.149:8333
-77.105.87.97:8333
-77.120.113.69:8433
-77.120.113.71:8433
-77.120.122.116:8433
-77.120.122.118:8433
-77.162.190.90:8333
-77.167.245.239:55544
-77.232.41.189:8333
-78.20.227.249:8333
-78.21.167.8:8333
-78.27.139.13:8333
-78.43.208.25:8333
-78.63.28.146:8333
-78.72.228.239:8333
-78.108.102.8:8333
-78.129.0.39:8333
-78.129.169.69:8333
-79.77.182.180:8333
-79.77.182.183:8333
-79.107.178.59:8333
-80.55.225.158:8333
-80.64.211.102:8333
-80.64.211.103:8333
-80.71.57.50:8333
-80.81.3.27:8333
-80.82.55.43:8333
-80.88.172.227:64264
-80.89.203.172:8001
-80.93.213.246:8333
-80.147.82.165:8333
-80.229.28.60:8333
-80.247.233.40:8333
-80.255.8.93:8333
-81.7.17.202:8333
-81.10.241.165:8333
-81.21.86.157:8333
-81.171.22.143:8333
-81.237.206.224:8343
-82.69.23.195:8333
-82.96.96.40:8333
-82.116.50.101:8333
-82.136.99.122:8333
-82.149.97.25:17567
-82.154.24.209:8333
-82.165.241.50:8333
-82.197.218.253:8333
-82.202.68.231:8333
-83.137.41.10:8333
-83.208.6.211:8333
-83.217.8.31:44420
-83.220.110.48:8333
-83.222.138.85:8333
-83.243.191.199:8333
-84.22.139.57:8333
-84.27.155.17:8333
-84.75.28.247:8333
-84.112.60.16:8333
-84.211.7.56:8333
-84.237.7.249:8333
-85.23.51.177:8333
-85.24.145.198:8333
-85.184.138.108:8333
-85.194.238.134:8333
-85.195.54.110:8333
-85.208.71.36:8333
-85.208.71.39:8333
-85.214.136.45:8333
-85.214.161.252:8333
-85.227.245.128:8333
-86.18.34.243:8333
-86.20.50.170:8333
-86.49.105.90:8333
-86.76.7.132:8333
-86.100.26.188:8333
-86.106.143.143:55373
-86.120.58.66:8333
-86.133.251.239:8901
-86.149.8.23:8901
-87.78.197.234:8333
-87.120.8.5:20008
-87.121.37.156:8333
-88.82.181.44:8333
-88.87.93.52:1691
-88.98.235.134:8333
-88.136.187.214:8333
-88.147.244.250:8333
-88.148.153.148:8333
-88.212.45.166:8333
-88.212.55.138:8333
-89.38.96.153:9273
-89.47.161.135:8333
-89.88.62.190:8333
-89.158.32.44:8333
-89.163.145.240:8333
-89.163.249.234:3673
-89.176.196.80:8333
-89.216.21.96:8333
-90.84.227.255:8333
-90.146.130.214:8333
-90.250.9.1:8333
-91.93.194.154:8333
-91.106.188.229:8333
-91.126.40.109:8333
-91.137.127.123:8333
-91.147.232.98:8333
-91.152.123.18:8333
-91.178.17.120:8333
-91.204.99.178:8333
-91.223.175.14:8333
-92.42.110.242:8333
-92.53.90.84:8333
-92.221.155.228:8333
-93.57.81.162:8333
-93.95.88.13:8333
-93.103.13.1:8333
-93.123.180.164:8333
-93.190.117.26:8333
-94.105.125.240:8333
-94.110.23.215:8333
-94.154.159.99:8333
-94.189.161.119:8333
-94.203.255.70:8333
-94.232.173.93:8333
-95.79.122.99:8333
-95.80.1.110:8333
-95.83.73.31:8333
-95.110.133.223:8333
-95.110.234.93:8333
-95.164.65.194:8333
-95.165.8.182:8333
-95.174.219.101:8333
-95.191.130.100:8333
-95.214.53.154:8333
-95.215.205.180:8333
-96.43.130.234:8333
-98.25.201.31:8333
-98.128.247.182:8333
-98.171.21.129:8333
-99.147.135.161:8333
-101.100.163.118:8327
-102.132.245.16:8333
-102.182.204.96:8333
-102.182.235.245:8333
-103.14.245.250:8333
-103.47.192.15:8333
-103.84.84.250:8335
-103.99.168.130:8333
-103.99.168.140:8333
-103.198.192.14:20008
-103.232.104.227:8333
-104.143.2.195:8333
-104.172.235.227:8333
-104.238.220.199:8333
-107.11.115.68:8333
-107.173.166.43:8333
-108.4.212.83:8333
-109.136.73.97:8333
-109.173.98.23:8333
-109.190.68.116:8333
-109.235.246.60:8333
-109.248.206.13:8333
-110.12.64.96:8333
-111.90.140.46:8333
-111.90.159.184:50001
-113.107.201.131:8333
-115.47.141.250:8885
-116.58.171.67:8333
-116.87.57.218:8333
-116.202.161.56:8333
-117.51.159.130:8333
-118.103.126.140:28333
-121.45.190.210:8333
-121.99.193.25:8333
-122.112.148.153:8339
-122.148.135.234:8333
-128.0.190.26:8333
-128.65.194.136:8333
-129.126.172.115:8333
-129.226.125.10:8333
-131.188.40.191:8333
-134.195.185.52:8333
-135.180.44.61:8333
-136.52.114.123:8333
-136.56.170.96:8333
-137.116.213.143:8333
-137.226.34.46:8333
-138.43.233.57:8333
-139.130.41.82:8333
-140.190.12.129:8333
-142.4.105.77:8333
-142.54.181.218:8333
-143.177.231.247:8333
-143.178.64.10:8333
-144.34.161.65:18333
-146.4.124.134:8333
-146.83.56.69:8333
-146.90.193.68:8333
-146.196.55.156:28833
-148.66.50.50:8335
-148.251.1.20:8343
-151.48.95.212:8333
-151.252.193.245:8333
-152.44.137.83:8333
-152.115.191.196:8333
-154.221.31.86:8333
-156.17.103.2:8088
-157.138.20.22:8333
-158.58.188.37:8333
-158.140.209.79:8333
-159.89.230.128:8333
-159.246.25.52:8333
-160.20.59.250:8433
-162.0.234.190:8333
-162.62.26.218:8333
-162.250.188.194:8333
-162.251.70.82:8333
-163.158.206.255:8333
-164.68.105.105:8333
-165.228.174.117:8333
-166.62.82.103:32771
-166.70.49.26:8333
-166.78.241.9:8333
-166.78.241.25:8333
-167.71.73.244:8333
-167.179.147.155:8333
-168.91.238.8:8333
-172.105.21.216:8333
-172.117.105.95:8333
-173.23.103.30:8000
-173.205.92.151:54805
-173.205.92.154:54805
-173.205.92.157:54805
-173.208.152.218:8333
-173.241.227.243:8333
-174.3.4.232:8333
-174.17.11.22:8333
-174.88.241.167:8333
-174.114.102.41:8333
-174.114.250.86:8333
-174.142.191.136:8333
-175.39.72.87:8333
-176.12.16.135:8333
-176.37.23.30:8333
-176.62.179.221:8333
-176.74.136.237:8333
-176.99.6.226:8333
-176.212.185.153:8333
-177.81.236.117:8333
-178.19.106.26:8333
-178.21.118.178:8333
-178.33.232.69:8333
-178.79.84.139:8333
-178.124.162.209:8333
-178.132.2.246:8333
-178.150.96.46:8333
-178.162.212.44:8333
-178.193.226.120:8333
-178.236.137.63:8333
-180.150.46.187:8333
-181.164.210.228:8530
-183.110.220.210:30301
-184.95.58.166:8336
-184.164.147.82:41333
-184.171.208.109:8333
-185.17.143.220:8333
-185.21.217.49:8333
-185.25.48.184:8333
-185.28.96.16:8333
-185.31.136.246:8333
-185.64.116.15:8333
-185.68.249.91:8333
-185.108.247.190:8333
-185.141.60.36:8333
-185.148.3.227:8333
-185.148.145.74:8333
-185.159.20.143:8333
-185.167.113.59:8333
-185.185.26.141:8111
-185.189.132.178:57780
-185.204.197.112:8333
-185.209.70.17:8333
-185.220.156.193:8333
-185.238.129.113:8333
-185.239.221.5:8333
-185.244.217.39:8333
-185.254.97.164:8333
-186.33.167.11:8333
-188.32.14.31:8334
-188.42.40.234:18333
-188.134.8.36:8333
-188.138.88.14:8333
-188.156.110.239:8333
-188.165.244.143:8333
-188.213.68.38:8333
-188.214.129.65:20012
-188.242.15.74:8333
-188.244.4.78:8333
-189.39.6.82:8333
-189.207.46.32:8333
-189.212.121.74:8333
-192.3.11.20:8333
-192.65.170.15:8333
-192.146.137.44:8333
-192.182.157.119:8333
-192.187.109.141:8333
-192.227.80.83:8333
-193.10.203.23:8334
-193.32.127.160:58477
-193.32.127.162:58477
-193.58.196.212:8333
-193.106.29.106:8333
-193.138.154.43:8333
-193.178.170.232:8333
-193.196.37.62:8333
-193.222.130.14:8333
-193.234.50.227:8333
-194.14.246.205:8333
-194.135.135.69:8333
-194.147.113.201:8333
-194.165.30.20:8333
-194.219.62.23:8333
-195.56.63.4:8333
-195.134.183.188:8333
-195.208.103.30:8444
-195.208.103.31:8444
-198.1.231.6:8333
-198.12.14.136:8333
-198.84.237.70:8333
-198.178.120.5:8112
-199.48.92.184:8333
-199.68.199.19:8333
-199.182.184.204:8333
-199.189.242.141:8333
-199.247.7.208:8333
-200.122.181.37:8333
-201.191.6.103:8333
-202.107.219.130:8333
-202.108.211.135:8333
-203.94.33.112:8333
-203.130.48.117:8885
-203.132.94.196:8333
-203.162.13.181:8332
-204.191.201.43:8333
-204.229.10.90:8333
-205.178.41.124:8333
-206.55.178.157:8333
-206.126.203.8:8333
-206.174.115.96:8333
-206.223.153.52:8333
-207.188.159.25:8333
-207.229.46.80:8333
-209.58.145.157:8333
-209.126.81.147:8333
-209.145.63.150:8333
-209.209.10.30:8333
-209.237.127.227:8333
-212.99.226.36:9020
-212.185.86.84:8333
-212.227.211.87:8333
-213.5.36.58:8333
-213.89.236.219:8333
-213.93.145.183:8333
-213.214.66.182:8333
-216.41.249.178:8333
-216.146.251.8:8333
-216.249.70.22:8333
-217.11.240.4:8333
-217.15.178.7:8333
-217.24.233.116:8333
-217.64.148.98:51401
-217.113.121.169:8333
-217.170.124.170:8333
-220.132.135.54:8333
-220.221.58.25:8333
-220.233.178.199:8333
-221.219.97.105:2001
-[2001:1608:1b:f9::1]:26491
-[2001:1620:510::2]:8333
-[2001:1bc0:c1::2000]:8333
-[2001:470:1f0a:89a::2]:8333
-[2001:470:de5a::ec]:9333
-[2001:4b98:dc0:45:216:3eff:fea2:95cd]:8333
-[2001:4dd0:3564:0:fd76:c1d3:1854:5bd9]:8333
-[2001:4de8:b1b2:1:0:dead:beef:7]:8333
-[2001:638:a000:4140::ffff:191]:8333
-[2001:648:2800:131:4b1f:f6fc:20f7:f99f]:8333
-[2001:678:cc8::1:10:88]:20008
-[2001:67c:26b4:ff00::44]:8333
-[2001:67c:2db8:13::92]:8333
-[2001:7c0:2310:0:f816:3eff:fe6c:4f58]:8333
-[2001:818:ea1b:7600:f053:aade:f47b:b701]:8333
-[2001:8f1:1404:3700:8e49:715a:2e09:b634]:9444
-[2001:985:55a0:1::2]:8333
-[2001:999:270:2c2c:c8b:3a20:3f2f:318f]:8333
-[2001:b07:ac9:442b:79d6:bbbe:b37c:a783]:8333
-[2002:2f5b:a5f9::2f5b:a5f9]:8885
-[2002:b6ff:3dca::b6ff:3dca]:28364
-[2400:2410:cea2:d00:41bc:c9ea:861b:51ee]:8333
-[2400:3b00:20:c:bacb:29ff:feab:8886]:8333
-[2401:d002:3902:700:d72c:5e22:4e95:389d]:8333
-[2403:6200:88a0:fb17:f5f2:d8b5:b7ba:f4d3]:8333
-[2405:9800:b910:5f8e:1830:f630:2cc6:88fb]:8333
-[2405:9800:b970:c64c:109f:74e7:ae5f:87c7]:8333
-[2405:aa00:2::40]:8333
-[2407:8800:bc61:2202:d63d:7eff:fe6c:dc36]:8333
-[2408:8248:7004:f831::83c]:8333
-[2409:10:ca20:1df0:224:e8ff:fe1f:60d9]:8333
-[240b:11:43a1:bd00:e589:f8a7:49b:3b86]:8333
-[240d:1a:791:3400:d65d:64ff:fe28:927e]:8333
-[240d:1a:791:3400:d681:d7ff:fef6:a21e]:10050
-[2600:1700:5b2b:5f::8040]:8333
-[2600:2104:1003:c5ab:dc5e:90ff:fe18:1d08]:8333
-[2600:3c00:e002:2e32::1:14]:8333
-[2600:8805:2400:14e:12dd:b1ff:fef2:3013]:8333
-[2602:ffb8::208:72:57:200]:8333
-[2603:301f:1ebf:e000:e23f:49ff:fee7:7431]:8333
-[2603:6081:1800:6600:16dd:a9ff:feee:b2f3]:8333
-[2604:1380:1000:7400::1]:8333
-[2604:4500::2e06]:8112
-[2604:5500:c134:4000:7285:c2ff:fe4a:e143]:32797
-[2604:5500:c134:4000::3fc]:32797
-[2604:7c00:120:4b::eb24]:8333
-[2605:6400:30:f220::]:8333
-[2605:6f80:0:7:fc1b:ccff:fe8a:d822]:8333
-[2605:ae00:203::203]:8333
-[2605:c000:2a0a:1::102]:8333
-[2605:f700:c0:827:225:90ff:fee3:34a6]:8333
-[2607:9280:b:73b:250:56ff:fe14:25b5]:8333
-[2607:f2f8:ad40:bc1::1]:8333
-[2607:fa18:3a01::20]:8333
-[2620:11c:5001:1118:d267:e5ff:fee9:e673]:8333
-[2620:11c:5001:2199:d267:e5ff:fee9:e673]:8333
-[2620:6:2003:105:2d8:61ff:fe0f:853]:8333
-[2620:6e:a000:1:42:42:42:42]:8333
-[2803:cf00:af8:f200:b89e:cf34:92c7:2d26]:8333
-[2804:14c:65d1:402c:bc53:bf5d:68a:2136]:8333
-[2804:7f1:e783:d401:661c:67ff:feba:5547]:8333
-[2804:d57:5537:4800:21e:67ff:fea8:d798]:8333
-[2804:d57:5537:4800:3615:9eff:fe23:d610]:8333
-[2806:2f0:2080:62a:86f:1a01:c44f:1794]:8333
-[2a00:1028:8382:bf22:5f7f:b78f:2737:7739]:8333
-[2a00:12e0:101:99:20c:29ff:fe29:d03f]:8333
-[2a00:1328:e101:c00::163]:8333
-[2a00:1630:10:1003:0:b19:b00b:babe]:8333
-[2a00:1768:2001:27::ef6a]:8333
-[2a00:1828:a004:2::666]:8333
-[2a00:1838:2a:1400:92e2:baff:fe4a:c416]:8333
-[2a00:1c10:2:709::217]:22220
-[2a00:1f40:5001:108:5d17:7703:b0f5:4133]:8333
-[2a00:6020:15dd:ee00:c8c2:2c77:1749:35db]:8333
-[2a00:6020:b482:9200:491a:358c:d8f7:1da]:8333
-[2a00:7145:c1:1:ae29:727:2b87:f64]:5141
-[2a00:8a60:e012:a00::21]:8333
-[2a00:a040:100:f3:45a5:ac0:fea3:71e1]:8333
-[2a01:488:2000:9801::d]:8333
-[2a01:490:16:301::2]:8333
-[2a01:5200:6c:6162:7a61:746b:6f2e:736b]:8333
-[2a01:6380:fffe:73:4e3:b3cc:a871:36d1]:8333
-[2a01:7a0:2:137c::3]:8333
-[2a01:7c8:aac9:c9:5054:ff:fedf:ff95]:8333
-[2a01:7c8:d001:1c1:5054:ff:feee:3e1a]:8333
-[2a01:8740:1:ffc5::8c6a]:8333
-[2a01:cb00:d3d:7700:227:eff:fe28:c565]:8333
-[2a01:d0:0:1c::253]:8333
-[2a01:d0:bef2::12]:8333
-[2a01:e0a:9fb:b0e0:54f8:1901:6e83:62c1]:8333
-[2a01:e0a:aa7:c8c0:9679:affa:b6e5:efc7]:8333
-[2a02:13b8:f000:101::a]:8333
-[2a02:168:6328:0:2a8:2cff:fe68:e32c]:8333
-[2a02:2780:9000:70::7]:8333
-[2a02:2e02:3900:5400:a099:e1ff:feb6:d0e]:8333
-[2a02:390:9000:0:aaa1:59ff:fe43:b57b]:8333
-[2a02:58:97:7d20::60]:8333
-[2a02:6d40:305e:601:dea6:32ff:fe44:4b25]:8333
-[2a02:7a01::91:228:45:130]:8333
-[2a02:7aa0:1619::adc:8de0]:8333
-[2a02:7b40:3e4d:998d::1]:8333
-[2a02:7b40:592f:a187::1]:8333
-[2a02:8388:e5c6:d380:201:2eff:fe82:b3cc]:8333
-[2a02:9a0:102::110]:8333
-[2a02:a311:8143:8c00::4]:8353
-[2a02:af8:fab0:808:85:234:145:132]:8333
-[2a02:e00:fff0:506::1]:8444
-[2a02:e00:fff0:506::a]:8444
-[2a02:e98:20:1504::1]:8333
-[2a03:4000:47:f1::1]:8333
-[2a03:6000:870:0:46:23:87:218]:8333
-[2a03:7380:3015:524:afc5:d3bc:7c66:8f94]:8333
-[2a03:ec0:0:928:8c00:93ff:fe84:a007]:8333
-[2a03:ec0:0:928::701]:8333
-[2a04:2180:0:2::aa]:8333
-[2a04:52c0:101:29e::]:8333
-[2a04:52c0:103:c455::1]:8333
-[2a04:bc40:1dc3:8d::2:1001]:8333
-[2a05:1500:702:0:1c00:40ff:fe00:c]:8333
-[2a06:dd00:10:3:225:90ff:fe32:64cc]:8333
-[2a06:dd00:1:22:225:90ff:fe0e:bd48]:8333
-[2a07:6b47:100:464::9357:ffda]:8333
-[2a07:a880:4601:1062:b4b4:bd2a:39d4:7acf]:51401
-[2a07:abc4::1:946]:8333
-[2a07:abc4::89:234:180:194]:8333
-[2a09:2681:102::210]:8333
-[2a0a:c801:1:7::183]:8333
-[2a0b:f300:2:6::2]:8333
-[2a0c:59c0:18::a20e]:57658
-[2a0d:5600:24:a8e::a91e]:55373
-[2a0d:eb00:8005:1::13]:8333
-[2a10:4740:45:1:a013:d1ff:fe85:36e3]:8333
-[2a10:8b40:1::103]:8335
-[2c0f:f8f0:da51:0:70c3:eea9:9717:9579]:8333
+2.3.25.181:8333 # AS3215
+2.152.78.124:8333 # AS12430
+5.39.74.166:8333 # AS16276
+5.45.79.81:18332 # AS50673
+5.53.16.128:8333 # AS50923
+5.95.186.78:8333 # AS30722
+5.128.87.126:8333 # AS31200
+5.133.65.82:8333 # AS15440
+5.146.20.229:8333 # AS3209
+5.180.41.119:8333 # AS18978
+5.188.62.18:8333 # AS34665
+5.199.173.66:8333 # AS16125
+5.255.97.25:8333 # AS60404
+5.255.103.180:8333 # AS60404
+8.209.70.77:8333 # AS45102
+8.209.105.138:8333 # AS45102
+18.162.208.153:48332 # AS16509
+23.175.0.200:8333 # AS395502
+23.175.0.222:8333 # AS395502
+23.233.107.21:8333 # AS5645
+23.236.25.169:8333 # AS30029
+24.35.68.229:8333 # AS11404
+24.84.164.50:8333 # AS6327
+24.116.153.115:8333 # AS11492
+24.184.0.146:8333 # AS6128
+27.33.160.196:8333 # AS7545
+27.124.108.19:8333 # AS58511
+27.148.206.140:8333 # AS4134
+31.17.64.192:8333 # AS204028
+31.18.114.135:8333 # AS204028
+31.41.23.249:8333 # AS31287
+31.42.176.138:8333 # AS43641
+31.47.202.112:8333 # AS34385
+34.65.45.157:8333 # AS15169
+34.80.134.68:8333 # AS15169
+34.126.115.35:8333 # AS396982
+37.1.204.231:8333 # AS50673
+37.120.155.34:8333 # AS9009
+37.143.118.174:8333 # AS48926
+37.193.227.16:8333 # AS31200
+37.220.135.151:8333 # AS41206
+37.235.146.236:8333 # AS41268
+38.124.126.42:8333 # AS11550
+38.141.134.140:8333 # AS174
+38.145.151.150:8333 # AS40545
+40.115.137.28:8333 # AS8075
+41.72.154.66:8333 # AS37153
+41.79.70.146:8333 # AS37349
+42.193.55.135:8333 # AS45090
+43.225.62.107:8333 # AS63953
+45.43.97.103:8333 # AS26827
+45.85.48.58:8333 # AS208016
+45.126.26.229:8333 # AS45763
+45.134.142.40:8333 # AS60068
+45.154.252.162:8333 # AS13335
+46.13.216.169:8333 # AS6855
+46.23.87.218:8333 # AS51088
+46.40.127.164:8333 # AS43205
+46.48.126.58:8333 # AS12668
+46.59.13.35:8333 # AS8473
+46.72.238.17:8333 # AS12714
+46.128.141.184:8333 # AS16097
+46.146.248.89:8333 # AS9049
+46.165.221.209:9333 # AS28753
+46.166.142.2:8333 # AS43350
+46.175.178.3:8333 # AS28725
+47.36.144.51:8333 # AS20115
+47.180.49.158:8333 # AS5650
+49.228.131.133:2210 # AS133481
+50.2.13.164:8333 # AS62904
+50.35.71.51:8333 # AS20055
+50.53.250.162:8333 # AS20055
+51.68.36.57:8333 # AS16276
+51.138.4.135:30001 # AS8075
+51.154.62.103:8333 # AS15796
+51.158.150.155:8333 # AS12876
+54.176.63.16:8333 # AS16509
+58.158.0.86:8333 # AS2519
+59.138.115.137:8333 # AS2516
+59.167.191.60:8333 # AS4739
+60.205.205.119:8333 # AS37963
+60.234.122.245:8333 # AS9790
+60.240.210.155:8333 # AS7545
+61.239.91.250:8333 # AS9269
+62.74.143.11:8333 # AS3329
+62.138.162.12:8333 # AS20773
+62.169.74.233:8333 # AS2860
+62.171.129.32:8333 # AS51167
+62.209.198.65:8333 # AS6855
+63.247.147.166:8333 # AS30221
+64.98.76.62:8333 # AS32133
+66.29.129.218:8333 # AS22612
+66.96.235.28:8333 # AS63859
+66.130.120.52:8333 # AS5769
+66.198.209.243:8333 # AS33152
+66.208.64.128:8333 # AS10352
+66.225.231.148:8333 # AS23352
+67.55.3.200:8333 # AS33139
+67.58.232.107:8333 # AS14051
+67.211.92.2:8333 # AS11711
+67.223.119.122:8333 # AS22612
+68.48.131.251:8333 # AS7922
+68.181.4.12:8333 # AS47
+69.14.185.9:8333 # AS12083
+69.54.29.193:8333 # AS12282
+69.59.18.22:8333 # AS397444
+69.131.101.176:8333 # AS4181
+69.165.205.142:8833 # AS5645
+69.228.219.124:8333 # AS7018
+70.59.123.25:8333 # AS209
+70.62.13.150:8333 # AS7843
+70.66.248.170:8333 # AS6327
+70.112.153.229:8333 # AS7843
+70.160.240.132:8333 # AS22773
+70.190.177.204:8333 # AS22773
+71.28.189.239:8333 # AS398465
+71.234.125.198:8333 # AS1351
+72.74.123.179:8333 # AS701
+72.253.236.217:8333 # AS36149
+73.219.254.120:8333 # AS1351
+74.91.115.229:8333 # AS14586
+74.118.137.119:8333 # AS20326
+74.195.166.100:8333 # AS19108
+74.220.255.190:8333 # AS23175
+76.67.211.110:8333 # AS577
+76.169.163.14:8333 # AS20001
+77.32.121.162:8333 # AS35612
+77.53.135.74:8333 # AS45011
+77.70.16.245:8333 # AS8717
+77.85.204.149:8333 # AS8866
+77.107.38.239:8333 # AS62183
+77.120.26.102:8333 # AS25229
+77.162.190.90:8333 # AS1136
+78.20.227.249:8333 # AS6848
+78.21.167.8:8333 # AS6848
+78.27.139.13:8333 # AS6723
+78.90.91.220:8333 # AS8717
+78.108.108.25:8333 # AS8251
+78.108.108.38:8333 # AS8251
+79.77.182.183:8333 # AS13285
+79.98.159.7:11333 # AS44065
+79.189.211.201:8333 # AS5617
+80.55.225.158:8333 # AS5617
+80.83.186.35:8333 # AS33891
+80.88.172.227:64264 # AS31263
+80.209.87.103:9333 # AS31027
+80.229.28.60:8333 # AS2856
+81.7.16.182:8333 # AS35366
+81.7.17.202:8333 # AS35366
+81.19.10.2:8333 # AS24641
+81.88.221.190:8333 # AS39709
+81.171.22.143:8333 # AS60781
+81.224.44.164:8333 # AS3301
+81.224.160.81:8333 # AS3301
+82.1.68.54:8333 # AS5089
+82.21.164.47:8333 # AS5089
+82.64.116.5:8333 # AS12322
+82.66.10.11:8333 # AS12322
+82.96.96.40:8333 # AS29686
+82.116.50.101:8333 # AS30936
+82.129.68.62:8333 # AS48945
+82.136.99.122:8333 # AS8821
+82.154.24.209:8333 # AS8657
+82.197.215.125:8333 # AS25596
+83.128.132.91:8333 # AS15435
+83.137.41.10:8333 # AS31394
+83.208.6.211:8333 # AS5610
+83.208.193.242:8333 # AS5610
+83.222.138.85:8333 # AS31736
+83.240.124.68:8333 # AS31246
+83.243.191.199:8333 # AS41164
+84.9.5.211:8333 # AS5378
+84.28.57.90:8333 # AS6830
+84.38.3.249:8333 # AS196691
+84.112.60.16:8333 # AS8412
+84.215.56.119:8333 # AS41164
+84.226.243.175:8333 # AS6730
+84.245.14.73:8333 # AS25596
+84.252.157.90:18333 # AS200590
+84.255.244.61:8333 # AS34779
+85.23.24.123:8333 # AS16086
+85.52.185.29:8666 # AS12479
+85.58.120.201:8333 # AS12479
+85.93.96.18:8333 # AS29208
+85.165.8.197:8333 # AS2119
+85.173.165.66:8333 # AS12389
+85.184.143.105:8333 # AS39642
+85.191.74.103:8333 # AS39642
+85.194.238.134:8333 # AS47605
+85.195.54.110:8333 # AS35706
+85.195.196.142:8333 # AS13030
+85.208.69.11:8333 # AS25091
+85.208.69.21:8333 # AS25091
+85.208.71.36:8333 # AS42275
+85.208.71.39:8333 # AS42275
+85.214.118.71:8333 # AS6724
+85.214.161.252:8333 # AS6724
+85.216.32.73:8333 # AS51185
+85.254.98.221:8333 # AS13194
+86.58.11.152:8333 # AS3212
+86.95.8.249:8333 # AS1136
+86.100.26.188:8333 # AS39007
+86.106.143.143:55373 # AS9009
+86.124.145.184:8333 # AS8708
+86.133.251.239:8901 # AS2856
+87.79.94.221:8333 # AS8422
+87.120.8.5:20008 # AS34224
+87.125.157.220:8333 # AS12430
+88.9.76.133:8333 # AS3352
+88.90.184.68:8333 # AS2119
+88.151.101.14:5000 # AS41075
+88.151.101.253:5000 # AS41075
+88.198.92.47:8333 # AS24940
+88.208.115.70:8333 # AS29208
+88.210.15.24:8333 # AS212702
+88.212.45.166:8333 # AS42841
+89.102.206.238:8333 # AS16019
+89.103.111.34:8333 # AS16019
+89.114.143.113:8333 # AS12353
+89.134.62.74:8333 # AS21334
+89.152.8.231:8333 # AS2860
+89.161.26.78:8333 # AS39375
+89.207.131.19:8333 # AS49544
+89.248.193.229:8333 # AS49505
+90.3.48.62:8333 # AS3215
+90.146.121.97:8333 # AS12605
+90.146.130.214:8333 # AS12605
+90.196.169.58:8333 # AS5607
+90.250.9.1:8333 # AS5378
+91.93.194.154:8333 # AS34984
+91.126.40.109:8333 # AS35699
+91.204.99.178:8333 # AS20485
+91.204.149.5:8333 # AS42765
+91.206.17.195:8333 # AS13259
+91.209.51.131:8333 # AS48239
+91.215.91.254:8333 # AS48078
+92.91.27.60:8333 # AS15557
+92.221.20.232:8333 # AS29695
+92.255.85.31:8333 # AS9002
+93.4.101.37:8333 # AS15557
+93.46.81.5:8333 # AS12874
+93.57.81.162:8333 # AS12874
+93.73.39.196:8333 # AS25229
+93.90.82.226:8333 # AS47626
+93.95.88.13:8333 # AS35434
+93.123.180.164:8333 # AS35539
+93.189.145.169:8333 # AS12555
+94.17.185.107:8333 # AS12709
+94.75.198.120:8333 # AS60781
+94.114.196.169:8333 # AS3209
+94.142.213.250:55544 # AS5524
+94.154.159.99:8333 # AS62240
+94.158.246.183:8333 # AS39798
+94.239.145.32:8333 # AS5410
+95.31.12.22:8333 # AS8402
+95.31.196.15:8333 # AS3216
+95.110.133.223:8333 # AS31034
+95.110.234.93:8333 # AS31034
+95.161.12.45:8333 # AS39598
+95.191.130.100:8333 # AS12389
+95.208.158.161:8333 # AS51185
+95.213.145.218:8333 # AS49505
+95.214.53.154:8333 # AS201814
+95.214.53.160:8333 # AS201814
+96.44.156.199:8333 # AS8100
+97.75.145.12:8333 # AS22709
+102.132.192.141:8333 # AS37680
+103.14.245.250:8333 # AS24482
+103.85.38.205:8333 # AS134090
+103.88.92.78:8332 # AS17547
+103.99.168.100:8333 # AS6939
+103.99.168.140:8333 # AS6939
+103.99.170.210:8333 # AS54415
+103.99.170.220:8333 # AS54415
+103.100.44.70:8333 # AS10143
+103.178.236.27:8333 # AS49981
+103.209.12.144:8333 # AS58511
+104.59.147.15:8333 # AS7018
+104.129.171.121:8333 # AS174
+104.200.65.234:8333 # AS23033
+104.238.220.199:8333 # AS23470
+104.244.73.6:8333 # AS53667
+106.71.119.230:8333 # AS4804
+107.173.166.43:8333 # AS23352
+108.161.22.78:8333 # AS54154
+108.174.63.234:8333 # AS36352
+109.99.63.159:8333 # AS9050
+109.105.40.247:8333 # AS12570
+109.107.185.130:8333 # AS48282
+109.110.239.4:8333 # AS35432
+109.173.41.43:8333 # AS42610
+109.236.90.117:8333 # AS49981
+109.248.206.13:8333 # AS203493
+109.255.106.206:8333 # AS6830
+111.90.140.23:8333 # AS45839
+111.90.140.46:8333 # AS45839
+111.90.159.246:8333 # AS34309
+112.118.188.50:8333 # AS4760
+115.47.141.250:8885 # AS4134
+116.58.171.67:8333 # AS2514
+118.92.107.108:8333 # AS9500
+119.42.55.203:8333 # AS133159
+120.79.71.72:8333 # AS37963
+121.99.240.87:8333 # AS9790
+123.60.213.192:8333 # AS55990
+124.156.158.100:8333 # AS132203
+124.222.123.238:8333 # AS45090
+125.178.6.116:8333 # AS3786
+128.0.190.26:8333 # AS30764
+128.65.194.136:8333 # AS29222
+129.13.189.212:8333 # AS34878
+129.126.172.115:8333 # AS17547
+129.146.52.174:8333 # AS31898
+130.44.168.202:8333 # AS6079
+131.161.80.166:8333 # AS263694
+131.188.40.191:8333 # AS680
+134.195.185.52:8333 # AS13536
+135.134.238.47:8333 # AS4181
+135.180.218.58:8333 # AS46375
+135.181.215.237:8333 # AS24940
+136.29.109.180:8333 # AS19165
+136.32.238.6:8333 # AS16591
+136.56.170.96:8333 # AS16591
+137.25.38.108:8333 # AS20115
+137.226.34.46:8333 # AS680
+138.207.211.106:8333 # AS11776
+139.130.41.82:8333 # AS1221
+139.153.255.107:8333 # AS786
+140.190.12.129:8333 # AS14828
+142.54.181.218:8333 # AS32097
+143.177.229.149:8333 # AS50266
+143.178.64.10:8333 # AS50266
+144.24.245.183:8333 # AS31898
+144.126.130.178:8333 # AS40021
+146.4.124.129:8333 # AS3303
+146.71.69.103:8333 # AS7782
+146.83.56.69:8333 # AS23140
+147.194.177.165:8333 # AS15128
+149.90.214.78:8333 # AS12353
+149.102.157.156:8333 # AS13768
+151.248.156.55:8333 # AS8821
+151.252.193.245:8333 # AS29582
+153.92.93.114:8333 # AS41998
+154.211.6.2:8333 # AS140224
+156.17.103.2:8088 # AS8970
+156.146.177.221:8333 # AS1448
+157.131.143.173:8333 # AS46375
+158.58.188.37:8333 # AS57497
+158.248.39.239:8333 # AS29695
+159.89.230.128:8333 # AS14061
+159.196.3.239:8333 # AS4764
+159.224.189.250:8333 # AS13188
+160.72.51.154:8333 # AS46887
+161.29.236.55:8333 # AS4826
+161.97.119.166:8333 # AS51167
+161.246.11.230:8333 # AS9486
+162.62.18.226:8333 # AS132203
+162.250.123.179:8333 # AS19318
+162.250.191.222:8333 # AS26832
+162.254.118.20:8333 # AS6130
+163.172.81.70:8333 # AS12876
+164.90.47.8:8333 # AS53449
+165.228.174.117:8333 # AS1221
+166.70.145.151:8333 # AS6315
+168.91.238.8:8333 # AS11039
+170.253.11.25:8333 # AS15704
+171.103.170.115:8333 # AS7470
+172.93.166.135:8333 # AS22653
+172.103.217.236:8333 # AS25668
+172.105.21.216:8333 # AS63949
+172.112.153.95:8333 # AS20001
+173.3.218.91:8333 # AS6128
+173.12.119.133:8333 # AS7922
+173.34.127.181:8333 # AS812
+173.76.123.173:8333 # AS701
+173.176.198.68:8333 # AS5769
+173.208.152.218:8333 # AS32097
+173.241.227.243:8333 # AS19009
+173.246.27.7:8333 # AS1403
+173.255.240.205:8333 # AS63949
+174.30.47.15:8333 # AS209
+174.114.250.86:8333 # AS812
+174.138.35.229:8333 # AS14061
+174.142.191.136:8333 # AS32613
+176.10.143.190:8333 # AS8473
+176.74.136.237:8333 # AS35613
+176.118.220.29:8333 # AS60042
+176.126.116.7:8333 # AS20473
+176.126.167.10:8333 # AS8449
+176.212.185.153:8333 # AS9049
+176.235.209.186:8333 # AS34984
+177.81.236.117:8333 # AS28573
+177.89.205.70:8333 # AS28220
+178.48.168.12:8333 # AS21334
+178.124.162.209:8333 # AS6697
+178.159.98.133:8333 # AS202390
+178.196.89.209:8333 # AS3303
+178.236.137.63:8333 # AS44843
+178.252.123.24:8333 # AS42893
+179.43.170.186:8333 # AS51852
+180.150.46.187:8333 # AS4764
+181.117.128.140:8333 # AS19037
+184.19.19.16:8333 # AS5650
+185.21.217.48:8333 # AS200052
+185.25.48.184:8333 # AS61272
+185.31.136.246:8333 # AS47605
+185.52.93.45:8333 # AS39449
+185.64.116.15:8333 # AS31736
+185.68.249.91:8333 # AS51184
+185.98.54.20:8333 # AS39572
+185.107.83.55:8333 # AS43350
+185.140.253.169:8333 # AS200735
+185.148.145.74:8333 # AS44901
+185.165.170.19:8333 # AS3223
+185.167.113.59:8333 # AS207054
+185.185.26.141:8111 # AS201206
+185.197.163.136:8333 # AS60144
+185.209.12.76:8333 # AS212323
+185.209.70.17:8333 # AS204568
+185.227.156.226:8333 # AS209846
+185.233.189.210:8333 # AS61303
+185.239.221.5:8333 # AS61282
+185.244.100.106:8333 # AS2586
+185.254.97.164:8333 # AS44486
+186.33.167.11:8333 # AS1299
+186.176.98.37:8333 # AS262197
+186.249.217.25:8333 # AS7195
+186.250.95.132:8333 # AS262967
+188.32.14.31:8334 # AS42610
+188.35.167.14:8333 # AS34123
+188.68.45.143:8333 # AS47147
+188.117.200.212:8333 # AS25447
+188.138.88.14:8333 # AS20773
+188.151.237.158:8333 # AS1257
+188.154.236.49:8333 # AS6730
+189.123.177.128:8333 # AS4230
+190.123.27.11:8333 # AS52468
+190.145.127.254:8333 # AS14080
+192.69.53.77:8333 # AS11142
+192.146.137.44:8333 # AS25376
+192.222.24.54:8333 # AS22646
+192.222.147.141:8333 # AS1403
+193.32.127.162:60969 # AS39351
+193.111.198.187:8111 # AS24961
+193.196.37.62:8333 # AS34878
+194.13.80.185:15430 # AS47147
+194.147.113.201:8333 # AS21232
+194.165.30.20:8333 # AS35162
+194.191.239.98:8333 # AS1836
+195.56.63.4:8333 # AS5483
+195.56.63.10:8333 # AS5483
+195.123.239.185:8333 # AS64010
+195.140.226.154:8333 # AS35614
+198.1.231.6:8333 # AS30236
+198.148.112.27:8333 # AS35916
+199.126.234.237:8333 # AS395570
+199.193.174.173:8333 # AS7992
+199.247.7.208:8333 # AS20473
+200.122.181.46:8333 # AS3790
+201.191.6.103:8333 # AS11830
+201.212.36.209:8333 # AS7303
+201.221.234.200:8333 # AS27928
+202.108.211.135:8333 # AS4837
+202.169.17.178:8333 # AS137549
+202.177.24.140:8333 # AS7479
+203.130.48.117:8885 # AS54994
+203.132.94.196:8333 # AS38195
+205.178.41.124:8333 # AS11039
+206.72.201.228:8333 # AS19318
+206.192.203.0:8333 # AS7029
+206.223.153.52:8333 # AS19214
+207.134.216.145:8334 # AS395570
+207.188.154.50:8333 # AS15704
+207.229.46.80:8333 # AS852
+207.255.193.47:8333 # AS11776
+208.104.92.74:8333 # AS14615
+209.58.145.157:8333 # AS394380
+209.58.158.232:8335 # AS394380
+209.141.43.243:8333 # AS53667
+209.226.142.62:8333 # AS577
+209.237.127.227:8333 # AS1299
+209.237.133.54:8333 # AS53859
+211.248.90.50:8333 # AS4766
+212.21.18.78:8333 # AS20485
+212.34.225.118:8333 # AS44395
+212.51.146.137:8333 # AS13030
+212.227.211.87:8333 # AS8560
+213.0.69.76:8333 # AS3352
+213.5.36.58:8333 # AS49974
+213.47.64.105:8333 # AS8412
+213.89.135.151:8333 # AS1257
+213.141.154.201:8333 # AS12714
+213.159.198.45:8333 # AS8359
+213.184.244.24:8333 # AS60280
+213.214.66.182:8333 # AS43205
+213.226.123.76:8333 # AS49943
+216.146.251.8:8333 # AS54579
+216.186.238.14:8333 # AS12083
+217.5.150.114:8333 # AS3320
+217.15.178.11:8333 # AS25534
+217.24.239.109:8333 # AS9063
+217.64.47.138:8333 # AS39324
+217.73.80.104:8333 # AS44291
+217.79.181.38:8333 # AS24961
+217.92.55.246:8333 # AS3320
+217.113.121.169:8333 # AS8416
+217.115.116.250:8333 # AS30900
+217.155.244.170:8333 # AS13037
+217.170.124.170:8333 # AS35401
+220.132.135.54:8333 # AS3462
+220.233.178.199:8333 # AS38195
+222.154.111.46:8333 # AS4648
+[2001:1620:510::2]:8333 # AS13030
+[2001:19f0:6001:39aa:5400:3ff:fef0:916]:8333 # AS20473
+[2001:19f0:8001:f71:5400:4ff:fe10:6a63]:8333 # AS20473
+[2001:1bc0:c1::2000]:8333 # AS29686
+[2001:1c02:11e:3500:df25:6321:8260:d9be]:8333 # AS6830
+[2001:41d0:1004:1b79::]:8339 # AS16276
+[2001:41d0:203:3739::]:8333 # AS16276
+[2001:41d0:203:aacc::]:8333 # AS16276
+[2001:41d0:203:bb0a::]:8333 # AS16276
+[2001:41d0:2:bf8f::]:8333 # AS16276
+[2001:41d0:303:6586::]:8333 # AS16276
+[2001:41d0:602:4493::]:8333 # AS16276
+[2001:41d0:8:b9d8::1]:8333 # AS16276
+[2001:41d0:a:69a2::1]:8333 # AS16276
+[2001:41f0::62:6974:636f:696e]:8333 # AS6830
+[2001:44b8:256:5d11:216:3eff:fe39:d5d4]:8333 # AS4739
+[2001:470:1b62::]:8333 # AS6939
+[2001:470:1f07:803:20c:29ff:fe2d:5879]:8333 # AS6939
+[2001:470:1f15:106:e2d5:5eff:fe42:7ae5]:8333 # AS6939
+[2001:470:1f15:c43::11]:8333 # AS6939
+[2001:470:26:472::b7c]:8333 # AS6939
+[2001:470:75e9:1::10]:8333 # AS6939
+[2001:470:de5a::ec]:9333 # AS6939
+[2001:4ba0:babe:584::1]:8333 # AS24961
+[2001:4ba0:ffff:24::1]:8333 # AS24961
+[2001:4dd0:3564:0:30b7:1d7b:6fec:4c5c]:8333 # AS8422
+[2001:4dd0:3564:0:88e:b4ff:2ad0:699b]:8333 # AS8422
+[2001:4dd0:3564:0:9c1c:cc31:9fe8:5505]:8333 # AS8422
+[2001:4dd0:3564:0:a0c4:d41f:4c4:1bb0]:8333 # AS8422
+[2001:4dd0:3564:0:fd76:c1d3:1854:5bd9]:8333 # AS8422
+[2001:4dd0:3564:1::7676:8090]:8333 # AS8422
+[2001:4dd0:3564:1:b977:bd71:4612:8e40]:8333 # AS8422
+[2001:4dd0:af0e:3564::69:1]:8333 # AS8422
+[2001:4dd0:af0e:3564::69:90]:8333 # AS8422
+[2001:4de8:b1b2:1:0:dead:beef:7]:8333 # AS29208
+[2001:638:a000:4140::ffff:191]:8333 # AS680
+[2001:678:acc:42::]:8333 # AS60404
+[2001:67c:26b4:ff00::44]:8333 # AS25376
+[2001:67c:2db8:6::36]:8333 # AS39798
+[2001:7c0:2310:0:f816:3eff:fe0d:4ab6]:8333 # AS34878
+[2001:7c0:2310:0:f816:3eff:fe6c:4f58]:8333 # AS34878
+[2001:861:3246:a10::40]:8333 # AS5410
+[2001:b07:2e6:38d7:ba27:ebff:fe60:3dc1]:8333 # AS12874
+[2001:b07:6461:7811:489:d2da:e07:1af7]:8333 # AS12874
+[2001:b07:ac9:442b:79d6:bbbe:b37c:a783]:8333 # AS12874
+[2001:bc8:1600:0:208:a2ff:fe0c:8a2e]:8333 # AS12876
+[2001:bc8:323c:ff:a634:384f:1849:f4bc]:8333 # AS12876
+[2001:bc8:323c:ff:d217:c2ff:fe07:2cd9]:8333 # AS12876
+[2001:bc8:3bec:100::1]:8333 # AS12876
+[2002:2f5b:a5f9::2f5b:a5f9]:8885 # AS6939
+[2003:cb:8713:6102:aaa1:59ff:fe57:7779]:8333 # AS3320
+[2003:e0:370e:1400::5]:8333 # AS3320
+[2003:f6:3f10:6700:4c9f:7620:8324:d4a7]:8333 # AS3320
+[2400:2410:cea2:d00:41bc:c9ea:861b:51ee]:8333 # AS17676
+[2400:2411:a3e1:4900:2568:684b:e99:7120]:8333 # AS17676
+[2400:2411:a3e1:4900:2987:b88f:61e0:84fa]:8333 # AS17676
+[2400:3b00:20:c:bacb:29ff:feab:8886]:8333 # AS18229
+[2401:b140:1::100:210]:8333 # AS54415
+[2401:b140:1::100:220]:8333 # AS54415
+[2401:b140::42:100]:8333 # AS6939
+[2401:b140::44:130]:8333 # AS6939
+[2401:d002:3902:700:d72c:5e22:4e95:389d]:8333 # AS38195
+[2404:4408:6752:c000::1999]:8333 # AS9790
+[2404:7a85:4161:2b00:49a1:427a:fac:3409]:8333 # AS2518
+[2405:9800:b972:ab58:c05:e938:267e:271]:8333 # AS45430
+[2406:da11:169:b03:32b5:f901:9f7c:3e4b]:8333 # AS16509
+[2406:da14:335:b601:ceb7:b4fc:a855:f3a5]:8333 # AS16509
+[2406:da1e:a4e:8a03:2aad:496b:768d:e497]:8333 # AS16509
+[2407:8800:bc61:2202:a0c6:107:502b:4e3b]:8333 # AS7545
+[2409:10:ca20:1df0:224:e8ff:fe1f:60d9]:8333 # AS55391
+[2600:1700:22f1:641f:e8:39c8:eb1d:a1eb]:8333 # AS7018
+[2600:1700:9c5d:ed0::38]:8333 # AS7018
+[2600:1700:9c5d:ed0:d0d6:1d9:5cc2:ab47]:8333 # AS7018
+[2600:1702:1ce0:4010::40]:8333 # AS7018
+[2600:1f14:40e:e301:d155:aa3a:77be:960e]:8333 # AS16509
+[2600:1f16:a08:b901:1afa:ef4e:4ce7:2ba4]:8333 # AS16509
+[2600:1f1c:2d3:2403:5bac:3fc6:6513:7a63]:8333 # AS16509
+[2600:2104:1003:c5ab:dc5e:90ff:fe18:1d08]:8333 # AS11404
+[2600:3c00::f03c:92ff:fe92:2745]:8333 # AS63949
+[2600:3c00::f03c:92ff:fecf:61b6]:8333 # AS63949
+[2600:3c00::f03c:93ff:feb3:1b6]:8333 # AS63949
+[2600:3c00:e002:2e32::1:14]:8333 # AS63949
+[2600:3c02::f03c:92ff:fe5d:9fb]:8333 # AS63949
+[2600:4040:2854:5e00:c6e9:84ff:fe46:ee8]:8666 # AS13786
+[2600:6c54:7100:1ad1:bddf:550e:91be:f9e1]:8333 # AS20115
+[2600:8805:2400:14e:12dd:b1ff:fef2:3013]:8333 # AS22773
+[2601:184:300:bde:3c29:8e94:1ba8:fde3]:8333 # AS7922
+[2601:18c:8080:300f:219:d1ff:fe75:dc2f]:8333 # AS7922
+[2601:18d:4600:43f1:20e7:b3ff:fecf:a99]:8333 # AS7922
+[2601:18d:8701:c290::3330]:8333 # AS7922
+[2601:246:4d7f:9e28:f321:36ca:7a71:c687]:8333 # AS7922
+[2601:640:c201:960d:86eb:f27d:66a2:f2c1]:8333 # AS7922
+[2602:241:75d1:2b90::7840]:8333 # AS46375
+[2602:ffb8::208:72:57:200]:8333 # AS2914
+[2603:3004:6a1:3800:851f:584d:7aba:affb]:8333 # AS7922
+[2603:3004:6a1:3800::4402]:8333 # AS7922
+[2603:3004:70d:1400:8532:2900:ce6f:acdf]:8333 # AS7922
+[2603:3004:745:900:f0d7:556a:a8c:ced5]:8333 # AS7922
+[2603:6080:c000:5d8a::104f]:8333 # AS7843
+[2603:8000:d100:8991:cc29:ccff:fe42:300c]:8333 # AS7843
+[2603:8080:1f07:6fdd:7de2:d969:78c9:b7ea]:8333 # AS7843
+[2603:8080:7300:531::13ea]:8333 # AS7843
+[2603:80a0:703:40f8::38]:8333 # AS7843
+[2604:180:f3::218]:8333 # AS3842
+[2604:3d08:0:5:d941:4b03:a093:131b]:8333 # AS6327
+[2604:7c00:120:4b::eb24]:8333 # AS174
+[2604:a00:21:3043:bf6a:535e:dfeb:5b7b]:8333 # AS19318
+[2604:a880:400:d0::1ce7:4001]:8333 # AS14061
+[2604:a880:400:d0::1d44:e001]:8333 # AS14061
+[2604:a880:400:d0::261f:6001]:8333 # AS14061
+[2604:a880:400:d1::7e2:e001]:8333 # AS14061
+[2604:a880:4:1d0::14:3000]:8333 # AS14061
+[2604:a880:4:1d0::e5:b000]:8333 # AS14061
+[2605:6400:30:f220::]:8333 # AS53667
+[2605:6f80:0:7:fc1b:ccff:fe8a:d822]:8333 # AS53340
+[2605:a140:2076:8253::1]:8333 # AS40021
+[2605:a140:3007:1287::1]:8333 # AS40021
+[2605:ae00:203::203]:8333 # AS7819
+[2605:c000:2a0a:1::102]:8333 # AS7393
+[2607:1a00:1:d::11:7c4d]:8333 # AS22653
+[2607:5300:203:1214::]:8333 # AS16276
+[2607:9280:b:73b:250:56ff:fe14:25b5]:8333 # AS395502
+[2607:9280:b:73b:250:56ff:fe21:9c2f]:8333 # AS395502
+[2607:9280:b:73b:250:56ff:fe21:bf32]:8333 # AS395502
+[2607:9280:b:73b:250:56ff:fe33:4d1b]:8333 # AS395502
+[2607:9280:b:73b:250:56ff:fe3d:401]:8333 # AS395502
+[2607:f2c0:e1c2:69:12c3:7bff:fe4d:9431]:8333 # AS5645
+[2607:f2c0:e1c2:69:ecb2:6e88:9f33:5057]:8333 # AS5645
+[2620:6:2003:105:2d8:61ff:fe0f:853]:8333 # AS25682
+[2620:6e:a000:1:42:42:42:42]:8333 # AS397444
+[2620:a6:2000:1::3:d570]:8333 # AS27566
+[2620:a6:2000:1::5:162a]:8333 # AS27566
+[2620:a6:2000:1::5:1631]:8333 # AS27566
+[2620:a6:2000:1::c:e634]:8333 # AS27566
+[2800:40:33:8ab:a0e7:b215:fc83:5c31]:8333 # AS16814
+[2800:bf0:149:f4b:f8df:8d7d:801b:e25e]:8333 # AS27947
+[2804:14c:198:80d5:7603:41d1:d3fc:e797]:8333 # AS28573
+[2804:14d:ae81:827b:99a8:1e3f:6db2:29db]:8333 # AS4230
+[2804:d57:5537:4800:3e7c:3fff:fe7b:80aa]:8333 # AS8167
+[2a00:12e0:101:99:20c:29ff:fe29:d03f]:8333 # AS6798
+[2a00:1328:e101:c00::163]:8333 # AS31078
+[2a00:1398:4:2a03:215:5dff:fed6:1033]:8333 # AS34878
+[2a00:1398:4:2a03::bc03]:8333 # AS34878
+[2a00:1630:10:1003:0:b19:b00b:babe]:8333 # AS49544
+[2a00:1768:2001:27::ef6a]:8333 # AS43350
+[2a00:1828:a004:2::666]:8333 # AS34240
+[2a00:1c10:2:709::217]:22220 # AS50300
+[2a00:1f40:5001:108:5d17:7703:b0f5:4133]:8333 # AS42864
+[2a00:23c5:fe80:7301:d6ae:52ff:fed5:56a5]:8333 # AS2856
+[2a00:23c6:5c91:5808:c05a:4dff:fe65:9d69]:8333 # AS2856
+[2a00:6020:1bfa:d400:20c:29ff:fe61:4a4c]:8333 # AS60294
+[2a00:6020:b482:9200:491a:358c:d8f7:1da]:8333 # AS60294
+[2a00:6020:b489:2000:5054:ff:fefc:5ed8]:8333 # AS60294
+[2a00:7c80:0:25::e37a]:8333 # AS49981
+[2a00:7c80:0:71::8]:8333 # AS49981
+[2a00:8a60:e012:a00::21]:8333 # AS680
+[2a00:ae40:240e:3200::3]:8333 # AS50923
+[2a00:bbe0:cc:0:62a4:4cff:fe23:7510]:8333 # AS47605
+[2a00:ca8:a1f:3025:f949:e442:c940:13e8]:8333 # AS30764
+[2a00:d4e0:2:d002:4467:31e0:6fa5:b3ef]:8333 # AS15600
+[2a00:ee2:1200:1900:8d3:d2ff:feb1:bc58]:8333 # AS5603
+[2a01:238:420f:9200:fa5a:1a4b:1e6a:fadf]:8333 # AS6724
+[2a01:238:4389:c400:3b26:d94e:38d5:44ef]:8333 # AS6724
+[2a01:490:16:301::2]:8333 # AS8251
+[2a01:4b00:807c:3100:cda1:c6a:2bad:2418]:8333 # AS56478
+[2a01:4f8:141:2254::2]:8333 # AS24940
+[2a01:4f8:173:230a::2]:8333 # AS24940
+[2a01:4f8:190:91c4::2]:8333 # AS24940
+[2a01:4f8:200:7222::2]:8333 # AS24940
+[2a01:4f8:202:3e6::2]:8333 # AS24940
+[2a01:4f8:221:44d7::2]:8333 # AS24940
+[2a01:4f8:231:915::2]:8333 # AS24940
+[2a01:4f9:2a:1ce0::2]:8333 # AS24940
+[2a01:4f9:2b:29a::2]:8333 # AS24940
+[2a01:4f9:4a:31de::2]:8333 # AS24940
+[2a01:5200:6c:6162:7a61:746b:6f2e:736b]:8333 # AS6855
+[2a01:6380:fffe:73:10fb:d012:8581:b4d7]:8333 # AS25540
+[2a01:7a7:2:2804:ae1f:6bff:fe9d:6c94]:8333 # AS20773
+[2a01:7c8:aaac:89:5054:ff:feb7:f5cb]:8333 # AS20857
+[2a01:7c8:aac9:c9:5054:ff:fedf:ff95]:8333 # AS20857
+[2a01:7c8:d001:1c1:5054:ff:feee:3e1a]:8333 # AS20857
+[2a01:7c8:d009:2aa:5054:ff:fe1b:a196]:11520 # AS20857
+[2a01:7c8:fffa:50e:ddfe:c924:ca0a:cbab]:8333 # AS20857
+[2a01:7e00::f03c:93ff:fe59:66dc]:8333 # AS63949
+[2a01:7e01::f03c:93ff:fe3b:bb5b]:8333 # AS63949
+[2a01:8740:1:ffc5::8c6a]:8333 # AS57344
+[2a01:9f40:a000::100]:8333 # AS42908
+[2a01:cb00:d3d:7700:227:eff:fe28:c565]:8333 # AS3215
+[2a01:e0a:20:7350:919c:b1c3:8b83:adf9]:8333 # AS12322
+[2a01:e0a:301:7010:b87d:e14b:cea9:b998]:8333 # AS12322
+[2a01:e0a:48b:2d10:94f2:4d5c:ca5f:bf49]:8333 # AS12322
+[2a01:e0a:530:a0a0:f465:af5:be1b:9075]:8333 # AS12322
+[2a01:e0a:aa7:c8c0:9679:affa:b6e5:efc7]:8333 # AS12322
+[2a01:e11:100c:70:cbc8:9e31:4b77:1626]:8333 # AS12322
+[2a01:e34:ee78:3060:230:48ff:fe81:f1c6]:8333 # AS12322
+[2a02:1210:14a9:6700:a00:27ff:fe4e:82b6]:8333 # AS3303
+[2a02:1210:4639:f00:10a7:e965:509a:7a4a]:8333 # AS3303
+[2a02:1210:7c92:5100:211:32ff:feae:152d]:8333 # AS3303
+[2a02:1210:86bf:f100:3178:d700:d44d:6bb1]:8333 # AS3303
+[2a02:1210:9487:a200:edc1:93a4:945:9a92]:8333 # AS3303
+[2a02:168:420b:a::20]:8333 # AS13030
+[2a02:168:6328:0:4a21:bff:fe26:38c3]:8333 # AS13030
+[2a02:168:676e:0:e65f:1ff:fe09:3591]:8333 # AS13030
+[2a02:1748:f39f:5872:dead:beef:b1ac:c0fe]:8333 # AS51184
+[2a02:180:1:1::517:10b6]:8333 # AS35366
+[2a02:2168:a379:d100:96de:80ff:fea3:fd00]:8333 # AS42610
+[2a02:2780:9000:70::7]:8333 # AS35434
+[2a02:2780:9000:70::f]:8333 # AS35434
+[2a02:2780::e01a]:8333 # AS35434
+[2a02:2e02:3900:5400:a099:e1ff:feb6:d0e]:8333 # AS12479
+[2a02:2f05:660e:8b00::1]:8333 # AS48571
+[2a02:58:97:7d20::60]:8333 # AS25596
+[2a02:6d40:3073:c01:dea6:32ff:fe44:4b25]:8333 # AS42652
+[2a02:7a01::91:228:45:130]:8333 # AS16019
+[2a02:7b40:5928:89::1]:8333 # AS62282
+[2a02:7b40:c3b5:f583::1]:8333 # AS62282
+[2a02:8308:8087:aa00:9ea8:1b2:ef98:56bf]:8333 # AS16019
+[2a02:842a:1df:8a01:1e1b:dff:fe0b:236d]:8333 # AS15557
+[2a02:a44d:14d6:1:2c0:8ff:fe8f:b3b2]:8333 # AS1136
+[2a02:a45a:94cd:f00d::1]:8333 # AS1136
+[2a02:a45f:3b9d:30::3]:8333 # AS1136
+[2a02:a467:7833:1:7285:c2ff:fe2c:21e9]:8333 # AS1136
+[2a02:aa14:2380:b300:4040:be88:8b01:d38]:8333 # AS6830
+[2a02:c206:2044:9826::1]:8333 # AS51167
+[2a02:c206:2082:1246::1]:8333 # AS51167
+[2a02:c206:3008:2368::1]:8333 # AS51167
+[2a02:c207:0:4971::1]:5332 # AS51167
+[2a02:c207:2014:4199::1]:8333 # AS51167
+[2a02:c207:2024:6115::1]:8333 # AS51167
+[2a02:c207:2026:6682::1]:8333 # AS51167
+[2a02:c207:3002:7468::1]:8333 # AS51167
+[2a02:e98:20:1504::1]:8333 # AS24641
+[2a03:4000:6:416c::43]:8333 # AS47147
+[2a03:4000:6:f814:548b:17ff:fe31:b64a]:8333 # AS47147
+[2a03:6000:870:0:46:23:87:218]:8333 # AS51088
+[2a03:94e0:ffff:185:243:218:0:19]:8333 # AS56655
+[2a03:b0c0:1:e0::397:6001]:8333 # AS14061
+[2a03:b0c0:2:f0::163:3001]:8333 # AS14061
+[2a03:b0c0:2:f0::18a:d001]:8333 # AS14061
+[2a03:b0c0:3:d0::f3e:2001]:8333 # AS14061
+[2a03:e2c0:1347::2]:8333 # AS50113
+[2a03:ec0:0:928::701:701]:8333 # AS199669
+[2a04:52c0:103:c455::1]:8334 # AS60404
+[2a04:52c0:3007:200::2000]:8333 # AS60404
+[2a04:bc40:1dc3:8d::2:1001]:8333 # AS35277
+[2a05:1500:702:0:1c00:40ff:fe00:c]:8333 # AS48635
+[2a05:3580:d101:3700::]:8333 # AS20764
+[2a05:3580:db0b:1600:c489:76ed:313d:b33]:8333 # AS20764
+[2a05:d014:a55:4001:8127:afa7:daf9:d91b]:8333 # AS16509
+[2a05:d014:a55:4001:f6ab:dd5e:4039:b46c]:8333 # AS16509
+[2a05:d014:a55:4003:6523:50a1:152:e88c]:8333 # AS16509
+[2a05:d01a:b7b:3c01:8bf7:ae14:afb3:33ae]:8333 # AS16509
+[2a05:f480:1800:697:5400:2ff:feb6:c36d]:8333 # AS20473
+[2a06:e040:7603:2918:c6ef:464e:9fe5:73ec]:8333 # AS198507
+[2a07:abc4::1:946]:8333 # AS62000
+[2a09:2681:102::210]:8333 # AS61282
+[2a0a:c801:1:7::183]:8333 # AS39798
+[2a0c:5a80:1210:a800:6af7:28ff:fee5:6b3a]:8333 # AS57269
+[2a0d:5600:24:a8e::a91e]:55373 # AS9009
+[2a0d:7c40:3000:b04::2]:8333 # AS54290
+[2a0d:8340:24::2]:8333 # AS50113
+[2a0f:df00:0:2010::162]:8333 # AS41281
+[2a10:3781:16b9:1:fe3f:dbff:fe04:2d4c]:8333 # AS206238
+[2a10:3781:84b:1:b123:6306:943a:f09b]:8333 # AS206238
+[2a10:d200:1:33:a6bf:1ff:fe6a:46a9]:8333 # AS212323
+[2c0f:f4c0:2202:20b0:261c:4ff:fe14:daa0]:8333 # AS327693
+[2c0f:f8f0:da51:0:70c3:eea9:9717:9579]:8333 # AS30844
-# manually added 2021-03 for minimal torv3 bootstrap support
-2g5qfdkn2vvcbqhzcyvyiitg4ceukybxklraxjnu7atlhd22gdwywaid.onion:8333
-2jmtxvyup3ijr7u6uvu7ijtnojx4g5wodvaedivbv74w4vzntxbrhvad.onion:8333
-37m62wn7dz3uqpathpc4qfmgrbupachj52nt3jbtbjugpbu54kbud7yd.onion:8333
+# manually updated 2022-08 for minimal torv3 bootstrap support
5g72ppm3krkorsfopcm2bi7wlv4ohhs4u4mlseymasn7g7zhdcyjpfid.onion:8333
-7cgwjuwi5ehvcay4tazy7ya6463bndjk6xzrttw5t3xbpq4p22q6fyid.onion:8333
-7pyrpvqdhmayxggpcyqn5l3m5vqkw3qubnmgwlpya2mdo6x7pih7r7id.onion:8333
b64xcbleqmwgq2u46bh4hegnlrzzvxntyzbmucn3zt7cssm7y4ubv3id.onion:8333
-ejxefzf5fpst4mg2rib7grksvscl7p6fvjp6agzgfc2yglxnjtxc3aid.onion:8333
fjdyxicpm4o42xmedlwl3uvk5gmqdfs5j37wir52327vncjzvtpfv7yd.onion:8333
fpz6r5ppsakkwypjcglz6gcnwt7ytfhxskkfhzu62tnylcknh3eq6pad.onion:8333
-fzhn4uoxfbfss7h7d6ffbn266ca432ekbbzvqtsdd55ylgxn4jucm5qd.onion:8333
gxo5anvfnffnftfy5frkgvplq3rpga2ie3tcblo2vl754fvnhgorn5yd.onion:8333
ifdu5qvbofrt4ekui2iyb3kbcyzcsglazhx2hn4wfskkrx2v24qxriid.onion:8333
itz3oxsihs62muvknc237xabl5f6w6rfznfhbpayrslv2j2ubels47yd.onion:8333
-lrjh6fywjqttmlifuemq3puhvmshxzzyhoqx7uoufali57eypuenzzid.onion:8333
+kpgvmscirrdqpekbqjsvw5teanhatztpp2gl6eee4zkowvwfxwenqaid.onion:8333
m7cbpjolo662uel7rpaid46as2otcj44vvwg3gccodnvaeuwbm3anbyd.onion:8333
-opnyfyeiibe5qo5a3wbxzbb4xdiagc32bbce46owmertdknta5mi7uyd.onion:8333
-owjsdxmzla6d7lrwkbmetywqym5cyswpihciesfl5qdv2vrmwsgy4uqd.onion:8333
-q7kgmd7n7h27ds4fg7wocgniuqb3oe2zxp4nfe4skd5da6wyipibqzqd.onion:8333
+mwmfluek4au6mxxpw6fy7sjhkm65bdfc7izc7lpz3trewfdghyrzsbid.onion:8333
rp7k2go3s5lyj3fnj6zn62ktarlrsft2ohlsxkyd7v3e3idqyptvread.onion:8333
-sys54sv4xv3hn3sdiv3oadmzqpgyhd4u4xphv4xqk64ckvaxzm57a7yd.onion:8333
-tddeij4qigtjr6jfnrmq6btnirmq5msgwcsdpcdjr7atftm7cxlqztid.onion:8333
-vi5bnbxkleeqi6hfccjochnn65lcxlfqs4uwgmhudph554zibiusqnad.onion:8333
-xqt25cobm5zqucac3634zfght72he6u3eagfyej5ellbhcdgos7t2had.onion:8333
-# manually added 2021-08 for minimal i2p bootstrap support
+# manually updated 2022-08 for minimal i2p bootstrap support
+255fhcp6ajvftnyo7bwz3an3t4a4brhopm3bamyh2iu5r3gnr2rq.b32.i2p:0
+27yrtht5b5bzom2w5ajb27najuqvuydtzb7bavlak25wkufec5mq.b32.i2p:0
+2el6enckmfyiwbfcwsygkwksovtynzsigmyv3bzyk7j7qqahooua.b32.i2p:0
+3gocb7wc4zvbmmebktet7gujccuux4ifk3kqilnxnj5wpdpqx2hq.b32.i2p:0
+3tns2oov4tnllntotazy6umzkq4fhkco3iu5rnkxtu3pbfzxda7q.b32.i2p:0
+4fcc23wt3hyjk3csfzcdyjz5pcwg5dzhdqgma6bch2qyiakcbboa.b32.i2p:0
+4osyqeknhx5qf3a73jeimexwclmt42cju6xdp7icja4ixxguu2hq.b32.i2p:0
+4umsi4nlmgyp4rckosg4vegd2ysljvid47zu7pqsollkaszcbpqq.b32.i2p:0
+52v6uo6crlrlhzphslyiqblirux6olgsaa45ixih7sq5np4jujaa.b32.i2p:0
+6j2ezegd3e2e2x3o3pox335f5vxfthrrigkdrbgfbdjchm5h4awa.b32.i2p:0
+6n36ljyr55szci5ygidmxqer64qr24f4qmnymnbvgehz7qinxnla.b32.i2p:0
+72yjs6mvlby3ky6mgpvvlemmwq5pfcznrzd34jkhclgrishqdxva.b32.i2p:0
+7r4ri53lby2i3xqbgpw3idvhzeku7ubhftlf72ldqkg5kde6dauq.b32.i2p:0
a5qsnv3maw77mlmmzlcglu6twje6ttctd3fhpbfwcbpmewx6fczq.b32.i2p:0
-bitcornrd36coazsbzsz4pdebyzvaplmsalq4kpoljmn6cg6x5zq.b32.i2p:0
+aovep2pco7v2k4rheofrgytbgk23eg22dczpsjqgqtxcqqvmxk6a.b32.i2p:0
+bddbsmkas3z6fakorbkfjhv77i4hv6rysyjsvrdjukxolfghc23q.b32.i2p:0
+bitcoi656nll5hu6u7ddzrmzysdtwtnzcnrjd4rfdqbeey7dmn5a.b32.i2p:0
+brifkruhlkgrj65hffybrjrjqcgdgqs2r7siizb5b2232nruik3a.b32.i2p:0
c4gfnttsuwqomiygupdqqqyy5y5emnk5c73hrfvatri67prd7vyq.b32.i2p:0
-dhtq2p76tyhi442aidb3vd2bv7yxxjuddpb2jydnnrl2ons5bhha.b32.i2p:0
+day3hgxyrtwjslt54sikevbhxxs4qzo7d6vi72ipmscqtq3qmijq.b32.i2p:0
+di2zq6fr3fegf2jdcd7hdwyql4umr462gonsns2nxz5qg5vz4bka.b32.i2p:0
+e55k6wu46rzp4pg5pk5npgbr3zz45bc3ihtzu2xcye5vwnzdy7pq.b32.i2p:0
+eciohu5nq7vsvwjjc52epskuk75d24iccgzmhbzrwonw6lx4gdva.b32.i2p:0
+ejlnngarmhqvune74ko7kk55xtgbz5i5ncs4vmnvjpy3l7y63xaa.b32.i2p:0
+g47cqoppu26pr4n2cfaioqx7lbdi7mea7yqhlrkdz3wjwxjxdh2a.b32.i2p:0
h3r6bkn46qxftwja53pxiykntegfyfjqtnzbm6iv6r5mungmqgmq.b32.i2p:0
-hnbbyjpxx54623l555sta7pocy3se4sdgmuebi5k6reesz5rjp6q.b32.i2p:0
+hhfi4yqkg2twqiwezrfksftjjofbyx3ojkmlnfmcwntgnrjjhkya.b32.i2p:0
+hpiibrflqkbrcshfhmrtwfyeb7mds7a3obzwrgarejevddzamvsq.b32.i2p:0
+i4pyhsfdq4247dunel7paatdaq5gusi2hnybp2yf5wxwdnrgxaqq.b32.i2p:0
+iw6tgpmbdykffceku5da6nzf2bmz66fvp5fpcvemfu3df6aq6pga.b32.i2p:0
+jkfuajo4ayvo2rbv5qdj443q6adqmnormbhsf2f7rlp5t24xomda.b32.i2p:0
jz3s4eurm5vzjresf4mwo7oni4bk36daolwxh4iqtewakylgkxmq.b32.i2p:0
-kokkmpquqlkptu5hkmzqlttsmtwxicldr4so7wqsufk6bwf32nma.b32.i2p:0
+liu75cvktv4icbctg72w7nxbk4eibt7wamizfdii4omz7gcke5vq.b32.i2p:0
+ljsquuu3y4xje6l32p32inn6r2y6ull6oocgup6jtjrohrqxbz6a.b32.i2p:0
+lrah7acdsgopybg43shadwwiv6igezaw64i6jb5muqdg7dmhj3la.b32.i2p:0
+lzuu6mjtu7vd55d2biphicihufipoa7vyym6xfnkmmlra3tiziia.b32.i2p:0
+m6bpynxkv2ktwxkg6p2gyudjfhdupb6kuzabeqdnckkdkf4kxjla.b32.i2p:0
+m6v454xd6p3bt5swujgmveklsp7lzbkqlqqfc2p36cjlwv5dbucq.b32.i2p:0
+mlgeizrroynuhpxbzeosajt5u4ddcvynxfmcbm6kwjpaufilxigq.b32.i2p:0
+ofubxr2ir7u2guzjwyrvujicivzmvinwa36nuzlrg7tnsmebal7a.b32.i2p:0
+okfxeoh6itu4f5f43dhbzvkqwfrvm5c66lj6lvjj4q2b35i4pk4q.b32.i2p:0
+oz2ia3flpm3du2tyusulrn7h7e2eo3juzkrmn34bvnrlcrugv7ia.b32.i2p:0
+qd6jlsevsexww3wefpqs7iglxb3f63y4e6ydulfzrvwflpicmdqa.b32.i2p:0
+qddg7myylinn4tw6kdjmmp6fsyetkosnrbp2gsjx77tmkqyqv6ua.b32.i2p:0
+rizfinyses2r3or4iubs5wx66gdy6mpf73w7uobfacm2l5cral3q.b32.i2p:0
+s5hhjtmlg53bko3nwwskas7xgsmeqzy6thtsj5aa64djyrljgqaq.b32.i2p:0
sedndhv5vpcgdmykyi5st4yqhdxl3hpdtglta4do435wupahhx6q.b32.i2p:0
+tsl4dlpu2id252b6crbdnblruct664se6f2iw35fuqwa3te7wcoq.b32.i2p:0
+tugq6wa2ls2bv27pr2iy3da3k5ow3fzefbcvjcr22uc7w5vmevja.b32.i2p:0
+usztavbib756k5vqggzgkyswoj6mttihjvp3c2pa642t2mb4pvsa.b32.i2p:0
+vgu6llqbyjphml25umd5ztvyxrxuplz2g74fzbx75g3kkaetoyiq.b32.i2p:0
+wjrul5jwwb4vqdmkkrjbmly7osj6amecdpsac5xvaoqrti4nb3ha.b32.i2p:0
+wvktcp7hy4l6immhi5cxyz2dlsbhhvtcmskjemrnqehacnoap23q.b32.i2p:0
wwbw7nqr3ahkqv62cuqfwgtneekvvpnuc4i4f6yo7tpoqjswvcwa.b32.i2p:0
+xlqndzjoe5nr2nsxo6xwibh44ghyz4jfqevu62xykvemextpmjbq.b32.i2p:0
+yc4xwin5ujenvcr6ynwkz7lnmmq3nmzxvfguele6ovqqpxgjvonq.b32.i2p:0
+zdoabsg7ugzothyawodjhq54nvlofa746rxfkxpnjzj6nukmha6a.b32.i2p:0
zsxwyo6qcn3chqzwxnseusqgsnuw3maqnztkiypyfxtya4snkoka.b32.i2p:0
+zysrlpii5ftrzivfcyhdrwpeyyqddbrdefnfu5q6otk5gtugmh2a.b32.i2p:0
# manually added 2022-01 for minimal cjdns bootstrap support
[fc32:17ea:e415:c3bf:9808:149d:b5a2:c9aa]:8333
diff --git a/contrib/seeds/nodes_main_manual.txt b/contrib/seeds/nodes_main_manual.txt
index a6e0b8763a..286448d95d 100644
--- a/contrib/seeds/nodes_main_manual.txt
+++ b/contrib/seeds/nodes_main_manual.txt
@@ -1,42 +1,77 @@
-# manually added 2021-03 for minimal torv3 bootstrap support
-2g5qfdkn2vvcbqhzcyvyiitg4ceukybxklraxjnu7atlhd22gdwywaid.onion:8333
-2jmtxvyup3ijr7u6uvu7ijtnojx4g5wodvaedivbv74w4vzntxbrhvad.onion:8333
-37m62wn7dz3uqpathpc4qfmgrbupachj52nt3jbtbjugpbu54kbud7yd.onion:8333
+# manually updated 2022-08 for minimal torv3 bootstrap support
5g72ppm3krkorsfopcm2bi7wlv4ohhs4u4mlseymasn7g7zhdcyjpfid.onion:8333
-7cgwjuwi5ehvcay4tazy7ya6463bndjk6xzrttw5t3xbpq4p22q6fyid.onion:8333
-7pyrpvqdhmayxggpcyqn5l3m5vqkw3qubnmgwlpya2mdo6x7pih7r7id.onion:8333
b64xcbleqmwgq2u46bh4hegnlrzzvxntyzbmucn3zt7cssm7y4ubv3id.onion:8333
-ejxefzf5fpst4mg2rib7grksvscl7p6fvjp6agzgfc2yglxnjtxc3aid.onion:8333
fjdyxicpm4o42xmedlwl3uvk5gmqdfs5j37wir52327vncjzvtpfv7yd.onion:8333
fpz6r5ppsakkwypjcglz6gcnwt7ytfhxskkfhzu62tnylcknh3eq6pad.onion:8333
-fzhn4uoxfbfss7h7d6ffbn266ca432ekbbzvqtsdd55ylgxn4jucm5qd.onion:8333
gxo5anvfnffnftfy5frkgvplq3rpga2ie3tcblo2vl754fvnhgorn5yd.onion:8333
ifdu5qvbofrt4ekui2iyb3kbcyzcsglazhx2hn4wfskkrx2v24qxriid.onion:8333
itz3oxsihs62muvknc237xabl5f6w6rfznfhbpayrslv2j2ubels47yd.onion:8333
-lrjh6fywjqttmlifuemq3puhvmshxzzyhoqx7uoufali57eypuenzzid.onion:8333
+kpgvmscirrdqpekbqjsvw5teanhatztpp2gl6eee4zkowvwfxwenqaid.onion:8333
m7cbpjolo662uel7rpaid46as2otcj44vvwg3gccodnvaeuwbm3anbyd.onion:8333
-opnyfyeiibe5qo5a3wbxzbb4xdiagc32bbce46owmertdknta5mi7uyd.onion:8333
-owjsdxmzla6d7lrwkbmetywqym5cyswpihciesfl5qdv2vrmwsgy4uqd.onion:8333
-q7kgmd7n7h27ds4fg7wocgniuqb3oe2zxp4nfe4skd5da6wyipibqzqd.onion:8333
+mwmfluek4au6mxxpw6fy7sjhkm65bdfc7izc7lpz3trewfdghyrzsbid.onion:8333
rp7k2go3s5lyj3fnj6zn62ktarlrsft2ohlsxkyd7v3e3idqyptvread.onion:8333
-sys54sv4xv3hn3sdiv3oadmzqpgyhd4u4xphv4xqk64ckvaxzm57a7yd.onion:8333
-tddeij4qigtjr6jfnrmq6btnirmq5msgwcsdpcdjr7atftm7cxlqztid.onion:8333
-vi5bnbxkleeqi6hfccjochnn65lcxlfqs4uwgmhudph554zibiusqnad.onion:8333
-xqt25cobm5zqucac3634zfght72he6u3eagfyej5ellbhcdgos7t2had.onion:8333
-# manually added 2021-08 for minimal i2p bootstrap support
+# manually updated 2022-08 for minimal i2p bootstrap support
+255fhcp6ajvftnyo7bwz3an3t4a4brhopm3bamyh2iu5r3gnr2rq.b32.i2p:0
+27yrtht5b5bzom2w5ajb27najuqvuydtzb7bavlak25wkufec5mq.b32.i2p:0
+2el6enckmfyiwbfcwsygkwksovtynzsigmyv3bzyk7j7qqahooua.b32.i2p:0
+3gocb7wc4zvbmmebktet7gujccuux4ifk3kqilnxnj5wpdpqx2hq.b32.i2p:0
+3tns2oov4tnllntotazy6umzkq4fhkco3iu5rnkxtu3pbfzxda7q.b32.i2p:0
+4fcc23wt3hyjk3csfzcdyjz5pcwg5dzhdqgma6bch2qyiakcbboa.b32.i2p:0
+4osyqeknhx5qf3a73jeimexwclmt42cju6xdp7icja4ixxguu2hq.b32.i2p:0
+4umsi4nlmgyp4rckosg4vegd2ysljvid47zu7pqsollkaszcbpqq.b32.i2p:0
+52v6uo6crlrlhzphslyiqblirux6olgsaa45ixih7sq5np4jujaa.b32.i2p:0
+6j2ezegd3e2e2x3o3pox335f5vxfthrrigkdrbgfbdjchm5h4awa.b32.i2p:0
+6n36ljyr55szci5ygidmxqer64qr24f4qmnymnbvgehz7qinxnla.b32.i2p:0
+72yjs6mvlby3ky6mgpvvlemmwq5pfcznrzd34jkhclgrishqdxva.b32.i2p:0
+7r4ri53lby2i3xqbgpw3idvhzeku7ubhftlf72ldqkg5kde6dauq.b32.i2p:0
a5qsnv3maw77mlmmzlcglu6twje6ttctd3fhpbfwcbpmewx6fczq.b32.i2p:0
-bitcornrd36coazsbzsz4pdebyzvaplmsalq4kpoljmn6cg6x5zq.b32.i2p:0
+aovep2pco7v2k4rheofrgytbgk23eg22dczpsjqgqtxcqqvmxk6a.b32.i2p:0
+bddbsmkas3z6fakorbkfjhv77i4hv6rysyjsvrdjukxolfghc23q.b32.i2p:0
+bitcoi656nll5hu6u7ddzrmzysdtwtnzcnrjd4rfdqbeey7dmn5a.b32.i2p:0
+brifkruhlkgrj65hffybrjrjqcgdgqs2r7siizb5b2232nruik3a.b32.i2p:0
c4gfnttsuwqomiygupdqqqyy5y5emnk5c73hrfvatri67prd7vyq.b32.i2p:0
-dhtq2p76tyhi442aidb3vd2bv7yxxjuddpb2jydnnrl2ons5bhha.b32.i2p:0
+day3hgxyrtwjslt54sikevbhxxs4qzo7d6vi72ipmscqtq3qmijq.b32.i2p:0
+di2zq6fr3fegf2jdcd7hdwyql4umr462gonsns2nxz5qg5vz4bka.b32.i2p:0
+e55k6wu46rzp4pg5pk5npgbr3zz45bc3ihtzu2xcye5vwnzdy7pq.b32.i2p:0
+eciohu5nq7vsvwjjc52epskuk75d24iccgzmhbzrwonw6lx4gdva.b32.i2p:0
+ejlnngarmhqvune74ko7kk55xtgbz5i5ncs4vmnvjpy3l7y63xaa.b32.i2p:0
+g47cqoppu26pr4n2cfaioqx7lbdi7mea7yqhlrkdz3wjwxjxdh2a.b32.i2p:0
h3r6bkn46qxftwja53pxiykntegfyfjqtnzbm6iv6r5mungmqgmq.b32.i2p:0
-hnbbyjpxx54623l555sta7pocy3se4sdgmuebi5k6reesz5rjp6q.b32.i2p:0
+hhfi4yqkg2twqiwezrfksftjjofbyx3ojkmlnfmcwntgnrjjhkya.b32.i2p:0
+hpiibrflqkbrcshfhmrtwfyeb7mds7a3obzwrgarejevddzamvsq.b32.i2p:0
+i4pyhsfdq4247dunel7paatdaq5gusi2hnybp2yf5wxwdnrgxaqq.b32.i2p:0
+iw6tgpmbdykffceku5da6nzf2bmz66fvp5fpcvemfu3df6aq6pga.b32.i2p:0
+jkfuajo4ayvo2rbv5qdj443q6adqmnormbhsf2f7rlp5t24xomda.b32.i2p:0
jz3s4eurm5vzjresf4mwo7oni4bk36daolwxh4iqtewakylgkxmq.b32.i2p:0
-kokkmpquqlkptu5hkmzqlttsmtwxicldr4so7wqsufk6bwf32nma.b32.i2p:0
+liu75cvktv4icbctg72w7nxbk4eibt7wamizfdii4omz7gcke5vq.b32.i2p:0
+ljsquuu3y4xje6l32p32inn6r2y6ull6oocgup6jtjrohrqxbz6a.b32.i2p:0
+lrah7acdsgopybg43shadwwiv6igezaw64i6jb5muqdg7dmhj3la.b32.i2p:0
+lzuu6mjtu7vd55d2biphicihufipoa7vyym6xfnkmmlra3tiziia.b32.i2p:0
+m6bpynxkv2ktwxkg6p2gyudjfhdupb6kuzabeqdnckkdkf4kxjla.b32.i2p:0
+m6v454xd6p3bt5swujgmveklsp7lzbkqlqqfc2p36cjlwv5dbucq.b32.i2p:0
+mlgeizrroynuhpxbzeosajt5u4ddcvynxfmcbm6kwjpaufilxigq.b32.i2p:0
+ofubxr2ir7u2guzjwyrvujicivzmvinwa36nuzlrg7tnsmebal7a.b32.i2p:0
+okfxeoh6itu4f5f43dhbzvkqwfrvm5c66lj6lvjj4q2b35i4pk4q.b32.i2p:0
+oz2ia3flpm3du2tyusulrn7h7e2eo3juzkrmn34bvnrlcrugv7ia.b32.i2p:0
+qd6jlsevsexww3wefpqs7iglxb3f63y4e6ydulfzrvwflpicmdqa.b32.i2p:0
+qddg7myylinn4tw6kdjmmp6fsyetkosnrbp2gsjx77tmkqyqv6ua.b32.i2p:0
+rizfinyses2r3or4iubs5wx66gdy6mpf73w7uobfacm2l5cral3q.b32.i2p:0
+s5hhjtmlg53bko3nwwskas7xgsmeqzy6thtsj5aa64djyrljgqaq.b32.i2p:0
sedndhv5vpcgdmykyi5st4yqhdxl3hpdtglta4do435wupahhx6q.b32.i2p:0
+tsl4dlpu2id252b6crbdnblruct664se6f2iw35fuqwa3te7wcoq.b32.i2p:0
+tugq6wa2ls2bv27pr2iy3da3k5ow3fzefbcvjcr22uc7w5vmevja.b32.i2p:0
+usztavbib756k5vqggzgkyswoj6mttihjvp3c2pa642t2mb4pvsa.b32.i2p:0
+vgu6llqbyjphml25umd5ztvyxrxuplz2g74fzbx75g3kkaetoyiq.b32.i2p:0
+wjrul5jwwb4vqdmkkrjbmly7osj6amecdpsac5xvaoqrti4nb3ha.b32.i2p:0
+wvktcp7hy4l6immhi5cxyz2dlsbhhvtcmskjemrnqehacnoap23q.b32.i2p:0
wwbw7nqr3ahkqv62cuqfwgtneekvvpnuc4i4f6yo7tpoqjswvcwa.b32.i2p:0
+xlqndzjoe5nr2nsxo6xwibh44ghyz4jfqevu62xykvemextpmjbq.b32.i2p:0
+yc4xwin5ujenvcr6ynwkz7lnmmq3nmzxvfguele6ovqqpxgjvonq.b32.i2p:0
+zdoabsg7ugzothyawodjhq54nvlofa746rxfkxpnjzj6nukmha6a.b32.i2p:0
zsxwyo6qcn3chqzwxnseusqgsnuw3maqnztkiypyfxtya4snkoka.b32.i2p:0
+zysrlpii5ftrzivfcyhdrwpeyyqddbrdefnfu5q6otk5gtugmh2a.b32.i2p:0
# manually added 2022-01 for minimal cjdns bootstrap support
[fc32:17ea:e415:c3bf:9808:149d:b5a2:c9aa]:8333
diff --git a/contrib/seeds/nodes_test.txt b/contrib/seeds/nodes_test.txt
index 118bec280e..5b04791d60 100644
--- a/contrib/seeds/nodes_test.txt
+++ b/contrib/seeds/nodes_test.txt
@@ -1,16 +1,89 @@
# List of fixed seed nodes for testnet
-# Onion nodes
-35k2va6vyw4oo5ly2quvcszgdqr56kcnfgcqpnpcffut4jn3mhhwgbid.onion:18333
-blo2esfvk2rr7sr4jspmu3vt2vpgr5rigflsj645fnku7v4qmljurtid.onion:18333
-fuckcswupr5rmlvx2kqqrrosxvjyong4hatmuvxsvtcwe4dsh5rus7qd.onion:18333
-gblylyacjlitd2ywdmo2qqylwtdky7kgeqfvlhiw4zdag4x62tx54hyd.onion:18333
-gzwpduv33l7yze3bcdzj3inebiyjwddjnwvnjhh5wvnv4me76mjt2kad.onion:18333
-h3rphzofxzq52tb63mg5f6kc4my3fkcrgh3m5qryeatts43iljbawiid.onion:18333
-kf4qlhek34b3kgyxyodlmvgm4bxfrjsbjtgayyaiuyhr2eoyfgtm3bad.onion:18333
+# Onion nodes, last verified 2022-08 for minimal torv3 bootstrap support
+24j74ahq6ed4wmfrghdwroyfzimlkhnrb7zh4zw3vl2allzxbjrhaqid.onion:18333
+2fy74te65gm3c3gv3u5mhwdudvbdfh6k5fdz4gduimrltjjrxftbxrqd.onion:18333
+2lsncqdflwk272dhydrxf7ikfy23ppnmm54dnynyxiym6lqf3wowrmqd.onion:18333
+33o6qaidta7s2pmltet6vynd337vamgcifhh44rehwwxqpflcjt2njid.onion:18333
+3oo6bsc5mvf6a6ypmoaikilta6ka7mbdhdwhrnqhuhjlbaxyedvfvaqd.onion:18333
+3pe3fyklipy4sppkkgnhc22kcxtt57uler5kv72t676bbrwmcseo5qad.onion:18333
+4u4mcz2sfvxs7pwcwncswgmmcdzqtzjx7ztfo332jv4pqucb22ikdhad.onion:18333
+5v3i2kfqiqwp75gznjoptss7qgrcgseceqxpzpqkd34qeqzrg726i7id.onion:18333
+5zlrxk6q24t4vz5k4ie7gtuasdjavhoelhinzimxbfhc77u7vafipsid.onion:18333
+67s3af64ehw7xnxv422axm7tns4d6kutrftc6bjq375n74q3kj4pp7ad.onion:18333
+6a4ony53julvnufo632ktgmwvhupz63wbdwx7n7qudjy32qyq6gm3bqd.onion:18333
+6ftyg3nhc6tn2hyzls6zfdsfbroczhkxtdqumqb5q4yafhy5rdpapbid.onion:18333
+7554uw5djruh34j5ddx3iprzgqgzypcjtptwoldymfbgoywqcw2wiwyd.onion:18333
+766lozlabxaqjpbqsvt6sn3c65n6gkwwhoxyvggj7nfwnmw4cpaoccad.onion:18333
+7blv5abnytdf47yvbhxmykprmvjryqob65i2jmdwq3rrajcn2iiysbqd.onion:18333
+7v2ja4igx4v5y2jr6jrr6gaxohjhlzhvgwe4avlraxchozf7ea3kruqd.onion:18333
+7zgbmtzxow2oevd5aaqtsormw7ujv4zprl3oi2355immhq4gk7cyw5ad.onion:18333
+adstabjz7ec2y3jt4w2dvummowzv7g6m2f3kajeejffuaz7ojwj6epqd.onion:18333
+aesy6tfufadkut6flu2bsqgnw2422ur2ynjalguxlzuzuktg3zehttqd.onion:18333
+alxo32b5edi3bn2e224qrgytgxxpic4knyipvpdvctfsrvcaiq5lgeyd.onion:18333
+aoeart34umoonvd2kbqr3bc4sweu6a4msh2gp4skyqvei3shzcxbgmyd.onion:18333
+aprzvj7hgctsde4mkj3ewq35gvykspjvkqiygg7bpnw5tkvse2n7rhid.onion:18333
+awpk6z3xghx6ozouhodcydaqtr6uzzbnw4creuix7mkupxoxlmhhspad.onion:18333
+ayynqazucyh2jd5rehcfggmhunqpdwzlbhzbqgy6lj4ctz2ocj7chpid.onion:18333
+b2ika53aqckv4gs7wmog3byrea2vfzm5p7ye33digcsmvvnpbyqmzoyd.onion:18333
+be7zx3hh6dlahorlvsrrgqm4oahfrgqm2tbwnbd4u53ntu5f765n6hyd.onion:18333
+bluk62wj24bsvdwh47muo54hhwsatkftiqxevt5kba7hstjoex6ueeyd.onion:18333
+bubm6fiopfzkxqrfx6vqpioe5ahlhyubz57ogsqqy4ha5pnngiqlh6id.onion:18333
+d3czabzjj57lgrsr5gawkjd7v3gznrqa7zyizqmk4lryascavmipnyad.onion:18333
+ddj4cuvb32ve5chtp6jattcdnnmxmpoofjthzi7thgxxht7yqoetj3yd.onion:18333
+dqhhlssfwmh3g6zhwxpcfbw64xz5rfikcglinbhoxv5ajv4qzicjyeid.onion:18333
+drthcyb4x4rdfekw5g7xjogxi7aqoluilgulbgwvsme3nw3oibvchbad.onion:18333
+dwb47cmqa2tjpmvjaear7gdcars2lez6niefhi4qf22qehtyta6577qd.onion:18333
+e7tkrf54ng3q5vcn5gn77zwjwm74lkfav4mwdux3pvon6yvqg3tf46qd.onion:18333
+etuymy47s3quepvdaoo72i5e5mc7uovrzu5m4jf5q6mwlwizoxy4xgid.onion:18333
+fbimesnyhzubbzqc3uaufzkbyfmnkxvypoxaveaub7rzpzh2foxrn2yd.onion:18333
+fzbrwmgwmko7quelrhfuskt3ijabac76zx7g52dfrevmhdkj6ivh7qyd.onion:18333
+gy6nih4pmp5esyvvnhlj6qvk7zkbjuoswkxffyiip3dbkvsfxwz5zcqd.onion:18333
+ha62ziqzqdogd75zg7lfh4fqrg3bim3cpqzyupo43w5pw4fen6nr2pyd.onion:18333
+hacjjgj2mbqqrthzimmi6anvin7dljjhfl3ik6ebg3w3nmgsvr3ymmqd.onion:18333
+hbkp5xwpqo4qm75kpglfrclyiuuvdgv7mtiqfys7oqks4dmpqgpeoeid.onion:18333
+hqgoy62hoqjmz37brdfvoeov3cix5fixbqjoert4ydr6herg5oc3iwyd.onion:18333
+hvbmmzvqrpgps2x5u4ip4ksf3e5m2fneac754gtnhjn2rsevni6cz3ad.onion:18333
+hw3vzp32w4h6giplue6ix445oi6wt7gmeksrznb7tdfwhkgit7gnbbad.onion:18333
+iddr66ewkhenivapgianudjkwqcp6dxtssg7ixrdot5az6uh7m5tmjqd.onion:18333
+imya36iexiiiqrkwuxxcehnv4kg5shtirwd2vg4cnjy6lfjlph3fusqd.onion:18333
+iuhhuocns7entrzlxsxktyz2ibs7hqgiggv6sauzqkzka6laslwz7oqd.onion:18333
+ji5wmshokuc63eiulzlwj2zdvnligvrwfvvc76bice3tu43wfzvpmkyd.onion:18333
+jjfuyj7krgzkmpxvn3b2j2hwlzkmze3ezy3ifwk7dnswwawgmzqhjrqd.onion:18333
+jn2p4sgfphkxpow7kjrubrbqat77kkibzqkvuwhxyalcrazwmcqeaqyd.onion:18333
+jrveyz4us6sog6e6czsvr5mvvhgzjgv4idbe4idrolmqeudvt5a2dgid.onion:18333
+jsc4frvvnl2d3bhzyofsc72xpztgm23nl4fnb4dwkzsxr6fhij2q5iyd.onion:18333
+klymxdvje7kccv3tznabo3udopsftkmjemkbi2urqxjm4hefaudejjyd.onion:18333
+kwjxlauwjtecjfsiwopbl5pvn5n6z5rz76uk6osmlurd3uyuymcw7aid.onion:18333
+lc7upz2srw2yhpcvwg4afy64ylcoo6mfwlttqj5ovuglqnhnohpi5iqd.onion:18333
+lf3mpxfyjuovcqdvinl52pvdmmda6xqyfeiarlfamdjpgy3ouzmmlbyd.onion:18333
mc7k47ndjvvhcgs54wmjzxvate4rtuybbjoryikdssjhcxlx27psbyqd.onion:18333
-mrhiniicugfo7mgrwv3wtolk3tptlcw2uq7ih6sq43fa4k4zbilut3yd.onion:18333
-uiudyws3qizgmepfoh7wwjmsoxoxut4qrmotjjhrn247xnjopr7sfcid.onion:18333
-zc2wvoqcezcrf64trji6jmhtss34a5ds5ntzdhqegzvex3ynrd7nxcad.onion:18333
-zd5m3dgdn46naj36pxvvcalfw2paecle6sdxq64ptwxtxjomkywpklqd.onion:18333
-
+mjbg3ggeuelmc7ixty3zjccyo2urg2uyherfqe7ytkm2ejkwlec7h6ad.onion:18333
+nkyqozv6kdwi423s7s2mezzguf5bafot2a3hv4ed2dbvtblisdmad4qd.onion:18333
+nvvqo4xxiwgb3y246jmcbuuveurfdq2zs3a5y7veqkeqv5jfhang7gyd.onion:18333
+o6vfovqxz3oxszfppczpjejwouobztjrgvfojc3emvhan3bkyskzhuad.onion:18333
+oaiw2lnhzgp5ry7ivzneuufmh7lfploquu2rjv5rozmlbefedsnxe5qd.onion:18333
+oln7ybci53wk4g5n42nipyixvyjxbludsbrfsmhnirb6tk7ovlikd5id.onion:18333
+otmfnhc6wrrbf2tpdy6zkisqc3r3urnsuowsnmatoto6yixaocnkseid.onion:18333
+ovc6sajbqfcbwv3wrq7ylklu6q6prvisz4jr4lyycn4kgukzjfe4mjad.onion:18333
+pm57didyzg5ljuvn5ufr5uun2iencuk3af2gzqc5zvgfh452c3rxtjyd.onion:18333
+pmismhpwug34gnqzbutranvx2wjwbshyqj4un2dyzyuvak2eh55psfyd.onion:18333
+polarisultijjhaku6z6u7jyboho5epdsg44ttebfaxmgau2z5sqolad.onion:18333
+qe2jbe447he6panfvpyqhyntf7346gmuf55bxrmdzggmgwyjsyknhxyd.onion:18333
+qz6yd5lsgdajcteoareeptwnipxsezyx5kks6ukpk5tvqinffzunqmyd.onion:18333
+rp6pn3b3oesyr2giolbysbjhqeugxntsu7crnkth4y33ok4zvcl7yrqd.onion:18333
+ujdchuw3hz5gkbouiv4p6pwbfdn7v4k6gluwvd4wiukqc7y7ow754uad.onion:18333
+vctlwaqgmu53eutz2hewuakcipfgtyljsd7czut4dd62xr3rp6fqezad.onion:18333
+vf5ur53tzmdtotvkndcgochklnuav7quqjvkc6mctqfvef6wnmn26mid.onion:18333
+wnxgjgjgplv5iu4mssyuunycvku4qnqr5t4q6cfdt47k7uwrfifuirad.onion:18333
+wpkbkdr7clw7zk3jkwiult6bf422j54u77ml4rgig2xq7icogyrcspid.onion:18333
+wzpdt24tdark26eugredddorik3tqwcj5ialtt2yim4ceiuiq7phkyqd.onion:18333
+xgapnikkbldoggjh5ewxkyauhuwnvf3xkspxroe3ojvfrk4lswkyx5yd.onion:18333
+xkvzdhcirontixbq6pjhru57bf4sgtqylvphk25csfrsy5p5ay3oc3yd.onion:18333
+xnipauenw5wnjb2zbx6v6umgvbb3g6xhf5kjo7pnyn5tdzvzaxtzicid.onion:18333
+yda7kwpii33j2qpq32ftf6lp22znknswipjwaccvsqj7l337jvfesnid.onion:18333
+z3j5foswuhpmtrg3kb56stkzmuoaesvd5jz3eztq46c4cidapglcyuad.onion:18333
+zcep44k7unwjm2wxty4ijh2e4fv5zgbrvwlctzyaqnrqhltjfzrtodad.onion:18333
+zmvizz7fd5hdue6wt3lwqumd6qwt4ijymmmotfzh75curq3mzjm53hyd.onion:18333
+zoaa3x7quyuijggii5zl4uyeioodudsgtr2uyv2qtdsslac5ukiwlxid.onion:18333
+zovauxlorl5eswumbsoxv2m5y3sm3qlk7657dcpr2uld7xf35en46sqd.onion:18333
diff --git a/contrib/signet/getcoins.py b/contrib/signet/getcoins.py
index 147d12600d..a069f5fad3 100755
--- a/contrib/signet/getcoins.py
+++ b/contrib/signet/getcoins.py
@@ -129,7 +129,7 @@ if args.captcha != '': # Retrieve a captcha
# Convert SVG image to PPM, and load it
try:
- rv = subprocess.run([args.imagemagick, 'svg:-', '-depth', '8', 'ppm:-'], input=res.content, check=True, capture_output=True)
+ rv = subprocess.run([args.imagemagick, 'svg:-', '-depth', '8', 'ppm:-'], input=res.content, check=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
except FileNotFoundError:
raise SystemExit(f"The binary {args.imagemagick} could not be found. Please make sure ImageMagick (or a compatible fork) is installed and that the correct path is specified.")
diff --git a/contrib/signet/miner b/contrib/signet/miner
index b366b98e2d..fdcd20ae3b 100755
--- a/contrib/signet/miner
+++ b/contrib/signet/miner
@@ -4,7 +4,6 @@
# file COPYING or http://www.opensource.org/licenses/mit-license.php.
import argparse
-import base64
import json
import logging
import math
@@ -15,14 +14,13 @@ import sys
import time
import subprocess
-from io import BytesIO
-
PATH_BASE_CONTRIB_SIGNET = os.path.abspath(os.path.dirname(os.path.realpath(__file__)))
PATH_BASE_TEST_FUNCTIONAL = os.path.abspath(os.path.join(PATH_BASE_CONTRIB_SIGNET, "..", "..", "test", "functional"))
sys.path.insert(0, PATH_BASE_TEST_FUNCTIONAL)
-from test_framework.blocktools import WITNESS_COMMITMENT_HEADER, script_BIP34_coinbase_height # noqa: E402
-from test_framework.messages import CBlock, CBlockHeader, COutPoint, CTransaction, CTxIn, CTxInWitness, CTxOut, from_hex, deser_string, hash256, ser_compact_size, ser_string, ser_uint256, tx_from_hex, uint256_from_str # noqa: E402
+from test_framework.blocktools import get_witness_script, script_BIP34_coinbase_height # noqa: E402
+from test_framework.messages import CBlock, CBlockHeader, COutPoint, CTransaction, CTxIn, CTxInWitness, CTxOut, from_binary, from_hex, ser_string, ser_uint256, tx_from_hex # noqa: E402
+from test_framework.psbt import PSBT, PSBTMap, PSBT_GLOBAL_UNSIGNED_TX, PSBT_IN_FINAL_SCRIPTSIG, PSBT_IN_FINAL_SCRIPTWITNESS, PSBT_IN_NON_WITNESS_UTXO, PSBT_IN_SIGHASH_TYPE # noqa: E402
from test_framework.script import CScriptOp # noqa: E402
logging.basicConfig(
@@ -34,99 +32,12 @@ SIGNET_HEADER = b"\xec\xc7\xda\xa2"
PSBT_SIGNET_BLOCK = b"\xfc\x06signetb" # proprietary PSBT global field holding the block being signed
RE_MULTIMINER = re.compile("^(\d+)(-(\d+))?/(\d+)$")
-# #### some helpers that could go into test_framework
-
-# like from_hex, but without the hex part
-def FromBinary(cls, stream):
- """deserialize a binary stream (or bytes object) into an object"""
- # handle bytes object by turning it into a stream
- was_bytes = isinstance(stream, bytes)
- if was_bytes:
- stream = BytesIO(stream)
- obj = cls()
- obj.deserialize(stream)
- if was_bytes:
- assert len(stream.read()) == 0
- return obj
-
-class PSBTMap:
- """Class for serializing and deserializing PSBT maps"""
-
- def __init__(self, map=None):
- self.map = map if map is not None else {}
-
- def deserialize(self, f):
- m = {}
- while True:
- k = deser_string(f)
- if len(k) == 0:
- break
- v = deser_string(f)
- if len(k) == 1:
- k = k[0]
- assert k not in m
- m[k] = v
- self.map = m
-
- def serialize(self):
- m = b""
- for k,v in self.map.items():
- if isinstance(k, int) and 0 <= k and k <= 255:
- k = bytes([k])
- m += ser_compact_size(len(k)) + k
- m += ser_compact_size(len(v)) + v
- m += b"\x00"
- return m
-
-class PSBT:
- """Class for serializing and deserializing PSBTs"""
-
- def __init__(self):
- self.g = PSBTMap()
- self.i = []
- self.o = []
- self.tx = None
-
- def deserialize(self, f):
- assert f.read(5) == b"psbt\xff"
- self.g = FromBinary(PSBTMap, f)
- assert 0 in self.g.map
- self.tx = FromBinary(CTransaction, self.g.map[0])
- self.i = [FromBinary(PSBTMap, f) for _ in self.tx.vin]
- self.o = [FromBinary(PSBTMap, f) for _ in self.tx.vout]
- return self
-
- def serialize(self):
- assert isinstance(self.g, PSBTMap)
- assert isinstance(self.i, list) and all(isinstance(x, PSBTMap) for x in self.i)
- assert isinstance(self.o, list) and all(isinstance(x, PSBTMap) for x in self.o)
- assert 0 in self.g.map
- tx = FromBinary(CTransaction, self.g.map[0])
- assert len(tx.vin) == len(self.i)
- assert len(tx.vout) == len(self.o)
-
- psbt = [x.serialize() for x in [self.g] + self.i + self.o]
- return b"psbt\xff" + b"".join(psbt)
-
- def to_base64(self):
- return base64.b64encode(self.serialize()).decode("utf8")
-
- @classmethod
- def from_base64(cls, b64psbt):
- return FromBinary(cls, base64.b64decode(b64psbt))
-
-# #####
-
def create_coinbase(height, value, spk):
cb = CTransaction()
cb.vin = [CTxIn(COutPoint(0, 0xffffffff), script_BIP34_coinbase_height(height), 0xffffffff)]
cb.vout = [CTxOut(value, spk)]
return cb
-def get_witness_script(witness_root, witness_nonce):
- commitment = uint256_from_str(hash256(ser_uint256(witness_root) + ser_uint256(witness_nonce)))
- return b"\x6a" + CScriptOp.encode_op_pushdata(WITNESS_COMMITMENT_HEADER + ser_uint256(commitment))
-
def signet_txs(block, challenge):
# assumes signet solution has not been added yet so does not need
# to be removed
@@ -163,11 +74,11 @@ def signet_txs(block, challenge):
def do_createpsbt(block, signme, spendme):
psbt = PSBT()
- psbt.g = PSBTMap( {0: signme.serialize(),
+ psbt.g = PSBTMap( {PSBT_GLOBAL_UNSIGNED_TX: signme.serialize(),
PSBT_SIGNET_BLOCK: block.serialize()
} )
- psbt.i = [ PSBTMap( {0: spendme.serialize(),
- 3: bytes([1,0,0,0])})
+ psbt.i = [ PSBTMap( {PSBT_IN_NON_WITNESS_UTXO: spendme.serialize(),
+ PSBT_IN_SIGHASH_TYPE: bytes([1,0,0,0])})
]
psbt.o = [ PSBTMap() ]
return psbt.to_base64()
@@ -179,10 +90,10 @@ def do_decode_psbt(b64psbt):
assert len(psbt.tx.vout) == 1
assert PSBT_SIGNET_BLOCK in psbt.g.map
- scriptSig = psbt.i[0].map.get(7, b"")
- scriptWitness = psbt.i[0].map.get(8, b"\x00")
+ scriptSig = psbt.i[0].map.get(PSBT_IN_FINAL_SCRIPTSIG, b"")
+ scriptWitness = psbt.i[0].map.get(PSBT_IN_FINAL_SCRIPTWITNESS, b"\x00")
- return FromBinary(CBlock, psbt.g.map[PSBT_SIGNET_BLOCK]), ser_string(scriptSig) + scriptWitness
+ return from_binary(CBlock, psbt.g.map[PSBT_SIGNET_BLOCK]), ser_string(scriptSig) + scriptWitness
def finish_block(block, signet_solution, grind_cmd):
block.vtx[0].vout[-1].scriptPubKey += CScriptOp.encode_op_pushdata(SIGNET_HEADER + signet_solution)
@@ -222,7 +133,7 @@ def generate_psbt(tmpl, reward_spk, *, blocktime=None):
cbwit = CTxInWitness()
cbwit.scriptWitness.stack = [ser_uint256(witnonce)]
block.vtx[0].wit.vtxinwit = [cbwit]
- block.vtx[0].vout.append(CTxOut(0, get_witness_script(witroot, witnonce)))
+ block.vtx[0].vout.append(CTxOut(0, bytes(get_witness_script(witroot, witnonce))))
signme, spendme = signet_txs(block, signet_spk_bin)
@@ -627,5 +538,3 @@ def main():
if __name__ == "__main__":
main()
-
-
diff --git a/contrib/valgrind.supp b/contrib/valgrind.supp
index 6efe49254b..d6856b4274 100644
--- a/contrib/valgrind.supp
+++ b/contrib/valgrind.supp
@@ -65,12 +65,6 @@
obj:*/libdb_cxx-*.so
}
{
- Suppress leaks on init
- Memcheck:Leak
- ...
- fun:_Z11AppInitMainR11NodeContext
-}
-{
Suppress leaks on shutdown
Memcheck:Leak
...
@@ -83,21 +77,6 @@
obj:/usr/lib64/libgdk-3.so.0.2404.7
}
{
- Suppress leveldb warning (leveldb::InitModule()) - https://github.com/google/leveldb/issues/113
- Memcheck:Leak
- match-leak-kinds: reachable
- fun:_Znwm
- fun:_ZN7leveldbL10InitModuleEv
-}
-{
- Suppress leveldb warning (leveldb::Env::Default()) - https://github.com/google/leveldb/issues/113
- Memcheck:Leak
- match-leak-kinds: reachable
- fun:_Znwm
- ...
- fun:_ZN7leveldbL14InitDefaultEnvEv
-}
-{
Suppress leveldb leak
Memcheck:Leak
match-leak-kinds: reachable
diff --git a/contrib/verify-commits/trusted-keys b/contrib/verify-commits/trusted-keys
index 2f8a21009a..5ca65e7b0d 100644
--- a/contrib/verify-commits/trusted-keys
+++ b/contrib/verify-commits/trusted-keys
@@ -1,6 +1,6 @@
71A3B16735405025D447E8F274810B012346C9A6
-133EAC179436F14A5CF1B794860FEB804E669320
B8B3F1C0E58C15DB6A81D30C3648A882F4316B9B
E777299FC265DD04793070EB944D35F9AC3DB76A
D1DBF2C4B96F2DEBF4C16654410108112E7EA81F
152812300785C96444D3334D17565732E08E5E41
+6B002C6EA3F91B1B0DF0C9BC8F617F1200A6D25C