Skip to main content
Share Your Experience: Take the 2024 Developer Survey
36 votes
Accepted

How can I setup Bitcoin to be anonymous with Tor?

This is not a thorough schooling on Tor and only shows how to configure it to work together with Bitcoin Core. Bitcoin Core includes Tor integration When Tor is correctly setup on your system, Bitcoin ...
Willtech's user avatar
  • 3,279
29 votes
Accepted

How are bitcoin transactions and the blockchain transferred over the internet?

The Bitcoin P2P network The Bitcoin P2P network is a randomly-wired gossip network. This means that all nodes make arbitrary connections to other peers (using various ways to discover new addresses) ...
Pieter Wuille's user avatar
26 votes
Accepted

Can someone please explain FIBRE to me like I'm 5 and why is it useful?

First the "why it matters": Fibre (Fast Internet Bitcoin Relay Engine) is a protocol which attempts to deliver Bitcoin blocks around the world with delays as close to the physical limits as ...
G. Maxwell's user avatar
  • 7,727
16 votes
Accepted

Bitcoin protocol and Wireshark

Someone wrote a Bitcoin protocol decoder for Wireshark, several years ago. I assume it was included in the Wireshark distribution. Wireshark simply knows about the Bitcoin protocol. There is no magic ...
Pieter Wuille's user avatar
12 votes
Accepted

Are there any Bitcoin wallets with native I2P integration?

C++ may be viewed by some as more suitable for Bitcoin use than Java which I2P currently heavily relies upon https://github.com/monero-project/kovri Kovri: To cover, veil, wrap (Esperanto). A ...
Imagin Ation's user avatar
12 votes
Accepted

Why is each transaction broadcast twice in the Bitcoin network?

I assume Satoshi here refers to the broadcast of the standalone transaction to the network as the first one, and the broadcast of a valid block containing the transaction as the second one. Compact ...
Antoine Poinsot's user avatar
11 votes

What is a Feeler Connection? When is it used?

A feeler connection is a short-lived outbound connection that only starts up after your node has established the required 8 outbound connections and 2 block-relay-only outbound connections. The ...
vnprc's user avatar
  • 405
10 votes
Accepted

Why is connecting bitcoin exclusively over Tor considered bad practice?

There is a good summary of this problem on the BIP324 website: Proxy networks like Tor or I2P introduce a separate address space, independent from network topology, with a very low cost per address ...
Vojtěch Strnad's user avatar
10 votes

Why is connecting bitcoin exclusively over Tor considered bad practice?

Connecting to the bitcoin network over TOR to make transactions as an user is a good practice (this is important to mention in case casual users misunderstand your question). Running a full bitcoin ...
bitcoiner2680's user avatar
9 votes
Accepted

Improvements that could be made to how bitcoin propagates its transactions and blocks?

The answer partially depends on on what you mean by "how bitcoin propagates" and "improvements"-- Fibre transmits blocks vanishingly close to the lowest latency possible, but at the expense of using ...
G. Maxwell's user avatar
  • 7,727
9 votes
Accepted

How are transactions propagated through the bitcoin network? (In-depth)

I read briefly in a paper that there is some sort of transaction queue that the node keeps for each neighbor and that they will only select a random (?) amount of those transactions and send in an INV ...
Ava Chow's user avatar
  • 70.8k
8 votes
Accepted

How many peers do you need to securely synchronize with the blockchain?

One! Your full node will check every transaction and every block for validity while synchronizing. You therefore can be sure that whatever blockchain data your node accepts follows all rules of ...
Murch's user avatar
  • 75.7k
8 votes
Accepted

How do network nodes "connect" - amateur level

I have no idea what a "network" really is. I googled and read about LAN/WAN. Are these the types of network we're talking about? No. A network is really just "a group of connected ...
Pieter Wuille's user avatar
8 votes

What is a block-relay-only connection? What is it used for?

Block relay connections were added to bitcoin core in v0.19.0.1 in November 2019. Their purpose is to harden the peer-to-peer network against partition attacks. They do this through a clever ...
vnprc's user avatar
  • 405
8 votes
Accepted

What is the difference between blocksonly and block-relay-only in Bitcoin Core?

While both of these disable transaction relay, they are conceptually used for different purposes: Block-relay-only connections (see this post for more details) are hard-to-detect connections with the ...
Lightlike's user avatar
  • 636
8 votes
Accepted

Raw data vs information encoded in OP_RETURNs

The current Bitcoin P2P protocol has no concept of compression, though there have been some proposals to incorporate it. The transaction data is sent as-is. Some earlier discussion: https://lists....
Pieter Wuille's user avatar
7 votes
Accepted

To run a full node, should I get a static IP address from my ISP?

To run a Bitcoin full node you don't need to have a static IP address as when your IP address changes you should still be able to find peers and connect to them. However, if you want to maintain the ...
Michael Folkson's user avatar
7 votes
Accepted

How does bitcoin prevent DDoS amplification via the `addr` p2p message type?

For a long time, there was a restriction to strongly prefer connecting to addresses with port 8333. This restriction was recently removed in PR 23542 and PR 23306, although a list of "bad ports&...
Lightlike's user avatar
  • 636
6 votes
Accepted

If bitcoin is decentralized then who keeps track of computers in network

Nobody keeps track of all the computers in the network, or at least not as part of core network functionality. There are sites that attempt to track nodes (such as https://bitnodes.21.co/), but they ...
Jestin's user avatar
  • 8,812
6 votes
Accepted

What is the benefit of opening port 8333 to a client?

If you don't want to, you don't have to open ports at all. You'll still have a full node, it will just have fewer connections. Full nodes usually make 8 outgoing connections and can have many more ...
Jannes's user avatar
  • 6,344
6 votes

How to confirm how many peers a node has?

When a node requests one of it's neighbours for a list of it's peers, that node responds with a list of all of it's neighbours. No it doesn't. It responds with list of nodes that its aware of being ...
G. Maxwell's user avatar
  • 7,727
6 votes
Accepted

What is the oldest Bitcoin Core Client that can in theory sync to the chain tip?

The oldest version that can sync is 0.8.6. This is the version that first used LevelDB instead of BDB. Both the IRC node discovery and the protocol message changes occurred several versions prior.
Ava Chow's user avatar
  • 70.8k
6 votes

With peerblockfilters=1 hundreds of "btcwire 0.5.0/neutrino" connections are downloading TB from my Bitcoin node

It appears that btcwire is the Bitcoin p2p module of btcd and neutrino is Lightning Labs's implementation of BIP157/158 (compact client-side block filters (CBF)). I suspect that the agent identifier ...
Murch's user avatar
  • 75.7k
6 votes

Can "Block" Message send multiple blocks?

It sends exactly one block. If you want to send multiple blocks, you need multiple messages.
Pieter Wuille's user avatar
6 votes
Accepted

How is network conflict avoided between chains?

The protocol messages on Bitcoin include a magic number to identify the network they belong to. Bitcoin's magic values are described for example on the Protocol Documentation page in the Bitcoin wiki: ...
Murch's user avatar
  • 75.7k
6 votes
Accepted

What is the maximum, realistic P2P message payload size?

Since Bitcoin Core pull request 5843, incoming messages larger than MAX_PROTOCOL_MESSAGE_LENGTH are rejected. This constant was initially set to 2 MiB, but later (as part of the segwit changes) ...
Pieter Wuille's user avatar
6 votes
Accepted

What can an attacker do if they compromise a DNS seeder?

DNS seeders exist in order to bootstrap new nodes to the network. Nodes maintain a database of IP addresses for other nodes that they can connect to which they build by requesting IP addresses of ...
Ava Chow's user avatar
  • 70.8k
6 votes
Accepted

If my node is connected to 7 nodes and 4 of those say that a block they transmitted to me is valid will i mark it as valid?

No, every node validates transactions and blocks independently according to a shared ruleset. It doesn't matter if someone creates a hundred nodes to connect to you and send you invalid transactions ...
Vojtěch Strnad's user avatar
6 votes
Accepted

Theoretical attack on the network by companies

If the vast majority of the network including users, economic majority, miners, and some subset of the developers were to hardfork a blocksize increase, this would result in effectively two networks. ...
Murch's user avatar
  • 75.7k
6 votes

How to use Wireshark to identify Bitcoin/Lightning P2P packets

Run 2 nodes with different ports on regtest bitcoind -regtest=1 -port=18333 -datadir=/home/satoshi/node1 bitcoind -regtest=1 -port=18444 -datadir=/home/satoshi/node2 Add node1 as outbound connection ...
Egg's user avatar
  • 111

Only top scored, non community-wiki answers of a minimum length are eligible