Commit Graph

856 Commits

Author SHA1 Message Date
Pieter Wuille
1088b02f0c
Merge #10195: Switch chainstate db and cache to per-txout model
589827975 scripted-diff: various renames for per-utxo consistency (Pieter Wuille)
a5e02bc7f Increase travis unit test timeout (Pieter Wuille)
73de2c1ff Rename CCoinsCacheEntry::coins to coin (Pieter Wuille)
119e552f7 Merge CCoinsViewCache's GetOutputFor and AccessCoin (Pieter Wuille)
580b02309 [MOVEONLY] Move old CCoins class to txdb.cpp (Pieter Wuille)
8b25d2c0c Upgrade from per-tx database to per-txout (Pieter Wuille)
b2af357f3 Reduce reserved memory space for flushing (Pieter Wuille)
41aa5b79a Pack Coin more tightly (Pieter Wuille)
97072d668 Remove unused CCoins methods (Pieter Wuille)
ce23efaa5 Extend coins_tests (Pieter Wuille)
508307968 Switch CCoinsView and chainstate db from per-txid to per-txout (Pieter Wuille)
4ec0d9e79 Refactor GetUTXOStats in preparation for per-COutPoint iteration (Pieter Wuille)
13870b56f Replace CCoins-based CTxMemPool::pruneSpent with isSpent (Pieter Wuille)
05293f3cb Remove ModifyCoins/ModifyNewCoins (Pieter Wuille)
961e48397 Switch tests from ModifyCoins to AddCoin/SpendCoin (Pieter Wuille)
8b3868c1b Switch CScriptCheck to use Coin instead of CCoins (Pieter Wuille)
c87b957a3 Only pass things committed to by tx's witness hash to CScriptCheck (Matt Corallo)
f68cdfe92 Switch from per-tx to per-txout CCoinsViewCache methods in some places (Pieter Wuille)
000391132 Introduce new per-txout CCoinsViewCache functions (Pieter Wuille)
bd83111a0 Optimization: Coin&& to ApplyTxInUndo (Pieter Wuille)
cb2c7fdac Replace CTxInUndo with Coin (Pieter Wuille)
422634e2f Introduce Coin, a single unspent output (Pieter Wuille)
7d991b55d Store/allow tx metadata in all undo records (Pieter Wuille)
c3aa0c119 Report on-disk size in gettxoutsetinfo (Pieter Wuille)
d34242430 Remove/ignore tx version in utxo and undo (Pieter Wuille)
7e0032290 Add specialization of SipHash for 256 + 32 bit data (Pieter Wuille)
e484652fc Introduce CHashVerifier to hash read data (Pieter Wuille)
f54580e7e error() in disconnect for disk corruption, not inconsistency (Pieter Wuille)
e66dbde6d Add SizeEstimate to CDBBatch (Pieter Wuille)

Tree-SHA512: ce1fb1e40c77d38915cd02189fab7a8b125c7f44d425c85579d872c3bede3a437760997907c99d7b3017ced1c2de54b2ac7223d99d83a6658fe5ef61edef1de3
2017-06-01 16:20:27 -07:00
Pieter Wuille
47d8441466 Update style guide 2017-05-26 15:58:03 -07:00
Pieter Wuille
d342424301 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.
2017-05-26 13:27:50 -07:00
practicalswift
693247b82b [test] Speed up fuzzing by ~200x when using afl-fuzz
Enable the `afl-clang-fast++` features deferred forkserver (`__AFL_INIT`) and persistent mode (`__AFL_LOOP(1000)`).

Before this patch:

```
$ afl-fuzz -i input -o output -m512 -- src/test/test_bitcoin_fuzzy
[*] Validating target binary...
[!] WARNING: The target binary is pretty slow! See /usr/local/share/doc/afl/perf_tips.txt.
[+] Here are some useful stats:

    Test case count : 1 favored, 0 variable, 1 total
       Bitmap range : 1072 to 1072 bits (average: 1072.00 bits)
        Exec timing : 20.4k to 20.4k us (average: 20.4k us)
…
exec speed : 57.58/sec (slow!)
exec speed : 48.35/sec (slow!)
exec speed : 53.78/sec (slow!)
```

After this patch:

```
$ afl-fuzz -i input -o output -m512 -- src/test/test_bitcoin_fuzzy
[*] Validating target binary...
[+] Persistent mode binary detected.
[+] Deferred forkserver binary detected.
[+] Here are some useful stats:

    Test case count : 1 favored, 0 variable, 1 total
       Bitmap range : 24 to 24 bits (average: 24.00 bits)
        Exec timing : 114 to 114 us (average: 114 us)
…
exec speed : 15.9k/sec
exec speed : 13.1k/sec
exec speed : 15.1k/sec
```
2017-05-19 07:28:46 +02:00
Pavel Janík
f203ecc621 Shadowing is not enabled by default, update doc accordingly. 2017-05-10 19:48:24 +02:00
Wladimir J. van der Laan
1d75597ba6
Merge #10260: [doc] Minor corrections to osx dependencies
661caf8 [doc] Minor corrections to osx dependencies (fanquake)

Tree-SHA512: 61451807d6208002550d2e37d26094a5515b11daacab39eb508b6168eebcea86f93dcc7f853aab490baec3727740c90d404c481e11b3d03dcea9f76f8fc7be12
2017-05-02 18:49:31 +02:00
Wladimir J. van der Laan
c26655ed3f doc: Add RPC interface guidelines 2017-05-02 07:51:49 +02:00
fanquake
661caf83b3
[doc] Minor corrections to osx dependencies 2017-04-23 08:47:44 +08:00
Wladimir J. van der Laan
f8feaa4636
doc: Add historical release notes for 0.14.1 2017-04-22 16:18:52 +02:00
Shigeya Suzuki
0611bc3439 Minor fix in build documentation for FreeBSD 11
- Package name is libevent, not libevent2
- Need to use GNU make
2017-04-21 10:09:10 +09:00
Pavel Janík
9eaf7189d8 Ignore Doxyfile generated from Doxyfile.in template. 2017-04-07 16:28:12 +02:00
Wladimir J. van der Laan
9ff781884a doc: Update release process for simplified version bumping 2017-04-06 10:41:34 +02:00
Wladimir J. van der Laan
168a7034f5 doc: Make build system insert version in Doxyfile 2017-04-05 09:40:56 +02:00
Wladimir J. van der Laan
b67eb8dde8 doc: Remove version numbers from READMEs
If we want to keep these numbers, could generate them using autoconf.
But this seems unnecessary.
2017-04-05 09:40:48 +02:00
MarcoFalke
3192e5278a
Merge #9956: Reorganise qa directory
63d66ba Move src/test/bitcoin-util-test.py to test/util/bitcoin-util-test.py (John Newbery)
5b0bff4 Rename --enable-extended-rpc-tests to --enable-extended-functional-tests (John Newbery)
a9bd622 Rename test/pull-tester/rpc-tests.py to test/functional/test_runner.py (John Newbery)
c28ee91 Rename rpc-tests directory to functional (John Newbery)
00902c4 Rename qa directory to test (John Newbery)

Tree-SHA512: ee7125c0c647d81590177beef2c8852c4ef76fdcf888096d9d4d360562a01d8d3b453345c3040487b2a043935bd1e7e80018f34462d6e02262bedbe23edcc576
2017-03-21 00:11:14 +01:00
Wladimir J. van der Laan
0c17afcbe7
Merge #9734: Add updating of chainTxData to release process
41b8821 Add updating of chainTxData to release process (Pieter Wuille)

Tree-SHA512: f7d6e72b19aa83fc4851a9316d6c6a236e0e914d637525cda42c0b15a94543b8072ce67b57d6b12141332a03b64b6c715dff4d61e6e58e0197b22305b35ad65d
2017-03-20 17:59:20 +01:00
John Newbery
c28ee91db0 Rename rpc-tests directory to functional 2017-03-20 10:40:31 -04:00
John Newbery
00902c48cd Rename qa directory to test 2017-03-20 10:40:31 -04:00
Wladimir J. van der Laan
8bcf9342b8
Merge #9995: [doc] clarify blockchain size and pruning
b26ea0a specify blockchain size & default behaviour (over pruning) (Mike van Rossum)

Tree-SHA512: f21e1ea0df66500f9f899c429984e7c3de6d1cb1a216f2784061731fe22d5b8e9e48042dfc9db3c92adc6d6b6bb0c2578ca431fe5268b2a907ee2c0fdb60b4c5
2017-03-16 11:13:32 +01:00
Mike van Rossum
b26ea0a8db specify blockchain size & default behaviour (over pruning) 2017-03-15 23:00:41 +00:00
Lawrence Nahum
1eff6c6eac
fix gitian doc example typo 2017-03-15 14:40:40 +01:00
Wladimir J. van der Laan
2cc0df1fce
Merge #9514: release: Windows signing script
09fe2d9 release: update docs to show basic codesigning procedure (Cory Fields)
f642753 release: create a bundle for the new signing script (Cory Fields)
0068361 release: add win detached sig creator and our cert chain (Cory Fields)

Tree-SHA512: 032ad84697c70faaf857b9187f548282722cffca95d658e36413dc048ff02d9183253373254ffcc1158afb71140753f35abfc9fc8781ea5329c04d13c98759c0
2017-03-13 07:44:53 +01:00
Wladimir J. van der Laan
02bd6e9bc6
Merge #9853: Fix error codes from various RPCs
adaa281 Update release notes to include RPC error code changes. (John Newbery)
338bf06 Add commenting around JSON error codes (John Newbery)
dab804c Return correct error codes in fundrawtransaction(). (John Newbery)
a012087 Return correct error codes in setban(). (John Newbery)
960bc7f Return correct error codes in removeprunedfunds(). (John Newbery)
c119096 Return correct error codes in blockchain.cpp. (John Newbery)
6d07c62 Return correct error codes in bumpfee(). (John Newbery)

Tree-SHA512: 4bb39ad221cd8c83d98ac5d7ad642f3a8c265522720dc86b2eebc70e74439a85b06d6ddcd6a874e879d986511de3ab0878bb7fe58b50cb0546b78913632ea809
2017-03-09 10:02:17 +01:00
John Newbery
adaa281da1 Update release notes to include RPC error code changes. 2017-03-08 14:23:16 -05:00
Wladimir J. van der Laan
2de6930306 Add historical release notes for 0.14.0 2017-03-08 16:23:16 +01:00
Wladimir J. van der Laan
1ce7ec2a4f
Merge #9892: Bugfix: Only install manpages for built programs
8c156b7 Bugfix: Only install manpages for built programs (Luke Dashjr)

Tree-SHA512: f4c40910b257274a05d9c842b9adb5d9d01df7dd2d34a18bd2d98c78810dc3ed98ed12c08c55352e36a845f06ddb1efba9d4ecf5f1123d2c58406a5ecf589836
2017-03-01 12:33:38 +01:00
Luke Dashjr
8c156b7f70 Bugfix: Only install manpages for built programs 2017-02-28 23:00:35 +00:00
Suhas Daftuar
fe71661ae1 [doc] Update doc/bips.md for BIP90 implementation 2017-02-27 12:21:40 -05:00
Wladimir J. van der Laan
eb4910193a doc: Update manpages for master
(cherry picked from commit 268c390d02d99a4a93a0a01221e273d2b9695ff7)
2017-02-18 11:55:33 +01:00
Wladimir J. van der Laan
f87e8f5392
build: bump version to 0.14.99
Now that 0.14 branch has been split off, master is 0.14.99 (pre-0.15).

Also clean out release notes.
2017-02-17 17:27:18 +01:00
Wladimir J. van der Laan
afae75fd3d
Merge #9675: Fix typo and spelling inconsistency in CONTRIBUTING.md
36164fa Fix typo and spelling inconsistency in CONTRIBUTING.md (Koki Takahashi)
2017-02-16 15:05:55 +01:00
Pieter Wuille
41b8821adf Add updating of chainTxData to release process 2017-02-09 18:58:35 -08:00
Koki Takahashi
36164faa33 Fix typo and spelling inconsistency in CONTRIBUTING.md
Fix spellings of GitHub

Remove unnecessary changes

Fix GitHub spelling on doc/translation_process.md
2017-02-09 11:56:44 +09:00
Wladimir J. van der Laan
5cc2ebb619 Update OpenBSD and FreeBSD build steps
Re-try with most recent versions, and use BDB_CFLAGS/BDB_LIBS to
directly point at BerkeleyDB instead of CPPFLAGS hacks.
2017-02-07 13:01:41 +01:00
MarcoFalke
fa5137c11d [doc] Remove unused clang format dev script
Also, update the clang format file to reflect the current coding
style mentioned in the developer notes.
2017-01-28 16:57:08 +01:00
Jonas Schnelli
c9f3062d55
Add fundrawtransactions new reserveChangeKey option to the release notes 2017-01-19 20:45:34 +01:00
Pieter Wuille
812714fd80
Merge #9484: Introduce assumevalid setting to skip validation presumed valid scripts.
7b5e3fe Add assumevalid testcase (John Newbery)
e440ac7 Introduce assumevalid setting to skip presumed valid scripts. (Gregory Maxwell)
2017-01-16 14:07:30 -08:00
MarcoFalke
4105cb6fd9
Merge #9550: Trim down the XP notice and say more about what we support.
7094bf7 Trim down the XP notice and say more about what we support. (Gregory Maxwell)
2017-01-15 05:59:09 +01:00
Gregory Maxwell
7094bf7970 Trim down the XP notice and say more about what we support.
The big notice at the top of the release note is not interesting
 to most users now and apparently comes across poorly to some.

Better to provide more information about what we do support.
2017-01-15 04:55:46 +00:00
Gregory Maxwell
e440ac7ef3 Introduce assumevalid setting to skip presumed valid scripts.
This disentangles the script validation skipping from checkpoints.

A new option is introduced "assumevalid" which specifies a block whos
 ancestors we assume all have valid scriptsigs and so we do not check
 them when they are also burried under the best header by two weeks
 worth of work.

Unlike checkpoints this has no influence on consensus unless you set
 it to a block with an invalid history.  Because of this it can be
 easily be updated without risk of influencing the network consensus.

This results in a massive IBD speedup.

This approach was independently recommended by Peter Todd and Luke-Jr
 since POW based signature skipping (see PR#9180) does not have the
 verifiable properties of a specific hash and may create bad incentives.

The downside is that, like checkpoints, the defaults bitrot and older
 releases will sync slower.  On the plus side users can provide their
 own value here, and if they set it to something crazy all that will
 happen is more time will be spend validating signatures.

Checkblocks and checklevel are also moved to the hidden debug options:
 Especially now that checkblocks has a low default there is little need
 to change these settings, and users frequently misunderstand them as
 influencing security or IBD speed.  By hiding them we offset the
 space added by this new option.
2017-01-13 15:42:24 +00:00
Alex Morcos
34ede124af Document fee estimation changes 2017-01-12 12:19:08 -05:00
Alex Morcos
b348287b79 Clarify that prioritisetransaction remains supported 2017-01-12 12:09:15 -05:00
Wladimir J. van der Laan
e2e624d9ce
Merge #7871: Manual block file pruning.
afffeea fixup! Add pruneblockchain RPC to enable manual block file pruning. (Russell Yanofsky)
1fc4ec7 Add pruneblockchain RPC to enable manual block file pruning. (mrbandrews)
2017-01-11 14:26:00 +01:00
Cory Fields
09fe2d9ec4 release: update docs to show basic codesigning procedure 2017-01-10 20:32:03 -05:00
Pieter Wuille
74994c6577 Improve style w.r.t. if 2017-01-10 11:58:27 -08:00
mrbandrews
1fc4ec7bf2 Add pruneblockchain RPC to enable manual block file pruning. 2017-01-10 08:14:50 -05:00
Gregory Maxwell
90f13e1822 Add release notes for addnode changes. 2017-01-05 19:02:15 +00:00
fanquake
35ee63c565
[Doc] Install Protobuf v3 on OS X 2017-01-04 17:08:04 +08:00
Wladimir J. van der Laan
03e1d6ce34
doc: Add historical release notes for 0.13.2 2017-01-03 11:52:31 +01:00
Jonas Schnelli
53442af0aa
Merge #9412: build: Fix 'make deploy' for OSX
2fb98f6 Fix bug in dmg builder so that it actually reads in the configuration file (Don Patterson)
b01667c Mention RSVG dependency when creating the disk image on OSX (Jonas Schnelli)
09aefb5 build: Fix 'make deploy' for OSX (Cory Fields)
2017-01-02 09:43:15 +01:00