7

How strict are the time validation rules? Very. If the next block is mined more than 2 hours after the current block, would this not stall the blockchain? No. It doesn't break the rule "Full nodes will not accept blocks with headers more than two hours in the future according to their clock." Nor does it break the rule "Must be strictly ...


7

When you spend from a Bitcoin address, your transaction includes both the public key corresponding to the hashed address you're trying to spend from, as well as a signature that can be verified with that public key. Your link is to a block, which is not signed itself. However, let's look at a transaction from your block: https://www.blockchain.com/btc/tx/...


6

I think you have a misconception about what this clause means: Full nodes will not accept blocks with headers more than two hours in the future according to their clock. You appear to be interpreting this as, if a new block is more than two hours later than the previous block, then do not accept it. That is incorrect. This clause is not about gaps in time ...


4

A bitcoin transaction will create outputs, which can later be used as input to a new transaction. Each output will be locked to what is called a scriptpubkey, which basically sets up the cryptographic puzzle that must be satisfied (ie, return true when run) in order for those coins to be spent. Any transaction spending those coins will need to provide a ...


3

Every (full) node in the network verifies all rules. Negative transaction amounts are not valid. If a transaction would contain such a transfer, the transaction would be invalid and ignored by the network. If such a transaction would be contained in a block, nodes would ignore the block, and any block that builds on top, resulting in lost effort for the ...


2

Miners offer up blocks to the network hoping that their offerings will be accepted. Other nodes may accept or reject such blocks. A node that accepts a block adds that block to their copy of the blockchain. Nodes that don't accept a particular block don't add it to their copy of the blockchain and don't pass on that block to anyone else. Any miner that is ...


2

There is no difference between those two things. If you have a data set that includes only things that you have fully validated all of and you confirm that something is in that data set, you have fully validated all of it. So checking that it's in a data set of things you have validated cannot be done instead of validating the entire chain because it does ...


1

John Newbery answered this at the Bitcoin Core PR review club session. Conceptually validation stores and maintains our best view of the blockchain and associated UTXO set. It also includes an interface to submit unconfirmed transactions to the mempool. In addition, James O'Beirne's slides from a presentation on Bitcoin Core architecture at Bitcoin Edge ...


1

It is easy and instant to confirm that a hashes proposed by a miner is the correct one, so once it is received by a node, miner, he will immediately stop trying to find a correct hashes for the previous block and began searching the new one without transition.


1

What do the classes ChainstateManager, CChainState, CChain and BlockManager do? A graphic from Doxygen showing how the classes interact: ChainstateManager: Provides an interface for creating and interacting with one or two chainstates CChainState: Stores and provides an API to update our local knowledge of the current best chain. CChain: An in-memory ...


1

When accountants calculate the current years income, they don't go back to when the company started and add up every income and expense item, they just add the current years results to the archived past totals. What am I missing. The accountants won't start from the beginning, because they will have already done all of those calculations in previous years. ...


1

Perhaps more a clarification than an answer: there is absolutely no need for validating nodes to keep a copy of the full historical blockchain around, and it's unnecessary to have access to the chain's data for validation. Storing the block data or not is pretty much irrelevant for energy usage. In Bitcoin Core (a fully-validating node that's often ...


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