Prevent arbitrary files from being overwritten. There have been reports
that users have overwritten wallet files this way. It may also avoid
other security issues.
Fixes#9934. Adds mention to release notes and adds a test.
This reduces the overhead in the git repo due to binary blobs of
the png files.
Also, the documentation can be updated independent of any tags and
release cycles.
204cc98 fix link error (Shooter)
Pull request description:
The `perform-gitian-builds` is not exist,
replace `perform-gitian-builds` with `setup-and-perform-gitian-builds`.
Tree-SHA512: c4f3fb4b6ae502a2e7a6857d3075734d493f549871b80ec00a2733ee689b00f98aa67ce7c3b7facf1ae4949b7845e1e2ef6f727aeca0c88c00b46d77b4d7e570
90ab62c45 [docs] document scripted-diff (John Newbery)
Pull request description:
Document scripted-diffs in developer-notes.md
I sometimes comment on PRs that a scripted-diff would be appropriate, but I don't have any documentation to point to. Fix that.
Tree-SHA512: 7d4a14b9217c812e4c27601e5e6dd8054cf5104cd20ecbe1ec0a84c217cc4b0645b7c0d2e3a89fdd4d059cafbc388acbddba75a430308f8279200b9383e009de
723aa1b qt: Backup former GUI settings on `-resetguisettings` (Wladimir J. van der Laan)
Pull request description:
Writes the GUI settings to `guisettings.bak` in the data directory before wiping them. This can be used to retroactively troubleshoot issues (e.g. #11262) where `-resetguisettings` solves the problem.
(as discussed in yesterday's IRC meeting)
Tree-SHA512: c64f5052d992eb02057ba285435f143c42d0cc456144a4c565e1c87be833737f9df750d0aee10810f85047c820d9b4f9f22fd94a6f09f4b28a9cf41b63a56586
Writes the GUI settings to `guisettings.bak` in the data directory
before wiping them. This can be used to retroactively troubleshoot
issues (e.g. #11262) where `-resetguisettings` solves the problem.
fa65dcd doc: Update release notes for 0.16.0 (MarcoFalke)
fa2c3b6 doc: Bump manpages to 0.15.99 (MarcoFalke)
Pull request description:
This updates the release notes for the breaking changes to `-usehd` option and the `getinfo` rpc.
Also, bumps the manpages to current master.
Tree-SHA512: 55b74375fa680d6043882e3cc37bc655840c9e719d67f60d4d615c10399d570cf6ed4dc338635be80d4044d4ed12cebde1370729ccb6794182e6d9c9910dab04
e91b96192 Create dependencies.md, and link dependencies file from README & build docs (flack)
Pull request description:
As @fanquake mentioned in #8639, this should probably be a file in `doc/`, so I went ahead and pulled the issue text via the github API and dumped it into a file. No modifications made, except one spelling fix. This makes the info easier to find, and it will get a proper version history, too.
Tree-SHA512: 6ba4c37c97200972a74724e0e346d6ad5947c01ad18638e15250f2b4cd747dd744aba16e306c98d59f35736542a5eded7a17b6a5ce6aebc63c0a9dc969b365ef
ce3baa193 changed regtest RPCport to 18443 to avoid conflict with testnet 18332 (Ferdinando M. Ametrano)
Pull request description:
using the same JSON-RPC default port for both testnet and regtest prevents running both at the same time on the same machine. Since RPCport=P2Pport-1 for both mainnet and testnet, and regtest P2Pport being 18444, 18443 is proposed for regtest RPCport
Documentation has been updated (or created where missing); manpages doc/man/bitcoin*.1 could include information for regtest too
Tree-SHA512: d42185f7ef54dc918ece19b543c8681d08bb9c5a971394e21f2d9a1091734b091b08df69fab622c207b46f402cf9323ded5b7a33fbd0af722388930169124e7f
python3 is required for running the unit tests on macOS, Ubuntu and Fedora.
Without python3 installed, 'make check' fails because /test/util/bitcoin-util-test.py fails to find python3.
f1708ef89 Add recommendation: By default, declare single-argument constructors `explicit` (practicalswift)
Pull request description:
This is a follow-up to the now merged #10969.
Add recommendation:
> By default, declare single-argument constructors `explicit`.
>
> - *Rationale*: This is a precaution to avoid unintended conversions that might arise when single-argument constructors are used as implicit conversion functions.
>
Tree-SHA512: 1ceb1008a7863ebd0f09ba9c06b4e28b3b03265d7381f9d0c8bd4be1663d5d0392de0ecd811027aa27c0d962723674b245b3c165a437942a776f3525db39d36b
fa14b67 [doc] build-windows: Mention that only trusty works (MarcoFalke)
Pull request description:
This should prevent people from running into the issues to later find that there is no solution yet.
Tree-SHA512: c0512bb15ebd62113a4195a9577fec4ddacf164509673e178c6b5445c16ab7b110a13ba829e6eebb2a66dff61eeac6ec77f7c5f60bd64685a0c0d99f71f4edf7
745d2e3 Clean up getbalance RPC parameter handling (Russell Yanofsky)
fd5d71e Update developer notes after params.size() cleanup (Russell Yanofsky)
e067673 Avoid treating null RPC arguments different from missing arguments (Russell Yanofsky)
e666efc Get rid of redundant RPC params.size() checks (Russell Yanofsky)
Pull request description:
This is a followup to #10783.
- The first commit doesn't change behavior at all, just simplifies code.
- The second commit just changes RPC methods to treat null arguments the same as missing arguments instead of throwing type errors.
- The third commit updates developer notes after the cleanup.
- The forth commit does some additional code cleanup in `getbalance`.
Followup changes that should happen in future PRs:
- [ ] Replace uses of `.isTrue()` with calls to `.get_bool()` so numbers, objects, and strings cause type errors instead of being interpreted as false. https://github.com/bitcoin/bitcoin/pull/11050#discussion_r133850525
- [ ] Add braces around if statements. https://github.com/bitcoin/bitcoin/pull/11050#discussion_r133851133
- [ ] Maybe improve UniValue type error exceptions and eliminate RPCTypeCheck and RPCTypeCheckArgument functions. https://github.com/bitcoin/bitcoin/pull/11050#discussion_r133829303
Tree-SHA512: e72f696011d20acc0778e996659e41f9426bffce387b29ff63bf59ad1163d5146761e4445b2b9b9e069a80596a57c7f4402b75a15d5d20f69f775ae558cf67e9
bea8e9e Document the preference of nullptr over NULL or (void*)0 (practicalswift)
Pull request description:
Document the preference of `nullptr` over `NULL` or `(void*)0`.
After this commit:
```
$ git grep "[^A-Za-z_]NULL[^A-Za-z_]" | grep -vE '(leveldb|univalue|secp256k1|torcontrol|NULL certificates|ctaes|release-notes|patches|configure.ac|developer-notes)'
$
```
Some context:
* `NULL → nullptr` was handled in the recently merged PR #10483
* `0 → nullptr` was handled in the recently merged PR #10645
Tree-SHA512: f863096aa4eb21705910f89713ca9cc0d83c6df2147e3d3530c3e1589b96f6c68de8755dcf37d8ce99ebda3cfb69805e00eab13bf65424aaf16170e9dda3958a
5be6e9b doc: Update build-openbsd for 6.1 (Wladimir J. van der Laan)
Pull request description:
- Bump "updated for"
- Fix link to boost (haenet mirror is broken)
- Upgrade boost version to 1.64
Ref: closes#10796
Tree-SHA512: 14d5e6a21c7079f5b16d763dd27abe6971c47b4ea2b563e10aafad52515d1d64abe395ecef6f2c00d41c1f852946831fb58737dcabf769b21a69b31d98727ad6
d201e40 Update init.md: Fix section numbering. (Carl Dong)
72a184a Update init.md: Fix line breaks in section 3b. (Carl Dong)
Pull request description:
Trivial commit that fixes Markdown line breaks in `docs/init.md`. Markdown line breaks take the form of two spaces, which is hard to spot when viewing raw text but visible when previewing on GitHub. Line 72-73 of `docs/init.md` did not conform to the rest the rest of the documentation, and is corrected in this PR.
Tree-SHA512: e5f048bd4e9e1e68372c95881f68b157a3c205d4dbcc6ccd24f2c0171b84d8cf7907d1835c6754ce57f35f9463820353ad7ae70c2e3de20136382ea3ee8bc4ff
1d8df0141 Fix MD formatting in REST-interface.md and spelling mistake in test_runner.py (MeshCollider)
41f3e84aa Fix inconsistencies and grammar in various files (MeshCollider)
Pull request description:
Just a simple fix of some inconsistent capitalization, formatting and grammar in a few files (no code changes)
Tree-SHA512: 60b12a5a5c69a1af4a25b7db0b32ed806ed62ad2966cee08b3792a7cfa7f51848fd485349b4c09e60a7eedfdf55ee730c51daa066d6e226ae404c93342bf3e13
f42fc1d50 doc: spelling fixes (klemens)
Pull request description:
patch contains some spelling fixes ( just in comments ) as found by a bot ( http://www.misfix.org, https://github.com/ka7/misspell_fixer ).
Tree-SHA512: ba6046cfcd81b0783420daae7d776be92dd7b85a593e212f8f1b4403aca9b1b6af12cef7080d4ea5ed4a14952fd25e4300109a59c414e08f5395cdb9947bb750
Now that 0.15 branch has been split off, master is 0.15.99 (pre-0.16).
Also clean out release notes.
Tree-SHA512: 160f712fae7bfc51e49e36a27ab01f5c243b79a19a70312df95f9bc5cb8067c70aa88911f741fd1625bee549a70655eaea24d98f6049d98c3c14ee1b3143f4cb
e93ff71 Add instructions for multi-processor gitian builds (Charlie Lee)
Pull request description:
This makes builds much faster if you have a multi-core machine.
Tree-SHA512: edb64c691a31a8a2e6c45f87886912d429a3fd600ebc0de2b16d44efd9d38bb92fea33c5fed207ad684b75d3247218912cab67661466a5538d534845e0808c9f
5a9b508 [trivial] Add end of namespace comments (practicalswift)
Tree-SHA512: 92b0fcae4d1d3f4da9e97569ae84ef2d6e09625a5815cd0e5f0eb6dd2ecba9852fa85c184c5ae9de5117050330ce995e9867b451fa8cd5512169025990541a2b
A few "a->an" and "an->a".
"Shows, if the supplied default SOCKS5 proxy" -> "Shows if the supplied default SOCKS5 proxy". Change made on 3 occurrences.
"without fully understanding the ramification of a command" -> "without fully understanding the ramifications of a command".
Removed duplicate words such as "the the".
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
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.
661caf8 [doc] Minor corrections to osx dependencies (fanquake)
Tree-SHA512: 61451807d6208002550d2e37d26094a5515b11daacab39eb508b6168eebcea86f93dcc7f853aab490baec3727740c90d404c481e11b3d03dcea9f76f8fc7be12
41b8821 Add updating of chainTxData to release process (Pieter Wuille)
Tree-SHA512: f7d6e72b19aa83fc4851a9316d6c6a236e0e914d637525cda42c0b15a94543b8072ce67b57d6b12141332a03b64b6c715dff4d61e6e58e0197b22305b35ad65d
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
8c156b7 Bugfix: Only install manpages for built programs (Luke Dashjr)
Tree-SHA512: f4c40910b257274a05d9c842b9adb5d9d01df7dd2d34a18bd2d98c78810dc3ed98ed12c08c55352e36a845f06ddb1efba9d4ecf5f1123d2c58406a5ecf589836
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.
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.