9

With Bitcoin Core you'll run a full node. So, for every transaction someone does to your business, your Bitcoin Core wallet need to be synchronized with the complete blockchain.


7

If you give Bitcoin Core a fully populated data directory, it will use it without any validation. However, if you only give it the blocks/ subdirectory, it will fully validate it to recreate the chainstate directory, exactly as if it were received over the network.


5

By default the RPC interface is only exposed to localhost (127.0.0.1 and ::1), not to the world. In that setting, you need an RPC password only to protect against untrusted local users on your system (unless you're somehow tunneling the RPC port 8332 out). That said, why do you have an rpcpassword at all? If you're only going to use bitcoin-cli for example ...


5

A transaction that has been included in a block does not need to be in a node's mempool in order for that node to validate the block. Each block contains the transactions, so by downloading and validating a block, the node will have received a copy of all transactions in it (so that it can validate the transactions, as part of validating the block). As you ...


4

The database format is supposed to be compatible across architectures.


4

Will the miner simply ignore that block? Yes, the block will be just ignored by the miner. how will the miner update to A-B-C-D-E (step by step)? When the miner's node gets online and start connecting to peers, it will start a “handshake” by transmitting a version message, which contains all basic identifying information, including BestHeight (the ...


4

That's because although the Bitcoin blockchain has a current height of 574080, your full node has synced until 195807 (the output "blocks": 195807 after running getblockchaininfo command). Block 195876, the one that you are querying, has not synced yet on your node. As you said, you have just installed Bitcoin Core. It take many hours (or sometimes days ...


3

When a new node joins the network, it will look up nodes from the DNS seeds. It'll reach out to multiple nodes it hears about and ask them for more peers in turn. The new node asks each of their peers for their best chaintip and then starts sychronizing the headers of the best chaintip it hears about first. A block header is only 80 bytes (tiny in comparison ...


3

Every node in the Bitcoin network acts independently. When a node hears about a new block, it will perform a series of checks to see if it is valid according to the network's rules. If the block is valid, the node adds it onto it's local copy of the blockchain, and broadcasts the block to the other nodes its connected to. If the block isn't valid, the ...


3

The RPC interface is not exposed to anything except localhost by default. So other people on your network, nor people on the internet, can access it unless you have explicitly enabled outside access using rpcbind=<ip> and rpcallowip=<ip>. So even using an insecure rpcpassword should be safe. Furthermore, it is completely useless if you don't also ...


3

The problem is less so with validating the blocks and more to do with bandwidth constraints and the time it takes to write blocks to disk and update the databases. As you sync more of the blockchain, the blocks become bigger and contain more transaction inputs and outputs. The outputs need to be added to the chainstate database and the inputs removed. This ...


2

When you create a transaction, the transaction is broadcast to other Bitcoin nodes and reaches miners. When a miner includes your transaction in a block that they successfully mine, they broadcast the block that contains your transaction - this is the first confirmation. When other blocks get mined on top of that block, those are additional confirmations of ...


2

No. The nodes notify only about block height in the beginning of connection in version message. When node wants to notify about new block/tx it received/created, it uses inv message. There is no point to notify other peers about downloading full blockchain. Other nodes have nothing to do with such information.


2

where is my bitcoin money, when downloading is failed. Your money is in the Blockchain (loosely speaking). It is not affected by the state of your wallet. When your wallet finishes collecting its own copy of the public Blockchain (synchronisation), it will be able to show you the amount of money you control. Some explanation: A wallet does two things. ...


2

From my own experience, running ABCore on a Nexus 5X, Android is too eager to kill processes that use a large amount of memory on systems with less than 3 GB.


1

Yes a full node downloads and verifies all blocks starting from the genesis block. Not on every startup though, the state is efficiently stored and read back into memory on startup (with some rechecking of the last X blocks as a sanity check against corruption). For finding the right chain, it starts with downloading the headers first, with which it can ...


1

The recommended way is to use the -connect option. You can do -connect=0 or -noconnect (they mean the same thing) and Bitcoin Core will not try to automatically connect to any other node.


1

Does bitcoin qt need to synch with the network before it will notice the change has been received It won't know about the change transaction until it has processed the block containing that transaction. Your change transaction is in a recent block, your bitcoin software is still catching up earlier blocks and hasn't retrieved that recent block yet. ...


1

You are allocating far too much dbcache. If you allocate 4000 MB to the dbcache, you will use up all of your RAM and it will crash. Your operating system needs RAM, Bitcoin Core itself needs RAM outside of the dbcache. I would highly recommend that you do not set a dbcache at all as 4 GB is really not enough RAM to handle a larger dbcache, Bitcoin Core's ...


1

A Checkpoint is the header hash permitted at a given height, thereby hardcoding the chain that the validating node must follow. If a node follows an alternative chain branch which reaches the same height, this branch can now be identified as such and rejected. This was initially designed to protect a node from following an alternative long branch, especially ...


1

If you care about overall sync performance, the download speed is usually not the bottleneck. If you want to calculate your pure download speed, you can use getnettotals. There is a value totalbytesrecv (amount of bytes received since the Bitcoin Core instance has been started). You can calculate the speed by reading the sync start time out of your debug....


1

The blockchain is an append-only data structure. The only changes that happen are appending to an existing chain or rolling back blocks to switch onto a better chain that forks off earlier. Nodes always attempt to be on the valid chain with the most proof of work. To accomplish this they synchronize block headers with their peers. Synchronization of ...


1

The Blockchain is never changed only extended. As I understand it, nodes do not explicitly check or care whether other nodes have identical copies. They just verify what they receive against what they already have in their copy of the Blockchain. Synchronisation isn't exactly the right word to describe what happens but it effectively occurs as a ...


1

First off, it is not impossible. Bitcoin nodes are not validating thousands of transactions per second. They are actually processing less than ten per second, which is perfectly reasonable for even slower computers. Second, not all Bitcoin nodes validate all transactions. What you are likely referring to are "full nodes", which are basically nodes that ...


1

When a fork exists with two equal-work branches, it is not unreasonable that the one we saw second will get extended. There is little DoS risk in downloading both, as an attacker must spend an enormous amount of work to even make us do so. At the same time, it is useful to be prepared for the blocks in a reorganization, as it reduces the time needed for ...


1

I would suggest running bitcoin core in pruned mode if you don't have enough space to for the entire blockchain. You can start bitcoin with the -prune=X command line argument or put prune=X in your conf file, to limit the amount of space used by the blockchain to only X megabytes. It will delete the old blocks and keep only the most recent blocks on your ...


1

Bitcoin's state gets synchronized by everyone downloading the blockchain and applying all transactions in the correct order. Earlier versions of Bitcoin would just download block for block until they were caught up. Nowadays, Bitcoin first synchronizes only the block headers which are 80 bytes each and allow the node to pre-filter orphaned blocks and dead ...


1

A half hour to sync two days is almost 100x faster than real-time. It's slower than I would expect, but without more information it's not really possible to tell if there is anything that could be improved about your system or configuration.


1

Zapier is a great tool that you can use to accomplish actions like mail download links, send SMS, push notification to slack etc. You can setup bitcoin payment as trigger and then configure action to do.


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