diff --git a/.cirrus.yml b/.cirrus.yml index c8ccf6c057230..ff2cfcf82ce75 100644 --- a/.cirrus.yml +++ b/.cirrus.yml @@ -55,7 +55,7 @@ macos_native_task_template: &MACOS_NATIVE_TASK_TEMPLATE check_clang_script: - clang --version brew_install_script: - - brew install boost libevent qt@5 miniupnpc libnatpmp ccache zeromq qrencode libtool automake gnu-getopt + - brew install boost libevent qt@5 miniupnpc libnatpmp ccache openssl zeromq qrencode libtool automake gnu-getopt << : *MAIN_TEMPLATE compute_credits_template: &CREDITS_TEMPLATE @@ -174,7 +174,7 @@ task: - msbuild build_msvc\bitcoin.sln -property:CLToolExe=%WRAPPED_CL% -property:Configuration=Release -maxCpuCount -verbosity:minimal -noLogo - ccache --show-stats unit_tests_script: - - src\test_bitcoin.exe -l test_suite + - src\test_litecoin.exe -l test_suite - src\bench_bitcoin.exe > NUL - python test\util\test_runner.py - python test\util\rpcauth-test.py @@ -252,7 +252,7 @@ task: name: '[ASan + LSan + UBSan + integer, no depends, USDT] [jammy]' << : *GLOBAL_TASK_TEMPLATE # We can't use a 'container' for the USDT interface tests as the CirrusCI - # containers don't have privileges to hook into bitcoind. CirrusCI uses + # containers don't have privileges to hook into litecoind. CirrusCI uses # Google Compute Engine instances: https://cirrus-ci.org/guide/custom-vms/ # Images can be found here: https://cloud.google.com/compute/docs/images/os-details compute_engine_instance: diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md index eedeeb4e54c58..c898767e90ea2 100644 --- a/.github/ISSUE_TEMPLATE.md +++ b/.github/ISSUE_TEMPLATE.md @@ -1,8 +1,8 @@ - - + diff --git a/.gitignore b/.gitignore index 6ca9d39a16b36..0fac1e3951a1f 100644 --- a/.gitignore +++ b/.gitignore @@ -2,18 +2,18 @@ *.exe *.pdb -src/bitcoin -src/bitcoind -src/bitcoin-cli -src/bitcoin-gui -src/bitcoin-node -src/bitcoin-tx -src/bitcoin-util -src/bitcoin-chainstate -src/bitcoin-wallet +src/litecoin +src/litecoind +src/litecoin-cli +src/litecoin-gui +src/litecoin-node +src/litecoin-tx +src/litecoin-util +src/litecoin-chainstate +src/litecoin-wallet src/test/fuzz/fuzz -src/test/test_bitcoin -src/qt/test/test_bitcoin-qt +src/test/test_litecoin +src/qt/test/test_litecoin-qt # autoreconf Makefile.in @@ -92,15 +92,15 @@ src/qt/bitcoin-qt.includes *.qm Makefile !depends/Makefile -src/qt/bitcoin-qt -Bitcoin-Qt.app +src/qt/litecoin-qt +Litecoin-Qt.app # Qt Creator Makefile.am.user # Unit-tests Makefile.test -bitcoin-qt_test +litecoin-qt_test # Resources cpp qrc_*.cpp @@ -116,7 +116,7 @@ releases *.gcno *.gcda /*.info -test_bitcoin.coverage/ +test_litecoin.coverage/ total.coverage/ fuzz.coverage/ coverage_percent.txt diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 0ae4ff1a923cc..88cab504a75ed 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -142,7 +142,7 @@ the pull request affects. Valid areas as: - `consensus` for changes to consensus critical code - `doc` for changes to the documentation - - `qt` or `gui` for changes to bitcoin-qt + - `qt` or `gui` for changes to litecoin-qt - `log` for changes to log messages - `mining` for changes to the mining code - `net` or `p2p` for changes to the peer-to-peer network code diff --git a/Makefile.am b/Makefile.am index 8b61763ae4d6c..33ff25e0d2663 100644 --- a/Makefile.am +++ b/Makefile.am @@ -35,7 +35,7 @@ BITCOIN_WIN_INSTALLER=$(PACKAGE)-$(PACKAGE_VERSION)-win64-setup$(EXEEXT) empty := space := $(empty) $(empty) -OSX_APP=Bitcoin-Qt.app +OSX_APP=Litecoin-Qt.app OSX_VOLNAME = $(subst $(space),-,$(PACKAGE_NAME)) OSX_DMG = $(OSX_VOLNAME).dmg OSX_DEPLOY_SCRIPT=$(top_srcdir)/contrib/macdeploy/macdeployqtplus @@ -47,8 +47,7 @@ DIST_CONTRIB = \ $(top_srcdir)/test/sanitizer_suppressions/tsan \ $(top_srcdir)/test/sanitizer_suppressions/ubsan \ $(top_srcdir)/contrib/linearize/linearize-data.py \ - $(top_srcdir)/contrib/linearize/linearize-hashes.py \ - $(top_srcdir)/contrib/signet/miner + $(top_srcdir)/contrib/linearize/linearize-hashes.py DIST_SHARE = \ $(top_srcdir)/share/genbuild.sh \ @@ -67,9 +66,9 @@ OSX_PACKAGING = $(OSX_DEPLOY_SCRIPT) $(OSX_INSTALLER_ICONS) \ $(top_srcdir)/contrib/macdeploy/detached-sig-create.sh COVERAGE_INFO = $(COV_TOOL_WRAPPER) baseline.info \ - test_bitcoin_filtered.info total_coverage.info \ + test_litecoin_filtered.info total_coverage.info \ baseline_filtered.info functional_test.info functional_test_filtered.info \ - test_bitcoin_coverage.info test_bitcoin.info fuzz.info fuzz_filtered.info fuzz_coverage.info + test_litecoin_coverage.info test_litecoin.info fuzz.info fuzz_filtered.info fuzz_coverage.info dist-hook: -$(GIT) archive --format=tar HEAD -- src/clientversion.cpp | $(AMTAR) -C $(top_distdir) -xf - @@ -108,7 +107,7 @@ $(OSX_APP)/Contents/Resources/bitcoin.icns: $(OSX_INSTALLER_ICONS) $(MKDIR_P) $(@D) $(INSTALL_DATA) $< $@ -$(OSX_APP)/Contents/MacOS/Bitcoin-Qt: all-recursive +$(OSX_APP)/Contents/MacOS/Litecoin-Qt: all-recursive $(MKDIR_P) $(@D) STRIPPROG="$(STRIP)" $(INSTALL_STRIP_PROGRAM) $(BITCOIN_QT_BIN) $@ @@ -118,7 +117,7 @@ $(OSX_APP)/Contents/Resources/Base.lproj/InfoPlist.strings: OSX_APP_BUILT=$(OSX_APP)/Contents/PkgInfo $(OSX_APP)/Contents/Resources/empty.lproj \ $(OSX_APP)/Contents/Resources/bitcoin.icns $(OSX_APP)/Contents/Info.plist \ - $(OSX_APP)/Contents/MacOS/Bitcoin-Qt $(OSX_APP)/Contents/Resources/Base.lproj/InfoPlist.strings + $(OSX_APP)/Contents/MacOS/Litecoin-Qt $(OSX_APP)/Contents/Resources/Base.lproj/InfoPlist.strings osx_volname: echo $(OSX_VOLNAME) >$@ @@ -134,10 +133,10 @@ APP_DIST_DIR=$(top_builddir)/dist $(OSX_DMG): deploydir $(XORRISOFS) -D -l -V "$(OSX_VOLNAME)" -no-pad -r -dir-mode 0755 -o $@ $(APP_DIST_DIR) -- $(if $(SOURCE_DATE_EPOCH),-volume_date all_file_dates =$(SOURCE_DATE_EPOCH)) -$(APP_DIST_DIR)/$(OSX_APP)/Contents/MacOS/Bitcoin-Qt: $(OSX_APP_BUILT) $(OSX_PACKAGING) +$(APP_DIST_DIR)/$(OSX_APP)/Contents/MacOS/Litecoin-Qt: $(OSX_APP_BUILT) $(OSX_PACKAGING) INSTALL_NAME_TOOL=$(INSTALL_NAME_TOOL) OTOOL=$(OTOOL) STRIP=$(STRIP) $(PYTHON) $(OSX_DEPLOY_SCRIPT) $(OSX_APP) $(OSX_VOLNAME) -translations-dir=$(QT_TRANSLATION_DIR) -deploydir: $(APP_DIST_DIR)/$(OSX_APP)/Contents/MacOS/Bitcoin-Qt +deploydir: $(APP_DIST_DIR)/$(OSX_APP)/Contents/MacOS/Litecoin-Qt endif !BUILD_DARWIN deploy: $(OSX_DMG) @@ -203,16 +202,16 @@ fuzz_filtered.info: fuzz.info $(abs_builddir)/contrib/filter-lcov.py $(LCOV_FILTER_PATTERN) $< $@ $(LCOV) -a $@ $(LCOV_OPTS) -o $@ -test_bitcoin.info: baseline_filtered.info +test_litecoin.info: baseline_filtered.info $(MAKE) -C src/ check - $(LCOV) -c $(LCOV_OPTS) -d $(abs_builddir)/src -t test_bitcoin -o $@ + $(LCOV) -c $(LCOV_OPTS) -d $(abs_builddir)/src -t test_litecoin -o $@ $(LCOV) -z $(LCOV_OPTS) -d $(abs_builddir)/src -test_bitcoin_filtered.info: test_bitcoin.info +test_litecoin_filtered.info: test_litecoin.info $(abs_builddir)/contrib/filter-lcov.py $(LCOV_FILTER_PATTERN) $< $@ $(LCOV) -a $@ $(LCOV_OPTS) -o $@ -functional_test.info: test_bitcoin_filtered.info +functional_test.info: test_litecoin_filtered.info @TIMEOUT=15 test/functional/test_runner.py $(EXTENDED_FUNCTIONAL_TESTS) $(LCOV) -c $(LCOV_OPTS) -d $(abs_builddir)/src --t functional-tests -o $@ $(LCOV) -z $(LCOV_OPTS) -d $(abs_builddir)/src @@ -224,17 +223,17 @@ functional_test_filtered.info: functional_test.info fuzz_coverage.info: fuzz_filtered.info $(LCOV) -a $(LCOV_OPTS) baseline_filtered.info -a fuzz_filtered.info -o $@ | $(GREP) "\%" | $(AWK) '{ print substr($$3,2,50) "/" $$5 }' > coverage_percent.txt -test_bitcoin_coverage.info: baseline_filtered.info test_bitcoin_filtered.info - $(LCOV) -a $(LCOV_OPTS) baseline_filtered.info -a test_bitcoin_filtered.info -o $@ +test_litecoin_coverage.info: baseline_filtered.info test_litecoin_filtered.info + $(LCOV) -a $(LCOV_OPTS) baseline_filtered.info -a test_litecoin_filtered.info -o $@ -total_coverage.info: test_bitcoin_filtered.info functional_test_filtered.info - $(LCOV) -a $(LCOV_OPTS) baseline_filtered.info -a test_bitcoin_filtered.info -a functional_test_filtered.info -o $@ | $(GREP) "\%" | $(AWK) '{ print substr($$3,2,50) "/" $$5 }' > coverage_percent.txt +total_coverage.info: test_litecoin_filtered.info functional_test_filtered.info + $(LCOV) -a $(LCOV_OPTS) baseline_filtered.info -a test_litecoin_filtered.info -a functional_test_filtered.info -o $@ | $(GREP) "\%" | $(AWK) '{ print substr($$3,2,50) "/" $$5 }' > coverage_percent.txt fuzz.coverage/.dirstamp: fuzz_coverage.info $(GENHTML) -s $(LCOV_OPTS) $< -o $(@D) @touch $@ -test_bitcoin.coverage/.dirstamp: test_bitcoin_coverage.info +test_litecoin.coverage/.dirstamp: test_litecoin_coverage.info $(GENHTML) -s $(LCOV_OPTS) $< -o $(@D) @touch $@ @@ -244,7 +243,7 @@ total.coverage/.dirstamp: total_coverage.info cov_fuzz: fuzz.coverage/.dirstamp -cov: test_bitcoin.coverage/.dirstamp total.coverage/.dirstamp +cov: test_litecoin.coverage/.dirstamp total.coverage/.dirstamp endif @@ -258,7 +257,7 @@ EXTRA_DIST += \ EXTRA_DIST += \ test/util/test_runner.py \ - test/util/data/bitcoin-util-test.json \ + test/util/data/litecoin-util-test.json \ test/util/data/blanktxv1.hex \ test/util/data/blanktxv1.json \ test/util/data/blanktxv2.hex \ @@ -333,7 +332,7 @@ clean-docs: rm -rf doc/doxygen clean-local: clean-docs - rm -rf coverage_percent.txt test_bitcoin.coverage/ total.coverage/ fuzz.coverage/ test/tmp/ cache/ $(OSX_APP) + rm -rf coverage_percent.txt test_litecoin.coverage/ total.coverage/ fuzz.coverage/ test/tmp/ cache/ $(OSX_APP) rm -rf test/functional/__pycache__ test/functional/test_framework/__pycache__ test/cache share/rpcauth/__pycache__ rm -rf osx_volname dist/ diff --git a/README.md b/README.md index 2eab2315eb6ea..460040aec9a61 100644 --- a/README.md +++ b/README.md @@ -1,34 +1,34 @@ Bitcoin Core integration/staging tree ===================================== -https://bitcoincore.org +[![Build Status](https://travis-ci.org/litecoin-project/litecoin.svg?branch=master)](https://travis-ci.org/litecoin-project/litecoin) -For an immediately usable, binary version of the Bitcoin Core software, see -https://bitcoincore.org/en/download/. +For an immediately usable, binary version of the Litecoin Core software, see +https://litecoin.org/. -What is Bitcoin Core? +What is Litecoin Core? --------------------- -Bitcoin Core connects to the Bitcoin peer-to-peer network to download and fully +Litecoin Core connects to the Litecoin peer-to-peer network to download and fully validate blocks and transactions. It also includes a wallet and graphical user interface, which can be optionally built. -Further information about Bitcoin Core is available in the [doc folder](/doc). +Further information about Litecoin Core is available in the [doc folder](/doc). License ------- -Bitcoin Core is released under the terms of the MIT license. See [COPYING](COPYING) for more +Litecoin Core is released under the terms of the MIT license. See [COPYING](COPYING) for more information or see https://opensource.org/licenses/MIT. Development Process ------------------- The `master` branch is regularly built (see `doc/build-*.md` for instructions) and tested, but it is not guaranteed to be -completely stable. [Tags](https://github.com/bitcoin/bitcoin/tags) are created +completely stable. [Tags](https://github.com/litecoin-project/litecoin/tags) are created regularly from release branches to indicate new official, stable release versions of Bitcoin Core. -The https://github.com/bitcoin-core/gui repository is used exclusively for the +The https://github.com/litecoin-project/gui repository is used exclusively for the development of the GUI. Its master branch is identical in all monotree repositories. Release branches and tags do not exist, so please do not fork that repository unless it is for development reasons. @@ -68,8 +68,8 @@ not straightforward. Translations ------------ -Changes to translations as well as new translations can be submitted to -[Bitcoin Core's Transifex page](https://www.transifex.com/bitcoin/bitcoin/). +We only accept translation fixes that are submitted through [Bitcoin Core's Transifex page](https://www.transifex.com/projects/p/bitcoin/). +Translations are converted to Litecoin periodically. Translations are periodically pulled from Transifex and merged into the git repository. See the [translation process](doc/translation_process.md) for details on how this works. diff --git a/build-aux/m4/bitcoin_qt.m4 b/build-aux/m4/bitcoin_qt.m4 index a716cd9a27795..0ee81a9efce7e 100644 --- a/build-aux/m4/bitcoin_qt.m4 +++ b/build-aux/m4/bitcoin_qt.m4 @@ -7,7 +7,7 @@ dnl Output: If qt version is auto, set bitcoin_enable_qt to false. Else, exit. AC_DEFUN([BITCOIN_QT_FAIL],[ if test "$bitcoin_qt_want_version" = "auto" && test "$bitcoin_qt_force" != "yes"; then if test "$bitcoin_enable_qt" != "no"; then - AC_MSG_WARN([$1; bitcoin-qt frontend will not be built]) + AC_MSG_WARN([$1; litecoin-qt frontend will not be built]) fi bitcoin_enable_qt=no bitcoin_enable_qt_test=no @@ -54,7 +54,7 @@ AC_DEFUN([BITCOIN_QT_INIT],[ dnl enable qt support AC_ARG_WITH([gui], [AS_HELP_STRING([--with-gui@<:@=no|qt5|auto@:>@], - [build bitcoin-qt GUI (default=auto)])], + [build litecoin-qt GUI (default=auto)])], [ bitcoin_qt_want_version=$withval if test "$bitcoin_qt_want_version" = "yes"; then diff --git a/build_msvc/README.md b/build_msvc/README.md index b9bebd369c2d1..23aacfc184c62 100644 --- a/build_msvc/README.md +++ b/build_msvc/README.md @@ -69,10 +69,10 @@ Security --------------------- [Base address randomization](https://docs.microsoft.com/en-us/cpp/build/reference/dynamicbase-use-address-space-layout-randomization?view=msvc-160) is used to make Bitcoin Core more secure. When building Bitcoin using the `build_msvc` process base address randomization can be disabled by editing `common.init.vcproj` to change `RandomizedBaseAddress` from `true` to `false` and then rebuilding the project. -To check if `bitcoind` has `RandomizedBaseAddress` enabled or disabled run +To check if `litecoind` has `RandomizedBaseAddress` enabled or disabled run ``` -.\dumpbin.exe /headers src/bitcoind.exe +.\dumpbin.exe /headers src/litecoind.exe ``` If is it enabled then in the output `Dynamic base` will be listed in the `DLL characteristics` under `OPTIONAL HEADER VALUES` as shown below diff --git a/ci/test/00_setup_env_i686_multiprocess.sh b/ci/test/00_setup_env_i686_multiprocess.sh index 766424769dcc6..53a8c5648887c 100755 --- a/ci/test/00_setup_env_i686_multiprocess.sh +++ b/ci/test/00_setup_env_i686_multiprocess.sh @@ -13,5 +13,5 @@ export PACKAGES="cmake python3 python3-pip llvm clang g++-multilib" export DEP_OPTS="DEBUG=1 MULTIPROCESS=1" export GOAL="install" export BITCOIN_CONFIG="--enable-debug CC='clang -m32' CXX='clang++ -m32' LDFLAGS='--rtlib=compiler-rt -lgcc_s'" -export TEST_RUNNER_ENV="BITCOIND=bitcoin-node" +export TEST_RUNNER_ENV="LITECOIND=litecoin-node" export TEST_RUNNER_EXTRA="--nosandbox" diff --git a/ci/test/06_script_b.sh b/ci/test/06_script_b.sh index 5bdb392ba3f00..12e3e7ff22fa9 100755 --- a/ci/test/06_script_b.sh +++ b/ci/test/06_script_b.sh @@ -27,7 +27,7 @@ if [ "$RUN_UNIT_TESTS" = "true" ]; then fi if [ "$RUN_UNIT_TESTS_SEQUENTIAL" = "true" ]; then - CI_EXEC "${TEST_RUNNER_ENV}" DIR_UNIT_TEST_DATA="${DIR_UNIT_TEST_DATA}" LD_LIBRARY_PATH="${DEPENDS_DIR}/${HOST}/lib" "${BASE_OUTDIR}/bin/test_bitcoin" --catch_system_errors=no -l test_suite + CI_EXEC "${TEST_RUNNER_ENV}" DIR_UNIT_TEST_DATA="${DIR_UNIT_TEST_DATA}" LD_LIBRARY_PATH="${DEPENDS_DIR}/${HOST}/lib" "${BASE_OUTDIR}/bin/test_litecoin" --catch_system_errors=no -l test_suite fi if [ "$RUN_FUNCTIONAL_TESTS" = "true" ]; then diff --git a/configure.ac b/configure.ac index 87dd0dc81e26c..cfc287f60ef21 100644 --- a/configure.ac +++ b/configure.ac @@ -6,8 +6,8 @@ define(_CLIENT_VERSION_RC, 0) define(_CLIENT_VERSION_IS_RELEASE, true) define(_COPYRIGHT_YEAR, 2022) define(_COPYRIGHT_HOLDERS,[The %s developers]) -define(_COPYRIGHT_HOLDERS_SUBSTITUTION,[[Bitcoin Core]]) -AC_INIT([Bitcoin Core],m4_join([.], _CLIENT_VERSION_MAJOR, _CLIENT_VERSION_MINOR, _CLIENT_VERSION_BUILD)m4_if(_CLIENT_VERSION_RC, [0], [], [rc]_CLIENT_VERSION_RC),[https://github.com/bitcoin/bitcoin/issues],[bitcoin],[https://bitcoincore.org/]) +define(_COPYRIGHT_HOLDERS_SUBSTITUTION,[[Litecoin Core]]) +AC_INIT([Litecoin Core],m4_join([.], _CLIENT_VERSION_MAJOR, _CLIENT_VERSION_MINOR, _CLIENT_VERSION_BUILD)m4_if(_CLIENT_VERSION_RC, [0], [], [rc]_CLIENT_VERSION_RC),[https://github.com/litecoin-project/litecoin/issues],[litecoin],[https://litecoin.org/]) AC_CONFIG_SRCDIR([src/validation.cpp]) AC_CONFIG_HEADERS([src/config/bitcoin-config.h]) AC_CONFIG_AUX_DIR([build-aux]) @@ -29,17 +29,17 @@ if test -n "$PKG_CONFIG_LIBDIR"; then PKG_CONFIG="env PKG_CONFIG_LIBDIR=$PKG_CONFIG_LIBDIR $PKG_CONFIG" fi -BITCOIN_DAEMON_NAME=bitcoind -BITCOIN_GUI_NAME=bitcoin-qt -BITCOIN_TEST_NAME=test_bitcoin -BITCOIN_CLI_NAME=bitcoin-cli -BITCOIN_TX_NAME=bitcoin-tx -BITCOIN_UTIL_NAME=bitcoin-util -BITCOIN_CHAINSTATE_NAME=bitcoin-chainstate -BITCOIN_WALLET_TOOL_NAME=bitcoin-wallet +BITCOIN_DAEMON_NAME=litecoind +BITCOIN_GUI_NAME=litecoin-qt +BITCOIN_TEST_NAME=test_litecoin +BITCOIN_CLI_NAME=litecoin-cli +BITCOIN_TX_NAME=litecoin-tx +BITCOIN_UTIL_NAME=litecoin-util +BITCOIN_CHAINSTATE_NAME=litecoin-chainstate +BITCOIN_WALLET_TOOL_NAME=litecoin-wallet dnl Multi Process -BITCOIN_MP_NODE_NAME=bitcoin-node -BITCOIN_MP_GUI_NAME=bitcoin-gui +BITCOIN_MP_NODE_NAME=litecoin-node +BITCOIN_MP_GUI_NAME=litecoin-gui dnl Unless the user specified ARFLAGS, force it to be cr dnl This is also the default as-of libtool 2.4.7 @@ -295,10 +295,16 @@ AC_ARG_WITH([mpgen], AC_ARG_ENABLE([multiprocess], [AS_HELP_STRING([--enable-multiprocess], - [build multiprocess bitcoin-node, bitcoin-wallet, and bitcoin-gui executables in addition to monolithic bitcoind and bitcoin-qt executables. Requires libmultiprocess library. Experimental (default is no)])], + [build multiprocess litecoin-node, litecoin-wallet, and litecoin-gui executables in addition to monolithic litecoind and litecoin-qt executables. Requires libmultiprocess library. Experimental (default is no)])], [enable_multiprocess=$enableval], [enable_multiprocess=no]) +AC_ARG_ENABLE([sse2], + [AS_HELP_STRING([--enable-sse2], + [enable SSE2 instructions in the scrypt library. (default is disabled)])], + [use_sse2=$enableval], + [use_sse2=no]) + AC_ARG_ENABLE(man, [AS_HELP_STRING([--disable-man], [do not install man pages (default is to install)])],, @@ -634,39 +640,39 @@ CORE_CPPFLAGS="$CORE_CPPFLAGS -DHAVE_BUILD_INFO" AC_ARG_WITH([utils], [AS_HELP_STRING([--with-utils], - [build bitcoin-cli bitcoin-tx bitcoin-util bitcoin-wallet (default=yes)])], - [build_bitcoin_utils=$withval], - [build_bitcoin_utils=yes]) + [build litecoin-cli litecoin-tx litecoin-util litecoin-wallet (default=yes)])], + [build_litecoin_utils=$withval], + [build_litecoin_utils=yes]) AC_ARG_ENABLE([util-cli], [AS_HELP_STRING([--enable-util-cli], - [build bitcoin-cli])], - [build_bitcoin_cli=$enableval], - [build_bitcoin_cli=$build_bitcoin_utils]) + [build litecoin-cli])], + [build_litecoin_cli=$enableval], + [build_litecoin_cli=$build_litecoin_utils]) AC_ARG_ENABLE([util-tx], [AS_HELP_STRING([--enable-util-tx], - [build bitcoin-tx])], - [build_bitcoin_tx=$enableval], - [build_bitcoin_tx=$build_bitcoin_utils]) + [build litecoin-tx])], + [build_litecoin_tx=$enableval], + [build_litecoin_tx=$build_litecoin_utils]) AC_ARG_ENABLE([util-wallet], [AS_HELP_STRING([--enable-util-wallet], - [build bitcoin-wallet])], - [build_bitcoin_wallet=$enableval], - [build_bitcoin_wallet=$build_bitcoin_utils]) + [build litecoin-wallet])], + [build_litecoin_wallet=$enableval], + [build_litecoin_wallet=$build_litecoin_utils]) AC_ARG_ENABLE([util-util], [AS_HELP_STRING([--enable-util-util], - [build bitcoin-util])], - [build_bitcoin_util=$enableval], - [build_bitcoin_util=$build_bitcoin_utils]) + [build litecoin-util])], + [build_litecoin_util=$enableval], + [build_litecoin_util=$build_litecoin_utils]) AC_ARG_ENABLE([experimental-util-chainstate], [AS_HELP_STRING([--enable-experimental-util-chainstate], - [build experimental bitcoin-chainstate executable (default=no)])], - [build_bitcoin_chainstate=$enableval], - [build_bitcoin_chainstate=no]) + [build experimental litecoin-chainstate executable (default=no)])], + [build_litecoin_chainstate=$enableval], + [build_litecoin_chainstate=no]) AC_ARG_WITH([libs], [AS_HELP_STRING([--with-libs], @@ -682,10 +688,11 @@ AC_ARG_WITH([experimental-kernel-lib], AC_ARG_WITH([daemon], [AS_HELP_STRING([--with-daemon], - [build bitcoind daemon (default=yes)])], - [build_bitcoind=$withval], - [build_bitcoind=yes]) + [build litecoind daemon (default=yes)])], + [build_litecoind=$withval], + [build_litecoind=yes]) +pkg_openssl=no case $host in *mingw*) TARGET_OS=windows @@ -763,6 +770,13 @@ case $host in BDB_LIBS="-L$bdb_prefix/lib -ldb_cxx-4.8" fi + openssl_prefix=$($BREW --prefix openssl 2>/dev/null) + if test x$openssl_prefix != x; then + PKG_CONFIG_PATH="$openssl_prefix/lib/pkgconfig:$PKG_CONFIG_PATH" + export PKG_CONFIG_PATH + pkg_openssl=yes + fi + if $BREW list --versions qt@5 >/dev/null; then export PKG_CONFIG_PATH="$($BREW --prefix qt@5 2>/dev/null)/lib/pkgconfig:$PKG_CONFIG_PATH" fi @@ -1013,7 +1027,7 @@ AC_CHECK_DECLS([getifaddrs, freeifaddrs],[CHECK_SOCKET],, #include ] ) -dnl These are used for daemonization in bitcoind +dnl These are used for daemonization in litecoind AC_CHECK_DECLS([fork]) AC_CHECK_DECLS([setsid]) @@ -1308,13 +1322,13 @@ AC_DEFUN([SUPPRESS_WARNINGS], dnl enable-fuzz should disable all other targets if test "$enable_fuzz" = "yes"; then AC_MSG_WARN([enable-fuzz will disable all other targets and force --enable-fuzz-binary=yes]) - build_bitcoin_utils=no - build_bitcoin_cli=no - build_bitcoin_tx=no - build_bitcoin_util=no - build_bitcoin_chainstate=no - build_bitcoin_wallet=no - build_bitcoind=no + build_litecoin_utils=no + build_litecoin_cli=no + build_litecoin_tx=no + build_litecoin_util=no + build_litecoin_chainstate=no + build_litecoin_wallet=no + build_litecoind=no build_bitcoin_libs=no bitcoin_enable_qt=no bitcoin_enable_qt_test=no @@ -1413,7 +1427,7 @@ if test "$use_usdt" != "no"; then fi AM_CONDITIONAL([ENABLE_USDT_TRACEPOINTS], [test "$use_usdt" = "yes"]) -if test "$build_bitcoin_cli$build_bitcoin_tx$build_bitcoin_util$build_bitcoind$bitcoin_enable_qt$use_bench$use_tests" = "nonononononono"; then +if test "$build_litecoin_cli$build_litecoin_tx$build_litecoin_util$build_litecoind$bitcoin_enable_qt$use_bench$use_tests" = "nonononononono"; then use_upnp=no use_natpmp=no use_zmq=no @@ -1461,7 +1475,7 @@ if test "$use_natpmp" != "no"; then CPPFLAGS="$TEMP_CPPFLAGS" fi -if test "$build_bitcoin_wallet$build_bitcoin_cli$build_bitcoin_tx$build_bitcoind$bitcoin_enable_qt$use_tests$use_bench" = "nonononononono"; then +if test "$build_litecoin_wallet$build_litecoin_cli$build_litecoin_tx$build_litecoind$bitcoin_enable_qt$use_tests$use_bench" = "nonononononono"; then use_boost=no else use_boost=yes @@ -1536,10 +1550,10 @@ fi AM_CONDITIONAL([ENABLE_EXTERNAL_SIGNER], [test "$use_external_signer" = "yes"]) dnl Do not compile with syscall sandbox support when compiling under the sanitizers. -dnl The sanitizers introduce use of syscalls that are not typically used in bitcoind +dnl The sanitizers introduce use of syscalls that are not typically used in litecoind dnl (such as execve when the sanitizers execute llvm-symbolizer). if test "$use_sanitizers" != ""; then - AC_MSG_WARN([Specifying --with-sanitizers forces --without-seccomp since the sanitizers introduce use of syscalls not allowed by the bitcoind syscall sandbox (-sandbox=).]) + AC_MSG_WARN([Specifying --with-sanitizers forces --without-seccomp since the sanitizers introduce use of syscalls not allowed by the litecoind syscall sandbox (-sandbox=).]) seccomp_found=no fi if test "$seccomp_found" != "no"; then @@ -1579,10 +1593,22 @@ if test "$use_tests" = "yes"; then fi fi +dnl openssl check + +if test "x$pkg_openssl" = xyes; then + PKG_CHECK_MODULES([SSL], [libssl],, [AC_MSG_ERROR(openssl not found.)]) + PKG_CHECK_MODULES([CRYPTO], [libcrypto],,[AC_MSG_ERROR(libcrypto not found.)]) +else + AC_CHECK_HEADER([openssl/crypto.h],,AC_MSG_ERROR(libcrypto headers missing)) + AC_CHECK_LIB([crypto], [main],CRYPTO_LIBS=-lcrypto, AC_MSG_ERROR(libcrypto missing)) + AC_CHECK_HEADER([openssl/ssl.h],, AC_MSG_ERROR(libssl headers missing),) + AC_CHECK_LIB([ssl], [main],SSL_LIBS=-lssl, AC_MSG_ERROR(libssl missing)) +fi + dnl libevent check use_libevent=no -if test "$build_bitcoin_cli$build_bitcoind$bitcoin_enable_qt$enable_fuzz_binary$use_tests$use_bench" != "nononononono"; then +if test "$build_litecoin_cli$build_litecoind$bitcoin_enable_qt$enable_fuzz_binary$use_tests$use_bench" != "nononononono"; then PKG_CHECK_MODULES([EVENT], [libevent >= 2.1.8], [use_libevent=yes], [AC_MSG_ERROR([libevent version 2.1.8 or greater not found.])]) if test "$TARGET_OS" != "windows"; then PKG_CHECK_MODULES([EVENT_PTHREADS], [libevent_pthreads >= 2.1.8], [], [AC_MSG_ERROR([libevent_pthreads version 2.1.8 or greater not found.])]) @@ -1680,34 +1706,34 @@ if test "$build_multiprocess" != "no"; then AC_SUBST(MPGEN_PREFIX) fi -AC_MSG_CHECKING([whether to build bitcoind]) -AM_CONDITIONAL([BUILD_BITCOIND], [test $build_bitcoind = "yes"]) -AC_MSG_RESULT($build_bitcoind) +AC_MSG_CHECKING([whether to build litecoind]) +AM_CONDITIONAL([BUILD_BITCOIND], [test $build_litecoind = "yes"]) +AC_MSG_RESULT($build_litecoind) -AC_MSG_CHECKING([whether to build bitcoin-cli]) -AM_CONDITIONAL([BUILD_BITCOIN_CLI], [test $build_bitcoin_cli = "yes"]) -AC_MSG_RESULT($build_bitcoin_cli) +AC_MSG_CHECKING([whether to build litecoin-cli]) +AM_CONDITIONAL([BUILD_BITCOIN_CLI], [test $build_litecoin_cli = "yes"]) +AC_MSG_RESULT($build_litecoin_cli) -AC_MSG_CHECKING([whether to build bitcoin-tx]) -AM_CONDITIONAL([BUILD_BITCOIN_TX], [test $build_bitcoin_tx = "yes"]) -AC_MSG_RESULT($build_bitcoin_tx) +AC_MSG_CHECKING([whether to build litecoin-tx]) +AM_CONDITIONAL([BUILD_BITCOIN_TX], [test $build_litecoin_tx = "yes"]) +AC_MSG_RESULT($build_litecoin_tx) -AC_MSG_CHECKING([whether to build bitcoin-wallet]) -AM_CONDITIONAL([BUILD_BITCOIN_WALLET], [test $build_bitcoin_wallet = "yes"]) -AC_MSG_RESULT($build_bitcoin_wallet) +AC_MSG_CHECKING([whether to build litecoin-wallet]) +AM_CONDITIONAL([BUILD_BITCOIN_WALLET], [test $build_litecoin_wallet = "yes"]) +AC_MSG_RESULT($build_litecoin_wallet) -AC_MSG_CHECKING([whether to build bitcoin-util]) -AM_CONDITIONAL([BUILD_BITCOIN_UTIL], [test $build_bitcoin_util = "yes"]) -AC_MSG_RESULT($build_bitcoin_util) +AC_MSG_CHECKING([whether to build litecoin-util]) +AM_CONDITIONAL([BUILD_BITCOIN_UTIL], [test $build_litecoin_util = "yes"]) +AC_MSG_RESULT($build_litecoin_util) -AC_MSG_CHECKING([whether to build experimental bitcoin-chainstate]) -if test "$build_bitcoin_chainstate" = "yes"; then +AC_MSG_CHECKING([whether to build experimental litecoin-chainstate]) +if test "$build_litecoin_chainstate" = "yes"; then if test "$build_experimental_kernel_lib" = "no"; then - AC_MSG_ERROR([experimental bitcoin-chainstate cannot be built without the experimental bitcoinkernel library. Use --with-experimental-kernel-lib]); + AC_MSG_ERROR([experimental litecoin-chainstate cannot be built without the experimental bitcoinkernel library. Use --with-experimental-kernel-lib]); fi fi -AM_CONDITIONAL([BUILD_BITCOIN_CHAINSTATE], [test $build_bitcoin_chainstate = "yes"]) -AC_MSG_RESULT($build_bitcoin_chainstate) +AM_CONDITIONAL([BUILD_BITCOIN_CHAINSTATE], [test $build_litecoin_chainstate = "yes"]) +AC_MSG_RESULT($build_litecoin_chainstate) AC_MSG_CHECKING([whether to build libraries]) AM_CONDITIONAL([BUILD_BITCOIN_LIBS], [test $build_bitcoin_libs = "yes"]) @@ -1717,7 +1743,7 @@ if test "$build_bitcoin_libs" = "yes"; then AC_CONFIG_FILES([libbitcoinconsensus.pc:libbitcoinconsensus.pc.in]) fi -AM_CONDITIONAL([BUILD_BITCOIN_KERNEL_LIB], [test "$build_experimental_kernel_lib" != "no" && ( test "$build_experimental_kernel_lib" = "yes" || test "$build_bitcoin_chainstate" = "yes" )]) +AM_CONDITIONAL([BUILD_BITCOIN_KERNEL_LIB], [test "$build_experimental_kernel_lib" != "no" && ( test "$build_experimental_kernel_lib" = "yes" || test "$build_litecoin_chainstate" = "yes" )]) AC_MSG_RESULT($build_bitcoin_libs) @@ -1839,7 +1865,7 @@ if test "$bitcoin_enable_qt" != "no"; then AC_MSG_WARN([xgettext is required to update qt translations]) fi - AC_MSG_CHECKING([whether to build test_bitcoin-qt]) + AC_MSG_CHECKING([whether to build test_litecoin-qt]) if test "$use_gui_tests$bitcoin_enable_qt_test" = "yesyes"; then AC_MSG_RESULT([yes]) BUILD_TEST_QT="yes" @@ -1850,7 +1876,7 @@ fi AM_CONDITIONAL([ENABLE_ZMQ], [test "$use_zmq" = "yes"]) -AC_MSG_CHECKING([whether to build test_bitcoin]) +AC_MSG_CHECKING([whether to build test_litecoin]) if test "$use_tests" = "yes"; then if test "$enable_fuzz" = "yes"; then AC_MSG_RESULT([no, because fuzzing is enabled]) @@ -1863,6 +1889,16 @@ else BUILD_TEST="" fi +AC_MSG_CHECKING([whether to enable sse2 instructions]) +if test x$use_sse2 != xno; then + AC_MSG_RESULT(yes) + AC_DEFINE([USE_SSE2],[1],[Define if SSE2 support should be compiled in]) + use_sse2=yes + CPPFLAGS="$CPPFLAGS -DUSE_SSE2=1" +else + AC_MSG_RESULT(no) +fi + AC_MSG_CHECKING([whether to reduce exports]) if test "$use_reduce_exports" = "yes"; then AC_MSG_RESULT([yes]) @@ -1870,7 +1906,7 @@ else AC_MSG_RESULT([no]) fi -if test "$build_bitcoin_wallet$build_bitcoin_cli$build_bitcoin_tx$build_bitcoin_libs$build_bitcoind$bitcoin_enable_qt$enable_fuzz_binary$use_bench$use_tests" = "nonononononononono"; then +if test "$build_litecoin_wallet$build_litecoin_cli$build_litecoin_tx$build_bitcoin_libs$build_litecoind$bitcoin_enable_qt$enable_fuzz_binary$use_bench$use_tests" = "nonononononononono"; then AC_MSG_ERROR([No targets! Please specify at least one of: --with-utils --with-libs --with-daemon --with-gui --enable-fuzz(-binary) --enable-bench or --enable-tests]) fi @@ -1888,6 +1924,7 @@ AM_CONDITIONAL([ENABLE_QT], [test "$bitcoin_enable_qt" = "yes"]) AM_CONDITIONAL([ENABLE_QT_TESTS], [test "$BUILD_TEST_QT" = "yes"]) AM_CONDITIONAL([ENABLE_BENCH], [test "$use_bench" = "yes"]) AM_CONDITIONAL([USE_QRCODE], [test "$use_qr" = "yes"]) +AM_CONDITIONAL([USE_SSE2], [test x$use_sse2 = xyes]) AM_CONDITIONAL([USE_LCOV], [test "$use_lcov" = "yes"]) AM_CONDITIONAL([USE_LIBEVENT], [test "$use_libevent" = "yes"]) AM_CONDITIONAL([HARDEN], [test "$use_hardening" = "yes"]) @@ -1967,9 +2004,11 @@ AC_SUBST(USE_BDB) AC_SUBST(ENABLE_EXTERNAL_SIGNER) AC_SUBST(USE_UPNP) AC_SUBST(USE_QRCODE) +AC_SUBST(USE_SSE2) AC_SUBST(TESTDEFS) AC_SUBST(MINIUPNPC_CPPFLAGS) AC_SUBST(MINIUPNPC_LIBS) +AC_SUBST(CRYPTO_LIBS) AC_SUBST(NATPMP_CPPFLAGS) AC_SUBST(NATPMP_LIBS) AC_SUBST(HAVE_GMTIME_R) @@ -2044,11 +2083,12 @@ echo " with gui / qt = $bitcoin_enable_qt" if test $bitcoin_enable_qt != "no"; then echo " with qr = $use_qr" fi +echo " pkg openssl = $pkg_openssl" echo " with zmq = $use_zmq" if test $enable_fuzz = "no"; then echo " with test = $use_tests" else - echo " with test = not building test_bitcoin because fuzzing is enabled" + echo " with test = not building test_litecoin because fuzzing is enabled" fi echo " with fuzz binary = $enable_fuzz_binary" echo " with bench = $use_bench" @@ -2057,6 +2097,7 @@ echo " with natpmp = $use_natpmp" echo " use asm = $use_asm" echo " USDT tracing = $use_usdt" echo " sanitizers = $use_sanitizers" +echo " scrypt sse2 = $use_sse2" echo " debug enabled = $enable_debug" echo " gprof enabled = $enable_gprof" echo " werror = $enable_werror" diff --git a/contrib/README.md b/contrib/README.md index ae1372e95def3..c6afa245f7cfa 100644 --- a/contrib/README.md +++ b/contrib/README.md @@ -13,7 +13,7 @@ Construct a linear, no-fork, best version of the blockchain. ### [Qos](/contrib/qos) ### -A Linux bash script that will set up traffic control (tc) to limit the outgoing bandwidth for connections to the Bitcoin network. This means one can have an always-on bitcoind instance running, and another local bitcoind/bitcoin-qt instance which connects to this node and receives blocks from it. +A Linux bash script that will set up traffic control (tc) to limit the outgoing bandwidth for connections to the Litecoin network. This means one can have an always-on litecoind instance running, and another local litecoind/litecoin-qt instance which connects to this node and receives blocks from it. ### [Seeds](/contrib/seeds) ### Utility to generate the pnSeed[] array that is compiled into the client. diff --git a/contrib/bitcoin-cli.bash-completion b/contrib/bitcoin-cli.bash-completion index ddea58a05cc1a..a76cf07a670ed 100644 --- a/contrib/bitcoin-cli.bash-completion +++ b/contrib/bitcoin-cli.bash-completion @@ -1,10 +1,10 @@ -# bash programmable completion for bitcoin-cli(1) +# bash programmable completion for litecoin-cli(1) # Copyright (c) 2012-2019 The Bitcoin Core developers # Distributed under the MIT software license, see the accompanying # file COPYING or http://www.opensource.org/licenses/mit-license.php. -# call $bitcoin-cli for RPC -_bitcoin_rpc() { +# call $litecoin-cli for RPC +_litecoin_rpc() { # determine already specified args necessary for RPC local rpcargs=() for i in ${COMP_LINE}; do @@ -14,16 +14,16 @@ _bitcoin_rpc() { ;; esac done - $bitcoin_cli "${rpcargs[@]}" "$@" + $litecoin_cli "${rpcargs[@]}" "$@" } -_bitcoin_cli() { +_litecoin_cli() { local cur prev words=() cword - local bitcoin_cli + local litecoin_cli - # save and use original argument to invoke bitcoin-cli for -help, help and RPC - # as bitcoin-cli might not be in $PATH - bitcoin_cli="$1" + # save and use original argument to invoke litecoin-cli for -help, help and RPC + # as litecoin-cli might not be in $PATH + litecoin_cli="$1" COMPREPLY=() _get_comp_words_by_ref -n = cur prev words cword @@ -112,12 +112,12 @@ _bitcoin_cli() { # only parse -help if senseful if [[ -z "$cur" || "$cur" =~ ^- ]]; then - helpopts=$($bitcoin_cli -help 2>&1 | awk '$1 ~ /^-/ { sub(/=.*/, "="); print $1 }' ) + helpopts=$($litecoin_cli -help 2>&1 | awk '$1 ~ /^-/ { sub(/=.*/, "="); print $1 }' ) fi # only parse help if senseful if [[ -z "$cur" || "$cur" =~ ^[a-z] ]]; then - commands=$(_bitcoin_rpc help 2>/dev/null | awk '$1 ~ /^[a-z]/ { print $1; }') + commands=$(_litecoin_rpc help 2>/dev/null | awk '$1 ~ /^[a-z]/ { print $1; }') fi COMPREPLY=( $( compgen -W "$helpopts $commands" -- "$cur" ) ) @@ -130,7 +130,7 @@ _bitcoin_cli() { ;; esac } && -complete -F _bitcoin_cli bitcoin-cli +complete -F _litecoin_cli litecoin-cli # Local variables: # mode: shell-script diff --git a/contrib/bitcoin-tx.bash-completion b/contrib/bitcoin-tx.bash-completion index a83d2979ed3a8..0903747439905 100644 --- a/contrib/bitcoin-tx.bash-completion +++ b/contrib/bitcoin-tx.bash-completion @@ -1,15 +1,15 @@ -# bash programmable completion for bitcoin-tx(1) +# bash programmable completion for litecoin-tx(1) # Copyright (c) 2016 The Bitcoin Core developers # Distributed under the MIT software license, see the accompanying # file COPYING or http://www.opensource.org/licenses/mit-license.php. -_bitcoin_tx() { +_litecoin_tx() { local cur prev words=() cword - local bitcoin_tx + local litecoin_tx - # save and use original argument to invoke bitcoin-tx for -help + # save and use original argument to invoke litecoin-tx for -help # it might not be in $PATH - bitcoin_tx="$1" + litecoin_tx="$1" COMPREPLY=() _get_comp_words_by_ref -n =: cur prev words cword @@ -27,15 +27,15 @@ _bitcoin_tx() { if [[ "$cword" == 1 || ( "$prev" != "-create" && "$prev" == -* ) ]]; then # only options (or an uncompletable hex-string) allowed - # parse bitcoin-tx -help for options + # parse litecoin-tx -help for options local helpopts - helpopts=$($bitcoin_tx -help | sed -e '/^ -/ p' -e d ) + helpopts=$($litecoin_tx -help | sed -e '/^ -/ p' -e d ) COMPREPLY=( $( compgen -W "$helpopts" -- "$cur" ) ) else # only commands are allowed # parse -help for commands local helpcmds - helpcmds=$($bitcoin_tx -help | sed -e '1,/Commands:/d' -e 's/=.*/=/' -e '/^ [a-z]/ p' -e d ) + helpcmds=$($litecoin_tx -help | sed -e '1,/Commands:/d' -e 's/=.*/=/' -e '/^ [a-z]/ p' -e d ) COMPREPLY=( $( compgen -W "$helpcmds" -- "$cur" ) ) fi @@ -46,7 +46,7 @@ _bitcoin_tx() { return 0 } && -complete -F _bitcoin_tx bitcoin-tx +complete -F _litecoin_tx litecoin-tx # Local variables: # mode: shell-script diff --git a/contrib/bitcoind.bash-completion b/contrib/bitcoind.bash-completion index ec1d9512d4759..7b5eaca6c7681 100644 --- a/contrib/bitcoind.bash-completion +++ b/contrib/bitcoind.bash-completion @@ -1,15 +1,15 @@ -# bash programmable completion for bitcoind(1) and bitcoin-qt(1) +# bash programmable completion for litecoind(1) and litecoin-qt(1) # Copyright (c) 2012-2019 The Bitcoin Core developers # Distributed under the MIT software license, see the accompanying # file COPYING or http://www.opensource.org/licenses/mit-license.php. -_bitcoind() { +_litecoind() { local cur prev words=() cword - local bitcoind + local litecoind - # save and use original argument to invoke bitcoind for -help + # save and use original argument to invoke litecoind for -help # it might not be in $PATH - bitcoind="$1" + litecoind="$1" COMPREPLY=() _get_comp_words_by_ref -n = cur prev words cword @@ -33,7 +33,7 @@ _bitcoind() { # only parse -help if sensible if [[ -z "$cur" || "$cur" =~ ^- ]]; then local helpopts - helpopts=$($bitcoind -help 2>&1 | awk '$1 ~ /^-/ { sub(/=.*/, "="); print $1 }' ) + helpopts=$($litecoind -help 2>&1 | awk '$1 ~ /^-/ { sub(/=.*/, "="); print $1 }' ) COMPREPLY=( $( compgen -W "$helpopts" -- "$cur" ) ) fi @@ -45,7 +45,7 @@ _bitcoind() { ;; esac } && -complete -F _bitcoind bitcoind bitcoin-qt +complete -F _litecoind litecoind litecoin-qt # Local variables: # mode: shell-script diff --git a/contrib/devtools/README.md b/contrib/devtools/README.md index 54b1a8558818a..7a71adec24158 100644 --- a/contrib/devtools/README.md +++ b/contrib/devtools/README.md @@ -93,8 +93,8 @@ BUILDDIR=$PWD/build contrib/devtools/gen-manpages.py gen-bitcoin-conf.sh =================== -Generates a bitcoin.conf file in `share/examples/` by parsing the output from `bitcoind --help`. This script is run during the -release process to include a bitcoin.conf with the release binaries and can also be run by users to generate a file locally. +Generates a litecoin.conf file in `share/examples/` by parsing the output from `litecoind --help`. This script is run during the +release process to include a litecoin.conf with the release binaries and can also be run by users to generate a file locally. When generating a file as part of the release process, make sure to commit the changes after running the script. With in-tree builds this tool can be run from any directory within the @@ -129,10 +129,10 @@ If no errors occur the return value will be 0 and the output will be empty. If there are any errors the return value will be 1 and output like this will be printed: - .../64/test_bitcoin: symbol memcpy from unsupported version GLIBC_2.14 - .../64/test_bitcoin: symbol __fdelt_chk from unsupported version GLIBC_2.15 - .../64/test_bitcoin: symbol std::out_of_range::~out_of_range() from unsupported version GLIBCXX_3.4.15 - .../64/test_bitcoin: symbol _ZNSt8__detail15_List_nod from unsupported version GLIBCXX_3.4.15 + .../64/test_litecoin: symbol memcpy from unsupported version GLIBC_2.14 + .../64/test_litecoin: symbol __fdelt_chk from unsupported version GLIBC_2.15 + .../64/test_litecoin: symbol std::out_of_range::~out_of_range() from unsupported version GLIBCXX_3.4.15 + .../64/test_litecoin: symbol _ZNSt8__detail15_List_nod from unsupported version GLIBCXX_3.4.15 circular-dependencies.py ======================== diff --git a/contrib/devtools/gen-bitcoin-conf.sh b/contrib/devtools/gen-bitcoin-conf.sh index 2ebbd42022300..f0af8b59735d7 100755 --- a/contrib/devtools/gen-bitcoin-conf.sh +++ b/contrib/devtools/gen-bitcoin-conf.sh @@ -7,25 +7,25 @@ export LC_ALL=C TOPDIR=${TOPDIR:-$(git rev-parse --show-toplevel)} BUILDDIR=${BUILDDIR:-$TOPDIR} BINDIR=${BINDIR:-$BUILDDIR/src} -BITCOIND=${BITCOIND:-$BINDIR/bitcoind} +LITECOIND=${LITECOIND:-$BINDIR/litecoind} SHARE_EXAMPLES_DIR=${SHARE_EXAMPLES_DIR:-$TOPDIR/share/examples} -EXAMPLE_CONF_FILE=${EXAMPLE_CONF_FILE:-$SHARE_EXAMPLES_DIR/bitcoin.conf} +EXAMPLE_CONF_FILE=${EXAMPLE_CONF_FILE:-$SHARE_EXAMPLES_DIR/litecoin.conf} -[ ! -x "$BITCOIND" ] && echo "$BITCOIND not found or not executable." && exit 1 +[ ! -x "$LITECOIND" ] && echo "$LITECOIND not found or not executable." && exit 1 DIRTY="" -VERSION_OUTPUT=$($BITCOIND --version) +VERSION_OUTPUT=$($LITECOIND --version) if [[ $VERSION_OUTPUT == *"dirty"* ]]; then - DIRTY="${DIRTY}${BITCOIND}\n" + DIRTY="${DIRTY}${LITECOIND}\n" fi if [ -n "$DIRTY" ] then - echo -e "WARNING: $BITCOIND was built from a dirty tree.\n" - echo -e "To safely generate a bitcoin.conf file, please commit your changes to $BITCOIND, rebuild, then run this script again.\n" + echo -e "WARNING: $LITECOIND was built from a dirty tree.\n" + echo -e "To safely generate a litecoin.conf file, please commit your changes to $LITECOIND, rebuild, then run this script again.\n" fi -echo 'Generating example bitcoin.conf file in share/examples/' +echo 'Generating example litecoin.conf file in share/examples/' # create the directory, if it doesn't exist mkdir -p "${SHARE_EXAMPLES_DIR}" @@ -33,7 +33,7 @@ mkdir -p "${SHARE_EXAMPLES_DIR}" # create the header text cat > "${EXAMPLE_CONF_FILE}" << 'EOF' ## -## bitcoin.conf configuration file. +## litecoin.conf configuration file. ## Generated by contrib/devtools/gen-bitcoin-conf.sh. ## ## Lines beginning with # are comments. @@ -46,10 +46,10 @@ cat > "${EXAMPLE_CONF_FILE}" << 'EOF' ### Options EOF -# parse the output from bitcoind --help +# parse the output from litecoind --help # adding newlines is a bit funky to ensure portability for BSD # see here for more details: https://stackoverflow.com/a/24575385 -${BITCOIND} --help \ +${LITECOIND} --help \ | sed '1,/Print this help message and exit/d' \ | sed -E 's/^[[:space:]]{2}\-/#/' \ | sed -E 's/^[[:space:]]{7}/# /' \ diff --git a/contrib/devtools/gen-manpages.py b/contrib/devtools/gen-manpages.py index 26612cc444dd2..e146ba19e66e0 100755 --- a/contrib/devtools/gen-manpages.py +++ b/contrib/devtools/gen-manpages.py @@ -8,12 +8,12 @@ import tempfile BINARIES = [ -'src/bitcoind', -'src/bitcoin-cli', -'src/bitcoin-tx', -'src/bitcoin-wallet', -'src/bitcoin-util', -'src/qt/bitcoin-qt', +'src/litecoind', +'src/litecoin-cli', +'src/litecoin-tx', +'src/litecoin-wallet', +'src/litecoin-util', +'src/qt/litecoin-qt', ] # Paths to external utilities. diff --git a/contrib/devtools/symbol-check.py b/contrib/devtools/symbol-check.py index 4b1cceb57cebd..b4502b8466355 100755 --- a/contrib/devtools/symbol-check.py +++ b/contrib/devtools/symbol-check.py @@ -42,7 +42,7 @@ lief.ELF.ARCH.RISCV: (2,27), }, 'LIBATOMIC': (1,0), -'V': (0,5,0), # xkb (bitcoin-qt only) +'V': (0,5,0), # xkb (litecoin-qt only) } # Ignore symbols that are exported as part of every executable @@ -74,7 +74,7 @@ # Allowed NEEDED libraries ELF_ALLOWED_LIBRARIES = { -# bitcoind and bitcoin-qt +# litecoind and litecoin-qt 'libgcc_s.so.1', # GCC base support 'libc.so.6', # C library 'libpthread.so.0', # threading @@ -88,7 +88,7 @@ 'ld64.so.1', # POWER64 ABIv1 dynamic linker 'ld64.so.2', # POWER64 ABIv2 dynamic linker 'ld-linux-riscv64-lp64d.so.1', # 64-bit RISC-V dynamic linker -# bitcoin-qt only +# litecoin-qt only 'libxcb.so.1', # part of X11 'libxkbcommon.so.0', # keyboard keymapping 'libxkbcommon-x11.so.0', # keyboard keymapping @@ -110,10 +110,10 @@ } MACHO_ALLOWED_LIBRARIES = { -# bitcoind and bitcoin-qt +# litecoind and litecoin-qt 'libc++.1.dylib', # C++ Standard Library 'libSystem.B.dylib', # libc, libm, libpthread, libinfo -# bitcoin-qt only +# litecoin-qt only 'AppKit', # user interface 'ApplicationServices', # common application tasks. 'Carbon', # deprecated c back-compat API @@ -141,7 +141,7 @@ 'SHELL32.dll', # shell API 'USER32.dll', # user interface 'WS2_32.dll', # sockets -# bitcoin-qt only +# litecoin-qt only 'dwmapi.dll', # desktop window manager 'GDI32.dll', # graphics device interface 'IMM32.dll', # input method editor diff --git a/contrib/devtools/test_deterministic_coverage.sh b/contrib/devtools/test_deterministic_coverage.sh index 8501c72f04a55..1fe54ae8f55d2 100755 --- a/contrib/devtools/test_deterministic_coverage.sh +++ b/contrib/devtools/test_deterministic_coverage.sh @@ -34,7 +34,7 @@ NON_DETERMINISTIC_TESTS=( "wallet_tests/wallet_disableprivkeys" # validation.cpp: if (GetMainSignals().CallbacksPending() > 10) ) -TEST_BITCOIN_BINARY="src/test/test_bitcoin" +TEST_BITCOIN_BINARY="src/test/test_litecoin" print_usage() { echo "Usage: $0 [custom test filter (default: all but known non-deterministic tests)] [number of test runs (default: 2)]" diff --git a/contrib/devtools/utxo_snapshot.sh b/contrib/devtools/utxo_snapshot.sh index dee25ff67b61e..3c863b70da1ce 100755 --- a/contrib/devtools/utxo_snapshot.sh +++ b/contrib/devtools/utxo_snapshot.sh @@ -9,36 +9,36 @@ export LC_ALL=C set -ueo pipefail if (( $# < 3 )); then - echo 'Usage: utxo_snapshot.sh ' + echo 'Usage: utxo_snapshot.sh ' echo echo " if is '-', don't produce a snapshot file but instead print the " echo " expected assumeutxo hash" echo echo 'Examples:' echo - echo " ./contrib/devtools/utxo_snapshot.sh 570000 utxo.dat ./src/bitcoin-cli -datadir=\$(pwd)/testdata" - echo ' ./contrib/devtools/utxo_snapshot.sh 570000 - ./src/bitcoin-cli' + echo " ./contrib/devtools/utxo_snapshot.sh 570000 utxo.dat ./src/litecoin-cli -datadir=\$(pwd)/testdata" + echo ' ./contrib/devtools/utxo_snapshot.sh 570000 - ./src/litecoin-cli' exit 1 fi GENERATE_AT_HEIGHT="${1}"; shift; OUTPUT_PATH="${1}"; shift; # Most of the calls we make take a while to run, so pad with a lengthy timeout. -BITCOIN_CLI_CALL="${*} -rpcclienttimeout=9999999" +LITECOIN_CLI_CALL="${*} -rpcclienttimeout=9999999" # Block we'll invalidate/reconsider to rewind/fast-forward the chain. -PIVOT_BLOCKHASH=$($BITCOIN_CLI_CALL getblockhash $(( GENERATE_AT_HEIGHT + 1 )) ) +PIVOT_BLOCKHASH=$($LITECOIN_CLI_CALL getblockhash $(( GENERATE_AT_HEIGHT + 1 )) ) (>&2 echo "Rewinding chain back to height ${GENERATE_AT_HEIGHT} (by invalidating ${PIVOT_BLOCKHASH}); this may take a while") -${BITCOIN_CLI_CALL} invalidateblock "${PIVOT_BLOCKHASH}" +${LITECOIN_CLI_CALL} invalidateblock "${PIVOT_BLOCKHASH}" if [[ "${OUTPUT_PATH}" = "-" ]]; then (>&2 echo "Generating txoutset info...") - ${BITCOIN_CLI_CALL} gettxoutsetinfo | grep hash_serialized_2 | sed 's/^.*: "\(.\+\)\+",/\1/g' + ${LITECOIN_CLI_CALL} gettxoutsetinfo | grep hash_serialized_2 | sed 's/^.*: "\(.\+\)\+",/\1/g' else (>&2 echo "Generating UTXO snapshot...") - ${BITCOIN_CLI_CALL} dumptxoutset "${OUTPUT_PATH}" + ${LITECOIN_CLI_CALL} dumptxoutset "${OUTPUT_PATH}" fi (>&2 echo "Restoring chain to original height; this may take a while") -${BITCOIN_CLI_CALL} reconsiderblock "${PIVOT_BLOCKHASH}" +${LITECOIN_CLI_CALL} reconsiderblock "${PIVOT_BLOCKHASH}" diff --git a/contrib/guix/libexec/build.sh b/contrib/guix/libexec/build.sh index f39f83d443beb..658f92d6afce6 100755 --- a/contrib/guix/libexec/build.sh +++ b/contrib/guix/libexec/build.sh @@ -364,9 +364,9 @@ mkdir -p "$DISTSRC" ;; esac - # copy over the example bitcoin.conf file. if contrib/devtools/gen-bitcoin-conf.sh + # copy over the example litecoin.conf file. if contrib/devtools/gen-bitcoin-conf.sh # has not been run before buildling, this file will be a stub - cp "${DISTSRC}/share/examples/bitcoin.conf" "${DISTNAME}/" + cp "${DISTSRC}/share/examples/litecoin.conf" "${DISTNAME}/" cp -r "${DISTSRC}/share/rpcauth" "${DISTNAME}/share/" diff --git a/contrib/guix/libexec/codesign.sh b/contrib/guix/libexec/codesign.sh index 9a5d3a1ce5428..a7170ca78c0db 100755 --- a/contrib/guix/libexec/codesign.sh +++ b/contrib/guix/libexec/codesign.sh @@ -82,7 +82,7 @@ mkdir -p "$DISTSRC" ;; *darwin*) # Apply detached codesignatures to dist/ (in-place) - signapple apply dist/Bitcoin-Qt.app codesignatures/osx/dist + signapple apply dist/Litecoin-Qt.app codesignatures/osx/dist # Make a DMG from dist/ xorrisofs -D -l -V "$(< osx_volname)" -no-pad -r -dir-mode 0755 \ diff --git a/contrib/init/README.md b/contrib/init/README.md index affc7c2e75063..868f719521057 100644 --- a/contrib/init/README.md +++ b/contrib/init/README.md @@ -1,11 +1,11 @@ Sample configuration files for: ``` -systemd: bitcoind.service -Upstart: bitcoind.conf -OpenRC: bitcoind.openrc - bitcoind.openrcconf -CentOS: bitcoind.init -macOS: org.bitcoin.bitcoind.plist +systemd: litecoind.service +Upstart: litecoind.conf +OpenRC: litecoind.openrc + litecoind.openrcconf +CentOS: litecoind.init +macOS: org.litecoin.litecoind.plist ``` have been made available to assist packagers in creating node packages here. diff --git a/contrib/init/bitcoind.openrcconf b/contrib/init/bitcoind.openrcconf deleted file mode 100644 index c8a22a08d9241..0000000000000 --- a/contrib/init/bitcoind.openrcconf +++ /dev/null @@ -1,33 +0,0 @@ -# /etc/conf.d/bitcoind: config file for /etc/init.d/bitcoind - -# Config file location -#BITCOIND_CONFIGFILE="/etc/bitcoin/bitcoin.conf" - -# What directory to write pidfile to? (created and owned by $BITCOIND_USER) -#BITCOIND_PIDDIR="/var/run/bitcoind" - -# What filename to give the pidfile -#BITCOIND_PIDFILE="${BITCOIND_PIDDIR}/bitcoind.pid" - -# Where to write bitcoind data (be mindful that the blockchain is large) -#BITCOIND_DATADIR="/var/lib/bitcoind" - -# User and group to own bitcoind process -#BITCOIND_USER="bitcoin" -#BITCOIND_GROUP="bitcoin" - -# Path to bitcoind executable -#BITCOIND_BIN="/usr/bin/bitcoind" - -# Nice value to run bitcoind under -#BITCOIND_NICE=0 - -# Additional options (avoid -conf and -datadir, use flags above) -#BITCOIND_OPTS="" - -# The timeout in seconds OpenRC will wait for bitcoind to terminate -# after a SIGTERM has been raised. -# Note that this will be mapped as argument to start-stop-daemon's -# '--retry' option, which means you can specify a retry schedule -# here. For more information see man 8 start-stop-daemon. -BITCOIND_SIGTERM_TIMEOUT=600 diff --git a/contrib/init/bitcoind.conf b/contrib/init/litecoind.conf similarity index 78% rename from contrib/init/bitcoind.conf rename to contrib/init/litecoind.conf index dde1bd0c4d16b..b197b0e627bdb 100644 --- a/contrib/init/bitcoind.conf +++ b/contrib/init/litecoind.conf @@ -1,16 +1,16 @@ -description "Bitcoin Core Daemon" +description "Litecoin Core Daemon" start on runlevel [2345] stop on starting rc RUNLEVEL=[016] -env BITCOIND_BIN="/usr/bin/bitcoind" -env BITCOIND_USER="bitcoin" -env BITCOIND_GROUP="bitcoin" -env BITCOIND_PIDDIR="/var/run/bitcoind" +env BITCOIND_BIN="/usr/bin/litecoind" +env BITCOIND_USER="litecoin" +env BITCOIND_GROUP="litecoin" +env BITCOIND_PIDDIR="/var/run/litecoind" # upstart can't handle variables constructed with other variables -env BITCOIND_PIDFILE="/var/run/bitcoind/bitcoind.pid" -env BITCOIND_CONFIGFILE="/etc/bitcoin/bitcoin.conf" -env BITCOIND_DATADIR="/var/lib/bitcoind" +env BITCOIND_PIDFILE="/var/run/litecoind/litecoind.pid" +env BITCOIND_CONFIGFILE="/etc/litecoin/litecoin.conf" +env BITCOIND_DATADIR="/var/lib/litecoind" expect fork @@ -20,12 +20,12 @@ kill timeout 600 pre-start script # this will catch non-existent config files - # bitcoind will check and exit with this very warning, but it can do so + # litecoind will check and exit with this very warning, but it can do so # long after forking, leaving upstart to think everything started fine. # since this is a commonly encountered case on install, just check and # warn here. if ! grep -qs '^rpcpassword=' "$BITCOIND_CONFIGFILE" ; then - echo "ERROR: You must set a secure rpcpassword to run bitcoind." + echo "ERROR: You must set a secure rpcpassword to run litecoind." echo "The setting must appear in $BITCOIND_CONFIGFILE" echo echo "This password is security critical to securing wallets " diff --git a/contrib/init/bitcoind.init b/contrib/init/litecoind.init similarity index 62% rename from contrib/init/bitcoind.init rename to contrib/init/litecoind.init index 19e1f76d094ce..7af142435030d 100644 --- a/contrib/init/bitcoind.init +++ b/contrib/init/litecoind.init @@ -1,31 +1,31 @@ #!/usr/bin/env bash # -# bitcoind The bitcoin core server. +# litecoind The litecoin core server. # # # chkconfig: 345 80 20 -# description: bitcoind -# processname: bitcoind +# description: litecoind +# processname: litecoind # # Source function library. . /etc/init.d/functions -# you can override defaults in /etc/sysconfig/bitcoind, see below -if [ -f /etc/sysconfig/bitcoind ]; then - . /etc/sysconfig/bitcoind +# you can override defaults in /etc/sysconfig/litecoind, see below +if [ -f /etc/sysconfig/litecoind ]; then + . /etc/sysconfig/litecoind fi RETVAL=0 -prog=bitcoind -# you can override the lockfile via BITCOIND_LOCKFILE in /etc/sysconfig/bitcoind -lockfile=${BITCOIND_LOCKFILE-/var/lock/subsys/bitcoind} +prog=litecoind +# you can override the lockfile via BITCOIND_LOCKFILE in /etc/sysconfig/litecoind +lockfile=${BITCOIND_LOCKFILE-/var/lock/subsys/litecoind} -# bitcoind defaults to /usr/bin/bitcoind, override with BITCOIND_BIN -bitcoind=${BITCOIND_BIN-/usr/bin/bitcoind} +# litecoind defaults to /usr/bin/litecoind, override with BITCOIND_BIN +bitcoind=${BITCOIND_BIN-/usr/bin/litecoind} -# bitcoind opts default to -disablewallet, override with BITCOIND_OPTS +# litecoind opts default to -disablewallet, override with BITCOIND_OPTS bitcoind_opts=${BITCOIND_OPTS--disablewallet} start() { diff --git a/contrib/init/bitcoind.openrc b/contrib/init/litecoind.openrc similarity index 75% rename from contrib/init/bitcoind.openrc rename to contrib/init/litecoind.openrc index 013a1a607027c..2962a2aafb6ba 100644 --- a/contrib/init/bitcoind.openrc +++ b/contrib/init/litecoind.openrc @@ -2,26 +2,26 @@ # backward compatibility for existing gentoo layout # -if [ -d "/var/lib/bitcoin/.bitcoin" ]; then - BITCOIND_DEFAULT_DATADIR="/var/lib/bitcoin/.bitcoin" +if [ -d "/var/lib/litecoin/.litecoin" ]; then + BITCOIND_DEFAULT_DATADIR="/var/lib/litecoin/.litecoin" else - BITCOIND_DEFAULT_DATADIR="/var/lib/bitcoind" + BITCOIND_DEFAULT_DATADIR="/var/lib/litecoind" fi -BITCOIND_CONFIGFILE=${BITCOIND_CONFIGFILE:-/etc/bitcoin/bitcoin.conf} -BITCOIND_PIDDIR=${BITCOIND_PIDDIR:-/var/run/bitcoind} -BITCOIND_PIDFILE=${BITCOIND_PIDFILE:-${BITCOIND_PIDDIR}/bitcoind.pid} +BITCOIND_CONFIGFILE=${BITCOIND_CONFIGFILE:-/etc/litecoin/litecoin.conf} +BITCOIND_PIDDIR=${BITCOIND_PIDDIR:-/var/run/litecoind} +BITCOIND_PIDFILE=${BITCOIND_PIDFILE:-${BITCOIND_PIDDIR}/litecoind.pid} BITCOIND_DATADIR=${BITCOIND_DATADIR:-${BITCOIND_DEFAULT_DATADIR}} -BITCOIND_USER=${BITCOIND_USER:-${BITCOIN_USER:-bitcoin}} -BITCOIND_GROUP=${BITCOIND_GROUP:-bitcoin} -BITCOIND_BIN=${BITCOIND_BIN:-/usr/bin/bitcoind} +BITCOIND_USER=${BITCOIND_USER:-${BITCOIN_USER:-litecoin}} +BITCOIND_GROUP=${BITCOIND_GROUP:-litecoin} +BITCOIND_BIN=${BITCOIND_BIN:-/usr/bin/litecoind} BITCOIND_NICE=${BITCOIND_NICE:-${NICELEVEL:-0}} BITCOIND_OPTS="${BITCOIND_OPTS:-${BITCOIN_OPTS}}" -name="Bitcoin Core Daemon" -description="Bitcoin cryptocurrency P2P network daemon" +name="Litecoin Core Daemon" +description="Litecoin cryptocurrency P2P network daemon" -command="/usr/bin/bitcoind" +command="/usr/bin/litecoind" command_args="-pid=\"${BITCOIND_PIDFILE}\" \ -conf=\"${BITCOIND_CONFIGFILE}\" \ -datadir=\"${BITCOIND_DATADIR}\" \ @@ -72,7 +72,7 @@ checkconfig() if grep -qs '^rpcuser=' "${BITCOIND_CONFIGFILE}" && \ ! grep -qs '^rpcpassword=' "${BITCOIND_CONFIGFILE}" ; then eerror "" - eerror "ERROR: You must set a secure rpcpassword to run bitcoind." + eerror "ERROR: You must set a secure rpcpassword to run litecoind." eerror "The setting must appear in ${BITCOIND_CONFIGFILE}" eerror "" eerror "This password is security critical to securing wallets " diff --git a/contrib/init/litecoind.openrcconf b/contrib/init/litecoind.openrcconf new file mode 100644 index 0000000000000..69d3e755c9039 --- /dev/null +++ b/contrib/init/litecoind.openrcconf @@ -0,0 +1,33 @@ +# /etc/conf.d/litecoind: config file for /etc/init.d/litecoind + +# Config file location +#BITCOIND_CONFIGFILE="/etc/litecoin/litecoin.conf" + +# What directory to write pidfile to? (created and owned by $BITCOIND_USER) +#BITCOIND_PIDDIR="/var/run/litecoind" + +# What filename to give the pidfile +#BITCOIND_PIDFILE="${BITCOIND_PIDDIR}/litecoind.pid" + +# Where to write litecoind data (be mindful that the blockchain is large) +#BITCOIND_DATADIR="/var/lib/litecoind" + +# User and group to own litecoind process +#BITCOIND_USER="litecoin" +#BITCOIND_GROUP="litecoin" + +# Path to litecoind executable +#BITCOIND_BIN="/usr/bin/litecoind" + +# Nice value to run litecoind under +#BITCOIND_NICE=0 + +# Additional options (avoid -conf and -datadir, use flags above) +#BITCOIND_OPTS="" + +# The timeout in seconds OpenRC will wait for litecoind to terminate +# after a SIGTERM has been raised. +# Note that this will be mapped as argument to start-stop-daemon's +# '--retry' option, which means you can specify a retry schedule +# here. For more information see man 8 start-stop-daemon. +BITCOIND_SIGTERM_TIMEOUT=600 diff --git a/contrib/init/bitcoind.service b/contrib/init/litecoind.service similarity index 67% rename from contrib/init/bitcoind.service rename to contrib/init/litecoind.service index 93de353bb4eb0..6f00d5885b612 100644 --- a/contrib/init/bitcoind.service +++ b/contrib/init/litecoind.service @@ -1,37 +1,37 @@ # It is not recommended to modify this file in-place, because it will # be overwritten during package upgrades. If you want to add further # options or overwrite existing ones then use -# $ systemctl edit bitcoind.service +# $ systemctl edit litecoind.service # See "man systemd.service" for details. # Note that almost all daemon options could be specified in -# /etc/bitcoin/bitcoin.conf, but keep in mind those explicitly +# /etc/litecoin/litecoin.conf, but keep in mind those explicitly # specified as arguments in ExecStart= will override those in the # config file. [Unit] -Description=Bitcoin daemon -Documentation=https://github.com/bitcoin/bitcoin/blob/master/doc/init.md +Description=Litecoin daemon +Documentation=https://github.com/litecoin-project/litecoin/blob/master/doc/init.md # https://www.freedesktop.org/wiki/Software/systemd/NetworkTarget/ After=network-online.target Wants=network-online.target [Service] -ExecStart=/usr/bin/bitcoind -daemonwait \ - -pid=/run/bitcoind/bitcoind.pid \ - -conf=/etc/bitcoin/bitcoin.conf \ - -datadir=/var/lib/bitcoind +ExecStart=/usr/bin/litecoind -daemonwait \ + -pid=/run/litecoind/litecoind.pid \ + -conf=/etc/litecoin/litecoin.conf \ + -datadir=/var/lib/litecoind # Make sure the config directory is readable by the service user PermissionsStartOnly=true -ExecStartPre=/bin/chgrp bitcoin /etc/bitcoin +ExecStartPre=/bin/chgrp litecoin /etc/litecoin # Process management #################### Type=forking -PIDFile=/run/bitcoind/bitcoind.pid +PIDFile=/run/litecoind/litecoind.pid Restart=on-failure TimeoutStartSec=infinity TimeoutStopSec=600 @@ -39,20 +39,20 @@ TimeoutStopSec=600 # Directory creation and permissions #################################### -# Run as bitcoin:bitcoin -User=bitcoin -Group=bitcoin +# Run as litecoin:litecoin +User=litecoin +Group=litecoin -# /run/bitcoind -RuntimeDirectory=bitcoind +# /run/litecoind +RuntimeDirectory=litecoind RuntimeDirectoryMode=0710 -# /etc/bitcoin -ConfigurationDirectory=bitcoin +# /etc/litecoin +ConfigurationDirectory=litecoin ConfigurationDirectoryMode=0710 -# /var/lib/bitcoind -StateDirectory=bitcoind +# /var/lib/litecoind +StateDirectory=litecoind StateDirectoryMode=0710 # Hardening measures diff --git a/contrib/init/org.bitcoin.bitcoind.plist b/contrib/init/org.bitcoin.bitcoind.plist deleted file mode 100644 index 95b5342f1ef9d..0000000000000 --- a/contrib/init/org.bitcoin.bitcoind.plist +++ /dev/null @@ -1,14 +0,0 @@ - - - - - Label - org.bitcoin.bitcoind - ProgramArguments - - /usr/local/bin/bitcoind - - RunAtLoad - - - diff --git a/contrib/install_db4.sh b/contrib/install_db4.sh index 2850c4b993ef5..81e131216ee63 100755 --- a/contrib/install_db4.sh +++ b/contrib/install_db4.sh @@ -253,7 +253,7 @@ echo echo "db4 build complete." echo # shellcheck disable=SC2016 -echo 'When compiling bitcoind, run `./configure` in the following way:' +echo 'When compiling litecoind, run `./configure` in the following way:' echo echo " export BDB_PREFIX='${BDB_PREFIX}'" # shellcheck disable=SC2016 diff --git a/contrib/linearize/README.md b/contrib/linearize/README.md index 25a1c7351a297..1448f79540b2c 100644 --- a/contrib/linearize/README.md +++ b/contrib/linearize/README.md @@ -1,5 +1,5 @@ # Linearize -Construct a linear, no-fork, best version of the Bitcoin blockchain. +Construct a linear, no-fork, best version of the Litecoin blockchain. ## Step 1: Download hash list @@ -11,7 +11,7 @@ Required configuration file settings for linearize-hashes: Optional config file setting for linearize-hashes: * RPC: `host` (Default: `127.0.0.1`) -* RPC: `port` (Default: `8332`) +* RPC: `port` (Default: `9332`) * Blockchain: `min_height`, `max_height` * `rev_hash_bytes`: If true, the written block hash list will be byte-reversed. (In other words, the hash returned by getblockhash will have its @@ -20,7 +20,7 @@ standalone hash lists but safe to use with linearize-data.py, which will output the same data no matter which byte format is chosen. The `linearize-hashes` script requires a connection, local or remote, to a -JSON-RPC server. Running `bitcoind` or `bitcoin-qt -server` will be sufficient. +JSON-RPC server. Running `litecoind` or `litecoin-qt -server` will be sufficient. ## Step 2: Copy local block data @@ -38,7 +38,7 @@ will be printed. respectively, to the current time and to the timestamp of the most recent block written to the script's blockchain. * `genesis`: The hash of the genesis block in the blockchain. -* `input`: bitcoind blocks/ directory containing blkNNNNN.dat +* `input`: litecoind blocks/ directory containing blkNNNNN.dat * `hashlist`: text file containing list of block hashes created by linearize-hashes.py. * `max_out_sz`: Maximum size for files created by the `output_file` option. diff --git a/contrib/linearize/example-linearize.cfg b/contrib/linearize/example-linearize.cfg index 5f566261ca674..f3ce69ff509b4 100644 --- a/contrib/linearize/example-linearize.cfg +++ b/contrib/linearize/example-linearize.cfg @@ -1,17 +1,17 @@ -# bitcoind RPC settings (linearize-hashes) +# litecoind RPC settings (linearize-hashes) rpcuser=someuser rpcpassword=somepassword -#datadir=~/.bitcoin +#datadir=~/.litecoin host=127.0.0.1 #mainnet default -port=8332 +port=9332 #testnet default -#port=18332 +#port=19332 #regtest default -#port=18443 +#port=19443 #signet default #port=38332 @@ -22,14 +22,14 @@ max_height=313000 # bootstrap.dat input/output settings (linearize-data) # mainnet -netmagic=f9beb4d9 -genesis=000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f -input=/home/example/.bitcoin/blocks +netmagic=fbc0b6db +genesis=12a765e31ffd4059bada1e25190f6e98c99d9714d334efa41a195a7e7e04bfe2 +input=/home/example/.litecoin/blocks # testnet -#netmagic=0b110907 -#genesis=000000000933ea01ad0ee984209779baaec3ced90fa3f408719526f8d77f4943 -#input=/home/example/.bitcoin/testnet3/blocks +#netmagic=fdd2c8f1 +#genesis=4966625a4b2851d9fdee139e56211a0d88575f59ed816ff5e6a63deb4e3e29a0 +#input=/home/example/.litecoin/testnet3/blocks # regtest #netmagic=fabfb5da diff --git a/contrib/linearize/linearize-hashes.py b/contrib/linearize/linearize-hashes.py index 5959300e7474d..0b0e375a1ce41 100755 --- a/contrib/linearize/linearize-hashes.py +++ b/contrib/linearize/linearize-hashes.py @@ -114,7 +114,7 @@ def get_rpc_cookie(): if 'host' not in settings: settings['host'] = '127.0.0.1' if 'port' not in settings: - settings['port'] = 8332 + settings['port'] = 9332 if 'min_height' not in settings: settings['min_height'] = 0 if 'max_height' not in settings: diff --git a/contrib/macdeploy/README.md b/contrib/macdeploy/README.md index 599a0bfa6ce49..d0f6d638ceb81 100644 --- a/contrib/macdeploy/README.md +++ b/contrib/macdeploy/README.md @@ -6,7 +6,7 @@ The `macdeployqtplus` script should not be run manually. Instead, after building make deploy ``` -When complete, it will have produced `Bitcoin-Core.dmg`. +When complete, it will have produced `Litecoin-Core.dmg`. ## SDK Extraction diff --git a/contrib/macdeploy/detached-sig-create.sh b/contrib/macdeploy/detached-sig-create.sh index f393331084e37..d44f024ec11bf 100755 --- a/contrib/macdeploy/detached-sig-create.sh +++ b/contrib/macdeploy/detached-sig-create.sh @@ -7,8 +7,8 @@ export LC_ALL=C set -e ROOTDIR=dist -BUNDLE="${ROOTDIR}/Bitcoin-Qt.app" -BINARY="${BUNDLE}/Contents/MacOS/Bitcoin-Qt" +BUNDLE="${ROOTDIR}/Litecoin-Qt.app" +BINARY="${BUNDLE}/Contents/MacOS/Litecoin-Qt" SIGNAPPLE=signapple TEMPDIR=sign.temp ARCH=$(${SIGNAPPLE} info ${BINARY} | head -n 1 | cut -d " " -f 1) diff --git a/contrib/macdeploy/macdeployqtplus b/contrib/macdeploy/macdeployqtplus index 2420539b7cad5..b3560c57f15f4 100755 --- a/contrib/macdeploy/macdeployqtplus +++ b/contrib/macdeploy/macdeployqtplus @@ -147,8 +147,8 @@ class FrameworkInfo(object): class ApplicationBundleInfo(object): def __init__(self, path: str): self.path = path - # for backwards compatibility reasons, this must remain as Bitcoin-Qt - self.binaryPath = os.path.join(path, "Contents", "MacOS", "Bitcoin-Qt") + # for backwards compatibility reasons, this must remain as Litecoin-Qt + self.binaryPath = os.path.join(path, "Contents", "MacOS", "Litecoin-Qt") if not os.path.exists(self.binaryPath): raise RuntimeError(f"Could not find bundle binary for {path}") self.resourcesPath = os.path.join(path, "Contents", "Resources") @@ -426,7 +426,7 @@ if os.path.exists(appname + ".temp.dmg"): # ------------------------------------------------ -target = os.path.join("dist", "Bitcoin-Qt.app") +target = os.path.join("dist", "Litecoin-Qt.app") print("+ Copying source bundle +") if verbose: @@ -512,7 +512,7 @@ icvp = { 'gridOffsetX': 0.0, 'textSize': 12.0, 'viewOptionsVersion': 1, - 'backgroundImageAlias': b'\x00\x00\x00\x00\x02\x1e\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd1\x94\\\xb0H+\x00\x05\x00\x00\x00\x98\x0fbackground.tiff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x99\xd19\xb0\xf8\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\r\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0b.background\x00\x00\x10\x00\x08\x00\x00\xd1\x94\\\xb0\x00\x00\x00\x11\x00\x08\x00\x00\xd19\xb0\xf8\x00\x00\x00\x01\x00\x04\x00\x00\x00\x98\x00\x0e\x00 \x00\x0f\x00b\x00a\x00c\x00k\x00g\x00r\x00o\x00u\x00n\x00d\x00.\x00t\x00i\x00f\x00f\x00\x0f\x00\x02\x00\x00\x00\x12\x00\x1c/.background/background.tiff\x00\x14\x01\x06\x00\x00\x00\x00\x01\x06\x00\x02\x00\x00\x0cMacintosh HD\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xce\x97\xab\xc3H+\x00\x00\x01\x88[\x88\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02u\xab\x8d\xd1\x94\\\xb0devrddsk\xff\xff\xff\xff\x00\x00\t \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x07bitcoin\x00\x00\x10\x00\x08\x00\x00\xce\x97\xab\xc3\x00\x00\x00\x11\x00\x08\x00\x00\xd1\x94\\\xb0\x00\x00\x00\x01\x00\x14\x01\x88[\x88\x00\x16\xa9\t\x00\x08\xfaR\x00\x08\xfaQ\x00\x02d\x8e\x00\x0e\x00\x02\x00\x00\x00\x0f\x00\x1a\x00\x0c\x00M\x00a\x00c\x00i\x00n\x00t\x00o\x00s\x00h\x00 \x00H\x00D\x00\x13\x00\x01/\x00\x00\x15\x00\x02\x00\x14\xff\xff\x00\x00\xff\xff\x00\x00', + 'backgroundImageAlias': b'\x00\x00\x00\x00\x02\x1e\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd1\x94\\\xb0H+\x00\x05\x00\x00\x00\x98\x0fbackground.tiff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x99\xd19\xb0\xf8\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\r\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0b.background\x00\x00\x10\x00\x08\x00\x00\xd1\x94\\\xb0\x00\x00\x00\x11\x00\x08\x00\x00\xd19\xb0\xf8\x00\x00\x00\x01\x00\x04\x00\x00\x00\x98\x00\x0e\x00 \x00\x0f\x00b\x00a\x00c\x00k\x00g\x00r\x00o\x00u\x00n\x00d\x00.\x00t\x00i\x00f\x00f\x00\x0f\x00\x02\x00\x00\x00\x12\x00\x1c/.background/background.tiff\x00\x14\x01\x06\x00\x00\x00\x00\x01\x06\x00\x02\x00\x00\x0cMacintosh HD\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xce\x97\xab\xc3H+\x00\x00\x01\x88[\x88\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02u\xab\x8d\xd1\x94\\\xb0devrddsk\xff\xff\xff\xff\x00\x00\t \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x07litecoin\x00\x00\x10\x00\x08\x00\x00\xce\x97\xab\xc3\x00\x00\x00\x11\x00\x08\x00\x00\xd1\x94\\\xb0\x00\x00\x00\x01\x00\x14\x01\x88[\x88\x00\x16\xa9\t\x00\x08\xfaR\x00\x08\xfaQ\x00\x02d\x8e\x00\x0e\x00\x02\x00\x00\x00\x0f\x00\x1a\x00\x0c\x00M\x00a\x00c\x00i\x00n\x00t\x00o\x00s\x00h\x00 \x00H\x00D\x00\x13\x00\x01/\x00\x00\x15\x00\x02\x00\x14\xff\xff\x00\x00\xff\xff\x00\x00', 'backgroundColorBlue': 1.0, 'iconSize': 96.0, 'backgroundColorGreen': 1.0, @@ -534,7 +534,7 @@ ds['.']['icvp'] = icvp ds['.']['vSrn'] = ('long', 1) ds['Applications']['Iloc'] = (370, 156) -ds['Bitcoin-Qt.app']['Iloc'] = (128, 156) +ds['Litecoin-Qt.app']['Iloc'] = (128, 156) ds.flush() ds.close() diff --git a/contrib/message-capture/message-capture-docs.md b/contrib/message-capture/message-capture-docs.md index 730196846134f..9c3b69d7416b8 100644 --- a/contrib/message-capture/message-capture-docs.md +++ b/contrib/message-capture/message-capture-docs.md @@ -6,7 +6,7 @@ This feature allows for message capture on a per-peer basis. It answers the sim ## Usage and Functionality -* Run `bitcoind` with the `-capturemessages` option. +* Run `litecoind` with the `-capturemessages` option. * Look in the `message_capture` folder in your datadir. * Typically this will be `~/.bitcoin/message_capture`. * See that there are many folders inside, one for each peer names with its IP address and port. diff --git a/contrib/qos/README.md b/contrib/qos/README.md index 0ded87c58f4ee..8516da16b7682 100644 --- a/contrib/qos/README.md +++ b/contrib/qos/README.md @@ -1,5 +1,5 @@ ### QoS (Quality of service) ### -This is a Linux bash script that will set up tc to limit the outgoing bandwidth for connections to the Bitcoin network. It limits outbound TCP traffic with a source or destination port of 8333, but not if the destination IP is within a LAN. +This is a Linux bash script that will set up tc to limit the outgoing bandwidth for connections to the Litecoin network. It limits outbound TCP traffic with a source or destination port of 9333, but not if the destination IP is within a LAN. -This means one can have an always-on bitcoind instance running, and another local bitcoind/bitcoin-qt instance which connects to this node and receives blocks from it. +This means one can have an always-on litecoind instance running, and another local litecoind/litecoin-qt instance which connects to this node and receives blocks from it. diff --git a/contrib/seeds/makeseeds.py b/contrib/seeds/makeseeds.py index eda58c370f293..eacfa42630b21 100755 --- a/contrib/seeds/makeseeds.py +++ b/contrib/seeds/makeseeds.py @@ -28,17 +28,13 @@ PATTERN_IPV6 = re.compile(r"^\[([0-9a-z:]+)\]:(\d+)$") PATTERN_ONION = re.compile(r"^([a-z2-7]{56}\.onion):(\d+)$") PATTERN_AGENT = re.compile( - r"^/Satoshi:(" + r"^/LitecoinCore:(" r"0.14.(0|1|2|3|99)|" r"0.15.(0|1|2|99)|" r"0.16.(0|1|2|3|99)|" r"0.17.(0|0.1|1|2|99)|" r"0.18.(0|1|99)|" - r"0.19.(0|1|2|99)|" - r"0.20.(0|1|2|99)|" r"0.21.(0|1|2|99)|" - r"22.(0|99)|" - r"23.(0|99)|" r"24.99" r")") diff --git a/contrib/seeds/nodes_main.txt b/contrib/seeds/nodes_main.txt index f8572b26c7f24..a7b1cd9ad9ef9 100644 --- a/contrib/seeds/nodes_main.txt +++ b/contrib/seeds/nodes_main.txt @@ -1,857 +1,17 @@ -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 updated 2022-08 for minimal torv3 bootstrap support -5g72ppm3krkorsfopcm2bi7wlv4ohhs4u4mlseymasn7g7zhdcyjpfid.onion:8333 -b64xcbleqmwgq2u46bh4hegnlrzzvxntyzbmucn3zt7cssm7y4ubv3id.onion:8333 -fjdyxicpm4o42xmedlwl3uvk5gmqdfs5j37wir52327vncjzvtpfv7yd.onion:8333 -fpz6r5ppsakkwypjcglz6gcnwt7ytfhxskkfhzu62tnylcknh3eq6pad.onion:8333 -gxo5anvfnffnftfy5frkgvplq3rpga2ie3tcblo2vl754fvnhgorn5yd.onion:8333 -ifdu5qvbofrt4ekui2iyb3kbcyzcsglazhx2hn4wfskkrx2v24qxriid.onion:8333 -itz3oxsihs62muvknc237xabl5f6w6rfznfhbpayrslv2j2ubels47yd.onion:8333 -kpgvmscirrdqpekbqjsvw5teanhatztpp2gl6eee4zkowvwfxwenqaid.onion:8333 -m7cbpjolo662uel7rpaid46as2otcj44vvwg3gccodnvaeuwbm3anbyd.onion:8333 -mwmfluek4au6mxxpw6fy7sjhkm65bdfc7izc7lpz3trewfdghyrzsbid.onion:8333 -rp7k2go3s5lyj3fnj6zn62ktarlrsft2ohlsxkyd7v3e3idqyptvread.onion:8333 - -# 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 -aovep2pco7v2k4rheofrgytbgk23eg22dczpsjqgqtxcqqvmxk6a.b32.i2p:0 -bddbsmkas3z6fakorbkfjhv77i4hv6rysyjsvrdjukxolfghc23q.b32.i2p:0 -bitcoi656nll5hu6u7ddzrmzysdtwtnzcnrjd4rfdqbeey7dmn5a.b32.i2p:0 -brifkruhlkgrj65hffybrjrjqcgdgqs2r7siizb5b2232nruik3a.b32.i2p:0 -c4gfnttsuwqomiygupdqqqyy5y5emnk5c73hrfvatri67prd7vyq.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 -hhfi4yqkg2twqiwezrfksftjjofbyx3ojkmlnfmcwntgnrjjhkya.b32.i2p:0 -hpiibrflqkbrcshfhmrtwfyeb7mds7a3obzwrgarejevddzamvsq.b32.i2p:0 -i4pyhsfdq4247dunel7paatdaq5gusi2hnybp2yf5wxwdnrgxaqq.b32.i2p:0 -iw6tgpmbdykffceku5da6nzf2bmz66fvp5fpcvemfu3df6aq6pga.b32.i2p:0 -jkfuajo4ayvo2rbv5qdj443q6adqmnormbhsf2f7rlp5t24xomda.b32.i2p:0 -jz3s4eurm5vzjresf4mwo7oni4bk36daolwxh4iqtewakylgkxmq.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 -[fcc7:be49:ccd1:dc91:3125:f0da:457d:8ce]:8333 +8.214.154.25:9333 +39.104.163.200:9333 +47.90.137.121:9333 +47.253.57.215:9333 +62.215.127.73:9333 +69.164.196.239:9333 +70.63.170.86:9333 +85.2.68.250:9333 +86.10.110.143:9333 +104.3.38.247:9333 +143.178.57.3:9333 +154.22.123.138:9333 +174.62.70.234:9333 +178.62.46.195:9333 +213.244.192.149:9333 +xtmsopiy2ssu2vumfmnjq3nyflnq2pkpcxndi6rxgwnkljmzijafozqd.onion:9333 +37am23y5vro3iorqlmjjty7ctsgz6myoaushxrfqct4ngakl7d7idgid.onion:9333 \ No newline at end of file diff --git a/contrib/seeds/nodes_test.txt b/contrib/seeds/nodes_test.txt index 5b04791d6038b..b1d909ef2787f 100644 --- a/contrib/seeds/nodes_test.txt +++ b/contrib/seeds/nodes_test.txt @@ -1,89 +1,31 @@ -# List of fixed seed nodes for testnet - -# 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 -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 +3.137.68.140:49333 +5.9.150.112:19335 +37.59.57.96:19335 +39.100.99.116:30008 +51.15.115.97:19335 +52.13.42.125:19335 +54.255.128.110:19333 +62.171.161.203:19333 +64.227.19.92:19335 +78.28.225.160:19335 +79.98.159.7:19333 +84.38.3.199:19335 +89.39.104.167:19335 +89.160.159.45:19335 +94.79.55.28:19335 +95.216.76.224:19335 +100.25.120.154:19335 +103.231.191.7:19333 +104.237.131.138:19335 +142.93.198.104:19335 +147.135.11.124:49333 +173.209.40.61:19335 +173.209.42.7:19335 +178.62.46.195:19333 +185.180.221.201:19335 +198.58.102.18:19335 +202.238.193.15:19335 +203.216.0.105:19335 +212.83.174.255:19335 +mxk7vkfxvtap2aikbjqcx7b4eex2yiag5v5vhuljnvurpybv4a6q5cqd.onion:19335 +octnr6yzgosiupuuivgla67p3ml6pc5qpozqn7zpmpbxge6pq5iq4had.onion:19335 \ No newline at end of file diff --git a/contrib/signet/README.md b/contrib/signet/README.md deleted file mode 100644 index 706b296c54942..0000000000000 --- a/contrib/signet/README.md +++ /dev/null @@ -1,83 +0,0 @@ -Contents -======== -This directory contains tools related to Signet, both for running a Signet yourself and for using one. - -getcoins.py -=========== - -A script to call a faucet to get Signet coins. - -Syntax: `getcoins.py [-h|--help] [-c|--cmd=] [-f|--faucet=] [-a|--addr=] [-p|--password=] [--] []` - -* `--cmd` lets you customize the bitcoin-cli path. By default it will look for it in the PATH -* `--faucet` lets you specify which faucet to use; the faucet is assumed to be compatible with https://github.com/kallewoof/bitcoin-faucet -* `--addr` lets you specify a Signet address; by default, the address must be a bech32 address. This and `--cmd` above complement each other (i.e. you do not need `bitcoin-cli` if you use `--addr`) -* `--password` lets you specify a faucet password; this is handy if you are in a classroom and set up your own faucet for your students; (above faucet does not limit by IP when password is enabled) - -If using the default network, invoking the script with no arguments should be sufficient under normal -circumstances, but if multiple people are behind the same IP address, the faucet will by default only -accept one claim per day. See `--password` above. - -miner -===== - -You will first need to pick a difficulty target. Since signet chains are primarily protected by a signature rather than proof of work, there is no need to spend as much energy as possible mining, however you may wish to choose to spend more time than the absolute minimum. The calibrate subcommand can be used to pick a target appropriate for your hardware, eg: - - cd src/ - MINER="../contrib/signet/miner" - GRIND="./bitcoin-util grind" - $MINER calibrate --grind-cmd="$GRIND" - nbits=1e00f403 for 25s average mining time - -It defaults to estimating an nbits value resulting in 25s average time to find a block, but the --seconds parameter can be used to pick a different target, or the --nbits parameter can be used to estimate how long it will take for a given difficulty. - -To mine the first block in your custom chain, you can run: - - CLI="./bitcoin-cli -conf=mysignet.conf" - ADDR=$($CLI -signet getnewaddress) - NBITS=1e00f403 - $MINER --cli="$CLI" generate --grind-cmd="$GRIND" --address="$ADDR" --nbits=$NBITS - -This will mine a single block with a backdated timestamp designed to allow 100 blocks to be mined as quickly as possible, so that it is possible to do transactions. - -Adding the --ongoing parameter will then cause the signet miner to create blocks indefinitely. It will pick the time between blocks so that difficulty is adjusted to match the provided --nbits value. - - $MINER --cli="$CLI" generate --grind-cmd="$GRIND" --address="$ADDR" --nbits=$NBITS --ongoing - -Other options -------------- - -The --debug and --quiet options are available to control how noisy the signet miner's output is. Note that the --debug, --quiet and --cli parameters must all appear before the subcommand (generate, calibrate, etc) if used. - -Instead of specifying --ongoing, you can specify --max-blocks=N to mine N blocks and stop. - -The --set-block-time option is available to manually move timestamps forward or backward (subject to the rules that blocktime must be greater than mediantime, and dates can't be more than two hours in the future). It can only be used when mining a single block (ie, not when using --ongoing or --max-blocks greater than 1). - -Instead of using a single address, a ranged descriptor may be provided via the --descriptor parameter, with the reward for the block at height H being sent to the H'th address generated from the descriptor. - -Instead of calculating a specific nbits value, --min-nbits can be specified instead, in which case the minimum signet difficulty will be targeted. Signet's minimum difficulty corresponds to --nbits=1e0377ae. - -By default, the signet miner mines blocks at fixed intervals with minimal variation. If you want blocks to appear more randomly, as they do in mainnet, specify the --poisson option. - -Using the --multiminer parameter allows mining to be distributed amongst multiple miners. For example, if you have 3 miners and want to share blocks between them, specify --multiminer=1/3 on one, --multiminer=2/3 on another, and --multiminer=3/3 on the last one. If you want one to do 10% of blocks and two others to do 45% each, --multiminer=1-10/100 on the first, and --multiminer=11-55 and --multiminer=56-100 on the others. Note that which miner mines which block is determined by the previous block hash, so occasional runs of one miner doing many blocks in a row is to be expected. - -When --multiminer is used, if a miner is down and does not mine a block within five minutes of when it is due, the other miners will automatically act as redundant backups ensuring the chain does not halt. The --backup-delay parameter can be used to change how long a given miner waits, allowing one to be the primary backup (after five minutes) and another to be the secondary backup (after six minutes, eg). - -The --standby-delay parameter can be used to make a backup miner that only mines if a block doesn't arrive on time. This can be combined with --multiminer if desired. Setting --standby-delay also prevents the first block from being mined immediately. - -Advanced usage --------------- - -The process generate follows internally is to get a block template, convert that into a PSBT, sign the PSBT, move the signature from the signed PSBT into the block template's coinbase, grind proof of work for the block, and then submit the block to the network. - -These steps can instead be done explicitly: - - $CLI -signet getblocktemplate '{"rules": ["signet","segwit"]}' | - $MINER --cli="$CLI" genpsbt --address="$ADDR" | - $CLI -signet -stdin walletprocesspsbt | - jq -r .psbt | - $MINER --cli="$CLI" solvepsbt --grind-cmd="$GRIND" | - $CLI -signet -stdin submitblock - -This is intended to allow you to replace part of the pipeline for further experimentation (eg, to sign the block with a hardware wallet). - diff --git a/contrib/signet/getcoins.py b/contrib/signet/getcoins.py deleted file mode 100755 index a069f5fad3dec..0000000000000 --- a/contrib/signet/getcoins.py +++ /dev/null @@ -1,158 +0,0 @@ -#!/usr/bin/env python3 -# Copyright (c) 2020-2021 The Bitcoin Core developers -# Distributed under the MIT software license, see the accompanying -# file COPYING or http://www.opensource.org/licenses/mit-license.php. - -import argparse -import io -import requests -import subprocess -import sys -import xml.etree.ElementTree - -DEFAULT_GLOBAL_FAUCET = 'https://signetfaucet.com/claim' -DEFAULT_GLOBAL_CAPTCHA = 'https://signetfaucet.com/captcha' -GLOBAL_FIRST_BLOCK_HASH = '00000086d6b2636cb2a392d45edc4ec544a10024d30141c9adf4bfd9de533b53' - -# braille unicode block -BASE = 0x2800 -BIT_PER_PIXEL = [ - [0x01, 0x08], - [0x02, 0x10], - [0x04, 0x20], - [0x40, 0x80], -] -BW = 2 -BH = 4 - -# imagemagick or compatible fork (used for converting SVG) -CONVERT = 'convert' - -class PPMImage: - ''' - Load a PPM image (Pillow-ish API). - ''' - def __init__(self, f): - if f.readline() != b'P6\n': - raise ValueError('Invalid ppm format: header') - line = f.readline() - (width, height) = (int(x) for x in line.rstrip().split(b' ')) - if f.readline() != b'255\n': - raise ValueError('Invalid ppm format: color depth') - data = f.read(width * height * 3) - stride = width * 3 - self.size = (width, height) - self._grid = [[tuple(data[stride * y + 3 * x:stride * y + 3 * (x + 1)]) for x in range(width)] for y in range(height)] - - def getpixel(self, pos): - return self._grid[pos[1]][pos[0]] - -def print_image(img, threshold=128): - '''Print black-and-white image to terminal in braille unicode characters.''' - x_blocks = (img.size[0] + BW - 1) // BW - y_blocks = (img.size[1] + BH - 1) // BH - - for yb in range(y_blocks): - line = [] - for xb in range(x_blocks): - ch = BASE - for y in range(BH): - for x in range(BW): - try: - val = img.getpixel((xb * BW + x, yb * BH + y)) - except IndexError: - pass - else: - if val[0] < threshold: - ch |= BIT_PER_PIXEL[y][x] - line.append(chr(ch)) - print(''.join(line)) - -parser = argparse.ArgumentParser(description='Script to get coins from a faucet.', epilog='You may need to start with double-dash (--) when providing bitcoin-cli arguments.') -parser.add_argument('-c', '--cmd', dest='cmd', default='bitcoin-cli', help='bitcoin-cli command to use') -parser.add_argument('-f', '--faucet', dest='faucet', default=DEFAULT_GLOBAL_FAUCET, help='URL of the faucet') -parser.add_argument('-g', '--captcha', dest='captcha', default=DEFAULT_GLOBAL_CAPTCHA, help='URL of the faucet captcha, or empty if no captcha is needed') -parser.add_argument('-a', '--addr', dest='addr', default='', help='Bitcoin address to which the faucet should send') -parser.add_argument('-p', '--password', dest='password', default='', help='Faucet password, if any') -parser.add_argument('-n', '--amount', dest='amount', default='0.001', help='Amount to request (0.001-0.1, default is 0.001)') -parser.add_argument('-i', '--imagemagick', dest='imagemagick', default=CONVERT, help='Path to imagemagick convert utility') -parser.add_argument('bitcoin_cli_args', nargs='*', help='Arguments to pass on to bitcoin-cli (default: -signet)') - -args = parser.parse_args() - -if args.bitcoin_cli_args == []: - args.bitcoin_cli_args = ['-signet'] - - -def bitcoin_cli(rpc_command_and_params): - argv = [args.cmd] + args.bitcoin_cli_args + rpc_command_and_params - try: - return subprocess.check_output(argv).strip().decode() - except FileNotFoundError: - raise SystemExit(f"The binary {args.cmd} could not be found") - except subprocess.CalledProcessError: - cmdline = ' '.join(argv) - raise SystemExit(f"-----\nError while calling {cmdline} (see output above).") - - -if args.faucet.lower() == DEFAULT_GLOBAL_FAUCET: - # Get the hash of the block at height 1 of the currently active signet chain - curr_signet_hash = bitcoin_cli(['getblockhash', '1']) - if curr_signet_hash != GLOBAL_FIRST_BLOCK_HASH: - raise SystemExit('The global faucet cannot be used with a custom Signet network. Please use the global signet or setup your custom faucet to use this functionality.\n') -else: - # For custom faucets, don't request captcha by default. - if args.captcha == DEFAULT_GLOBAL_CAPTCHA: - args.captcha = '' - -if args.addr == '': - # get address for receiving coins - args.addr = bitcoin_cli(['getnewaddress', 'faucet', 'bech32']) - -data = {'address': args.addr, 'password': args.password, 'amount': args.amount} - -# Store cookies -# for debugging: print(session.cookies.get_dict()) -session = requests.Session() - -if args.captcha != '': # Retrieve a captcha - try: - res = session.get(args.captcha) - res.raise_for_status() - except requests.exceptions.RequestException as e: - raise SystemExit(f"Unexpected error when contacting faucet: {e}") - - # Size limitation - svg = xml.etree.ElementTree.fromstring(res.content) - if svg.attrib.get('width') != '150' or svg.attrib.get('height') != '50': - raise SystemExit("Captcha size doesn't match expected dimensions 150x50") - - # Convert SVG image to PPM, and load it - try: - 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.") - - img = PPMImage(io.BytesIO(rv.stdout)) - - # Terminal interaction - print_image(img) - print(f"Captcha from URL {args.captcha}") - data['captcha'] = input('Enter captcha: ') - -try: - res = session.post(args.faucet, data=data) -except: - raise SystemExit(f"Unexpected error when contacting faucet: {sys.exc_info()[0]}") - -# Display the output as per the returned status code -if res: - # When the return code is in between 200 and 400 i.e. successful - print(res.text) -elif res.status_code == 404: - print('The specified faucet URL does not exist. Please check for any server issues/typo.') -elif res.status_code == 429: - print('The script does not allow for repeated transactions as the global faucet is rate-limitied to 1 request/IP/day. You can access the faucet website to get more coins manually') -else: - print(f'Returned Error Code {res.status_code}\n{res.text}\n') - print('Please check the provided arguments for their validity and/or any possible typo.') diff --git a/contrib/signet/miner b/contrib/signet/miner deleted file mode 100755 index fdcd20ae3b4e8..0000000000000 --- a/contrib/signet/miner +++ /dev/null @@ -1,540 +0,0 @@ -#!/usr/bin/env python3 -# Copyright (c) 2020 The Bitcoin Core developers -# Distributed under the MIT software license, see the accompanying -# file COPYING or http://www.opensource.org/licenses/mit-license.php. - -import argparse -import json -import logging -import math -import os -import re -import struct -import sys -import time -import subprocess - -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 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( - format='%(asctime)s %(levelname)s %(message)s', - level=logging.INFO, - datefmt='%Y-%m-%d %H:%M:%S') - -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+)$") - -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 signet_txs(block, challenge): - # assumes signet solution has not been added yet so does not need - # to be removed - - txs = block.vtx[:] - txs[0] = CTransaction(txs[0]) - txs[0].vout[-1].scriptPubKey += CScriptOp.encode_op_pushdata(SIGNET_HEADER) - hashes = [] - for tx in txs: - tx.rehash() - hashes.append(ser_uint256(tx.sha256)) - mroot = block.get_merkle_root(hashes) - - sd = b"" - sd += struct.pack("> 24) & 0xff - return (nbits & 0x00ffffff) * 2**(8*(shift - 3)) - -def target_to_nbits(target): - tstr = "{0:x}".format(target) - if len(tstr) < 6: - tstr = ("000000"+tstr)[-6:] - if len(tstr) % 2 != 0: - tstr = "0" + tstr - if int(tstr[0],16) >= 0x8: - # avoid "negative" - tstr = "00" + tstr - fix = int(tstr[:6], 16) - sz = len(tstr)//2 - if tstr[6:] != "0"*(sz*2-6): - fix += 1 - - return int("%02x%06x" % (sz,fix), 16) - -def seconds_to_hms(s): - if s == 0: - return "0s" - neg = (s < 0) - if neg: - s = -s - out = "" - if s % 60 > 0: - out = "%ds" % (s % 60) - s //= 60 - if s % 60 > 0: - out = "%dm%s" % (s % 60, out) - s //= 60 - if s > 0: - out = "%dh%s" % (s, out) - if neg: - out = "-" + out - return out - -def next_block_delta(last_nbits, last_hash, ultimate_target, do_poisson): - # strategy: - # 1) work out how far off our desired target we are - # 2) cap it to a factor of 4 since that's the best we can do in a single retarget period - # 3) use that to work out the desired average interval in this retarget period - # 4) if doing poisson, use the last hash to pick a uniformly random number in [0,1), and work out a random multiplier to vary the average by - # 5) cap the resulting interval between 1 second and 1 hour to avoid extremes - - INTERVAL = 600.0*2016/2015 # 10 minutes, adjusted for the off-by-one bug - - current_target = nbits_to_target(last_nbits) - retarget_factor = ultimate_target / current_target - retarget_factor = max(0.25, min(retarget_factor, 4.0)) - - avg_interval = INTERVAL * retarget_factor - - if do_poisson: - det_rand = int(last_hash[-8:], 16) * 2**-32 - this_interval_variance = -math.log1p(-det_rand) - else: - this_interval_variance = 1 - - this_interval = avg_interval * this_interval_variance - this_interval = max(1, min(this_interval, 3600)) - - return this_interval - -def next_block_is_mine(last_hash, my_blocks): - det_rand = int(last_hash[-16:-8], 16) - return my_blocks[0] <= (det_rand % my_blocks[2]) < my_blocks[1] - -def do_generate(args): - if args.max_blocks is not None: - if args.ongoing: - logging.error("Cannot specify both --ongoing and --max-blocks") - return 1 - if args.max_blocks < 1: - logging.error("N must be a positive integer") - return 1 - max_blocks = args.max_blocks - elif args.ongoing: - max_blocks = None - else: - max_blocks = 1 - - if args.set_block_time is not None and max_blocks != 1: - logging.error("Cannot specify --ongoing or --max-blocks > 1 when using --set-block-time") - return 1 - if args.set_block_time is not None and args.set_block_time < 0: - args.set_block_time = time.time() - logging.info("Treating negative block time as current time (%d)" % (args.set_block_time)) - - if args.min_nbits: - if args.nbits is not None: - logging.error("Cannot specify --nbits and --min-nbits") - return 1 - args.nbits = "1e0377ae" - logging.info("Using nbits=%s" % (args.nbits)) - - if args.set_block_time is None: - if args.nbits is None or len(args.nbits) != 8: - logging.error("Must specify --nbits (use calibrate command to determine value)") - return 1 - - if args.multiminer is None: - my_blocks = (0,1,1) - else: - if not args.ongoing: - logging.error("Cannot specify --multiminer without --ongoing") - return 1 - m = RE_MULTIMINER.match(args.multiminer) - if m is None: - logging.error("--multiminer argument must be k/m or j-k/m") - return 1 - start,_,stop,total = m.groups() - if stop is None: - stop = start - start, stop, total = map(int, (start, stop, total)) - if stop < start or start <= 0 or total < stop or total == 0: - logging.error("Inconsistent values for --multiminer") - return 1 - my_blocks = (start-1, stop, total) - - ultimate_target = nbits_to_target(int(args.nbits,16)) - - mined_blocks = 0 - bestheader = {"hash": None} - lastheader = None - while max_blocks is None or mined_blocks < max_blocks: - - # current status? - bci = json.loads(args.bcli("getblockchaininfo")) - - if bestheader["hash"] != bci["bestblockhash"]: - bestheader = json.loads(args.bcli("getblockheader", bci["bestblockhash"])) - - if lastheader is None: - lastheader = bestheader["hash"] - elif bestheader["hash"] != lastheader: - next_delta = next_block_delta(int(bestheader["bits"], 16), bestheader["hash"], ultimate_target, args.poisson) - next_delta += bestheader["time"] - time.time() - next_is_mine = next_block_is_mine(bestheader["hash"], my_blocks) - logging.info("Received new block at height %d; next in %s (%s)", bestheader["height"], seconds_to_hms(next_delta), ("mine" if next_is_mine else "backup")) - lastheader = bestheader["hash"] - - # when is the next block due to be mined? - now = time.time() - if args.set_block_time is not None: - logging.debug("Setting start time to %d", args.set_block_time) - mine_time = args.set_block_time - action_time = now - is_mine = True - elif bestheader["height"] == 0: - time_delta = next_block_delta(int(bestheader["bits"], 16), bci["bestblockhash"], ultimate_target, args.poisson) - time_delta *= 100 # 100 blocks - logging.info("Backdating time for first block to %d minutes ago" % (time_delta/60)) - mine_time = now - time_delta - action_time = now - is_mine = True - else: - time_delta = next_block_delta(int(bestheader["bits"], 16), bci["bestblockhash"], ultimate_target, args.poisson) - mine_time = bestheader["time"] + time_delta - - is_mine = next_block_is_mine(bci["bestblockhash"], my_blocks) - - action_time = mine_time - if not is_mine: - action_time += args.backup_delay - - if args.standby_delay > 0: - action_time += args.standby_delay - elif mined_blocks == 0: - # for non-standby, always mine immediately on startup, - # even if the next block shouldn't be ours - action_time = now - - # don't want fractional times so round down - mine_time = int(mine_time) - action_time = int(action_time) - - # can't mine a block 2h in the future; 1h55m for some safety - action_time = max(action_time, mine_time - 6900) - - # ready to go? otherwise sleep and check for new block - if now < action_time: - sleep_for = min(action_time - now, 60) - if mine_time < now: - # someone else might have mined the block, - # so check frequently, so we don't end up late - # mining the next block if it's ours - sleep_for = min(20, sleep_for) - minestr = "mine" if is_mine else "backup" - logging.debug("Sleeping for %s, next block due in %s (%s)" % (seconds_to_hms(sleep_for), seconds_to_hms(mine_time - now), minestr)) - time.sleep(sleep_for) - continue - - # gbt - tmpl = json.loads(args.bcli("getblocktemplate", '{"rules":["signet","segwit"]}')) - if tmpl["previousblockhash"] != bci["bestblockhash"]: - logging.warning("GBT based off unexpected block (%s not %s), retrying", tmpl["previousblockhash"], bci["bestblockhash"]) - time.sleep(1) - continue - - logging.debug("GBT template: %s", tmpl) - - if tmpl["mintime"] > mine_time: - logging.info("Updating block time from %d to %d", mine_time, tmpl["mintime"]) - mine_time = tmpl["mintime"] - if mine_time > now: - logging.error("GBT mintime is in the future: %d is %d seconds later than %d", mine_time, (mine_time-now), now) - return 1 - - # address for reward - reward_addr, reward_spk = get_reward_addr_spk(args, tmpl["height"]) - - # mine block - logging.debug("Mining block delta=%s start=%s mine=%s", seconds_to_hms(mine_time-bestheader["time"]), mine_time, is_mine) - mined_blocks += 1 - psbt = generate_psbt(tmpl, reward_spk, blocktime=mine_time) - input_stream = os.linesep.join([psbt, "true", "ALL"]).encode('utf8') - psbt_signed = json.loads(args.bcli("-stdin", "walletprocesspsbt", input=input_stream)) - if not psbt_signed.get("complete",False): - logging.debug("Generated PSBT: %s" % (psbt,)) - sys.stderr.write("PSBT signing failed\n") - return 1 - block, signet_solution = do_decode_psbt(psbt_signed["psbt"]) - block = finish_block(block, signet_solution, args.grind_cmd) - - # submit block - r = args.bcli("-stdin", "submitblock", input=block.serialize().hex().encode('utf8')) - - # report - bstr = "block" if is_mine else "backup block" - - next_delta = next_block_delta(block.nBits, block.hash, ultimate_target, args.poisson) - next_delta += block.nTime - time.time() - next_is_mine = next_block_is_mine(block.hash, my_blocks) - - logging.debug("Block hash %s payout to %s", block.hash, reward_addr) - logging.info("Mined %s at height %d; next in %s (%s)", bstr, tmpl["height"], seconds_to_hms(next_delta), ("mine" if next_is_mine else "backup")) - if r != "": - logging.warning("submitblock returned %s for height %d hash %s", r, tmpl["height"], block.hash) - lastheader = block.hash - -def do_calibrate(args): - if args.nbits is not None and args.seconds is not None: - sys.stderr.write("Can only specify one of --nbits or --seconds\n") - return 1 - if args.nbits is not None and len(args.nbits) != 8: - sys.stderr.write("Must specify 8 hex digits for --nbits\n") - return 1 - - TRIALS = 600 # gets variance down pretty low - TRIAL_BITS = 0x1e3ea75f # takes about 5m to do 600 trials - - header = CBlockHeader() - header.nBits = TRIAL_BITS - targ = nbits_to_target(header.nBits) - - start = time.time() - count = 0 - for i in range(TRIALS): - header.nTime = i - header.nNonce = 0 - headhex = header.serialize().hex() - cmd = args.grind_cmd.split(" ") + [headhex] - newheadhex = subprocess.run(cmd, stdout=subprocess.PIPE, input=b"", check=True).stdout.strip() - - avg = (time.time() - start) * 1.0 / TRIALS - - if args.nbits is not None: - want_targ = nbits_to_target(int(args.nbits,16)) - want_time = avg*targ/want_targ - else: - want_time = args.seconds if args.seconds is not None else 25 - want_targ = int(targ*(avg/want_time)) - - print("nbits=%08x for %ds average mining time" % (target_to_nbits(want_targ), want_time)) - return 0 - -def bitcoin_cli(basecmd, args, **kwargs): - cmd = basecmd + ["-signet"] + args - logging.debug("Calling bitcoin-cli: %r", cmd) - out = subprocess.run(cmd, stdout=subprocess.PIPE, **kwargs, check=True).stdout - if isinstance(out, bytes): - out = out.decode('utf8') - return out.strip() - -def main(): - parser = argparse.ArgumentParser() - parser.add_argument("--cli", default="bitcoin-cli", type=str, help="bitcoin-cli command") - parser.add_argument("--debug", action="store_true", help="Print debugging info") - parser.add_argument("--quiet", action="store_true", help="Only print warnings/errors") - - cmds = parser.add_subparsers(help="sub-commands") - genpsbt = cmds.add_parser("genpsbt", help="Generate a block PSBT for signing") - genpsbt.set_defaults(fn=do_genpsbt) - - solvepsbt = cmds.add_parser("solvepsbt", help="Solve a signed block PSBT") - solvepsbt.set_defaults(fn=do_solvepsbt) - - generate = cmds.add_parser("generate", help="Mine blocks") - generate.set_defaults(fn=do_generate) - generate.add_argument("--ongoing", action="store_true", help="Keep mining blocks") - generate.add_argument("--max-blocks", default=None, type=int, help="Max blocks to mine (default=1)") - generate.add_argument("--set-block-time", default=None, type=int, help="Set block time (unix timestamp)") - generate.add_argument("--nbits", default=None, type=str, help="Target nBits (specify difficulty)") - generate.add_argument("--min-nbits", action="store_true", help="Target minimum nBits (use min difficulty)") - generate.add_argument("--poisson", action="store_true", help="Simulate randomised block times") - generate.add_argument("--multiminer", default=None, type=str, help="Specify which set of blocks to mine (eg: 1-40/100 for the first 40%%, 2/3 for the second 3rd)") - generate.add_argument("--backup-delay", default=300, type=int, help="Seconds to delay before mining blocks reserved for other miners (default=300)") - generate.add_argument("--standby-delay", default=0, type=int, help="Seconds to delay before mining blocks (default=0)") - - calibrate = cmds.add_parser("calibrate", help="Calibrate difficulty") - calibrate.set_defaults(fn=do_calibrate) - calibrate.add_argument("--nbits", type=str, default=None) - calibrate.add_argument("--seconds", type=int, default=None) - - for sp in [genpsbt, generate]: - sp.add_argument("--address", default=None, type=str, help="Address for block reward payment") - sp.add_argument("--descriptor", default=None, type=str, help="Descriptor for block reward payment") - - for sp in [solvepsbt, generate, calibrate]: - sp.add_argument("--grind-cmd", default=None, type=str, required=(sp==calibrate), help="Command to grind a block header for proof-of-work") - - args = parser.parse_args(sys.argv[1:]) - - args.bcli = lambda *a, input=b"", **kwargs: bitcoin_cli(args.cli.split(" "), list(a), input=input, **kwargs) - - if hasattr(args, "address") and hasattr(args, "descriptor"): - if args.address is None and args.descriptor is None: - sys.stderr.write("Must specify --address or --descriptor\n") - return 1 - elif args.address is not None and args.descriptor is not None: - sys.stderr.write("Only specify one of --address or --descriptor\n") - return 1 - args.derived_addresses = {} - - if args.debug: - logging.getLogger().setLevel(logging.DEBUG) - elif args.quiet: - logging.getLogger().setLevel(logging.WARNING) - else: - logging.getLogger().setLevel(logging.INFO) - - if hasattr(args, "fn"): - return args.fn(args) - else: - logging.error("Must specify command") - return 1 - -if __name__ == "__main__": - main() diff --git a/contrib/testgen/gen_key_io_test_vectors.py b/contrib/testgen/gen_key_io_test_vectors.py index 7bfb1d76a8b76..e5183956d9ec0 100755 --- a/contrib/testgen/gen_key_io_test_vectors.py +++ b/contrib/testgen/gen_key_io_test_vectors.py @@ -18,13 +18,13 @@ from test_framework.segwit_addr import bech32_encode, decode_segwit_address, convertbits, CHARSET, Encoding # noqa: E402 # key types -PUBKEY_ADDRESS = 0 +PUBKEY_ADDRESS = 48 SCRIPT_ADDRESS = 5 PUBKEY_ADDRESS_TEST = 111 SCRIPT_ADDRESS_TEST = 196 PUBKEY_ADDRESS_REGTEST = 111 SCRIPT_ADDRESS_REGTEST = 196 -PRIVKEY = 128 +PRIVKEY = 176 PRIVKEY_TEST = 239 PRIVKEY_REGTEST = 239 @@ -46,58 +46,50 @@ ((SCRIPT_ADDRESS,), 20, (), (False, 'main', None, None), script_prefix, script_suffix), ((PUBKEY_ADDRESS_TEST,), 20, (), (False, 'test', None, None), pubkey_prefix, pubkey_suffix), ((SCRIPT_ADDRESS_TEST,), 20, (), (False, 'test', None, None), script_prefix, script_suffix), - ((PUBKEY_ADDRESS_TEST,), 20, (), (False, 'signet', None, None), pubkey_prefix, pubkey_suffix), - ((SCRIPT_ADDRESS_TEST,), 20, (), (False, 'signet', None, None), script_prefix, script_suffix), ((PUBKEY_ADDRESS_REGTEST,), 20, (), (False, 'regtest', None, None), pubkey_prefix, pubkey_suffix), ((SCRIPT_ADDRESS_REGTEST,), 20, (), (False, 'regtest', None, None), script_prefix, script_suffix), ((PRIVKEY,), 32, (), (True, 'main', False, None), (), ()), ((PRIVKEY,), 32, (1,), (True, 'main', True, None), (), ()), ((PRIVKEY_TEST,), 32, (), (True, 'test', False, None), (), ()), ((PRIVKEY_TEST,), 32, (1,), (True, 'test', True, None), (), ()), - ((PRIVKEY_TEST,), 32, (), (True, 'signet', False, None), (), ()), - ((PRIVKEY_TEST,), 32, (1,), (True, 'signet', True, None), (), ()), ((PRIVKEY_REGTEST,), 32, (), (True, 'regtest', False, None), (), ()), ((PRIVKEY_REGTEST,), 32, (1,), (True, 'regtest', True, None), (), ()) ] # templates for valid bech32 sequences bech32_templates = [ # hrp, version, witprog_size, metadata, encoding, output_prefix - ('bc', 0, 20, (False, 'main', None, True), Encoding.BECH32, p2wpkh_prefix), - ('bc', 0, 32, (False, 'main', None, True), Encoding.BECH32, p2wsh_prefix), - ('bc', 1, 32, (False, 'main', None, True), Encoding.BECH32M, p2tr_prefix), - ('bc', 2, 2, (False, 'main', None, True), Encoding.BECH32M, (OP_2, 2)), - ('tb', 0, 20, (False, 'test', None, True), Encoding.BECH32, p2wpkh_prefix), - ('tb', 0, 32, (False, 'test', None, True), Encoding.BECH32, p2wsh_prefix), - ('tb', 1, 32, (False, 'test', None, True), Encoding.BECH32M, p2tr_prefix), - ('tb', 3, 16, (False, 'test', None, True), Encoding.BECH32M, (OP_3, 16)), - ('tb', 0, 20, (False, 'signet', None, True), Encoding.BECH32, p2wpkh_prefix), - ('tb', 0, 32, (False, 'signet', None, True), Encoding.BECH32, p2wsh_prefix), - ('tb', 1, 32, (False, 'signet', None, True), Encoding.BECH32M, p2tr_prefix), - ('tb', 3, 32, (False, 'signet', None, True), Encoding.BECH32M, (OP_3, 32)), - ('bcrt', 0, 20, (False, 'regtest', None, True), Encoding.BECH32, p2wpkh_prefix), - ('bcrt', 0, 32, (False, 'regtest', None, True), Encoding.BECH32, p2wsh_prefix), - ('bcrt', 1, 32, (False, 'regtest', None, True), Encoding.BECH32M, p2tr_prefix), - ('bcrt', 16, 40, (False, 'regtest', None, True), Encoding.BECH32M, (OP_16, 40)) + ('ltc', 0, 20, (False, 'main', None, True), Encoding.BECH32, p2wpkh_prefix), + ('ltc', 0, 32, (False, 'main', None, True), Encoding.BECH32, p2wsh_prefix), + ('ltc', 1, 32, (False, 'main', None, True), Encoding.BECH32M, p2tr_prefix), + ('ltc', 2, 2, (False, 'main', None, True), Encoding.BECH32M, (OP_2, 2)), + ('tltc', 0, 20, (False, 'test', None, True), Encoding.BECH32, p2wpkh_prefix), + ('tltc', 0, 32, (False, 'test', None, True), Encoding.BECH32, p2wsh_prefix), + ('tltc', 1, 32, (False, 'test', None, True), Encoding.BECH32M, p2tr_prefix), + ('tltc', 3, 16, (False, 'test', None, True), Encoding.BECH32M, (OP_3, 16)), + ('rltc', 0, 20, (False, 'regtest', None, True), Encoding.BECH32, p2wpkh_prefix), + ('rltc', 0, 32, (False, 'regtest', None, True), Encoding.BECH32, p2wsh_prefix), + ('rltc', 1, 32, (False, 'regtest', None, True), Encoding.BECH32M, p2tr_prefix), + ('rltc', 16, 40, (False, 'regtest', None, True), Encoding.BECH32M, (OP_16, 40)) ] # templates for invalid bech32 sequences bech32_ng_templates = [ # hrp, version, witprog_size, encoding, invalid_bech32, invalid_checksum, invalid_char ('tc', 0, 20, Encoding.BECH32, False, False, False), ('bt', 1, 32, Encoding.BECH32M, False, False, False), - ('tb', 17, 32, Encoding.BECH32M, False, False, False), - ('bcrt', 3, 1, Encoding.BECH32M, False, False, False), - ('bc', 15, 41, Encoding.BECH32M, False, False, False), - ('tb', 0, 16, Encoding.BECH32, False, False, False), - ('bcrt', 0, 32, Encoding.BECH32, True, False, False), - ('bc', 0, 16, Encoding.BECH32, True, False, False), - ('tb', 0, 32, Encoding.BECH32, False, True, False), - ('bcrt', 0, 20, Encoding.BECH32, False, False, True), - ('bc', 0, 20, Encoding.BECH32M, False, False, False), - ('tb', 0, 32, Encoding.BECH32M, False, False, False), - ('bcrt', 0, 20, Encoding.BECH32M, False, False, False), - ('bc', 1, 32, Encoding.BECH32, False, False, False), - ('tb', 2, 16, Encoding.BECH32, False, False, False), - ('bcrt', 16, 20, Encoding.BECH32, False, False, False), + ('tltc', 17, 32, Encoding.BECH32M, False, False, False), + ('rltc', 3, 1, Encoding.BECH32M, False, False, False), + ('ltc', 15, 41, Encoding.BECH32M, False, False, False), + ('tltc', 0, 16, Encoding.BECH32, False, False, False), + ('rltc', 0, 32, Encoding.BECH32, True, False, False), + ('ltc', 0, 16, Encoding.BECH32, True, False, False), + ('tltc', 0, 32, Encoding.BECH32, False, True, False), + ('rltc', 0, 20, Encoding.BECH32, False, False, True), + ('ltc', 0, 20, Encoding.BECH32M, False, False, False), + ('tltc', 0, 32, Encoding.BECH32M, False, False, False), + ('rltc', 0, 20, Encoding.BECH32M, False, False, False), + ('ltc', 1, 32, Encoding.BECH32, False, False, False), + ('tltc', 2, 16, Encoding.BECH32, False, False, False), + ('rltc', 16, 20, Encoding.BECH32, False, False, False), ] def is_valid(v): @@ -119,7 +111,7 @@ def is_valid(v): def is_valid_bech32(v): '''Check vector v for bech32 validity''' - for hrp in ['bc', 'tb', 'bcrt']: + for hrp in ['ltc','tltc', 'bcrt']: if decode_segwit_address(hrp, v) != (None, None): return True return False diff --git a/contrib/tracing/README.md b/contrib/tracing/README.md index a409a23ef8db8..1ff9fcf38b0f2 100644 --- a/contrib/tracing/README.md +++ b/contrib/tracing/README.md @@ -30,12 +30,12 @@ information. For development there exist a [bpftrace Reference Guide], a ## Examples -The bpftrace examples contain a relative path to the `bitcoind` binary. By +The bpftrace examples contain a relative path to the `litecoind` binary. By default, the scripts should be run from the repository-root and assume a -self-compiled `bitcoind` binary. The paths in the examples can be changed, for +self-compiled `litecoind` binary. The paths in the examples can be changed, for example, to point to release builds if needed. See the [Bitcoin Core USDT documentation] on how to list available tracepoints in your -`bitcoind` binary. +`litecoind` binary. [Bitcoin Core USDT documentation]: ../../doc/tracing.md#listing-available-tracepoints @@ -82,7 +82,7 @@ about the connection. Peers can be selected individually to view recent P2P messages. ``` -$ python3 contrib/tracing/p2p_monitor.py ./src/bitcoind +$ python3 contrib/tracing/p2p_monitor.py ./src/litecoind ``` Lists selectable peers and traffic and connection information. @@ -150,7 +150,7 @@ lost. BCC prints: `Possibly lost 2 samples` on lost messages. ``` -$ python3 contrib/tracing/log_raw_p2p_msgs.py ./src/bitcoind +$ python3 contrib/tracing/log_raw_p2p_msgs.py ./src/litecoind ``` ``` @@ -188,7 +188,7 @@ In a different terminal, starting Bitcoin Core in SigNet mode and with re-indexing enabled. ``` -$ ./src/bitcoind -signet -reindex +$ ./src/litecoind -signet -reindex ``` This produces the following output. @@ -241,7 +241,7 @@ A BCC Python script to log the UTXO cache flushes. Based on the `utxocache:flush` tracepoint. ```bash -$ python3 contrib/tracing/log_utxocache_flush.py ./src/bitcoind +$ python3 contrib/tracing/log_utxocache_flush.py ./src/litecoind ``` ``` diff --git a/contrib/tracing/connectblock_benchmark.bt b/contrib/tracing/connectblock_benchmark.bt index 6e7a98ef07664..46f0f8700ee81 100755 --- a/contrib/tracing/connectblock_benchmark.bt +++ b/contrib/tracing/connectblock_benchmark.bt @@ -14,15 +14,15 @@ over . - Threshold - This script requires a 'bitcoind' binary compiled with eBPF support and the - 'validation:block_connected' USDT. By default, it's assumed that 'bitcoind' is - located in './src/bitcoind'. This can be modified in the script below. + This script requires a 'litecoind' binary compiled with eBPF support and the + 'validation:block_connected' USDT. By default, it's assumed that 'litecoind' is + located in './src/litecoind'. This can be modified in the script below. EXAMPLES: bpftrace contrib/tracing/connectblock_benchmark.bt 300000 680000 1000 - When run together 'bitcoind -reindex', this benchmarks the time it takes to + When run together 'litecoind -reindex', this benchmarks the time it takes to connect the blocks between height 300.000 and 680.000 (inclusive) and prints details about all blocks that take longer than 1000ms to connect. Prints a histogram with block connection times when the benchmark is finished. @@ -30,7 +30,7 @@ bpftrace contrib/tracing/connectblock_benchmark.bt 0 0 500 - When running together 'bitcoind', all newly connected blocks that + When running together 'litecoind', all newly connected blocks that take longer than 500ms to connect are logged. A histogram with block connection times is shown when the script is terminated. @@ -67,7 +67,7 @@ BEGIN connected block is between the start and end height (or the end height is unset). */ -usdt:./src/bitcoind:validation:block_connected /arg1 >= $1 && (arg1 <= $2 || $2 == 0 )/ +usdt:./src/litecoind:validation:block_connected /arg1 >= $1 && (arg1 <= $2 || $2 == 0 )/ { $height = arg1; $transactions = arg2; @@ -102,7 +102,7 @@ usdt:./src/bitcoind:validation:block_connected /arg1 >= $1 && (arg1 <= $2 || $2 blocks where the time it took to connect the block is above the . */ -usdt:./src/bitcoind:validation:block_connected / (uint64) arg5 / 1000> $3 / +usdt:./src/litecoind:validation:block_connected / (uint64) arg5 / 1000> $3 / { $hash = arg0; $height = (int32) arg1; diff --git a/contrib/tracing/log_p2p_traffic.bt b/contrib/tracing/log_p2p_traffic.bt index f62956aa5e1c3..6348a551f0545 100755 --- a/contrib/tracing/log_p2p_traffic.bt +++ b/contrib/tracing/log_p2p_traffic.bt @@ -5,7 +5,7 @@ BEGIN printf("Logging P2P traffic\n") } -usdt:./src/bitcoind:net:inbound_message +usdt:./src/litecoind:net:inbound_message { $peer_id = (int64) arg0; $peer_addr = str(arg1); @@ -15,7 +15,7 @@ usdt:./src/bitcoind:net:inbound_message printf("inbound '%s' msg from peer %d (%s, %s) with %d bytes\n", $msg_type, $peer_id, $peer_type, $peer_addr, $msg_len); } -usdt:./src/bitcoind:net:outbound_message +usdt:./src/litecoind:net:outbound_message { $peer_id = (int64) arg0; $peer_addr = str(arg1); diff --git a/contrib/tracing/log_raw_p2p_msgs.py b/contrib/tracing/log_raw_p2p_msgs.py index c0ab70410622b..cd09725427a39 100755 --- a/contrib/tracing/log_raw_p2p_msgs.py +++ b/contrib/tracing/log_raw_p2p_msgs.py @@ -177,7 +177,7 @@ def handle_outbound(_, data, size): if __name__ == "__main__": if len(sys.argv) < 2: - print("USAGE:", sys.argv[0], "path/to/bitcoind") + print("USAGE:", sys.argv[0], "path/to/litecoind") exit() path = sys.argv[1] main(path) diff --git a/contrib/tracing/log_utxocache_flush.py b/contrib/tracing/log_utxocache_flush.py index 8c073bea0d181..c828900cbd402 100755 --- a/contrib/tracing/log_utxocache_flush.py +++ b/contrib/tracing/log_utxocache_flush.py @@ -10,7 +10,7 @@ """Example logging Bitcoin Core utxo set cache flushes utilizing the utxocache:flush tracepoint.""" -# USAGE: ./contrib/tracing/log_utxocache_flush.py path/to/bitcoind +# USAGE: ./contrib/tracing/log_utxocache_flush.py path/to/litecoind # BCC: The C program to be compiled to an eBPF program (by BCC) and loaded into # a sandboxed Linux kernel VM. @@ -100,7 +100,7 @@ def handle_flush(_, data, size): if __name__ == "__main__": if len(sys.argv) < 2: - print("USAGE: ", sys.argv[0], "path/to/bitcoind") + print("USAGE: ", sys.argv[0], "path/to/litecoind") exit(1) path = sys.argv[1] diff --git a/contrib/tracing/log_utxos.bt b/contrib/tracing/log_utxos.bt index 54d5010f825e4..122683a7cf5e6 100755 --- a/contrib/tracing/log_utxos.bt +++ b/contrib/tracing/log_utxos.bt @@ -6,9 +6,9 @@ bpftrace contrib/tracing/log_utxos.bt - This script requires a 'bitcoind' binary compiled with eBPF support and the - 'utxocache' tracepoints. By default, it's assumed that 'bitcoind' is - located in './src/bitcoind'. This can be modified in the script below. + This script requires a 'litecoind' binary compiled with eBPF support and the + 'utxocache' tracepoints. By default, it's assumed that 'litecoind' is + located in './src/litecoind'. This can be modified in the script below. NOTE: requires bpftrace v0.12.0 or above. */ @@ -22,7 +22,7 @@ BEGIN /* Attaches to the 'utxocache:add' tracepoint and prints additions to the UTXO set cache. */ -usdt:./src/bitcoind:utxocache:add +usdt:./src/litecoind:utxocache:add { $txid = arg0; $index = (uint32)arg1; @@ -44,7 +44,7 @@ usdt:./src/bitcoind:utxocache:add /* Attaches to the 'utxocache:spent' tracepoint and prints spents from the UTXO set cache. */ -usdt:./src/bitcoind:utxocache:spent +usdt:./src/litecoind:utxocache:spent { $txid = arg0; $index = (uint32)arg1; @@ -66,7 +66,7 @@ usdt:./src/bitcoind:utxocache:spent /* Attaches to the 'utxocache:uncache' tracepoint and uncache UTXOs from the UTXO set cache. */ -usdt:./src/bitcoind:utxocache:uncache +usdt:./src/litecoind:utxocache:uncache { $txid = arg0; $index = (uint32)arg1; diff --git a/contrib/tracing/p2p_monitor.py b/contrib/tracing/p2p_monitor.py index 4ff701cac3c8c..de2a65f6b996d 100755 --- a/contrib/tracing/p2p_monitor.py +++ b/contrib/tracing/p2p_monitor.py @@ -3,7 +3,7 @@ # Distributed under the MIT software license, see the accompanying # file COPYING or http://www.opensource.org/licenses/mit-license.php. -""" Interactive bitcoind P2P network traffic monitor utilizing USDT and the +""" Interactive litecoind P2P network traffic monitor utilizing USDT and the net:inbound_message and net:outbound_message tracepoints. """ # This script demonstrates what USDT for Bitcoin Core can enable. It uses BCC @@ -247,7 +247,7 @@ def render(screen, peers, cur_list_pos, scroll, ROWS_AVALIABLE_FOR_LIST, info_pa if __name__ == "__main__": if len(sys.argv) < 2: - print("USAGE:", sys.argv[0], "path/to/bitcoind") + print("USAGE:", sys.argv[0], "path/to/litecoind") exit() path = sys.argv[1] main(path) diff --git a/contrib/valgrind.supp b/contrib/valgrind.supp index d6856b42749ed..9a9a9cb03393c 100644 --- a/contrib/valgrind.supp +++ b/contrib/valgrind.supp @@ -2,14 +2,14 @@ # dependencies that cannot be fixed in-tree. # # Example use: -# $ valgrind --suppressions=contrib/valgrind.supp src/test/test_bitcoin +# $ valgrind --suppressions=contrib/valgrind.supp src/test/test_litecoin # $ valgrind --suppressions=contrib/valgrind.supp --leak-check=full \ -# --show-leak-kinds=all src/test/test_bitcoin +# --show-leak-kinds=all src/test/test_litecoin # # To create suppressions for found issues, use the --gen-suppressions=all option: # $ valgrind --suppressions=contrib/valgrind.supp --leak-check=full \ # --show-leak-kinds=all --gen-suppressions=all --show-reachable=yes \ -# --error-limit=no src/test/test_bitcoin +# --error-limit=no src/test/test_litecoin # # Note that suppressions may depend on OS and/or library versions. # Tested on: diff --git a/contrib/verify-commits/trusted-keys b/contrib/verify-commits/trusted-keys index 5ca65e7b0d188..abf0c6a76cf72 100644 --- a/contrib/verify-commits/trusted-keys +++ b/contrib/verify-commits/trusted-keys @@ -4,3 +4,8 @@ E777299FC265DD04793070EB944D35F9AC3DB76A D1DBF2C4B96F2DEBF4C16654410108112E7EA81F 152812300785C96444D3334D17565732E08E5E41 6B002C6EA3F91B1B0DF0C9BC8F617F1200A6D25C +59CAF0E96F23F53747945FD4FE3348877809386C +812C7C9946D314F6A4B70D2D805300481F14DD8B +EEF1C9FE09262D71DDE83C223EF697503BF73187 +1A2511E978239E491A096D0A828AC1F94EF26053 +D35621D53A1CC6A3456758D03620E9D387E55666 \ No newline at end of file diff --git a/contrib/windeploy/detached-sig-create.sh b/contrib/windeploy/detached-sig-create.sh index 82fcf2d40684f..1fe08742036ef 100755 --- a/contrib/windeploy/detached-sig-create.sh +++ b/contrib/windeploy/detached-sig-create.sh @@ -19,7 +19,7 @@ SRCDIR=unsigned WORKDIR=./.tmp OUTDIR="${WORKDIR}/out" OUTSUBDIR="${OUTDIR}/win" -TIMESERVER=http://timestamp.comodoca.com +TIMESERVER=http://timestamp.sectigo.com CERTFILE="win-codesign.cert" mkdir -p "${OUTSUBDIR}" diff --git a/contrib/windeploy/win-codesign.cert b/contrib/windeploy/win-codesign.cert index 22f17296b6aaa..5828389e05323 100644 --- a/contrib/windeploy/win-codesign.cert +++ b/contrib/windeploy/win-codesign.cert @@ -1,112 +1,42 @@ ------BEGIN CERTIFICATE----- -MIIHfDCCBWSgAwIBAgIQCmVvdQal72U2QxbUTT3SRTANBgkqhkiG9w0BAQsFADBp -MQswCQYDVQQGEwJVUzEXMBUGA1UEChMORGlnaUNlcnQsIEluYy4xQTA/BgNVBAMT -OERpZ2lDZXJ0IFRydXN0ZWQgRzQgQ29kZSBTaWduaW5nIFJTQTQwOTYgU0hBMzg0 -IDIwMjEgQ0ExMB4XDTIyMDUyNDAwMDAwMFoXDTI0MDUyOTIzNTk1OVowgYAxCzAJ -BgNVBAYTAlVTMREwDwYDVQQIEwhEZWxhd2FyZTEOMAwGA1UEBxMFTGV3ZXMxJjAk -BgNVBAoTHUJpdGNvaW4gQ29yZSBDb2RlIFNpZ25pbmcgTExDMSYwJAYDVQQDEx1C -aXRjb2luIENvcmUgQ29kZSBTaWduaW5nIExMQzCCAiIwDQYJKoZIhvcNAQEBBQAD -ggIPADCCAgoCggIBALewxfjztuRTDNAGf7zkqqWNEt28CZmVJHoYltVRxtE1BP45 -BfmptH5eM1JC/XosTPytHRFeOkO4YVAtiELxK9S/82OZlKA7Mx7PW6vv1184u8+m -P3WpTN/KAZTaW9fB0ELTSCuqsvXq2crM2T7NudJnSyWh2VBjLfPPCAcYwzyGKQbl -jQWjFEJDJWFK83t9mK/v0WQgA3jGJeaz+V6CYXMS7UgpdG8dUhg9o63gYJZAW5pY -RIsNRcJCM5LHhwEMW5329UsTmYCfP7/53emepbQ0n8ijVZjgaJ+LZ8NspBLSeCiF -9UPCKX82uWiQAUTbYHCfSi3I0f3wQidXL9ZY+PXmalM7BMuQ+c2xEcl97CnhrDzx -EBwZvvOC9wGoG+8+epV4TjUZWf+7QN1ZYeg1rai7c7c8u9ILogE8su2xVoz333TH -CDvScIgnQXmk+cbKMBtg9kM0F+aLWsN2xVf0uAj3U7sdXLrfJeW0DZIktWtTBQzX -O/OE4Ka+1WFnDg0HJIih0cTjl9YYvfe53L4pCGy+qGt/XGBRqCMfXp3g+H9FGR5r -pensVVcsrv3GbTfYdlpdmp9OHH5G57GTAZueobCZg7r7RKK0zPU9EiTLJxzyXuai -v/Ksd8eIhHRjewMaQuAtQM1tO+oKAbLF0v2M7v7/aVT76X32JllYAizm3zjvAgMB -AAGjggIGMIICAjAfBgNVHSMEGDAWgBRoN+Drtjv4XxGG+/5hewiIZfROQjAdBgNV -HQ4EFgQUvCpU58PIuofv0kHJ3Ty0YDKEy3cwDgYDVR0PAQH/BAQDAgeAMBMGA1Ud -JQQMMAoGCCsGAQUFBwMDMIG1BgNVHR8Ega0wgaowU6BRoE+GTWh0dHA6Ly9jcmwz -LmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydFRydXN0ZWRHNENvZGVTaWduaW5nUlNBNDA5 -NlNIQTM4NDIwMjFDQTEuY3JsMFOgUaBPhk1odHRwOi8vY3JsNC5kaWdpY2VydC5j -b20vRGlnaUNlcnRUcnVzdGVkRzRDb2RlU2lnbmluZ1JTQTQwOTZTSEEzODQyMDIx -Q0ExLmNybDA+BgNVHSAENzA1MDMGBmeBDAEEATApMCcGCCsGAQUFBwIBFhtodHRw -Oi8vd3d3LmRpZ2ljZXJ0LmNvbS9DUFMwgZQGCCsGAQUFBwEBBIGHMIGEMCQGCCsG -AQUFBzABhhhodHRwOi8vb2NzcC5kaWdpY2VydC5jb20wXAYIKwYBBQUHMAKGUGh0 -dHA6Ly9jYWNlcnRzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydFRydXN0ZWRHNENvZGVT -aWduaW5nUlNBNDA5NlNIQTM4NDIwMjFDQTEuY3J0MAwGA1UdEwEB/wQCMAAwDQYJ -KoZIhvcNAQELBQADggIBABhpTZufRws1vrtI0xB1/UWrSEJxdPHivfpXE708dzum -Jh3TFzpsEUCQX5BJJet1l7x92sKNeAL7votA+8O8YvMD64Kim7VKA2BB8AOHKQbp -r1c2iZBwwofInviRYvsrvQta6KBy2KOe1L/l0KnpUazL9Tv4VKvuWAw/Qc0/eTQr -NZRsmADORxnZ1qW+SpF+/WbazIYjod/Oqb1U3on+PzyiGD3SjzNhsdFRptqzrIaY -UVV+2XHG4fN6A8wkyQL5NIVXGiK7rqS5VrRAv58Lf1ZZTghdAL+5SySE0OsR9t0K -W73ZB9pxbuZZ6Zfxjotjw+IilCEm3ADbc7Eb2ijI4x8mix0XWMUrhL34s7/jRyDi -P+30aSgjWp611tp/EYRW5kpIaFR8AesDdM0DSSCCRXOMwQG2Tq2+CnqItB5oLNPp -2XySwlIWvmjbzsREfIpE3yh3bxmHY+vFIc2R0nNkbWNIT6AGtaEQ7oWkgpK8YMkA -QCf4EUC4Qa7qHiH6YSmYJhjApBLC7UDwevgwxuDrwimWAj+tDkzdnENMcBp4SAy6 -LwUuDi2IU6HRSXWdh2YEkDbc3FdwknnnEWaB4dlRL85YjHyLXN0KiE7SKTj1LfR4 -dGeDqVUlDj9D5+X4a7F89wLP/um40/52HUQv5t5WcNr/47r9aVkx9DHs1b8oUnLg ------END CERTIFICATE----- +Bag Attributes + localKeyID: 01 00 00 00 +subject=C = SG, postalCode = 179098, L = Singapore, street = 111 North Bridge Road Peninsula Plaza #08-19, O = Litecoin Foundation Limited, CN = Litecoin Foundation Limited + +issuer=C = GB, ST = Greater Manchester, L = Salford, O = Sectigo Limited, CN = Sectigo RSA Code Signing CA + -----BEGIN CERTIFICATE----- -MIIGsDCCBJigAwIBAgIQCK1AsmDSnEyfXs2pvZOu2TANBgkqhkiG9w0BAQwFADBi -MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3 -d3cuZGlnaWNlcnQuY29tMSEwHwYDVQQDExhEaWdpQ2VydCBUcnVzdGVkIFJvb3Qg -RzQwHhcNMjEwNDI5MDAwMDAwWhcNMzYwNDI4MjM1OTU5WjBpMQswCQYDVQQGEwJV -UzEXMBUGA1UEChMORGlnaUNlcnQsIEluYy4xQTA/BgNVBAMTOERpZ2lDZXJ0IFRy -dXN0ZWQgRzQgQ29kZSBTaWduaW5nIFJTQTQwOTYgU0hBMzg0IDIwMjEgQ0ExMIIC -IjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA1bQvQtAorXi3XdU5WRuxiEL1 -M4zrPYGXcMW7xIUmMJ+kjmjYXPXrNCQH4UtP03hD9BfXHtr50tVnGlJPDqFX/IiZ -wZHMgQM+TXAkZLON4gh9NH1MgFcSa0OamfLFOx/y78tHWhOmTLMBICXzENOLsvsI -8IrgnQnAZaf6mIBJNYc9URnokCF4RS6hnyzhGMIazMXuk0lwQjKP+8bqHPNlaJGi -TUyCEUhSaN4QvRRXXegYE2XFf7JPhSxIpFaENdb5LpyqABXRN/4aBpTCfMjqGzLm -ysL0p6MDDnSlrzm2q2AS4+jWufcx4dyt5Big2MEjR0ezoQ9uo6ttmAaDG7dqZy3S -vUQakhCBj7A7CdfHmzJawv9qYFSLScGT7eG0XOBv6yb5jNWy+TgQ5urOkfW+0/tv -k2E0XLyTRSiDNipmKF+wc86LJiUGsoPUXPYVGUztYuBeM/Lo6OwKp7ADK5GyNnm+ -960IHnWmZcy740hQ83eRGv7bUKJGyGFYmPV8AhY8gyitOYbs1LcNU9D4R+Z1MI3s -MJN2FKZbS110YU0/EpF23r9Yy3IQKUHw1cVtJnZoEUETWJrcJisB9IlNWdt4z4FK -PkBHX8mBUHOFECMhWWCKZFTBzCEa6DgZfGYczXg4RTCZT/9jT0y7qg0IU0F8WD1H -s/q27IwyCQLMbDwMVhECAwEAAaOCAVkwggFVMBIGA1UdEwEB/wQIMAYBAf8CAQAw -HQYDVR0OBBYEFGg34Ou2O/hfEYb7/mF7CIhl9E5CMB8GA1UdIwQYMBaAFOzX44LS -cV1kTN8uZz/nupiuHA9PMA4GA1UdDwEB/wQEAwIBhjATBgNVHSUEDDAKBggrBgEF -BQcDAzB3BggrBgEFBQcBAQRrMGkwJAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmRp -Z2ljZXJ0LmNvbTBBBggrBgEFBQcwAoY1aHR0cDovL2NhY2VydHMuZGlnaWNlcnQu -Y29tL0RpZ2lDZXJ0VHJ1c3RlZFJvb3RHNC5jcnQwQwYDVR0fBDwwOjA4oDagNIYy -aHR0cDovL2NybDMuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0VHJ1c3RlZFJvb3RHNC5j -cmwwHAYDVR0gBBUwEzAHBgVngQwBAzAIBgZngQwBBAEwDQYJKoZIhvcNAQEMBQAD -ggIBADojRD2NCHbuj7w6mdNW4AIapfhINPMstuZ0ZveUcrEAyq9sMCcTEp6QRJ9L -/Z6jfCbVN7w6XUhtldU/SfQnuxaBRVD9nL22heB2fjdxyyL3WqqQz/WTauPrINHV -UHmImoqKwba9oUgYftzYgBoRGRjNYZmBVvbJ43bnxOQbX0P4PpT/djk9ntSZz0rd -KOtfJqGVWEjVGv7XJz/9kNF2ht0csGBc8w2o7uCJob054ThO2m67Np375SFTWsPK -6Wrxoj7bQ7gzyE84FJKZ9d3OVG3ZXQIUH0AzfAPilbLCIXVzUstG2MQ0HKKlS43N -b3Y3LIU/Gs4m6Ri+kAewQ3+ViCCCcPDMyu/9KTVcH4k4Vfc3iosJocsL6TEa/y4Z -XDlx4b6cpwoG1iZnt5LmTl/eeqxJzy6kdJKt2zyknIYf48FWGysj/4+16oh7cGvm -oLr9Oj9FpsToFpFSi0HASIRLlk2rREDjjfAVKM7t8RhWByovEMQMCGQ8M4+uKIw8 -y4+ICw2/O/TOHnuO77Xry7fwdxPm5yg/rBKupS8ibEH5glwVZsxsDsrFhsP2JjMM -B0ug0wcCampAMEhLNKhRILutG4UI4lkNbcoFUCvqShyepf2gpx8GdOfy1lKQ/a+F -SCH5Vzu0nAPthkX0tGFuv2jiJmCG6sivqf6UHedjGzqGVnhO ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIFkDCCA3igAwIBAgIQBZsbV56OITLiOQe9p3d1XDANBgkqhkiG9w0BAQwFADBi -MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3 -d3cuZGlnaWNlcnQuY29tMSEwHwYDVQQDExhEaWdpQ2VydCBUcnVzdGVkIFJvb3Qg -RzQwHhcNMTMwODAxMTIwMDAwWhcNMzgwMTE1MTIwMDAwWjBiMQswCQYDVQQGEwJV -UzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQu -Y29tMSEwHwYDVQQDExhEaWdpQ2VydCBUcnVzdGVkIFJvb3QgRzQwggIiMA0GCSqG -SIb3DQEBAQUAA4ICDwAwggIKAoICAQC/5pBzaN675F1KPDAiMGkz7MKnJS7JIT3y -ithZwuEppz1Yq3aaza57G4QNxDAf8xukOBbrVsaXbR2rsnnyyhHS5F/WBTxSD1If -xp4VpX6+n6lXFllVcq9ok3DCsrp1mWpzMpTREEQQLt+C8weE5nQ7bXHiLQwb7iDV -ySAdYyktzuxeTsiT+CFhmzTrBcZe7FsavOvJz82sNEBfsXpm7nfISKhmV1efVFiO -DCu3T6cw2Vbuyntd463JT17lNecxy9qTXtyOj4DatpGYQJB5w3jHtrHEtWoYOAMQ -jdjUN6QuBX2I9YI+EJFwq1WCQTLX2wRzKm6RAXwhTNS8rhsDdV14Ztk6MUSaM0C/ -CNdaSaTC5qmgZ92kJ7yhTzm1EVgX9yRcRo9k98FpiHaYdj1ZXUJ2h4mXaXpI8OCi -EhtmmnTK3kse5w5jrubU75KSOp493ADkRSWJtppEGSt+wJS00mFt6zPZxd9LBADM -fRyVw4/3IbKyEbe7f/LVjHAsQWCqsWMYRJUadmJ+9oCw++hkpjPRiQfhvbfmQ6QY -uKZ3AeEPlAwhHbJUKSWJbOUOUlFHdL4mrLZBdd56rF+NP8m800ERElvlEFDrMcXK -chYiCd98THU/Y+whX8QgUWtvsauGi0/C1kVfnSD8oR7FwI+isX4KJpn15GkvmB0t -9dmpsh3lGwIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIB -hjAdBgNVHQ4EFgQU7NfjgtJxXWRM3y5nP+e6mK4cD08wDQYJKoZIhvcNAQEMBQAD -ggIBALth2X2pbL4XxJEbw6GiAI3jZGgPVs93rnD5/ZpKmbnJeFwMDF/k5hQpVgs2 -SV1EY+CtnJYYZhsjDT156W1r1lT40jzBQ0CuHVD1UvyQO7uYmWlrx8GnqGikJ9yd -+SeuMIW59mdNOj6PWTkiU0TryF0Dyu1Qen1iIQqAyHNm0aAFYF/opbSnr6j3bTWc -fFqK1qI4mfN4i/RN0iAL3gTujJtHgXINwBQy7zBZLq7gcfJW5GqXb5JQbZaNaHqa -sjYUegbyJLkJEVDXCLG4iXqEI2FCKeWjzaIgQdfRnGTZ6iahixTXTBmyUEFxPT9N -cCOGDErcgdLMMpSEDQgJlxxPwO5rIHQw0uA5NBCFIRUBCOhVMt5xSdkoF1BN5r5N -0XWs0Mr7QbhDparTwwVETyw2m+L64kW4I1NsBm9nVX9GtUw/bihaeSbSpKhil9Ie -4u1Ki7wb/UdKDd9nZn6yW0HQO+T0O/QEY+nvwlQAUaCKKsnOeMzV6ocEGLPOr0mI -r/OSmbaz5mEP0oUA51Aa5BuVnRmhuZyxm7EAHu/QD09CbMkKvO5D+jpxpchNJqU1 -/YldvIViHTLSoCtU7ZpXwdv6EM8Zt4tKG48BtieVU+i2iW1bvGjUI+iLUaJW+fCm -gKDWHrO8Dw9TdSmq6hN35N6MgSGtBxBHEa2HPQfRdbzP82Z+ +MIIGTzCCBTegAwIBAgIRAIlhNAlbwcXgVwHXoiv/WEMwDQYJKoZIhvcNAQELBQAw +fDELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4G +A1UEBxMHU2FsZm9yZDEYMBYGA1UEChMPU2VjdGlnbyBMaW1pdGVkMSQwIgYDVQQD +ExtTZWN0aWdvIFJTQSBDb2RlIFNpZ25pbmcgQ0EwHhcNMjEwMjE1MDAwMDAwWhcN +MjQwMjE1MjM1OTU5WjCBtTELMAkGA1UEBhMCU0cxDzANBgNVBBEMBjE3OTA5ODES +MBAGA1UEBwwJU2luZ2Fwb3JlMTUwMwYDVQQJDCwxMTEgTm9ydGggQnJpZGdlIFJv +YWQgUGVuaW5zdWxhIFBsYXphICMwOC0xOTEkMCIGA1UECgwbTGl0ZWNvaW4gRm91 +bmRhdGlvbiBMaW1pdGVkMSQwIgYDVQQDDBtMaXRlY29pbiBGb3VuZGF0aW9uIExp +bWl0ZWQwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCrVPOgx0wD3Pp1 +Z5xqhpYQYy0w7igidlFn/LEJtZYR5lp2fLpxxc6f4UAcNohULvMiEkMQIETnV6by +T6r+YN+/qAMqQGW7R+9AwZ5k2kFsM1gnYagyP53+eZVXRmrgv9nrags2/36uRDwc +MzsW1Fg39sw/dsbpew9kBJkxuSRCfDS+6Y2oyiulVpQuZ0GK9LtXysarRbwzl2vl +I1Obp/D4iA5wo+ny6cmzxFcLHwqAm3Gi35wwADPEVAgsEObjgzsbLWuwN/3z5VqJ +5hi5iQ0qnDK3hddLsIGdwkrMnVSm5ccdw1ZKUcm2BgrWMSLCa5inzlV+PwRd0dAP +WCQ9pA4inZ4Cf6iZtkneRqOM+P/HkI0l5QvBp6sqrteLrEsZxbNZGIDdpjhAJ2QQ +6CMySjt8VWxoMXDnrrOd8UKSNq9cx394Au7lWI8L18L9Sg28v8qdklvD+ufkUQlf ++HnpcgcG3bCkKrjurbNT23+xANlXk6w7tjjju7xQOtBnuyBRuNh5ZZL8Et/DHRB7 +wT5yt3vFzdnK7JiNWTfj0AjstxHAGjD3n7ABM1AGE0BJoSahqq0pMv9W1Oh+L19M +P2rxjHbc07LSly6uzIEehcNRiKNEq9ffggueclc0UQ4rhWNet4QPBT6mtUaDosMn +WE/Vd+nLz3TDI+au7vNmaCySckAMjQIDAQABo4IBkDCCAYwwHwYDVR0jBBgwFoAU +DuE6qFM6MdWKvsG7rWcaA4WtNA4wHQYDVR0OBBYEFDq5MytoU983xcFtYTmvpAq8 +Pf77MA4GA1UdDwEB/wQEAwIHgDAMBgNVHRMBAf8EAjAAMBMGA1UdJQQMMAoGCCsG +AQUFBwMDMBEGCWCGSAGG+EIBAQQEAwIEEDBKBgNVHSAEQzBBMDUGDCsGAQQBsjEB +AgEDAjAlMCMGCCsGAQUFBwIBFhdodHRwczovL3NlY3RpZ28uY29tL0NQUzAIBgZn +gQwBBAEwQwYDVR0fBDwwOjA4oDagNIYyaHR0cDovL2NybC5zZWN0aWdvLmNvbS9T +ZWN0aWdvUlNBQ29kZVNpZ25pbmdDQS5jcmwwcwYIKwYBBQUHAQEEZzBlMD4GCCsG +AQUFBzAChjJodHRwOi8vY3J0LnNlY3RpZ28uY29tL1NlY3RpZ29SU0FDb2RlU2ln +bmluZ0NBLmNydDAjBggrBgEFBQcwAYYXaHR0cDovL29jc3Auc2VjdGlnby5jb20w +DQYJKoZIhvcNAQELBQADggEBAGXFCIipnE37NM4l4MDRFoaMAi4cJiqMnTN0bIxO +b8uf1EX5pI5Y1ch1Rdg4m3l05JDR/dVuTpeGktal4JZGh/N9UOrxNi6rF8VLmy/g +VCRzCj+UQHmBPBkZSZalYfWPDlOvjWGn5XccqlIo/EpcjGqPEkFx3qqOyuC+jkkX +aE49Tt6kv7IMrcp9b7nC2/eP8JmCQqH6Z1sSxZtSqGEZjdiJvU/NfzZ90qx0t3xf +xbL69R9cdrUZHscm32RE6VJhRuhF1u+Wo5dn3lPSPRtwgl30lKhuCm+1pajdyT4l +im0TGh85wn5vIMl6sEAKgLgO2D0YhYWdEjpgiW4nHMfT3+Y= -----END CERTIFICATE----- diff --git a/contrib/zmq/zmq_sub.py b/contrib/zmq/zmq_sub.py index d8087a4db387c..7848ee7a214ba 100755 --- a/contrib/zmq/zmq_sub.py +++ b/contrib/zmq/zmq_sub.py @@ -6,8 +6,8 @@ """ ZMQ example using python3's asyncio - Bitcoin should be started with the command line arguments: - bitcoind -testnet -daemon \ + Litecoind should be started with the command line arguments: + litecoind -testnet -daemon \ -zmqpubrawtx=tcp://127.0.0.1:28332 \ -zmqpubrawblock=tcp://127.0.0.1:28332 \ -zmqpubhashtx=tcp://127.0.0.1:28332 \ diff --git a/depends/README.md b/depends/README.md index 66e1ddc4eb951..0d70c0edb9cf7 100644 --- a/depends/README.md +++ b/depends/README.md @@ -12,7 +12,7 @@ For example: make HOST=x86_64-w64-mingw32 -j4 -**Bitcoin Core's `configure` script by default will ignore the depends output.** In +**Litecoin Core's `configure` script by default will ignore the depends output.** In order for it to pick up libraries, tools, and settings from the depends build, you must set the `CONFIG_SITE` environment variable to point to a `config.site` settings file. In the above example, a file named `depends/x86_64-w64-mingw32/share/config.site` will be @@ -122,7 +122,7 @@ The following can be set when running make: `make FOO=bar` - `LTO`: Use LTO when building packages. If some packages are not built, for example `make NO_WALLET=1`, the appropriate -options will be passed to bitcoin's configure. In this case, `--disable-wallet`. +options will be passed to litecoin's configure. In this case, `--disable-wallet`. ### Additional targets diff --git a/depends/description.md b/depends/description.md index 0a6f2e6442190..62281f84370eb 100644 --- a/depends/description.md +++ b/depends/description.md @@ -1,4 +1,4 @@ -This is a system of building and caching dependencies necessary for building Bitcoin. +This is a system of building and caching dependencies necessary for building Litecoin. There are several features that make it different from most similar systems: ### It is designed to be builder and host agnostic diff --git a/doc/JSON-RPC-interface.md b/doc/JSON-RPC-interface.md index 12807bfb8650e..e4ab917aed57c 100644 --- a/doc/JSON-RPC-interface.md +++ b/doc/JSON-RPC-interface.md @@ -1,7 +1,7 @@ # JSON-RPC Interface -The headless daemon `bitcoind` has the JSON-RPC API enabled by default, the GUI -`bitcoin-qt` has it disabled by default. This can be changed with the `-server` +The headless daemon `litecoind` has the JSON-RPC API enabled by default, the GUI +`litecoin-qt` has it disabled by default. This can be changed with the `-server` option. In the GUI it is possible to execute RPC methods in the Debug Console Dialog. @@ -62,7 +62,7 @@ RPC interface will be abused. withstand arbitrary Internet traffic, so changing the above settings to expose it to the Internet (even using something like a Tor onion service) could expose you to unconsidered vulnerabilities. See - `bitcoind -help` for more information about these settings and other + `litecoind -help` for more information about these settings and other settings described in this document. Related, if you use Bitcoin Core inside a Docker container, you may diff --git a/doc/README.md b/doc/README.md index c570432aa4d79..a3844f5c26be0 100644 --- a/doc/README.md +++ b/doc/README.md @@ -15,12 +15,12 @@ The following are some helpful notes on how to run Bitcoin Core on your native p Unpack the files into a directory and run: -- `bin/bitcoin-qt` (GUI) or -- `bin/bitcoind` (headless) +- `bin/litecoin-qt` (GUI) or +- `bin/litecoind` (headless) ### Windows -Unpack the files into a directory, and then run bitcoin-qt.exe. +Unpack the files into a directory, and then run litecoin-qt.exe. ### macOS @@ -71,7 +71,7 @@ The Bitcoin repo's [root README](/README.md) contains relevant information on th ### Miscellaneous - [Assets Attribution](assets-attribution.md) -- [bitcoin.conf Configuration File](bitcoin-conf.md) +- [litecoin.conf Configuration File](bitcoin-conf.md) - [CJDNS Support](cjdns.md) - [Files](files.md) - [Fuzz-testing](fuzzing.md) diff --git a/doc/README_windows.txt b/doc/README_windows.txt index 07d61b3bda13a..aeff004d826f7 100644 --- a/doc/README_windows.txt +++ b/doc/README_windows.txt @@ -11,7 +11,7 @@ with each other, with the help of a P2P network to check for double-spending. Setup ----- -Unpack the files into a directory and run bitcoin-qt.exe. +Unpack the files into a directory and run litecoin-qt.exe. Bitcoin Core is the original Bitcoin client and it builds the backbone of the network. However, it downloads and stores the entire history of Bitcoin transactions; diff --git a/doc/REST-interface.md b/doc/REST-interface.md index 4b46f29153105..a6d8db495606d 100644 --- a/doc/REST-interface.md +++ b/doc/REST-interface.md @@ -3,8 +3,7 @@ Unauthenticated REST Interface The REST API can be enabled with the `-rest` option. -The interface runs on the same port as the JSON-RPC interface, by default port 8332 for mainnet, port 18332 for testnet, -port 38332 for signet, and port 18443 for regtest. +The interface runs on the same port as the JSON-RPC interface, by default port 8332 for mainnet, port 18332 for testnet, and port 18443 for regtest. REST Interface consistency guarantees ------------------------------------- @@ -129,4 +128,4 @@ Refer to the `getrawmempool` RPC help for details. Risks ------------- -Running a web browser on the same node with a REST enabled bitcoind can be a risk. Accessing prepared XSS websites could read out tx/block data of your node by placing links like `