How is bitcoin legal how to find address sent from bitcoin transaction raw

gettransaction (0.16.0 RPC)

IPv6 address in big endian byte order. The hash of the next block on the best block chainif known, encoded as hex in RPC byte order. Attempt to sign the raw transaction without any special arguments, the way we successfully signed the the raw transaction in the Simple Raw Transaction subsection. If you hover over a cross-reference link, a brief definition of the term will be displayed in a tooltip. Make a note of the 'txid', 'vout' and 'scriptPubKey' of each output you wish to use. After each hash is performed, the filter is checked to see if the bit moon litecoin hack bitcoins pools that indexed location is set. Disconnects following kraken ltc exchange authy app coinbase from your node. Merkle Roots: The getinfo Mine bitcoin on google cloud mining contracts for bch prints various information ethereum remote node api bitcoin with money the node and the network. If there are more than two hashes in the second row, the process is repeated to create a third row and, if necessary, repeated further to create additional rows. Block Height. The element to add to the current filter. The clearbanned RPC clears list of banned nodes. The following annotated hexdump shows part of an addr message. The transaction to decode in serialized transaction format. An object describing a particular input. The estimated number of hashes per second based on the parameters provided. Continuing with the example above, the output from the bitcoin-cli command would be simply:. ThePiachu ThePiachu Note that an optional object may still have required children. The getdata message requests one or more data objects from another node.

Sign Up for CoinDesk's Newsletters

The table below lists some notable versions of the P2P network protocol, with the most recent versions listed first. Those transactions must be part of a block before this transaction can be added to a block , although all transactions may be included in the same block. Transactions that do not use strict DER encoding had previously been non-standard since Bitcoin Core 0. Send the signed transaction to the connected node using the sendrawtransaction RPC. The height of this block on its block chain. The response to the mempool message is one or more inv messages containing the TXIDs in the usual inventory format. However, mistakes made in raw transactions may not be detected by Bitcoin Core, and a number of raw transaction users have permanently lost large numbers of satoshis , so please be careful using raw transactions on mainnet. Seconds left in current time cycle. Do not descend into its child nodes. The second argument a JSON object creates the output with the address public key hash and number of bitcoins we want to transfer. The merkle root is derived from the hashes of all transactions included in this block , ensuring that none of those transactions can be modified without modifying the header. When used in a getdata message , this indicates the response should be a transaction message, if the witness structure is nonempty, the witness serialization will be used.

Transactions Read Transactions Guide. For numbers from 0 tocompactSize unsigned integers look like regular unsigned integers. How to Sell Bitcoin. Bitcoin Core provides testing tools designed to let developers test their applications with reduced risks and limitations. An example header in hex:. Otherwise 0. This also undoes the effect of setting the relay field in the version message to 0, allowing unfiltered access to inv messages announcing new transactions. Please use the Issue and Edit links on the bottom left menu to help us improve. At the bottom of the menu ripple coin acronym merge coinbase accounts the left, you will find links that allow minimum investment to genesis mining bitcoin cloud to report an issue or to edit the documentation on GitHub. Some of its peers send that information to their peers also unsolicitedsome of which further distribute it, allowing decentralized peer discovery for any program already on the network. Signature scripts are not signed, so anyone can modify. Programs creating transactions using newer consensus rules may use higher version numbers. Wallet must be unlocked. A 2-of-3 P2SH multisig pubkey script:. The getconnectioncount RPC returns the number of connections to other nodes. The getblockheader RPC gets a block header with a particular header hash from the local block database either as a JSON object or as a serialized block header. Version 2 means that BIP 68 applies. See the list of block versions. Because the element is sent directly to the receiving peerthere is no obfuscation of the element and none of the plausible-deniability privacy provided by the bloom filter. URI or scanning a bitcoin:

Transactions

The clearbanned RPC clears list of banned nodes. Possible Duplicate: Create a complete merkle tree with TXIDs on the bottom row and all the other hashes calculated up to the merkle root on the top row. Every transaction in this block , one after another, in raw transaction format. The TXID of the transaction that you want to abandon. In addition, there is no RPC to completely disable encryption. Append a 1 to the flag list; process the left child node. It is this form of a transaction which is SHA SHA hashed to create the TXID and, ultimately, the merkle root of a block containing the transaction—making the transaction format part of the consensus rules. The modified fees see modifiedfee above of in-mempool ancestors including this one. If this request is tied to an order total based on a fiat -to- satoshis exchange rate, you probably want to base this on a delta from the time you got the exchange rate. Related 1. Bitcoin transactions are broadcast between peers in a serialized byte format, called raw format. The pong message replies to a ping message , proving to the pinging node that the ponging node is still alive. If the filter matches any data element in a pubkey script and that script is either a P2PKH or non-P2SH pay-to- multisig script, the corresponding outpoint is added to the filter. This allows clients to receive transactions relevant to their wallet plus a configurable rate of false positive transactions which can provide plausible-deniability privacy. The first integer is interpreted as a boolean and should have a value of either 1 or 0.

The following annotated hexdump of a transaction is from the raw transaction format section ; the elements which would be checked by the filter are emphasized in bold. It can be sent for two different reasons:. This all can be done before sign and send to network your transaction. The Bitcoin network protocol allows full nodes peers to collaboratively maintain a peer-to-peer network for block and transaction exchange. If any of the results points to an unset bit, the filter does not match. The bit in the block version field used to signal this softfork. The port number of the transmitting node in big gtx titan 6gb ethereum hashrate guiminer with usb erupter byte order. The confirmation target in blocks. Result—the block header hash. Get an address for the default account:. To close this disclaimer click. The balance of the wallet in bitcoins. Sign up or log in Sign up using Google. For this example, we will set n to one element and p to a rate of 1-in, to produce a small and precise filter for illustration purposes. If the nonce is anything else, a node should terminate the connection on receipt of a version message with a nonce it previously sent. We go back up to the merkle root and then descend into its right child and look at the next third flag for instructions. The certificate must be in ASN. Using regtest mode also works in normal modegenerate 2 blocks:. Set to false if this bitcoin mining alaska free play bitcoin casino forum is on mainnet or a regtest. Try connecting to the following node. The abandontransaction RPC marks an in- wallet transaction and all its in- wallet descendants as abandoned. An object describing a particular chain tip.

Bitcoin Developer Guide

All blocks with a block height less than 6, are entitled to receive a block subsidy of newly created bitcoin value, which also should be spent in the coinbase check transaction propagation bitcoin antminer s9 mining. The hash of the header of the block to get, encoded as hex in RPC byte order. The hex string of the raw transaction. The target threshold is a bit unsigned integer which a header hash must be equal to or below in order for that header to be a valid part of the block chain. We also save the addresses corresponding to the public keys hashed or unhashed used in those transactions. If the Details parameter was set to truethis will be an array of addresses belonging to the added node. If you don't want to send the outputs in total you want some change for yourself you will need to include an address that you control in your ftw3 1070 ethereum hash what does gh s mean bitcoin dictionary from your wallet or somewhere else since outputs cannot be partially spent, sorry. Result—various mining -related information. Has value null if an error occurred. Until both peers have exchanged version messagesno other messages will be accepted. The private key encoded live bitcoin transactions map bitcoin news sources base58check using wallet import format. You need the redeem script to spend any bitcoins sent to the P2SH address. For example, a request for the block hash at block height -1 would be met with the following response again, whitespace added for clarity:. Even advanced users should use these RPCs whenever possible to decrease the chance that satoshis will be lost by mistake. Bitcoin Core provides testing tools designed to let developers test their applications with reduced risks and limitations. If you add an address to the walletyou should also make a new backup. The offset may be up to seconds 70 minutes. How to findout the sender of a transaction. A witness address that gets added to a script.

If you don't want to send the outputs in total you want some change for yourself you will need to include an address that you control in your sending dictionary from your wallet or somewhere else since outputs cannot be partially spent, sorry. The node rejects this attempt because the second transaction spends an output which is not a UTXO the node knows about. If the result of every hash points to a set bit, the filter matches. I am trying to use blockchain. The annotated hexdump below shows a ping message. The default is 0. Sending the mempool message is mostly useful when a program first connects to the network. Example from Bitcoin Core 0. Result no output from bitcoin-cli because result is set to null. At least one tip—the local best block chain —will always be present. This question has been asked before and already has an answer. If a block only has a coinbase transaction and one other transaction, the TXIDs of those two transactions are placed in order, concatenated as 64 raw bytes, and then SHA SHA hashed together to form the merkle root. Used when constructing block headers. The hash of the header of the highest validated block in the best block chain , encoded as hex in RPC byte order. The unsigned raw transaction. We send the transaction spending the P2SH multisig output to the local node , which accepts it. To close this disclaimer click here. The filteradd message tells the receiving peer to add a single element to a previously-set bloom filter , such as a new public key. Miners commonly place an extra nonce in this field to update the block header merkle root during hashing. We make the first signature.

Bitcoin Developer Reference

The first transaction in a blockcalled the coinbase transactionmust have exactly one inputcalled a coinbase. This documentation has not been extensively reviewed by Bitcoin experts and so likely contains numerous errors. Each tx message in this case provides a matched transaction from that block. The transaction is not stored in the wallet or transmitted to the network. Duplicate input spend double spend: You can use the transaction count to construct an empty merkle tree. Errors or suggestions related to documentation on Bitcoin. As you ascend, compute the hash of any nodes for which you now have both child hashes or for which you now have the sole child hash. An array containing the TXIDs of all transactions in this block. The estimated number of block header hashes miners had to check from the genesis block to this blockencoded as big-endian hex. The getaddressesbyaccount RPC returns a list of every address assigned to a particular account. The transaction fee with fee deltas used for mining priority in decimal bitcoins. The P2SH address for this multisig redeem script. Recall from the Guide that the hashed public keys used in addresses obfuscate the full public keyso you cannot give an address to another person or device bitcoin hidden cpuminer how to cash bitcoin reddit part of creating a free bitcoin mining websites is bitcoin liquid multisig output or P2SH multisig redeem script. Once a payment has been received to an addressfuture calls to this RPC for the same account will return a different address. The total fee to pay in satoshis not the feerate.

However, generally you should avoid using transaction inputs for basically any purpose - they do not uniquely identify a user, sending Bitcoins back to the user might be problematic with just this information and so forth. Various mining -related information. Version 2 was introduced in Bitcoin Core 0. Another possibility is with Electrum. Blockchain Read Blockchain Guide. Each transaction is constructed out of several parts which enable both simple direct payments and complex transactions. All blocks with a block height less than 6,, are entitled to receive a block subsidy of newly created bitcoin value, which also should be spent in the coinbase transaction. Malicious nodes may change times or even set them in the future. This TXID appears in the same block used for the example hexdump in the merkleblock message ; if that merkleblock message is re-sent after sending this filteradd message , six hashes are returned instead of four. The returned hex string is the transaction identifier txid.

Your Answer

Continuing with the example above, the output from the bitcoin-cli command would be simply:. It is only part of the reply: Once you apply a flag to a node , never apply another flag to that same node or reuse that same flag again. The abandontransaction RPC marks an in- wallet transaction and all its in- wallet descendants as abandoned. Note however that feefilter has no effect on block propagation or responses to getdata messages. Magic bytes indicating the originating network ; used to seek to next message when stream state is unknown. This documentation has not been extensively reviewed by Bitcoin experts and so likely contains numerous errors. The P2SH address for this multisig redeem script. Perhaps this is simply ignorance about the BTC Protocol, but how can I find the sender's address from any given transaction hash? Should only contain data pushes; see the signature script modification warning. This is in addition to sending a merkleblock message.

See rpcprotocol. The full sequence of events is illustrated below, starting with the spender clicking a bitcoin: See the warning in the complex raw transaction section. Has value null if the id field was omitted in the request. Block headers: The user brings this information to the offline wallet. In the end I set the fee to 0. Optional additional data provided with the rejection. We have once again not generated an additional blockso the transactions above have not yet send money to bittrex paypal debit card coinbase part of the regtest block chain. Parameter 1— Inputs. Fail if the hash of the merkle root node is not identical to the merkle root in the block header. Once browser based litecoin miner who funds coinbase row is obtained with only two hashes, those hashes are concatenated and hashed to produce the merkle root. The raw transaction RPCs allow users to create custom transactions and delay broadcasting those transactions. Please use those links if you find any errors or important missing information. The interface requires the user to provide a password for authenticating RPC requests. The user takes the signed transaction back to the online walletwhich broadcasts it.

Notice that in iterations 8 and 9, the filter did not change because the corresponding bit was already set in a previous iteration 5 and 7, respectively. The port number of bitcoin cash wallet can you use a prepaid card on coinbase transmitting node in big endian byte order. The annotated hexdump below shows a feefilter message. Finally, we convert the pubkey script from hex into its serialized form. You can use this to track your invoices, although you can more reliably track payments by generating a unique address for each payment and then tracking when it gets paid. Serialized Transaction. All exchanges allow you to sell as well as buy. Dash cloud mining calculator ethereum cloud mining calculator total number of connections to other nodes both inbound and outbound. To be specific, the first certificate provided must be the X.

The timeframe is currently set to 24 hours. The transaction will not be mined or relayed because the rejecting node considers it non-standard—a transaction type or version unknown by the server. Before Bitcoin Core 0. This question has been asked before and already has an answer. The height of the last block to use for calculating the average. The bloom filter is populated using between 1 and 50 unique hash functions the number specified per filter by the nHashFuncs field. Be aware if you designate an unusually large fee like 0. Wallet files store private keys and optionally other information related to transactions for the wallet program. Subscribe Here! A public key against which signatures will be checked. See description of txOut below. The transaction which is in the block at the index. For example, the following combined signature and pubkey script will produce the stack and comparisons shown:. This is to prevent anyone from trying to use the network to disrupt non-Bitcoin services that run on other ports. See the merkle tree section for details. The position of the added change output , or -1 if no change output was added.

Should only contain data pushes; see the signature script modification warning. But does not remove it from the wallet. Only for use in getdata messages. In version 2 of compact blocksthe wtxid should be used instead of the txid as defined by BIP A node must not send a cmpctblock message unless they are able to respond to a getblocktxn documentary on bitcoins online ethereum contract deploy which requests every transaction in the block. The hashes of the headers of the blocks generated, as hex in RPC byte order. Before protocol versionthe ping message had no payload. SPV clients can set a filter before sending a mempool to only receive transactions that match that filter; this allows a recently-started client to get most or all unconfirmed transactions related to its wallet. The requested block as a serialized blockencoded as hex, or JSON null if an error occurred. Please use the Issue and Edit links on the bottom left menu to help us improve. ASCII string which identifies what message type is contained in the payload. For example, the following combined signature and pubkey script will produce litecoin scrypt mining hardware gambling with coinbase stack and comparisons shown:. An array of objects each describing the local addresses this node believes it listens on. If the requested block was recently announced and is close to how is bitcoin legal how to find address sent from bitcoin transaction raw tip of the best chain of the receiver and after having sent the requesting peer a bitcoin s9 mining how much was 1 bitcoin worth in 2010 messagenodes respond with a cmpctblock message containing data for the block. Create a wallet dump and then print its first 10 lines. Result—the generated block header hashes. The ping message helps confirm that the receiving peer is still connected. In this subsection, we will create a P2SH multisig addressspend satoshis to it, and then spend those satoshis from it to another address. An object containing the requested blockor JSON null if an error occurred. When processing a child nodeyou may need to process its children the grandchildren of the original node or further-descended nodes before returning to the parent node.

See description of outpoint below. The process is repeated until all signatures have been checked or not enough public keys remain to produce a successful result. For example, with the original netcat and using hexdump hd to display the output:. All blocks with a block height less than 6,, are entitled to receive a block subsidy of newly created bitcoin value, which also should be spent in the coinbase transaction. If not set, the address is chosen from address pool. Inputs from watch-only addresses are also considered. Transaction inputs. When we serialize them, PaymentDetails will be contained within the PaymentRequest. If that item is zero false it terminates the script in failure. The block subsidy started at 50 bitcoins and is being halved every , blocks —approximately once every four years. An object describing a particular chain tip. Do not descend into its child nodes. The computed median time of the previous 11 blocks. Perhaps this is simply ignorance about the BTC Protocol, but how can I find the sender's address from any given transaction hash?

Even advanced no transaction fee bitcoin buying site bitcoin correction coming should use these RPCs whenever possible to decrease bitcoin waves exchange bitcoin for xrp chance that satoshis will be lost by mistake. See that section for an example hexdump. This array will not be returned for nonstandard script types. To use bitcoind and bitcoin-cliyou will need to add a RPC password to your bitcoin. Append the checksum to the version and hash, and encode it as a base58 string: Future versions of Bitcoin Core also provided consensus code that is more complete, more portable, and more consistent in diverse environments. However, Bitcoin Core uses addresses as a way to reference the underlying full unhashed public keys it knows about, so we get the three new addresses above in order to use their public keys. Result if format was 0 —a serialized block. Specifically, it is hashed nHashFuncs times, each time using the same nTweak provided in the filter, and the resulting output is modulo the size of the bit field provided in the filter field. This specific operation is typically what offline signing wallets. Initializing A Bloom Filter. Removed all those micro transactions, now the fee is 10 times less and another 0. Followed by nulls 0x00 to pad out byte count; for example:

Otherwise, it is Perhaps this is simply ignorance about the BTC Protocol, but how can I find the sender's address from any given transaction hash? They are calculated as follows,. The services the node advertised in its version message. Send 10 bitcoins to the address using the sendtoaddress RPC. The getblocktemplate RPC gets a block template or proposal for use with mining software. Block is invalid for some reason invalid proof-of-work, invalid signature , etc. Only returned if the node has wallet support enabled. A raw transaction has the following top-level format:.

The getmempooldescendants RPC returns all in-mempool descendants for a transaction in the mempool. Errors or suggestions related to documentation on Bitcoin. The total fee to pay in satoshis not the feerate. The maximum value allowed in this field is The block version used for the softfork. To sign the second inputwe repeat the process we used to sign the first input using the second private key. It may not be able to provide any data except for the transactions it originates. Fail if the hash of the merkle root node is not identical to the merkle root in the block header. Here we use the same command but different variable we used in the Simple Spending subsection. IP address entries. Note however that feefilter has no effect on block propagation or responses to getdata messages. For this example, we will set n to one element and p to a rate of 1-in, to produce a small and precise filter for illustration purposes. You probably want to give receivers the ability to configure the expiration time delta; here we used the reasonable choice of 10 minutes. The output index number of the specific output to spend from cost of 1 bitcoin ethereum to bitcoin exchange rate transaction. The version bytes commonly used by Bitcoin are:.

Defaults to -1 for the highest- height block on the local best block chain. If you run out of flags or hashes before that condition is reached, fail. If a block only has a coinbase transaction , the coinbase TXID is used as the merkle root hash. The following annotated hexdump shows a headers message. The redeem script to decode as a hex-encoded serialized script. Depending on your usage pattern, request batching may provide significant performance gains. The previous outpoint being spent. The address will also be added to the wallet , and outputs paying that address will be tracked by the wallet. All existing inputs must have their previous output transaction be in the wallet. Defines the conditions which must be satisfied to spend this output. Unicorn Meta Zoo 3: For our two outputs , get two new addresses. Must be strictly greater than the median time of the previous 11 blocks. These examples are to help you learn, not for you to emulate on mainnet. The coinbase field: Note however that feefilter has no effect on block propagation or responses to getdata messages. The bitcoin-cli program can be used as a command-line interface CLI to Bitcoin Core or for making RPC calls from applications written in languages lacking a suitable native client.

The clearbanned RPC clears list of banned nodes. When we serialize them, PaymentDetails will be contained within the PaymentRequest. In the following documentation, some strings have been shortened or wrapped: And change it with feeRate option of fundrawtransaction command. Version 1 was introduced in the genesis block January If you lose the redeem scriptyou can recreate it by running the same command above, with the public keys listed in the same order. One or more inventory entries up to a maximum of 50, entries. Result—information about the node and network. An array containing the block header hashes of the generated blocks may be empty if used with generate 0. Multisig outputs have two parameters, the minimum number of signatures required m and the number of public keys to use to validate those signatures. Questions about Bitcoin development are best asked in one of the Bitcoin development communities. Sign up using Email and Password. Broadcast the first transaction, which succeeds, and then broadcast the second transaction—which also now succeeds because the node now sees the UTXO. The following annotated hexdump shows a version message. The table below describes how to process both TXID nodes and non- TXID nodes based on whether the node is a match, a match ancestor, or neither a match nor a match ancestor. Parameter 1— Inputs. The nonce which was successful at turning this particular block into one that could be added to the best block chain. Draft BIP9 describes the version bits design as of this writing, although it is jpy xrp wells fargo stopped my bitcoin purchase being actively edited and may substantially change while in the draft state. If you hover over a cross-reference link, a brief definition of the term will be displayed in a tooltip. The protocol version number used by this node.

Using regtest mode , generate 2 blocks with maximal iterations:. For an overview of HD wallets , please see the developer guide section. Result—an array of block chain tips. The height of the hardcoded genesis block is 0. To store them in the wallet , use the addmultisigaddress RPC instead. Bitcoin transactions are broadcast between peers in a serialized byte format, called raw format. The block header in the format described in the block header section. And change it with feeRate option of fundrawtransaction command. Result—the private key. If this parameter is not provided, information about all added nodes will be returned. The receiving peer may choose to ignore the message and not filter transaction inv messages. The getaddednodeinfo RPC returns information about the given added node , or all added nodes except onetry nodes. We also save the addresses corresponding to the public keys hashed or unhashed used in those transactions. To connect to the P2P network , the trivial Python function above was developed to compute message headers and send payloads decoded from hex. If wallet support is enabled, this may be a P2PKH address belonging to the wallet —the corresponding public key will be substituted. When used in a getdata message , this indicates the response should be a block message with transactions that have a witness using witness serialization. An array of TXIDs belonging to transactions in the memory pool. The estimated amount of work done to find this block relative to the estimated amount of work done to find block 0.

In this case, it withdrew the satoshis from our only available UTXOthe coinbase bitcoin international bitcoin anytime soon for dash coin crash london stock exchange ethereum 1 which matured with the creation of block If generation was enabled since the last time this node was restarted, this is the number of transactions in the last block built by this node for header hash checking. The code pushes a few settings amd nvdia gpu mining start up diy sudden price fall in bitcoin the request PaymentRequest and details PaymentDetails objects. For the local best block chainthis will be 0 ; for all other chains, it will be at least 1. Docs say us what inputs and output all required fields. The receiving node will reply with their version message and a verack message. Any intermediate certificates necessary to link that signed public SSL key to the root certificate the certificate authority are attached separately, with each certificate in DER format bearing the signature of the certificate that follows it all the way to but not including the root certificate. Version 2 compact blocks notes. Result no output from bitcoin-cli because result is set to null. Now that both inputs are signed, the complete result is true. In this example, our input had Transactions are usually done via deposits or wires to your bank account, after which you are expected to transfer the agreed amount of bitcoin to the specified address. Result if format was true or omitted —a JSON block header. If the specified height is higher than the highest block on the local best block chainit will be interpreted the same as An array containing all addresses belonging to the specified account. The responding pong message will include this nonce to identify the ping message to which it is replying. The second UTXO shown is the spend to the address we provided. Bitcoin contracts can often be crafted to minimize dependency on outside agents, such as the court system, which significantly decreases the risk of dealing with unknown entities in financial transactions.

If the relay field is not present or is set to 0x01, this node wants inv messages and tx messages announcing new transactions. To spend this output we will create a new transaction. For each transaction that matches the filter, track its TXID node and all of its ancestor nodes. The getnetworkhashps RPC returns the estimated current or historical network hashes per second based on the last n blocks. Use the decoderawtransaction RPC to see exactly what the transaction we just created does. The index of the change output. Michael also wants to send 0. Under current consensus rules , a block is not valid unless its serialized size is less than or equal to 1 MB. This script must be as short as possible, otherwise it may be rejected. This element is present for any added node whether or not the Details parameter was set to true. Parameter 1—a hex-encoded redeem script. The getblock RPC gets a block with a particular header hash from the local block database either as a JSON object or as a serialized block. The private key encoded as base58check using wallet import format. Number of inputs in this transaction. Only the bit Murmur3 version is used with Bitcoin bloom filters. If all went well you should be given a hex string.

Testing Applications

Post as a guest Name. Using regtest mode , generate 2 blocks with maximal iterations:. It can be sent unsolicited to announce new transactions or blocks , or it can be sent in reply to a getblocks message or mempool message. Coinbase inputs are described separately after the example section below. This is related to CVE Each false positive can result in another element being added to the filter, creating a feedback loop that can after a certain point make the filter useless. A self-signed certificate will not work. The TXID is a hash provided here in internal byte order. Although the target threshold should be an unsigned integer, the original nBits implementation inherits properties from a signed data class, allowing the target threshold to be negative if the high bit of the significand is set. For an example of how this payload was created, see the filterload example. The target threshold is a bit unsigned integer which a header hash must be equal to or below in order for that header to be a valid part of the block chain.