Hot answers tagged

6

It sends exactly one block. If you want to send multiple blocks, you need multiple messages.


6

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 same peers getting a static IP address is a good idea. Your connection to existing peers will drop if your IP address changes and you will either reconnect to ...


6

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 things". One example is indeed a LAN network through which multiple computers that are physically close to each other (a home, an office, ...) are connected to ...


5

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 btcwire 0.5.0/neutrino indicates LND (Lightning Network Daemon) instances which are configured to allow or prefer CBF for synchronization. Given your experience ...


4

Computers are not connected to the blockchain. Computers running Bitcoin software connect to a few other computers that are running Bitcoin software. Each of these computers keeps its own copy of the blockchain if they are what is known as a full-node. For example any computer running the "Bitcoin core" wallet software is a full node. So even if ...


4

want to capture all the transactions propagated over the main network and detect if a new block mined. I don't want to become a full-node or spv-node. Technically, I know this is exactly the way all the full/spv nodes do every now and then. However, I could not found a good reference to teach me how. Clearly, full nodes and SPV nodes must get their ...


4

Your points 1 & 2 are both correct. The good news is the only time those old blocks get requested is by new nodes that are still bootstrapping and downloading the blockchain for the first time. As long as those old blocks are available and accessible somewhere, those new nodes will sync up just fine. Another fact about pruned nodes is they are required ...


4

The protocol allows it but I believe many nodes will not relay a transaction whose fee is below a configured threshold. See What is the min relay min fee code -26?


3

Can you reach anything over I2P? For example, can you browse http://git.idk.i2p/ using the router's http proxy?


3

Given that the vast majority of nodes are Bitcoin Core and segwit capable, this is probably okay, but technically does not follow the protocol. Bitcoin Core itself does not check whether a transaction it receives is in response to a particular getdata, and so it does not check whether it asked using MSG_WITNESS_TX or MSG_TX. So responding to a getdata ...


3

Adding more advanced prediction of what transactions are useful to prefill was probably intended as a TODO when Compact Blocks were implemented, but to the best of my knowledge, nobody has worked on it since. It is worth pointing out that Compact Blocks in practice (and in non-adverserial situations) works extremely well. On my own long-running node, as of ...


3

Banning peer to peer networks is very difficult in general. Assuming a node is starting for the first time, I believe it uses DNS seeds to find peers. If those DNS seeds are blocked, is it possible to prevent bitcoin node discovery ? This is possible but all you need in order to bypass it is one IP address of one peer and then you can connect to it ...


3

We need more than one miner because ... We must avoid centralisation as a goal of Bitcoin is to avoid the need for trusted third parties. We need miners to invest sufficient work to make the Blockchain effectively immutable. Otherwise we lose any agreement about who has money. This requires a competitive set of participants who undertake mining. It requires ...


3

External host is the IP of the host connecting to you. If you want to allow anyone to connect, you can just put 0.0.0.0.


2

A transaction itself doesn't have a storage structure for timestamp. So the transactions don't know when they're created. But, after bundling the transactions into a block and while solving the hash problem to solve the block, the miner inserts timestamp at the block level. So, even if in reality chronologically earlier transaction comes later, it will be ...


2

The IP-addesses of Bitcoin nodes are not a secret. See addr Nodes don't explicitly tell other nodes their Bitcoin addresses. Since nodes pass on details of other nodes transactions, working out which nodes originated a transaction isn't straightforward. Since the set of Bitcoin nodes is constantly changing, and nodes go offline temporarily (or permanently), ...


2

One way to think about bitcoin mining is to phrase it in terms of a lottery. The bitcoin network essentially hosts a sequence of lotteries, and the protocol is designed (and enforced by nodes) such that, on average, the time between one lottery and the next is ten minutes. Those who are interested in buying tickets for these lotteries (miners or prospective ...


2

Neutrino is light client and improved version of SPV node : https://bitcoin-s.org/docs/getting-setup#neutrino-node There are other ways to get information about transactions and blocks but you will have to trust others: Use API for one or more block explorers. Example: https://mempool.space/api Ask few people who run nodes to broadcast this information. ...


2

Each bitcoin node connects to a number of other nodes on the bitcoin network (peers). Think of it like friends you share information with. You can ask them for information, and they can ask you too. So new bitcoin nodes, when they first start, find other peers on the network, and then the new node will start asking for bitcoin blocks from the blockchain that ...


2

It depends on what you mean by decentralization. There is a technical meaning, and an intuitive one. I'll talk about the first one first. A decentralized system is one which by design functions and remains secure without the presence of a trusted central party (or parties). I can't tell you what part of Bitcoin makes it have this property - it just happens ...


2

peers.dat (and the associated RPCs) are for the automatic connection mechanism, which includes relaying to other nodes. You're adding an address that is not globally routable (it's a LAN IP). It cannot be inserted into the automatic connection database, because it cannot be relayed to other peers. If you want a connection to it, use the manual connection ...


1

Bitcoin Core nodes propagate blocks and transactions to all their peers, not just outbound ones. And if you have 16 peers that getpeerinfo reports "inbound": false for, then all 16 are outbound connections. Presumably you're using addnode functionality, or using modified source code, as Bitcoin Core itself will not make more than 10 automatic ...


1

Yes you can specify -externalip multiple times. The config option -externalip allows you to specify your own public reachable address. This can also be an onion address. From the Bitcoin Core Tor documentation: The one that will be rumoured to a particular peer is the most compatible one and also using heuristics, e.g. the address with the most incoming ...


1

What would happen to Bitcoin if the internet or power would be shut down for a moment It depends how long that moment is. Generally there would be no long-term harmful effect on Bitcoin for any outage of a few minutes or even several hours. Longer outages of many days or weeks would skew the next recalculation of mining difficulty and result in blocks being ...


1

'Decentralized' is not a binary distinction. There is no point at which suddenly something is decentralized, or not. For the bitcoin network to function there is some level of decentralization required though, as otherwise the guarantees of censorship resistance will become less strong. Bitcoin is defined from the bottom-up, not the top-down! Bitcoin full ...


1

Yes, they download blocks from other nodes they connect to. In Bitcoin Core you have the choice between being a pruned node or not. In both cases all blocks are downloaded and fully verified, but in pruned mode old blocks are deleted after a while after being verified. This has a number of implications, but one of them is that a pruned node does not help new ...


1

Easiest way to understand the response of other nodes IMO is using Wireshark and follow the below steps: Install Wireshark Capture packets according to the network you will be using on this system when Bitcoin full node connects with the network. Launch Bitcoin Core Stop capturing packets once the node is connected to few peers Filter captured data in ...


1

While it's possible to estimate the current hashrate from the difficulty, they are two different measures. You can find an estimate for the global hashrate on the same site where you found the difficulty. The current estimate is 162 EH/s (162,000,000 TH/s). Using a similar approach as proposed by you, we can estimate an upper bound of 162,000,000 TH/s / 110 ...


1

Blockstream have multiple satellite circling around the earth and broadcasting the blockchain or receiving and sending transaction without interruption. https://blockstream.com/satellite/ They have their own kit to use the service: https://store.blockstream.com/product/blockstream-satellite-basic-kit/


1

The nodes run software which contains the best-for-everybody rules about how the network should operate. One of those rules is that nodes should forward new transactions to other nodes. There is no incentive for them that I know of, other than, to not do so, would risk not participating in the network of nodes that do follow the best-for-everybody rules. By ...


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