0
0
Fork 0
mirror of https://github.com/bitcoin/bitcoin.git synced 2025-03-05 14:06:27 -05:00
bitcoin-core/doc
merge-script 5ee6b76c69
Merge bitcoin/bitcoin#29325: consensus: Store transaction nVersion as uint32_t
429ec1aaaa refactor: Rename CTransaction::nVersion to version (Ava Chow)
27e70f1f5b consensus: Store transaction nVersion as uint32_t (Ava Chow)

Pull request description:

  Given that the use of a transaction's nVersion is always as an unsigned int, it doesn't make sense to store it as signed and then cast it to unsigned everywhere it is used and displayed.

  Since a few alternative implementations have recently been revealed to have made an error with this signedness that would have resulted in consensus failure, I think it makes sense for us to just make this always unsigned to make it clear that the version is treated as unsigned. This would also help us avoid future potential issues with signedness of this value.

  I believe that this is safe and does not actually change what transactions would or would not be considered both standard and consensus valid. Within consensus, the only use of the version in consensus is in BIP68 validation which was already casting it to uint32_t. Within policy, although it is used as a signed int for the transaction version number check, I do not think that this change would change standardness. Standard transactions are limited to the range [1, 2]. Negative numbers would have fallen under the < 1 condition, but by making it unsigned, they are still non-standard under the > 2 condition.

  Unsigned and signed ints are serialized and unserialized the same way so there is no change in serialization.

ACKs for top commit:
  maflcko:
    ACK 429ec1aaaa 🐿
  glozow:
    ACK 429ec1aaaa
  shaavan:
    ACK 429ec1aaaa 💯

Tree-SHA512: 0bcd92a245d7d16c3665d2d4e815a4ef28207ad4a1fb46c6f0203cdafeab1b82c4e95e4bdce7805d80a4f4a46074f6542abad708e970550d38a00d759e3dcef1
2024-06-12 10:32:31 +01:00
..
design doc: fix broken relative md links 2024-05-03 16:07:12 +01:00
man
policy refactor: Rename CTransaction::nVersion to version 2024-06-07 13:55:23 -04:00
release-notes doc: add release-notes-27064.md 2024-04-30 11:03:46 -04:00
.gitignore
assets-attribution.md
benchmarking.md
bips.md [doc] update bips.md for 431 2024-06-02 20:21:56 +02:00
bitcoin-conf.md system: use %LOCALAPPDATA% as default datadir on windows 2024-04-30 11:03:04 -04:00
bitcoin_logo_doxygen.png
build-freebsd.md doc: suggest only necessary Qt packages for installation on FreeBSD 2024-04-24 14:14:18 +02:00
build-netbsd.md doc: Update NetBSD Build Guide 2024-05-20 12:59:15 +01:00
build-openbsd.md doc: Suggest only necessary Qt packages for installation on OpenBSD 2024-04-24 09:17:48 +01:00
build-osx.md doc: add LLVM instruction for macOS < 13 2024-04-29 10:33:21 +02:00
build-unix.md Merge bitcoin/bitcoin#29756: doc: Override -g properly to skip debugging information 2024-04-01 16:54:44 +02:00
build-windows.md
cjdns.md
dependencies.md doc: fixup deps doc after #30198 2024-06-05 10:08:35 +01:00
descriptors.md doc: Add example of mixing private and public keys in descriptors 2024-03-15 16:28:43 +03:00
developer-notes.md build: Remove --enable-gprof 2024-06-09 22:45:29 +02:00
dnsseed-policy.md Update the developer mailing list address. 2024-04-02 15:38:40 -03:00
Doxyfile.in
external-signer.md wallet: compare address returned by displayaddress 2024-04-16 17:47:43 +02:00
files.md system: use %LOCALAPPDATA% as default datadir on windows 2024-04-30 11:03:04 -04:00
fuzzing.md
guix.md
i2p.md doc: i2p: improve -i2pacceptincoming mention 2024-04-04 18:32:39 -03:00
init.md Link to gen-bitcoin-conf.sh instead of bitcoin.conf placeholder 2024-05-23 19:14:06 -04:00
JSON-RPC-interface.md minor: remove unnecessary semicolons from RPC content type examples 2024-06-07 10:47:24 -04:00
managing-wallets.md Merge bitcoin/bitcoin#27064: system: use %LOCALAPPDATA% as default datadir on windows 2024-05-23 12:11:55 -04:00
multiprocess.md
multisig-tutorial.md
offline-signing-tutorial.md doc: update signet faucet link in offline-signing-tutorial.md 2024-03-04 00:14:29 +07:00
p2p-bad-ports.md
productivity.md
psbt.md
README.md build, test, doc: Temporarily remove Android-related stuff 2024-05-06 11:29:14 +01:00
README_doxygen.md
README_windows.txt
reduce-memory.md
reduce-traffic.md
release-notes-27101.md doc: update and link for JSON-RPC 2.0 2024-06-07 09:26:50 -04:00
release-notes-27114.md
release-notes-27375.md doc: add release notes and help text for unix sockets 2024-03-01 14:47:29 -05:00
release-notes-27679.md doc: release notes for PR 27679 2024-04-16 14:14:42 -04:00
release-notes-29091-29165.md doc: add release note for 29091 and 29165 2024-06-10 14:25:08 +01:00
release-notes-29612.md doc: Add release notes for #29612 2024-05-24 12:42:06 +02:00
release-notes-29845.md rpc: return warnings as an array instead of just a single one 2024-05-01 14:44:57 +01:00
release-notes-30192.md build: remove --enable-lcov-branch-coverage 2024-05-30 10:36:55 +01:00
release-notes-empty-template.md
release-process.md [doc] update release-process.md and backports section of CONTRIBUTING 2024-04-18 17:07:57 +01:00
REST-interface.md
tor.md
tracing.md
translation_process.md
translation_strings_policy.md
zmq.md

Bitcoin Core

Setup

Bitcoin Core is the original Bitcoin client and it builds the backbone of the network. It downloads and, by default, stores the entire history of Bitcoin transactions, which requires a few hundred gigabytes of disk space. Depending on the speed of your computer and network connection, the synchronization process can take anywhere from a few hours to a day or more.

To download Bitcoin Core, visit bitcoincore.org.

Running

The following are some helpful notes on how to run Bitcoin Core on your native platform.

Unix

Unpack the files into a directory and run:

  • bin/bitcoin-qt (GUI) or
  • bin/bitcoind (headless)

Windows

Unpack the files into a directory, and then run bitcoin-qt.exe.

macOS

Drag Bitcoin Core to your applications folder, and then run Bitcoin Core.

Need Help?

Building

The following are developer notes on how to build Bitcoin Core on your native platform. They are not complete guides, but include notes on the necessary libraries, compile flags, etc.

Development

The Bitcoin repo's root README contains relevant information on the development process and automated testing.

Resources

Miscellaneous

License

Distributed under the MIT software license.