0
0
Fork 0
mirror of https://github.com/bitcoin/bitcoin.git synced 2025-03-06 14:19:59 -05:00
bitcoin-core/doc
Ava Chow 7ff8e6b240
Merge bitcoin/bitcoin#28318: logging: Simplify API for level based logging
e60fc7d5d3 logging: Replace uses of LogPrintfCategory (Anthony Towns)
f7ce5ac08c logging: add LogError, LogWarning, LogInfo, LogDebug, LogTrace (Anthony Towns)
fbd7642c8e logging: add -loglevelalways=1 option (Anthony Towns)
782bb6a056 logging: treat BCLog::ALL like BCLog::NONE (Anthony Towns)
667ce3e329 logging: Drop BCLog::Level::None (Anthony Towns)
ab34dc6012 logging: Log Info messages unconditionally (Anthony Towns)
dfe98b6874 logging: make [cat:debug] and [info] implicit (Anthony Towns)
c5c76dc615 logging: refactor: pull prefix code out (Anthony Towns)

Pull request description:

  Replace `LogPrint*` functions with severity based logging functions:

   * `LogInfo(...)`, `LogWarning(...)`, `LogError(...)` for unconditional (uncategorised) logging (replaces `LogPrintf`)
   * `LogDebug(CATEGORY, ...)` and `LogTrace(CATEGORY, ...)` for conditional logging (replaces `LogPrint`)
   * `LogPrintLevel(CATEGORY, LEVEL, ...)` for when the level isn't known in advance, or a category needs to be added for an info/warning/error log message (mostly unchanged, but rarely needed)

  Logs look roughly as they do now with `LogInfo` not having an `[info]` prefix, and `LogDebug` having a `[cat]` prefix, rather than a `[cat:debug]` prefix. This removes `BCLog::Level::None` entirely -- for `LogFlags::NONE` just use `Level::Info`, for any actual category, use `Level::Debug`.

  Adds docs to developer-notes about when to use which level.

  Adds `-loglevelalways=1` option so that you get `[net:debug]`, `[all:info]`, `[all:warning]` etc, which might be helpful for automated parsing, or just if you like everything to be consistent. Defaults to off to reduce noise in the default config, and to avoid unnecessary changes on upgrades.

  Changes the behaviour of `LogPrintLevel(CATEGORY, BCLog::Level::Info, ...)` to be logged unconditionally, rather than only being an additional optional logging level in addition to trace and debug. Does not change the behaviour of `LogPrintLevel(NONE, Debug, ...)` and `LogPrintLevel(NONE, Trace, ...)` being no-ops.

ACKs for top commit:
  maflcko:
    re-ACK e60fc7d5d3 🌚
  achow101:
    ACK e60fc7d5d3
  stickies-v:
    ACK e60fc7d5d3
  jamesob:
    ACK e60fc7d5d3 ([`jamesob/ackr/28318.1.ajtowns.logging_simplify_api_for`](https://github.com/jamesob/bitcoin/tree/ackr/28318.1.ajtowns.logging_simplify_api_for))

Tree-SHA512: e7a4588779b148242495b7b6f64198a00c314cd57100affab11c43e9d39c9bbf85118ee2002792087fdcffdea08c84576e20844b3079f27083e26ddd7ca15d7f
2024-01-10 14:11:32 -05:00
..
design doc: Add multiprocess design doc 2023-12-22 16:23:33 -05:00
man
policy typo: in packages.md 2023-10-03 11:22:46 -07:00
release-notes doc: Missing additions to 26.0 release notes 2023-12-07 15:35:44 +00:00
.gitignore
assets-attribution.md
benchmarking.md
bips.md doc: mention BIP324 support in bips.md 2023-10-02 18:11:11 -04:00
bitcoin-conf.md
bitcoin_logo_doxygen.png
build-android.md
build-freebsd.md
build-netbsd.md
build-openbsd.md doc: update OpenBSD build docs for 7.3 (external signer support available) 2023-04-11 22:59:08 +02:00
build-osx.md doc: remove mention of missing bdb being a configure error 2023-11-15 13:34:50 +00:00
build-unix.md doc: remove Fedora libdb4-*-devel install docs 2023-08-07 14:48:35 +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 build: Bump minimum required Boost to 1.73.0 to support C++20 2023-12-12 19:59:52 +00:00
descriptors.md
developer-notes.md Merge bitcoin/bitcoin#28318: logging: Simplify API for level based logging 2024-01-10 14:11:32 -05:00
dnsseed-policy.md
Doxyfile.in
external-signer.md
files.md
fuzzing.md docs: fixup honggfuzz patch 2023-07-03 11:00:57 +01:00
guix.md
i2p.md doc: simplify the router options in doc/i2p.md 2023-06-27 10:26:57 -06:00
init.md
JSON-RPC-interface.md Update JSON-RPC-interface.md 2023-08-17 13:46:18 +01:00
managing-wallets.md
multiprocess.md doc: Add multiprocess design doc 2023-12-22 16:23:33 -05:00
multisig-tutorial.md
offline-signing-tutorial.md Add offline signing tutorial 2023-10-27 12:32:48 +03:00
p2p-bad-ports.md
productivity.md
psbt.md
README.md Add offline signing tutorial 2023-10-27 12:32:48 +03:00
README_doxygen.md
README_windows.txt
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-28207.md mempool: persist with XOR 2023-11-09 19:44:50 +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: Add link to needs-release-notes label 2023-12-07 15:56:39 +01:00
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
shared-libraries.md docs: add docs for additional libconsensus functions 2023-10-13 08:55:12 -03: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
translation_strings_policy.md
zmq.md validationinterface: only send zmq notifications for active 2023-09-30 06:38:47 -04:00

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.