|
|
1行目: |
1行目: |
− | <pre>
| + | <pre> |
− | BIP: 34
| + | BIP: 34 |
− | Title: Block v2, Height in Coinbase
| + | Title: Block v2, Height in Coinbase |
− | Author: Gavin Andresen <gavinandresen@gmail.com>
| + | Author: Gavin Andresen <gavinandresen@gmail.com> |
− | Status: Accepted
| + | Status: Accepted |
− | Type: Standards Track
| + | Type: Standards Track |
− | Created: 2012-07-06
| + | Created: 2012-07-06 |
− | </pre>
| + | </pre> |
| | | |
− | ==Abstract== | + | ==Source== |
| | | |
− | Bitcoin blocks and transactions are versioned binary structures. Both currently use version 1. This BIP introduces an upgrade path for versioned transactions and blocks. A unique value is added to newly produced coinbase transactions, and blocks are updated to version 2.
| + | [http://bitcoin.it/ http://bitcoin.it/] |
− | | |
− | ==Motivation==
| |
− | | |
− | # Clarify and exercise the mechanism whereby the bitcoin network collectively consents to upgrade transaction or block binary structures, rules and behaviors.
| |
− | # Enforce block and transaction uniqueness, and assist unconnected block validation.
| |
− | | |
− | ==Specification==
| |
− | | |
− | # Treat transactions with a version greater than 1 as non-standard (official Satoshi client will not mine or relay them).
| |
− | # Add height as the first item in the coinbase transaction's scriptSig, and increase block version to 2. The format of the height is "serialized CScript" -- first byte is number of bytes in the number (will be 0x03 on main net for the next 300 or so years), following bytes are little-endian representation of the number. Height is the height of the mined block in the block chain, where the genesis block is height zero (0).
| |
− | # 75% rule: If 750 of the last 1,000 blocks are version 2 or greater, reject invalid version 2 blocks. (testnet3: 51 of last 100)
| |
− | # 95% rule ("Point of no return"): If 950 of the last 1,000 blocks are version 2 or greater, reject all version 1 blocks. (testnet3: 75 of last 100)
| |
− | | |
− | ==Backward compatibility==
| |
− | | |
− | All older clients are compatible with this change. Users and merchants should not be impacted. Miners are strongly recommended to upgrade to version 2 blocks. Once 95% of the miners have upgraded to version 2, the remainder will be orphaned if they fail to upgrade.
| |
− | | |
− | ==Implementation==
| |
− | | |
− | https://github.com/bitcoin/bitcoin/pull/1526
| |
− | | |
− | ==Result==
| |
− | | |
− | Block number 227,835 (timestamp 2013-03-24 15:49:13 GMT) was the last version 1 block.
| |
− | | |
− | [[Category:Developer]]
| |
− | [[Category:Technical]]
| |
− | [[Category:BIP|D]]
| |