bitcoin/doc
Andrew Chow eed2bd37ef
Merge bitcoin/bitcoin#25355: I2P: add support for transient addresses for outbound connections
59aa54f731 i2p: log "SAM session" instead of "session" (Vasil Dimov)
d7ec30b648 doc: add release notes about the I2P transient addresses (Vasil Dimov)
47c0d02f12 doc: document I2P transient addresses usage in doc/i2p.md (Vasil Dimov)
3914e472f5 test: add a test that -i2pacceptincoming=0 creates a transient session (Vasil Dimov)
ae1e97ce86 net: use transient I2P session for outbound if -i2pacceptincoming=0 (Vasil Dimov)
a1580a04f5 net: store an optional I2P session in CNode (Vasil Dimov)
2b781ad66e i2p: add support for creating transient sessions (Vasil Dimov)

Pull request description:

  Add support for generating a transient, one-time I2P address for ourselves when making I2P outbound connection and discard it once the connection is closed.

  Background
  ---
  In I2P connections, the host that receives the connection knows the I2P address of the connection initiator. This is unlike the Tor network where the recipient does not know who is connecting to them, not even the initiator's Tor address.

  Persistent vs transient I2P addresses
  ---
  Even if an I2P node is not accepting incoming connections, they are known to other nodes by their outgoing I2P address. This creates an opportunity to white-list given nodes or treat them differently based on their I2P address. However, this also creates an opportunity to fingerprint or analyze a given node because it always uses the same I2P address when it connects to other nodes. If this is undesirable, then a node operator can use the newly introduced `-i2ptransientout` to generate a transient (disposable), one-time I2P address for each new outgoing connection. That address is never going to be reused again, not even if reconnecting to the same peer later.

ACKs for top commit:
  mzumsande:
    ACK 59aa54f731 (verified via range-diff that just a typo / `unique_ptr` initialisation were fixed)
  achow101:
    re-ACK 59aa54f731
  jonatack:
    utACK 59aa54f731 reviewed range diff, rebased to master, debug build + relevant tests + review at each commit

Tree-SHA512: 2be9b9dd7502b2d44a75e095aaece61700766bff9af0a2846c29ca4e152b0a92bdfa30f61e8e32b6edb1225f74f1a78d19b7bf069f00b8f8173e69705414a93e
2022-08-26 16:33:58 -04:00
..
design Add doc/design/libraries.md 2022-02-15 09:29:53 -05:00
man
policy [doc] remove non-signaling mentions of BIP125 2022-08-04 16:56:33 +01:00
release-notes doc: Add a release note about the "restore wallet" menu item 2022-07-01 10:16:42 -03:00
.gitignore
assets-attribution.md
benchmarking.md
bips.md doc: Mention missing BIP157 in bips.md 2022-02-22 18:16:43 +01:00
bitcoin_logo_doxygen.png
bitcoin-conf.md Security config warning 2022-08-19 23:18:13 -04:00
build-android.md build, qt: Use Android NDK r23 LTS 2021-12-05 03:00:02 +02:00
build-freebsd.md doc: mention that BDB is for the legacy wallet in build-freebsd.md 2022-03-23 15:35:29 +00: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: Fix command in "OpenBSD Build Guide" 2022-06-07 23:04:20 +02:00
build-osx.md Merge bitcoin/bitcoin#24585: doc: mention that BDB is for the legacy wallet in build-osx.md 2022-03-17 21:13:39 +01:00
build-unix.md doc: remove note on arm cross-compilation from build-unix.md 2022-07-05 14:09:36 -04:00
build-windows.md doc: Install only "-posix" MinGW compiler when possible 2022-02-02 19:29:01 +02:00
cjdns.md Add and improve informational links in doc/cjdns.md 2022-04-01 16:11:14 +02:00
dependencies.md build: Bump Qt to 5.15.5 in depends 2022-07-30 15:44:20 +01:00
descriptors.md doc: add {import,list}descriptors to list of descriptor RPCs 2022-08-25 00:04:01 +02:00
developer-notes.md doc: update the URLs to thread functions in developer-notes 2022-07-11 09:56:24 +02:00
dnsseed-policy.md
Doxyfile.in
external-signer.md
files.md
fuzzing.md fuzz: parse the command line arguments in fuzz tests 2022-01-11 11:53:34 +01:00
guix.md
i2p.md doc: document I2P transient addresses usage in doc/i2p.md 2022-08-16 13:02:19 +02:00
init.md
JSON-RPC-interface.md
managing-wallets.md Update doc to match new default wallet type 2022-02-09 07:38:48 +00:00
multisig-tutorial.md doc: update multisig-tutorial.md to default wallet type 2022-03-10 12:50:34 +01: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
README_doxygen.md
README_windows.txt
README.md Merge bitcoin/bitcoin#24352: Add doc/design/libraries.md 2022-06-22 07:13:17 +02:00
reduce-memory.md
reduce-traffic.md
release-notes-15936.md Add release notes about unified bitcoin-qt and bitcoind persistent settings 2022-05-26 11:05:10 -04:00
release-notes-24098.md Add release notes 2022-04-05 13:19:37 -04:00
release-notes-24118.md Add sendall RPC née sweep 2022-03-29 16:37:47 -04:00
release-notes-24148.md Release notes for Miniscript support in P2WSH descriptors 2022-07-15 14:20:26 +02:00
release-notes-24198.md doc: add wtxid info in release-notes 2022-02-09 21:15:19 -03:00
release-notes-24494.md [doc] release notes for random change target 2022-03-25 11:57:51 +00:00
release-notes-25355.md doc: add release notes about the I2P transient addresses 2022-08-16 13:02:20 +02:00
release-notes-25504.md doc: add releases notes for 25504 (listsinceblock updates) 2022-08-16 18:33:12 +02:00
release-notes-25610.md doc: Release notes for default RBF 2022-07-15 11:46:35 -04:00
release-notes-empty-template.md doc: Add template for empty release notes 2022-03-17 14:15:07 +01:00
release-notes.md Address comments remaining from #25353 2022-07-11 18:48:26 -04:00
release-process.md Merge bitcoin/bitcoin#24424: doc: release process chainparams updates 2022-05-30 15:55:12 +02:00
REST-interface.md doc: add reference to getrawmempool RPC in /mempool/contents REST doc 2022-04-20 18:12:39 -03:00
shared-libraries.md
tor.md doc: update tor.md with cjdns and getnodeaddresses, fix tor grep, 2022-03-22 12:54:21 +01:00
tracing.md doc: document coin selection tracepoints 2022-04-21 11:11:02 -04:00
translation_process.md
translation_strings_policy.md
zmq.md Update zmq.md: Fix parameter in hwm example block 2022-05-25 23:49:15 +02: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.