bitcoin/doc
Ava Chow 63d0b930f8
Merge bitcoin/bitcoin#29845: rpc: return warnings as an array instead of just a single one
42fb5311b1 rpc: return warnings as an array instead of just a single one (stickies-v)

Pull request description:

  The RPC documentation for `getblockchaininfo`, `getmininginfo` and `getnetworkinfo` states that "warnings" returns "any network and blockchain warnings". In practice, only a single warning (i.e. the latest one that is set) is returned, the other ones are ignored.

  Fix that by returning all warnings as an array.

  As a side benefit, clean up the GetWarnings() logic.

  Since this PR changes the RPC result schema, I've added release notes. Users can temporarily revert to the old results by using `-deprecatedrpc=warnings`, until it's removed in a future version.

  ---

  Some historical context from git log:

  - when `GetWarnings` was introduced in 401926283a, it was used in the `getinfo` RPC, where only a [single error/warning was returned](401926283a (diff-7442c48d42cd5455a79915a0f00cce5e13359db46437a32b812876edb0a5ccddR250)) (similar to how it is now).
  - later on, "warnings" RPC response fields were introduced, e.g. in ef2a3de25c, with the description [stating](ef2a3de25c (diff-1021bd3c74415ad9719bd764ad6ca35af5dfb33b1cd863c0be49bdf52518af54R411)) that it returned "any network warnings" but in practice still only a single warning was returned

ACKs for top commit:
  achow101:
    re-ACK 42fb5311b1
  tdb3:
    Re ACK for 42fb5311b1
  TheCharlatan:
    ACK 42fb5311b1
  maflcko:
    ACK 42fb5311b1 🔺

Tree-SHA512: 4225ed8979cd5f030dec785a80e7452a041ad5703445da79d2906ada983ed0bbe7b15889d663d75aae4a77d92e302c93e93eca185c7bd47c9cce29e12f752bd3
2024-05-06 12:24:09 -04:00
..
design Merge bitcoin/bitcoin#29648: Remove libbitcoinconsensus 2024-04-01 17:53:31 +02:00
man scripted-diff: Fix typo in stub manual pages 2021-01-12 16:46:55 +01:00
policy [doc] fix docs and comments from v3 2024-02-12 14:27:25 +00:00
release-notes doc: archive 27.0 release notes 2024-04-16 09:10:33 +01:00
.gitignore
Doxyfile.in Generate doxygen documentation for test sources 2021-05-19 22:08:18 -07:00
JSON-RPC-interface.md Update JSON-RPC-interface.md 2023-08-17 13:46:18 +01:00
README.md remove libbitcoinconsensus 2024-03-18 16:59:39 +00:00
README_doxygen.md doc: Improve doxygen readme navigation section 2019-09-23 19:22:06 -04:00
README_windows.txt
REST-interface.md Merge bitcoin/bitcoin#26207: rest: add verbose and mempool_sequence query params for mempool/contents 2023-03-15 19:39:30 -04:00
assets-attribution.md
benchmarking.md doc: update doc/benchmarking.md 2021-06-24 11:15:29 +02:00
bips.md doc: document that BIP324 on by default for v27.0 2024-02-19 15:37:59 +00:00
bitcoin-conf.md Security config warning 2022-08-19 23:18:13 -04:00
bitcoin_logo_doxygen.png
build-android.md build, qt: Use Android NDK r23 LTS 2021-12-05 03:00:02 +02:00
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 for NetBSD 9.2, add GUI Build Instructions 2022-07-06 21:27:05 -04: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 doc: remove mingw-w64 install for "older" systems 2023-11-17 10:57:51 +00:00
cjdns.md doc: update getnodeaddresses for CJDNS, I2P and Tor and rm link 2023-06-01 15:52:51 +02:00
dependencies.md depends: miniupnpc 2.2.7 2024-04-30 10:07:19 +08: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 [clang-tidy] Enable the misc-no-recursion check 2024-04-07 14:04:45 +01:00
dnsseed-policy.md Update the developer mailing list address. 2024-04-02 15:38:40 -03:00
external-signer.md wallet: compare address returned by displayaddress 2024-04-16 17:47:43 +02:00
files.md Ignore banlist.dat 2021-07-30 11:21:51 +02:00
fuzzing.md doc: remove references to disable-asm option now that it's gone 2024-02-29 19:10:31 +00:00
guix.md docs: Point to contrib/guix/README.md in doc/guix.md 2021-01-08 11:40:01 -05:00
i2p.md doc: i2p: improve `-i2pacceptincoming` mention 2024-04-04 18:32:39 -03:00
init.md Remove `-sysperms` option 2023-02-05 08:09:16 +00:00
managing-wallets.md doc: explain what the wallet password does 2024-04-22 18:07:23 +03:00
multiprocess.md doc: Add multiprocess design doc 2023-12-22 16:23:33 -05:00
multisig-tutorial.md doc: update multisig-tutorial.md to default wallet type 2022-03-10 12:50:34 +01:00
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 init, doc: improve -onlynet help and tor/i2p documentation 2022-03-03 16:14:01 +01:00
productivity.md doc: add distcc to productivity notes 2022-06-13 16:13:11 +02:00
psbt.md doc: M-of-N multisig using descriptor wallets and PSBTs, as well as a signing flow 2021-08-16 10:43:07 +05:00
reduce-memory.md doc: Be vague instead of wrong about MALLOC_ARENA_MAX 2023-09-20 17:12:24 +00:00
reduce-traffic.md doc: update/clarify max outbound connection count 2023-12-11 20:05:25 +01:00
release-notes-27114.md docs: add release notes for #27114 2024-02-28 10:05:56 -03:00
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-29845.md rpc: return warnings as an array instead of just a single one 2024-05-01 14:44:57 +01:00
release-notes-empty-template.md doc: add minimum required Linux Kernel to release-notes 2023-12-07 13:53:41 +00:00
release-process.md [doc] update release-process.md and backports section of CONTRIBUTING 2024-04-18 17:07:57 +01:00
tor.md Merge bitcoin/bitcoin#27719: doc: remove Tor link & generalize onion getnodeaddresses RPC 2023-06-01 15:24:23 +01:00
tracing.md Use `int32_t` type for most transaction size/weight values 2023-06-12 19:47:19 +01:00
translation_process.md doc: Update translation_process.md 2024-02-14 21:39:39 -03:00
translation_strings_policy.md doc: Do not translate technical or extremely rare errors 2020-05-05 04:46:08 +03:00
zmq.md validationinterface: only send zmq notifications for active 2023-09-30 06:38:47 -04:00

README.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.