diff --git a/.github/ISSUE_TEMPLATE/bug.yml b/.github/ISSUE_TEMPLATE/bug.yml index 83922b54cb..b2775ef650 100644 --- a/.github/ISSUE_TEMPLATE/bug.yml +++ b/.github/ISSUE_TEMPLATE/bug.yml @@ -5,11 +5,12 @@ body: - type: markdown attributes: value: | - ## This issue tracker is only for technical issues related to Bitcoin Core. + ## This issue tracker is only for technical issues related to Bitcoin Knots. * General bitcoin questions and/or support requests should use Bitcoin StackExchange at https://bitcoin.stackexchange.com. - * For reporting security issues, please read instructions at https://bitcoincore.org/en/contact/. + * For reporting security issues, please read instructions at https://bitcoinknots.org/contact/ * If the node is "stuck" during sync or giving "block checksum mismatch" errors, please ensure your hardware is stable by running `memtest` and observe CPU temperature with a load-test tool such as `linpack` before creating an issue. + * If your issue also affects Bitcoin Core, report it at https://github.com/bitcoin/bitcoin/issues/new?labels=bug&template=bug.yml ---- - type: checkboxes @@ -57,7 +58,7 @@ body: required: false - type: dropdown attributes: - label: How did you obtain Bitcoin Core + label: How did you obtain Bitcoin Knots multiple: false options: - Compiled from source @@ -67,10 +68,10 @@ body: validations: required: true - type: input - id: core-version + id: knots-version attributes: - label: What version of Bitcoin Core are you using? - description: Run `bitcoind --version` or in Bitcoin-QT use `Help > About Bitcoin Core` + label: What version of Bitcoin Knots are you using? + description: Run `bitcoind --version` or in Bitcoin-QT use `Help > About Bitcoin Knots` placeholder: e.g. v24.0.1 or master@e1bf547 validations: required: true diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml index 40370284a6..b792e69055 100644 --- a/.github/ISSUE_TEMPLATE/config.yml +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -1,8 +1,8 @@ blank_issues_enabled: true contact_links: - - name: Bitcoin Core Security Policy - url: https://github.com/bitcoin/bitcoin/blob/master/SECURITY.md + - name: Bitcoin Knots Security Policy + url: https://bitcoinknots.org/contact/ about: View security policy - - name: Bitcoin Core Developers - url: https://bitcoincore.org - about: Bitcoin Core homepage + - name: Bitcoin Knots Website + url: https://bitcoinknots.org + about: User-oriented information diff --git a/.github/ISSUE_TEMPLATE/good_first_issue.yml b/.github/ISSUE_TEMPLATE/good_first_issue.yml deleted file mode 100644 index 133937c011..0000000000 --- a/.github/ISSUE_TEMPLATE/good_first_issue.yml +++ /dev/null @@ -1,44 +0,0 @@ -name: Good First Issue -description: (Regular devs only) Suggest a new good first issue -labels: [good first issue] -body: - - type: markdown - attributes: - value: | - Please add the label "good first issue" manually before or after opening - - A good first issue is an uncontroversial issue, that has a relatively unique and obvious solution - - Motivate the issue and explain the solution briefly - - type: textarea - id: motivation - attributes: - label: Motivation - description: Motivate the issue - validations: - required: true - - type: textarea - id: solution - attributes: - label: Possible solution - description: Describe a possible solution - validations: - required: false - - type: textarea - id: useful-skills - attributes: - label: Useful Skills - description: For example, “`std::thread`”, “Qt5 GUI and async GUI design” or “basic understanding of Bitcoin mining and the Bitcoin Core RPC interface”. - value: | - * Compiling Bitcoin Core from source - * Running the C++ unit tests and the Python functional tests - * ... - - type: textarea - attributes: - label: Guidance for new contributors - description: Please leave this to automatically add the footer for new contributors - value: | - Want to work on this issue? - - For guidance on contributing, please read [CONTRIBUTING.md](https://github.com/bitcoin/bitcoin/blob/master/CONTRIBUTING.md) before opening your pull request. - diff --git a/.github/ISSUE_TEMPLATE/gui_issue.yml b/.github/ISSUE_TEMPLATE/gui_issue.yml deleted file mode 100644 index 4fe578e9b5..0000000000 --- a/.github/ISSUE_TEMPLATE/gui_issue.yml +++ /dev/null @@ -1,18 +0,0 @@ -name: Issue or feature request related to the GUI -description: Any report, issue or feature request related to the GUI -labels: [GUI] -body: -- type: checkboxes - id: acknowledgement - attributes: - label: Issues, reports or feature requests related to the GUI should be opened directly on the GUI repo - description: https://github.com/bitcoin-core/gui/issues/ - options: - - label: I still think this issue should be opened here - required: true -- type: textarea - id: gui-request - attributes: - label: Report - validations: - required: true diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index ae92fc78f2..f42fc7e5cd 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -1,17 +1,17 @@ - - diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index f594172333..4aec78c32e 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,12 +1,12 @@ -Contributing to Bitcoin Core -============================ +Contributing to Bitcoin Knots +============================= -The Bitcoin Core project operates an open contributor model where anyone is +The Bitcoin Knots project operates an open contributor model where anyone is welcome to contribute towards development in the form of peer review, testing and patches. This document explains the practical process and guidelines for contributing. -First, in terms of structure, there is no particular concept of "Bitcoin Core +First, in terms of structure, there is no particular concept of "core developers" in the sense of privileged people. Open source often naturally revolves around a meritocracy where contributors earn trust from the developer community over time. Nevertheless, some hierarchy is necessary for practical @@ -55,7 +55,7 @@ and is also an effective way to request assistance if and when you need it. Communication Channels ---------------------- -Most communication about Bitcoin Core development happens on IRC, in the +Most communication about Bitcoin development happens on IRC, in the `#bitcoin-core-dev` channel on Libera Chat. The easiest way to participate on IRC is with the web client, [web.libera.chat](https://web.libera.chat/#bitcoin-core-dev). Chat history logs can be found @@ -290,12 +290,12 @@ workload on reviewing. "Decision Making" Process ------------------------- -The following applies to code changes to the Bitcoin Core project (and related +The following applies to code changes to the Bitcoin Knots project (and related projects such as libsecp256k1), and is not to be confused with overall Bitcoin Network Protocol consensus changes. -Whether a pull request is merged into Bitcoin Core rests with the project merge -maintainers. +Whether a pull request is merged into Bitcoin Knots rests with the project merge +maintainers and ultimately the project lead. Maintainers will take into consideration if a patch is in line with the general principles of the project; meets the minimum standards for inclusion; and will diff --git a/README.md b/README.md index 2eab2315eb..cf1fb8a2c4 100644 --- a/README.md +++ b/README.md @@ -1,40 +1,41 @@ -Bitcoin Core integration/staging tree -===================================== +Bitcoin Knots +============= -https://bitcoincore.org +https://bitcoinknots.org -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 Bitcoin Knots software, see +the website. -What is Bitcoin Core? ---------------------- +What is Bitcoin Knots? +---------------------- -Bitcoin Core connects to the Bitcoin peer-to-peer network to download and fully +Bitcoin Knots connects to the Bitcoin 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 Bitcoin Knots is available in the [doc folder](/doc). License ------- -Bitcoin Core is released under the terms of the MIT license. See [COPYING](COPYING) for more +Bitcoin Knots 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 -regularly from release branches to indicate new official, stable release versions of Bitcoin Core. +Development generally takes place as part of [Bitcoin Core](https://github.com/bitcoin/bitcoin), and is merged into +Knots for each release. -The https://github.com/bitcoin-core/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. +Even if your pull request to Core is closed, or if your feature is not +suitable for Core (eg, because it builds on a feature not supported in Core; +relies on centralised services; etc), it may still be eligible for inclusion +in Bitcoin Knots. In this case, a pull request may be opened on the +[Knots GitHub](https://github.com/bitcoinknots/bitcoin) for review and consideration. +When accepted, you are expected to maintain the submitted branch in your own +repository, and it will be automatically merged into new releases of Knots. -The contribution workflow is described in [CONTRIBUTING.md](CONTRIBUTING.md) -and useful hints for developers can be found in [doc/developer-notes.md](doc/developer-notes.md). +Developer IRC can be found on Freenode at #bitcoin-dev. Testing ------- diff --git a/SECURITY.md b/SECURITY.md index fd4c61d176..769168593b 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -2,19 +2,17 @@ ## Supported Versions -See our website for versions of Bitcoin Core that are currently supported with -security updates: https://bitcoincore.org/en/lifecycle/#schedule +See our website for versions of Bitcoin Knots that are currently supported with +security updates: https://bitcoinknots.org/ ## Reporting a Vulnerability -To report security issues send an email to security@bitcoincore.org (not for support). +To report security issues send an email to luke+security+knots@dashjr.org (not for support). -The following keys may be used to communicate sensitive information to developers: +The following OpenPGP key should be used to communicate sensitive information: | Name | Fingerprint | |------|-------------| -| Pieter Wuille | 133E AC17 9436 F14A 5CF1 B794 860F EB80 4E66 9320 | -| Michael Ford | E777 299F C265 DD04 7930 70EB 944D 35F9 AC3D B76A | -| Ava Chow | 1528 1230 0785 C964 44D3 334D 1756 5732 E08E 5E41 | +| Luke Dashjr | FAC0 98FE 8DF9 975F 9024 1881 3666 E2B1 782A 18E1 | You can import a key by running the following command with that individual’s fingerprint: `gpg --keyserver hkps://keys.openpgp.org --recv-keys ""` Ensure that you put quotes around fingerprints containing spaces. diff --git a/build_msvc/README.md b/build_msvc/README.md index f97c7ca59c..c643dd94e0 100644 --- a/build_msvc/README.md +++ b/build_msvc/README.md @@ -11,7 +11,7 @@ To build Bitcoin Core from the command-line, it is sufficient to only install th The "Desktop development with C++" workload must be installed as well. -Building with Visual Studio is an alternative to the Linux based [cross-compiler build](../doc/build-windows.md). +Building Knots with Visual Studio is NOT supported, and it is recommended to instead use the Linux based [cross-compiler build](../doc/build-windows.md). Prerequisites diff --git a/configure.ac b/configure.ac index fdfb9c75b6..2c66063975 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, 2025) 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,[[Bitcoin Knots]]) +AC_INIT([Bitcoin Knots],m4_join([.], _CLIENT_VERSION_MAJOR, _CLIENT_VERSION_MINOR, _CLIENT_VERSION_BUILD)m4_if(_CLIENT_VERSION_RC, [0], [], [rc]_CLIENT_VERSION_RC),[https://github.com/bitcoinknots/bitcoin/issues],[bitcoin],[https://bitcoinknots.org/]) AC_CONFIG_SRCDIR([src/validation.cpp]) AC_CONFIG_HEADERS([src/config/bitcoin-config.h]) AC_CONFIG_AUX_DIR([build-aux]) diff --git a/contrib/init/bitcoind.conf b/contrib/init/bitcoind.conf index dde1bd0c4d..ccd036c4e5 100644 --- a/contrib/init/bitcoind.conf +++ b/contrib/init/bitcoind.conf @@ -1,4 +1,4 @@ -description "Bitcoin Core Daemon" +description "Bitcoin Knots Daemon" start on runlevel [2345] stop on starting rc RUNLEVEL=[016] diff --git a/contrib/init/bitcoind.init b/contrib/init/bitcoind.init index 19e1f76d09..367b6cd741 100644 --- a/contrib/init/bitcoind.init +++ b/contrib/init/bitcoind.init @@ -1,6 +1,6 @@ #!/usr/bin/env bash # -# bitcoind The bitcoin core server. +# bitcoind The Bitcoin Knots server. # # # chkconfig: 345 80 20 diff --git a/contrib/init/bitcoind.openrc b/contrib/init/bitcoind.openrc index 013a1a6070..4133903be1 100644 --- a/contrib/init/bitcoind.openrc +++ b/contrib/init/bitcoind.openrc @@ -18,7 +18,7 @@ BITCOIND_BIN=${BITCOIND_BIN:-/usr/bin/bitcoind} BITCOIND_NICE=${BITCOIND_NICE:-${NICELEVEL:-0}} BITCOIND_OPTS="${BITCOIND_OPTS:-${BITCOIN_OPTS}}" -name="Bitcoin Core Daemon" +name="Bitcoin Knots Daemon" description="Bitcoin cryptocurrency P2P network daemon" command="/usr/bin/bitcoind" diff --git a/doc/Doxyfile.in b/doc/Doxyfile.in index d8fd46d1c7..42a851b9f1 100644 --- a/doc/Doxyfile.in +++ b/doc/Doxyfile.in @@ -32,7 +32,7 @@ DOXYFILE_ENCODING = UTF-8 # title of most generated pages and in a few other places. # The default value is: My Project. -PROJECT_NAME = "Bitcoin Core" +PROJECT_NAME = "Bitcoin Knots" # The PROJECT_NUMBER tag can be used to enter a project or revision number. This # could be handy for archiving the generated documentation or if some version diff --git a/doc/README.md b/doc/README.md index 03f330a276..1f6795686c 100644 --- a/doc/README.md +++ b/doc/README.md @@ -1,15 +1,15 @@ -Bitcoin Core +Bitcoin Knots ============= Setup --------------------- -Bitcoin Core is the original Bitcoin client and it builds the backbone of the network. It downloads and, by default, stores the entire history of Bitcoin transactions, which requires a few hundred gigabytes of disk space. Depending on the speed of your computer and network connection, the synchronization process can take anywhere from a few hours to a day or more. +Bitcoin Knots is the original Bitcoin client and it builds the backbone of the network. It downloads and, by default, stores the entire history of Bitcoin transactions, which requires a few hundred gigabytes of disk space. Depending on the speed of your computer and network connection, the synchronization process can take anywhere from a few hours to a day or more. -To download Bitcoin Core, visit [bitcoincore.org](https://bitcoincore.org/en/download/). +To download Bitcoin Knots, visit [bitcoinknots.org](https://bitcoinknots.org/). Running --------------------- -The following are some helpful notes on how to run Bitcoin Core on your native platform. +The following are some helpful notes on how to run Bitcoin Knots on your native platform. ### Unix @@ -24,7 +24,7 @@ Unpack the files into a directory, and then run bitcoin-qt.exe. ### macOS -Drag Bitcoin Core to your applications folder, and then run Bitcoin Core. +Drag Bitcoin Knots to your applications folder, and then run Bitcoin Knots. ### Need Help? @@ -36,7 +36,7 @@ for help and more information. Building --------------------- -The following are developer notes on how to build Bitcoin Core on your native platform. They are not complete guides, but include notes on the necessary libraries, compile flags, etc. +The following are developer notes on how to build Bitcoin Knots on your native platform. They are not complete guides, but include notes on the necessary libraries, compile flags, etc. - [Dependencies](dependencies.md) - [macOS Build Notes](build-osx.md) diff --git a/doc/README_windows.txt b/doc/README_windows.txt index 07d61b3bda..2a8062ed62 100644 --- a/doc/README_windows.txt +++ b/doc/README_windows.txt @@ -1,4 +1,4 @@ -Bitcoin Core +Bitcoin Knots ============= Intro @@ -13,7 +13,7 @@ Setup ----- Unpack the files into a directory and run bitcoin-qt.exe. -Bitcoin Core is the original Bitcoin client and it builds the backbone of the network. +Bitcoin Knots is the original Bitcoin client and it builds the backbone of the network. However, it downloads and stores the entire history of Bitcoin transactions; depending on the speed of your computer and network connection, the synchronization process can take anywhere from a few hours to a day or more. diff --git a/src/clientversion.cpp b/src/clientversion.cpp index 1628cc3ac6..989107dac6 100644 --- a/src/clientversion.cpp +++ b/src/clientversion.cpp @@ -64,11 +64,15 @@ std::string FormatFullVersion() /** * Format the subversion field according to BIP 14 spec (https://github.com/bitcoin/bips/blob/master/bip-0014.mediawiki) */ -std::string FormatSubVersion(const std::string& name, int nClientVersion, const std::vector& comments) +std::string FormatSubVersion(const std::string& name, int nClientVersion, const std::vector& comments, const bool base_name_only) { std::string comments_str; if (!comments.empty()) comments_str = strprintf("(%s)", Join(comments, "; ")); - return strprintf("/%s:%s%s/", name, FormatVersion(nClientVersion), comments_str); + std::string ua = strprintf("/%s:%s%s/", name, FormatVersion(nClientVersion), comments_str); + if (!base_name_only) { + ua += "Knots:20250205/"; + } + return ua; } std::string CopyrightHolders(const std::string& strPrefix) @@ -85,7 +89,7 @@ std::string CopyrightHolders(const std::string& strPrefix) std::string LicenseInfo() { - const std::string URL_SOURCE_CODE = ""; + const std::string URL_SOURCE_CODE = ""; return CopyrightHolders(strprintf(_("Copyright (C) %i-%i").translated, 2009, COPYRIGHT_YEAR) + " ") + "\n" + "\n" + diff --git a/src/clientversion.h b/src/clientversion.h index 29c1ff0db3..0d3fd033a3 100644 --- a/src/clientversion.h +++ b/src/clientversion.h @@ -38,7 +38,7 @@ extern const std::string CLIENT_NAME; std::string FormatFullVersion(); -std::string FormatSubVersion(const std::string& name, int nClientVersion, const std::vector& comments); +std::string FormatSubVersion(const std::string& name, int nClientVersion, const std::vector& comments, bool base_name_only = false); std::string CopyrightHolders(const std::string& strPrefix); diff --git a/src/qt/res/src/bitcoin.svg b/src/qt/res/src/bitcoin.svg index d8da87394d..d08d2e6625 100644 --- a/src/qt/res/src/bitcoin.svg +++ b/src/qt/res/src/bitcoin.svg @@ -1,7 +1,7 @@ - @@ -10,6 +10,12 @@ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="1in" height="1in" viewBox="-34 -34 580 580" enable-background="new 0 0 1024 1024" xml:space="preserve"> + + + + + + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/qt/res/src/nsis-header.svg b/src/qt/res/src/nsis-header.svg index b534b4b49d..354c51f8ff 100644 --- a/src/qt/res/src/nsis-header.svg +++ b/src/qt/res/src/nsis-header.svg @@ -1,6 +1,6 @@ - @@ -13,27 +13,347 @@ - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + PACKAGE_NAME diff --git a/src/test/util_tests.cpp b/src/test/util_tests.cpp index 7369c77f7b..62f350fcd6 100644 --- a/src/test/util_tests.cpp +++ b/src/test/util_tests.cpp @@ -1086,9 +1086,9 @@ BOOST_AUTO_TEST_CASE(test_FormatSubVersion) std::vector comments2; comments2.emplace_back("comment1"); comments2.push_back(SanitizeString(std::string("Comment2; .,_?@-; !\"#$%&'()*+/<=>[]\\^`{|}~"), SAFE_CHARS_UA_COMMENT)); // Semicolon is discouraged but not forbidden by BIP-0014 - BOOST_CHECK_EQUAL(FormatSubVersion("Test", 99900, std::vector()),std::string("/Test:9.99.0/")); - BOOST_CHECK_EQUAL(FormatSubVersion("Test", 99900, comments),std::string("/Test:9.99.0(comment1)/")); - BOOST_CHECK_EQUAL(FormatSubVersion("Test", 99900, comments2),std::string("/Test:9.99.0(comment1; Comment2; .,_?@-; )/")); + BOOST_CHECK_EQUAL(FormatSubVersion("Test", 99900, std::vector(), true),std::string("/Test:9.99.0/")); + BOOST_CHECK_EQUAL(FormatSubVersion("Test", 99900, comments, true),std::string("/Test:9.99.0(comment1)/")); + BOOST_CHECK_EQUAL(FormatSubVersion("Test", 99900, comments2, true),std::string("/Test:9.99.0(comment1; Comment2; .,_?@-; )/")); } BOOST_AUTO_TEST_CASE(test_ParseFixedPoint) diff --git a/test/functional/feature_includeconf.py b/test/functional/feature_includeconf.py index ee484e7ec5..4a9c9ccebe 100755 --- a/test/functional/feature_includeconf.py +++ b/test/functional/feature_includeconf.py @@ -36,7 +36,7 @@ class IncludeConfTest(BitcoinTestFramework): self.log.info("-includeconf works from config file. subversion should end with 'main; relative)/'") subversion = self.nodes[0].getnetworkinfo()["subversion"] - assert subversion.endswith("main; relative)/") + assert "main; relative)" in subversion self.log.info("-includeconf cannot be used as command-line arg") self.stop_node(0) @@ -55,7 +55,7 @@ class IncludeConfTest(BitcoinTestFramework): self.start_node(0) subversion = self.nodes[0].getnetworkinfo()["subversion"] - assert subversion.endswith("main; relative)/") + assert "main; relative)" in subversion self.stop_node(0, expected_stderr="warning: -includeconf cannot be used from included files; ignoring -includeconf=relative2.conf") self.log.info("-includeconf cannot contain invalid arg") @@ -80,7 +80,7 @@ class IncludeConfTest(BitcoinTestFramework): self.start_node(0) subversion = self.nodes[0].getnetworkinfo()["subversion"] - assert subversion.endswith("main; relative; relative2)/") + assert "main; relative; relative2)" in subversion if __name__ == '__main__': IncludeConfTest(__file__).main() diff --git a/test/functional/feature_uacomment.py b/test/functional/feature_uacomment.py index b4bcb787b5..7efad19f43 100755 --- a/test/functional/feature_uacomment.py +++ b/test/functional/feature_uacomment.py @@ -18,12 +18,12 @@ class UacommentTest(BitcoinTestFramework): def run_test(self): self.log.info("test multiple -uacomment") - test_uacomment = self.nodes[0].getnetworkinfo()["subversion"][-12:-1] - assert_equal(test_uacomment, "(testnode0)") + test_uacomment = self.nodes[0].getnetworkinfo()["subversion"] + assert "(testnode0)" in test_uacomment self.restart_node(0, ["-uacomment=foo"]) - foo_uacomment = self.nodes[0].getnetworkinfo()["subversion"][-17:-1] - assert_equal(foo_uacomment, "(testnode0; foo)") + foo_uacomment = self.nodes[0].getnetworkinfo()["subversion"] + assert "(testnode0; foo)" in foo_uacomment self.log.info("test -uacomment max length") self.stop_node(0)