diff --git a/.cirrus.yml b/.cirrus.yml index 3c59e41a134c7..3d202279eee3f 100644 --- a/.cirrus.yml +++ b/.cirrus.yml @@ -18,7 +18,7 @@ env: # Global defaults # - apt-get is required due to PACKAGE_MANAGER_INSTALL # - podman-docker-4.1+ is required due to the use of `podman` when # RESTART_CI_DOCKER_BEFORE_RUN is set and 4.1+ due to the bugfix in 4.1 -# (https://github.com/bitcoin/bitcoin/pull/21652#issuecomment-1657098200) +# (https://github.com/vincoin/vincoin/pull/21652#issuecomment-1657098200) # - The ./ci/ depedencies (with cirrus-cli) should be installed: # # ``` @@ -48,7 +48,7 @@ env: # Global defaults # https://cirrus-ci.org/guide/tips-and-tricks/#sharing-configuration-between-tasks filter_template: &FILTER_TEMPLATE - skip: $CIRRUS_REPO_FULL_NAME == "bitcoin-core/gui" && $CIRRUS_PR == "" # No need to run on the read-only mirror, unless it is a PR. https://cirrus-ci.org/guide/writing-tasks/#conditional-task-execution + skip: $CIRRUS_REPO_FULL_NAME == "vincoin-core/gui" && $CIRRUS_PR == "" # No need to run on the read-only mirror, unless it is a PR. https://cirrus-ci.org/guide/writing-tasks/#conditional-task-execution stateful: false # https://cirrus-ci.org/guide/writing-tasks/#stateful-tasks base_template: &BASE_TEMPLATE @@ -73,7 +73,7 @@ global_task_template: &GLOBAL_TASK_TEMPLATE compute_credits_template: &CREDITS_TEMPLATE # https://cirrus-ci.org/pricing/#compute-credits # Only use credits for pull requests to the main repo - use_compute_credits: $CIRRUS_REPO_FULL_NAME == 'bitcoin/bitcoin' && $CIRRUS_PR != "" + use_compute_credits: $CIRRUS_REPO_FULL_NAME == 'vincoin/vincoin' && $CIRRUS_PR != "" task: name: 'lint' @@ -109,7 +109,7 @@ task: << : *GLOBAL_TASK_TEMPLATE persistent_worker: labels: - type: arm64 # Use arm64 worker to sidestep qemu and avoid a slow CI: https://github.com/bitcoin/bitcoin/pull/28087#issuecomment-1649399453 + type: arm64 # Use arm64 worker to sidestep qemu and avoid a slow CI: https://github.com/vincoin/vincoin/pull/28087#issuecomment-1649399453 env: FILE_ENV: "./ci/test/00_setup_env_arm.sh" @@ -191,13 +191,13 @@ task: FILE_ENV: "./ci/test/00_setup_env_i686_multiprocess.sh" task: - name: 'no wallet, libbitcoinkernel' + name: 'no wallet, libvincoinkernel' << : *GLOBAL_TASK_TEMPLATE persistent_worker: labels: type: small env: - FILE_ENV: "./ci/test/00_setup_env_native_nowallet_libbitcoinkernel.sh" + FILE_ENV: "./ci/test/00_setup_env_native_nowallet_libvincoinkernel.sh" task: name: 'macOS-cross, gui, no tests' diff --git a/.github/ISSUE_TEMPLATE/bug.yml b/.github/ISSUE_TEMPLATE/bug.yml index 83922b54cbf49..ea353228c0b66 100644 --- a/.github/ISSUE_TEMPLATE/bug.yml +++ b/.github/ISSUE_TEMPLATE/bug.yml @@ -5,10 +5,10 @@ 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 Vincoin Core. - * 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/. + * General vincoin questions and/or support requests should use Vincoin StackExchange at https://vincoin.stackexchange.com. + * For reporting security issues, please read instructions at https://vincoincore.org/en/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. ---- @@ -50,14 +50,14 @@ body: description: | Please copy and paste any relevant log output or attach a debug log file. - You can find the debug.log in your [data dir.](https://github.com/bitcoin/bitcoin/blob/master/doc/files.md#data-directory-location) + You can find the debug.log in your [data dir.](https://github.com/vincoin/vincoin/blob/master/doc/files.md#data-directory-location) Please be aware that the debug log might contain personally identifying information. validations: required: false - type: dropdown attributes: - label: How did you obtain Bitcoin Core + label: How did you obtain Vincoin Core multiple: false options: - Compiled from source @@ -69,8 +69,8 @@ body: - type: input id: core-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 Vincoin Core are you using? + description: Run `vincoind --version` or in Vincoin-QT use `Help > About Vincoin Core` 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 40370284a6d8f..3651228981af6 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: Vincoin Core Security Policy + url: https://github.com/vincoin/vincoin/blob/master/SECURITY.md about: View security policy - - name: Bitcoin Core Developers - url: https://bitcoincore.org - about: Bitcoin Core homepage + - name: Vincoin Core Developers + url: https://vincoincore.org + about: Vincoin Core homepage diff --git a/.github/ISSUE_TEMPLATE/good_first_issue.yml b/.github/ISSUE_TEMPLATE/good_first_issue.yml index 133937c011af6..26a592d691494 100644 --- a/.github/ISSUE_TEMPLATE/good_first_issue.yml +++ b/.github/ISSUE_TEMPLATE/good_first_issue.yml @@ -28,9 +28,9 @@ body: 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”. + description: For example, “`std::thread`”, “Qt5 GUI and async GUI design” or “basic understanding of Vincoin mining and the Vincoin Core RPC interface”. value: | - * Compiling Bitcoin Core from source + * Compiling Vincoin Core from source * Running the C++ unit tests and the Python functional tests * ... - type: textarea @@ -40,5 +40,5 @@ body: 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. + For guidance on contributing, please read [CONTRIBUTING.md](https://github.com/vincoin/vincoin/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 index 4fe578e9b5b9c..e769759cdab45 100644 --- a/.github/ISSUE_TEMPLATE/gui_issue.yml +++ b/.github/ISSUE_TEMPLATE/gui_issue.yml @@ -6,7 +6,7 @@ body: 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/ + description: https://github.com/vincoin-core/gui/issues/ options: - label: I still think this issue should be opened here required: true diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index ae92fc78f2d1c..c8914fb2e37cf 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -5,13 +5,13 @@ Pull requests without a rationale and clear improvement may be closed immediately. GUI-related pull requests should be opened against -https://github.com/bitcoin-core/gui +https://github.com/vincoin-core/gui first. See CONTRIBUTING.md --> libbitcoin_cli; +vincoin-cli[vincoin-cli]-->libvincoin_cli; -bitcoind[bitcoind]-->libbitcoin_node; -bitcoind[bitcoind]-->libbitcoin_wallet; +vincoind[vincoind]-->libvincoin_node; +vincoind[vincoind]-->libvincoin_wallet; -bitcoin-qt[bitcoin-qt]-->libbitcoin_node; -bitcoin-qt[bitcoin-qt]-->libbitcoinqt; -bitcoin-qt[bitcoin-qt]-->libbitcoin_wallet; +vincoin-qt[vincoin-qt]-->libvincoin_node; +vincoin-qt[vincoin-qt]-->libvincoinqt; +vincoin-qt[vincoin-qt]-->libvincoin_wallet; -bitcoin-wallet[bitcoin-wallet]-->libbitcoin_wallet; -bitcoin-wallet[bitcoin-wallet]-->libbitcoin_wallet_tool; +vincoin-wallet[vincoin-wallet]-->libvincoin_wallet; +vincoin-wallet[vincoin-wallet]-->libvincoin_wallet_tool; -libbitcoin_cli-->libbitcoin_util; -libbitcoin_cli-->libbitcoin_common; +libvincoin_cli-->libvincoin_util; +libvincoin_cli-->libvincoin_common; -libbitcoin_common-->libbitcoin_consensus; -libbitcoin_common-->libbitcoin_util; +libvincoin_common-->libvincoin_consensus; +libvincoin_common-->libvincoin_util; -libbitcoin_kernel-->libbitcoin_consensus; -libbitcoin_kernel-->libbitcoin_util; +libvincoin_kernel-->libvincoin_consensus; +libvincoin_kernel-->libvincoin_util; -libbitcoin_node-->libbitcoin_consensus; -libbitcoin_node-->libbitcoin_kernel; -libbitcoin_node-->libbitcoin_common; -libbitcoin_node-->libbitcoin_util; +libvincoin_node-->libvincoin_consensus; +libvincoin_node-->libvincoin_kernel; +libvincoin_node-->libvincoin_common; +libvincoin_node-->libvincoin_util; -libbitcoinqt-->libbitcoin_common; -libbitcoinqt-->libbitcoin_util; +libvincoinqt-->libvincoin_common; +libvincoinqt-->libvincoin_util; -libbitcoin_wallet-->libbitcoin_common; -libbitcoin_wallet-->libbitcoin_util; +libvincoin_wallet-->libvincoin_common; +libvincoin_wallet-->libvincoin_util; -libbitcoin_wallet_tool-->libbitcoin_wallet; -libbitcoin_wallet_tool-->libbitcoin_util; +libvincoin_wallet_tool-->libvincoin_wallet; +libvincoin_wallet_tool-->libvincoin_util; classDef bold stroke-width:2px, font-weight:bold, font-size: smaller; -class bitcoin-qt,bitcoind,bitcoin-cli,bitcoin-wallet bold +class vincoin-qt,vincoind,vincoin-cli,vincoin-wallet bold ``` @@ -83,22 +83,22 @@ class bitcoin-qt,bitcoind,bitcoin-cli,bitcoin-wallet bold -- The graph shows what _linker symbols_ (functions and variables) from each library other libraries can call and reference directly, but it is not a call graph. For example, there is no arrow connecting *libbitcoin_wallet* and *libbitcoin_node* libraries, because these libraries are intended to be modular and not depend on each other's internal implementation details. But wallet code is still able to call node code indirectly through the `interfaces::Chain` abstract class in [`interfaces/chain.h`](../../src/interfaces/chain.h) and node code calls wallet code through the `interfaces::ChainClient` and `interfaces::Chain::Notifications` abstract classes in the same file. In general, defining abstract classes in [`src/interfaces/`](../../src/interfaces/) can be a convenient way of avoiding unwanted direct dependencies or circular dependencies between libraries. +- The graph shows what _linker symbols_ (functions and variables) from each library other libraries can call and reference directly, but it is not a call graph. For example, there is no arrow connecting *libvincoin_wallet* and *libvincoin_node* libraries, because these libraries are intended to be modular and not depend on each other's internal implementation details. But wallet code is still able to call node code indirectly through the `interfaces::Chain` abstract class in [`interfaces/chain.h`](../../src/interfaces/chain.h) and node code calls wallet code through the `interfaces::ChainClient` and `interfaces::Chain::Notifications` abstract classes in the same file. In general, defining abstract classes in [`src/interfaces/`](../../src/interfaces/) can be a convenient way of avoiding unwanted direct dependencies or circular dependencies between libraries. -- *libbitcoin_consensus* should be a standalone dependency that any library can depend on, and it should not depend on any other libraries itself. +- *libvincoin_consensus* should be a standalone dependency that any library can depend on, and it should not depend on any other libraries itself. -- *libbitcoin_util* should also be a standalone dependency that any library can depend on, and it should not depend on other internal libraries. +- *libvincoin_util* should also be a standalone dependency that any library can depend on, and it should not depend on other internal libraries. -- *libbitcoin_common* should serve a similar function as *libbitcoin_util* and be a place for miscellaneous code used by various daemon, GUI, and CLI applications and libraries to live. It should not depend on anything other than *libbitcoin_util* and *libbitcoin_consensus*. The boundary between _util_ and _common_ is a little fuzzy but historically _util_ has been used for more generic, lower-level things like parsing hex, and _common_ has been used for bitcoin-specific, higher-level things like parsing base58. The difference between util and common is mostly important because *libbitcoin_kernel* is not supposed to depend on *libbitcoin_common*, only *libbitcoin_util*. In general, if it is ever unclear whether it is better to add code to *util* or *common*, it is probably better to add it to *common* unless it is very generically useful or useful particularly to include in the kernel. +- *libvincoin_common* should serve a similar function as *libvincoin_util* and be a place for miscellaneous code used by various daemon, GUI, and CLI applications and libraries to live. It should not depend on anything other than *libvincoin_util* and *libvincoin_consensus*. The boundary between _util_ and _common_ is a little fuzzy but historically _util_ has been used for more generic, lower-level things like parsing hex, and _common_ has been used for vincoin-specific, higher-level things like parsing base58. The difference between util and common is mostly important because *libvincoin_kernel* is not supposed to depend on *libvincoin_common*, only *libvincoin_util*. In general, if it is ever unclear whether it is better to add code to *util* or *common*, it is probably better to add it to *common* unless it is very generically useful or useful particularly to include in the kernel. -- *libbitcoin_kernel* should only depend on *libbitcoin_util* and *libbitcoin_consensus*. +- *libvincoin_kernel* should only depend on *libvincoin_util* and *libvincoin_consensus*. -- The only thing that should depend on *libbitcoin_kernel* internally should be *libbitcoin_node*. GUI and wallet libraries *libbitcoinqt* and *libbitcoin_wallet* in particular should not depend on *libbitcoin_kernel* and the unneeded functionality it would pull in, like block validation. To the extent that GUI and wallet code need scripting and signing functionality, they should be get able it from *libbitcoin_consensus*, *libbitcoin_common*, and *libbitcoin_util*, instead of *libbitcoin_kernel*. +- The only thing that should depend on *libvincoin_kernel* internally should be *libvincoin_node*. GUI and wallet libraries *libvincoinqt* and *libvincoin_wallet* in particular should not depend on *libvincoin_kernel* and the unneeded functionality it would pull in, like block validation. To the extent that GUI and wallet code need scripting and signing functionality, they should be get able it from *libvincoin_consensus*, *libvincoin_common*, and *libvincoin_util*, instead of *libvincoin_kernel*. -- GUI, node, and wallet code internal implementations should all be independent of each other, and the *libbitcoinqt*, *libbitcoin_node*, *libbitcoin_wallet* libraries should never reference each other's symbols. They should only call each other through [`src/interfaces/`](`../../src/interfaces/`) abstract interfaces. +- GUI, node, and wallet code internal implementations should all be independent of each other, and the *libvincoinqt*, *libvincoin_node*, *libvincoin_wallet* libraries should never reference each other's symbols. They should only call each other through [`src/interfaces/`](`../../src/interfaces/`) abstract interfaces. ## Work in progress -- Validation code is moving from *libbitcoin_node* to *libbitcoin_kernel* as part of [The libbitcoinkernel Project #24303](https://github.com/bitcoin/bitcoin/issues/24303) -- Source code organization is discussed in general in [Library source code organization #15732](https://github.com/bitcoin/bitcoin/issues/15732) +- Validation code is moving from *libvincoin_node* to *libvincoin_kernel* as part of [The libvincoinkernel Project #24303](https://github.com/vincoin/vincoin/issues/24303) +- Source code organization is discussed in general in [Library source code organization #15732](https://github.com/vincoin/vincoin/issues/15732) diff --git a/doc/design/multiprocess.md b/doc/design/multiprocess.md index 636d78d905c45..2b38b9f8aeac6 100644 --- a/doc/design/multiprocess.md +++ b/doc/design/multiprocess.md @@ -1,6 +1,6 @@ -# Multiprocess Bitcoin Design Document +# Multiprocess Vincoin Design Document -Guide to the design and architecture of the Bitcoin Core multiprocess feature +Guide to the design and architecture of the Vincoin Core multiprocess feature _This document describes the design of the multiprocess feature. For usage information, see the top-level [multiprocess.md](../multiprocess.md) file._ @@ -27,31 +27,31 @@ _This document describes the design of the multiprocess feature. For usage infor ## Introduction -The Bitcoin Core software has historically employed a monolithic architecture. The existing design has integrated functionality like P2P network operations, wallet management, and a GUI into a single executable. While effective, it has limitations in flexibility, security, and scalability. This project introduces changes that transition Bitcoin Core to a more modular architecture. It aims to enhance security, improve usability, and facilitate maintenance and development of the software in the long run. +The Vincoin Core software has historically employed a monolithic architecture. The existing design has integrated functionality like P2P network operations, wallet management, and a GUI into a single executable. While effective, it has limitations in flexibility, security, and scalability. This project introduces changes that transition Vincoin Core to a more modular architecture. It aims to enhance security, improve usability, and facilitate maintenance and development of the software in the long run. ## Current Architecture -The current system features two primary executables: `bitcoind` and `bitcoin-qt`. `bitcoind` combines a Bitcoin P2P node with an integrated JSON-RPC server, wallet, and indexes. `bitcoin-qt` extends this by incorporating a Qt-based GUI. This monolithic structure, although robust, presents challenges such as limited operational flexibility and increased security risks due to the tight integration of components. +The current system features two primary executables: `vincoind` and `vincoin-qt`. `vincoind` combines a Vincoin P2P node with an integrated JSON-RPC server, wallet, and indexes. `vincoin-qt` extends this by incorporating a Qt-based GUI. This monolithic structure, although robust, presents challenges such as limited operational flexibility and increased security risks due to the tight integration of components. ## Proposed Architecture The new architecture divides the existing code into three specialized executables: -- `bitcoin-node`: Manages the P2P node, indexes, and JSON-RPC server. -- `bitcoin-wallet`: Handles all wallet functionality. -- `bitcoin-gui`: Provides a standalone Qt-based GUI. +- `vincoin-node`: Manages the P2P node, indexes, and JSON-RPC server. +- `vincoin-wallet`: Handles all wallet functionality. +- `vincoin-gui`: Provides a standalone Qt-based GUI. This modular approach is designed to enhance security through component isolation and improve usability by allowing independent operation of each module. This allows for new use-cases, such as running the node on a dedicated machine and operating wallets and GUIs on separate machines with the flexibility to start and stop them as needed. -This subdivision could be extended in the future. For example, indexes could be removed from the `bitcoin-node` executable and run in separate executables. And JSON-RPC servers could be added to wallet and index executables, so they can listen and respond to RPC requests on their own ports, without needing to forward RPC requests through `bitcoin-node`. +This subdivision could be extended in the future. For example, indexes could be removed from the `vincoin-node` executable and run in separate executables. And JSON-RPC servers could be added to wallet and index executables, so they can listen and respond to RPC requests on their own ports, without needing to forward RPC requests through `vincoin-node`.
```mermaid flowchart LR - node[bitcoin-node] -- listens on --> socket["<datadir>/node.sock"] - wallet[bitcoin-wallet] -- connects to --> socket - gui[bitcoin-gui] -- connects to --> socket + node[vincoin-node] -- listens on --> socket["<datadir>/node.sock"] + wallet[vincoin-wallet] -- connects to --> socket + gui[vincoin-gui] -- connects to --> socket ```
@@ -90,7 +90,7 @@ This section describes the major components of the Inter-Process Communication ( ### The `libmultiprocess` Runtime Library - **Core Functionality**: The `libmultiprocess` runtime library's primary function is to instantiate the generated client and server classes as needed. -- **Bootstrapping IPC Connections**: It provides functions for starting new IPC connections, specifically binding generated client and server classes for an initial `interfaces::Init` interface (defined in [`src/interfaces/init.h`](../../src/interfaces/init.h)) to a UNIX socket. This initial interface has methods returning other interfaces that different Bitcoin Core modules use to communicate after the bootstrapping phase. +- **Bootstrapping IPC Connections**: It provides functions for starting new IPC connections, specifically binding generated client and server classes for an initial `interfaces::Init` interface (defined in [`src/interfaces/init.h`](../../src/interfaces/init.h)) to a UNIX socket. This initial interface has methods returning other interfaces that different Vincoin Core modules use to communicate after the bootstrapping phase. - **Asynchronous I/O and Thread Management**: The library is also responsible for managing I/O and threading. Particularly, it ensures that IPC requests never block each other and that new threads on either side of a connection can always make client calls. It also manages worker threads on the server side of calls, ensuring that calls from the same client thread always execute on the same server thread (to avoid locking issues and support nested callbacks). ### Type Hooks in [`src/ipc/capnp/*-types.h`](../../src/ipc/capnp/) @@ -124,13 +124,13 @@ Diagram showing generated source files and includes. ### Selection of Cap’n Proto The choice to use [Cap’n Proto](https://capnproto.org/) for IPC was primarily influenced by its support for passing object references and managing object lifetimes, which would have to be implemented manually with a framework that only supported plain requests and responses like [gRPC](https://grpc.io/). The support is especially helpful for passing callback objects like `std::function` and enabling bidirectional calls between processes. -The choice to use an RPC framework at all instead of a custom protocol was necessitated by the size of Bitcoin Core internal interfaces which consist of around 150 methods that pass complex data structures and are called in complicated ways (in parallel, and from callbacks that can be nested and stored). Writing a custom protocol to wrap these complicated interfaces would be a lot more work, akin to writing a new RPC framework. +The choice to use an RPC framework at all instead of a custom protocol was necessitated by the size of Vincoin Core internal interfaces which consist of around 150 methods that pass complex data structures and are called in complicated ways (in parallel, and from callbacks that can be nested and stored). Writing a custom protocol to wrap these complicated interfaces would be a lot more work, akin to writing a new RPC framework. ### Hiding IPC The IPC mechanism is deliberately isolated from the rest of the codebase so less code has to be concerned with IPC. -Building Bitcoin Core with IPC support is optional, and node, wallet, and GUI code can be compiled to either run in the same process or separate processes. The build system also ensures Cap’n Proto library headers can only be used within the [`src/ipc/capnp/`](../../src/ipc/capnp/) directory, not in other parts of the codebase. +Building Vincoin Core with IPC support is optional, and node, wallet, and GUI code can be compiled to either run in the same process or separate processes. The build system also ensures Cap’n Proto library headers can only be used within the [`src/ipc/capnp/`](../../src/ipc/capnp/) directory, not in other parts of the codebase. The libmultiprocess runtime is designed to place as few constraints as possible on IPC interfaces and to make IPC calls act like normal function calls. Method arguments, return values, and exceptions are automatically serialized and sent between processes. Object references and `std::function` arguments are tracked to allow invoked code to call back into invoking code at any time. And there is a 1:1 threading model where every client thread has a corresponding server thread responsible for executing incoming calls from that thread (there can be multiple calls from the same thread due to callbacks) without blocking, and holding the same thread-local variables and locks so behavior is the same whether IPC is used or not. @@ -150,23 +150,23 @@ The currently defined IPC interfaces are unstable, and can change freely with no ## Security Considerations -The integration of [Cap’n Proto](https://capnproto.org/) and [libmultiprocess](https://github.com/chaincodelabs/libmultiprocess) into the Bitcoin Core architecture increases its potential attack surface. Cap’n Proto, being a complex and substantial new dependency, introduces potential sources of vulnerability, particularly through the creation of new UNIX sockets. The inclusion of libmultiprocess, while a smaller external dependency, also contributes to this risk. However, plans are underway to incorporate libmultiprocess as a git subtree, aligning it more closely with the project's well-reviewed internal libraries. While adopting these multiprocess features does introduce some risk, it's worth noting that they can be disabled, allowing builds without these new dependencies. This flexibility ensures that users can balance functionality with security considerations as needed. +The integration of [Cap’n Proto](https://capnproto.org/) and [libmultiprocess](https://github.com/chaincodelabs/libmultiprocess) into the Vincoin Core architecture increases its potential attack surface. Cap’n Proto, being a complex and substantial new dependency, introduces potential sources of vulnerability, particularly through the creation of new UNIX sockets. The inclusion of libmultiprocess, while a smaller external dependency, also contributes to this risk. However, plans are underway to incorporate libmultiprocess as a git subtree, aligning it more closely with the project's well-reviewed internal libraries. While adopting these multiprocess features does introduce some risk, it's worth noting that they can be disabled, allowing builds without these new dependencies. This flexibility ensures that users can balance functionality with security considerations as needed. ## Example Use Cases and Flows ### Retrieving a Block Hash -Let’s walk through an example where the `bitcoin-wallet` process requests the hash of a block at a specific height from the `bitcoin-node` process. This example demonstrates the practical application of the IPC mechanism, specifically the interplay between C++ method calls and Cap’n Proto-generated RPC calls. +Let’s walk through an example where the `vincoin-wallet` process requests the hash of a block at a specific height from the `vincoin-node` process. This example demonstrates the practical application of the IPC mechanism, specifically the interplay between C++ method calls and Cap’n Proto-generated RPC calls.
```mermaid sequenceDiagram - box "bitcoin-wallet process" + box "vincoin-wallet process" participant WalletCode as Wallet code participant ChainClient as Generated Chain client class
ProxyClient end - box "bitcoin-node process" + box "vincoin-node process" participant ChainServer as Generated Chain server class
ProxyServer participant LocalChain as Chain object
node::ChainImpl end @@ -183,46 +183,46 @@ sequenceDiagram Chain::getBlockHash call diagram
-1. **Initiation in bitcoin-wallet** +1. **Initiation in vincoin-wallet** - The wallet process calls the `getBlockHash` method on a `Chain` object. This method is defined as a virtual method in [`src/interfaces/chain.h`](../../src/interfaces/chain.h). 2. **Translation to Cap’n Proto RPC** - The `Chain::getBlockHash` virtual method is overridden by the `Chain` [client subclass](#c-client-subclasses-in-generated-code) to translate the method call into a Cap’n Proto RPC call. - - The client subclass is automatically generated by the `mpgen` tool from the [`chain.capnp`](https://github.com/ryanofsky/bitcoin/blob/pr/ipc/src/ipc/capnp/chain.capnp) file in [`src/ipc/capnp/`](../../src/ipc/capnp/). + - The client subclass is automatically generated by the `mpgen` tool from the [`chain.capnp`](https://github.com/ryanofsky/vincoin/blob/pr/ipc/src/ipc/capnp/chain.capnp) file in [`src/ipc/capnp/`](../../src/ipc/capnp/). 3. **Request Preparation and Dispatch** - - The `getBlockHash` method of the generated `Chain` client subclass in `bitcoin-wallet` populates a Cap’n Proto request with the `height` parameter, sends it to `bitcoin-node` process, and waits for a response. + - The `getBlockHash` method of the generated `Chain` client subclass in `vincoin-wallet` populates a Cap’n Proto request with the `height` parameter, sends it to `vincoin-node` process, and waits for a response. -4. **Handling in bitcoin-node** - - Upon receiving the request, the Cap'n Proto dispatching code in the `bitcoin-node` process calls the `getBlockHash` method of the `Chain` [server class](#c-server-classes-in-generated-code). - - The server class is automatically generated by the `mpgen` tool from the [`chain.capnp`](https://github.com/ryanofsky/bitcoin/blob/pr/ipc/src/ipc/capnp/chain.capnp) file in [`src/ipc/capnp/`](../../src/ipc/capnp/). - - The `getBlockHash` method of the generated `Chain` server subclass in `bitcoin-wallet` receives a Cap’n Proto request object with the `height` parameter, and calls the `getBlockHash` method on its local `Chain` object with the provided `height`. - - When the call returns, it encapsulates the return value in a Cap’n Proto response, which it sends back to the `bitcoin-wallet` process, +4. **Handling in vincoin-node** + - Upon receiving the request, the Cap'n Proto dispatching code in the `vincoin-node` process calls the `getBlockHash` method of the `Chain` [server class](#c-server-classes-in-generated-code). + - The server class is automatically generated by the `mpgen` tool from the [`chain.capnp`](https://github.com/ryanofsky/vincoin/blob/pr/ipc/src/ipc/capnp/chain.capnp) file in [`src/ipc/capnp/`](../../src/ipc/capnp/). + - The `getBlockHash` method of the generated `Chain` server subclass in `vincoin-wallet` receives a Cap’n Proto request object with the `height` parameter, and calls the `getBlockHash` method on its local `Chain` object with the provided `height`. + - When the call returns, it encapsulates the return value in a Cap’n Proto response, which it sends back to the `vincoin-wallet` process, 5. **Response and Return** - - The `getBlockHash` method of the generated `Chain` client subclass in `bitcoin-wallet` which sent the request now receives the response. + - The `getBlockHash` method of the generated `Chain` client subclass in `vincoin-wallet` which sent the request now receives the response. - It extracts the block hash value from the response, and returns it to the original caller. ## Future Enhancements Further improvements are possible such as: -- Separating indexes from `bitcoin-node`, and running indexing code in separate processes (see [indexes: Stop using node internal types #24230](https://github.com/bitcoin/bitcoin/pull/24230)). +- Separating indexes from `vincoin-node`, and running indexing code in separate processes (see [indexes: Stop using node internal types #24230](https://github.com/vincoin/vincoin/pull/24230)). - Enabling wallet processes to listen for JSON-RPC requests on their own ports instead of needing the node process to listen and forward requests to them. - Automatically generating `.capnp` files from C++ interface definitions (see [Interface Definition Maintenance](#interface-definition-maintenance)). - Simplifying and stabilizing interfaces (see [Interface Stability](#interface-stability)). -- Adding sandbox features, restricting subprocess access to resources and data (see [https://eklitzke.org/multiprocess-bitcoin](https://eklitzke.org/multiprocess-bitcoin)). -- Using Cap'n Proto's support for [other languages](https://capnproto.org/otherlang.html), such as [Rust](https://github.com/capnproto/capnproto-rust), to allow code written in other languages to call Bitcoin Core C++ code, and vice versa (see [How to rustify libmultiprocess? #56](https://github.com/chaincodelabs/libmultiprocess/issues/56)). +- Adding sandbox features, restricting subprocess access to resources and data (see [https://eklitzke.org/multiprocess-vincoin](https://eklitzke.org/multiprocess-vincoin)). +- Using Cap'n Proto's support for [other languages](https://capnproto.org/otherlang.html), such as [Rust](https://github.com/capnproto/capnproto-rust), to allow code written in other languages to call Vincoin Core C++ code, and vice versa (see [How to rustify libmultiprocess? #56](https://github.com/chaincodelabs/libmultiprocess/issues/56)). ## Conclusion -This modularization represents an advancement in Bitcoin Core's architecture, offering enhanced security, flexibility, and maintainability. The project invites collaboration and feedback from the community. +This modularization represents an advancement in Vincoin Core's architecture, offering enhanced security, flexibility, and maintainability. The project invites collaboration and feedback from the community. ## Appendices ### Glossary of Terms -- **abstract class**: A class in C++ that consists of virtual functions. In the Bitcoin Core project, they define interfaces for inter-component communication. +- **abstract class**: A class in C++ that consists of virtual functions. In the Vincoin Core project, they define interfaces for inter-component communication. - **asynchronous I/O**: A form of input/output processing that allows a program to continue other operations while a transmission is in progress. @@ -232,11 +232,11 @@ This modularization represents an advancement in Bitcoin Core's architecture, of - **Cap’n Proto struct**: A structured data format used in Cap’n Proto, similar to structs in C++, for organizing and transporting data across different processes. -- **client class (in generated code)**: A C++ class generated from a Cap’n Proto interface which inherits from a Bitcoin core abstract class, and implements each virtual method to send IPC requests to another process. (see also [components section](#c-client-subclasses-in-generated-code)) +- **client class (in generated code)**: A C++ class generated from a Cap’n Proto interface which inherits from a Vincoin core abstract class, and implements each virtual method to send IPC requests to another process. (see also [components section](#c-client-subclasses-in-generated-code)) - **IPC (inter-process communication)**: Mechanisms that enable processes to exchange requests and data. -- **ipc::Exception class**: A class within Bitcoin Core's protocol-agnostic IPC code that is thrown by client class methods when there is an IPC error. +- **ipc::Exception class**: A class within Vincoin Core's protocol-agnostic IPC code that is thrown by client class methods when there is an IPC error. - **libmultiprocess**: A custom library and code generation tool used for creating IPC interfaces and managing IPC connections. @@ -246,9 +246,9 @@ This modularization represents an advancement in Bitcoin Core's architecture, of - **protocol-agnostic code**: Generic IPC code in [`src/ipc/`](../../src/ipc/) that does not rely on Cap’n Proto and could be used with other protocols. Distinct from code in [`src/ipc/capnp/`](../../src/ipc/capnp/) which relies on Cap’n Proto. -- **RPC (remote procedure call)**: A protocol that enables a program to request a service from another program in a different address space or network. Bitcoin Core uses [JSON-RPC](https://en.wikipedia.org/wiki/JSON-RPC) for RPC. +- **RPC (remote procedure call)**: A protocol that enables a program to request a service from another program in a different address space or network. Vincoin Core uses [JSON-RPC](https://en.wikipedia.org/wiki/JSON-RPC) for RPC. -- **server class (in generated code)**: A C++ class generated from a Cap’n Proto interface which handles requests sent by a _client class_ in another process. The request handled by calling a local Bitcoin Core interface method, and the return values (if any) are sent back in a response. (see also: [components section](#c-server-classes-in-generated-code)) +- **server class (in generated code)**: A C++ class generated from a Cap’n Proto interface which handles requests sent by a _client class_ in another process. The request handled by calling a local Vincoin Core interface method, and the return values (if any) are sent back in a response. (see also: [components section](#c-server-classes-in-generated-code)) - **unix socket**: Communication endpoint which is a filesystem path, used for exchanging data between processes running on the same host. @@ -261,4 +261,4 @@ This modularization represents an advancement in Bitcoin Core's architecture, of ## Acknowledgements -This design doc was written by @ryanofsky, who is grateful to all the reviewers who gave feedback and tested [multiprocess PRs](https://github.com/bitcoin/bitcoin/pull/28722), and everyone else who's helped with this project. Particular thanks to @ariard who deeply reviewed IPC code and improved the design of the IPC library and initialization process. @jnewbery who championed the early refactoring PRs and helped guide them through development and review. @sjors who has reviewed and repeatedly tested multiprocess code, reporting many issues and helping debug them. @hebasto, @fanquake, and @maflcko who made significant improvements to the build system and fixed countless build issues. @vasild and @jamesob who were brave contributors to the libmultiprocess library. And Chaincode Labs for making this work possible. Also thanks to ChatGPT, who actually wrote most of this document (not @ryanofsky). +This design doc was written by @ryanofsky, who is grateful to all the reviewers who gave feedback and tested [multiprocess PRs](https://github.com/vincoin/vincoin/pull/28722), and everyone else who's helped with this project. Particular thanks to @ariard who deeply reviewed IPC code and improved the design of the IPC library and initialization process. @jnewbery who championed the early refactoring PRs and helped guide them through development and review. @sjors who has reviewed and repeatedly tested multiprocess code, reporting many issues and helping debug them. @hebasto, @fanquake, and @maflcko who made significant improvements to the build system and fixed countless build issues. @vasild and @jamesob who were brave contributors to the libmultiprocess library. And Chaincode Labs for making this work possible. Also thanks to ChatGPT, who actually wrote most of this document (not @ryanofsky). diff --git a/doc/developer-notes.md b/doc/developer-notes.md index 8c3845c66c3ea..d62a3bc138021 100644 --- a/doc/developer-notes.md +++ b/doc/developer-notes.md @@ -26,7 +26,7 @@ Developer Notes - [Threads](#threads) - [Ignoring IDE/editor files](#ignoring-ideeditor-files) - [Development guidelines](#development-guidelines) - - [General Bitcoin Core](#general-bitcoin-core) + - [General Vincoin Core](#general-vincoin-core) - [Wallet](#wallet) - [General C++](#general-c) - [C++ data structures](#c-data-structures) @@ -246,7 +246,7 @@ Refer to [/test/functional/README.md#style-guidelines](/test/functional/README.m Coding Style (Doxygen-compatible comments) ------------------------------------------ -Bitcoin Core uses [Doxygen](https://www.doxygen.nl/) to generate its official documentation. +Vincoin Core uses [Doxygen](https://www.doxygen.nl/) to generate its official documentation. Use Doxygen-compatible comment blocks for functions, methods, and fields. @@ -394,8 +394,8 @@ If the code is behaving strangely, take a look in the `debug.log` file in the da error and debugging messages are written there. Debug logging can be enabled on startup with the `-debug` and `-loglevel` -configuration options and toggled while bitcoind is running with the `logging` -RPC. For instance, launching bitcoind with `-debug` or `-debug=1` will turn on +configuration options and toggled while vincoind is running with the `logging` +RPC. For instance, launching vincoind with `-debug` or `-debug=1` will turn on all log categories and `-loglevel=trace` will turn on all log severity levels. The Qt code routes `qDebug()` output to `debug.log` under category "qt": run with `-debug=qt` @@ -405,7 +405,7 @@ to see it. If you are testing multi-machine code that needs to operate across the internet, you can run with either the `-signet` or the `-testnet` config option to test -with "play bitcoins" on a test network. +with "play vincoins" on a test network. If you are testing something that can run on one machine, run with the `-regtest` option. In regression test mode, blocks can be created on demand; @@ -413,7 +413,7 @@ see [test/functional/](/test/functional) for tests that run in `-regtest` mode. ### DEBUG_LOCKORDER -Bitcoin Core is a multi-threaded application, and deadlocks or other +Vincoin Core is a multi-threaded application, and deadlocks or other multi-threading bugs can be very difficult to track down. The `--enable-debug` configure option adds `-DDEBUG_LOCKORDER` to the compiler flags. This inserts run-time checks to keep track of which locks are held and adds warnings to the @@ -428,11 +428,11 @@ to the `debug.log` file. The `--enable-debug` configure option adds `-DDEBUG_LOCKCONTENTION` to the compiler flags. You may also enable it manually for a non-debug build by running configure with `-DDEBUG_LOCKCONTENTION` added to your CPPFLAGS, -i.e. `CPPFLAGS="-DDEBUG_LOCKCONTENTION"`, then build and run bitcoind. +i.e. `CPPFLAGS="-DDEBUG_LOCKCONTENTION"`, then build and run vincoind. -You can then use the `-debug=lock` configuration option at bitcoind startup or -`bitcoin-cli logging '["lock"]'` at runtime to turn on lock contention logging. -It can be toggled off again with `bitcoin-cli logging [] '["lock"]'`. +You can then use the `-debug=lock` configuration option at vincoind startup or +`vincoin-cli logging '["lock"]'` at runtime to turn on lock contention logging. +It can be toggled off again with `vincoin-cli logging [] '["lock"]'`. ### Assertions and Checks @@ -465,15 +465,15 @@ other input. Valgrind is a programming tool for memory debugging, memory leak detection, and profiling. The repo contains a Valgrind suppressions file -([`valgrind.supp`](https://github.com/bitcoin/bitcoin/blob/master/contrib/valgrind.supp)) +([`valgrind.supp`](https://github.com/vincoin/vincoin/blob/master/contrib/valgrind.supp)) which includes known Valgrind warnings in our dependencies that cannot be fixed in-tree. Example use: ```shell -$ valgrind --suppressions=contrib/valgrind.supp src/test/test_bitcoin +$ valgrind --suppressions=contrib/valgrind.supp src/test/test_vincoin $ valgrind --suppressions=contrib/valgrind.supp --leak-check=full \ - --show-leak-kinds=all src/test/test_bitcoin --log_level=test_suite -$ valgrind -v --leak-check=full src/bitcoind -printtoconsole + --show-leak-kinds=all src/test/test_vincoin --log_level=test_suite +$ valgrind -v --leak-check=full src/vincoind -printtoconsole $ ./test/functional/test_runner.py --valgrind ``` @@ -490,7 +490,7 @@ To enable LCOV report generation during test runs: make make cov -# A coverage report will now be accessible at `./test_bitcoin.coverage/index.html`, +# A coverage report will now be accessible at `./test_vincoin.coverage/index.html`, # which covers unit tests, and `./total.coverage/index.html`, which covers # unit and functional tests. ``` @@ -519,13 +519,13 @@ Make sure you [understand the security trade-offs](https://lwn.net/Articles/420403/) of setting these kernel parameters. -To profile a running bitcoind process for 60 seconds, you could use an +To profile a running vincoind process for 60 seconds, you could use an invocation of `perf record` like this: ```sh $ perf record \ -g --call-graph dwarf --per-thread -F 140 \ - -p `pgrep bitcoind` -- sleep 60 + -p `pgrep vincoind` -- sleep 60 ``` You could then analyze the results by running: @@ -541,7 +541,7 @@ See the functional test documentation for how to invoke perf within tests. ### Sanitizers -Bitcoin Core can be compiled with various "sanitizers" enabled, which add +Vincoin Core can be compiled with various "sanitizers" enabled, which add instrumentation for issues regarding things like memory safety, thread race conditions, or undefined behavior. This is controlled with the `--with-sanitizers` configure flag, which should be a comma separated list of @@ -599,7 +599,7 @@ Additional resources: * [UndefinedBehaviorSanitizer](https://clang.llvm.org/docs/UndefinedBehaviorSanitizer.html) * [GCC Instrumentation Options](https://gcc.gnu.org/onlinedocs/gcc/Instrumentation-Options.html) * [Google Sanitizers Wiki](https://github.com/google/sanitizers/wiki) - * [Issue #12691: Enable -fsanitize flags in Travis](https://github.com/bitcoin/bitcoin/issues/12691) + * [Issue #12691: Enable -fsanitize flags in Travis](https://github.com/vincoin/vincoin/issues/12691) Locking/mutex usage notes ------------------------- @@ -621,55 +621,55 @@ and its `cs_KeyStore` lock for example). Threads ------- -- [Main thread (`bitcoind`)](https://doxygen.bitcoincore.org/bitcoind_8cpp.html#a0ddf1224851353fc92bfbff6f499fa97) - : Started from `main()` in `bitcoind.cpp`. Responsible for starting up and +- [Main thread (`vincoind`)](https://doxygen.vincoincore.org/vincoind_8cpp.html#a0ddf1224851353fc92bfbff6f499fa97) + : Started from `main()` in `vincoind.cpp`. Responsible for starting up and shutting down the application. -- [Init load (`b-initload`)](https://doxygen.bitcoincore.org/namespacenode.html#ab4305679079866f0f420f7dbf278381d) +- [Init load (`b-initload`)](https://doxygen.vincoincore.org/namespacenode.html#ab4305679079866f0f420f7dbf278381d) : Performs various loading tasks that are part of init but shouldn't block the node from being started: external block import, reindex, reindex-chainstate, main chain activation, spawn indexes background sync threads and mempool load. -- [CCheckQueue::Loop (`b-scriptch.x`)](https://doxygen.bitcoincore.org/class_c_check_queue.html#a6e7fa51d3a25e7cb65446d4b50e6a987) +- [CCheckQueue::Loop (`b-scriptch.x`)](https://doxygen.vincoincore.org/class_c_check_queue.html#a6e7fa51d3a25e7cb65446d4b50e6a987) : Parallel script validation threads for transactions in blocks. -- [ThreadHTTP (`b-http`)](https://doxygen.bitcoincore.org/httpserver_8cpp.html#abb9f6ea8819672bd9a62d3695070709c) +- [ThreadHTTP (`b-http`)](https://doxygen.vincoincore.org/httpserver_8cpp.html#abb9f6ea8819672bd9a62d3695070709c) : Libevent thread to listen for RPC and REST connections. -- [HTTP worker threads(`b-httpworker.x`)](https://doxygen.bitcoincore.org/httpserver_8cpp.html#aa6a7bc27265043bc0193220c5ae3a55f) +- [HTTP worker threads(`b-httpworker.x`)](https://doxygen.vincoincore.org/httpserver_8cpp.html#aa6a7bc27265043bc0193220c5ae3a55f) : Threads to service RPC and REST requests. -- [Indexer threads (`b-txindex`, etc)](https://doxygen.bitcoincore.org/class_base_index.html#a96a7407421fbf877509248bbe64f8d87) +- [Indexer threads (`b-txindex`, etc)](https://doxygen.vincoincore.org/class_base_index.html#a96a7407421fbf877509248bbe64f8d87) : One thread per indexer. -- [SchedulerThread (`b-scheduler`)](https://doxygen.bitcoincore.org/class_c_scheduler.html#a14d2800815da93577858ea078aed1fba) +- [SchedulerThread (`b-scheduler`)](https://doxygen.vincoincore.org/class_c_scheduler.html#a14d2800815da93577858ea078aed1fba) : Does asynchronous background tasks like dumping wallet contents, dumping addrman and running asynchronous validationinterface callbacks. -- [TorControlThread (`b-torcontrol`)](https://doxygen.bitcoincore.org/torcontrol_8cpp.html#a52a3efff23634500bb42c6474f306091) +- [TorControlThread (`b-torcontrol`)](https://doxygen.vincoincore.org/torcontrol_8cpp.html#a52a3efff23634500bb42c6474f306091) : Libevent thread for tor connections. - Net threads: - - [ThreadMessageHandler (`b-msghand`)](https://doxygen.bitcoincore.org/class_c_connman.html#aacdbb7148575a31bb33bc345e2bf22a9) + - [ThreadMessageHandler (`b-msghand`)](https://doxygen.vincoincore.org/class_c_connman.html#aacdbb7148575a31bb33bc345e2bf22a9) : Application level message handling (sending and receiving). Almost all net_processing and validation logic runs on this thread. - - [ThreadDNSAddressSeed (`b-dnsseed`)](https://doxygen.bitcoincore.org/class_c_connman.html#aa7c6970ed98a4a7bafbc071d24897d13) + - [ThreadDNSAddressSeed (`b-dnsseed`)](https://doxygen.vincoincore.org/class_c_connman.html#aa7c6970ed98a4a7bafbc071d24897d13) : Loads addresses of peers from the DNS. - ThreadMapPort (`b-mapport`) : Universal plug-and-play startup/shutdown. - - [ThreadSocketHandler (`b-net`)](https://doxygen.bitcoincore.org/class_c_connman.html#a765597cbfe99c083d8fa3d61bb464e34) + - [ThreadSocketHandler (`b-net`)](https://doxygen.vincoincore.org/class_c_connman.html#a765597cbfe99c083d8fa3d61bb464e34) : Sends/Receives data from peers on port 8333. - - [ThreadOpenAddedConnections (`b-addcon`)](https://doxygen.bitcoincore.org/class_c_connman.html#a0b787caf95e52a346a2b31a580d60a62) + - [ThreadOpenAddedConnections (`b-addcon`)](https://doxygen.vincoincore.org/class_c_connman.html#a0b787caf95e52a346a2b31a580d60a62) : Opens network connections to added nodes. - - [ThreadOpenConnections (`b-opencon`)](https://doxygen.bitcoincore.org/class_c_connman.html#a55e9feafc3bab78e5c9d408c207faa45) + - [ThreadOpenConnections (`b-opencon`)](https://doxygen.vincoincore.org/class_c_connman.html#a55e9feafc3bab78e5c9d408c207faa45) : Initiates new connections to peers. - - [ThreadI2PAcceptIncoming (`b-i2paccept`)](https://doxygen.bitcoincore.org/class_c_connman.html#a57787b4f9ac847d24065fbb0dd6e70f8) + - [ThreadI2PAcceptIncoming (`b-i2paccept`)](https://doxygen.vincoincore.org/class_c_connman.html#a57787b4f9ac847d24065fbb0dd6e70f8) : Listens for and accepts incoming I2P connections through the I2P SAM proxy. Ignoring IDE/editor files @@ -678,7 +678,7 @@ Ignoring IDE/editor files In closed-source environments in which everyone uses the same IDE, it is common to add temporary files it produces to the project-wide `.gitignore` file. -However, in open source software such as Bitcoin Core, where everyone uses +However, in open source software such as Vincoin Core, where everyone uses their own editors/IDE/tools, it is less common. Only you know what files your editor produces and this may change from version to version. The canonical way to do this is thus to create your local gitignore. Add this to `~/.gitconfig`: @@ -708,9 +708,9 @@ Development guidelines ============================ A few non-style-related recommendations for developers, as well as points to -pay attention to for reviewers of Bitcoin Core code. +pay attention to for reviewers of Vincoin Core code. -General Bitcoin Core +General Vincoin Core ---------------------- - New features should be exposed on RPC first, then can be made available in the GUI. @@ -932,7 +932,7 @@ Strings and formatting - For `strprintf`, `LogInfo`, `LogDebug`, etc formatting characters don't need size specifiers. - - *Rationale*: Bitcoin Core uses tinyformat, which is type safe. Leave them out to avoid confusion. + - *Rationale*: Vincoin Core uses tinyformat, which is type safe. Leave them out to avoid confusion. - Use `.c_str()` sparingly. Its only valid use is to pass C++ strings to C functions that take NULL-terminated strings. @@ -1189,13 +1189,13 @@ Subtrees Several parts of the repository are subtrees of software maintained elsewhere. -Some of these are maintained by active developers of Bitcoin Core, in which case +Some of these are maintained by active developers of Vincoin Core, in which case changes should go directly upstream without being PRed directly against the project. They will be merged back in the next subtree merge. Others are external projects without a tight relationship with our project. Changes to these should also be sent upstream, but bugfixes may also be prudent to PR against -a Bitcoin Core subtree, so that they can be integrated quickly. Cosmetic changes +a Vincoin Core subtree, so that they can be integrated quickly. Cosmetic changes should be taken upstream. There is a tool in `test/lint/git-subtree-check.sh` ([instructions](../test/lint#git-subtree-checksh)) @@ -1204,7 +1204,7 @@ to check a subtree directory for consistency with its upstream repository. Current subtrees include: - src/leveldb - - Subtree at https://github.com/bitcoin-core/leveldb-subtree ; maintained by Core contributors. + - Subtree at https://github.com/vincoin-core/leveldb-subtree ; maintained by Core contributors. - Upstream at https://github.com/google/leveldb ; maintained by Google. Open important PRs to the subtree to avoid delay. - **Note**: Follow the instructions in [Upgrading LevelDB](#upgrading-leveldb) when @@ -1212,14 +1212,14 @@ Current subtrees include: - src/crc32c - Used by leveldb for hardware acceleration of CRC32C checksums for data integrity. - - Subtree at https://github.com/bitcoin-core/crc32c-subtree ; maintained by Core contributors. + - Subtree at https://github.com/vincoin-core/crc32c-subtree ; maintained by Core contributors. - Upstream at https://github.com/google/crc32c ; maintained by Google. - src/secp256k1 - - Upstream at https://github.com/bitcoin-core/secp256k1/ ; maintained by Core contributors. + - Upstream at https://github.com/vincoin-core/secp256k1/ ; maintained by Core contributors. - src/crypto/ctaes - - Upstream at https://github.com/bitcoin-core/ctaes ; maintained by Core contributors. + - Upstream at https://github.com/vincoin-core/ctaes ; maintained by Core contributors. - src/minisketch - Upstream at https://github.com/sipa/minisketch ; maintained by Core contributors. @@ -1234,7 +1234,7 @@ you must be aware of. In most configurations, we use the default LevelDB value for `max_open_files`, which is 1000 at the time of this writing. If LevelDB actually uses this many -file descriptors, it will cause problems with Bitcoin's `select()` loop, because +file descriptors, it will cause problems with Vincoin's `select()` loop, because it may cause new sockets to be created where the fd value is >= 1024. For this reason, on 64-bit Unix systems, we rely on an internal LevelDB optimization that uses `mmap()` + `close()` to open table files without actually retaining @@ -1245,7 +1245,7 @@ In addition to reviewing the upstream changes in `env_posix.cc`, you can use `ls check this. For example, on Linux this command will show open `.ldb` file counts: ```bash -$ lsof -p $(pidof bitcoind) |\ +$ lsof -p $(pidof vincoind) |\ awk 'BEGIN { fd=0; mem=0; } /ldb$/ { if ($4 == "mem") mem++; else fd++ } END { printf "mem = %s, fd = %s\n", mem, fd}' mem = 119, fd = 0 ``` @@ -1260,14 +1260,14 @@ details. ### Consensus Compatibility It is possible for LevelDB changes to inadvertently change consensus -compatibility between nodes. This happened in Bitcoin 0.8 (when LevelDB was +compatibility between nodes. This happened in Vincoin 0.8 (when LevelDB was first introduced). When upgrading LevelDB, you should review the upstream changes to check for issues affecting consensus compatibility. For example, if LevelDB had a bug that accidentally prevented a key from being returned in an edge case, and that bug was fixed upstream, the bug "fix" would be an incompatible consensus change. In this situation, the correct behavior -would be to revert the upstream fix before applying the updates to Bitcoin's +would be to revert the upstream fix before applying the updates to Vincoin's copy of LevelDB. In general, you should be wary of any upstream changes affecting what data is returned from LevelDB queries. @@ -1313,13 +1313,13 @@ introduce accidental changes. Some good examples of scripted-diff: -- [scripted-diff: Rename InitInterfaces to NodeContext](https://github.com/bitcoin/bitcoin/commit/301bd41a2e6765b185bd55f4c541f9e27aeea29d) +- [scripted-diff: Rename InitInterfaces to NodeContext](https://github.com/vincoin/vincoin/commit/301bd41a2e6765b185bd55f4c541f9e27aeea29d) uses an elegant script to replace occurrences of multiple terms in all source files. -- [scripted-diff: Remove g_connman, g_banman globals](https://github.com/bitcoin/bitcoin/commit/8922d7f6b751a3e6b3b9f6fb7961c442877fb65a) +- [scripted-diff: Remove g_connman, g_banman globals](https://github.com/vincoin/vincoin/commit/8922d7f6b751a3e6b3b9f6fb7961c442877fb65a) replaces specific terms in a list of specific source files. -- [scripted-diff: Replace fprintf with tfm::format](https://github.com/bitcoin/bitcoin/commit/fac03ec43a15ad547161e37e53ea82482cc508f9) +- [scripted-diff: Replace fprintf with tfm::format](https://github.com/vincoin/vincoin/commit/fac03ec43a15ad547161e37e53ea82482cc508f9) does a global replacement but excludes certain directories. To find all previous uses of scripted diffs in the repository, do: @@ -1386,7 +1386,7 @@ A few guidelines for introducing and reviewing new RPC interfaces: - Try not to overload methods on argument type. E.g. don't make `getblock(true)` and `getblock("hash")` do different things. - - *Rationale*: This is impossible to use with `bitcoin-cli`, and can be surprising to users. + - *Rationale*: This is impossible to use with `vincoin-cli`, and can be surprising to users. - *Exception*: Some RPC calls can take both an `int` and `bool`, most notably when a bool was switched to a multi-value, or due to other historical reasons. **Always** have false map to 0 and @@ -1398,7 +1398,7 @@ A few guidelines for introducing and reviewing new RPC interfaces: - Add every non-string RPC argument `(method, idx, name)` to the table `vRPCConvertParams` in `rpc/client.cpp`. - - *Rationale*: `bitcoin-cli` and the GUI debug console use this table to determine how to + - *Rationale*: `vincoin-cli` and the GUI debug console use this table to determine how to convert a plaintext command line to JSON. If the types don't match, the method can be unusable from there. @@ -1419,7 +1419,7 @@ A few guidelines for introducing and reviewing new RPC interfaces: RPCs whose behavior does *not* depend on the current chainstate may omit this call. - - *Rationale*: In previous versions of Bitcoin Core, the wallet was always + - *Rationale*: In previous versions of Vincoin Core, the wallet was always in-sync with the chainstate (by virtue of them all being updated in the same cs_main lock). In order to maintain the behavior that wallet RPCs return results as of at least the highest best-known block an RPC @@ -1564,4 +1564,4 @@ communication: Note: This last convention isn't generally followed outside of [`src/interfaces/`](../src/interfaces/), though it did come up for discussion - before in [#14635](https://github.com/bitcoin/bitcoin/pull/14635). + before in [#14635](https://github.com/vincoin/vincoin/pull/14635). diff --git a/doc/dnsseed-policy.md b/doc/dnsseed-policy.md index 55a5c28258c67..2a47f3c37a31c 100644 --- a/doc/dnsseed-policy.md +++ b/doc/dnsseed-policy.md @@ -1,12 +1,12 @@ Expectations for DNS Seed operators ==================================== -Bitcoin Core attempts to minimize the level of trust in DNS seeds, +Vincoin Core attempts to minimize the level of trust in DNS seeds, but DNS seeds still pose a small amount of risk for the network. As such, DNS seeds must be run by entities which have some minimum -level of trust within the Bitcoin community. +level of trust within the Vincoin community. -Other implementations of Bitcoin software may also use the same +Other implementations of Vincoin software may also use the same seeds and may be more exposed. In light of this exposure, this document establishes some basic expectations for operating dnsseeds. @@ -16,7 +16,7 @@ and not sell or transfer control of the DNS seed. Any hosting services contracted by the operator are equally expected to uphold these expectations. 1. The DNS seed results must consist exclusively of fairly selected and -functioning Bitcoin nodes from the public network to the best of the +functioning Vincoin nodes from the public network to the best of the operator's understanding and capability. 2. For the avoidance of doubt, the results may be randomized but must not @@ -26,7 +26,7 @@ urgent technical necessity and disclosed. 3. The results may not be served with a DNS TTL of less than one minute. 4. Any logging of DNS queries should be only that which is necessary -for the operation of the service or urgent health of the Bitcoin +for the operation of the service or urgent health of the Vincoin network and must not be retained longer than necessary nor disclosed to any third party. @@ -42,13 +42,13 @@ details of their operating practices. related to the DNS seed operation. If these expectations cannot be satisfied the operator should -discontinue providing services and contact the active Bitcoin +discontinue providing services and contact the active Vincoin Core development team as well as posting on -[bitcoin-dev](https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev). +[vincoin-dev](https://lists.linuxfoundation.org/mailman/listinfo/vincoin-dev). Behavior outside of these expectations may be reasonable in some situations but should be discussed in public in advance. See also ---------- -- [bitcoin-seeder](https://github.com/sipa/bitcoin-seeder) is a reference implementation of a DNS seed. +- [vincoin-seeder](https://github.com/sipa/vincoin-seeder) is a reference implementation of a DNS seed. diff --git a/doc/external-signer.md b/doc/external-signer.md index de44cdd88013c..d6d6f9a5cba64 100644 --- a/doc/external-signer.md +++ b/doc/external-signer.md @@ -1,29 +1,29 @@ -# Support for signing transactions outside of Bitcoin Core +# Support for signing transactions outside of Vincoin Core -Bitcoin Core can be launched with `-signer=` where `` is an external tool which can sign transactions and perform other functions. For example, it can be used to communicate with a hardware wallet. +Vincoin Core can be launched with `-signer=` where `` is an external tool which can sign transactions and perform other functions. For example, it can be used to communicate with a hardware wallet. ## Example usage -The following example is based on the [HWI](https://github.com/bitcoin-core/HWI) tool. Version 2.0 or newer is required. Although this tool is hosted under the Bitcoin Core GitHub organization and maintained by Bitcoin Core developers, it should be used with caution. It is considered experimental and has far less review than Bitcoin Core itself. Be particularly careful when running tools such as these on a computer with private keys on it. +The following example is based on the [HWI](https://github.com/vincoin-core/HWI) tool. Version 2.0 or newer is required. Although this tool is hosted under the Vincoin Core GitHub organization and maintained by Vincoin Core developers, it should be used with caution. It is considered experimental and has far less review than Vincoin Core itself. Be particularly careful when running tools such as these on a computer with private keys on it. -When using a hardware wallet, consult the manufacturer website for (alternative) software they recommend. As long as their software conforms to the standard below, it should be able to work with Bitcoin Core. +When using a hardware wallet, consult the manufacturer website for (alternative) software they recommend. As long as their software conforms to the standard below, it should be able to work with Vincoin Core. -Start Bitcoin Core: +Start Vincoin Core: ```sh -$ bitcoind -signer=../HWI/hwi.py +$ vincoind -signer=../HWI/hwi.py ``` ### Device setup -Follow the hardware manufacturers instructions for the initial device setup, as well as their instructions for creating a backup. Alternatively, for some devices, you can use the `setup`, `restore` and `backup` commands provided by [HWI](https://github.com/bitcoin-core/HWI). +Follow the hardware manufacturers instructions for the initial device setup, as well as their instructions for creating a backup. Alternatively, for some devices, you can use the `setup`, `restore` and `backup` commands provided by [HWI](https://github.com/vincoin-core/HWI). ### Create wallet and import keys Get a list of signing devices / services: ``` -$ bitcoin-cli enumeratesigners +$ vincoin-cli enumeratesigners { "signers": [ { @@ -37,7 +37,7 @@ The master key fingerprint is used to identify a device. Create a wallet, this automatically imports the public keys: ```sh -$ bitcoin-cli createwallet "hww" true true "" true true true +$ vincoin-cli createwallet "hww" true true "" true true true ``` ### Verify an address @@ -45,18 +45,18 @@ $ bitcoin-cli createwallet "hww" true true "" true true true Display an address on the device: ```sh -$ bitcoin-cli -rpcwallet= getnewaddress -$ bitcoin-cli -rpcwallet= walletdisplayaddress
+$ vincoin-cli -rpcwallet= getnewaddress +$ vincoin-cli -rpcwallet= walletdisplayaddress
``` Replace `
` with the result of `getnewaddress`. ### Spending -Under the hood this uses a [Partially Signed Bitcoin Transaction](psbt.md). +Under the hood this uses a [Partially Signed Vincoin Transaction](psbt.md). ```sh -$ bitcoin-cli -rpcwallet= sendtoaddress
+$ vincoin-cli -rpcwallet= sendtoaddress
``` This prompts your hardware wallet to sign, and fail if it's not connected. If successful @@ -68,11 +68,11 @@ it automatically broadcasts the transaction. ## Signer API -In order to be compatible with Bitcoin Core any signer command should conform to the specification below. This specification is subject to change. Ideally a BIP should propose a standard so that other wallets can also make use of it. +In order to be compatible with Vincoin Core any signer command should conform to the specification below. This specification is subject to change. Ideally a BIP should propose a standard so that other wallets can also make use of it. Prerequisite knowledge: * [Output Descriptors](descriptors.md) -* Partially Signed Bitcoin Transaction ([PSBT](psbt.md)) +* Partially Signed Vincoin Transaction ([PSBT](psbt.md)) ### `enumerate` (required) @@ -156,7 +156,7 @@ If contains an xpub, the command MUST fail if it does not match the The command MAY complain if `--testnet` is set, but the BIP32 coin type is not `1h` (and vice versa). -## How Bitcoin Core uses the Signer API +## How Vincoin Core uses the Signer API The `enumeratesigners` RPC simply calls ` enumerate`. diff --git a/doc/files.md b/doc/files.md index f88d3f91a1c16..99dd28220c0c7 100644 --- a/doc/files.md +++ b/doc/files.md @@ -1,4 +1,4 @@ -# Bitcoin Core file system +# Vincoin Core file system **Contents** @@ -20,19 +20,19 @@ ## Data directory location -The data directory is the default location where the Bitcoin Core files are stored. +The data directory is the default location where the Vincoin Core files are stored. 1. The default data directory paths for supported platforms are: Platform | Data directory path ---------|-------------------- -Linux | `$HOME/.bitcoin/` -macOS | `$HOME/Library/Application Support/Bitcoin/` -Windows | `%APPDATA%\Bitcoin\` [\[1\]](#note1) +Linux | `$HOME/.vincoin/` +macOS | `$HOME/Library/Application Support/Vincoin/` +Windows | `%APPDATA%\Vincoin\` [\[1\]](#note1) 2. A custom data directory path can be specified with the `-datadir` option. -3. All content of the data directory, except for `bitcoin.conf` file, is chain-specific. This means the actual data directory paths for non-mainnet cases differ: +3. All content of the data directory, except for `vincoin.conf` file, is chain-specific. This means the actual data directory paths for non-mainnet cases differ: Chain option | Data directory path -------------------------------|------------------------------ @@ -47,7 +47,7 @@ Subdirectory | File(s) | Description -------------------|-----------------------|------------ `blocks/` | | Blocks directory; can be specified by `-blocksdir` option (except for `blocks/index/`) `blocks/index/` | LevelDB database | Block index; `-blocksdir` option does not affect this path -`blocks/` | `blkNNNNN.dat`[\[2\]](#note2) | Actual Bitcoin blocks (in network format, dumped in raw on disk, 128 MiB per file) +`blocks/` | `blkNNNNN.dat`[\[2\]](#note2) | Actual Vincoin blocks (in network format, dumped in raw on disk, 128 MiB per file) `blocks/` | `revNNNNN.dat`[\[2\]](#note2) | Block undo data (custom format) `chainstate/` | LevelDB database | Blockchain state (a compact representation of all currently unspent transaction outputs (UTXOs) and metadata about the transactions they are from) `indexes/txindex/` | LevelDB database | Transaction index; *optional*, used if `-txindex=1` @@ -57,9 +57,9 @@ Subdirectory | File(s) | Description `wallets/` | | [Contains wallets](#multi-wallet-environment); can be specified by `-walletdir` option; if `wallets/` subdirectory does not exist, wallets reside in the [data directory](#data-directory-location) `./` | `anchors.dat` | Anchor IP address database, created on shutdown and deleted at startup. Anchors are last known outgoing block-relay-only peers that are tried to re-connect to on startup `./` | `banlist.json` | Stores the addresses/subnets of banned nodes. -`./` | `bitcoin.conf` | User-defined [configuration settings](bitcoin-conf.md) for `bitcoind` or `bitcoin-qt`. File is not written to by the software and must be created manually. Path can be specified by `-conf` option -`./` | `bitcoind.pid` | Stores the process ID (PID) of `bitcoind` or `bitcoin-qt` while running; created at start and deleted on shutdown; can be specified by `-pid` option -`./` | `debug.log` | Contains debug information and general logging generated by `bitcoind` or `bitcoin-qt`; can be specified by `-debuglogfile` option +`./` | `vincoin.conf` | User-defined [configuration settings](vincoin-conf.md) for `vincoind` or `vincoin-qt`. File is not written to by the software and must be created manually. Path can be specified by `-conf` option +`./` | `vincoind.pid` | Stores the process ID (PID) of `vincoind` or `vincoin-qt` while running; created at start and deleted on shutdown; can be specified by `-pid` option +`./` | `debug.log` | Contains debug information and general logging generated by `vincoind` or `vincoin-qt`; can be specified by `-debuglogfile` option `./` | `fee_estimates.dat` | Stores statistics used to estimate minimum transaction fees required for confirmation `./` | `guisettings.ini.bak` | Backup of former [GUI settings](#gui-settings) after `-resetguisettings` option is used `./` | `ip_asn.map` | IP addresses to Autonomous System Numbers (ASNs) mapping used for bucketing of the peers; path can be specified with the `-asmap` option @@ -67,7 +67,7 @@ Subdirectory | File(s) | Description `./` | `onion_v3_private_key` | Cached Tor onion service private key for `-listenonion` option `./` | `i2p_private_key` | Private key that corresponds to our I2P address. When `-i2psam=` is specified the contents of this file is used to identify ourselves for making outgoing connections to I2P peers and possibly accepting incoming ones. Automatically generated if it does not exist. `./` | `peers.dat` | Peer IP address database (custom format) -`./` | `settings.json` | Read-write settings set through GUI or RPC interfaces, augmenting manual settings from [bitcoin.conf](bitcoin-conf.md). File is created automatically if read-write settings storage is not disabled with `-nosettings` option. Path can be specified with `-settings` option +`./` | `settings.json` | Read-write settings set through GUI or RPC interfaces, augmenting manual settings from [vincoin.conf](vincoin-conf.md). File is created automatically if read-write settings storage is not disabled with `-nosettings` option. Path can be specified with `-settings` option `./` | `.cookie` | Session RPC authentication cookie; if used, created at start and deleted on shutdown; can be specified by `-rpccookiefile` option `./` | `.lock` | Data directory lock file @@ -105,21 +105,21 @@ Subdirectory | File | Description ## GUI settings -`bitcoin-qt` uses [`QSettings`](https://doc.qt.io/qt-5/qsettings.html) class; this implies platform-specific [locations where application settings are stored](https://doc.qt.io/qt-5/qsettings.html#locations-where-application-settings-are-stored). +`vincoin-qt` uses [`QSettings`](https://doc.qt.io/qt-5/qsettings.html) class; this implies platform-specific [locations where application settings are stored](https://doc.qt.io/qt-5/qsettings.html#locations-where-application-settings-are-stored). ## Legacy subdirectories and files -These subdirectories and files are no longer used by Bitcoin Core: +These subdirectories and files are no longer used by Vincoin Core: Path | Description | Repository notes ---------------|-------------|----------------- -`banlist.dat` | Stores the addresses/subnets of banned nodes; superseded by `banlist.json` in 22.0 and completely ignored in 23.0 | [PR #20966](https://github.com/bitcoin/bitcoin/pull/20966), [PR #22570](https://github.com/bitcoin/bitcoin/pull/22570) -`blktree/` | Blockchain index; replaced by `blocks/index/` in [0.8.0](https://github.com/bitcoin/bitcoin/blob/master/doc/release-notes/release-notes-0.8.0.md#improvements) | [PR #2231](https://github.com/bitcoin/bitcoin/pull/2231), [`8fdc94cc`](https://github.com/bitcoin/bitcoin/commit/8fdc94cc8f0341e96b1edb3a5b56811c0b20bd15) -`coins/` | Unspent transaction output database; replaced by `chainstate/` in 0.8.0 | [PR #2231](https://github.com/bitcoin/bitcoin/pull/2231), [`8fdc94cc`](https://github.com/bitcoin/bitcoin/commit/8fdc94cc8f0341e96b1edb3a5b56811c0b20bd15) -`blkindex.dat` | Blockchain index BDB database; replaced by {`chainstate/`, `blocks/index/`, `blocks/revNNNNN.dat`[\[2\]](#note2)} in 0.8.0 | [PR #1677](https://github.com/bitcoin/bitcoin/pull/1677) -`blk000?.dat` | Block data (custom format, 2 GiB per file); replaced by `blocks/blkNNNNN.dat`[\[2\]](#note2) in 0.8.0 | [PR #1677](https://github.com/bitcoin/bitcoin/pull/1677) -`addr.dat` | Peer IP address BDB database; replaced by `peers.dat` in [0.7.0](https://github.com/bitcoin/bitcoin/blob/master/doc/release-notes/release-notes-0.7.0.md) | [PR #1198](https://github.com/bitcoin/bitcoin/pull/1198), [`928d3a01`](https://github.com/bitcoin/bitcoin/commit/928d3a011cc66c7f907c4d053f674ea77dc611cc) -`onion_private_key` | Cached Tor onion service private key for `-listenonion` option. Was used for Tor v2 services; replaced by `onion_v3_private_key` in [0.21.0](https://github.com/bitcoin/bitcoin/blob/master/doc/release-notes/release-notes-0.21.0.md) | [PR #19954](https://github.com/bitcoin/bitcoin/pull/19954) +`banlist.dat` | Stores the addresses/subnets of banned nodes; superseded by `banlist.json` in 22.0 and completely ignored in 23.0 | [PR #20966](https://github.com/vincoin/vincoin/pull/20966), [PR #22570](https://github.com/vincoin/vincoin/pull/22570) +`blktree/` | Blockchain index; replaced by `blocks/index/` in [0.8.0](https://github.com/vincoin/vincoin/blob/master/doc/release-notes/release-notes-0.8.0.md#improvements) | [PR #2231](https://github.com/vincoin/vincoin/pull/2231), [`8fdc94cc`](https://github.com/vincoin/vincoin/commit/8fdc94cc8f0341e96b1edb3a5b56811c0b20bd15) +`coins/` | Unspent transaction output database; replaced by `chainstate/` in 0.8.0 | [PR #2231](https://github.com/vincoin/vincoin/pull/2231), [`8fdc94cc`](https://github.com/vincoin/vincoin/commit/8fdc94cc8f0341e96b1edb3a5b56811c0b20bd15) +`blkindex.dat` | Blockchain index BDB database; replaced by {`chainstate/`, `blocks/index/`, `blocks/revNNNNN.dat`[\[2\]](#note2)} in 0.8.0 | [PR #1677](https://github.com/vincoin/vincoin/pull/1677) +`blk000?.dat` | Block data (custom format, 2 GiB per file); replaced by `blocks/blkNNNNN.dat`[\[2\]](#note2) in 0.8.0 | [PR #1677](https://github.com/vincoin/vincoin/pull/1677) +`addr.dat` | Peer IP address BDB database; replaced by `peers.dat` in [0.7.0](https://github.com/vincoin/vincoin/blob/master/doc/release-notes/release-notes-0.7.0.md) | [PR #1198](https://github.com/vincoin/vincoin/pull/1198), [`928d3a01`](https://github.com/vincoin/vincoin/commit/928d3a011cc66c7f907c4d053f674ea77dc611cc) +`onion_private_key` | Cached Tor onion service private key for `-listenonion` option. Was used for Tor v2 services; replaced by `onion_v3_private_key` in [0.21.0](https://github.com/vincoin/vincoin/blob/master/doc/release-notes/release-notes-0.21.0.md) | [PR #19954](https://github.com/vincoin/vincoin/pull/19954) ## Notes diff --git a/doc/fuzzing.md b/doc/fuzzing.md index a4b0198dd99fe..836dc9bf07125 100644 --- a/doc/fuzzing.md +++ b/doc/fuzzing.md @@ -1,16 +1,16 @@ -# Fuzzing Bitcoin Core using libFuzzer +# Fuzzing Vincoin Core using libFuzzer ## Quickstart guide -To quickly get started fuzzing Bitcoin Core using [libFuzzer](https://llvm.org/docs/LibFuzzer.html): +To quickly get started fuzzing Vincoin Core using [libFuzzer](https://llvm.org/docs/LibFuzzer.html): ```sh -$ git clone https://github.com/bitcoin/bitcoin -$ cd bitcoin/ +$ git clone https://github.com/vincoin/vincoin +$ cd vincoin/ $ ./autogen.sh $ CC=clang CXX=clang++ ./configure --enable-fuzz --with-sanitizers=address,fuzzer,undefined # macOS users: If you have problem with this step then make sure to read "macOS hints for -# libFuzzer" on https://github.com/bitcoin/bitcoin/blob/master/doc/fuzzing.md#macos-hints-for-libfuzzer +# libFuzzer" on https://github.com/vincoin/vincoin/blob/master/doc/fuzzing.md#macos-hints-for-libfuzzer $ make $ FUZZ=process_message src/test/fuzz/fuzz # abort fuzzing using ctrl-c @@ -19,13 +19,13 @@ $ FUZZ=process_message src/test/fuzz/fuzz There is also a runner script to execute all fuzz targets. Refer to `./test/fuzz/test_runner.py --help` for more details. -## Overview of Bitcoin Core fuzzing +## Overview of Vincoin Core fuzzing -[Google](https://github.com/google/fuzzing/) has a good overview of fuzzing in general, with contributions from key architects of some of the most-used fuzzers. [This paper](https://agroce.github.io/bitcoin_report.pdf) includes an external overview of the status of Bitcoin Core fuzzing, as of summer 2021. [John Regehr](https://blog.regehr.org/archives/1687) provides good advice on writing code that assists fuzzers in finding bugs, which is useful for developers to keep in mind. +[Google](https://github.com/google/fuzzing/) has a good overview of fuzzing in general, with contributions from key architects of some of the most-used fuzzers. [This paper](https://agroce.github.io/vincoin_report.pdf) includes an external overview of the status of Vincoin Core fuzzing, as of summer 2021. [John Regehr](https://blog.regehr.org/archives/1687) provides good advice on writing code that assists fuzzers in finding bugs, which is useful for developers to keep in mind. ## Fuzzing harnesses and output -[`process_message`](https://github.com/bitcoin/bitcoin/blob/master/src/test/fuzz/process_message.cpp) is a fuzzing harness for the [`ProcessMessage(...)` function (`net_processing`)](https://github.com/bitcoin/bitcoin/blob/master/src/net_processing.cpp). The available fuzzing harnesses are found in [`src/test/fuzz/`](https://github.com/bitcoin/bitcoin/tree/master/src/test/fuzz). +[`process_message`](https://github.com/vincoin/vincoin/blob/master/src/test/fuzz/process_message.cpp) is a fuzzing harness for the [`ProcessMessage(...)` function (`net_processing`)](https://github.com/vincoin/vincoin/blob/master/src/net_processing.cpp). The available fuzzing harnesses are found in [`src/test/fuzz/`](https://github.com/vincoin/vincoin/tree/master/src/test/fuzz). The fuzzer will output `NEW` every time it has created a test input that covers new areas of the code under test. For more information on how to interpret the fuzzer output, see the [libFuzzer documentation](https://llvm.org/docs/LibFuzzer.html). @@ -71,7 +71,7 @@ block^@M-^?M-^?M-^?M-^?M-^?nM-^?M-^? In this case the fuzzer managed to create a `block` message which when passed to `ProcessMessage(...)` increased coverage. -It is possible to specify `bitcoind` arguments to the `fuzz` executable. +It is possible to specify `vincoind` arguments to the `fuzz` executable. Depending on the test, they may be ignored or consumed and alter the behavior of the test. Just make sure to use double-dash to distinguish them from the fuzzer's own arguments: @@ -82,12 +82,12 @@ $ FUZZ=address_deserialize_v2 src/test/fuzz/fuzz -runs=1 fuzz_seed_corpus/addres ## Fuzzing corpora -The project's collection of seed corpora is found in the [`bitcoin-core/qa-assets`](https://github.com/bitcoin-core/qa-assets) repo. +The project's collection of seed corpora is found in the [`vincoin-core/qa-assets`](https://github.com/vincoin-core/qa-assets) repo. -To fuzz `process_message` using the [`bitcoin-core/qa-assets`](https://github.com/bitcoin-core/qa-assets) seed corpus: +To fuzz `process_message` using the [`vincoin-core/qa-assets`](https://github.com/vincoin-core/qa-assets) seed corpus: ```sh -$ git clone https://github.com/bitcoin-core/qa-assets +$ git clone https://github.com/vincoin-core/qa-assets $ FUZZ=process_message src/test/fuzz/fuzz qa-assets/fuzz_seed_corpus/process_message/ INFO: Seed: 1346407872 INFO: Loaded 1 modules (424174 inline 8-bit counters): 424174 [0x55d8a9004ab8, 0x55d8a906c3a6), @@ -101,7 +101,7 @@ INFO: seed corpus: files: 991 min: 1b max: 1858b total: 288291b rss: 150Mb ## Run without sanitizers for increased throughput -Fuzzing on a harness compiled with `--with-sanitizers=address,fuzzer,undefined` is good for finding bugs. However, the very slow execution even under libFuzzer will limit the ability to find new coverage. A good approach is to perform occasional long runs without the additional bug-detectors (configure `--with-sanitizers=fuzzer`) and then merge new inputs into a corpus as described in the qa-assets repo (https://github.com/bitcoin-core/qa-assets/blob/main/.github/PULL_REQUEST_TEMPLATE.md). Patience is useful; even with improved throughput, libFuzzer may need days and 10s of millions of executions to reach deep/hard targets. +Fuzzing on a harness compiled with `--with-sanitizers=address,fuzzer,undefined` is good for finding bugs. However, the very slow execution even under libFuzzer will limit the ability to find new coverage. A good approach is to perform occasional long runs without the additional bug-detectors (configure `--with-sanitizers=fuzzer`) and then merge new inputs into a corpus as described in the qa-assets repo (https://github.com/vincoin-core/qa-assets/blob/main/.github/PULL_REQUEST_TEMPLATE.md). Patience is useful; even with improved throughput, libFuzzer may need days and 10s of millions of executions to reach deep/hard targets. ## Reproduce a fuzzer crash reported by the CI @@ -117,9 +117,9 @@ Fuzzing on a harness compiled with `--with-sanitizers=address,fuzzer,undefined` ## Submit improved coverage -If you find coverage increasing inputs when fuzzing you are highly encouraged to submit them for inclusion in the [`bitcoin-core/qa-assets`](https://github.com/bitcoin-core/qa-assets) repo. +If you find coverage increasing inputs when fuzzing you are highly encouraged to submit them for inclusion in the [`vincoin-core/qa-assets`](https://github.com/vincoin-core/qa-assets) repo. -Every single pull request submitted against the Bitcoin Core repo is automatically tested against all inputs in the [`bitcoin-core/qa-assets`](https://github.com/bitcoin-core/qa-assets) repo. Contributing new coverage increasing inputs is an easy way to help make Bitcoin Core more robust. +Every single pull request submitted against the Vincoin Core repo is automatically tested against all inputs in the [`vincoin-core/qa-assets`](https://github.com/vincoin-core/qa-assets) repo. Contributing new coverage increasing inputs is an easy way to help make Vincoin Core more robust. ## macOS hints for libFuzzer @@ -129,7 +129,7 @@ example using `brew install llvm`. Should you run into problems with the address sanitizer, it is possible you may need to run `./configure` with `--disable-asm` to avoid errors -with certain assembly code from Bitcoin Core's code. See [developer notes on sanitizers](https://github.com/bitcoin/bitcoin/blob/master/doc/developer-notes.md#sanitizers) +with certain assembly code from Vincoin Core's code. See [developer notes on sanitizers](https://github.com/vincoin/vincoin/blob/master/doc/developer-notes.md#sanitizers) for more information. You may also need to take care of giving the correct path for `clang` and @@ -144,15 +144,15 @@ Full configure that was tested on macOS with `brew` installed `llvm`: Read the [libFuzzer documentation](https://llvm.org/docs/LibFuzzer.html) for more information. This [libFuzzer tutorial](https://github.com/google/fuzzing/blob/master/tutorial/libFuzzerTutorial.md) might also be of interest. -# Fuzzing Bitcoin Core using afl++ +# Fuzzing Vincoin Core using afl++ ## Quickstart guide -To quickly get started fuzzing Bitcoin Core using [afl++](https://github.com/AFLplusplus/AFLplusplus): +To quickly get started fuzzing Vincoin Core using [afl++](https://github.com/AFLplusplus/AFLplusplus): ```sh -$ git clone https://github.com/bitcoin/bitcoin -$ cd bitcoin/ +$ git clone https://github.com/vincoin/vincoin +$ cd vincoin/ $ git clone https://github.com/AFLplusplus/AFLplusplus $ make -C AFLplusplus/ source-only $ ./autogen.sh @@ -171,15 +171,15 @@ $ FUZZ=bech32 AFLplusplus/afl-fuzz -i inputs/ -o outputs/ -- src/test/fuzz/fuzz Read the [afl++ documentation](https://github.com/AFLplusplus/AFLplusplus) for more information. -# Fuzzing Bitcoin Core using Honggfuzz +# Fuzzing Vincoin Core using Honggfuzz ## Quickstart guide -To quickly get started fuzzing Bitcoin Core using [Honggfuzz](https://github.com/google/honggfuzz): +To quickly get started fuzzing Vincoin Core using [Honggfuzz](https://github.com/google/honggfuzz): ```sh -$ git clone https://github.com/bitcoin/bitcoin -$ cd bitcoin/ +$ git clone https://github.com/vincoin/vincoin +$ cd vincoin/ $ ./autogen.sh $ git clone https://github.com/google/honggfuzz $ cd honggfuzz/ @@ -193,10 +193,10 @@ $ FUZZ=process_message honggfuzz/honggfuzz -i inputs/ -- src/test/fuzz/fuzz Read the [Honggfuzz documentation](https://github.com/google/honggfuzz/blob/master/docs/USAGE.md) for more information. -## Fuzzing the Bitcoin Core P2P layer using Honggfuzz NetDriver +## Fuzzing the Vincoin Core P2P layer using Honggfuzz NetDriver -Honggfuzz NetDriver allows for very easy fuzzing of TCP servers such as Bitcoin -Core without having to write any custom fuzzing harness. The `bitcoind` server +Honggfuzz NetDriver allows for very easy fuzzing of TCP servers such as Vincoin +Core without having to write any custom fuzzing harness. The `vincoind` server process is largely fuzzed without modification. This makes the fuzzing highly realistic: a bug reachable by the fuzzer is likely @@ -205,10 +205,10 @@ also remotely triggerable by an untrusted peer. To quickly get started fuzzing the P2P layer using Honggfuzz NetDriver: ```sh -$ mkdir bitcoin-honggfuzz-p2p/ -$ cd bitcoin-honggfuzz-p2p/ -$ git clone https://github.com/bitcoin/bitcoin -$ cd bitcoin/ +$ mkdir vincoin-honggfuzz-p2p/ +$ cd vincoin-honggfuzz-p2p/ +$ git clone https://github.com/vincoin/vincoin +$ cd vincoin/ $ ./autogen.sh $ git clone https://github.com/google/honggfuzz $ cd honggfuzz/ @@ -259,24 +259,24 @@ index 7601a6ea84..702d0f56ce 100644 SanitizeString(msg.m_type), msg.m_message_size, HexStr(Span{hash}.first(CMessageHeader::CHECKSUM_SIZE)), EOF -$ make -C src/ bitcoind +$ make -C src/ vincoind $ mkdir -p inputs/ $ honggfuzz/honggfuzz --exit_upon_crash --quiet --timeout 4 -n 1 -Q \ -E HFND_TCP_PORT=18444 -f inputs/ -- \ - src/bitcoind -regtest -discover=0 -dns=0 -dnsseed=0 -listenonion=0 \ + src/vincoind -regtest -discover=0 -dns=0 -dnsseed=0 -listenonion=0 \ -nodebuglogfile -bind=127.0.0.1:18444 -logthreadnames \ -debug ``` -# Fuzzing Bitcoin Core using Eclipser (v1.x) +# Fuzzing Vincoin Core using Eclipser (v1.x) ## Quickstart guide -To quickly get started fuzzing Bitcoin Core using [Eclipser v1.x](https://github.com/SoftSec-KAIST/Eclipser/tree/v1.x): +To quickly get started fuzzing Vincoin Core using [Eclipser v1.x](https://github.com/SoftSec-KAIST/Eclipser/tree/v1.x): ```sh -$ git clone https://github.com/bitcoin/bitcoin -$ cd bitcoin/ +$ git clone https://github.com/vincoin/vincoin +$ cd vincoin/ $ sudo vim /etc/apt/sources.list # Uncomment the lines starting with 'deb-src'. $ sudo apt-get update $ sudo apt-get build-dep qemu @@ -324,27 +324,27 @@ be decoded in the same way. Fuzzing with Eclipser will likely be much more effective if using an existing corpus: ```sh -$ git clone https://github.com/bitcoin-core/qa-assets +$ git clone https://github.com/vincoin-core/qa-assets $ FUZZ=bech32 dotnet Eclipser/build/Eclipser.dll fuzz -p src/test/fuzz/fuzz -t 36000 -i qa-assets/fuzz_seed_corpus/bech32 outputs --src stdin ``` Note that fuzzing with Eclipser on certain targets (those that create 'full nodes', e.g. `process_message*`) will, for now, slowly fill `/tmp/` with improperly cleaned-up files, which will cause spurious crashes. -See [this proposed patch](https://github.com/bitcoin/bitcoin/pull/22472) for more information. +See [this proposed patch](https://github.com/vincoin/vincoin/pull/22472) for more information. Read the [Eclipser documentation for v1.x](https://github.com/SoftSec-KAIST/Eclipser/tree/v1.x) for more details on using Eclipser. # OSS-Fuzz -Bitcoin Core participates in Google's [OSS-Fuzz](https://github.com/google/oss-fuzz/tree/master/projects/bitcoin-core) -program, which includes a dashboard of [publicly disclosed vulnerabilities](https://bugs.chromium.org/p/oss-fuzz/issues/list?q=bitcoin-core). +Vincoin Core participates in Google's [OSS-Fuzz](https://github.com/google/oss-fuzz/tree/master/projects/vincoin-core) +program, which includes a dashboard of [publicly disclosed vulnerabilities](https://bugs.chromium.org/p/oss-fuzz/issues/list?q=vincoin-core). Generally, we try to disclose vulnerabilities as soon as possible after they are fixed to give users the knowledge they need to be protected. However, -because Bitcoin is a live P2P network, and not just standalone local software, +because Vincoin is a live P2P network, and not just standalone local software, we might not fully disclose every issue within Google's standard [90-day disclosure window](https://google.github.io/oss-fuzz/getting-started/bug-disclosure-guidelines/) if a partial or delayed disclosure is important to protect users or the function of the network. -OSS-Fuzz also produces [a fuzzing coverage report](https://oss-fuzz.com/coverage-report/job/libfuzzer_asan_bitcoin-core/latest). +OSS-Fuzz also produces [a fuzzing coverage report](https://oss-fuzz.com/coverage-report/job/libfuzzer_asan_vincoin-core/latest). diff --git a/doc/guix.md b/doc/guix.md index fa9c74f4860f5..81f8b35eadbee 100644 --- a/doc/guix.md +++ b/doc/guix.md @@ -1,3 +1,3 @@ -# Bootstrappable Bitcoin Core Builds +# Bootstrappable Vincoin Core Builds See [contrib/guix/README.md](../contrib/guix/README.md) diff --git a/doc/i2p.md b/doc/i2p.md index b6c07388b7816..e8b236bf84f37 100644 --- a/doc/i2p.md +++ b/doc/i2p.md @@ -1,16 +1,16 @@ -# I2P support in Bitcoin Core +# I2P support in Vincoin Core -It is possible to run Bitcoin Core as an +It is possible to run Vincoin Core as an [I2P (Invisible Internet Project)](https://en.wikipedia.org/wiki/I2P) service and connect to such services. This [glossary](https://geti2p.net/en/about/glossary) may be useful to get started with I2P terminology. -## Run Bitcoin Core with an I2P router (proxy) +## Run Vincoin Core with an I2P router (proxy) A running I2P router (proxy) is required with the [SAM](https://geti2p.net/en/docs/api/samv3) -application bridge enabled. The following routers are recommended for use with Bitcoin Core: +application bridge enabled. The following routers are recommended for use with Vincoin Core: - [i2prouter (I2P Router)](https://geti2p.net), the official implementation in Java. The SAM bridge is not enabled by default; it must be started manually, @@ -23,7 +23,7 @@ application bridge enabled. The following routers are recommended for use with B Note the IP address and port the SAM proxy is listening to; usually, it is `127.0.0.1:7656`. -Once an I2P router with SAM enabled is up and running, use the following Bitcoin +Once an I2P router with SAM enabled is up and running, use the following Vincoin Core configuration options: ``` @@ -41,7 +41,7 @@ Core configuration options: In a typical situation, this suffices: ``` -bitcoind -i2psam=127.0.0.1:7656 +vincoind -i2psam=127.0.0.1:7656 ``` ## Additional configuration options related to I2P @@ -51,7 +51,7 @@ bitcoind -i2psam=127.0.0.1:7656 ``` Set the `debug=i2p` config logging option to see additional information in the -debug log about your I2P configuration and connections. Run `bitcoin-cli help +debug log about your I2P configuration and connections. Run `vincoin-cli help logging` for more information. ``` @@ -62,11 +62,11 @@ Make automatic outbound connections only to I2P addresses. Inbound and manual connections are not affected by this option. It can be specified multiple times to allow multiple networks, e.g. onlynet=onion, onlynet=i2p. -I2P support was added to Bitcoin Core in version 22.0 and there may be fewer I2P +I2P support was added to Vincoin Core in version 22.0 and there may be fewer I2P peers than Tor or IP ones. Therefore, using I2P alone without other networks may make a node more susceptible to [Sybil -attacks](https://en.bitcoin.it/wiki/Weaknesses#Sybil_attack). You can use -`bitcoin-cli -addrinfo` to see the number of I2P addresses known to your node. +attacks](https://en.vincoin.it/wiki/Weaknesses#Sybil_attack). You can use +`vincoin-cli -addrinfo` to see the number of I2P addresses known to your node. Another consideration with `onlynet=i2p` is that the initial blocks download phase when syncing up a new node can be very slow. This phase can be sped up by @@ -78,10 +78,10 @@ one of the networks has issues. ## Persistent vs transient I2P addresses -The first time Bitcoin Core connects to the I2P router, it automatically +The first time Vincoin Core connects to the I2P router, it automatically generates a persistent I2P address and its corresponding private key by default or if `-i2pacceptincoming=1` is set. The private key is saved in a file named -`i2p_private_key` in the Bitcoin Core data directory. The persistent I2P +`i2p_private_key` in the Vincoin Core data directory. The persistent I2P address is used for making outbound connections and accepting inbound connections. @@ -98,25 +98,25 @@ I2P addresses are designed to be long-lived. Waiting for tunnels to be built for every peer connection adds delay to connection setup time. Therefore, I2P listening should only be turned off if really needed. -## Fetching I2P-related information from Bitcoin Core +## Fetching I2P-related information from Vincoin Core -There are several ways to see your I2P address in Bitcoin Core if accepting +There are several ways to see your I2P address in Vincoin Core if accepting incoming I2P connections (`-i2pacceptincoming`): - in the "Local addresses" output of CLI `-netinfo` - in the "localaddresses" output of RPC `getnetworkinfo` - in the debug log (grep for `AddLocal`; the I2P address ends in `.b32.i2p`) -To see which I2P peers your node is connected to, use `bitcoin-cli -netinfo 4` -or the `getpeerinfo` RPC (e.g. `bitcoin-cli getpeerinfo`). +To see which I2P peers your node is connected to, use `vincoin-cli -netinfo 4` +or the `getpeerinfo` RPC (e.g. `vincoin-cli getpeerinfo`). -You can use the `getnodeaddresses` RPC to fetch a number of I2P peers known to your node; run `bitcoin-cli help getnodeaddresses` for details. +You can use the `getnodeaddresses` RPC to fetch a number of I2P peers known to your node; run `vincoin-cli help getnodeaddresses` for details. ## Compatibility -Bitcoin Core uses the [SAM v3.1](https://geti2p.net/en/docs/api/samv3) protocol +Vincoin Core uses the [SAM v3.1](https://geti2p.net/en/docs/api/samv3) protocol to connect to the I2P network. Any I2P router that supports it can be used. -## Ports in I2P and Bitcoin Core +## Ports in I2P and Vincoin Core One particularity of SAM v3.1 is that it does not support ports, unlike newer versions of SAM (v3.2 and up) that do support them and default the @@ -124,18 +124,18 @@ port numbers to 0. From the point of view of peers that use newer versions of SAM or other protocols that support ports, a SAM v3.1 peer is connecting to them on port 0, from source port 0. -To allow future upgrades to newer versions of SAM, Bitcoin Core sets its +To allow future upgrades to newer versions of SAM, Vincoin Core sets its listening port to 0 when listening for incoming I2P connections and advertises its own I2P address with port 0. Furthermore, it will not attempt to connect to I2P addresses with a non-zero port number because with SAM v3.1 the destination -port (`TO_PORT`) is always set to 0 and is not in the control of Bitcoin Core. +port (`TO_PORT`) is always set to 0 and is not in the control of Vincoin Core. ## Bandwidth By default, your node shares bandwidth and transit tunnels with the I2P network in order to increase your anonymity with cover traffic, help the I2P router used by your node integrate optimally with the network, and give back to the network. -It's important that the nodes of a popular application like Bitcoin contribute +It's important that the nodes of a popular application like Vincoin contribute as much to the I2P network as they consume. It is possible, though strongly discouraged, to change your I2P router @@ -162,7 +162,7 @@ in [Embedding I2P in your Application](https://geti2p.net/en/docs/applications/e In most cases, the default router settings should work fine. -## Bundling I2P in a Bitcoin application +## Bundling I2P in a Vincoin application Please see the "General Guidance for Developers" section in https://geti2p.net/en/docs/api/samv3 -if you are developing a downstream application that may be bundling I2P with Bitcoin. +if you are developing a downstream application that may be bundling I2P with Vincoin. diff --git a/doc/init.md b/doc/init.md index 7f7902771802e..e4fd4d570e0ca 100644 --- a/doc/init.md +++ b/doc/init.md @@ -1,36 +1,36 @@ -Sample init scripts and service configuration for bitcoind +Sample init scripts and service configuration for vincoind ========================================================== Sample scripts and configuration files for systemd, Upstart and OpenRC can be found in the contrib/init folder. - contrib/init/bitcoind.service: systemd service unit configuration - contrib/init/bitcoind.openrc: OpenRC compatible SysV style init script - contrib/init/bitcoind.openrcconf: OpenRC conf.d file - contrib/init/bitcoind.conf: Upstart service configuration file - contrib/init/bitcoind.init: CentOS compatible SysV style init script + contrib/init/vincoind.service: systemd service unit configuration + contrib/init/vincoind.openrc: OpenRC compatible SysV style init script + contrib/init/vincoind.openrcconf: OpenRC conf.d file + contrib/init/vincoind.conf: Upstart service configuration file + contrib/init/vincoind.init: CentOS compatible SysV style init script Service User --------------------------------- -All three Linux startup configurations assume the existence of a "bitcoin" user +All three Linux startup configurations assume the existence of a "vincoin" user and group. They must be created before attempting to use these scripts. -The macOS configuration assumes bitcoind will be set up for the current user. +The macOS configuration assumes vincoind will be set up for the current user. Configuration --------------------------------- -Running bitcoind as a daemon does not require any manual configuration. You may -set the `rpcauth` setting in the `bitcoin.conf` configuration file to override +Running vincoind as a daemon does not require any manual configuration. You may +set the `rpcauth` setting in the `vincoin.conf` configuration file to override the default behaviour of using a special cookie for authentication. This password does not have to be remembered or typed as it is mostly used -as a fixed token that bitcoind and client programs read from the configuration +as a fixed token that vincoind and client programs read from the configuration file, however it is recommended that a strong and secure password be used as this password is security critical to securing the wallet should the wallet be enabled. -If bitcoind is run with the "-server" flag (set by default), and no rpcpassword is set, +If vincoind is run with the "-server" flag (set by default), and no rpcpassword is set, it will use a special cookie file for authentication. The cookie is generated with random content when the daemon starts, and deleted when it exits. Read access to this file controls who can access it through RPC. @@ -38,13 +38,13 @@ controls who can access it through RPC. By default the cookie is stored in the data directory, but it's location can be overridden with the option '-rpccookiefile'. -This allows for running bitcoind without having to do any manual configuration. +This allows for running vincoind without having to do any manual configuration. `conf`, `pid`, and `wallet` accept relative paths which are interpreted as relative to the data directory. `wallet` *only* supports relative paths. For an example configuration file that describes the configuration settings, -see `share/examples/bitcoin.conf`. +see `share/examples/vincoin.conf`. Paths --------------------------------- @@ -53,41 +53,41 @@ Paths All three configurations assume several paths that might need to be adjusted. - Binary: /usr/bin/bitcoind - Configuration file: /etc/bitcoin/bitcoin.conf - Data directory: /var/lib/bitcoind - PID file: /var/run/bitcoind/bitcoind.pid (OpenRC and Upstart) or - /run/bitcoind/bitcoind.pid (systemd) - Lock file: /var/lock/subsys/bitcoind (CentOS) + Binary: /usr/bin/vincoind + Configuration file: /etc/vincoin/vincoin.conf + Data directory: /var/lib/vincoind + PID file: /var/run/vincoind/vincoind.pid (OpenRC and Upstart) or + /run/vincoind/vincoind.pid (systemd) + Lock file: /var/lock/subsys/vincoind (CentOS) The PID directory (if applicable) and data directory should both be owned by the -bitcoin user and group. It is advised for security reasons to make the -configuration file and data directory only readable by the bitcoin user and -group. Access to bitcoin-cli and other bitcoind rpc clients can then be +vincoin user and group. It is advised for security reasons to make the +configuration file and data directory only readable by the vincoin user and +group. Access to vincoin-cli and other vincoind rpc clients can then be controlled by group membership. NOTE: When using the systemd .service file, the creation of the aforementioned directories and the setting of their permissions is automatically handled by -systemd. Directories are given a permission of 710, giving the bitcoin group +systemd. Directories are given a permission of 710, giving the vincoin group access to files under it _if_ the files themselves give permission to the -bitcoin group to do so. This does not allow +vincoin group to do so. This does not allow for the listing of files under the directory. NOTE: It is not currently possible to override `datadir` in -`/etc/bitcoin/bitcoin.conf` with the current systemd, OpenRC, and Upstart init +`/etc/vincoin/vincoin.conf` with the current systemd, OpenRC, and Upstart init files out-of-the-box. This is because the command line options specified in the init files take precedence over the configurations in -`/etc/bitcoin/bitcoin.conf`. However, some init systems have their own +`/etc/vincoin/vincoin.conf`. However, some init systems have their own configuration mechanisms that would allow for overriding the command line options specified in the init files (e.g. setting `BITCOIND_DATADIR` for OpenRC). ### macOS - Binary: /usr/local/bin/bitcoind - Configuration file: ~/Library/Application Support/Bitcoin/bitcoin.conf - Data directory: ~/Library/Application Support/Bitcoin - Lock file: ~/Library/Application Support/Bitcoin/.lock + Binary: /usr/local/bin/vincoind + Configuration file: ~/Library/Application Support/Vincoin/vincoin.conf + Data directory: ~/Library/Application Support/Vincoin + Lock file: ~/Library/Application Support/Vincoin/.lock Installing Service Configuration ----------------------------------- @@ -98,23 +98,23 @@ Installing this .service file consists of just copying it to /usr/lib/systemd/system directory, followed by the command `systemctl daemon-reload` in order to update running systemd configuration. -To test, run `systemctl start bitcoind` and to enable for system startup run -`systemctl enable bitcoind` +To test, run `systemctl start vincoind` and to enable for system startup run +`systemctl enable vincoind` NOTE: When installing for systemd in Debian/Ubuntu the .service file needs to be copied to the /lib/systemd/system directory instead. ### OpenRC -Rename bitcoind.openrc to bitcoind and drop it in /etc/init.d. Double +Rename vincoind.openrc to vincoind and drop it in /etc/init.d. Double check ownership and permissions and make it executable. Test it with -`/etc/init.d/bitcoind start` and configure it to run on startup with -`rc-update add bitcoind` +`/etc/init.d/vincoind start` and configure it to run on startup with +`rc-update add vincoind` ### Upstart (for Debian/Ubuntu based distributions) Upstart is the default init system for Debian/Ubuntu versions older than 15.04. If you are using version 15.04 or newer and haven't manually configured upstart you should follow the systemd instructions instead. -Drop bitcoind.conf in /etc/init. Test by running `service bitcoind start` +Drop vincoind.conf in /etc/init. Test by running `service vincoind start` it will automatically start on reboot. NOTE: This script is incompatible with CentOS 5 and Amazon Linux 2014 as they @@ -122,22 +122,22 @@ use old versions of Upstart and do not supply the start-stop-daemon utility. ### CentOS -Copy bitcoind.init to /etc/init.d/bitcoind. Test by running `service bitcoind start`. +Copy vincoind.init to /etc/init.d/vincoind. Test by running `service vincoind start`. -Using this script, you can adjust the path and flags to the bitcoind program by +Using this script, you can adjust the path and flags to the vincoind program by setting the BITCOIND and FLAGS environment variables in the file -/etc/sysconfig/bitcoind. You can also use the DAEMONOPTS environment variable here. +/etc/sysconfig/vincoind. You can also use the DAEMONOPTS environment variable here. ### macOS -Copy org.bitcoin.bitcoind.plist into ~/Library/LaunchAgents. Load the launch agent by -running `launchctl load ~/Library/LaunchAgents/org.bitcoin.bitcoind.plist`. +Copy org.vincoin.vincoind.plist into ~/Library/LaunchAgents. Load the launch agent by +running `launchctl load ~/Library/LaunchAgents/org.vincoin.vincoind.plist`. -This Launch Agent will cause bitcoind to start whenever the user logs in. +This Launch Agent will cause vincoind to start whenever the user logs in. -NOTE: This approach is intended for those wanting to run bitcoind as the current user. -You will need to modify org.bitcoin.bitcoind.plist if you intend to use it as a -Launch Daemon with a dedicated bitcoin user. +NOTE: This approach is intended for those wanting to run vincoind as the current user. +You will need to modify org.vincoin.vincoind.plist if you intend to use it as a +Launch Daemon with a dedicated vincoin user. Auto-respawn ----------------------------------- diff --git a/doc/man/Makefile.am b/doc/man/Makefile.am index 8f890da5327b1..65f9cbb58f625 100644 --- a/doc/man/Makefile.am +++ b/doc/man/Makefile.am @@ -1,27 +1,27 @@ dist_man1_MANS= if BUILD_BITCOIND - dist_man1_MANS+=bitcoind.1 + dist_man1_MANS+=vincoind.1 endif if ENABLE_QT - dist_man1_MANS+=bitcoin-qt.1 + dist_man1_MANS+=vincoin-qt.1 endif if BUILD_BITCOIN_CLI - dist_man1_MANS+=bitcoin-cli.1 + dist_man1_MANS+=vincoin-cli.1 endif if BUILD_BITCOIN_TX - dist_man1_MANS+=bitcoin-tx.1 + dist_man1_MANS+=vincoin-tx.1 endif if BUILD_BITCOIN_UTIL - dist_man1_MANS+=bitcoin-util.1 + dist_man1_MANS+=vincoin-util.1 endif if ENABLE_WALLET if BUILD_BITCOIN_WALLET - dist_man1_MANS+=bitcoin-wallet.1 + dist_man1_MANS+=vincoin-wallet.1 endif endif diff --git a/doc/man/vincoin-cli.1 b/doc/man/vincoin-cli.1 index 6bcad7006b08c..37167df894182 100644 --- a/doc/man/vincoin-cli.1 +++ b/doc/man/vincoin-cli.1 @@ -1,5 +1,5 @@ .TH BITCOIN-CLI "1" .SH NAME -bitcoin-cli \- manual page for bitcoin-cli +vincoin-cli \- manual page for vincoin-cli This is a placeholder file. Please follow the instructions in \fIcontrib/devtools/README.md\fR to generate the manual pages after a release. diff --git a/doc/man/vincoin-qt.1 b/doc/man/vincoin-qt.1 index ff4d1d2c7ac2e..3605b7b60bdd8 100644 --- a/doc/man/vincoin-qt.1 +++ b/doc/man/vincoin-qt.1 @@ -1,5 +1,5 @@ .TH BITCOIN-QT "1" .SH NAME -bitcoin-qt \- manual page for bitcoin-qt +vincoin-qt \- manual page for vincoin-qt This is a placeholder file. Please follow the instructions in \fIcontrib/devtools/README.md\fR to generate the manual pages after a release. diff --git a/doc/man/vincoin-tx.1 b/doc/man/vincoin-tx.1 index 776bb462342a6..a58f35c42317d 100644 --- a/doc/man/vincoin-tx.1 +++ b/doc/man/vincoin-tx.1 @@ -1,5 +1,5 @@ .TH BITCOIN-TX "1" .SH NAME -bitcoin-tx \- manual page for bitcoin-tx +vincoin-tx \- manual page for vincoin-tx This is a placeholder file. Please follow the instructions in \fIcontrib/devtools/README.md\fR to generate the manual pages after a release. diff --git a/doc/man/vincoin-util.1 b/doc/man/vincoin-util.1 index 5c733c6e21dcc..4e85c2f8f58f1 100644 --- a/doc/man/vincoin-util.1 +++ b/doc/man/vincoin-util.1 @@ -1,5 +1,5 @@ .TH BITCOIN-UTIL "1" .SH NAME -bitcoin-util \- manual page for bitcoin-util +vincoin-util \- manual page for vincoin-util This is a placeholder file. Please follow the instructions in \fIcontrib/devtools/README.md\fR to generate the manual pages after a release. diff --git a/doc/man/vincoin-wallet.1 b/doc/man/vincoin-wallet.1 index 2da43dec66398..577925d7caa84 100644 --- a/doc/man/vincoin-wallet.1 +++ b/doc/man/vincoin-wallet.1 @@ -1,5 +1,5 @@ .TH BITCOIN-WALLET "1" .SH NAME -bitcoin-wallet \- manual page for bitcoin-wallet +vincoin-wallet \- manual page for vincoin-wallet This is a placeholder file. Please follow the instructions in \fIcontrib/devtools/README.md\fR to generate the manual pages after a release. diff --git a/doc/man/vincoind.1 b/doc/man/vincoind.1 index 2c88f745205bc..fb2075ffef2b9 100644 --- a/doc/man/vincoind.1 +++ b/doc/man/vincoind.1 @@ -1,5 +1,5 @@ .TH BITCOIND "1" .SH NAME -bitcoind \- manual page for bitcoind +vincoind \- manual page for vincoind This is a placeholder file. Please follow the instructions in \fIcontrib/devtools/README.md\fR to generate the manual pages after a release. diff --git a/doc/managing-wallets.md b/doc/managing-wallets.md index 22e006c9639e9..152c212824632 100644 --- a/doc/managing-wallets.md +++ b/doc/managing-wallets.md @@ -4,24 +4,24 @@ ### 1.1 Creating the Wallet -Since version 0.21, Bitcoin Core no longer has a default wallet. +Since version 0.21, Vincoin Core no longer has a default wallet. Wallets can be created with the `createwallet` RPC or with the `Create wallet` GUI menu item. In the GUI, the `Create a new wallet` button is displayed on the main screen when there is no wallet loaded. Alternatively, there is the option `File` ->`Create wallet`. -The following command, for example, creates a descriptor wallet. More information about this command may be found by running `bitcoin-cli help createwallet`. +The following command, for example, creates a descriptor wallet. More information about this command may be found by running `vincoin-cli help createwallet`. ``` -$ bitcoin-cli createwallet "wallet-01" +$ vincoin-cli createwallet "wallet-01" ``` By default, wallets are created in the `wallets` folder of the data directory, which varies by operating system, as shown below. The user can change the default by using the `-datadir` or `-walletdir` initialization parameters. | Operating System | Default wallet directory | | -----------------|:------------------------------------------------------------| -| Linux | `/home//.bitcoin/wallets` | -| Windows | `C:\Users\\AppData\Roaming\Bitcoin\wallets` | -| macOS | `/Users//Library/Application Support/Bitcoin/wallets` | +| Linux | `/home//.vincoin/wallets` | +| Windows | `C:\Users\\AppData\Roaming\Vincoin\wallets` | +| macOS | `/Users//Library/Application Support/Vincoin/wallets` | ### 1.2 Encrypting the Wallet @@ -31,18 +31,18 @@ Wallet encryption may prevent unauthorized access. However, this significantly i Wallet encryption may also not protect against more sophisticated attacks. An attacker can, for example, obtain the password by installing a keylogger on the user's machine. -After encrypting the wallet or changing the passphrase, a new backup needs to be created immediately. The reason is that the keypool is flushed and a new HD seed is generated after encryption. Any bitcoins received by the new seed cannot be recovered from the previous backups. +After encrypting the wallet or changing the passphrase, a new backup needs to be created immediately. The reason is that the keypool is flushed and a new HD seed is generated after encryption. Any vincoins received by the new seed cannot be recovered from the previous backups. The wallet's private key may be encrypted with the following command: ``` -$ bitcoin-cli -rpcwallet="wallet-01" encryptwallet "passphrase" +$ vincoin-cli -rpcwallet="wallet-01" encryptwallet "passphrase" ``` Once encrypted, the passphrase can be changed with the `walletpassphrasechange` command. ``` -$ bitcoin-cli -rpcwallet="wallet-01" walletpassphrasechange "oldpassphrase" "newpassphrase" +$ vincoin-cli -rpcwallet="wallet-01" walletpassphrasechange "oldpassphrase" "newpassphrase" ``` The argument passed to `-rpcwallet` is the name of the wallet to be encrypted. @@ -52,17 +52,17 @@ Only the wallet's private key is encrypted. All other wallet information, such a The wallet's private key can also be encrypted in the `createwallet` command via the `passphrase` argument: ``` -$ bitcoin-cli -named createwallet wallet_name="wallet-01" passphrase="passphrase" +$ vincoin-cli -named createwallet wallet_name="wallet-01" passphrase="passphrase" ``` Note that if the passphrase is lost, all the coins in the wallet will also be lost forever. ### 1.3 Unlocking the Wallet -If the wallet is encrypted and the user tries any operation related to private keys, such as sending bitcoins, an error message will be displayed. +If the wallet is encrypted and the user tries any operation related to private keys, such as sending vincoins, an error message will be displayed. ``` -$ bitcoin-cli -rpcwallet="wallet-01" sendtoaddress "tb1qw508d6qejxtdg4y5r3zarvary0c5xw7kxpjzsx" 0.01 +$ vincoin-cli -rpcwallet="wallet-01" sendtoaddress "tb1qw508d6qejxtdg4y5r3zarvary0c5xw7kxpjzsx" 0.01 error code: -13 error message: Error: Please enter the wallet passphrase with walletpassphrase first. @@ -73,10 +73,10 @@ To unlock the wallet and allow it to run these operations, the `walletpassphrase This command takes the passphrase and an argument called `timeout`, which specifies the time in seconds that the wallet decryption key is stored in memory. After this period expires, the user needs to execute this RPC again. ``` -$ bitcoin-cli -rpcwallet="wallet-01" walletpassphrase "passphrase" 120 +$ vincoin-cli -rpcwallet="wallet-01" walletpassphrase "passphrase" 120 ``` -In the GUI, there is no specific menu item to unlock the wallet. When the user sends bitcoins, the passphrase will be prompted automatically. +In the GUI, there is no specific menu item to unlock the wallet. When the user sends vincoins, the passphrase will be prompted automatically. ### 1.4 Backing Up the Wallet @@ -85,7 +85,7 @@ To backup the wallet, the `backupwallet` RPC or the `Backup Wallet` GUI menu ite In the RPC, the destination parameter must include the name of the file. Otherwise, the command will return an error message like "Error: Wallet backup failed!" for descriptor wallets. If it is a legacy wallet, it will be copied and a file will be created with the default file name `wallet.dat`. ``` -$ bitcoin-cli -rpcwallet="wallet-01" backupwallet /home/node01/Backups/backup-01.dat +$ vincoin-cli -rpcwallet="wallet-01" backupwallet /home/node01/Backups/backup-01.dat ``` In the GUI, the wallet is selected in the `Wallet` drop-down list in the upper right corner. If this list is not present, the wallet can be loaded in `File` ->`Open Wallet` if necessary. Then, the backup can be done in `File` -> `Backup Wallet…`. @@ -94,13 +94,13 @@ This backup file can be stored on one or multiple offline devices, which must be If the computer has malware, it can compromise the wallet when recovering the backup file. One way to minimize this is to not connect the backup to an online device. -If both the wallet and all backups are lost for any reason, the bitcoins related to this wallet will become permanently inaccessible. +If both the wallet and all backups are lost for any reason, the vincoins related to this wallet will become permanently inaccessible. ### 1.5 Backup Frequency -The original Bitcoin Core wallet was a collection of unrelated private keys. If a non-HD wallet had received funds to an address and then was restored from a backup made before the address was generated, then any funds sent to that address would have been lost because there was no deterministic mechanism to derive the address again. +The original Vincoin Core wallet was a collection of unrelated private keys. If a non-HD wallet had received funds to an address and then was restored from a backup made before the address was generated, then any funds sent to that address would have been lost because there was no deterministic mechanism to derive the address again. -Bitcoin Core [version 0.13](https://github.com/bitcoin/bitcoin/blob/master/doc/release-notes/release-notes-0.13.0.md) introduced HD wallets with deterministic key derivation. With HD wallets, users no longer lose funds when restoring old backups because all addresses are derived from the HD wallet seed. +Vincoin Core [version 0.13](https://github.com/vincoin/vincoin/blob/master/doc/release-notes/release-notes-0.13.0.md) introduced HD wallets with deterministic key derivation. With HD wallets, users no longer lose funds when restoring old backups because all addresses are derived from the HD wallet seed. This means that a single backup is enough to recover the coins at any time. It is still recommended to make regular backups (once a week) or after a significant number of new transactions to maintain the metadata, such as labels. Metadata cannot be retrieved from a blockchain rescan, so if the backup is too old, the metadata will be lost forever. @@ -111,13 +111,13 @@ Wallets created before version 0.13 are not HD and must be backed up every 100 k To restore a wallet, the `restorewallet` RPC or the `Restore Wallet` GUI menu item (`File` -> `Restore Wallet…`) must be used. ``` -$ bitcoin-cli restorewallet "restored-wallet" /home/node01/Backups/backup-01.dat +$ vincoin-cli restorewallet "restored-wallet" /home/node01/Backups/backup-01.dat ``` After that, `getwalletinfo` can be used to check if the wallet has been fully restored. ``` -$ bitcoin-cli -rpcwallet="restored-wallet" getwalletinfo +$ vincoin-cli -rpcwallet="restored-wallet" getwalletinfo ``` The restored wallet can also be loaded in the GUI via `File` ->`Open wallet`. diff --git a/doc/multiprocess.md b/doc/multiprocess.md index 7ba89b3ff56a2..801dba437690d 100644 --- a/doc/multiprocess.md +++ b/doc/multiprocess.md @@ -1,10 +1,10 @@ -# Multiprocess Bitcoin +# Multiprocess Vincoin _This document describes usage of the multiprocess feature. For design information, see the [design/multiprocess.md](design/multiprocess.md) file._ ## Build Option -On unix systems, the `--enable-multiprocess` build option can be passed to `./configure` to build new `bitcoin-node`, `bitcoin-wallet`, and `bitcoin-gui` executables alongside existing `bitcoind` and `bitcoin-qt` executables. +On unix systems, the `--enable-multiprocess` build option can be passed to `./configure` to build new `vincoin-node`, `vincoin-wallet`, and `vincoin-gui` executables alongside existing `vincoind` and `vincoin-qt` executables. ## Debugging @@ -19,8 +19,8 @@ cd make -C depends NO_QT=1 MULTIPROCESS=1 CONFIG_SITE=$PWD/depends/x86_64-pc-linux-gnu/share/config.site ./configure make -src/bitcoin-node -regtest -printtoconsole -debug=ipc -BITCOIND=bitcoin-node test/functional/test_runner.py +src/vincoin-node -regtest -printtoconsole -debug=ipc +BITCOIND=vincoin-node test/functional/test_runner.py ``` The configure script will pick up settings and library locations from the depends directory, so there is no need to pass `--enable-multiprocess` as a separate flag when using the depends system (it's controlled by the `MULTIPROCESS=1` option). @@ -29,6 +29,6 @@ Alternately, you can install [Cap'n Proto](https://capnproto.org/) and [libmulti ## Usage -`bitcoin-node` is a drop-in replacement for `bitcoind`, and `bitcoin-gui` is a drop-in replacement for `bitcoin-qt`, and there are no differences in use or external behavior between the new and old executables. But internally after [#10102](https://github.com/bitcoin/bitcoin/pull/10102), `bitcoin-gui` will spawn a `bitcoin-node` process to run P2P and RPC code, communicating with it across a socket pair, and `bitcoin-node` will spawn `bitcoin-wallet` to run wallet code, also communicating over a socket pair. This will let node, wallet, and GUI code run in separate address spaces for better isolation, and allow future improvements like being able to start and stop components independently on different machines and environments. -[#19460](https://github.com/bitcoin/bitcoin/pull/19460) also adds a new `bitcoin-node` `-ipcbind` option and an `bitcoind-wallet` `-ipcconnect` option to allow new wallet processes to connect to an existing node process. -And [#19461](https://github.com/bitcoin/bitcoin/pull/19461) adds a new `bitcoin-gui` `-ipcconnect` option to allow new GUI processes to connect to an existing node process. +`vincoin-node` is a drop-in replacement for `vincoind`, and `vincoin-gui` is a drop-in replacement for `vincoin-qt`, and there are no differences in use or external behavior between the new and old executables. But internally after [#10102](https://github.com/vincoin/vincoin/pull/10102), `vincoin-gui` will spawn a `vincoin-node` process to run P2P and RPC code, communicating with it across a socket pair, and `vincoin-node` will spawn `vincoin-wallet` to run wallet code, also communicating over a socket pair. This will let node, wallet, and GUI code run in separate address spaces for better isolation, and allow future improvements like being able to start and stop components independently on different machines and environments. +[#19460](https://github.com/vincoin/vincoin/pull/19460) also adds a new `vincoin-node` `-ipcbind` option and an `vincoind-wallet` `-ipcconnect` option to allow new wallet processes to connect to an existing node process. +And [#19461](https://github.com/vincoin/vincoin/pull/19461) adds a new `vincoin-gui` `-ipcconnect` option to allow new GUI processes to connect to an existing node process. diff --git a/doc/multisig-tutorial.md b/doc/multisig-tutorial.md index 1d2b3244bca2c..f6d2fa6429da6 100644 --- a/doc/multisig-tutorial.md +++ b/doc/multisig-tutorial.md @@ -1,22 +1,22 @@ # 1. Multisig Tutorial -Currently, it is possible to create a multisig wallet using Bitcoin Core only. +Currently, it is possible to create a multisig wallet using Vincoin Core only. -Although there is already a brief explanation about the multisig in the [Descriptors documentation](https://github.com/bitcoin/bitcoin/blob/master/doc/descriptors.md#multisig), this tutorial proposes to use the signet (instead of regtest), bringing the reader closer to a real environment and explaining some functions in more detail. +Although there is already a brief explanation about the multisig in the [Descriptors documentation](https://github.com/vincoin/vincoin/blob/master/doc/descriptors.md#multisig), this tutorial proposes to use the signet (instead of regtest), bringing the reader closer to a real environment and explaining some functions in more detail. This tutorial uses [jq](https://github.com/stedolan/jq) JSON processor to process the results from RPC and stores the relevant values in bash variables. This makes the tutorial reproducible and easier to follow step by step. -Before starting this tutorial, start the bitcoin node on the signet network. +Before starting this tutorial, start the vincoin node on the signet network. ```bash -./src/bitcoind -signet -daemon +./src/vincoind -signet -daemon ``` -This tutorial also uses the default WPKH derivation path to get the xpubs and does not conform to [BIP 45](https://github.com/bitcoin/bips/blob/master/bip-0045.mediawiki) or [BIP 87](https://github.com/bitcoin/bips/blob/master/bip-0087.mediawiki). +This tutorial also uses the default WPKH derivation path to get the xpubs and does not conform to [BIP 45](https://github.com/vincoin/bips/blob/master/bip-0045.mediawiki) or [BIP 87](https://github.com/vincoin/bips/blob/master/bip-0087.mediawiki). -At the time of writing, there is no way to extract a specific path from wallets in Bitcoin Core. For this, an external signer/xpub can be used. +At the time of writing, there is no way to extract a specific path from wallets in Vincoin Core. For this, an external signer/xpub can be used. -[PR #22341](https://github.com/bitcoin/bitcoin/pull/22341), which is still under development, introduces a new wallet RPC `getxpub`. It takes a BIP32 path as an argument and returns the xpub, along with the master key fingerprint. +[PR #22341](https://github.com/vincoin/vincoin/pull/22341), which is still under development, introduces a new wallet RPC `getxpub`. It takes a BIP32 path as an argument and returns the xpub, along with the master key fingerprint. ## 1.1 Basic Multisig Workflow @@ -29,11 +29,11 @@ These three wallets should not be used directly for privacy reasons (public key ```bash for ((n=1;n<=3;n++)) do - ./src/bitcoin-cli -signet createwallet "participant_${n}" + ./src/vincoin-cli -signet createwallet "participant_${n}" done ``` -Extract the xpub of each wallet. To do this, the `listdescriptors` RPC is used. By default, Bitcoin Core single-sig wallets are created using path `m/44'/1'/0'` for PKH, `m/84'/1'/0'` for WPKH, `m/49'/1'/0'` for P2WPKH-nested-in-P2SH and `m/86'/1'/0'` for P2TR based accounts. Each of them uses the chain 0 for external addresses and chain 1 for internal ones, as shown in the example below. +Extract the xpub of each wallet. To do this, the `listdescriptors` RPC is used. By default, Vincoin Core single-sig wallets are created using path `m/44'/1'/0'` for PKH, `m/84'/1'/0'` for WPKH, `m/49'/1'/0'` for P2WPKH-nested-in-P2SH and `m/86'/1'/0'` for P2TR based accounts. Each of them uses the chain 0 for external addresses and chain 1 for internal ones, as shown in the example below. ``` wpkh([1004658e/84'/1'/0']tpubDCBEcmVKbfC9KfdydyLbJ2gfNL88grZu1XcWSW9ytTM6fitvaRmVyr8Ddf7SjZ2ZfMx9RicjYAXhuh3fmLiVLPodPEqnQQURUfrBKiiVZc8/0/*)#g8l47ngv @@ -42,16 +42,16 @@ wpkh([1004658e/84'/1'/0']tpubDCBEcmVKbfC9KfdydyLbJ2gfNL88grZu1XcWSW9ytTM6fitvaRm ``` The suffix (after #) is the checksum. Descriptors can optionally be suffixed with a checksum to protect against typos or copy-paste errors. -All RPCs in Bitcoin Core will include the checksum in their output. +All RPCs in Vincoin Core will include the checksum in their output. ```bash declare -A xpubs for ((n=1;n<=3;n++)) do - xpubs["internal_xpub_${n}"]=$(./src/bitcoin-cli -signet -rpcwallet="participant_${n}" listdescriptors | jq '.descriptors | [.[] | select(.desc | startswith("wpkh") and contains("/1/*"))][0] | .desc' | grep -Po '(?<=\().*(?=\))') + xpubs["internal_xpub_${n}"]=$(./src/vincoin-cli -signet -rpcwallet="participant_${n}" listdescriptors | jq '.descriptors | [.[] | select(.desc | startswith("wpkh") and contains("/1/*"))][0] | .desc' | grep -Po '(?<=\().*(?=\))') - xpubs["external_xpub_${n}"]=$(./src/bitcoin-cli -signet -rpcwallet="participant_${n}" listdescriptors | jq '.descriptors | [.[] | select(.desc | startswith("wpkh") and contains("/0/*") )][0] | .desc' | grep -Po '(?<=\().*(?=\))') + xpubs["external_xpub_${n}"]=$(./src/vincoin-cli -signet -rpcwallet="participant_${n}" listdescriptors | jq '.descriptors | [.[] | select(.desc | startswith("wpkh") and contains("/0/*") )][0] | .desc' | grep -Po '(?<=\().*(?=\))') done ``` @@ -63,7 +63,7 @@ The following command can be used to verify if the xpub was generated correctly. for x in "${!xpubs[@]}"; do printf "[%s]=%s\n" "$x" "${xpubs[$x]}" ; done ``` -As previously mentioned, this step extracts the `m/84'/1'/0'` account instead of the path defined in [BIP 45](https://github.com/bitcoin/bips/blob/master/bip-0045.mediawiki) or [BIP 87](https://github.com/bitcoin/bips/blob/master/bip-0087.mediawiki), since there is no way to extract a specific path in Bitcoin Core at the time of writing. +As previously mentioned, this step extracts the `m/84'/1'/0'` account instead of the path defined in [BIP 45](https://github.com/vincoin/bips/blob/master/bip-0045.mediawiki) or [BIP 87](https://github.com/vincoin/bips/blob/master/bip-0087.mediawiki), since there is no way to extract a specific path in Vincoin Core at the time of writing. ### 1.2 Define the Multisig Descriptors @@ -73,8 +73,8 @@ Define the external and internal multisig descriptors, add the checksum and then external_desc="wsh(sortedmulti(2,${xpubs["external_xpub_1"]},${xpubs["external_xpub_2"]},${xpubs["external_xpub_3"]}))" internal_desc="wsh(sortedmulti(2,${xpubs["internal_xpub_1"]},${xpubs["internal_xpub_2"]},${xpubs["internal_xpub_3"]}))" -external_desc_sum=$(./src/bitcoin-cli -signet getdescriptorinfo $external_desc | jq '.descriptor') -internal_desc_sum=$(./src/bitcoin-cli -signet getdescriptorinfo $internal_desc | jq '.descriptor') +external_desc_sum=$(./src/vincoin-cli -signet getdescriptorinfo $external_desc | jq '.descriptor') +internal_desc_sum=$(./src/vincoin-cli -signet getdescriptorinfo $internal_desc | jq '.descriptor') multisig_ext_desc="{\"desc\": $external_desc_sum, \"active\": true, \"internal\": false, \"timestamp\": \"now\"}" multisig_int_desc="{\"desc\": $internal_desc_sum, \"active\": true, \"internal\": true, \"timestamp\": \"now\"}" @@ -82,9 +82,9 @@ multisig_int_desc="{\"desc\": $internal_desc_sum, \"active\": true, \"internal\" multisig_desc="[$multisig_ext_desc, $multisig_int_desc]" ``` -`external_desc` and `internal_desc` specify the output type (`wsh`, in this case) and the xpubs involved. They also use BIP 67 (`sortedmulti`), so the wallet can be recreated without worrying about the order of xpubs. Conceptually, descriptors describe a list of scriptPubKey (along with information for spending from it) [[source](https://github.com/bitcoin/bitcoin/issues/21199#issuecomment-780772418)]. +`external_desc` and `internal_desc` specify the output type (`wsh`, in this case) and the xpubs involved. They also use BIP 67 (`sortedmulti`), so the wallet can be recreated without worrying about the order of xpubs. Conceptually, descriptors describe a list of scriptPubKey (along with information for spending from it) [[source](https://github.com/vincoin/vincoin/issues/21199#issuecomment-780772418)]. -Note that at least two descriptors are usually used, one for internal derivation paths and external ones. There are discussions about eliminating this redundancy, as can been seen in the issue [#17190](https://github.com/bitcoin/bitcoin/issues/17190). +Note that at least two descriptors are usually used, one for internal derivation paths and external ones. There are discussions about eliminating this redundancy, as can been seen in the issue [#17190](https://github.com/vincoin/vincoin/issues/17190). After creating the descriptors, it is necessary to add the checksum, which is required by the `importdescriptors` RPC. @@ -96,7 +96,7 @@ There are other fields that can be added to the descriptors: * `internal`: Indicates whether matching outputs should be treated as something other than incoming payments (e.g. change). * `timestamp`: Sets the time from which to start rescanning the blockchain for the descriptor, in UNIX epoch time. -Documentation for these and other parameters can be found by typing `./src/bitcoin-cli help importdescriptors`. +Documentation for these and other parameters can be found by typing `./src/vincoin-cli help importdescriptors`. `multisig_desc` concatenates external and internal descriptors in a JSON array and then it will be used to create the multisig wallet. @@ -109,17 +109,17 @@ Then import the descriptors created in the previous step using the `importdescri After that, `getwalletinfo` can be used to check if the wallet was created successfully. ```bash -./src/bitcoin-cli -signet -named createwallet wallet_name="multisig_wallet_01" disable_private_keys=true blank=true +./src/vincoin-cli -signet -named createwallet wallet_name="multisig_wallet_01" disable_private_keys=true blank=true -./src/bitcoin-cli -signet -rpcwallet="multisig_wallet_01" importdescriptors "$multisig_desc" +./src/vincoin-cli -signet -rpcwallet="multisig_wallet_01" importdescriptors "$multisig_desc" -./src/bitcoin-cli -signet -rpcwallet="multisig_wallet_01" getwalletinfo +./src/vincoin-cli -signet -rpcwallet="multisig_wallet_01" getwalletinfo ``` Once the wallets have already been created and this tutorial needs to be repeated or resumed, it is not necessary to recreate them, just load them with the command below: ```bash -for ((n=1;n<=3;n++)); do ./src/bitcoin-cli -signet loadwallet "participant_${n}"; done +for ((n=1;n<=3;n++)); do ./src/vincoin-cli -signet loadwallet "participant_${n}"; done ``` ### 1.4 Fund the wallet @@ -133,9 +133,9 @@ The url used by the script can also be accessed directly. At time of writing, th Coins received by the wallet must have at least 1 confirmation before they can be spent. It is necessary to wait for a new block to be mined before continuing. ```bash -receiving_address=$(./src/bitcoin-cli -signet -rpcwallet="multisig_wallet_01" getnewaddress) +receiving_address=$(./src/vincoin-cli -signet -rpcwallet="multisig_wallet_01" getnewaddress) -./contrib/signet/getcoins.py -c ./src/bitcoin-cli -a $receiving_address +./contrib/signet/getcoins.py -c ./src/vincoin-cli -a $receiving_address ``` To copy the receiving address onto the clipboard, use the following command. This can be useful when getting coins via the signet faucet mentioned above. @@ -147,32 +147,32 @@ echo -n "$receiving_address" | xclip -sel clip The `getbalances` RPC may be used to check the balance. Coins with `trusted` status can be spent. ```bash -./src/bitcoin-cli -signet -rpcwallet="multisig_wallet_01" getbalances +./src/vincoin-cli -signet -rpcwallet="multisig_wallet_01" getbalances ``` ### 1.5 Create a PSBT -Unlike singlesig wallets, multisig wallets cannot create and sign transactions directly because they require the signatures of the co-signers. Instead they create a Partially Signed Bitcoin Transaction (PSBT). +Unlike singlesig wallets, multisig wallets cannot create and sign transactions directly because they require the signatures of the co-signers. Instead they create a Partially Signed Vincoin Transaction (PSBT). -PSBT is a data format that allows wallets and other tools to exchange information about a Bitcoin transaction and the signatures necessary to complete it. [[source](https://bitcoinops.org/en/topics/psbt/)] +PSBT is a data format that allows wallets and other tools to exchange information about a Vincoin transaction and the signatures necessary to complete it. [[source](https://vincoinops.org/en/topics/psbt/)] -The current PSBT version (v0) is defined in [BIP 174](https://github.com/bitcoin/bips/blob/master/bip-0174.mediawiki). +The current PSBT version (v0) is defined in [BIP 174](https://github.com/vincoin/bips/blob/master/bip-0174.mediawiki). -For simplicity, the destination address is taken from the `participant_1` wallet in the code above, but it can be any valid bitcoin address. +For simplicity, the destination address is taken from the `participant_1` wallet in the code above, but it can be any valid vincoin address. The `walletcreatefundedpsbt` RPC is used to create and fund a transaction in the PSBT format. It is the first step in creating the PSBT. ```bash -balance=$(./src/bitcoin-cli -signet -rpcwallet="multisig_wallet_01" getbalance) +balance=$(./src/vincoin-cli -signet -rpcwallet="multisig_wallet_01" getbalance) amount=$(echo "$balance * 0.8" | bc -l | sed -e 's/^\./0./' -e 's/^-\./-0./') -destination_addr=$(./src/bitcoin-cli -signet -rpcwallet="participant_1" getnewaddress) +destination_addr=$(./src/vincoin-cli -signet -rpcwallet="participant_1" getnewaddress) -funded_psbt=$(./src/bitcoin-cli -signet -named -rpcwallet="multisig_wallet_01" walletcreatefundedpsbt outputs="{\"$destination_addr\": $amount}" | jq -r '.psbt') +funded_psbt=$(./src/vincoin-cli -signet -named -rpcwallet="multisig_wallet_01" walletcreatefundedpsbt outputs="{\"$destination_addr\": $amount}" | jq -r '.psbt') ``` -There is also the `createpsbt` RPC, which serves the same purpose, but it has no access to the wallet or to the UTXO set. It is functionally the same as `createrawtransaction` and just drops the raw transaction into an otherwise blank PSBT. [[source](https://bitcointalk.org/index.php?topic=5131043.msg50573609#msg50573609)] In most cases, `walletcreatefundedpsbt` solves the problem. +There is also the `createpsbt` RPC, which serves the same purpose, but it has no access to the wallet or to the UTXO set. It is functionally the same as `createrawtransaction` and just drops the raw transaction into an otherwise blank PSBT. [[source](https://vincointalk.org/index.php?topic=5131043.msg50573609#msg50573609)] In most cases, `walletcreatefundedpsbt` solves the problem. The `send` RPC can also return a PSBT if more signatures are needed to sign the transaction. @@ -183,9 +183,9 @@ Optionally, the PSBT can be decoded to a JSON format using `decodepsbt` RPC. The `analyzepsbt` RPC analyzes and provides information about the current status of a PSBT and its inputs, e.g. missing signatures. ```bash -./src/bitcoin-cli -signet decodepsbt $funded_psbt +./src/vincoin-cli -signet decodepsbt $funded_psbt -./src/bitcoin-cli -signet analyzepsbt $funded_psbt +./src/vincoin-cli -signet analyzepsbt $funded_psbt ``` ### 1.7 Update the PSBT @@ -195,9 +195,9 @@ In the code above, two PSBTs are created. One signed by `participant_1` wallet a The `walletprocesspsbt` is used by the wallet to sign a PSBT. ```bash -psbt_1=$(./src/bitcoin-cli -signet -rpcwallet="participant_1" walletprocesspsbt $funded_psbt | jq '.psbt') +psbt_1=$(./src/vincoin-cli -signet -rpcwallet="participant_1" walletprocesspsbt $funded_psbt | jq '.psbt') -psbt_2=$(./src/bitcoin-cli -signet -rpcwallet="participant_2" walletprocesspsbt $funded_psbt | jq '.psbt') +psbt_2=$(./src/vincoin-cli -signet -rpcwallet="participant_2" walletprocesspsbt $funded_psbt | jq '.psbt') ``` ### 1.8 Combine the PSBT @@ -205,7 +205,7 @@ psbt_2=$(./src/bitcoin-cli -signet -rpcwallet="participant_2" walletprocesspsbt The PSBT, if signed separately by the co-signers, must be combined into one transaction before being finalized. This is done by `combinepsbt` RPC. ```bash -combined_psbt=$(./src/bitcoin-cli -signet combinepsbt "[$psbt_1, $psbt_2]") +combined_psbt=$(./src/vincoin-cli -signet combinepsbt "[$psbt_1, $psbt_2]") ``` There is an RPC called `joinpsbts`, but it has a different purpose than `combinepsbt`. `joinpsbts` joins the inputs from multiple distinct PSBTs into one PSBT. @@ -219,9 +219,9 @@ The `finalizepsbt` RPC is used to produce a network serialized transaction which It checks that all inputs have complete scriptSigs and scriptWitnesses and, if so, encodes them into network serialized transactions. ```bash -finalized_psbt_hex=$(./src/bitcoin-cli -signet finalizepsbt $combined_psbt | jq -r '.hex') +finalized_psbt_hex=$(./src/vincoin-cli -signet finalizepsbt $combined_psbt | jq -r '.hex') -./src/bitcoin-cli -signet sendrawtransaction $finalized_psbt_hex +./src/vincoin-cli -signet sendrawtransaction $finalized_psbt_hex ``` ### 1.10 Alternative Workflow (PSBT sequential signatures) @@ -231,11 +231,11 @@ Instead of each wallet signing the original PSBT and combining them later, the w After that, the rest of the process is the same: the PSBT is finalized and transmitted to the network. ```bash -psbt_1=$(./src/bitcoin-cli -signet -rpcwallet="participant_1" walletprocesspsbt $funded_psbt | jq -r '.psbt') +psbt_1=$(./src/vincoin-cli -signet -rpcwallet="participant_1" walletprocesspsbt $funded_psbt | jq -r '.psbt') -psbt_2=$(./src/bitcoin-cli -signet -rpcwallet="participant_2" walletprocesspsbt $psbt_1 | jq -r '.psbt') +psbt_2=$(./src/vincoin-cli -signet -rpcwallet="participant_2" walletprocesspsbt $psbt_1 | jq -r '.psbt') -finalized_psbt_hex=$(./src/bitcoin-cli -signet finalizepsbt $psbt_2 | jq -r '.hex') +finalized_psbt_hex=$(./src/vincoin-cli -signet finalizepsbt $psbt_2 | jq -r '.hex') -./src/bitcoin-cli -signet sendrawtransaction $finalized_psbt_hex +./src/vincoin-cli -signet sendrawtransaction $finalized_psbt_hex ``` diff --git a/doc/offline-signing-tutorial.md b/doc/offline-signing-tutorial.md index 4761cf256bdb3..05f04156bb6a6 100644 --- a/doc/offline-signing-tutorial.md +++ b/doc/offline-signing-tutorial.md @@ -1,16 +1,16 @@ # Offline Signing Tutorial -This tutorial will describe how to use two instances of Bitcoin Core, one online and one offline, to greatly increase security by not having private keys reside on a networked device. +This tutorial will describe how to use two instances of Vincoin Core, one online and one offline, to greatly increase security by not having private keys reside on a networked device. Maintaining an air-gap between private keys and any network connections drastically reduces the opportunity for those keys to be exfiltrated from the user. -This workflow uses [Partially Signed Bitcoin Transactions](https://github.com/bitcoin/bitcoin/blob/master/doc/psbt.md) (PSBTs) to transfer the transaction to and from the offline wallet for signing using the private keys. +This workflow uses [Partially Signed Vincoin Transactions](https://github.com/vincoin/vincoin/blob/master/doc/psbt.md) (PSBTs) to transfer the transaction to and from the offline wallet for signing using the private keys. > [!NOTE] > While this tutorial demonstrates the process using `signet` network, you should omit the `-signet` flag in the provided commands when working with `mainnet`. ## Overview -In this tutorial we have two hosts, both running Bitcoin v25.0 +In this tutorial we have two hosts, both running Vincoin v25.0 * `offline` host which is disconnected from all networks (internet, Tor, wifi, bluetooth etc.) and does not have, or need, a copy of the blockchain. * `online` host which is a regular online node with a synced blockchain. @@ -25,7 +25,7 @@ We are going to first create an `offline_wallet` on the offline host. We will th 1. On the offline machine create a wallet named `offline_wallet` secured by a wallet `passphrase`. This wallet will contain private keys and must remain unconnected to any networks at all times. ```sh -[offline]$ ./src/bitcoin-cli -signet -named createwallet \ +[offline]$ ./src/vincoin-cli -signet -named createwallet \ wallet_name="offline_wallet" \ passphrase="** enter passphrase **" @@ -35,12 +35,12 @@ We are going to first create an `offline_wallet` on the offline host. We will th ``` > [!NOTE] -> The use of a passphrase is crucial to encrypt the wallet.dat file. This encryption ensures that even if an unauthorized individual gains access to the offline host, they won't be able to access the wallet's contents. Further details about securing your wallet can be found in [Managing the Wallet](https://github.com/bitcoin/bitcoin/blob/master/doc/managing-wallets.md#12-encrypting-the-wallet) +> The use of a passphrase is crucial to encrypt the wallet.dat file. This encryption ensures that even if an unauthorized individual gains access to the offline host, they won't be able to access the wallet's contents. Further details about securing your wallet can be found in [Managing the Wallet](https://github.com/vincoin/vincoin/blob/master/doc/managing-wallets.md#12-encrypting-the-wallet) 2. Export the public key-only descriptors from the offline host to a JSON file named `descriptors.json`. We use `jq` here to extract the `.descriptors` field from the full RPC response. ```sh -[offline]$ ./src/bitcoin-cli -signet -rpcwallet="offline_wallet" listdescriptors \ +[offline]$ ./src/vincoin-cli -signet -rpcwallet="offline_wallet" listdescriptors \ | jq -r '.descriptors' \ >> /path/to/descriptors.json ``` @@ -58,7 +58,7 @@ The `watch_only_wallet` wallet will be used to track and validate incoming trans > `disable_private_keys` indicates that the wallet should refuse to import private keys, i.e. will be a dedicated watch-only wallet. ```sh -[online]$ ./src/bitcoin-cli -signet -named createwallet \ +[online]$ ./src/vincoin-cli -signet -named createwallet \ wallet_name="watch_only_wallet" \ disable_private_keys=true @@ -70,7 +70,7 @@ The `watch_only_wallet` wallet will be used to track and validate incoming trans 2. Import the `offline_wallet`s public key descriptors to the online `watch_only_wallet` using the `descriptors.json` file created on the offline wallet. ```sh -[online]$ ./src/bitcoin-cli -signet -rpcwallet="watch_only_wallet" importdescriptors "$(cat /path/to/descriptors.json)" +[online]$ ./src/vincoin-cli -signet -rpcwallet="watch_only_wallet" importdescriptors "$(cat /path/to/descriptors.json)" [ { @@ -109,7 +109,7 @@ At this point, it's important to understand that both the `offline_wallet` and o 1. Generate an address to receive coins. You can use _either_ the `offline_wallet` or the online `watch_only_wallet` to generate this address, as they will produce the same addresses. For the sake of this guide, we'll use the online `watch_only_wallet` to generate the address. ```sh -[online]$ ./src/bitcoin-cli -signet -rpcwallet="watch_only_wallet" getnewaddress +[online]$ ./src/vincoin-cli -signet -rpcwallet="watch_only_wallet" getnewaddress tb1qtu5qgc6ddhmqm5yqjvhg83qgk2t4ewajg0h6yh ``` @@ -119,7 +119,7 @@ tb1qtu5qgc6ddhmqm5yqjvhg83qgk2t4ewajg0h6yh 3. Confirm that coins were received using the online `watch_only_wallet`. Note that the transaction may take a few moments before being received on your local node, depending on its connectivity. Just re-run the command periodically until the transaction is received. ```sh -[online]$ ./src/bitcoin-cli -signet -rpcwallet="watch_only_wallet" listunspent +[online]$ ./src/vincoin-cli -signet -rpcwallet="watch_only_wallet" listunspent [ { @@ -148,7 +148,7 @@ tb1qtu5qgc6ddhmqm5yqjvhg83qgk2t4ewajg0h6yh 2. Create a funded but unsigned PSBT to the destination address with the online `watch_only_wallet` by using `send [{"address":amount},...]` and export the unsigned PSBT to a file `funded_psbt.txt` for easy portability to the `offline_wallet` for signing: ```sh -[online]$ ./src/bitcoin-cli -signet -rpcwallet="watch_only_wallet" send \ +[online]$ ./src/vincoin-cli -signet -rpcwallet="watch_only_wallet" send \ '{"tb1q9k5w0nhnhyeh78snpxh0t5t7c3lxdeg3erez32": 0.009}' \ | jq -r '.psbt' \ >> /path/to/funded_psbt.txt @@ -165,13 +165,13 @@ cHNidP8BAHECAAAAAWLHKR9/xAjetzL/FCmZU5lbfINRMWPRPHWO68PfUzkPAQAAAAD9////AoA4AQAA Decode and analyze the unsigned PSBT on the `offline_wallet` using the `funded_psbt.txt` file: ```sh -[offline]$ ./src/bitcoin-cli -signet decodepsbt $(cat /path/to/funded_psbt.txt) +[offline]$ ./src/vincoin-cli -signet decodepsbt $(cat /path/to/funded_psbt.txt) { ... } -[offline]$ ./src/bitcoin-cli -signet analyzepsbt $(cat /path/to/funded_psbt.txt) +[offline]$ ./src/vincoin-cli -signet analyzepsbt $(cat /path/to/funded_psbt.txt) { "inputs": [ @@ -202,13 +202,13 @@ Notice that the analysis of the PSBT shows that "signatures" are missing and sho Use the walletpassphrase command to unlock the `offline_wallet` with the passphrase. You should specify the passphrase and a timeout (in seconds) for how long you want the wallet to remain unlocked. ```sh -[offline]$ ./src/bitcoin-cli -signet -rpcwallet="offline_wallet" walletpassphrase "** enter passphrase **" 60 +[offline]$ ./src/vincoin-cli -signet -rpcwallet="offline_wallet" walletpassphrase "** enter passphrase **" 60 ``` 2. Process, sign and finalize the PSBT on the `offline_wallet` using the `walletprocesspsbt` command, saving the output to a file `final_psbt.txt`. ```sh -[offline]$ ./src/bitcoin-cli -signet -rpcwallet="offline_wallet" walletprocesspsbt \ +[offline]$ ./src/vincoin-cli -signet -rpcwallet="offline_wallet" walletprocesspsbt \ $(cat /path/to/funded_psbt.txt) \ | jq -r .hex \ >> /path/to/final_psbt.txt @@ -218,7 +218,7 @@ Use the walletpassphrase command to unlock the `offline_wallet` with the passphr Broadcast the funded, signed and finalized PSBT `final_psbt.txt` using `sendrawtransaction` with an online node: ```sh -[online]$ ./src/bitcoin-cli -signet sendrawtransaction $(cat /path/to/final_psbt.txt) +[online]$ ./src/vincoin-cli -signet sendrawtransaction $(cat /path/to/final_psbt.txt) c2430a0e46df472b04b0ca887bbcd5c4abf7b2ce2eb71de981444a80e2b96d52 ``` @@ -228,7 +228,7 @@ c2430a0e46df472b04b0ca887bbcd5c4abf7b2ce2eb71de981444a80e2b96d52 Confirm the updated balance of the offline wallet using the `watch_only_wallet`. ```sh -[online]$ ./src/bitcoin-cli -signet -rpcwallet="watch_only_wallet" getbalances +[online]$ ./src/vincoin-cli -signet -rpcwallet="watch_only_wallet" getbalances { "mine": { @@ -247,7 +247,7 @@ Confirm the updated balance of the offline wallet using the `watch_only_wallet`. You can also show transactions related to the wallet using `listtransactions` ```sh -[online]$ ./src/bitcoin-cli -signet -rpcwallet="watch_only_wallet" listtransactions +[online]$ ./src/vincoin-cli -signet -rpcwallet="watch_only_wallet" listtransactions { ... diff --git a/doc/p2p-bad-ports.md b/doc/p2p-bad-ports.md index 4f717f97a2976..6ba46991800c6 100644 --- a/doc/p2p-bad-ports.md +++ b/doc/p2p-bad-ports.md @@ -1,22 +1,22 @@ -When Bitcoin Core automatically opens outgoing P2P connections, it chooses +When Vincoin Core automatically opens outgoing P2P connections, it chooses a peer (address and port) from its list of potential peers. This list is populated with unchecked data gossiped over the P2P network by other peers. -A malicious actor may gossip an address:port where no Bitcoin node is listening, -or one where a service is listening that is not related to the Bitcoin network. -As a result, this service may occasionally get connection attempts from Bitcoin +A malicious actor may gossip an address:port where no Vincoin node is listening, +or one where a service is listening that is not related to the Vincoin network. +As a result, this service may occasionally get connection attempts from Vincoin nodes. "Bad" ports are ones used by services which are usually not open to the public -and usually require authentication. A connection attempt (by Bitcoin Core, -trying to connect because it thinks there is a Bitcoin node on that +and usually require authentication. A connection attempt (by Vincoin Core, +trying to connect because it thinks there is a Vincoin node on that address:port) to such service may be considered a malicious action by an ultra-paranoid administrator. An example for such a port is 22 (ssh). On the other hand, connection attempts to public services that usually do not require authentication are unlikely to be considered a malicious action, e.g. port 80 (http). -Below is a list of "bad" ports which Bitcoin Core avoids when choosing a peer to +Below is a list of "bad" ports which Vincoin Core avoids when choosing a peer to connect to. If a node is listening on such a port, it will likely receive fewer incoming connections. @@ -103,9 +103,9 @@ incoming connections. For further information see: -[pull/23306](https://github.com/bitcoin/bitcoin/pull/23306#issuecomment-947516736) +[pull/23306](https://github.com/vincoin/vincoin/pull/23306#issuecomment-947516736) -[pull/23542](https://github.com/bitcoin/bitcoin/pull/23542) +[pull/23542](https://github.com/vincoin/vincoin/pull/23542) [fetch.spec.whatwg.org](https://fetch.spec.whatwg.org/#port-blocking) diff --git a/doc/policy/mempool-limits.md b/doc/policy/mempool-limits.md index 73ab017f1b165..396d9f3e99129 100644 --- a/doc/policy/mempool-limits.md +++ b/doc/policy/mempool-limits.md @@ -39,9 +39,9 @@ of the following conditions are met: *Rationale*: this rule was introduced to prevent pinning by domination of a transaction's descendant limits in two-party contract protocols such as LN. Also see the [mailing list -post](https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2018-November/016518.html). +post](https://lists.linuxfoundation.org/pipermail/vincoin-dev/2018-November/016518.html). -This rule was introduced in [PR #15681](https://github.com/bitcoin/bitcoin/pull/15681). +This rule was introduced in [PR #15681](https://github.com/vincoin/vincoin/pull/15681). ### Single-Conflict RBF Carve Out diff --git a/doc/policy/mempool-replacements.md b/doc/policy/mempool-replacements.md index 3fd7ff2ad2de9..f4c9d585e8ae5 100644 --- a/doc/policy/mempool-replacements.md +++ b/doc/policy/mempool-replacements.md @@ -15,7 +15,7 @@ other consensus and policy rules, each of the following conditions are met: A transaction also signals replaceability if its nVersion field is set to 3. *Rationale*: See [BIP125 - explanation](https://github.com/bitcoin/bips/blob/master/bip-0125.mediawiki#motivation). + explanation](https://github.com/vincoin/bips/blob/master/bip-0125.mediawiki#motivation). Use the (`-mempoolfullrbf`) configuration option to allow transaction replacement without enforcement of the opt-in signaling rule. @@ -66,17 +66,17 @@ This set of rules is similar but distinct from BIP125. ## History * Opt-in full replace-by-fee (without inherited signaling) honoured in mempool and mining as of - **v0.12.0** ([PR 6871](https://github.com/bitcoin/bitcoin/pull/6871)). + **v0.12.0** ([PR 6871](https://github.com/vincoin/vincoin/pull/6871)). -* [BIP125](https://github.com/bitcoin/bips/blob/master/bip-0125.mediawiki) defined based on - Bitcoin Core implementation. +* [BIP125](https://github.com/vincoin/bips/blob/master/bip-0125.mediawiki) defined based on + Vincoin Core implementation. * The incremental relay feerate used to calculate the required additional fees is distinct from `-minrelaytxfee` and configurable using `-incrementalrelayfee` - ([PR #9380](https://github.com/bitcoin/bitcoin/pull/9380)). + ([PR #9380](https://github.com/vincoin/vincoin/pull/9380)). * RBF enabled by default in the wallet GUI as of **v0.18.1** ([PR - #11605](https://github.com/bitcoin/bitcoin/pull/11605)). + #11605](https://github.com/vincoin/vincoin/pull/11605)). * Full replace-by-fee enabled as a configurable mempool policy as of **v24.0** ([PR - #25353](https://github.com/bitcoin/bitcoin/pull/25353)). + #25353](https://github.com/vincoin/vincoin/pull/25353)). diff --git a/doc/productivity.md b/doc/productivity.md index e9b7bc270c677..e68d659c38ac0 100644 --- a/doc/productivity.md +++ b/doc/productivity.md @@ -75,9 +75,9 @@ When rebuilding during development, note that running `make`, without giving a t Obviously, it is important to build and run the tests at appropriate times -- but when you just want a quick compile to check your work, consider picking one or a set of build targets relevant to what you're working on, e.g.: ```sh -make src/bitcoind src/bitcoin-cli -make src/qt/bitcoin-qt -make -C src bitcoin_bench +make src/vincoind src/vincoin-cli +make src/qt/vincoin-qt +make -C src vincoin_bench ``` (You can and should combine this with `-j`, as above, for a parallel build.) @@ -179,7 +179,7 @@ When looking at other's pull requests, it may make sense to add the following se ``` [remote "upstream-pull"] fetch = +refs/pull/*/head:refs/remotes/upstream-pull/* - url = git@github.com:bitcoin/bitcoin.git + url = git@github.com:vincoin/vincoin.git ``` This will add an `upstream-pull` remote to your git repository, which can be fetched using `git fetch --all` or `git fetch upstream-pull`. It will download and store on disk quite a lot of data (all PRs, including merged and closed ones). Afterwards, you can use `upstream-pull/NUMBER/head` in arguments to `git show`, `git checkout` and anywhere a commit id would be acceptable to see the changes from pull request NUMBER. diff --git a/doc/psbt.md b/doc/psbt.md index 0f31cb8eba633..e846af23e246a 100644 --- a/doc/psbt.md +++ b/doc/psbt.md @@ -1,8 +1,8 @@ -# PSBT Howto for Bitcoin Core +# PSBT Howto for Vincoin Core -Since Bitcoin Core 0.17, an RPC interface exists for Partially Signed Bitcoin +Since Vincoin Core 0.17, an RPC interface exists for Partially Signed Vincoin Transactions (PSBTs, as specified in -[BIP 174](https://github.com/bitcoin/bips/blob/master/bip-0174.mediawiki)). +[BIP 174](https://github.com/vincoin/bips/blob/master/bip-0174.mediawiki)). This document describes the overall workflow for producing signed transactions through the use of PSBT, and the specific RPC commands used in typical @@ -10,15 +10,15 @@ scenarios. ## PSBT in general -PSBT is an interchange format for Bitcoin transactions that are not fully signed +PSBT is an interchange format for Vincoin transactions that are not fully signed yet, together with relevant metadata to help entities work towards signing it. It is intended to simplify workflows where multiple parties need to cooperate to produce a transaction. Examples include hardware wallets, multisig setups, and -[CoinJoin](https://bitcointalk.org/?topic=279249) transactions. +[CoinJoin](https://vincointalk.org/?topic=279249) transactions. ### Overall workflow -Overall, the construction of a fully signed Bitcoin transaction goes through the +Overall, the construction of a fully signed Vincoin transaction goes through the following steps: - A **Creator** proposes a particular transaction to be created. They construct @@ -32,7 +32,7 @@ following steps: partial signature for the inputs for which they have relevant key(s). - A **Finalizer** is run for each input to convert the partial signatures and possibly script information into a final `scriptSig` and/or `scriptWitness`. -- An **Extractor** produces a valid Bitcoin transaction (in network format) +- An **Extractor** produces a valid Vincoin transaction (in network format) from a PSBT for which all inputs are finalized. Generally, each of the above (excluding Creator and Extractor) will simply @@ -46,7 +46,7 @@ The names above in bold are the names of the roles defined in BIP174. They're useful in understanding the underlying steps, but in practice, software and hardware implementations will typically implement multiple roles simultaneously. -## PSBT in Bitcoin Core +## PSBT in Vincoin Core ### RPCs @@ -90,16 +90,16 @@ hardware implementations will typically implement multiple roles simultaneously. ### Workflows -#### Multisig with multiple Bitcoin Core instances +#### Multisig with multiple Vincoin Core instances For a quick start see [Basic M-of-N multisig example using descriptor wallets and PSBTs](./descriptors.md#basic-multisig-example). If you are using legacy wallets feel free to continue with the example provided here. Alice, Bob, and Carol want to create a 2-of-3 multisig address. They're all using -Bitcoin Core. We assume their wallets only contain the multisig funds. In case +Vincoin Core. We assume their wallets only contain the multisig funds. In case they also have a personal wallet, this can be accomplished through the multiwallet feature - possibly resulting in a need to add `-rpcwallet=name` to -the command line in case `bitcoin-cli` is used. +the command line in case `vincoin-cli` is used. Setup: - All three call `getnewaddress` to create a new address; call these addresses diff --git a/doc/reduce-memory.md b/doc/reduce-memory.md index 2710797ef3abb..07ab8cb1373df 100644 --- a/doc/reduce-memory.md +++ b/doc/reduce-memory.md @@ -1,6 +1,6 @@ # Reduce Memory -There are a few parameters that can be dialed down to reduce the memory usage of `bitcoind`. This can be useful on embedded systems or small VPSes. +There are a few parameters that can be dialed down to reduce the memory usage of `vincoind`. This can be useful on embedded systems or small VPSes. ## In-memory caches @@ -12,9 +12,9 @@ The size of some in-memory caches can be reduced. As caches trade off memory usa ## Memory pool -- In Bitcoin Core there is a memory pool limiter which can be configured with `-maxmempool=`, where `` is the size in MB (1000). The default value is `300`. +- In Vincoin Core there is a memory pool limiter which can be configured with `-maxmempool=`, where `` is the size in MB (1000). The default value is `300`. - The minimum value for `-maxmempool` is 5. - - A lower maximum mempool size means that transactions will be evicted sooner. This will affect any uses of `bitcoind` that process unconfirmed transactions. + - A lower maximum mempool size means that transactions will be evicted sooner. This will affect any uses of `vincoind` that process unconfirmed transactions. - Since `0.14.0`, unused memory allocated to the mempool (default: 300MB) is shared with the UTXO cache, so when trying to reduce memory usage you should limit the mempool, with the `-maxmempool` command line argument. @@ -43,12 +43,12 @@ threads take up 8MiB for the thread stack on a 64-bit system, and 4MiB in a ## Linux specific -By default, glibc's implementation of `malloc` may use more than one arena. This is known to cause excessive memory usage in some scenarios. To avoid this, make a script that sets `MALLOC_ARENA_MAX` before starting bitcoind: +By default, glibc's implementation of `malloc` may use more than one arena. This is known to cause excessive memory usage in some scenarios. To avoid this, make a script that sets `MALLOC_ARENA_MAX` before starting vincoind: ```bash #!/usr/bin/env bash export MALLOC_ARENA_MAX=1 -bitcoind +vincoind ``` -The behavior was introduced to increase CPU locality of allocated memory and performance with concurrent allocation, so this setting could in theory reduce performance. However, in Bitcoin Core very little parallel allocation happens, so the impact is expected to be small or absent. +The behavior was introduced to increase CPU locality of allocated memory and performance with concurrent allocation, so this setting could in theory reduce performance. However, in Vincoin Core very little parallel allocation happens, so the impact is expected to be small or absent. diff --git a/doc/reduce-traffic.md b/doc/reduce-traffic.md index 8926a8361aa3e..5db58c69a5b3b 100644 --- a/doc/reduce-traffic.md +++ b/doc/reduce-traffic.md @@ -3,7 +3,7 @@ Reduce Traffic Some node operators need to deal with bandwidth caps imposed by their ISPs. -By default, Bitcoin Core allows up to 125 connections to different peers, 11 of +By default, Vincoin Core allows up to 125 connections to different peers, 11 of which are outbound. You can therefore, have at most 114 inbound connections. Of the 11 outbound peers, there can be 8 full-relay connections, 2 block-relay-only ones and occasionally 1 short-lived feeler or an extra block-relay-only connection. @@ -35,7 +35,7 @@ blocks and transactions to fewer nodes. ## 3. Reduce maximum connections (`-maxconnections=`) Reducing the maximum connected nodes to a minimum could be desirable if traffic -limits are tiny. Keep in mind that bitcoin's trustless model works best if you are +limits are tiny. Keep in mind that vincoin's trustless model works best if you are connected to a handful of nodes. ## 4. Turn off transaction relay (`-blocksonly`) diff --git a/doc/release-notes-29189.md b/doc/release-notes-29189.md index f75e450217229..416c1a781357b 100644 --- a/doc/release-notes-29189.md +++ b/doc/release-notes-29189.md @@ -1,4 +1,4 @@ -libbitcoinconsensus +libvincoinconsensus ======================== This library is deprecated and will be removed for v28. @@ -10,6 +10,6 @@ The underlying functionality does not change between versions, so any users of the library can continue to use the final release indefinitely, with the understanding that Taproot is its final consensus update. -In the future, libbitcoinkernel will provide a much more useful API that is +In the future, libvincoinkernel will provide a much more useful API that is aware of the UTXO set, and therefore be able to fully validate transactions and blocks. diff --git a/doc/release-notes-empty-template.md b/doc/release-notes-empty-template.md index 96e28c3763316..0821e94804467 100644 --- a/doc/release-notes-empty-template.md +++ b/doc/release-notes-empty-template.md @@ -5,40 +5,40 @@ for the process.* *version* Release Notes Draft =============================== -Bitcoin Core version *version* is now available from: +Vincoin Core version *version* is now available from: - + This release includes new features, various bug fixes and performance improvements, as well as updated translations. Please report bugs using the issue tracker at GitHub: - + To receive security and update notifications, please subscribe to: - + How to Upgrade ============== If you are running an older version, shut it down. Wait until it has completely shut down (which might take a few minutes in some cases), then run the -installer (on Windows) or just copy over `/Applications/Bitcoin-Qt` (on macOS) -or `bitcoind`/`bitcoin-qt` (on Linux). +installer (on Windows) or just copy over `/Applications/Vincoin-Qt` (on macOS) +or `vincoind`/`vincoin-qt` (on Linux). -Upgrading directly from a version of Bitcoin Core that has reached its EOL is +Upgrading directly from a version of Vincoin Core that has reached its EOL is possible, but it might take some time if the data directory needs to be migrated. Old -wallet versions of Bitcoin Core are generally supported. +wallet versions of Vincoin Core are generally supported. Compatibility ============== -Bitcoin Core is supported and extensively tested on operating systems -using the Linux Kernel 3.17+, macOS 11.0+, and Windows 7 and newer. Bitcoin +Vincoin Core is supported and extensively tested on operating systems +using the Linux Kernel 3.17+, macOS 11.0+, and Windows 7 and newer. Vincoin Core should also work on most other Unix-like systems but is not as -frequently tested on them. It is not recommended to use Bitcoin Core on +frequently tested on them. It is not recommended to use Vincoin Core on unsupported systems. Notable changes @@ -96,4 +96,4 @@ Thanks to everyone who directly contributed to this release: As well as to everyone that helped with translations on -[Transifex](https://www.transifex.com/bitcoin/bitcoin/). +[Transifex](https://www.transifex.com/vincoin/vincoin/). diff --git a/doc/release-process.md b/doc/release-process.md index 95ef08a26f3df..ebe18223a58fe 100644 --- a/doc/release-process.md +++ b/doc/release-process.md @@ -5,10 +5,10 @@ Release Process ### Before every release candidate -* Update translations see [translation_process.md](https://github.com/bitcoin/bitcoin/blob/master/doc/translation_process.md#synchronising-translations). +* Update translations see [translation_process.md](https://github.com/vincoin/vincoin/blob/master/doc/translation_process.md#synchronising-translations). * Update release candidate version in `configure.ac` (`CLIENT_VERSION_RC`). -* Update manpages (after rebuilding the binaries), see [gen-manpages.py](https://github.com/bitcoin/bitcoin/blob/master/contrib/devtools/README.md#gen-manpagespy). -* Update bitcoin.conf and commit, see [gen-bitcoin-conf.sh](https://github.com/bitcoin/bitcoin/blob/master/contrib/devtools/README.md#gen-bitcoin-confsh). +* Update manpages (after rebuilding the binaries), see [gen-manpages.py](https://github.com/vincoin/vincoin/blob/master/contrib/devtools/README.md#gen-manpagespy). +* Update vincoin.conf and commit, see [gen-vincoin-conf.sh](https://github.com/vincoin/vincoin/blob/master/contrib/devtools/README.md#gen-vincoin-confsh). ### Before every major and minor release @@ -21,14 +21,14 @@ Release Process * On both the master branch and the new release branch: - update `CLIENT_VERSION_MAJOR` in [`configure.ac`](../configure.ac) -* On the new release branch in [`configure.ac`](../configure.ac)(see [this commit](https://github.com/bitcoin/bitcoin/commit/742f7dd)): +* On the new release branch in [`configure.ac`](../configure.ac)(see [this commit](https://github.com/vincoin/vincoin/commit/742f7dd)): - set `CLIENT_VERSION_MINOR` to `0` - set `CLIENT_VERSION_BUILD` to `0` - set `CLIENT_VERSION_IS_RELEASE` to `true` #### Before branch-off -* Update hardcoded [seeds](/contrib/seeds/README.md), see [this pull request](https://github.com/bitcoin/bitcoin/pull/27488) for an example. +* Update hardcoded [seeds](/contrib/seeds/README.md), see [this pull request](https://github.com/vincoin/vincoin/pull/27488) for an example. * Update the following variables in [`src/kernel/chainparams.cpp`](/src/kernel/chainparams.cpp) for mainnet, testnet, and signet: - `m_assumed_blockchain_size` and `m_assumed_chain_state_size` with the current size plus some overhead (see [this](#how-to-calculate-assumed-blockchain-and-chain-state-size) for information on how to calculate them). @@ -36,7 +36,7 @@ Release Process that causes rejection of blocks in the past history. - `chainTxData` with statistics about the transaction count and rate. Use the output of the `getchaintxstats` RPC with an `nBlocks` of 4096 (28 days) and a `bestblockhash` of RPC `getbestblockhash`; see - [this pull request](https://github.com/bitcoin/bitcoin/pull/28591) for an example. Reviewers can verify the results by running + [this pull request](https://github.com/vincoin/vincoin/pull/28591) for an example. Reviewers can verify the results by running `getchaintxstats ` with the `window_block_count` and `window_final_block_hash` from your output. - `defaultAssumeValid` with the output of RPC `getblockhash` using the `height` of `window_final_block_height` above (and update the block height comment with that height), taking into account the following: @@ -54,35 +54,35 @@ Release Process - Clear the release notes and move them to the wiki (see "Write the release notes" below). - Translations on Transifex: - Pull translations from Transifex into the master branch. - - Create [a new resource](https://www.transifex.com/bitcoin/bitcoin/content/) named after the major version with the slug `qt-translation-x`, where `RRR` is the major branch number padded with zeros. Use `src/qt/locale/bitcoin_en.xlf` to create it. + - Create [a new resource](https://www.transifex.com/vincoin/vincoin/content/) named after the major version with the slug `qt-translation-x`, where `RRR` is the major branch number padded with zeros. Use `src/qt/locale/vincoin_en.xlf` to create it. - In the project workflow settings, ensure that [Translation Memory Fill-up](https://help.transifex.com/en/articles/6224817-setting-up-translation-memory-fill-up) is enabled and that [Translation Memory Context Matching](https://help.transifex.com/en/articles/6224753-translation-memory-with-context) is disabled. - Update the Transifex slug in [`.tx/config`](/.tx/config) to the slug of the resource created in the first step. This identifies which resource the translations will be synchronized from. - - Make an announcement that translators can start translating for the new version. You can use one of the [previous announcements](https://www.transifex.com/bitcoin/communication/) as a template. - - Change the auto-update URL for the resource to `master`, e.g. `https://raw.githubusercontent.com/bitcoin/bitcoin/master/src/qt/locale/bitcoin_en.xlf`. (Do this only after the previous steps, to prevent an auto-update from interfering.) + - Make an announcement that translators can start translating for the new version. You can use one of the [previous announcements](https://www.transifex.com/vincoin/communication/) as a template. + - Change the auto-update URL for the resource to `master`, e.g. `https://raw.githubusercontent.com/vincoin/vincoin/master/src/qt/locale/vincoin_en.xlf`. (Do this only after the previous steps, to prevent an auto-update from interfering.) #### After branch-off (on the major release branch) - Update the versions. -- Create the draft, named "*version* Release Notes Draft", as a [collaborative wiki](https://github.com/bitcoin-core/bitcoin-devwiki/wiki/_new). +- Create the draft, named "*version* Release Notes Draft", as a [collaborative wiki](https://github.com/vincoin-core/vincoin-devwiki/wiki/_new). - Clear the release notes: `cp doc/release-notes-empty-template.md doc/release-notes.md` -- Create a pinned meta-issue for testing the release candidate (see [this issue](https://github.com/bitcoin/bitcoin/issues/27621) for an example) and provide a link to it in the release announcements where useful. +- Create a pinned meta-issue for testing the release candidate (see [this issue](https://github.com/vincoin/vincoin/issues/27621) for an example) and provide a link to it in the release announcements where useful. - Translations on Transifex - - Change the auto-update URL for the new major version's resource away from `master` and to the branch, e.g. `https://raw.githubusercontent.com/bitcoin/bitcoin//src/qt/locale/bitcoin_en.xlf`. Do not forget this or it will keep tracking the translations on master instead, drifting away from the specific major release. + - Change the auto-update URL for the new major version's resource away from `master` and to the branch, e.g. `https://raw.githubusercontent.com/vincoin/vincoin//src/qt/locale/vincoin_en.xlf`. Do not forget this or it will keep tracking the translations on master instead, drifting away from the specific major release. - Prune inputs from the qa-assets repo (See [pruning - inputs](https://github.com/bitcoin-core/qa-assets#pruning-inputs)). + inputs](https://github.com/vincoin-core/qa-assets#pruning-inputs)). #### Before final release -- Merge the release notes from [the wiki](https://github.com/bitcoin-core/bitcoin-devwiki/wiki/) into the branch. +- Merge the release notes from [the wiki](https://github.com/vincoin-core/vincoin-devwiki/wiki/) into the branch. - Ensure the "Needs release note" label is removed from all relevant pull requests and issues: - https://github.com/bitcoin/bitcoin/issues?q=label%3A%22Needs+release+note%22 + https://github.com/vincoin/vincoin/issues?q=label%3A%22Needs+release+note%22 #### Tagging a release (candidate) -To tag the version (or release candidate) in git, use the `make-tag.py` script from [bitcoin-maintainer-tools](https://github.com/bitcoin-core/bitcoin-maintainer-tools). From the root of the repository run: +To tag the version (or release candidate) in git, use the `make-tag.py` script from [vincoin-maintainer-tools](https://github.com/vincoin-core/vincoin-maintainer-tools). From the root of the repository run: - ../bitcoin-maintainer-tools/make-tag.py v(new version, e.g. 25.0) + ../vincoin-maintainer-tools/make-tag.py v(new version, e.g. 25.0) This will perform a few last-minute consistency checks in the build system files, and if they pass, create a signed tag. @@ -96,13 +96,13 @@ Install Guix using one of the installation methods detailed in Check out the source code in the following directory hierarchy. cd /path/to/your/toplevel/build - git clone https://github.com/bitcoin-core/guix.sigs.git - git clone https://github.com/bitcoin-core/bitcoin-detached-sigs.git - git clone https://github.com/bitcoin/bitcoin.git + git clone https://github.com/vincoin-core/guix.sigs.git + git clone https://github.com/vincoin-core/vincoin-detached-sigs.git + git clone https://github.com/vincoin/vincoin.git ### Write the release notes -Open a draft of the release notes for collaborative editing at https://github.com/bitcoin-core/bitcoin-devwiki/wiki. +Open a draft of the release notes for collaborative editing at https://github.com/vincoin-core/vincoin-devwiki/wiki. For the period during which the notes are being edited on the wiki, the version on the branch should be wiped and replaced with a link to the wiki which should be used for all announcements until `-final`. @@ -112,10 +112,10 @@ Generate list of authors: ### Setup and perform Guix builds -Checkout the Bitcoin Core version you'd like to build: +Checkout the Vincoin Core version you'd like to build: ```sh -pushd ./bitcoin +pushd ./vincoin SIGNER='(your builder key, ie bluematt, sipa, etc)' VERSION='(new version without v-prefix, e.g. 25.0)' git fetch origin "v${VERSION}" @@ -155,32 +155,32 @@ git commit -m "Add attestations by ${SIGNER} for ${VERSION} non-codesigned" popd ``` -Then open a Pull Request to the [guix.sigs repository](https://github.com/bitcoin-core/guix.sigs). +Then open a Pull Request to the [guix.sigs repository](https://github.com/vincoin-core/guix.sigs). ## Codesigning ### macOS codesigner only: Create detached macOS signatures (assuming [signapple](https://github.com/achow101/signapple/) is installed and up to date with master branch) - tar xf bitcoin-osx-unsigned.tar.gz + tar xf vincoin-osx-unsigned.tar.gz ./detached-sig-create.sh /path/to/codesign.p12 Enter the keychain password and authorize the signature signature-osx.tar.gz will be created ### Windows codesigner only: Create detached Windows signatures - tar xf bitcoin-win-unsigned.tar.gz + tar xf vincoin-win-unsigned.tar.gz ./detached-sig-create.sh -key /path/to/codesign.key Enter the passphrase for the key when prompted signature-win.tar.gz will be created ### Windows and macOS codesigners only: test code signatures It is advised to test that the code signature attaches properly prior to tagging by performing the `guix-codesign` step. -However if this is done, once the release has been tagged in the bitcoin-detached-sigs repo, the `guix-codesign` step must be performed again in order for the guix attestation to be valid when compared against the attestations of non-codesigner builds. +However if this is done, once the release has been tagged in the vincoin-detached-sigs repo, the `guix-codesign` step must be performed again in order for the guix attestation to be valid when compared against the attestations of non-codesigner builds. ### Windows and macOS codesigners only: Commit the detached codesign payloads ```sh -pushd ./bitcoin-detached-sigs +pushd ./vincoin-detached-sigs # checkout the appropriate branch for this release series rm -rf ./* tar xf signature-osx.tar.gz @@ -195,7 +195,7 @@ popd ### Non-codesigners: wait for Windows and macOS detached signatures - Once the Windows and macOS builds each have 3 matching signatures, they will be signed with their respective release keys. -- Detached signatures will then be committed to the [bitcoin-detached-sigs](https://github.com/bitcoin-core/bitcoin-detached-sigs) repository, which can be combined with the unsigned apps to create signed binaries. +- Detached signatures will then be committed to the [vincoin-detached-sigs](https://github.com/vincoin-core/vincoin-detached-sigs) repository, which can be combined with the unsigned apps to create signed binaries. ### Create the codesigned build outputs @@ -214,7 +214,7 @@ git commit -m "Add attestations by ${SIGNER} for ${VERSION} codesigned" popd ``` -Then open a Pull Request to the [guix.sigs repository](https://github.com/bitcoin-core/guix.sigs). +Then open a Pull Request to the [guix.sigs repository](https://github.com/vincoin-core/guix.sigs). ## After 3 or more people have guix-built and their results match @@ -225,8 +225,8 @@ cat "$VERSION"/*/all.SHA256SUMS.asc > SHA256SUMS.asc ``` -- Upload to the bitcoincore.org server (`/var/www/bin/bitcoin-core-${VERSION}/`): - 1. The contents of each `./bitcoin/guix-build-${VERSION}/output/${HOST}/` directory, except for +- Upload to the vincoincore.org server (`/var/www/bin/vincoin-core-${VERSION}/`): + 1. The contents of each `./vincoin/guix-build-${VERSION}/output/${HOST}/` directory, except for `*-debug*` files. Guix will output all of the results into host subdirectories, but the SHA256SUMS @@ -238,21 +238,21 @@ cat "$VERSION"/*/all.SHA256SUMS.asc > SHA256SUMS.asc for troubleshooting by developers. It is assumed that anyone that is interested in debugging can run guix to generate the files for themselves. To avoid end-user confusion about which file to pick, as well - as save storage space *do not upload these to the bitcoincore.org server, + as save storage space *do not upload these to the vincoincore.org server, nor put them in the torrent*. ```sh - find guix-build-${VERSION}/output/ -maxdepth 2 -type f -not -name "SHA256SUMS.part" -and -not -name "*debug*" -exec scp {} user@bitcoincore.org:/var/www/bin/bitcoin-core-${VERSION} \; + find guix-build-${VERSION}/output/ -maxdepth 2 -type f -not -name "SHA256SUMS.part" -and -not -name "*debug*" -exec scp {} user@vincoincore.org:/var/www/bin/vincoin-core-${VERSION} \; ``` 2. The `SHA256SUMS` file 3. The `SHA256SUMS.asc` combined signature file you just created -- Create a torrent of the `/var/www/bin/bitcoin-core-${VERSION}` directory such - that at the top level there is only one file: the `bitcoin-core-${VERSION}` +- Create a torrent of the `/var/www/bin/vincoin-core-${VERSION}` directory such + that at the top level there is only one file: the `vincoin-core-${VERSION}` directory containing everything else. Name the torrent - `bitcoin-${VERSION}.torrent` (note that there is no `-core-` in this name). + `vincoin-${VERSION}.torrent` (note that there is no `-core-` in this name). Optionally help seed this torrent. To get the `magnet:` URI use: @@ -261,44 +261,44 @@ cat "$VERSION"/*/all.SHA256SUMS.asc > SHA256SUMS.asc ``` Insert the magnet URI into the announcement sent to mailing lists. This permits - people without access to `bitcoincore.org` to download the binary distribution. + people without access to `vincoincore.org` to download the binary distribution. Also put it into the `optional_magnetlink:` slot in the YAML file for - bitcoincore.org. + vincoincore.org. - Update other repositories and websites for new version - - bitcoincore.org blog post + - vincoincore.org blog post - - bitcoincore.org maintained versions update: - [table](https://github.com/bitcoin-core/bitcoincore.org/commits/master/_includes/posts/maintenance-table.md) + - vincoincore.org maintained versions update: + [table](https://github.com/vincoin-core/vincoincore.org/commits/master/_includes/posts/maintenance-table.md) - - Delete post-EOL [release branches](https://github.com/bitcoin/bitcoin/branches/all) and create a tag `v${branch_name}-final`. + - Delete post-EOL [release branches](https://github.com/vincoin/vincoin/branches/all) and create a tag `v${branch_name}-final`. - - Delete ["Needs backport" labels](https://github.com/bitcoin/bitcoin/labels?q=backport) for non-existing branches. + - Delete ["Needs backport" labels](https://github.com/vincoin/vincoin/labels?q=backport) for non-existing branches. - - bitcoincore.org RPC documentation update + - vincoincore.org RPC documentation update - - See https://github.com/bitcoin-core/bitcoincore.org/blob/master/contrib/doc-gen/ + - See https://github.com/vincoin-core/vincoincore.org/blob/master/contrib/doc-gen/ - Update packaging repo - - Push the flatpak to flathub, e.g. https://github.com/flathub/org.bitcoincore.bitcoin-qt/pull/2 + - Push the flatpak to flathub, e.g. https://github.com/flathub/org.vincoincore.vincoin-qt/pull/2 - - Push the snap, see https://github.com/bitcoin-core/packaging/blob/main/snap/local/build.md + - Push the snap, see https://github.com/vincoin-core/packaging/blob/main/snap/local/build.md - This repo - Archive the release notes for the new version to `doc/release-notes/` (branch `master` and branch of the release) - - Create a [new GitHub release](https://github.com/bitcoin/bitcoin/releases/new) with a link to the archived release notes + - Create a [new GitHub release](https://github.com/vincoin/vincoin/releases/new) with a link to the archived release notes - Announce the release: - - bitcoin-dev and bitcoin-core-dev mailing list + - vincoin-dev and vincoin-core-dev mailing list - - Bitcoin Core announcements list https://bitcoincore.org/en/list/announcements/join/ + - Vincoin Core announcements list https://vincoincore.org/en/list/announcements/join/ - - Bitcoin Core Twitter https://twitter.com/bitcoincoreorg + - Vincoin Core Twitter https://twitter.com/vincoincoreorg - Celebrate diff --git a/doc/shared-libraries.md b/doc/shared-libraries.md index 3a448c655612e..04eff854e7a6f 100644 --- a/doc/shared-libraries.md +++ b/doc/shared-libraries.md @@ -1,34 +1,34 @@ Shared Libraries ================ -## bitcoinconsensus +## vincoinconsensus ***This library is deprecated and will be removed in v28*** -The purpose of this library is to make the verification functionality that is critical to Bitcoin's consensus available to other applications, e.g. to language bindings. +The purpose of this library is to make the verification functionality that is critical to Vincoin's consensus available to other applications, e.g. to language bindings. ### API -The interface is defined in the C header `bitcoinconsensus.h` located in `src/script/bitcoinconsensus.h`. +The interface is defined in the C header `vincoinconsensus.h` located in `src/script/vincoinconsensus.h`. #### Version -`bitcoinconsensus_version` returns an `unsigned int` with the API version *(currently `2`)*. +`vincoinconsensus_version` returns an `unsigned int` with the API version *(currently `2`)*. #### Script Validation -`bitcoinconsensus_verify_script`, `bitcoinconsensus_verify_script_with_amount` and `bitcoinconsensus_verify_script_with_spent_outputs` return an `int` with the status of the verification. It will be `1` if the input script correctly spends the previous output `scriptPubKey`. +`vincoinconsensus_verify_script`, `vincoinconsensus_verify_script_with_amount` and `vincoinconsensus_verify_script_with_spent_outputs` return an `int` with the status of the verification. It will be `1` if the input script correctly spends the previous output `scriptPubKey`. ##### Parameters -###### bitcoinconsensus_verify_script +###### vincoinconsensus_verify_script - `const unsigned char *scriptPubKey` - The previous output script that encumbers spending. - `unsigned int scriptPubKeyLen` - The number of bytes for the `scriptPubKey`. - `const unsigned char *txTo` - The transaction with the input that is spending the previous output. - `unsigned int txToLen` - The number of bytes for the `txTo`. - `unsigned int nIn` - The index of the input in `txTo` that spends the `scriptPubKey`. - `unsigned int flags` - The script validation flags *(see below)*. -- `bitcoinconsensus_error* err` - Will have the error/success code for the operation *(see below)*. +- `vincoinconsensus_error* err` - Will have the error/success code for the operation *(see below)*. -###### bitcoinconsensus_verify_script_with_amount +###### vincoinconsensus_verify_script_with_amount - `const unsigned char *scriptPubKey` - The previous output script that encumbers spending. - `unsigned int scriptPubKeyLen` - The number of bytes for the `scriptPubKey`. - `int64_t amount` - The amount spent in the input @@ -36,9 +36,9 @@ The interface is defined in the C header `bitcoinconsensus.h` located in `src/sc - `unsigned int txToLen` - The number of bytes for the `txTo`. - `unsigned int nIn` - The index of the input in `txTo` that spends the `scriptPubKey`. - `unsigned int flags` - The script validation flags *(see below)*. -- `bitcoinconsensus_error* err` - Will have the error/success code for the operation *(see below)*. +- `vincoinconsensus_error* err` - Will have the error/success code for the operation *(see below)*. -###### bitcoinconsensus_verify_script_with_spent_outputs +###### vincoinconsensus_verify_script_with_spent_outputs - `const unsigned char *scriptPubKey` - The previous output script that encumbers spending. - `unsigned int scriptPubKeyLen` - The number of bytes for the `scriptPubKey`. - `int64_t amount` - The amount spent in the input @@ -48,31 +48,31 @@ The interface is defined in the C header `bitcoinconsensus.h` located in `src/sc - `unsigned int spentOutputsLen` - The number of bytes for the `spentOutputs`. - `unsigned int nIn` - The index of the input in `txTo` that spends the `scriptPubKey`. - `unsigned int flags` - The script validation flags *(see below)*. -- `bitcoinconsensus_error* err` - Will have the error/success code for the operation *(see below)*. +- `vincoinconsensus_error* err` - Will have the error/success code for the operation *(see below)*. ##### Script Flags -- `bitcoinconsensus_SCRIPT_FLAGS_VERIFY_NONE` -- `bitcoinconsensus_SCRIPT_FLAGS_VERIFY_P2SH` - Evaluate P2SH ([BIP16](https://github.com/bitcoin/bips/blob/master/bip-0016.mediawiki)) subscripts -- `bitcoinconsensus_SCRIPT_FLAGS_VERIFY_DERSIG` - Enforce strict DER ([BIP66](https://github.com/bitcoin/bips/blob/master/bip-0066.mediawiki)) compliance -- `bitcoinconsensus_SCRIPT_FLAGS_VERIFY_NULLDUMMY` - Enforce NULLDUMMY ([BIP147](https://github.com/bitcoin/bips/blob/master/bip-0147.mediawiki)) -- `bitcoinconsensus_SCRIPT_FLAGS_VERIFY_CHECKLOCKTIMEVERIFY` - Enable CHECKLOCKTIMEVERIFY ([BIP65](https://github.com/bitcoin/bips/blob/master/bip-0065.mediawiki)) -- `bitcoinconsensus_SCRIPT_FLAGS_VERIFY_CHECKSEQUENCEVERIFY` - Enable CHECKSEQUENCEVERIFY ([BIP112](https://github.com/bitcoin/bips/blob/master/bip-0112.mediawiki)) -- `bitcoinconsensus_SCRIPT_FLAGS_VERIFY_WITNESS` - Enable WITNESS ([BIP141](https://github.com/bitcoin/bips/blob/master/bip-0141.mediawiki)) -- `bitcoinconsensus_SCRIPT_FLAGS_VERIFY_TAPROOT` - Enable TAPROOT ([BIP340](https://github.com/bitcoin/bips/blob/master/bip-0340.mediawiki), [BIP341](https://github.com/bitcoin/bips/blob/master/bip-0341.mediawiki), [BIP342](https://github.com/bitcoin/bips/blob/master/bip-0342.mediawiki)) +- `vincoinconsensus_SCRIPT_FLAGS_VERIFY_NONE` +- `vincoinconsensus_SCRIPT_FLAGS_VERIFY_P2SH` - Evaluate P2SH ([BIP16](https://github.com/vincoin/bips/blob/master/bip-0016.mediawiki)) subscripts +- `vincoinconsensus_SCRIPT_FLAGS_VERIFY_DERSIG` - Enforce strict DER ([BIP66](https://github.com/vincoin/bips/blob/master/bip-0066.mediawiki)) compliance +- `vincoinconsensus_SCRIPT_FLAGS_VERIFY_NULLDUMMY` - Enforce NULLDUMMY ([BIP147](https://github.com/vincoin/bips/blob/master/bip-0147.mediawiki)) +- `vincoinconsensus_SCRIPT_FLAGS_VERIFY_CHECKLOCKTIMEVERIFY` - Enable CHECKLOCKTIMEVERIFY ([BIP65](https://github.com/vincoin/bips/blob/master/bip-0065.mediawiki)) +- `vincoinconsensus_SCRIPT_FLAGS_VERIFY_CHECKSEQUENCEVERIFY` - Enable CHECKSEQUENCEVERIFY ([BIP112](https://github.com/vincoin/bips/blob/master/bip-0112.mediawiki)) +- `vincoinconsensus_SCRIPT_FLAGS_VERIFY_WITNESS` - Enable WITNESS ([BIP141](https://github.com/vincoin/bips/blob/master/bip-0141.mediawiki)) +- `vincoinconsensus_SCRIPT_FLAGS_VERIFY_TAPROOT` - Enable TAPROOT ([BIP340](https://github.com/vincoin/bips/blob/master/bip-0340.mediawiki), [BIP341](https://github.com/vincoin/bips/blob/master/bip-0341.mediawiki), [BIP342](https://github.com/vincoin/bips/blob/master/bip-0342.mediawiki)) ##### Errors -- `bitcoinconsensus_ERR_OK` - No errors with input parameters *(see the return value of `bitcoinconsensus_verify_script` for the verification status)* -- `bitcoinconsensus_ERR_TX_INDEX` - An invalid index for `txTo` -- `bitcoinconsensus_ERR_TX_SIZE_MISMATCH` - `txToLen` did not match with the size of `txTo` -- `bitcoinconsensus_ERR_DESERIALIZE` - An error deserializing `txTo` -- `bitcoinconsensus_ERR_AMOUNT_REQUIRED` - Input amount is required if WITNESS is used -- `bitcoinconsensus_ERR_INVALID_FLAGS` - Script verification `flags` are invalid (i.e. not part of the libconsensus interface) -- `bitcoinconsensus_ERR_SPENT_OUTPUTS_REQUIRED` - Spent outputs are required if TAPROOT is used -- `bitcoinconsensus_ERR_SPENT_OUTPUTS_MISMATCH` - Spent outputs size doesn't match tx inputs size +- `vincoinconsensus_ERR_OK` - No errors with input parameters *(see the return value of `vincoinconsensus_verify_script` for the verification status)* +- `vincoinconsensus_ERR_TX_INDEX` - An invalid index for `txTo` +- `vincoinconsensus_ERR_TX_SIZE_MISMATCH` - `txToLen` did not match with the size of `txTo` +- `vincoinconsensus_ERR_DESERIALIZE` - An error deserializing `txTo` +- `vincoinconsensus_ERR_AMOUNT_REQUIRED` - Input amount is required if WITNESS is used +- `vincoinconsensus_ERR_INVALID_FLAGS` - Script verification `flags` are invalid (i.e. not part of the libconsensus interface) +- `vincoinconsensus_ERR_SPENT_OUTPUTS_REQUIRED` - Spent outputs are required if TAPROOT is used +- `vincoinconsensus_ERR_SPENT_OUTPUTS_MISMATCH` - Spent outputs size doesn't match tx inputs size ### Example Implementations -- [NBitcoin](https://github.com/MetacoSA/NBitcoin/blob/5e1055cd7c4186dee4227c344af8892aea54faec/NBitcoin/Script.cs#L979-#L1031) (.NET Bindings) -- [node-libbitcoinconsensus](https://github.com/bitpay/node-libbitcoinconsensus) (Node.js Bindings) -- [java-libbitcoinconsensus](https://github.com/dexX7/java-libbitcoinconsensus) (Java Bindings) -- [bitcoinconsensus-php](https://github.com/Bit-Wasp/bitcoinconsensus-php) (PHP Bindings) -- [rust-bitcoinconsensus](https://github.com/rust-bitcoin/rust-bitcoinconsensus) (Rust Bindings) \ No newline at end of file +- [NVincoin](https://github.com/MetacoSA/NVincoin/blob/5e1055cd7c4186dee4227c344af8892aea54faec/NVincoin/Script.cs#L979-#L1031) (.NET Bindings) +- [node-libvincoinconsensus](https://github.com/bitpay/node-libvincoinconsensus) (Node.js Bindings) +- [java-libvincoinconsensus](https://github.com/dexX7/java-libvincoinconsensus) (Java Bindings) +- [vincoinconsensus-php](https://github.com/Bit-Wasp/vincoinconsensus-php) (PHP Bindings) +- [rust-vincoinconsensus](https://github.com/rust-vincoin/rust-vincoinconsensus) (Rust Bindings) \ No newline at end of file diff --git a/doc/tor.md b/doc/tor.md index 65aa3ece02eb3..8d816d775b33e 100644 --- a/doc/tor.md +++ b/doc/tor.md @@ -1,19 +1,19 @@ # TOR SUPPORT IN BITCOIN -It is possible to run Bitcoin Core as a Tor onion service, and connect to such services. +It is possible to run Vincoin Core as a Tor onion service, and connect to such services. The following directions assume you have a Tor proxy running on port 9050. Many distributions default to having a SOCKS proxy listening on port 9050, but others may not. In particular, the Tor Browser Bundle defaults to listening on port 9150. ## Compatibility -- Starting with version 22.0, Bitcoin Core only supports Tor version 3 hidden - services (Tor v3). Tor v2 addresses are ignored by Bitcoin Core and neither +- Starting with version 22.0, Vincoin Core only supports Tor version 3 hidden + services (Tor v3). Tor v2 addresses are ignored by Vincoin Core and neither relayed nor stored. - Tor removed v2 support beginning with version 0.4.6. -## How to see information about your Tor configuration via Bitcoin Core +## How to see information about your Tor configuration via Vincoin Core -There are several ways to see your local onion address in Bitcoin Core: +There are several ways to see your local onion address in Vincoin Core: - in the "Local addresses" output of CLI `-netinfo` - in the "localaddresses" output of RPC `getnetworkinfo` - in the debug log (grep for "AddLocal"; the Tor address ends in `.onion`) @@ -25,11 +25,11 @@ CLI `-addrinfo` returns the number of addresses known to your node per network. This can be useful to see how many onion peers your node knows, e.g. for `-onlynet=onion`. -You can use the `getnodeaddresses` RPC to fetch a number of onion peers known to your node; run `bitcoin-cli help getnodeaddresses` for details. +You can use the `getnodeaddresses` RPC to fetch a number of onion peers known to your node; run `vincoin-cli help getnodeaddresses` for details. -## 1. Run Bitcoin Core behind a Tor proxy +## 1. Run Vincoin Core behind a Tor proxy -The first step is running Bitcoin Core behind a Tor proxy. This will already anonymize all +The first step is running Vincoin Core behind a Tor proxy. This will already anonymize all outgoing connections, but more is possible. -proxy=ip:port Set the proxy server. If SOCKS5 is selected (default), this proxy @@ -62,22 +62,22 @@ outgoing connections, but more is possible. In a typical situation, this suffices to run behind a Tor proxy: - ./bitcoind -proxy=127.0.0.1:9050 + ./vincoind -proxy=127.0.0.1:9050 -## 2. Automatically create a Bitcoin Core onion service +## 2. Automatically create a Vincoin Core onion service -Bitcoin Core makes use of Tor's control socket API to create and destroy +Vincoin Core makes use of Tor's control socket API to create and destroy ephemeral onion services programmatically. This means that if Tor is running and -proper authentication has been configured, Bitcoin Core automatically creates an +proper authentication has been configured, Vincoin Core automatically creates an onion service to listen on. The goal is to increase the number of available onion nodes. -This feature is enabled by default if Bitcoin Core is listening (`-listen`) and +This feature is enabled by default if Vincoin Core is listening (`-listen`) and it requires a Tor connection to work. It can be explicitly disabled with `-listenonion=0`. If it is not disabled, it can be configured using the `-torcontrol` and `-torpassword` settings. -To see verbose Tor information in the bitcoind debug log, pass `-debug=tor`. +To see verbose Tor information in the vincoind debug log, pass `-debug=tor`. ### Control Port @@ -99,20 +99,20 @@ Debian and Ubuntu, or just restart the computer). ### Authentication Connecting to Tor's control socket API requires one of two authentication -methods to be configured: cookie authentication or bitcoind's `-torpassword` +methods to be configured: cookie authentication or vincoind's `-torpassword` configuration option. #### Cookie authentication -For cookie authentication, the user running bitcoind must have read access to +For cookie authentication, the user running vincoind must have read access to the `CookieAuthFile` specified in the Tor configuration. In some cases this is preconfigured and the creation of an onion service is automatic. Don't forget to -use the `-debug=tor` bitcoind configuration option to enable Tor debug logging. +use the `-debug=tor` vincoind configuration option to enable Tor debug logging. If a permissions problem is seen in the debug log, e.g. `tor: Authentication cookie /run/tor/control.authcookie could not be opened (check permissions)`, it can be resolved by adding both the user running Tor and the user running -bitcoind to the same Tor group and setting permissions appropriately. +vincoind to the same Tor group and setting permissions appropriately. On Debian-derived systems, the Tor group will likely be `debian-tor` and one way to verify could be to list the groups and grep for a "tor" group name: @@ -129,14 +129,14 @@ TORGROUP=$(stat -c '%G' /run/tor/control.authcookie) ``` Once you have determined the `${TORGROUP}` and selected the `${USER}` that will -run bitcoind, run this as root: +run vincoind, run this as root: ``` usermod -a -G ${TORGROUP} ${USER} ``` Then restart the computer (or log out) and log in as the `${USER}` that will run -bitcoind. +vincoind. #### `torpassword` authentication @@ -150,22 +150,22 @@ Manual](https://2019.www.torproject.org/docs/tor-manual.html.en) for more details). -## 3. Manually create a Bitcoin Core onion service +## 3. Manually create a Vincoin Core onion service You can also manually configure your node to be reachable from the Tor network. Add these lines to your `/etc/tor/torrc` (or equivalent config file): - HiddenServiceDir /var/lib/tor/bitcoin-service/ + HiddenServiceDir /var/lib/tor/vincoin-service/ HiddenServicePort 8333 127.0.0.1:8334 The directory can be different of course, but virtual port numbers should be equal to -your bitcoind's P2P listen port (8333 by default), and target addresses and ports +your vincoind's P2P listen port (8333 by default), and target addresses and ports should be equal to binding address and port for inbound Tor connections (127.0.0.1:8334 by default). - -externalip=X You can tell bitcoin about its publicly reachable addresses using + -externalip=X You can tell vincoin about its publicly reachable addresses using this option, and this can be an onion address. Given the above configuration, you can find your onion address in - /var/lib/tor/bitcoin-service/hostname. For connections + /var/lib/tor/vincoin-service/hostname. For connections coming from unroutable addresses (such as 127.0.0.1, where the Tor proxy typically runs), onion addresses are given preference for your node to advertise itself with. @@ -187,29 +187,29 @@ should be equal to binding address and port for inbound Tor connections (127.0.0 In a typical situation, where you're only reachable via Tor, this should suffice: - ./bitcoind -proxy=127.0.0.1:9050 -externalip=7zvj7a2imdgkdbg4f2dryd5rgtrn7upivr5eeij4cicjh65pooxeshid.onion -listen + ./vincoind -proxy=127.0.0.1:9050 -externalip=7zvj7a2imdgkdbg4f2dryd5rgtrn7upivr5eeij4cicjh65pooxeshid.onion -listen (obviously, replace the .onion address with your own). It should be noted that you still listen on all devices and another node could establish a clearnet connection, when knowing your address. To mitigate this, additionally bind the address of your Tor proxy: - ./bitcoind ... -bind=127.0.0.1 + ./vincoind ... -bind=127.0.0.1 If you don't care too much about hiding your node, and want to be reachable on IPv4 as well, use `discover` instead: - ./bitcoind ... -discover + ./vincoind ... -discover and open port 8333 on your firewall (or use port mapping, i.e., `-upnp` or `-natpmp`). If you only want to use Tor to reach .onion addresses, but not use it as a proxy for normal IPv4/IPv6 communication, use: - ./bitcoind -onion=127.0.0.1:9050 -externalip=7zvj7a2imdgkdbg4f2dryd5rgtrn7upivr5eeij4cicjh65pooxeshid.onion -discover + ./vincoind -onion=127.0.0.1:9050 -externalip=7zvj7a2imdgkdbg4f2dryd5rgtrn7upivr5eeij4cicjh65pooxeshid.onion -discover ## 4. Privacy recommendations -- Do not add anything but Bitcoin Core ports to the onion service created in section 3. +- Do not add anything but Vincoin Core ports to the onion service created in section 3. If you run a web service too, create a new onion service for that. Otherwise it is trivial to link them, which may reduce privacy. Onion services created automatically (as in section 2) always have only one port diff --git a/doc/tracing.md b/doc/tracing.md index 0e3414205abe3..969b58d633f5c 100644 --- a/doc/tracing.md +++ b/doc/tracing.md @@ -1,6 +1,6 @@ -# User-space, Statically Defined Tracing (USDT) for Bitcoin Core +# User-space, Statically Defined Tracing (USDT) for Vincoin Core -Bitcoin Core includes statically defined tracepoints to allow for more +Vincoin Core includes statically defined tracepoints to allow for more observability during development, debugging, code review, and production usage. These tracepoints make it possible to keep track of custom statistics and enable detailed monitoring of otherwise hidden internals. They have @@ -11,7 +11,7 @@ eBPF and USDT Overview ====================== ┌──────────────────┐ ┌──────────────┐ - │ tracing script │ │ bitcoind │ + │ tracing script │ │ vincoind │ │==================│ 2. │==============│ │ eBPF │ tracing │ hooks │ │ │ code │ logic │ into┌─┤►tracepoint 1─┼───┐ 3. @@ -112,7 +112,7 @@ Arguments passed: The following tracepoints cover the in-memory UTXO cache. UTXOs are, for example, added to and removed (spent) from the cache when we connect a new block. -**Note**: Bitcoin Core uses temporary clones of the _main_ UTXO cache +**Note**: Vincoin Core uses temporary clones of the _main_ UTXO cache (`chainstate.CoinsTip()`). For example, the RPCs `generateblock` and `getblocktemplate` call `TestBlockValidity()`, which applies the UTXO set changes to a temporary cache. Similarly, mempool consistency checks, which are @@ -263,7 +263,7 @@ Arguments passed: 1. Transaction ID (hash) as `pointer to unsigned chars` (i.e. 32 bytes in little-endian) 2. Reject reason as `pointer to C-style String` (max. length 118 characters) -## Adding tracepoints to Bitcoin Core +## Adding tracepoints to Vincoin Core To add a new tracepoint, `#include ` in the compilation unit where the tracepoint is inserted. Use one of the `TRACEx` macros listed below @@ -358,31 +358,31 @@ maximum expected string size if known. ## Listing available tracepoints -Multiple tools can list the available tracepoints in a `bitcoind` binary with +Multiple tools can list the available tracepoints in a `vincoind` binary with USDT support. ### GDB - GNU Project Debugger -To list probes in Bitcoin Core, use `info probes` in `gdb`: +To list probes in Vincoin Core, use `info probes` in `gdb`: ``` -$ gdb ./src/bitcoind +$ gdb ./src/vincoind … (gdb) info probes Type Provider Name Where Semaphore Object -stap net inbound_message 0x000000000014419e /src/bitcoind -stap net outbound_message 0x0000000000107c05 /src/bitcoind -stap validation block_connected 0x00000000002fb10c /src/bitcoind +stap net inbound_message 0x000000000014419e /src/vincoind +stap net outbound_message 0x0000000000107c05 /src/vincoind +stap validation block_connected 0x00000000002fb10c /src/vincoind … ``` ### With `readelf` -The `readelf` tool can be used to display the USDT tracepoints in Bitcoin Core. +The `readelf` tool can be used to display the USDT tracepoints in Vincoin Core. Look for the notes with the description `NT_STAPSDT`. ``` -$ readelf -n ./src/bitcoind | grep NT_STAPSDT -A 4 -B 2 +$ readelf -n ./src/vincoind | grep NT_STAPSDT -A 4 -B 2 Displaying notes found in: .note.stapsdt Owner Data size Description stapsdt 0x0000005d NT_STAPSDT (SystemTap probe descriptors) @@ -406,7 +406,7 @@ between distributions. For example, on [ubuntu binary]: https://github.com/iovisor/bcc/blob/master/INSTALL.md#ubuntu---binary ``` -$ tplist -l ./src/bitcoind -v +$ tplist -l ./src/vincoind -v b'net':b'outbound_message' [sema 0x0] 1 location(s) 6 argument(s) diff --git a/doc/translation_process.md b/doc/translation_process.md index e5ed7f4e0ae73..753c87c12511d 100644 --- a/doc/translation_process.md +++ b/doc/translation_process.md @@ -1,22 +1,22 @@ Translations ============ -The Bitcoin-Core project has been designed to support multiple localisations. This makes adding new phrases, and completely new languages easily achievable. For managing all application translations, Bitcoin-Core makes use of the Transifex online translation management tool. +The Vincoin-Core project has been designed to support multiple localisations. This makes adding new phrases, and completely new languages easily achievable. For managing all application translations, Vincoin-Core makes use of the Transifex online translation management tool. ### Helping to translate (using Transifex) Transifex is setup to monitor the GitHub repo for updates, and when code containing new translations is found, Transifex will process any changes. It may take several hours after a pull-request has been merged, to appear in the Transifex web interface. -Multiple language support is critical in assisting Bitcoin’s global adoption, and growth. One of Bitcoin’s greatest strengths is cross-border money transfers, any help making that easier is greatly appreciated. +Multiple language support is critical in assisting Vincoin’s global adoption, and growth. One of Vincoin’s greatest strengths is cross-border money transfers, any help making that easier is greatly appreciated. -See the [Transifex Bitcoin project](https://www.transifex.com/bitcoin/bitcoin/) to assist in translations. You should also join the translation mailing list for announcements - see details below. +See the [Transifex Vincoin project](https://www.transifex.com/vincoin/vincoin/) to assist in translations. You should also join the translation mailing list for announcements - see details below. ### Writing code with translations We use automated scripts to help extract translations in both Qt, and non-Qt source files. It is rarely necessary to manually edit the files in `src/qt/locale/`. The translation source files must adhere to the following format: -`bitcoin_xx_YY.ts or bitcoin_xx.ts` +`vincoin_xx_YY.ts or vincoin_xx.ts` -`src/qt/locale/bitcoin_en.ts` is treated in a special way. It is used as the source for all other translations. Whenever a string in the source code is changed, this file must be updated to reflect those changes. A custom script is used to extract strings from the non-Qt parts. This script makes use of `gettext`, so make sure that utility is installed (ie, `apt-get install gettext` on Ubuntu/Debian). Once this has been updated, `lupdate` (included in the Qt SDK) is used to update `bitcoin_en.ts`. +`src/qt/locale/vincoin_en.ts` is treated in a special way. It is used as the source for all other translations. Whenever a string in the source code is changed, this file must be updated to reflect those changes. A custom script is used to extract strings from the non-Qt parts. This script makes use of `gettext`, so make sure that utility is installed (ie, `apt-get install gettext` on Ubuntu/Debian). Once this has been updated, `lupdate` (included in the Qt SDK) is used to update `vincoin_en.ts`. -To automatically regenerate the `bitcoin_en.ts` file, run the following commands: +To automatically regenerate the `vincoin_en.ts` file, run the following commands: ```sh cd src/ make translate @@ -34,26 +34,26 @@ When an updated source file is merged into the GitHub repo, Transifex will autom To create the pull-request, use the following commands: ``` -git add src/qt/bitcoinstrings.cpp src/qt/locale/bitcoin_en.ts +git add src/qt/vincoinstrings.cpp src/qt/locale/vincoin_en.ts git commit ``` ### Creating a Transifex account Visit the [Transifex Signup](https://www.transifex.com/signup/) page to create an account. Take note of your username and password, as they will be required to configure the command-line tool. -You can find the Bitcoin translation project at [https://www.transifex.com/bitcoin/bitcoin/](https://www.transifex.com/bitcoin/bitcoin/). +You can find the Vincoin translation project at [https://www.transifex.com/vincoin/vincoin/](https://www.transifex.com/vincoin/vincoin/). ### Installing the Transifex client command-line tool The client is used to fetch updated translations. Please check installation instructions and any other details at https://developers.transifex.com/docs/cli. -The Transifex Bitcoin project config file is included as part of the repo. It can be found at `.tx/config`, however you shouldn’t need to change anything. +The Transifex Vincoin project config file is included as part of the repo. It can be found at `.tx/config`, however you shouldn’t need to change anything. ### Synchronising translations -To assist in updating translations, a helper script is available in the [maintainer-tools repo](https://github.com/bitcoin-core/bitcoin-maintainer-tools). To use it and commit the result, simply do: +To assist in updating translations, a helper script is available in the [maintainer-tools repo](https://github.com/vincoin-core/vincoin-maintainer-tools). To use it and commit the result, simply do: ``` -python3 ../bitcoin-maintainer-tools/update-translations.py +python3 ../vincoin-maintainer-tools/update-translations.py git commit -a ``` @@ -62,7 +62,7 @@ git commit -a ### Handling Plurals (in source files) When new plurals are added to the source file, it's important to do the following steps: -1. Open `bitcoin_en.ts` in Qt Linguist (included in the Qt SDK) +1. Open `vincoin_en.ts` in Qt Linguist (included in the Qt SDK) 2. Search for `%n`, which will take you to the parts in the translation that use plurals 3. Look for empty `English Translation (Singular)` and `English Translation (Plural)` fields 4. Add the appropriate strings for the singular and plural form of the base string @@ -71,11 +71,11 @@ When new plurals are added to the source file, it's important to do the followin 7. Save the source file ### Translating a new language -To create a new language template, you will need to edit the languages manifest file `src/qt/bitcoin_locale.qrc` and add a new entry. Below is an example of the English language entry. +To create a new language template, you will need to edit the languages manifest file `src/qt/vincoin_locale.qrc` and add a new entry. Below is an example of the English language entry. ```xml - locale/bitcoin_en.qm + locale/vincoin_en.qm ... ``` @@ -84,4 +84,4 @@ To create a new language template, you will need to edit the languages manifest ### Questions and general assistance -If you are a translator, you should also subscribe to the mailing list, https://groups.google.com/forum/#!forum/bitcoin-translators. Announcements will be posted during application pre-releases to notify translators to check for updates. +If you are a translator, you should also subscribe to the mailing list, https://groups.google.com/forum/#!forum/vincoin-translators. Announcements will be posted during application pre-releases to notify translators to check for updates. diff --git a/doc/translation_strings_policy.md b/doc/translation_strings_policy.md index 1931302ddafdb..07d053ef225eb 100644 --- a/doc/translation_strings_policy.md +++ b/doc/translation_strings_policy.md @@ -1,7 +1,7 @@ Translation Strings Policy =========================== -This document provides guidelines for internationalization of the Bitcoin Core software. +This document provides guidelines for internationalization of the Vincoin Core software. How to translate? ------------------ @@ -76,10 +76,10 @@ In Qt code, use tr's third argument for optional plurality. For example: This adds ``s to the respective `.ts` file, which can be translated separately depending on the language. In English, this is simply: - %n active connection(s) to Bitcoin network + %n active connection(s) to Vincoin network - %n active connection to Bitcoin network - %n active connections to Bitcoin network + %n active connection to Vincoin network + %n active connections to Vincoin network @@ -97,4 +97,4 @@ The second example reduces the number of pluralized words that translators have During a string freeze (often before a major release), no translation strings are to be added, modified or removed. -This can be checked by executing `make translate` in the `src` directory, then verifying that `bitcoin_en.ts` remains unchanged. +This can be checked by executing `make translate` in the `src` directory, then verifying that `vincoin_en.ts` remains unchanged. diff --git a/doc/vincoin-conf.md b/doc/vincoin-conf.md index 1ebfb4c1de944..f9e0e2fc475cd 100644 --- a/doc/vincoin-conf.md +++ b/doc/vincoin-conf.md @@ -1,10 +1,10 @@ -# `bitcoin.conf` Configuration File +# `vincoin.conf` Configuration File -The configuration file is used by `bitcoind`, `bitcoin-qt` and `bitcoin-cli`. +The configuration file is used by `vincoind`, `vincoin-qt` and `vincoin-cli`. All command-line options (except for `-?`, `-help`, `-version` and `-conf`) may be specified in a configuration file, and all configuration file options (except for `includeconf`) may also be specified on the command line. Command-line options override values set in the configuration file and configuration file options override values set in the GUI. -Changes to the configuration file while `bitcoind` or `bitcoin-qt` is running only take effect after restarting. +Changes to the configuration file while `vincoind` or `vincoin-qt` is running only take effect after restarting. Users should never make any configuration changes which they do not understand. Furthermore, users should always be wary of accepting any configuration changes provided to them by another source (even if they believe that they do understand them). @@ -51,24 +51,24 @@ rpcport=4000 ## Configuration File Path -The configuration file is not automatically created; you can create it using your favorite text editor. By default, the configuration file name is `bitcoin.conf` and it is located in the Bitcoin data directory, but both the Bitcoin data directory and the configuration file path may be changed using the `-datadir` and `-conf` command-line options. +The configuration file is not automatically created; you can create it using your favorite text editor. By default, the configuration file name is `vincoin.conf` and it is located in the Vincoin data directory, but both the Vincoin data directory and the configuration file path may be changed using the `-datadir` and `-conf` command-line options. -The `includeconf=` option in the `bitcoin.conf` file can be used to include additional configuration files. +The `includeconf=` option in the `vincoin.conf` file can be used to include additional configuration files. ### Default configuration file locations Operating System | Data Directory | Example Path -- | -- | -- -Windows | `%APPDATA%\Bitcoin\` | `C:\Users\username\AppData\Roaming\Bitcoin\bitcoin.conf` -Linux | `$HOME/.bitcoin/` | `/home/username/.bitcoin/bitcoin.conf` -macOS | `$HOME/Library/Application Support/Bitcoin/` | `/Users/username/Library/Application Support/Bitcoin/bitcoin.conf` +Windows | `%APPDATA%\Vincoin\` | `C:\Users\username\AppData\Roaming\Vincoin\vincoin.conf` +Linux | `$HOME/.vincoin/` | `/home/username/.vincoin/vincoin.conf` +macOS | `$HOME/Library/Application Support/Vincoin/` | `/Users/username/Library/Application Support/Vincoin/vincoin.conf` -An example configuration file can be generated by [contrib/devtools/gen-bitcoin-conf.sh](../contrib/devtools/gen-bitcoin-conf.sh). +An example configuration file can be generated by [contrib/devtools/gen-vincoin-conf.sh](../contrib/devtools/gen-vincoin-conf.sh). Run this script after compiling to generate an up-to-date configuration file. -The output is placed under `share/examples/bitcoin.conf`. +The output is placed under `share/examples/vincoin.conf`. To use the generated configuration file, copy the example file into your data directory and edit it there, like so: ``` # example copy command for linux user -cp share/examples/bitcoin.conf ~/.bitcoin +cp share/examples/vincoin.conf ~/.vincoin ``` diff --git a/doc/zmq.md b/doc/zmq.md index 07c340fb99e8f..976addb316bed 100644 --- a/doc/zmq.md +++ b/doc/zmq.md @@ -5,8 +5,8 @@ connections, inter-process communication, and shared-memory, providing various message-oriented semantics such as publish/subscribe, request/reply, and push/pull. -The Bitcoin Core daemon can be configured to act as a trusted "border -router", implementing the bitcoin wire protocol and relay, making +The Vincoin Core daemon can be configured to act as a trusted "border +router", implementing the vincoin wire protocol and relay, making consensus decisions, maintaining the local blockchain database, broadcasting locally generated transactions into the network, and providing a queryable RPC interface to interact on a polled basis for @@ -33,7 +33,7 @@ buffering or reassembly. ## Prerequisites -The ZeroMQ feature in Bitcoin Core requires the ZeroMQ API >= 4.0.0 +The ZeroMQ feature in Vincoin Core requires the ZeroMQ API >= 4.0.0 [libzmq](https://github.com/zeromq/libzmq/releases). For version information, see [dependencies.md](dependencies.md). Typically, it is packaged by distributions as something like @@ -48,7 +48,7 @@ operation. By default, the ZeroMQ feature is automatically compiled in if the necessary prerequisites are found. To disable, use --disable-zmq -during the *configure* step of building bitcoind: +during the *configure* step of building vincoind: $ ./configure --disable-zmq (other options) @@ -82,16 +82,16 @@ The high water mark value must be an integer greater than or equal to 0. For instance: - $ bitcoind -zmqpubhashtx=tcp://127.0.0.1:28332 \ + $ vincoind -zmqpubhashtx=tcp://127.0.0.1:28332 \ -zmqpubhashtx=tcp://192.168.1.2:28332 \ -zmqpubhashblock="tcp://[::1]:28333" \ - -zmqpubrawtx=ipc:///tmp/bitcoind.tx.raw \ + -zmqpubrawtx=ipc:///tmp/vincoind.tx.raw \ -zmqpubhashtxhwm=10000 Each PUB notification has a topic and body, where the header corresponds to the notification type. For instance, for the notification `-zmqpubhashtx` the topic is `hashtx` (no null -terminator). These options can also be provided in bitcoin.conf. +terminator). These options can also be provided in vincoin.conf. The topics are: @@ -150,9 +150,9 @@ hosts as well. If needed, this option has to be set on the client side too. ## Remarks -From the perspective of bitcoind, the ZeroMQ socket is write-only; PUB +From the perspective of vincoind, the ZeroMQ socket is write-only; PUB sockets don't even have a read function. Thus, there is no state -introduced into bitcoind directly. Furthermore, no information is +introduced into vincoind directly. Furthermore, no information is broadcast that wasn't already received from the public P2P network. No authentication or authorization is done on connecting clients; it @@ -169,7 +169,7 @@ disconnections. There are several possibilities that ZMQ notification can get lost during transmission depending on the communication type you are -using. Bitcoind appends an up-counting sequence number to each +using. Vincoind appends an up-counting sequence number to each notification which allows listeners to detect lost notifications. The `sequence` topic refers specifically to the mempool sequence diff --git a/libvincoinconsensus.pc.in b/libvincoinconsensus.pc.in index 1ceab280bb114..c047aae809593 100644 --- a/libvincoinconsensus.pc.in +++ b/libvincoinconsensus.pc.in @@ -4,7 +4,7 @@ libdir=@libdir@ includedir=@includedir@ Name: @PACKAGE_NAME@ consensus library -Description: Library for the Bitcoin consensus protocol. +Description: Library for the Vincoin consensus protocol. Version: @PACKAGE_VERSION@ -Libs: -L${libdir} -lbitcoinconsensus +Libs: -L${libdir} -lvincoinconsensus Cflags: -I${includedir} diff --git a/share/examples/vincoin.conf b/share/examples/vincoin.conf index 5bee4bf92e73c..4866186fa63cc 100644 --- a/share/examples/vincoin.conf +++ b/share/examples/vincoin.conf @@ -1 +1 @@ -# This is a placeholder file. Please follow the instructions in `contrib/devtools/README.md` to generate a bitcoin.conf file. +# This is a placeholder file. Please follow the instructions in `contrib/devtools/README.md` to generate a vincoin.conf file. diff --git a/share/genbuild.sh b/share/genbuild.sh index ecc96160e6901..3f6b098be3d09 100755 --- a/share/genbuild.sh +++ b/share/genbuild.sh @@ -1,5 +1,5 @@ #!/bin/sh -# Copyright (c) 2012-2021 The Bitcoin Core developers +# Copyright (c) 2012-2021 The Vincoin Core developers # Distributed under the MIT software license, see the accompanying # file COPYING or http://www.opensource.org/licenses/mit-license.php. diff --git a/share/pixmaps/vincoin128.xpm b/share/pixmaps/vincoin128.xpm index d8e41e9ea4413..453295954916d 100644 --- a/share/pixmaps/vincoin128.xpm +++ b/share/pixmaps/vincoin128.xpm @@ -1,5 +1,5 @@ /* XPM */ -static char *bitcoin___[] = { +static char *vincoin___[] = { /* columns rows colors chars-per-pixel */ "128 128 250 2", " c #845415", diff --git a/share/pixmaps/vincoin16.xpm b/share/pixmaps/vincoin16.xpm index 40a0624ac72a6..df42a5b676427 100644 --- a/share/pixmaps/vincoin16.xpm +++ b/share/pixmaps/vincoin16.xpm @@ -1,5 +1,5 @@ /* XPM */ -static char *bitcoin__[] = { +static char *vincoin__[] = { /* columns rows colors chars-per-pixel */ "16 16 159 2", " c #CA7C1E", diff --git a/share/pixmaps/vincoin256.xpm b/share/pixmaps/vincoin256.xpm index 87bb35cdadd6b..987fdb4a68213 100644 --- a/share/pixmaps/vincoin256.xpm +++ b/share/pixmaps/vincoin256.xpm @@ -1,5 +1,5 @@ /* XPM */ -static char *bitcoin___[] = { +static char *vincoin___[] = { /* columns rows colors chars-per-pixel */ "256 256 203 2", " c #BE741B", diff --git a/share/pixmaps/vincoin32.xpm b/share/pixmaps/vincoin32.xpm index bffedd4c68e6e..92f18ff017df5 100644 --- a/share/pixmaps/vincoin32.xpm +++ b/share/pixmaps/vincoin32.xpm @@ -1,5 +1,5 @@ /* XPM */ -static char *bitcoin__[] = { +static char *vincoin__[] = { /* columns rows colors chars-per-pixel */ "32 32 102 2", " c #CC7D1D", diff --git a/share/pixmaps/vincoin64.xpm b/share/pixmaps/vincoin64.xpm index 851829d41c5ed..757d06972f4d8 100644 --- a/share/pixmaps/vincoin64.xpm +++ b/share/pixmaps/vincoin64.xpm @@ -1,5 +1,5 @@ /* XPM */ -static char *bitcoin__[] = { +static char *vincoin__[] = { /* columns rows colors chars-per-pixel */ "64 64 172 2", " c #8F6319", diff --git a/share/qt/Info.plist.in b/share/qt/Info.plist.in index b4e6f6a150dc5..df63793205124 100644 --- a/share/qt/Info.plist.in +++ b/share/qt/Info.plist.in @@ -11,7 +11,7 @@ CFBundleIconFile - bitcoin.icns + vincoin.icns CFBundlePackageType APPL @@ -34,16 +34,16 @@ ???? CFBundleExecutable - Bitcoin-Qt + Vincoin-Qt CFBundleName - Bitcoin-Qt + Vincoin-Qt LSHasLocalizedDisplayName CFBundleIdentifier - org.bitcoinfoundation.Bitcoin-Qt + org.vincoinfoundation.Vincoin-Qt CFBundleURLTypes @@ -51,10 +51,10 @@ CFBundleTypeRole Editor CFBundleURLName - org.bitcoin.BitcoinPayment + org.vincoin.VincoinPayment CFBundleURLSchemes - bitcoin + vincoin diff --git a/share/qt/extract_strings_qt.py b/share/qt/extract_strings_qt.py index 39acec89423bb..bd4162b074e62 100755 --- a/share/qt/extract_strings_qt.py +++ b/share/qt/extract_strings_qt.py @@ -1,5 +1,5 @@ #!/usr/bin/env python3 -# Copyright (c) 2012-2021 The Bitcoin Core developers +# Copyright (c) 2012-2021 The Vincoin Core developers # Distributed under the MIT software license, see the accompanying # file COPYING or http://www.opensource.org/licenses/mit-license.php. ''' @@ -11,7 +11,7 @@ import os import sys -OUT_CPP="qt/bitcoinstrings.cpp" +OUT_CPP="qt/vincoinstrings.cpp" EMPTY=['""'] def parse_po(text): @@ -75,11 +75,11 @@ def parse_po(text): #define UNUSED #endif """) -f.write('static const char UNUSED *bitcoin_strings[] = {\n') -f.write('QT_TRANSLATE_NOOP("bitcoin-core", "%s"),\n' % (os.getenv('COPYRIGHT_HOLDERS'),)) +f.write('static const char UNUSED *vincoin_strings[] = {\n') +f.write('QT_TRANSLATE_NOOP("vincoin-core", "%s"),\n' % (os.getenv('COPYRIGHT_HOLDERS'),)) messages.sort(key=operator.itemgetter(0)) for (msgid, msgstr) in messages: if msgid != EMPTY: - f.write('QT_TRANSLATE_NOOP("bitcoin-core", %s),\n' % ('\n'.join(msgid))) + f.write('QT_TRANSLATE_NOOP("vincoin-core", %s),\n' % ('\n'.join(msgid))) f.write('};\n') f.close() diff --git a/share/rpcauth/rpcauth.py b/share/rpcauth/rpcauth.py index cc7bba1f8b19d..64a7ac69f56f6 100755 --- a/share/rpcauth/rpcauth.py +++ b/share/rpcauth/rpcauth.py @@ -1,5 +1,5 @@ #!/usr/bin/env python3 -# Copyright (c) 2015-2021 The Bitcoin Core developers +# Copyright (c) 2015-2021 The Vincoin Core developers # Distributed under the MIT software license, see the accompanying # file COPYING or http://www.opensource.org/licenses/mit-license.php. @@ -35,7 +35,7 @@ def main(): salt = generate_salt(16) password_hmac = password_to_hmac(salt, args.password) - print('String to be appended to bitcoin.conf:') + print('String to be appended to vincoin.conf:') print(f'rpcauth={args.username}:{salt}${password_hmac}') print(f'Your password:\n{args.password}') diff --git a/share/setup.nsi.in b/share/setup.nsi.in index 2ce798bd2d1d3..15a91c02a55f4 100644 --- a/share/setup.nsi.in +++ b/share/setup.nsi.in @@ -15,7 +15,7 @@ Unicode true !define URL @PACKAGE_URL@ # MUI Symbol Definitions -!define MUI_ICON "@abs_top_srcdir@/share/pixmaps/bitcoin.ico" +!define MUI_ICON "@abs_top_srcdir@/share/pixmaps/vincoin.ico" !define MUI_WELCOMEFINISHPAGE_BITMAP "@abs_top_srcdir@/share/pixmaps/nsis-wizard.bmp" !define MUI_HEADERIMAGE !define MUI_HEADERIMAGE_RIGHT @@ -52,7 +52,7 @@ Var StartMenuGroup !insertmacro MUI_LANGUAGE English # Installer attributes -InstallDir $PROGRAMFILES64\Bitcoin +InstallDir $PROGRAMFILES64\Vincoin CRCCheck force XPStyle on BrandingText " " @@ -75,7 +75,7 @@ Section -Main SEC0000 File @abs_top_builddir@/release/@BITCOIN_GUI_NAME@@EXEEXT@ File /oname=COPYING.txt @abs_top_srcdir@/COPYING File /oname=readme.txt @abs_top_srcdir@/doc/README_windows.txt - File @abs_top_srcdir@/share/examples/bitcoin.conf + File @abs_top_srcdir@/share/examples/vincoin.conf SetOutPath $INSTDIR\share\rpcauth File @abs_top_srcdir@/share/rpcauth/*.* SetOutPath $INSTDIR\daemon @@ -102,12 +102,12 @@ Section -post SEC0001 WriteRegStr HKCU "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)" DisplayVersion "@PACKAGE_VERSION@" WriteRegStr HKCU "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)" Publisher "${COMPANY}" WriteRegStr HKCU "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)" URLInfoAbout "${URL}" - WriteRegStr HKCU "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)" DisplayIcon $INSTDIR\bitcoin-qt.exe + WriteRegStr HKCU "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)" DisplayIcon $INSTDIR\vincoin-qt.exe WriteRegStr HKCU "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)" UninstallString $INSTDIR\uninstall.exe WriteRegDWORD HKCU "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)" NoModify 1 WriteRegDWORD HKCU "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)" NoRepair 1 WriteRegStr HKCR "@PACKAGE_TARNAME@" "URL Protocol" "" - WriteRegStr HKCR "@PACKAGE_TARNAME@" "" "URL:Bitcoin" + WriteRegStr HKCR "@PACKAGE_TARNAME@" "" "URL:Vincoin" WriteRegStr HKCR "@PACKAGE_TARNAME@\DefaultIcon" "" $INSTDIR\@BITCOIN_GUI_NAME@@EXEEXT@ WriteRegStr HKCR "@PACKAGE_TARNAME@\shell\open\command" "" '"$INSTDIR\@BITCOIN_GUI_NAME@@EXEEXT@" "%1"' SectionEnd @@ -130,7 +130,7 @@ Section /o -un.Main UNSEC0000 Delete /REBOOTOK $INSTDIR\@BITCOIN_GUI_NAME@@EXEEXT@ Delete /REBOOTOK $INSTDIR\COPYING.txt Delete /REBOOTOK $INSTDIR\readme.txt - Delete /REBOOTOK $INSTDIR\bitcoin.conf + Delete /REBOOTOK $INSTDIR\vincoin.conf RMDir /r /REBOOTOK $INSTDIR\share RMDir /r /REBOOTOK $INSTDIR\daemon DeleteRegValue HKCU "${REGKEY}\Components" Main @@ -141,7 +141,7 @@ Section -un.post UNSEC0001 Delete /REBOOTOK "$SMPROGRAMS\$StartMenuGroup\Uninstall $(^Name).lnk" Delete /REBOOTOK "$SMPROGRAMS\$StartMenuGroup\$(^Name).lnk" Delete /REBOOTOK "$SMPROGRAMS\$StartMenuGroup\@PACKAGE_NAME@ (testnet, 64-bit).lnk" - Delete /REBOOTOK "$SMSTARTUP\Bitcoin.lnk" + Delete /REBOOTOK "$SMSTARTUP\Vincoin.lnk" Delete /REBOOTOK $INSTDIR\uninstall.exe Delete /REBOOTOK $INSTDIR\debug.log Delete /REBOOTOK $INSTDIR\db.log diff --git a/src/.clang-tidy b/src/.clang-tidy index bfaa5ab8e7b09..a9b13c45bce02 100644 --- a/src/.clang-tidy +++ b/src/.clang-tidy @@ -1,6 +1,6 @@ Checks: ' -*, -bitcoin-*, +vincoin-*, bugprone-argument-comment, bugprone-string-constructor, bugprone-use-after-move, diff --git a/src/Makefile.am b/src/Makefile.am index 3e8870c828668..e716280e3c821 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -1,4 +1,4 @@ -# Copyright (c) 2013-2016 The Bitcoin Core developers +# Copyright (c) 2013-2016 The Vincoin Core developers # Distributed under the MIT software license, see the accompanying # file COPYING or http://www.opensource.org/licenses/mit-license.php. @@ -26,48 +26,48 @@ BENCHMARKS = BITCOIN_INCLUDES=-I$(builddir) -I$(srcdir)/$(MINISKETCH_INCLUDE_DIR_INT) -I$(srcdir)/secp256k1/include -I$(srcdir)/$(UNIVALUE_INCLUDE_DIR_INT) -LIBBITCOIN_NODE=libbitcoin_node.a -LIBBITCOIN_COMMON=libbitcoin_common.a -LIBBITCOIN_CONSENSUS=libbitcoin_consensus.a -LIBBITCOIN_CLI=libbitcoin_cli.a -LIBBITCOIN_UTIL=libbitcoin_util.a -LIBBITCOIN_CRYPTO_BASE=crypto/libbitcoin_crypto_base.la -LIBBITCOINQT=qt/libbitcoinqt.a +LIBBITCOIN_NODE=libvincoin_node.a +LIBBITCOIN_COMMON=libvincoin_common.a +LIBBITCOIN_CONSENSUS=libvincoin_consensus.a +LIBBITCOIN_CLI=libvincoin_cli.a +LIBBITCOIN_UTIL=libvincoin_util.a +LIBBITCOIN_CRYPTO_BASE=crypto/libvincoin_crypto_base.la +LIBBITCOINQT=qt/libvincoinqt.a LIBSECP256K1=secp256k1/libsecp256k1.la if ENABLE_ZMQ -LIBBITCOIN_ZMQ=libbitcoin_zmq.a +LIBBITCOIN_ZMQ=libvincoin_zmq.a endif if BUILD_BITCOIN_LIBS -LIBBITCOINCONSENSUS=libbitcoinconsensus.la +LIBBITCOINCONSENSUS=libvincoinconsensus.la endif if BUILD_BITCOIN_KERNEL_LIB -LIBBITCOINKERNEL=libbitcoinkernel.la +LIBBITCOINKERNEL=libvincoinkernel.la endif if ENABLE_WALLET -LIBBITCOIN_WALLET=libbitcoin_wallet.a -LIBBITCOIN_WALLET_TOOL=libbitcoin_wallet_tool.a +LIBBITCOIN_WALLET=libvincoin_wallet.a +LIBBITCOIN_WALLET_TOOL=libvincoin_wallet_tool.a endif LIBBITCOIN_CRYPTO = $(LIBBITCOIN_CRYPTO_BASE) if USE_ASM -LIBBITCOIN_CRYPTO_SSE4 = crypto/libbitcoin_crypto_sse4.la +LIBBITCOIN_CRYPTO_SSE4 = crypto/libvincoin_crypto_sse4.la LIBBITCOIN_CRYPTO += $(LIBBITCOIN_CRYPTO_SSE4) endif if ENABLE_SSE41 -LIBBITCOIN_CRYPTO_SSE41 = crypto/libbitcoin_crypto_sse41.la +LIBBITCOIN_CRYPTO_SSE41 = crypto/libvincoin_crypto_sse41.la LIBBITCOIN_CRYPTO += $(LIBBITCOIN_CRYPTO_SSE41) endif if ENABLE_AVX2 -LIBBITCOIN_CRYPTO_AVX2 = crypto/libbitcoin_crypto_avx2.la +LIBBITCOIN_CRYPTO_AVX2 = crypto/libvincoin_crypto_avx2.la LIBBITCOIN_CRYPTO += $(LIBBITCOIN_CRYPTO_AVX2) endif if ENABLE_X86_SHANI -LIBBITCOIN_CRYPTO_X86_SHANI = crypto/libbitcoin_crypto_x86_shani.la +LIBBITCOIN_CRYPTO_X86_SHANI = crypto/libvincoin_crypto_x86_shani.la LIBBITCOIN_CRYPTO += $(LIBBITCOIN_CRYPTO_X86_SHANI) endif if ENABLE_ARM_SHANI -LIBBITCOIN_CRYPTO_ARM_SHANI = crypto/libbitcoin_crypto_arm_shani.la +LIBBITCOIN_CRYPTO_ARM_SHANI = crypto/libvincoin_crypto_arm_shani.la LIBBITCOIN_CRYPTO += $(LIBBITCOIN_CRYPTO_ARM_SHANI) endif noinst_LTLIBRARIES += $(LIBBITCOIN_CRYPTO) @@ -89,37 +89,37 @@ EXTRA_LIBRARIES += \ $(LIBBITCOIN_ZMQ) if BUILD_BITCOIND - bin_PROGRAMS += bitcoind + bin_PROGRAMS += vincoind endif if BUILD_BITCOIN_NODE - bin_PROGRAMS += bitcoin-node + bin_PROGRAMS += vincoin-node endif if BUILD_BITCOIN_CLI - bin_PROGRAMS += bitcoin-cli + bin_PROGRAMS += vincoin-cli endif if BUILD_BITCOIN_TX - bin_PROGRAMS += bitcoin-tx + bin_PROGRAMS += vincoin-tx endif if ENABLE_WALLET if BUILD_BITCOIN_WALLET - bin_PROGRAMS += bitcoin-wallet + bin_PROGRAMS += vincoin-wallet endif endif if BUILD_BITCOIN_UTIL - bin_PROGRAMS += bitcoin-util + bin_PROGRAMS += vincoin-util endif if BUILD_BITCOIN_CHAINSTATE - bin_PROGRAMS += bitcoin-chainstate + bin_PROGRAMS += vincoin-chainstate endif .PHONY: FORCE check-symbols check-security -# bitcoin core # +# vincoin core # BITCOIN_CORE_H = \ addresstype.h \ addrdb.h \ @@ -377,12 +377,12 @@ obj/build.h: FORCE @$(MKDIR_P) $(builddir)/obj $(AM_V_GEN) $(top_srcdir)/share/genbuild.sh "$(abs_top_builddir)/src/obj/build.h" \ "$(abs_top_srcdir)" -libbitcoin_util_a-clientversion.$(OBJEXT): obj/build.h +libvincoin_util_a-clientversion.$(OBJEXT): obj/build.h # node # -libbitcoin_node_a_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES) $(LEVELDB_CPPFLAGS) $(BOOST_CPPFLAGS) $(MINIUPNPC_CPPFLAGS) $(NATPMP_CPPFLAGS) $(EVENT_CFLAGS) $(EVENT_PTHREADS_CFLAGS) -libbitcoin_node_a_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS) -libbitcoin_node_a_SOURCES = \ +libvincoin_node_a_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES) $(LEVELDB_CPPFLAGS) $(BOOST_CPPFLAGS) $(MINIUPNPC_CPPFLAGS) $(NATPMP_CPPFLAGS) $(EVENT_CFLAGS) $(EVENT_PTHREADS_CFLAGS) +libvincoin_node_a_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS) +libvincoin_node_a_SOURCES = \ addrdb.cpp \ addrman.cpp \ banman.cpp \ @@ -476,19 +476,19 @@ libbitcoin_node_a_SOURCES = \ $(BITCOIN_CORE_H) if ENABLE_WALLET -libbitcoin_node_a_SOURCES += wallet/init.cpp -libbitcoin_node_a_CPPFLAGS += $(BDB_CPPFLAGS) +libvincoin_node_a_SOURCES += wallet/init.cpp +libvincoin_node_a_CPPFLAGS += $(BDB_CPPFLAGS) endif if !ENABLE_WALLET -libbitcoin_node_a_SOURCES += dummywallet.cpp +libvincoin_node_a_SOURCES += dummywallet.cpp endif # # zmq # if ENABLE_ZMQ -libbitcoin_zmq_a_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES) $(ZMQ_CFLAGS) -libbitcoin_zmq_a_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS) -libbitcoin_zmq_a_SOURCES = \ +libvincoin_zmq_a_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES) $(ZMQ_CFLAGS) +libvincoin_zmq_a_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS) +libvincoin_zmq_a_SOURCES = \ zmq/zmqabstractnotifier.cpp \ zmq/zmqnotificationinterface.cpp \ zmq/zmqpublishnotifier.cpp \ @@ -498,9 +498,9 @@ endif # # wallet # -libbitcoin_wallet_a_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES) $(BOOST_CPPFLAGS) $(BDB_CPPFLAGS) $(SQLITE_CFLAGS) -libbitcoin_wallet_a_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS) -libbitcoin_wallet_a_SOURCES = \ +libvincoin_wallet_a_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES) $(BOOST_CPPFLAGS) $(BDB_CPPFLAGS) $(SQLITE_CFLAGS) +libvincoin_wallet_a_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS) +libvincoin_wallet_a_SOURCES = \ wallet/coincontrol.cpp \ wallet/context.cpp \ wallet/crypter.cpp \ @@ -531,17 +531,17 @@ libbitcoin_wallet_a_SOURCES = \ $(BITCOIN_CORE_H) if USE_SQLITE -libbitcoin_wallet_a_SOURCES += wallet/sqlite.cpp +libvincoin_wallet_a_SOURCES += wallet/sqlite.cpp endif if USE_BDB -libbitcoin_wallet_a_SOURCES += wallet/bdb.cpp wallet/salvage.cpp +libvincoin_wallet_a_SOURCES += wallet/bdb.cpp wallet/salvage.cpp endif # # wallet tool # -libbitcoin_wallet_tool_a_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES) $(BOOST_CPPFLAGS) -libbitcoin_wallet_tool_a_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS) -libbitcoin_wallet_tool_a_SOURCES = \ +libvincoin_wallet_tool_a_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES) $(BOOST_CPPFLAGS) +libvincoin_wallet_tool_a_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS) +libvincoin_wallet_tool_a_SOURCES = \ wallet/wallettool.cpp \ $(BITCOIN_CORE_H) # @@ -551,16 +551,16 @@ libbitcoin_wallet_tool_a_SOURCES = \ # crypto_base contains the unspecialized (unoptimized) versions of our # crypto functions. Functions that require custom compiler flags and/or # runtime opt-in are omitted. -crypto_libbitcoin_crypto_base_la_CPPFLAGS = $(AM_CPPFLAGS) +crypto_libvincoin_crypto_base_la_CPPFLAGS = $(AM_CPPFLAGS) # Specify -static in both CXXFLAGS and LDFLAGS so libtool will only build a # static version of this library. We don't need a dynamic version, and a dynamic # version can't be used on windows anyway because the library doesn't currently # export DLL symbols. -crypto_libbitcoin_crypto_base_la_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS) -static -crypto_libbitcoin_crypto_base_la_LDFLAGS = $(AM_LDFLAGS) -static +crypto_libvincoin_crypto_base_la_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS) -static +crypto_libvincoin_crypto_base_la_LDFLAGS = $(AM_LDFLAGS) -static -crypto_libbitcoin_crypto_base_la_SOURCES = \ +crypto_libvincoin_crypto_base_la_SOURCES = \ crypto/aes.cpp \ crypto/aes.h \ crypto/chacha20.h \ @@ -591,54 +591,54 @@ crypto_libbitcoin_crypto_base_la_SOURCES = \ crypto/siphash.cpp \ crypto/siphash.h -# See explanation for -static in crypto_libbitcoin_crypto_base_la's LDFLAGS and +# See explanation for -static in crypto_libvincoin_crypto_base_la's LDFLAGS and # CXXFLAGS above -crypto_libbitcoin_crypto_sse4_la_LDFLAGS = $(AM_LDFLAGS) -static -crypto_libbitcoin_crypto_sse4_la_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS) -static -crypto_libbitcoin_crypto_sse4_la_CPPFLAGS = $(AM_CPPFLAGS) -crypto_libbitcoin_crypto_sse4_la_SOURCES = crypto/sha256_sse4.cpp +crypto_libvincoin_crypto_sse4_la_LDFLAGS = $(AM_LDFLAGS) -static +crypto_libvincoin_crypto_sse4_la_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS) -static +crypto_libvincoin_crypto_sse4_la_CPPFLAGS = $(AM_CPPFLAGS) +crypto_libvincoin_crypto_sse4_la_SOURCES = crypto/sha256_sse4.cpp -# See explanation for -static in crypto_libbitcoin_crypto_base_la's LDFLAGS and +# See explanation for -static in crypto_libvincoin_crypto_base_la's LDFLAGS and # CXXFLAGS above -crypto_libbitcoin_crypto_sse41_la_LDFLAGS = $(AM_LDFLAGS) -static -crypto_libbitcoin_crypto_sse41_la_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS) -static -crypto_libbitcoin_crypto_sse41_la_CPPFLAGS = $(AM_CPPFLAGS) -crypto_libbitcoin_crypto_sse41_la_CXXFLAGS += $(SSE41_CXXFLAGS) -crypto_libbitcoin_crypto_sse41_la_CPPFLAGS += -DENABLE_SSE41 -crypto_libbitcoin_crypto_sse41_la_SOURCES = crypto/sha256_sse41.cpp - -# See explanation for -static in crypto_libbitcoin_crypto_base_la's LDFLAGS and +crypto_libvincoin_crypto_sse41_la_LDFLAGS = $(AM_LDFLAGS) -static +crypto_libvincoin_crypto_sse41_la_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS) -static +crypto_libvincoin_crypto_sse41_la_CPPFLAGS = $(AM_CPPFLAGS) +crypto_libvincoin_crypto_sse41_la_CXXFLAGS += $(SSE41_CXXFLAGS) +crypto_libvincoin_crypto_sse41_la_CPPFLAGS += -DENABLE_SSE41 +crypto_libvincoin_crypto_sse41_la_SOURCES = crypto/sha256_sse41.cpp + +# See explanation for -static in crypto_libvincoin_crypto_base_la's LDFLAGS and # CXXFLAGS above -crypto_libbitcoin_crypto_avx2_la_LDFLAGS = $(AM_LDFLAGS) -static -crypto_libbitcoin_crypto_avx2_la_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS) -static -crypto_libbitcoin_crypto_avx2_la_CPPFLAGS = $(AM_CPPFLAGS) -crypto_libbitcoin_crypto_avx2_la_CXXFLAGS += $(AVX2_CXXFLAGS) -crypto_libbitcoin_crypto_avx2_la_CPPFLAGS += -DENABLE_AVX2 -crypto_libbitcoin_crypto_avx2_la_SOURCES = crypto/sha256_avx2.cpp - -# See explanation for -static in crypto_libbitcoin_crypto_base_la's LDFLAGS and +crypto_libvincoin_crypto_avx2_la_LDFLAGS = $(AM_LDFLAGS) -static +crypto_libvincoin_crypto_avx2_la_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS) -static +crypto_libvincoin_crypto_avx2_la_CPPFLAGS = $(AM_CPPFLAGS) +crypto_libvincoin_crypto_avx2_la_CXXFLAGS += $(AVX2_CXXFLAGS) +crypto_libvincoin_crypto_avx2_la_CPPFLAGS += -DENABLE_AVX2 +crypto_libvincoin_crypto_avx2_la_SOURCES = crypto/sha256_avx2.cpp + +# See explanation for -static in crypto_libvincoin_crypto_base_la's LDFLAGS and # CXXFLAGS above -crypto_libbitcoin_crypto_x86_shani_la_LDFLAGS = $(AM_LDFLAGS) -static -crypto_libbitcoin_crypto_x86_shani_la_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS) -static -crypto_libbitcoin_crypto_x86_shani_la_CPPFLAGS = $(AM_CPPFLAGS) -crypto_libbitcoin_crypto_x86_shani_la_CXXFLAGS += $(X86_SHANI_CXXFLAGS) -crypto_libbitcoin_crypto_x86_shani_la_CPPFLAGS += -DENABLE_X86_SHANI -crypto_libbitcoin_crypto_x86_shani_la_SOURCES = crypto/sha256_x86_shani.cpp - -# See explanation for -static in crypto_libbitcoin_crypto_base_la's LDFLAGS and +crypto_libvincoin_crypto_x86_shani_la_LDFLAGS = $(AM_LDFLAGS) -static +crypto_libvincoin_crypto_x86_shani_la_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS) -static +crypto_libvincoin_crypto_x86_shani_la_CPPFLAGS = $(AM_CPPFLAGS) +crypto_libvincoin_crypto_x86_shani_la_CXXFLAGS += $(X86_SHANI_CXXFLAGS) +crypto_libvincoin_crypto_x86_shani_la_CPPFLAGS += -DENABLE_X86_SHANI +crypto_libvincoin_crypto_x86_shani_la_SOURCES = crypto/sha256_x86_shani.cpp + +# See explanation for -static in crypto_libvincoin_crypto_base_la's LDFLAGS and # CXXFLAGS above -crypto_libbitcoin_crypto_arm_shani_la_LDFLAGS = $(AM_LDFLAGS) -static -crypto_libbitcoin_crypto_arm_shani_la_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS) -static -crypto_libbitcoin_crypto_arm_shani_la_CPPFLAGS = $(AM_CPPFLAGS) -crypto_libbitcoin_crypto_arm_shani_la_CXXFLAGS += $(ARM_SHANI_CXXFLAGS) -crypto_libbitcoin_crypto_arm_shani_la_CPPFLAGS += -DENABLE_ARM_SHANI -crypto_libbitcoin_crypto_arm_shani_la_SOURCES = crypto/sha256_arm_shani.cpp +crypto_libvincoin_crypto_arm_shani_la_LDFLAGS = $(AM_LDFLAGS) -static +crypto_libvincoin_crypto_arm_shani_la_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS) -static +crypto_libvincoin_crypto_arm_shani_la_CPPFLAGS = $(AM_CPPFLAGS) +crypto_libvincoin_crypto_arm_shani_la_CXXFLAGS += $(ARM_SHANI_CXXFLAGS) +crypto_libvincoin_crypto_arm_shani_la_CPPFLAGS += -DENABLE_ARM_SHANI +crypto_libvincoin_crypto_arm_shani_la_SOURCES = crypto/sha256_arm_shani.cpp # # consensus # -libbitcoin_consensus_a_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES) -libbitcoin_consensus_a_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS) -libbitcoin_consensus_a_SOURCES = \ +libvincoin_consensus_a_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES) +libvincoin_consensus_a_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS) +libvincoin_consensus_a_SOURCES = \ arith_uint256.cpp \ arith_uint256.h \ consensus/amount.h \ @@ -656,7 +656,7 @@ libbitcoin_consensus_a_SOURCES = \ primitives/transaction.h \ pubkey.cpp \ pubkey.h \ - script/bitcoinconsensus.cpp \ + script/vincoinconsensus.cpp \ script/interpreter.cpp \ script/interpreter.h \ script/script.cpp \ @@ -673,9 +673,9 @@ libbitcoin_consensus_a_SOURCES = \ # # common # -libbitcoin_common_a_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES) $(BOOST_CPPFLAGS) -libbitcoin_common_a_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS) -libbitcoin_common_a_SOURCES = \ +libvincoin_common_a_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES) $(BOOST_CPPFLAGS) +libvincoin_common_a_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS) +libvincoin_common_a_SOURCES = \ addresstype.cpp \ base58.cpp \ bech32.cpp \ @@ -723,15 +723,15 @@ libbitcoin_common_a_SOURCES = \ $(BITCOIN_CORE_H) if USE_LIBEVENT -libbitcoin_common_a_CPPFLAGS += $(EVENT_CFLAGS) -libbitcoin_common_a_SOURCES += common/url.cpp +libvincoin_common_a_CPPFLAGS += $(EVENT_CFLAGS) +libvincoin_common_a_SOURCES += common/url.cpp endif # # util # -libbitcoin_util_a_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES) -libbitcoin_util_a_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS) -libbitcoin_util_a_SOURCES = \ +libvincoin_util_a_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES) +libvincoin_util_a_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS) +libvincoin_util_a_SOURCES = \ support/lockedpool.cpp \ chainparamsbase.cpp \ clientversion.cpp \ @@ -773,28 +773,28 @@ libbitcoin_util_a_SOURCES = \ # # cli # -libbitcoin_cli_a_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES) -libbitcoin_cli_a_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS) -libbitcoin_cli_a_SOURCES = \ +libvincoin_cli_a_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES) +libvincoin_cli_a_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS) +libvincoin_cli_a_SOURCES = \ compat/stdin.h \ compat/stdin.cpp \ rpc/client.cpp \ $(BITCOIN_CORE_H) -nodist_libbitcoin_util_a_SOURCES = $(srcdir)/obj/build.h +nodist_libvincoin_util_a_SOURCES = $(srcdir)/obj/build.h # -# bitcoind & bitcoin-node binaries # -bitcoin_daemon_sources = bitcoind.cpp -bitcoin_bin_cppflags = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES) -bitcoin_bin_cxxflags = $(AM_CXXFLAGS) $(PIE_FLAGS) -bitcoin_bin_ldflags = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS) $(PTHREAD_FLAGS) +# vincoind & vincoin-node binaries # +vincoin_daemon_sources = vincoind.cpp +vincoin_bin_cppflags = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES) +vincoin_bin_cxxflags = $(AM_CXXFLAGS) $(PIE_FLAGS) +vincoin_bin_ldflags = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS) $(PTHREAD_FLAGS) if TARGET_WINDOWS -bitcoin_daemon_sources += bitcoind-res.rc +vincoin_daemon_sources += vincoind-res.rc endif -bitcoin_bin_ldadd = \ +vincoin_bin_ldadd = \ $(LIBBITCOIN_WALLET) \ $(LIBBITCOIN_COMMON) \ $(LIBBITCOIN_UTIL) \ @@ -806,51 +806,51 @@ bitcoin_bin_ldadd = \ $(LIBMEMENV) \ $(LIBSECP256K1) -bitcoin_bin_ldadd += $(BDB_LIBS) $(MINIUPNPC_LIBS) $(NATPMP_LIBS) $(EVENT_PTHREADS_LIBS) $(EVENT_LIBS) $(ZMQ_LIBS) $(SQLITE_LIBS) +vincoin_bin_ldadd += $(BDB_LIBS) $(MINIUPNPC_LIBS) $(NATPMP_LIBS) $(EVENT_PTHREADS_LIBS) $(EVENT_LIBS) $(ZMQ_LIBS) $(SQLITE_LIBS) -bitcoind_SOURCES = $(bitcoin_daemon_sources) init/bitcoind.cpp -bitcoind_CPPFLAGS = $(bitcoin_bin_cppflags) -bitcoind_CXXFLAGS = $(bitcoin_bin_cxxflags) -bitcoind_LDFLAGS = $(bitcoin_bin_ldflags) -bitcoind_LDADD = $(LIBBITCOIN_NODE) $(bitcoin_bin_ldadd) +vincoind_SOURCES = $(vincoin_daemon_sources) init/vincoind.cpp +vincoind_CPPFLAGS = $(vincoin_bin_cppflags) +vincoind_CXXFLAGS = $(vincoin_bin_cxxflags) +vincoind_LDFLAGS = $(vincoin_bin_ldflags) +vincoind_LDADD = $(LIBBITCOIN_NODE) $(vincoin_bin_ldadd) -bitcoin_node_SOURCES = $(bitcoin_daemon_sources) init/bitcoin-node.cpp -bitcoin_node_CPPFLAGS = $(bitcoin_bin_cppflags) -bitcoin_node_CXXFLAGS = $(bitcoin_bin_cxxflags) -bitcoin_node_LDFLAGS = $(bitcoin_bin_ldflags) -bitcoin_node_LDADD = $(LIBBITCOIN_NODE) $(bitcoin_bin_ldadd) $(LIBBITCOIN_IPC) $(LIBMULTIPROCESS_LIBS) +vincoin_node_SOURCES = $(vincoin_daemon_sources) init/vincoin-node.cpp +vincoin_node_CPPFLAGS = $(vincoin_bin_cppflags) +vincoin_node_CXXFLAGS = $(vincoin_bin_cxxflags) +vincoin_node_LDFLAGS = $(vincoin_bin_ldflags) +vincoin_node_LDADD = $(LIBBITCOIN_NODE) $(vincoin_bin_ldadd) $(LIBBITCOIN_IPC) $(LIBMULTIPROCESS_LIBS) -# bitcoin-cli binary # -bitcoin_cli_SOURCES = bitcoin-cli.cpp -bitcoin_cli_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES) $(EVENT_CFLAGS) -bitcoin_cli_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS) -bitcoin_cli_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS) $(PTHREAD_FLAGS) +# vincoin-cli binary # +vincoin_cli_SOURCES = vincoin-cli.cpp +vincoin_cli_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES) $(EVENT_CFLAGS) +vincoin_cli_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS) +vincoin_cli_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS) $(PTHREAD_FLAGS) if TARGET_WINDOWS -bitcoin_cli_SOURCES += bitcoin-cli-res.rc +vincoin_cli_SOURCES += vincoin-cli-res.rc endif -bitcoin_cli_LDADD = \ +vincoin_cli_LDADD = \ $(LIBBITCOIN_CLI) \ $(LIBUNIVALUE) \ $(LIBBITCOIN_COMMON) \ $(LIBBITCOIN_UTIL) \ $(LIBBITCOIN_CRYPTO) -bitcoin_cli_LDADD += $(EVENT_LIBS) +vincoin_cli_LDADD += $(EVENT_LIBS) # -# bitcoin-tx binary # -bitcoin_tx_SOURCES = bitcoin-tx.cpp -bitcoin_tx_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES) -bitcoin_tx_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS) -bitcoin_tx_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS) $(PTHREAD_FLAGS) +# vincoin-tx binary # +vincoin_tx_SOURCES = vincoin-tx.cpp +vincoin_tx_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES) +vincoin_tx_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS) +vincoin_tx_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS) $(PTHREAD_FLAGS) if TARGET_WINDOWS -bitcoin_tx_SOURCES += bitcoin-tx-res.rc +vincoin_tx_SOURCES += vincoin-tx-res.rc endif -bitcoin_tx_LDADD = \ +vincoin_tx_LDADD = \ $(LIBUNIVALUE) \ $(LIBBITCOIN_COMMON) \ $(LIBBITCOIN_UTIL) \ @@ -859,13 +859,13 @@ bitcoin_tx_LDADD = \ $(LIBSECP256K1) # -# bitcoin-wallet binary # -bitcoin_wallet_SOURCES = bitcoin-wallet.cpp -bitcoin_wallet_SOURCES += init/bitcoin-wallet.cpp -bitcoin_wallet_CPPFLAGS = $(bitcoin_bin_cppflags) -bitcoin_wallet_CXXFLAGS = $(bitcoin_bin_cxxflags) -bitcoin_wallet_LDFLAGS = $(bitcoin_bin_ldflags) -bitcoin_wallet_LDADD = \ +# vincoin-wallet binary # +vincoin_wallet_SOURCES = vincoin-wallet.cpp +vincoin_wallet_SOURCES += init/vincoin-wallet.cpp +vincoin_wallet_CPPFLAGS = $(vincoin_bin_cppflags) +vincoin_wallet_CXXFLAGS = $(vincoin_bin_cxxflags) +vincoin_wallet_LDFLAGS = $(vincoin_bin_ldflags) +vincoin_wallet_LDADD = \ $(LIBBITCOIN_WALLET_TOOL) \ $(LIBBITCOIN_WALLET) \ $(LIBBITCOIN_COMMON) \ @@ -878,21 +878,21 @@ bitcoin_wallet_LDADD = \ $(SQLITE_LIBS) if TARGET_WINDOWS -bitcoin_wallet_SOURCES += bitcoin-wallet-res.rc +vincoin_wallet_SOURCES += vincoin-wallet-res.rc endif # -# bitcoin-util binary # -bitcoin_util_SOURCES = bitcoin-util.cpp -bitcoin_util_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES) -bitcoin_util_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS) -bitcoin_util_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS) $(PTHREAD_FLAGS) +# vincoin-util binary # +vincoin_util_SOURCES = vincoin-util.cpp +vincoin_util_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES) +vincoin_util_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS) +vincoin_util_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS) $(PTHREAD_FLAGS) if TARGET_WINDOWS -bitcoin_util_SOURCES += bitcoin-util-res.rc +vincoin_util_SOURCES += vincoin-util-res.rc endif -bitcoin_util_LDADD = \ +vincoin_util_LDADD = \ $(LIBBITCOIN_COMMON) \ $(LIBBITCOIN_UTIL) \ $(LIBUNIVALUE) \ @@ -901,40 +901,40 @@ bitcoin_util_LDADD = \ $(LIBSECP256K1) # -# bitcoin-chainstate binary # -bitcoin_chainstate_SOURCES = bitcoin-chainstate.cpp -bitcoin_chainstate_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES) $(BOOST_CPPFLAGS) -bitcoin_chainstate_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS) +# vincoin-chainstate binary # +vincoin_chainstate_SOURCES = vincoin-chainstate.cpp +vincoin_chainstate_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES) $(BOOST_CPPFLAGS) +vincoin_chainstate_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS) -bitcoin_chainstate_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(PTHREAD_FLAGS) $(LIBTOOL_APP_LDFLAGS) -static -bitcoin_chainstate_LDADD = $(LIBBITCOINKERNEL) +vincoin_chainstate_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(PTHREAD_FLAGS) $(LIBTOOL_APP_LDFLAGS) -static +vincoin_chainstate_LDADD = $(LIBBITCOINKERNEL) # libtool is unable to calculate this indirect dependency, presumably because it's a subproject. -# libsecp256k1 only needs to be linked in when libbitcoinkernel is static. -bitcoin_chainstate_LDADD += $(LIBSECP256K1) +# libsecp256k1 only needs to be linked in when libvincoinkernel is static. +vincoin_chainstate_LDADD += $(LIBSECP256K1) # -# bitcoinkernel library # +# vincoinkernel library # if BUILD_BITCOIN_KERNEL_LIB lib_LTLIBRARIES += $(LIBBITCOINKERNEL) -libbitcoinkernel_la_LDFLAGS = $(AM_LDFLAGS) -no-undefined $(RELDFLAGS) $(PTHREAD_FLAGS) -libbitcoinkernel_la_LIBADD = $(LIBBITCOIN_CRYPTO) $(LIBLEVELDB) $(LIBMEMENV) $(LIBSECP256K1) -libbitcoinkernel_la_CPPFLAGS = $(AM_CPPFLAGS) -I$(builddir)/obj -I$(srcdir)/secp256k1/include $(BOOST_CPPFLAGS) $(LEVELDB_CPPFLAGS) +libvincoinkernel_la_LDFLAGS = $(AM_LDFLAGS) -no-undefined $(RELDFLAGS) $(PTHREAD_FLAGS) +libvincoinkernel_la_LIBADD = $(LIBBITCOIN_CRYPTO) $(LIBLEVELDB) $(LIBMEMENV) $(LIBSECP256K1) +libvincoinkernel_la_CPPFLAGS = $(AM_CPPFLAGS) -I$(builddir)/obj -I$(srcdir)/secp256k1/include $(BOOST_CPPFLAGS) $(LEVELDB_CPPFLAGS) -# libbitcoinkernel requires default symbol visibility, explicitly specify that +# libvincoinkernel requires default symbol visibility, explicitly specify that # here so that things still work even when user configures with # --enable-reduce-exports # # Note this is a quick hack that will be removed as we incrementally define what # to export from the library. -libbitcoinkernel_la_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS) -fvisibility=default +libvincoinkernel_la_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS) -fvisibility=default -# TODO: libbitcoinkernel is a work in progress consensus engine library, as more +# TODO: libvincoinkernel is a work in progress consensus engine library, as more # and more modules are decoupled from the consensus engine, this list will # shrink to only those which are absolutely necessary. -libbitcoinkernel_la_SOURCES = \ - kernel/bitcoinkernel.cpp \ +libvincoinkernel_la_SOURCES = \ + kernel/vincoinkernel.cpp \ arith_uint256.cpp \ chain.cpp \ clientversion.cpp \ @@ -1014,21 +1014,21 @@ libbitcoinkernel_la_SOURCES = \ # Required for obj/build.h to be generated first. # More details: https://www.gnu.org/software/automake/manual/html_node/Built-Sources-Example.html -libbitcoinkernel_la-clientversion.l$(OBJEXT): obj/build.h +libvincoinkernel_la-clientversion.l$(OBJEXT): obj/build.h endif # BUILD_BITCOIN_KERNEL_LIB # -# bitcoinconsensus library # +# vincoinconsensus library # if BUILD_BITCOIN_LIBS lib_LTLIBRARIES += $(LIBBITCOINCONSENSUS) -include_HEADERS = script/bitcoinconsensus.h -libbitcoinconsensus_la_SOURCES = support/cleanse.cpp $(crypto_libbitcoin_crypto_base_la_SOURCES) $(libbitcoin_consensus_a_SOURCES) +include_HEADERS = script/vincoinconsensus.h +libvincoinconsensus_la_SOURCES = support/cleanse.cpp $(crypto_libvincoin_crypto_base_la_SOURCES) $(libvincoin_consensus_a_SOURCES) -libbitcoinconsensus_la_LDFLAGS = $(AM_LDFLAGS) -no-undefined $(RELDFLAGS) -libbitcoinconsensus_la_LIBADD = $(LIBSECP256K1) -libbitcoinconsensus_la_CPPFLAGS = $(AM_CPPFLAGS) -I$(builddir)/obj -I$(srcdir)/secp256k1/include -DBUILD_BITCOIN_INTERNAL -DDISABLE_OPTIMIZED_SHA256 -libbitcoinconsensus_la_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS) +libvincoinconsensus_la_LDFLAGS = $(AM_LDFLAGS) -no-undefined $(RELDFLAGS) +libvincoinconsensus_la_LIBADD = $(LIBSECP256K1) +libvincoinconsensus_la_CPPFLAGS = $(AM_CPPFLAGS) -I$(builddir)/obj -I$(srcdir)/secp256k1/include -DBUILD_BITCOIN_INTERNAL -DDISABLE_OPTIMIZED_SHA256 +libvincoinconsensus_la_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS) endif # @@ -1064,12 +1064,12 @@ CLEANFILES += obj/build.h EXTRA_DIST = $(CTAES_DIST) -config/bitcoin-config.h: config/stamp-h1 +config/vincoin-config.h: config/stamp-h1 @$(MAKE) -C $(top_builddir) $(subdir)/$(@) -config/stamp-h1: $(top_srcdir)/$(subdir)/config/bitcoin-config.h.in $(top_builddir)/config.status +config/stamp-h1: $(top_srcdir)/$(subdir)/config/vincoin-config.h.in $(top_builddir)/config.status $(AM_V_at)$(MAKE) -C $(top_builddir) $(subdir)/$(@) -$(top_srcdir)/$(subdir)/config/bitcoin-config.h.in: $(am__configure_deps) - $(AM_V_at)$(MAKE) -C $(top_srcdir) $(subdir)/config/bitcoin-config.h.in +$(top_srcdir)/$(subdir)/config/vincoin-config.h.in: $(am__configure_deps) + $(AM_V_at)$(MAKE) -C $(top_srcdir) $(subdir)/config/vincoin-config.h.in clean-local: -$(MAKE) -C secp256k1 clean @@ -1092,19 +1092,19 @@ if HARDEN $(AM_V_at) $(PYTHON) $(top_srcdir)/contrib/devtools/security-check.py $(bin_PROGRAMS) endif -libbitcoin_ipc_mpgen_input = \ +libvincoin_ipc_mpgen_input = \ ipc/capnp/echo.capnp \ ipc/capnp/init.capnp -EXTRA_DIST += $(libbitcoin_ipc_mpgen_input) +EXTRA_DIST += $(libvincoin_ipc_mpgen_input) %.capnp: # Explicitly list dependencies on generated headers as described in # https://www.gnu.org/software/automake/manual/html_node/Built-Sources-Example.html#Recording-Dependencies-manually -ipc/capnp/libbitcoin_ipc_a-protocol.$(OBJEXT): $(libbitcoin_ipc_mpgen_input:=.h) +ipc/capnp/libvincoin_ipc_a-protocol.$(OBJEXT): $(libvincoin_ipc_mpgen_input:=.h) if BUILD_MULTIPROCESS -LIBBITCOIN_IPC=libbitcoin_ipc.a -libbitcoin_ipc_a_SOURCES = \ +LIBBITCOIN_IPC=libvincoin_ipc.a +libvincoin_ipc_a_SOURCES = \ ipc/capnp/common-types.h \ ipc/capnp/context.h \ ipc/capnp/init-types.h \ @@ -1116,20 +1116,20 @@ libbitcoin_ipc_a_SOURCES = \ ipc/process.cpp \ ipc/process.h \ ipc/protocol.h -libbitcoin_ipc_a_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES) -libbitcoin_ipc_a_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS) $(LIBMULTIPROCESS_CFLAGS) +libvincoin_ipc_a_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES) +libvincoin_ipc_a_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS) $(LIBMULTIPROCESS_CFLAGS) include $(MPGEN_PREFIX)/include/mpgen.mk -libbitcoin_ipc_mpgen_output = \ - $(libbitcoin_ipc_mpgen_input:=.c++) \ - $(libbitcoin_ipc_mpgen_input:=.h) \ - $(libbitcoin_ipc_mpgen_input:=.proxy-client.c++) \ - $(libbitcoin_ipc_mpgen_input:=.proxy-server.c++) \ - $(libbitcoin_ipc_mpgen_input:=.proxy-types.c++) \ - $(libbitcoin_ipc_mpgen_input:=.proxy-types.h) \ - $(libbitcoin_ipc_mpgen_input:=.proxy.h) -nodist_libbitcoin_ipc_a_SOURCES = $(libbitcoin_ipc_mpgen_output) -CLEANFILES += $(libbitcoin_ipc_mpgen_output) +libvincoin_ipc_mpgen_output = \ + $(libvincoin_ipc_mpgen_input:=.c++) \ + $(libvincoin_ipc_mpgen_input:=.h) \ + $(libvincoin_ipc_mpgen_input:=.proxy-client.c++) \ + $(libvincoin_ipc_mpgen_input:=.proxy-server.c++) \ + $(libvincoin_ipc_mpgen_input:=.proxy-types.c++) \ + $(libvincoin_ipc_mpgen_input:=.proxy-types.h) \ + $(libvincoin_ipc_mpgen_input:=.proxy.h) +nodist_libvincoin_ipc_a_SOURCES = $(libvincoin_ipc_mpgen_output) +CLEANFILES += $(libvincoin_ipc_mpgen_output) endif %.raw.h: %.raw diff --git a/src/Makefile.bench.include b/src/Makefile.bench.include index b24405ce19c75..194637f799620 100644 --- a/src/Makefile.bench.include +++ b/src/Makefile.bench.include @@ -1,23 +1,23 @@ -# Copyright (c) 2015-2016 The Bitcoin Core developers +# Copyright (c) 2015-2016 The Vincoin Core developers # Distributed under the MIT software license, see the accompanying # file COPYING or http://www.opensource.org/licenses/mit-license.php. -bin_PROGRAMS += bench/bench_bitcoin +bin_PROGRAMS += bench/bench_vincoin BENCH_SRCDIR = bench -BENCH_BINARY = bench/bench_bitcoin$(EXEEXT) +BENCH_BINARY = bench/bench_vincoin$(EXEEXT) RAW_BENCH_FILES = \ bench/data/block413567.raw GENERATED_BENCH_FILES = $(RAW_BENCH_FILES:.raw=.raw.h) -bench_bench_bitcoin_SOURCES = \ +bench_bench_vincoin_SOURCES = \ $(RAW_BENCH_FILES) \ bench/addrman.cpp \ bench/base58.cpp \ bench/bech32.cpp \ bench/bench.cpp \ bench/bench.h \ - bench/bench_bitcoin.cpp \ + bench/bench_vincoin.cpp \ bench/bip324_ecdh.cpp \ bench/block_assemble.cpp \ bench/ccoins_caching.cpp \ @@ -56,12 +56,12 @@ bench_bench_bitcoin_SOURCES = \ bench/verify_script.cpp \ bench/xor.cpp -nodist_bench_bench_bitcoin_SOURCES = $(GENERATED_BENCH_FILES) +nodist_bench_bench_vincoin_SOURCES = $(GENERATED_BENCH_FILES) -bench_bench_bitcoin_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES) $(BOOST_CPPFLAGS) $(EVENT_CFLAGS) $(EVENT_PTHREADS_CFLAGS) -I$(builddir)/bench/ -bench_bench_bitcoin_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS) -bench_bench_bitcoin_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS) $(PTHREAD_FLAGS) -bench_bench_bitcoin_LDADD = \ +bench_bench_vincoin_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES) $(BOOST_CPPFLAGS) $(EVENT_CFLAGS) $(EVENT_PTHREADS_CFLAGS) -I$(builddir)/bench/ +bench_bench_vincoin_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS) +bench_bench_vincoin_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS) $(PTHREAD_FLAGS) +bench_bench_vincoin_LDADD = \ $(LIBTEST_UTIL) \ $(LIBBITCOIN_NODE) \ $(LIBBITCOIN_WALLET) \ @@ -79,18 +79,18 @@ bench_bench_bitcoin_LDADD = \ $(NATPMP_LIBS) if ENABLE_ZMQ -bench_bench_bitcoin_LDADD += $(LIBBITCOIN_ZMQ) $(ZMQ_LIBS) +bench_bench_vincoin_LDADD += $(LIBBITCOIN_ZMQ) $(ZMQ_LIBS) endif if ENABLE_WALLET -bench_bench_bitcoin_SOURCES += bench/coin_selection.cpp -bench_bench_bitcoin_SOURCES += bench/wallet_balance.cpp -bench_bench_bitcoin_SOURCES += bench/wallet_create.cpp -bench_bench_bitcoin_SOURCES += bench/wallet_loading.cpp -bench_bench_bitcoin_SOURCES += bench/wallet_create_tx.cpp -bench_bench_bitcoin_SOURCES += bench/wallet_ismine.cpp +bench_bench_vincoin_SOURCES += bench/coin_selection.cpp +bench_bench_vincoin_SOURCES += bench/wallet_balance.cpp +bench_bench_vincoin_SOURCES += bench/wallet_create.cpp +bench_bench_vincoin_SOURCES += bench/wallet_loading.cpp +bench_bench_vincoin_SOURCES += bench/wallet_create_tx.cpp +bench_bench_vincoin_SOURCES += bench/wallet_ismine.cpp -bench_bench_bitcoin_LDADD += $(BDB_LIBS) $(SQLITE_LIBS) +bench_bench_vincoin_LDADD += $(BDB_LIBS) $(SQLITE_LIBS) endif CLEAN_BITCOIN_BENCH = bench/*.gcda bench/*.gcno $(GENERATED_BENCH_FILES) @@ -99,10 +99,10 @@ CLEANFILES += $(CLEAN_BITCOIN_BENCH) bench/data.cpp: bench/data/block413567.raw.h -bitcoin_bench: $(BENCH_BINARY) +vincoin_bench: $(BENCH_BINARY) bench: $(BENCH_BINARY) FORCE $(BENCH_BINARY) -bitcoin_bench_clean : FORCE - rm -f $(CLEAN_BITCOIN_BENCH) $(bench_bench_bitcoin_OBJECTS) $(BENCH_BINARY) +vincoin_bench_clean : FORCE + rm -f $(CLEAN_BITCOIN_BENCH) $(bench_bench_vincoin_OBJECTS) $(BENCH_BINARY) diff --git a/src/Makefile.crc32c.include b/src/Makefile.crc32c.include index c4dd84991d277..dd54fa2a3e909 100644 --- a/src/Makefile.crc32c.include +++ b/src/Makefile.crc32c.include @@ -1,4 +1,4 @@ -# Copyright (c) 2019 The Bitcoin Core developers +# Copyright (c) 2019 The Vincoin Core developers # Distributed under the MIT software license, see the accompanying # file COPYING or http://www.opensource.org/licenses/mit-license.php. diff --git a/src/Makefile.leveldb.include b/src/Makefile.leveldb.include index bf14fe206b926..70a92ee2c8372 100644 --- a/src/Makefile.leveldb.include +++ b/src/Makefile.leveldb.include @@ -1,4 +1,4 @@ -# Copyright (c) 2016 The Bitcoin Core developers +# Copyright (c) 2016 The Vincoin Core developers # Distributed under the MIT software license, see the accompanying # file COPYING or http://www.opensource.org/licenses/mit-license.php. diff --git a/src/Makefile.qt.include b/src/Makefile.qt.include index c235c3c4da732..948ddddcc8137 100644 --- a/src/Makefile.qt.include +++ b/src/Makefile.qt.include @@ -1,16 +1,16 @@ -# Copyright (c) 2013-2016 The Bitcoin Core developers +# Copyright (c) 2013-2016 The Vincoin Core developers # Distributed under the MIT software license, see the accompanying # file COPYING or http://www.opensource.org/licenses/mit-license.php. -bin_PROGRAMS += qt/bitcoin-qt +bin_PROGRAMS += qt/vincoin-qt if BUILD_BITCOIN_GUI - bin_PROGRAMS += bitcoin-gui + bin_PROGRAMS += vincoin-gui endif -EXTRA_LIBRARIES += qt/libbitcoinqt.a +EXTRA_LIBRARIES += qt/libvincoinqt.a -# bitcoin qt core # +# vincoin qt core # include Makefile.qt_locale.include QT_FORMS_UI = \ @@ -40,11 +40,11 @@ QT_MOC_CPP = \ qt/moc_askpassphrasedialog.cpp \ qt/moc_createwalletdialog.cpp \ qt/moc_bantablemodel.cpp \ - qt/moc_bitcoin.cpp \ - qt/moc_bitcoinaddressvalidator.cpp \ - qt/moc_bitcoinamountfield.cpp \ - qt/moc_bitcoingui.cpp \ - qt/moc_bitcoinunits.cpp \ + qt/moc_vincoin.cpp \ + qt/moc_vincoinaddressvalidator.cpp \ + qt/moc_vincoinamountfield.cpp \ + qt/moc_vincoingui.cpp \ + qt/moc_vincoinunits.cpp \ qt/moc_clientmodel.cpp \ qt/moc_coincontroldialog.cpp \ qt/moc_coincontroltreewidget.cpp \ @@ -95,26 +95,26 @@ BITCOIN_MM = \ qt/macos_appnap.mm QT_MOC = \ - qt/bitcoinamountfield.moc \ + qt/vincoinamountfield.moc \ qt/intro.moc \ qt/overviewpage.moc \ qt/rpcconsole.moc -QT_QRC_CPP = qt/qrc_bitcoin.cpp -QT_QRC = qt/bitcoin.qrc -QT_QRC_LOCALE_CPP = qt/qrc_bitcoin_locale.cpp -QT_QRC_LOCALE = qt/bitcoin_locale.qrc +QT_QRC_CPP = qt/qrc_vincoin.cpp +QT_QRC = qt/vincoin.qrc +QT_QRC_LOCALE_CPP = qt/qrc_vincoin_locale.cpp +QT_QRC_LOCALE = qt/vincoin_locale.qrc BITCOIN_QT_H = \ qt/addressbookpage.h \ qt/addresstablemodel.h \ qt/askpassphrasedialog.h \ qt/bantablemodel.h \ - qt/bitcoin.h \ - qt/bitcoinaddressvalidator.h \ - qt/bitcoinamountfield.h \ - qt/bitcoingui.h \ - qt/bitcoinunits.h \ + qt/vincoin.h \ + qt/vincoinaddressvalidator.h \ + qt/vincoinamountfield.h \ + qt/vincoingui.h \ + qt/vincoinunits.h \ qt/clientmodel.h \ qt/coincontroldialog.h \ qt/coincontroltreewidget.h \ @@ -174,9 +174,9 @@ QT_RES_FONTS = \ QT_RES_ICONS = \ qt/res/icons/add.png \ qt/res/icons/address-book.png \ - qt/res/icons/bitcoin.ico \ - qt/res/icons/bitcoin_testnet.ico \ - qt/res/icons/bitcoin.png \ + qt/res/icons/vincoin.ico \ + qt/res/icons/vincoin_testnet.ico \ + qt/res/icons/vincoin.png \ qt/res/icons/chevron.png \ qt/res/icons/clock1.png \ qt/res/icons/clock2.png \ @@ -221,11 +221,11 @@ QT_RES_ICONS = \ BITCOIN_QT_BASE_CPP = \ qt/bantablemodel.cpp \ - qt/bitcoin.cpp \ - qt/bitcoinaddressvalidator.cpp \ - qt/bitcoinamountfield.cpp \ - qt/bitcoingui.cpp \ - qt/bitcoinunits.cpp \ + qt/vincoin.cpp \ + qt/vincoinaddressvalidator.cpp \ + qt/vincoinamountfield.cpp \ + qt/vincoingui.cpp \ + qt/vincoinunits.cpp \ qt/clientmodel.cpp \ qt/csvmodelwriter.cpp \ qt/guiutil.cpp \ @@ -290,22 +290,22 @@ endif # ENABLE_WALLET QT_RES_ANIMATION = $(wildcard $(srcdir)/qt/res/animation/spinner-*.png) -BITCOIN_QT_RC = qt/res/bitcoin-qt-res.rc +BITCOIN_QT_RC = qt/res/vincoin-qt-res.rc BITCOIN_QT_INCLUDES = -DQT_NO_KEYWORDS -DQT_USE_QSTRINGBUILDER -qt_libbitcoinqt_a_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES) $(BITCOIN_QT_INCLUDES) \ +qt_libvincoinqt_a_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES) $(BITCOIN_QT_INCLUDES) \ $(QT_INCLUDES) $(QT_DBUS_INCLUDES) $(QR_CFLAGS) $(BOOST_CPPFLAGS) -qt_libbitcoinqt_a_CXXFLAGS = $(AM_CXXFLAGS) $(QT_PIE_FLAGS) -qt_libbitcoinqt_a_OBJCXXFLAGS = $(AM_OBJCXXFLAGS) $(QT_PIE_FLAGS) +qt_libvincoinqt_a_CXXFLAGS = $(AM_CXXFLAGS) $(QT_PIE_FLAGS) +qt_libvincoinqt_a_OBJCXXFLAGS = $(AM_OBJCXXFLAGS) $(QT_PIE_FLAGS) -qt_libbitcoinqt_a_SOURCES = $(BITCOIN_QT_CPP) $(BITCOIN_QT_H) $(QT_FORMS_UI) \ +qt_libvincoinqt_a_SOURCES = $(BITCOIN_QT_CPP) $(BITCOIN_QT_H) $(QT_FORMS_UI) \ $(QT_QRC) $(QT_QRC_LOCALE) $(QT_TS) $(QT_RES_FONTS) $(QT_RES_ICONS) $(QT_RES_ANIMATION) if TARGET_DARWIN - qt_libbitcoinqt_a_SOURCES += $(BITCOIN_MM) + qt_libvincoinqt_a_SOURCES += $(BITCOIN_MM) endif -nodist_qt_libbitcoinqt_a_SOURCES = $(QT_MOC_CPP) $(QT_MOC) $(QT_QRC_CPP) $(QT_QRC_LOCALE_CPP) +nodist_qt_libvincoinqt_a_SOURCES = $(QT_MOC_CPP) $(QT_MOC) $(QT_QRC_CPP) $(QT_QRC_LOCALE_CPP) # forms/foo.h -> forms/ui_foo.h QT_FORMS_H=$(join $(dir $(QT_FORMS_UI)),$(addprefix ui_, $(notdir $(QT_FORMS_UI:.ui=.h)))) @@ -313,96 +313,96 @@ QT_FORMS_H=$(join $(dir $(QT_FORMS_UI)),$(addprefix ui_, $(notdir $(QT_FORMS_UI: # Most files will depend on the forms and moc files as includes. Generate them # before anything else. $(QT_MOC): $(QT_FORMS_H) -$(qt_libbitcoinqt_a_OBJECTS) $(qt_bitcoin_qt_OBJECTS) $(bitcoin_gui_OBJECTS) : | $(QT_MOC) +$(qt_libvincoinqt_a_OBJECTS) $(qt_vincoin_qt_OBJECTS) $(vincoin_gui_OBJECTS) : | $(QT_MOC) -# bitcoin-qt and bitcoin-gui binaries # -bitcoin_qt_cppflags = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES) $(BITCOIN_QT_INCLUDES) \ +# vincoin-qt and vincoin-gui binaries # +vincoin_qt_cppflags = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES) $(BITCOIN_QT_INCLUDES) \ $(QT_INCLUDES) $(QR_CFLAGS) -bitcoin_qt_cxxflags = $(AM_CXXFLAGS) $(QT_PIE_FLAGS) +vincoin_qt_cxxflags = $(AM_CXXFLAGS) $(QT_PIE_FLAGS) -bitcoin_qt_sources = qt/main.cpp +vincoin_qt_sources = qt/main.cpp if TARGET_WINDOWS - bitcoin_qt_sources += $(BITCOIN_QT_RC) + vincoin_qt_sources += $(BITCOIN_QT_RC) endif -bitcoin_qt_ldadd = qt/libbitcoinqt.a $(LIBBITCOIN_NODE) +vincoin_qt_ldadd = qt/libvincoinqt.a $(LIBBITCOIN_NODE) if ENABLE_WALLET -bitcoin_qt_ldadd += $(LIBBITCOIN_UTIL) $(LIBBITCOIN_WALLET) +vincoin_qt_ldadd += $(LIBBITCOIN_UTIL) $(LIBBITCOIN_WALLET) endif if ENABLE_ZMQ -bitcoin_qt_ldadd += $(LIBBITCOIN_ZMQ) $(ZMQ_LIBS) +vincoin_qt_ldadd += $(LIBBITCOIN_ZMQ) $(ZMQ_LIBS) endif -bitcoin_qt_ldadd += $(LIBBITCOIN_CLI) $(LIBBITCOIN_COMMON) $(LIBBITCOIN_UTIL) $(LIBBITCOIN_CONSENSUS) $(LIBBITCOIN_CRYPTO) $(LIBUNIVALUE) $(LIBLEVELDB) $(LIBMEMENV) \ +vincoin_qt_ldadd += $(LIBBITCOIN_CLI) $(LIBBITCOIN_COMMON) $(LIBBITCOIN_UTIL) $(LIBBITCOIN_CONSENSUS) $(LIBBITCOIN_CRYPTO) $(LIBUNIVALUE) $(LIBLEVELDB) $(LIBMEMENV) \ $(QT_LIBS) $(QT_DBUS_LIBS) $(QR_LIBS) $(BDB_LIBS) $(MINIUPNPC_LIBS) $(NATPMP_LIBS) $(LIBSECP256K1) \ $(EVENT_PTHREADS_LIBS) $(EVENT_LIBS) $(SQLITE_LIBS) -bitcoin_qt_ldflags = $(RELDFLAGS) $(AM_LDFLAGS) $(QT_LDFLAGS) $(LIBTOOL_APP_LDFLAGS) $(PTHREAD_FLAGS) -bitcoin_qt_libtoolflags = $(AM_LIBTOOLFLAGS) --tag CXX - -qt_bitcoin_qt_CPPFLAGS = $(bitcoin_qt_cppflags) -qt_bitcoin_qt_CXXFLAGS = $(bitcoin_qt_cxxflags) -qt_bitcoin_qt_SOURCES = $(bitcoin_qt_sources) init/bitcoin-qt.cpp -qt_bitcoin_qt_LDADD = $(bitcoin_qt_ldadd) -qt_bitcoin_qt_LDFLAGS = $(bitcoin_qt_ldflags) -qt_bitcoin_qt_LIBTOOLFLAGS = $(bitcoin_qt_libtoolflags) - -bitcoin_gui_CPPFLAGS = $(bitcoin_qt_cppflags) -bitcoin_gui_CXXFLAGS = $(bitcoin_qt_cxxflags) -bitcoin_gui_SOURCES = $(bitcoin_qt_sources) init/bitcoin-gui.cpp -bitcoin_gui_LDADD = $(bitcoin_qt_ldadd) $(LIBBITCOIN_IPC) $(LIBBITCOIN_UTIL) $(LIBMULTIPROCESS_LIBS) -bitcoin_gui_LDFLAGS = $(bitcoin_qt_ldflags) -bitcoin_gui_LIBTOOLFLAGS = $(bitcoin_qt_libtoolflags) +vincoin_qt_ldflags = $(RELDFLAGS) $(AM_LDFLAGS) $(QT_LDFLAGS) $(LIBTOOL_APP_LDFLAGS) $(PTHREAD_FLAGS) +vincoin_qt_libtoolflags = $(AM_LIBTOOLFLAGS) --tag CXX + +qt_vincoin_qt_CPPFLAGS = $(vincoin_qt_cppflags) +qt_vincoin_qt_CXXFLAGS = $(vincoin_qt_cxxflags) +qt_vincoin_qt_SOURCES = $(vincoin_qt_sources) init/vincoin-qt.cpp +qt_vincoin_qt_LDADD = $(vincoin_qt_ldadd) +qt_vincoin_qt_LDFLAGS = $(vincoin_qt_ldflags) +qt_vincoin_qt_LIBTOOLFLAGS = $(vincoin_qt_libtoolflags) + +vincoin_gui_CPPFLAGS = $(vincoin_qt_cppflags) +vincoin_gui_CXXFLAGS = $(vincoin_qt_cxxflags) +vincoin_gui_SOURCES = $(vincoin_qt_sources) init/vincoin-gui.cpp +vincoin_gui_LDADD = $(vincoin_qt_ldadd) $(LIBBITCOIN_IPC) $(LIBBITCOIN_UTIL) $(LIBMULTIPROCESS_LIBS) +vincoin_gui_LDFLAGS = $(vincoin_qt_ldflags) +vincoin_gui_LIBTOOLFLAGS = $(vincoin_qt_libtoolflags) #locale/foo.ts -> locale/foo.qm QT_QM=$(QT_TS:.ts=.qm) SECONDARY: $(QT_QM) -$(srcdir)/qt/bitcoinstrings.cpp: FORCE +$(srcdir)/qt/vincoinstrings.cpp: FORCE @test -n $(XGETTEXT) || echo "xgettext is required for updating translations" $(AM_V_GEN) cd $(srcdir); XGETTEXT=$(XGETTEXT) COPYRIGHT_HOLDERS="$(COPYRIGHT_HOLDERS)" $(PYTHON) ../share/qt/extract_strings_qt.py \ - $(libbitcoin_node_a_SOURCES) $(libbitcoin_wallet_a_SOURCES) $(libbitcoin_common_a_SOURCES) \ - $(libbitcoin_zmq_a_SOURCES) $(libbitcoin_consensus_a_SOURCES) $(libbitcoin_util_a_SOURCES) \ + $(libvincoin_node_a_SOURCES) $(libvincoin_wallet_a_SOURCES) $(libvincoin_common_a_SOURCES) \ + $(libvincoin_zmq_a_SOURCES) $(libvincoin_consensus_a_SOURCES) $(libvincoin_util_a_SOURCES) \ $(BITCOIN_QT_BASE_CPP) $(BITCOIN_QT_WINDOWS_CPP) $(BITCOIN_QT_WALLET_CPP) $(BITCOIN_QT_H) $(BITCOIN_MM) -# The resulted bitcoin_en.xlf source file should follow Transifex requirements. +# The resulted vincoin_en.xlf source file should follow Transifex requirements. # See: https://docs.transifex.com/formats/xliff#how-to-distinguish-between-a-source-file-and-a-translation-file -translate: $(srcdir)/qt/bitcoinstrings.cpp $(QT_FORMS_UI) $(QT_FORMS_UI) $(BITCOIN_QT_BASE_CPP) $(BITCOIN_QT_WINDOWS_CPP) $(BITCOIN_QT_WALLET_CPP) $(BITCOIN_QT_H) $(BITCOIN_MM) +translate: $(srcdir)/qt/vincoinstrings.cpp $(QT_FORMS_UI) $(QT_FORMS_UI) $(BITCOIN_QT_BASE_CPP) $(BITCOIN_QT_WINDOWS_CPP) $(BITCOIN_QT_WALLET_CPP) $(BITCOIN_QT_H) $(BITCOIN_MM) @test -n $(LUPDATE) || echo "lupdate is required for updating translations" - $(AM_V_GEN) QT_SELECT=$(QT_SELECT) $(LUPDATE) -no-obsolete -I $(srcdir) -locations relative $^ -ts $(srcdir)/qt/locale/bitcoin_en.ts + $(AM_V_GEN) QT_SELECT=$(QT_SELECT) $(LUPDATE) -no-obsolete -I $(srcdir) -locations relative $^ -ts $(srcdir)/qt/locale/vincoin_en.ts @test -n $(LCONVERT) || echo "lconvert is required for updating translations" - $(AM_V_GEN) QT_SELECT=$(QT_SELECT) $(LCONVERT) -drop-translations -o $(srcdir)/qt/locale/bitcoin_en.xlf -i $(srcdir)/qt/locale/bitcoin_en.ts - @$(SED) -i.old -e 's|source-language="en" target-language="en"|source-language="en"|' -e '/<\/target>/d' $(srcdir)/qt/locale/bitcoin_en.xlf - @rm -f $(srcdir)/qt/locale/bitcoin_en.xlf.old + $(AM_V_GEN) QT_SELECT=$(QT_SELECT) $(LCONVERT) -drop-translations -o $(srcdir)/qt/locale/vincoin_en.xlf -i $(srcdir)/qt/locale/vincoin_en.ts + @$(SED) -i.old -e 's|source-language="en" target-language="en"|source-language="en"|' -e '/<\/target>/d' $(srcdir)/qt/locale/vincoin_en.xlf + @rm -f $(srcdir)/qt/locale/vincoin_en.xlf.old $(QT_QRC_LOCALE_CPP): $(QT_QRC_LOCALE) $(QT_QM) @test -f $(RCC) || (echo "rcc $(RCC) not found, but is required for generating qrc cpp files"; exit 1) @cp -f $< $(@D)/temp_$( $@ + $(AM_V_GEN) QT_SELECT=$(QT_SELECT) $(RCC) -name vincoin_locale --format-version 1 $(@D)/temp_$( $@ @rm $(@D)/temp_$( $@ + $(AM_V_GEN) QT_SELECT=$(QT_SELECT) $(RCC) -name vincoin --format-version 1 $< > $@ -CLEAN_QT = $(nodist_qt_libbitcoinqt_a_SOURCES) $(QT_QM) $(QT_FORMS_H) qt/*.gcda qt/*.gcno qt/temp_bitcoin_locale.qrc +CLEAN_QT = $(nodist_qt_libvincoinqt_a_SOURCES) $(QT_QM) $(QT_FORMS_H) qt/*.gcda qt/*.gcno qt/temp_vincoin_locale.qrc CLEANFILES += $(CLEAN_QT) -bitcoin_qt_clean: FORCE - rm -f $(CLEAN_QT) $(qt_libbitcoinqt_a_OBJECTS) $(qt_bitcoin_qt_OBJECTS) qt/bitcoin-qt$(EXEEXT) $(LIBBITCOINQT) +vincoin_qt_clean: FORCE + rm -f $(CLEAN_QT) $(qt_libvincoinqt_a_OBJECTS) $(qt_vincoin_qt_OBJECTS) qt/vincoin-qt$(EXEEXT) $(LIBBITCOINQT) -bitcoin_qt : qt/bitcoin-qt$(EXEEXT) +vincoin_qt : qt/vincoin-qt$(EXEEXT) APK_LIB_DIR = qt/android/libs/$(ANDROID_ARCH) QT_BASE_VERSION = $(lastword $(shell $(MOC) --version)) QT_BASE_PATH = $(shell find ../depends/sources/ -maxdepth 1 -type f -regex ".*qtbase.*$(QT_BASE_VERSION)\.tar.xz") QT_BASE_TLD = $(shell tar tf $(QT_BASE_PATH) --exclude='*/*') -bitcoin_qt_apk: FORCE +vincoin_qt_apk: FORCE mkdir -p $(APK_LIB_DIR) cp $(dir $(lastword $(CC)))../sysroot/usr/lib/$(host_alias)/libc++_shared.so $(APK_LIB_DIR) tar xf $(QT_BASE_PATH) -C qt/android/src/ $(QT_BASE_TLD)src/android/jar/src --strip-components=5 tar xf $(QT_BASE_PATH) -C qt/android/src/ $(QT_BASE_TLD)src/android/java/src --strip-components=5 - cp qt/bitcoin-qt $(APK_LIB_DIR)/libbitcoin-qt_$(ANDROID_ARCH).so + cp qt/vincoin-qt $(APK_LIB_DIR)/libvincoin-qt_$(ANDROID_ARCH).so cd qt/android && gradle wrapper --gradle-version=6.6.1 cd qt/android && ./gradlew build diff --git a/src/Makefile.qt_locale.include b/src/Makefile.qt_locale.include index 4712b1e11f5ee..f82549d6873e4 100644 --- a/src/Makefile.qt_locale.include +++ b/src/Makefile.qt_locale.include @@ -1,125 +1,125 @@ QT_TS = \ - qt/locale/bitcoin_af.ts \ - qt/locale/bitcoin_am.ts \ - qt/locale/bitcoin_az.ts \ - qt/locale/bitcoin_az@latin.ts \ - qt/locale/bitcoin_be.ts \ - qt/locale/bitcoin_bg.ts \ - qt/locale/bitcoin_bn.ts \ - qt/locale/bitcoin_br.ts \ - qt/locale/bitcoin_bs.ts \ - qt/locale/bitcoin_ca.ts \ - qt/locale/bitcoin_cmn.ts \ - qt/locale/bitcoin_cs.ts \ - qt/locale/bitcoin_cy.ts \ - qt/locale/bitcoin_da.ts \ - qt/locale/bitcoin_de.ts \ - qt/locale/bitcoin_de_AT.ts \ - qt/locale/bitcoin_de_CH.ts \ - qt/locale/bitcoin_el.ts \ - qt/locale/bitcoin_en.ts \ - qt/locale/bitcoin_eo.ts \ - qt/locale/bitcoin_es.ts \ - qt/locale/bitcoin_es_CL.ts \ - qt/locale/bitcoin_es_CO.ts \ - qt/locale/bitcoin_es_DO.ts \ - qt/locale/bitcoin_es_MX.ts \ - qt/locale/bitcoin_es_SV.ts \ - qt/locale/bitcoin_es_VE.ts \ - qt/locale/bitcoin_et.ts \ - qt/locale/bitcoin_eu.ts \ - qt/locale/bitcoin_fa.ts \ - qt/locale/bitcoin_fi.ts \ - qt/locale/bitcoin_fil.ts \ - qt/locale/bitcoin_fo.ts \ - qt/locale/bitcoin_fr.ts \ - qt/locale/bitcoin_fr_CM.ts \ - qt/locale/bitcoin_fr_LU.ts \ - qt/locale/bitcoin_ga.ts \ - qt/locale/bitcoin_ga_IE.ts \ - qt/locale/bitcoin_gd.ts \ - qt/locale/bitcoin_gl.ts \ - qt/locale/bitcoin_gl_ES.ts \ - qt/locale/bitcoin_gu.ts \ - qt/locale/bitcoin_ha.ts \ - qt/locale/bitcoin_hak.ts \ - qt/locale/bitcoin_he.ts \ - qt/locale/bitcoin_hi.ts \ - qt/locale/bitcoin_hr.ts \ - qt/locale/bitcoin_hu.ts \ - qt/locale/bitcoin_id.ts \ - qt/locale/bitcoin_is.ts \ - qt/locale/bitcoin_it.ts \ - qt/locale/bitcoin_ja.ts \ - qt/locale/bitcoin_ka.ts \ - qt/locale/bitcoin_kk.ts \ - qt/locale/bitcoin_kk@latin.ts \ - qt/locale/bitcoin_kl.ts \ - qt/locale/bitcoin_km.ts \ - qt/locale/bitcoin_kn.ts \ - qt/locale/bitcoin_ko.ts \ - qt/locale/bitcoin_ku.ts \ - qt/locale/bitcoin_ku_IQ.ts \ - qt/locale/bitcoin_ky.ts \ - qt/locale/bitcoin_la.ts \ - qt/locale/bitcoin_lb.ts \ - qt/locale/bitcoin_lt.ts \ - qt/locale/bitcoin_lv.ts \ - qt/locale/bitcoin_mg.ts \ - qt/locale/bitcoin_mi.ts \ - qt/locale/bitcoin_mk.ts \ - qt/locale/bitcoin_ml.ts \ - qt/locale/bitcoin_mn.ts \ - qt/locale/bitcoin_mr.ts \ - qt/locale/bitcoin_mr_IN.ts \ - qt/locale/bitcoin_ms.ts \ - qt/locale/bitcoin_mt.ts \ - qt/locale/bitcoin_my.ts \ - qt/locale/bitcoin_nb.ts \ - qt/locale/bitcoin_ne.ts \ - qt/locale/bitcoin_nl.ts \ - qt/locale/bitcoin_no.ts \ - qt/locale/bitcoin_pa.ts \ - qt/locale/bitcoin_pam.ts \ - qt/locale/bitcoin_pl.ts \ - qt/locale/bitcoin_pt.ts \ - qt/locale/bitcoin_pt_BR.ts \ - qt/locale/bitcoin_ro.ts \ - qt/locale/bitcoin_ru.ts \ - qt/locale/bitcoin_ru_RU.ts \ - qt/locale/bitcoin_sc.ts \ - qt/locale/bitcoin_sd.ts \ - qt/locale/bitcoin_si.ts \ - qt/locale/bitcoin_sk.ts \ - qt/locale/bitcoin_sl.ts \ - qt/locale/bitcoin_sn.ts \ - qt/locale/bitcoin_so.ts \ - qt/locale/bitcoin_sq.ts \ - qt/locale/bitcoin_sr.ts \ - qt/locale/bitcoin_sr@ijekavianlatin.ts \ - qt/locale/bitcoin_sr@latin.ts \ - qt/locale/bitcoin_sv.ts \ - qt/locale/bitcoin_sw.ts \ - qt/locale/bitcoin_szl.ts \ - qt/locale/bitcoin_ta.ts \ - qt/locale/bitcoin_te.ts \ - qt/locale/bitcoin_th.ts \ - qt/locale/bitcoin_tk.ts \ - qt/locale/bitcoin_tl.ts \ - qt/locale/bitcoin_tr.ts \ - qt/locale/bitcoin_ug.ts \ - qt/locale/bitcoin_uk.ts \ - qt/locale/bitcoin_ur.ts \ - qt/locale/bitcoin_uz.ts \ - qt/locale/bitcoin_uz@Cyrl.ts \ - qt/locale/bitcoin_uz@Latn.ts \ - qt/locale/bitcoin_vi.ts \ - qt/locale/bitcoin_yo.ts \ - qt/locale/bitcoin_yue.ts \ - qt/locale/bitcoin_zh-Hans.ts \ - qt/locale/bitcoin_zh-Hant.ts \ - qt/locale/bitcoin_zh.ts \ - qt/locale/bitcoin_zh_CN.ts \ - qt/locale/bitcoin_zh_HK.ts \ - qt/locale/bitcoin_zh_TW.ts \ - qt/locale/bitcoin_zu.ts + qt/locale/vincoin_af.ts \ + qt/locale/vincoin_am.ts \ + qt/locale/vincoin_az.ts \ + qt/locale/vincoin_az@latin.ts \ + qt/locale/vincoin_be.ts \ + qt/locale/vincoin_bg.ts \ + qt/locale/vincoin_bn.ts \ + qt/locale/vincoin_br.ts \ + qt/locale/vincoin_bs.ts \ + qt/locale/vincoin_ca.ts \ + qt/locale/vincoin_cmn.ts \ + qt/locale/vincoin_cs.ts \ + qt/locale/vincoin_cy.ts \ + qt/locale/vincoin_da.ts \ + qt/locale/vincoin_de.ts \ + qt/locale/vincoin_de_AT.ts \ + qt/locale/vincoin_de_CH.ts \ + qt/locale/vincoin_el.ts \ + qt/locale/vincoin_en.ts \ + qt/locale/vincoin_eo.ts \ + qt/locale/vincoin_es.ts \ + qt/locale/vincoin_es_CL.ts \ + qt/locale/vincoin_es_CO.ts \ + qt/locale/vincoin_es_DO.ts \ + qt/locale/vincoin_es_MX.ts \ + qt/locale/vincoin_es_SV.ts \ + qt/locale/vincoin_es_VE.ts \ + qt/locale/vincoin_et.ts \ + qt/locale/vincoin_eu.ts \ + qt/locale/vincoin_fa.ts \ + qt/locale/vincoin_fi.ts \ + qt/locale/vincoin_fil.ts \ + qt/locale/vincoin_fo.ts \ + qt/locale/vincoin_fr.ts \ + qt/locale/vincoin_fr_CM.ts \ + qt/locale/vincoin_fr_LU.ts \ + qt/locale/vincoin_ga.ts \ + qt/locale/vincoin_ga_IE.ts \ + qt/locale/vincoin_gd.ts \ + qt/locale/vincoin_gl.ts \ + qt/locale/vincoin_gl_ES.ts \ + qt/locale/vincoin_gu.ts \ + qt/locale/vincoin_ha.ts \ + qt/locale/vincoin_hak.ts \ + qt/locale/vincoin_he.ts \ + qt/locale/vincoin_hi.ts \ + qt/locale/vincoin_hr.ts \ + qt/locale/vincoin_hu.ts \ + qt/locale/vincoin_id.ts \ + qt/locale/vincoin_is.ts \ + qt/locale/vincoin_it.ts \ + qt/locale/vincoin_ja.ts \ + qt/locale/vincoin_ka.ts \ + qt/locale/vincoin_kk.ts \ + qt/locale/vincoin_kk@latin.ts \ + qt/locale/vincoin_kl.ts \ + qt/locale/vincoin_km.ts \ + qt/locale/vincoin_kn.ts \ + qt/locale/vincoin_ko.ts \ + qt/locale/vincoin_ku.ts \ + qt/locale/vincoin_ku_IQ.ts \ + qt/locale/vincoin_ky.ts \ + qt/locale/vincoin_la.ts \ + qt/locale/vincoin_lb.ts \ + qt/locale/vincoin_lt.ts \ + qt/locale/vincoin_lv.ts \ + qt/locale/vincoin_mg.ts \ + qt/locale/vincoin_mi.ts \ + qt/locale/vincoin_mk.ts \ + qt/locale/vincoin_ml.ts \ + qt/locale/vincoin_mn.ts \ + qt/locale/vincoin_mr.ts \ + qt/locale/vincoin_mr_IN.ts \ + qt/locale/vincoin_ms.ts \ + qt/locale/vincoin_mt.ts \ + qt/locale/vincoin_my.ts \ + qt/locale/vincoin_nb.ts \ + qt/locale/vincoin_ne.ts \ + qt/locale/vincoin_nl.ts \ + qt/locale/vincoin_no.ts \ + qt/locale/vincoin_pa.ts \ + qt/locale/vincoin_pam.ts \ + qt/locale/vincoin_pl.ts \ + qt/locale/vincoin_pt.ts \ + qt/locale/vincoin_pt_BR.ts \ + qt/locale/vincoin_ro.ts \ + qt/locale/vincoin_ru.ts \ + qt/locale/vincoin_ru_RU.ts \ + qt/locale/vincoin_sc.ts \ + qt/locale/vincoin_sd.ts \ + qt/locale/vincoin_si.ts \ + qt/locale/vincoin_sk.ts \ + qt/locale/vincoin_sl.ts \ + qt/locale/vincoin_sn.ts \ + qt/locale/vincoin_so.ts \ + qt/locale/vincoin_sq.ts \ + qt/locale/vincoin_sr.ts \ + qt/locale/vincoin_sr@ijekavianlatin.ts \ + qt/locale/vincoin_sr@latin.ts \ + qt/locale/vincoin_sv.ts \ + qt/locale/vincoin_sw.ts \ + qt/locale/vincoin_szl.ts \ + qt/locale/vincoin_ta.ts \ + qt/locale/vincoin_te.ts \ + qt/locale/vincoin_th.ts \ + qt/locale/vincoin_tk.ts \ + qt/locale/vincoin_tl.ts \ + qt/locale/vincoin_tr.ts \ + qt/locale/vincoin_ug.ts \ + qt/locale/vincoin_uk.ts \ + qt/locale/vincoin_ur.ts \ + qt/locale/vincoin_uz.ts \ + qt/locale/vincoin_uz@Cyrl.ts \ + qt/locale/vincoin_uz@Latn.ts \ + qt/locale/vincoin_vi.ts \ + qt/locale/vincoin_yo.ts \ + qt/locale/vincoin_yue.ts \ + qt/locale/vincoin_zh-Hans.ts \ + qt/locale/vincoin_zh-Hant.ts \ + qt/locale/vincoin_zh.ts \ + qt/locale/vincoin_zh_CN.ts \ + qt/locale/vincoin_zh_HK.ts \ + qt/locale/vincoin_zh_TW.ts \ + qt/locale/vincoin_zu.ts diff --git a/src/Makefile.qttest.include b/src/Makefile.qttest.include index 89c659d4b9219..e733348c2944e 100644 --- a/src/Makefile.qttest.include +++ b/src/Makefile.qttest.include @@ -1,9 +1,9 @@ -# Copyright (c) 2013-2016 The Bitcoin Core developers +# Copyright (c) 2013-2016 The Vincoin Core developers # Distributed under the MIT software license, see the accompanying # file COPYING or http://www.opensource.org/licenses/mit-license.php. -bin_PROGRAMS += qt/test/test_bitcoin-qt -TESTS += qt/test/test_bitcoin-qt +bin_PROGRAMS += qt/test/test_vincoin-qt +TESTS += qt/test/test_vincoin-qt TEST_QT_MOC_CPP = \ qt/test/moc_apptests.cpp \ @@ -26,11 +26,11 @@ TEST_QT_H = \ qt/test/util.h \ qt/test/wallettests.h -qt_test_test_bitcoin_qt_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES) $(BITCOIN_QT_INCLUDES) \ +qt_test_test_vincoin_qt_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES) $(BITCOIN_QT_INCLUDES) \ $(QT_INCLUDES) $(QT_TEST_INCLUDES) $(BOOST_CPPFLAGS) -qt_test_test_bitcoin_qt_SOURCES = \ - init/bitcoin-qt.cpp \ +qt_test_test_vincoin_qt_SOURCES = \ + init/vincoin-qt.cpp \ qt/test/apptests.cpp \ qt/test/optiontests.cpp \ qt/test/rpcnestedtests.cpp \ @@ -39,36 +39,36 @@ qt_test_test_bitcoin_qt_SOURCES = \ qt/test/util.cpp \ $(TEST_QT_H) if ENABLE_WALLET -qt_test_test_bitcoin_qt_SOURCES += \ +qt_test_test_vincoin_qt_SOURCES += \ qt/test/addressbooktests.cpp \ qt/test/wallettests.cpp \ wallet/test/wallet_test_fixture.cpp endif # ENABLE_WALLET -nodist_qt_test_test_bitcoin_qt_SOURCES = $(TEST_QT_MOC_CPP) +nodist_qt_test_test_vincoin_qt_SOURCES = $(TEST_QT_MOC_CPP) -qt_test_test_bitcoin_qt_LDADD = $(LIBBITCOINQT) $(LIBBITCOIN_NODE) $(LIBTEST_UTIL) +qt_test_test_vincoin_qt_LDADD = $(LIBBITCOINQT) $(LIBBITCOIN_NODE) $(LIBTEST_UTIL) if ENABLE_WALLET -qt_test_test_bitcoin_qt_LDADD += $(LIBBITCOIN_UTIL) $(LIBBITCOIN_WALLET) +qt_test_test_vincoin_qt_LDADD += $(LIBBITCOIN_UTIL) $(LIBBITCOIN_WALLET) endif if ENABLE_ZMQ -qt_test_test_bitcoin_qt_LDADD += $(LIBBITCOIN_ZMQ) $(ZMQ_LIBS) +qt_test_test_vincoin_qt_LDADD += $(LIBBITCOIN_ZMQ) $(ZMQ_LIBS) endif -qt_test_test_bitcoin_qt_LDADD += $(LIBBITCOIN_CLI) $(LIBBITCOIN_COMMON) $(LIBBITCOIN_UTIL) $(LIBBITCOIN_CONSENSUS) $(LIBBITCOIN_CRYPTO) $(LIBUNIVALUE) $(LIBLEVELDB) \ +qt_test_test_vincoin_qt_LDADD += $(LIBBITCOIN_CLI) $(LIBBITCOIN_COMMON) $(LIBBITCOIN_UTIL) $(LIBBITCOIN_CONSENSUS) $(LIBBITCOIN_CRYPTO) $(LIBUNIVALUE) $(LIBLEVELDB) \ $(LIBMEMENV) $(QT_LIBS) $(QT_DBUS_LIBS) $(QT_TEST_LIBS) \ $(QR_LIBS) $(BDB_LIBS) $(MINIUPNPC_LIBS) $(NATPMP_LIBS) $(LIBSECP256K1) \ $(EVENT_PTHREADS_LIBS) $(EVENT_LIBS) $(SQLITE_LIBS) -qt_test_test_bitcoin_qt_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(QT_LDFLAGS) $(LIBTOOL_APP_LDFLAGS) $(PTHREAD_FLAGS) -qt_test_test_bitcoin_qt_CXXFLAGS = $(AM_CXXFLAGS) $(QT_PIE_FLAGS) +qt_test_test_vincoin_qt_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(QT_LDFLAGS) $(LIBTOOL_APP_LDFLAGS) $(PTHREAD_FLAGS) +qt_test_test_vincoin_qt_CXXFLAGS = $(AM_CXXFLAGS) $(QT_PIE_FLAGS) CLEAN_BITCOIN_QT_TEST = $(TEST_QT_MOC_CPP) qt/test/*.gcda qt/test/*.gcno CLEANFILES += $(CLEAN_BITCOIN_QT_TEST) -test_bitcoin_qt : qt/test/test_bitcoin-qt$(EXEEXT) +test_vincoin_qt : qt/test/test_vincoin-qt$(EXEEXT) -test_bitcoin_qt_check : qt/test/test_bitcoin-qt$(EXEEXT) FORCE +test_vincoin_qt_check : qt/test/test_vincoin-qt$(EXEEXT) FORCE $(MAKE) check-TESTS TESTS=$^ -test_bitcoin_qt_clean: FORCE - rm -f $(CLEAN_BITCOIN_QT_TEST) $(qt_test_test_bitcoin_qt_OBJECTS) +test_vincoin_qt_clean: FORCE + rm -f $(CLEAN_BITCOIN_QT_TEST) $(qt_test_test_vincoin_qt_OBJECTS) diff --git a/src/Makefile.test.include b/src/Makefile.test.include index 9f9bdbbd0cd4b..42b2d9afa74bb 100644 --- a/src/Makefile.test.include +++ b/src/Makefile.test.include @@ -1,4 +1,4 @@ -# Copyright (c) 2013-2016 The Bitcoin Core developers +# Copyright (c) 2013-2016 The Vincoin Core developers # Distributed under the MIT software license, see the accompanying # file COPYING or http://www.opensource.org/licenses/mit-license.php. @@ -7,11 +7,11 @@ noinst_PROGRAMS += test/fuzz/fuzz endif if ENABLE_TESTS -bin_PROGRAMS += test/test_bitcoin +bin_PROGRAMS += test/test_vincoin endif TEST_SRCDIR = test -TEST_BINARY=test/test_bitcoin$(EXEEXT) +TEST_BINARY=test/test_vincoin$(EXEEXT) FUZZ_BINARY=test/fuzz/fuzz$(EXEEXT) JSON_TEST_FILES = \ @@ -61,7 +61,7 @@ if USE_NATPMP FUZZ_SUITE_LD_COMMON += $(NATPMP_LIBS) endif -# test_bitcoin binary # +# test_vincoin binary # BITCOIN_TESTS =\ test/addrman_tests.cpp \ test/allocator_tests.cpp \ @@ -223,18 +223,18 @@ BITCOIN_TESTS += test/ipc_tests.cpp # Build ipc_test code in a separate library so it can be compiled with custom # LIBMULTIPROCESS_CFLAGS without those flags affecting other tests -LIBBITCOIN_IPC_TEST=libbitcoin_ipc_test.a +LIBBITCOIN_IPC_TEST=libvincoin_ipc_test.a EXTRA_LIBRARIES += $(LIBBITCOIN_IPC_TEST) -libbitcoin_ipc_test_a_SOURCES = \ +libvincoin_ipc_test_a_SOURCES = \ test/ipc_test.cpp \ test/ipc_test.h -libbitcoin_ipc_test_a_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES) -libbitcoin_ipc_test_a_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS) $(LIBMULTIPROCESS_CFLAGS) +libvincoin_ipc_test_a_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES) +libvincoin_ipc_test_a_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS) $(LIBMULTIPROCESS_CFLAGS) # Generate various .c++/.h files from the ipc_test.capnp file include $(MPGEN_PREFIX)/include/mpgen.mk EXTRA_DIST += test/ipc_test.capnp -libbitcoin_ipc_test_mpgen_output = \ +libvincoin_ipc_test_mpgen_output = \ test/ipc_test.capnp.c++ \ test/ipc_test.capnp.h \ test/ipc_test.capnp.proxy-client.c++ \ @@ -242,34 +242,34 @@ libbitcoin_ipc_test_mpgen_output = \ test/ipc_test.capnp.proxy-types.c++ \ test/ipc_test.capnp.proxy-types.h \ test/ipc_test.capnp.proxy.h -nodist_libbitcoin_ipc_test_a_SOURCES = $(libbitcoin_ipc_test_mpgen_output) -CLEANFILES += $(libbitcoin_ipc_test_mpgen_output) +nodist_libvincoin_ipc_test_a_SOURCES = $(libvincoin_ipc_test_mpgen_output) +CLEANFILES += $(libvincoin_ipc_test_mpgen_output) endif # Explicitly list dependencies on generated headers as described in # https://www.gnu.org/software/automake/manual/html_node/Built-Sources-Example.html#Recording-Dependencies-manually -test/libbitcoin_ipc_test_a-ipc_test.$(OBJEXT): test/ipc_test.capnp.h +test/libvincoin_ipc_test_a-ipc_test.$(OBJEXT): test/ipc_test.capnp.h -test_test_bitcoin_SOURCES = $(BITCOIN_TEST_SUITE) $(BITCOIN_TESTS) $(JSON_TEST_FILES) $(RAW_TEST_FILES) -test_test_bitcoin_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES) $(TESTDEFS) $(BOOST_CPPFLAGS) $(EVENT_CFLAGS) -test_test_bitcoin_LDADD = $(LIBTEST_UTIL) +test_test_vincoin_SOURCES = $(BITCOIN_TEST_SUITE) $(BITCOIN_TESTS) $(JSON_TEST_FILES) $(RAW_TEST_FILES) +test_test_vincoin_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES) $(TESTDEFS) $(BOOST_CPPFLAGS) $(EVENT_CFLAGS) +test_test_vincoin_LDADD = $(LIBTEST_UTIL) if ENABLE_WALLET -test_test_bitcoin_LDADD += $(LIBBITCOIN_WALLET) -test_test_bitcoin_CPPFLAGS += $(BDB_CPPFLAGS) +test_test_vincoin_LDADD += $(LIBBITCOIN_WALLET) +test_test_vincoin_CPPFLAGS += $(BDB_CPPFLAGS) endif if BUILD_MULTIPROCESS -test_test_bitcoin_LDADD += $(LIBBITCOIN_IPC_TEST) $(LIBMULTIPROCESS_LIBS) +test_test_vincoin_LDADD += $(LIBBITCOIN_IPC_TEST) $(LIBMULTIPROCESS_LIBS) endif -test_test_bitcoin_LDADD += $(LIBBITCOIN_NODE) $(LIBBITCOIN_CLI) $(LIBBITCOIN_COMMON) $(LIBBITCOIN_UTIL) $(LIBBITCOIN_CONSENSUS) $(LIBBITCOIN_CRYPTO) $(LIBUNIVALUE) \ +test_test_vincoin_LDADD += $(LIBBITCOIN_NODE) $(LIBBITCOIN_CLI) $(LIBBITCOIN_COMMON) $(LIBBITCOIN_UTIL) $(LIBBITCOIN_CONSENSUS) $(LIBBITCOIN_CRYPTO) $(LIBUNIVALUE) \ $(LIBLEVELDB) $(LIBMEMENV) $(LIBSECP256K1) $(EVENT_LIBS) $(EVENT_PTHREADS_LIBS) $(MINISKETCH_LIBS) -test_test_bitcoin_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS) +test_test_vincoin_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS) -test_test_bitcoin_LDADD += $(BDB_LIBS) $(MINIUPNPC_LIBS) $(NATPMP_LIBS) $(SQLITE_LIBS) -test_test_bitcoin_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS) $(PTHREAD_FLAGS) -static +test_test_vincoin_LDADD += $(BDB_LIBS) $(MINIUPNPC_LIBS) $(NATPMP_LIBS) $(SQLITE_LIBS) +test_test_vincoin_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS) $(PTHREAD_FLAGS) -static if ENABLE_ZMQ -test_test_bitcoin_LDADD += $(LIBBITCOIN_ZMQ) $(ZMQ_LIBS) +test_test_vincoin_LDADD += $(LIBBITCOIN_ZMQ) $(ZMQ_LIBS) FUZZ_SUITE_LD_COMMON += $(LIBBITCOIN_ZMQ) $(ZMQ_LIBS) endif @@ -362,7 +362,7 @@ test_fuzz_fuzz_SOURCES = \ test/fuzz/rpc.cpp \ test/fuzz/script.cpp \ test/fuzz/script_assets_test_minimizer.cpp \ - test/fuzz/script_bitcoin_consensus.cpp \ + test/fuzz/script_vincoin_consensus.cpp \ test/fuzz/script_descriptor_cache.cpp \ test/fuzz/script_flags.cpp \ test/fuzz/script_format.cpp \ @@ -395,7 +395,7 @@ test_fuzz_fuzz_SOURCES = \ test/fuzz/versionbits.cpp endif # ENABLE_FUZZ_BINARY -nodist_test_test_bitcoin_SOURCES = $(GENERATED_TEST_FILES) +nodist_test_test_vincoin_SOURCES = $(GENERATED_TEST_FILES) $(BITCOIN_TESTS): $(GENERATED_TEST_FILES) @@ -404,20 +404,20 @@ CLEAN_BITCOIN_TEST = test/*.gcda test/*.gcno test/fuzz/*.gcda test/fuzz/*.gcno t CLEANFILES += $(CLEAN_BITCOIN_TEST) if TARGET_WINDOWS -bitcoin_test: $(TEST_BINARY) +vincoin_test: $(TEST_BINARY) else if ENABLE_BENCH -bitcoin_test: $(TEST_BINARY) $(BENCH_BINARY) +vincoin_test: $(TEST_BINARY) $(BENCH_BINARY) else -bitcoin_test: $(TEST_BINARY) +vincoin_test: $(TEST_BINARY) endif endif -bitcoin_test_check: $(TEST_BINARY) FORCE +vincoin_test_check: $(TEST_BINARY) FORCE $(MAKE) check-TESTS TESTS=$^ -bitcoin_test_clean : FORCE - rm -f $(CLEAN_BITCOIN_TEST) $(test_test_bitcoin_OBJECTS) $(TEST_BINARY) +vincoin_test_clean : FORCE + rm -f $(CLEAN_BITCOIN_TEST) $(test_test_vincoin_OBJECTS) $(TEST_BINARY) check-unit: $(BITCOIN_TESTS:.cpp=.cpp.test) @@ -431,7 +431,7 @@ endif if TARGET_WINDOWS else if ENABLE_BENCH - @echo "Running bench/bench_bitcoin (one iteration sanity check, only high priority)..." + @echo "Running bench/bench_vincoin (one iteration sanity check, only high priority)..." $(BENCH_BINARY) -sanity-check -priority-level=high endif endif diff --git a/src/Makefile.test_fuzz.include b/src/Makefile.test_fuzz.include index b4337991e42dd..5071ede851a2a 100644 --- a/src/Makefile.test_fuzz.include +++ b/src/Makefile.test_fuzz.include @@ -1,4 +1,4 @@ -# Copyright (c) 2013-2020 The Bitcoin Core developers +# Copyright (c) 2013-2020 The Vincoin Core developers # Distributed under the MIT software license, see the accompanying # file COPYING or http://www.opensource.org/licenses/mit-license.php. diff --git a/src/Makefile.test_util.include b/src/Makefile.test_util.include index 6a1fd712bd1fc..fa08c5cfb5fe1 100644 --- a/src/Makefile.test_util.include +++ b/src/Makefile.test_util.include @@ -1,4 +1,4 @@ -# Copyright (c) 2013-2019 The Bitcoin Core developers +# Copyright (c) 2013-2019 The Vincoin Core developers # Distributed under the MIT software license, see the accompanying # file COPYING or http://www.opensource.org/licenses/mit-license.php. diff --git a/src/addrdb.cpp b/src/addrdb.cpp index fd2a363b8adc4..242611199cc5a 100644 --- a/src/addrdb.cpp +++ b/src/addrdb.cpp @@ -1,10 +1,10 @@ // Copyright (c) 2009-2010 Satoshi Nakamoto -// Copyright (c) 2009-2022 The Bitcoin Core developers +// Copyright (c) 2009-2022 The Vincoin Core developers // Distributed under the MIT software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. #if defined(HAVE_CONFIG_H) -#include +#include #endif #include diff --git a/src/addrdb.h b/src/addrdb.h index cc3014dce29b3..0faff1fe9543c 100644 --- a/src/addrdb.h +++ b/src/addrdb.h @@ -1,5 +1,5 @@ // Copyright (c) 2009-2010 Satoshi Nakamoto -// Copyright (c) 2009-2021 The Bitcoin Core developers +// Copyright (c) 2009-2021 The Vincoin Core developers // Distributed under the MIT software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. diff --git a/src/addresstype.cpp b/src/addresstype.cpp index f199d1b479446..f2dedad582f96 100644 --- a/src/addresstype.cpp +++ b/src/addresstype.cpp @@ -1,4 +1,4 @@ -// Copyright (c) 2023 The Bitcoin Core developers +// Copyright (c) 2023 The Vincoin Core developers // Distributed under the MIT software license, see the accompanying // file COPYING or https://www.opensource.org/licenses/mit-license.php. diff --git a/src/addresstype.h b/src/addresstype.h index 0152858bad2a3..c1076d3d141ce 100644 --- a/src/addresstype.h +++ b/src/addresstype.h @@ -1,4 +1,4 @@ -// Copyright (c) 2023 The Bitcoin Core developers +// Copyright (c) 2023 The Vincoin Core developers // Distributed under the MIT software license, see the accompanying // file COPYING or https://www.opensource.org/licenses/mit-license.php. @@ -126,7 +126,7 @@ struct WitnessUnknown * * WitnessV0KeyHash: TxoutType::WITNESS_V0_KEYHASH destination (P2WPKH address) * * WitnessV1Taproot: TxoutType::WITNESS_V1_TAPROOT destination (P2TR address) * * WitnessUnknown: TxoutType::WITNESS_UNKNOWN destination (P2W??? address) - * A CTxDestination is the internal data type encoded in a bitcoin address + * A CTxDestination is the internal data type encoded in a vincoin address */ using CTxDestination = std::variant; @@ -146,7 +146,7 @@ bool IsValidDestination(const CTxDestination& dest); bool ExtractDestination(const CScript& scriptPubKey, CTxDestination& addressRet); /** - * Generate a Bitcoin scriptPubKey for the given CTxDestination. Returns a P2PKH + * Generate a Vincoin scriptPubKey for the given CTxDestination. Returns a P2PKH * script for a CKeyID destination, a P2SH script for a CScriptID, and an empty * script for CNoDestination. */ diff --git a/src/addrman.cpp b/src/addrman.cpp index ef8ed92bb5310..8bee3e15eab78 100644 --- a/src/addrman.cpp +++ b/src/addrman.cpp @@ -1,10 +1,10 @@ // Copyright (c) 2012 Pieter Wuille -// Copyright (c) 2012-2022 The Bitcoin Core developers +// Copyright (c) 2012-2022 The Vincoin Core developers // Distributed under the MIT software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. #if defined(HAVE_CONFIG_H) -#include +#include #endif #include @@ -141,12 +141,12 @@ void AddrManImpl::Serialize(Stream& s_) const * * format version byte (@see `Format`) * * lowest compatible format version byte. This is used to help old software decide * whether to parse the file. For example: - * * Bitcoin Core version N knows how to parse up to format=3. If a new format=4 is + * * Vincoin Core version N knows how to parse up to format=3. If a new format=4 is * introduced in version N+1 that is compatible with format=3 and it is known that * version N will be able to parse it, then version N+1 will write * (format=4, lowest_compatible=3) in the first two bytes of the file, and so * version N will still try to parse it. - * * Bitcoin Core version N+2 introduces a new incompatible format=5. It will write + * * Vincoin Core version N+2 introduces a new incompatible format=5. It will write * (format=5, lowest_compatible=5) and so any versions that do not know how to parse * format=5 will not try to read the file. * * nKey diff --git a/src/addrman.h b/src/addrman.h index be2ee8c2cbaf5..1ca852da960b1 100644 --- a/src/addrman.h +++ b/src/addrman.h @@ -1,5 +1,5 @@ // Copyright (c) 2012 Pieter Wuille -// Copyright (c) 2012-2022 The Bitcoin Core developers +// Copyright (c) 2012-2022 The Vincoin Core developers // Distributed under the MIT software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. diff --git a/src/addrman_impl.h b/src/addrman_impl.h index 867c894d01ded..b9a518efd8424 100644 --- a/src/addrman_impl.h +++ b/src/addrman_impl.h @@ -1,4 +1,4 @@ -// Copyright (c) 2021-2022 The Bitcoin Core developers +// Copyright (c) 2021-2022 The Vincoin Core developers // Distributed under the MIT software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. diff --git a/src/arith_uint256.cpp b/src/arith_uint256.cpp index 0d5b3d5b0e647..0bea723398228 100644 --- a/src/arith_uint256.cpp +++ b/src/arith_uint256.cpp @@ -1,5 +1,5 @@ // Copyright (c) 2009-2010 Satoshi Nakamoto -// Copyright (c) 2009-2022 The Bitcoin Core developers +// Copyright (c) 2009-2022 The Vincoin Core developers // Distributed under the MIT software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. diff --git a/src/arith_uint256.h b/src/arith_uint256.h index ba36cebbdcc67..18b58b04b86d2 100644 --- a/src/arith_uint256.h +++ b/src/arith_uint256.h @@ -1,5 +1,5 @@ // Copyright (c) 2009-2010 Satoshi Nakamoto -// Copyright (c) 2009-2022 The Bitcoin Core developers +// Copyright (c) 2009-2022 The Vincoin Core developers // Distributed under the MIT software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. @@ -259,7 +259,7 @@ class arith_uint256 : public base_uint<256> { * Thus 0x1234560000 is compact (0x05123456) * and 0xc0de000000 is compact (0x0600c0de) * - * Bitcoin only uses this "compact" format for encoding difficulty + * Vincoin only uses this "compact" format for encoding difficulty * targets, which are unsigned 256bit quantities. Thus, all the * complexities of the sign bit and using base 256 are probably an * implementation accident. diff --git a/src/attributes.h b/src/attributes.h index a4603b0270dfd..4246547c17b26 100644 --- a/src/attributes.h +++ b/src/attributes.h @@ -1,5 +1,5 @@ // Copyright (c) 2009-2010 Satoshi Nakamoto -// Copyright (c) 2009-2020 The Bitcoin Core developers +// Copyright (c) 2009-2020 The Vincoin Core developers // Distributed under the MIT software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. diff --git a/src/banman.cpp b/src/banman.cpp index 9f668d76a311b..6f42ac478849a 100644 --- a/src/banman.cpp +++ b/src/banman.cpp @@ -1,5 +1,5 @@ // Copyright (c) 2009-2010 Satoshi Nakamoto -// Copyright (c) 2009-2022 The Bitcoin Core developers +// Copyright (c) 2009-2022 The Vincoin Core developers // Distributed under the MIT software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. diff --git a/src/banman.h b/src/banman.h index c6df7ec3c3d6b..1df07661e1af0 100644 --- a/src/banman.h +++ b/src/banman.h @@ -1,5 +1,5 @@ // Copyright (c) 2009-2010 Satoshi Nakamoto -// Copyright (c) 2009-2022 The Bitcoin Core developers +// Copyright (c) 2009-2022 The Vincoin Core developers // Distributed under the MIT software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. #ifndef BITCOIN_BANMAN_H diff --git a/src/base58.cpp b/src/base58.cpp index cf5d62f164f3d..185df58c8e6ae 100644 --- a/src/base58.cpp +++ b/src/base58.cpp @@ -1,4 +1,4 @@ -// Copyright (c) 2014-2022 The Bitcoin Core developers +// Copyright (c) 2014-2022 The Vincoin Core developers // Distributed under the MIT software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. diff --git a/src/base58.h b/src/base58.h index 2f4d0b74b1b32..6422a2ed5b54f 100644 --- a/src/base58.h +++ b/src/base58.h @@ -1,5 +1,5 @@ // Copyright (c) 2009-2010 Satoshi Nakamoto -// Copyright (c) 2009-2022 The Bitcoin Core developers +// Copyright (c) 2009-2022 The Vincoin Core developers // Distributed under the MIT software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. diff --git a/src/bech32.cpp b/src/bech32.cpp index ba3c419d8b686..a7f3f34a2c906 100644 --- a/src/bech32.cpp +++ b/src/bech32.cpp @@ -1,5 +1,5 @@ // Copyright (c) 2017, 2021 Pieter Wuille -// Copyright (c) 2021-2022 The Bitcoin Core developers +// Copyright (c) 2021-2022 The Vincoin Core developers // Distributed under the MIT software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. diff --git a/src/bech32.h b/src/bech32.h index 5e89e6efdaa94..488e503e26d64 100644 --- a/src/bech32.h +++ b/src/bech32.h @@ -1,5 +1,5 @@ // Copyright (c) 2017, 2021 Pieter Wuille -// Copyright (c) 2021 The Bitcoin Core developers +// Copyright (c) 2021 The Vincoin Core developers // Distributed under the MIT software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. diff --git a/src/bench/.gitignore b/src/bench/.gitignore index e231fe4cab5cb..8e86f76bed8f0 100644 --- a/src/bench/.gitignore +++ b/src/bench/.gitignore @@ -1 +1 @@ -bench_bitcoin +bench_vincoin diff --git a/src/bench/addrman.cpp b/src/bench/addrman.cpp index f044feebba68a..772766b2fdb8b 100644 --- a/src/bench/addrman.cpp +++ b/src/bench/addrman.cpp @@ -1,4 +1,4 @@ -// Copyright (c) 2020-2022 The Bitcoin Core developers +// Copyright (c) 2020-2022 The Vincoin Core developers // Distributed under the MIT software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. diff --git a/src/bench/base58.cpp b/src/bench/base58.cpp index 78748bc5bde5c..b5aa600140064 100644 --- a/src/bench/base58.cpp +++ b/src/bench/base58.cpp @@ -1,4 +1,4 @@ -// Copyright (c) 2016-2022 The Bitcoin Core developers +// Copyright (c) 2016-2022 The Vincoin Core developers // Distributed under the MIT software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. diff --git a/src/bench/bech32.cpp b/src/bench/bech32.cpp index 9922653766fdb..8606105dbebf2 100644 --- a/src/bench/bech32.cpp +++ b/src/bench/bech32.cpp @@ -1,4 +1,4 @@ -// Copyright (c) 2018-2022 The Bitcoin Core developers +// Copyright (c) 2018-2022 The Vincoin Core developers // Distributed under the MIT software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. diff --git a/src/bench/bench.cpp b/src/bench/bench.cpp index 84b66bc4b2228..14f21b5da40cd 100644 --- a/src/bench/bench.cpp +++ b/src/bench/bench.cpp @@ -1,4 +1,4 @@ -// Copyright (c) 2015-2022 The Bitcoin Core developers +// Copyright (c) 2015-2022 The Vincoin Core developers // Distributed under the MIT software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. diff --git a/src/bench/bench.h b/src/bench/bench.h index 6065ddf3fc913..8b361d7758563 100644 --- a/src/bench/bench.h +++ b/src/bench/bench.h @@ -1,4 +1,4 @@ -// Copyright (c) 2015-2022 The Bitcoin Core developers +// Copyright (c) 2015-2022 The Vincoin Core developers // Distributed under the MIT software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. diff --git a/src/bench/bench_vincoin.cpp b/src/bench/bench_vincoin.cpp index 8c421c3fec6e3..a2b7717ff7d3f 100644 --- a/src/bench/bench_vincoin.cpp +++ b/src/bench/bench_vincoin.cpp @@ -1,4 +1,4 @@ -// Copyright (c) 2015-2022 The Bitcoin Core developers +// Copyright (c) 2015-2022 The Vincoin Core developers // Distributed under the MIT software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. @@ -69,12 +69,12 @@ int main(int argc, char** argv) } if (HelpRequested(argsman)) { - std::cout << "Usage: bench_bitcoin [options]\n" + std::cout << "Usage: bench_vincoin [options]\n" "\n" << argsman.GetHelpMessage() << "Description:\n" "\n" - " bench_bitcoin executes microbenchmarks. The quality of the benchmark results\n" + " bench_vincoin executes microbenchmarks. The quality of the benchmark results\n" " highly depend on the stability of the machine. It can sometimes be difficult\n" " to get stable, repeatable results, so here are a few tips:\n" "\n" @@ -88,7 +88,7 @@ int main(int argc, char** argv) " * If results are still not reliable, increase runtime with e.g.\n" " -min-time=5000 to let a benchmark run for at least 5 seconds.\n" "\n" - " * bench_bitcoin uses nanobench [3] for which there is extensive\n" + " * bench_vincoin uses nanobench [3] for which there is extensive\n" " documentation available online.\n" "\n" "Environment Variables:\n" @@ -96,12 +96,12 @@ int main(int argc, char** argv) " To attach a profiler you can run a benchmark in endless mode. This can be\n" " done with the environment variable NANOBENCH_ENDLESS. E.g. like so:\n" "\n" - " NANOBENCH_ENDLESS=MuHash ./bench_bitcoin -filter=MuHash\n" + " NANOBENCH_ENDLESS=MuHash ./bench_vincoin -filter=MuHash\n" "\n" " In rare cases it can be useful to suppress stability warnings. This can be\n" " done with the environment variable NANOBENCH_SUPPRESS_WARNINGS, e.g:\n" "\n" - " NANOBENCH_SUPPRESS_WARNINGS=1 ./bench_bitcoin\n" + " NANOBENCH_SUPPRESS_WARNINGS=1 ./bench_vincoin\n" "\n" "Notes:\n" "\n" diff --git a/src/bench/bip324_ecdh.cpp b/src/bench/bip324_ecdh.cpp index 659da0f08e602..835560a9b91e1 100644 --- a/src/bench/bip324_ecdh.cpp +++ b/src/bench/bip324_ecdh.cpp @@ -1,4 +1,4 @@ -// Copyright (c) 2022 The Bitcoin Core developers +// Copyright (c) 2022 The Vincoin Core developers // Distributed under the MIT software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. diff --git a/src/bench/block_assemble.cpp b/src/bench/block_assemble.cpp index ba8ec16119aa3..01b75c052f112 100644 --- a/src/bench/block_assemble.cpp +++ b/src/bench/block_assemble.cpp @@ -1,4 +1,4 @@ -// Copyright (c) 2011-2022 The Bitcoin Core developers +// Copyright (c) 2011-2022 The Vincoin Core developers // Distributed under the MIT software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. diff --git a/src/bench/ccoins_caching.cpp b/src/bench/ccoins_caching.cpp index 4a3ec67c2b818..e1488be30b736 100644 --- a/src/bench/ccoins_caching.cpp +++ b/src/bench/ccoins_caching.cpp @@ -1,4 +1,4 @@ -// Copyright (c) 2016-2022 The Bitcoin Core developers +// Copyright (c) 2016-2022 The Vincoin Core developers // Distributed under the MIT software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. @@ -15,7 +15,7 @@ // many times micro-benchmarks of the database showed completely different // characteristics than e.g. reindex timings. But that's not a requirement of // every benchmark." -// (https://github.com/bitcoin/bitcoin/issues/7883#issuecomment-224807484) +// (https://github.com/vincoin/vincoin/issues/7883#issuecomment-224807484) static void CCoinsCaching(benchmark::Bench& bench) { ECC_Start(); diff --git a/src/bench/chacha20.cpp b/src/bench/chacha20.cpp index e0bb07d8be362..2c6c3ba75967f 100644 --- a/src/bench/chacha20.cpp +++ b/src/bench/chacha20.cpp @@ -1,4 +1,4 @@ -// Copyright (c) 2019-2022 The Bitcoin Core developers +// Copyright (c) 2019-2022 The Vincoin Core developers // Distributed under the MIT software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. diff --git a/src/bench/checkblock.cpp b/src/bench/checkblock.cpp index b81878006cdcc..cfb27cab46fa8 100644 --- a/src/bench/checkblock.cpp +++ b/src/bench/checkblock.cpp @@ -1,4 +1,4 @@ -// Copyright (c) 2016-2022 The Bitcoin Core developers +// Copyright (c) 2016-2022 The Vincoin Core developers // Distributed under the MIT software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. diff --git a/src/bench/checkqueue.cpp b/src/bench/checkqueue.cpp index 114dd9d39c86a..adfd6dc1fdbbb 100644 --- a/src/bench/checkqueue.cpp +++ b/src/bench/checkqueue.cpp @@ -1,4 +1,4 @@ -// Copyright (c) 2015-2022 The Bitcoin Core developers +// Copyright (c) 2015-2022 The Vincoin Core developers // Distributed under the MIT software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. diff --git a/src/bench/coin_selection.cpp b/src/bench/coin_selection.cpp index 249b76ee85133..6e0bac9d2f492 100644 --- a/src/bench/coin_selection.cpp +++ b/src/bench/coin_selection.cpp @@ -1,4 +1,4 @@ -// Copyright (c) 2012-2022 The Bitcoin Core developers +// Copyright (c) 2012-2022 The Vincoin Core developers // Distributed under the MIT software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. @@ -42,7 +42,7 @@ static void addCoin(const CAmount& nValue, const CWallet& wallet, std::vector +#include #endif #include #include #if defined(HAVE_CONSENSUS_LIB) -#include