{"id":4617,"date":"2020-10-05T01:28:42","date_gmt":"2020-10-05T00:28:42","guid":{"rendered":"https:\/\/bitcoinsv.io\/?page_id=4617"},"modified":"2020-10-06T12:11:42","modified_gmt":"2020-10-06T11:11:42","slug":"genesis-hard-fork","status":"publish","type":"page","link":"https:\/\/bitcoinsv.io\/genesis-hard-fork\/","title":{"rendered":"Genesis Hard Fork"},"content":{"rendered":"\n

Introduction<\/h2>\n\n\n\n

This is the specification of the Genesis Upgrade. It defines the upgrade activation mechanism, the changes to the Bitcoin Specification and the Consensus Rules, as well as the Standard Local Policies that are recommended for client implementations.<\/p>\n\n\n\n

This document is a specification. It is not a guide and it does not describe implementation specifics or emergent behaviour of the system.<\/p>\n\n\n\n

<\/a><\/h2>\n\n\n\n

Definitions<\/h2>\n\n\n\n

The Bitcoin Rules<\/strong> are the precise rules which define Bitcoin. These include rules such as: the sum of the value of the inputs of a transaction must be greater than or equal to the sum of the values of the outputs, and the block subsidy schedule. These are the foundational rules of Bitcoin, irrespective of implementation.<\/p>\n\n\n\n

The Consensus Rules<\/strong> are additional rules that have been reached by general agreement and are necessary to implement the Bitcoin Specification in software. They are needed because software has limitations and agreements are needed in order to facilitate integration of the software. Some Consensus Rules are configurable in the software, some are not. An example of a non-configurable Consensus Rule is that the version of a transaction must fit in a signed 32-bit integer. An example of a configurable Consensus Rule, after Genesis activation, is the maximum accepted block size.<\/p>\n\n\n\n

Local Policies<\/strong> are additional controls that are implemented in software and may place additional restrictions on the transactions and blocks that the software will propagate to other systems and, for transactions, confirm in blocks. Policies are \u201clocal\u201d, they apply to the instance of software that is running, they do not apply to the validation of blocks, or the transactions within a block. A block accepted from another miner may contain transactions that do not conform to local policy.<\/p>\n\n\n\n

Standard Policies<\/strong> are common local policies that are used by client software. They are defined as a Standard to facilitate common application across independent software implementations but it is important to note that it is not required that software implement or adhere to these policies.<\/p>\n\n\n\n

Throughout this specification the following words are used with specific meanings:<\/p>\n\n\n\n