From d342424301013ec47dc146a4beb49d5c9319d80a Mon Sep 17 00:00:00 2001 From: Pieter Wuille Date: Tue, 25 Apr 2017 11:29:18 -0700 Subject: Remove/ignore tx version in utxo and undo This makes the following changes: * In undo data and the chainstate database, the transaction nVersion field is removed from the data structures, always written as 0, and ignored when reading. * The definition of hash_serialized in gettxoutsetinfo is changed to no longer incude the nVersion field. It is renamed to hash_serialized_2 to avoid confusion. The new definition also includes transaction height and coinbase information, as this information was missing before. This depends on having a CHashVerifier-based undo data checksum verifier. Apart from changing the definition of serialized_hash, downgrading after using this patch is supported, as no release ever used the value of nVersion field in UTXO entries. --- test/functional/blockchain.py | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) (limited to 'test/functional/blockchain.py') diff --git a/test/functional/blockchain.py b/test/functional/blockchain.py index b6112c7280..b0faea9b38 100755 --- a/test/functional/blockchain.py +++ b/test/functional/blockchain.py @@ -49,10 +49,9 @@ class BlockchainTest(BitcoinTestFramework): assert_equal(res['transactions'], 200) assert_equal(res['height'], 200) assert_equal(res['txouts'], 200) - assert_equal(res['bytes_serialized'], 13924), assert_equal(res['bestblock'], node.getblockhash(200)) assert_equal(len(res['bestblock']), 64) - assert_equal(len(res['hash_serialized']), 64) + assert_equal(len(res['hash_serialized_2']), 64) self.log.info("Test that gettxoutsetinfo() works for blockchain with just the genesis block") b1hash = node.getblockhash(1) @@ -64,7 +63,7 @@ class BlockchainTest(BitcoinTestFramework): assert_equal(res2['height'], 0) assert_equal(res2['txouts'], 0) assert_equal(res2['bestblock'], node.getblockhash(0)) - assert_equal(len(res2['hash_serialized']), 64) + assert_equal(len(res2['hash_serialized_2']), 64) self.log.info("Test that gettxoutsetinfo() returns the same result after invalidate/reconsider block") node.reconsiderblock(b1hash) @@ -75,7 +74,7 @@ class BlockchainTest(BitcoinTestFramework): assert_equal(res['height'], res3['height']) assert_equal(res['txouts'], res3['txouts']) assert_equal(res['bestblock'], res3['bestblock']) - assert_equal(res['hash_serialized'], res3['hash_serialized']) + assert_equal(res['hash_serialized_2'], res3['hash_serialized_2']) def _test_getblockheader(self): node = self.nodes[0] -- cgit v1.2.3