Commit Graph

12233 Commits

Author SHA1 Message Date
William M Peaster 7e99b6c094
Handful of copyedits to README.md
A few copyedits for improved grammatical polish and clarity
2019-03-27 17:46:28 -05:00
Homu be1d68ef76 Auto merge of #3922 - bitcartel:release-v2.0.4, r=bitcartel
Release v2.0.4
2019-03-26 13:02:51 -07:00
Simon 0a378eb96e Update company name. 2019-03-26 12:11:30 -07:00
Simon e8335eed41 make-release.py: Updated release notes and changelog for 2.0.4. 2019-03-26 11:29:21 -07:00
Simon 1a701e2354 make-release.py: Updated manpages for 2.0.4. 2019-03-26 11:29:21 -07:00
Simon 108dc2df95 make-release.py: Versioning changes for 2.0.4. 2019-03-26 11:25:19 -07:00
Homu 756e9246c3 Auto merge of #3919 - defuse:openssl-regression, r=bitcartel
Fix OpenSSL reproducible build regression
2019-03-26 00:02:32 -07:00
Homu de85e07f09 Auto merge of #3918 - defuse:fix-proton-patch, r=bitcartel
Fix proton patch regression.

Closes #3916.  Fixes a regression introduced in #3809.

Co-authored-by: Daira Hopwood <daira@jacaranda.org>
2019-03-25 22:16:13 -07:00
Taylor Hornby 675cf3d606 Patch out proton::url deprecation as workaround for build warnings 2019-03-25 17:38:07 -06:00
Taylor Hornby b85cd8891e Fix OpenSSL reproducible build regression 2019-03-25 14:27:14 -06:00
Taylor Hornby 8088476911 Fix proton patch regression. #3916 2019-03-25 11:46:37 -06:00
Homu 59e82c64e9 Auto merge of #3903 - bitcartel:release-v2.0.4-rc1, r=bitcartel
Release v2.0.4 rc1
2019-03-20 10:58:26 -07:00
Simon 82f33c4b13 Fix typo in release notes. 2019-03-20 10:20:51 -07:00
Simon dae9cf5704 make-release.py: Updated release notes and changelog for 2.0.4-rc1. 2019-03-20 09:39:43 -07:00
Simon f70a9eee7a make-release.py: Updated manpages for 2.0.4-rc1. 2019-03-20 09:39:43 -07:00
Simon b95cb71653 make-release.py: Versioning changes for 2.0.4-rc1. 2019-03-20 09:29:06 -07:00
Homu 3c5062aa90 Auto merge of #3898 - sandakersmann:patch-1, r=bitcartel
Update COPYRIGHT_YEAR in clientversion.h to 2019

Update COPYRIGHT_YEAR in clientversion.h to 2019
2019-03-20 07:36:25 -07:00
Homu d347eb585b Auto merge of #3900 - bitcartel:2.0.4_release_notes, r=bitcartel
Update release notes for 2.0.4
2019-03-19 23:05:39 -07:00
Homu 6158f0a4fa Auto merge of #3897 - ebfull:wallet-sprout-check-commitment, r=ebfull
Check consistency of note commitment and ciphertext in wallet

Fixes #3896.
2019-03-19 21:21:54 -07:00
Simon 93d358eb16 Update release notes for 2.0.4
Co-authored-by: Jack Grigg <jack@z.cash>
2019-03-19 19:43:37 -07:00
Homu 6391741d1f Auto merge of #3890 - zebambam:add_dns_rebinding_warnings_security_3841, r=mdr0id
Added documentation warnings about DNS rebinding attacks, issue #3841

For AMQP and ZMQP.
2019-03-19 15:50:34 -07:00
Sean Bowe c1009374b1 (wallet) Check that the commitment matches the note plaintext provided by the sender. 2019-03-19 13:12:26 -06:00
Homu 008705d7c1 Auto merge of #3885 - ebfull:turnstile, r=bitcartel
Reject blocks that violate turnstile

This is an implementation of a consensus rule which marks blocks as invalid if they would lead to a turnstile violation in the Sprout or Shielded value pools. The motivations and deployment details can be found in the [accompanying ZIP draft](https://github.com/zcash/zips/pull/210).

**This PR only introduces the rule for testnet at the moment.**

We achieve the institution of this rule in three ways:

1. Nodes prior to #2795 did not record the "delta" in the Sprout value pool balance as part of the on-disk block index. This was a long time ago, though, and all nodes that are consensus-compatible with the network today have been recording this value for newer blocks. However, the value is absent from older block indexes unless the node has reindexed or synchronized from scratch in the time since. We shouldn't need to require nodes to reindex in order to enforce this consensus rule. We avoid this problem by falling back on a hardcoded Sprout shielded value pool balance in a very recent block.
2. If during `ConnectBlock` we observe that the resulting shielded value pool balance of Sprout or Sapling is negative, we reject the block.
3. During the miner's block assembly process the miner will skip over transactions if adding them to the assembled block might violate the turnstile, since the resulting block would be invalid. This means that theoretical transactions violating the turnstile would still be relayed in the network (and made available in users' memory pools) and so a turnstile violation would have some visibility outside of block relay.

## Smoke Testing

It's really tricky to test the behavior that automatically falls back to hardcoded shielded value pool balances in our architecture because it's very testnet-specific and node-version-specific. However, we can do some smoke tests to see that everything is working.

I modified the serialization of `CDiskBlockIndex` to serialize `boost::none` for `nSproutValue`

```
if ((s.GetType() & SER_DISK) && (nVersion >= SPROUT_VALUE_VERSION)) {
    boost::optional<CAmount> nSproutValueFake = boost::none;
    READWRITE(nSproutValueFake);
}
```

and then began a reindex of my node which I interruped around height 130k on testnet. I then restored the original serialization and resumed the reindex; I have thus _roughly_ simulated a older node "upgrading" to a newer node that records the deltas when processing new blocks. My node showed pool monitoring was disabled, as expected, for Sprout. I confirmed that some blocks following the reindex had nonzero Sprout `valueDelta` from `getblock`, as expected. I finished the reindex, restarted the node, and confirmed that the serialization worked for newer blocks but not older blocks by querying `getblock`, simply as a reassurance.

Finally, I introduced the code in this PR and reloaded the node. The desired behavior (that the chain began to be "monitored" again) worked, and the values were consistent with the hardcoded constant. I then made a payment to a Sprout z-addr from the transparent pool and the pool value increased as expected, as reported by `getblockchaininfo`. I reindexed the node again to exercise the remaining logic and check for turnstile violations throughout the history of testnet; there were none.
2019-03-19 12:10:17 -07:00
Sean Bowe 8d0e2befe7 (minor) Remove added newline. 2019-03-19 12:45:21 -06:00
Sean Bowe 4e3dca978b Do not enable ZIP209 on regtest right now. 2019-03-19 12:44:53 -06:00
Marius Kjærstad 3f8e662a89
Update COPYRIGHT_YEAR in clientversion.h to 2019
Update COPYRIGHT_YEAR in clientversion.h to 2019
2019-03-19 17:42:52 +01:00
Homu 5a8a1b450e Auto merge of #3839 - sandakersmann:master, r=bitcartel
Update of copyright year to 2019

Update of copyright year to 2019
2019-03-18 23:04:26 -07:00
Homu 8eb6101ef8 Auto merge of #3846 - garethtdavies:updated-logo, r=bitcartel
Correcting logo on README

As a follow up to https://github.com/zcash/zcash/pull/3509 which I closed due to the updated branding. The logo [still has the wrong aspect ratio]. This corrects it with the logo taken from https://z.cash/press/ while preserving the original image dimensions and aspect ratio. I added it at 2x for retina displays.
2019-03-18 21:19:22 -07:00
Homu aa0d1f3b94 Auto merge of #3892 - zebambam:add_responsible_disclosure_statement_security_3869, r=bitcartel
Added responsible disclosure statement for issue #3869
2019-03-18 18:29:43 -07:00
Homu 1078c7f9a6 Auto merge of #3887 - bitcartel:2.0.4_pre_release, r=bitcartel
Update chain work and checkpoint for 2.0.4

Closes #3886
2019-03-18 14:53:09 -07:00
Sean Bowe 30a5d6f520 Only enforce Sapling turnstile if balance values have been populated. 2019-03-18 14:09:32 -06:00
Sean Bowe b5c7e63bcd Change SproutValuePoolCheckpointEnabled to ZIP209Activated 2019-03-18 11:32:26 -06:00
zebambam 1da8882d88 Added responsible disclosure statement for issue #3869 2019-03-15 16:08:57 -07:00
zebambam daf97cb441 Added documentation warnings about DNS rebinding attacks, issue #3841 2019-03-15 16:00:27 -07:00
Sean Bowe 6482b661ab Check blockhash of fallback block for Sprout value pool balance 2019-03-14 15:39:11 -06:00
Sean Bowe ebe2edce9a Add newlines to turntile log messages for miner 2019-03-14 15:25:31 -06:00
Sean Bowe 831725a671 Use existing chainparams variable 2019-03-14 15:25:10 -06:00
Sean Bowe 2b1252af80 Consolidate logic to enable turnstile auditing for testnet/regtest/mainnet. 2019-03-14 14:29:04 -06:00
Sean Bowe cb6df4b0cc Fix tallying for Sprout/Sapling value pools. 2019-03-14 14:08:12 -06:00
Simon ea5f00aa5d Add checkpoint for block 497000. 2019-03-13 17:31:49 -07:00
Simon 16385486b8 Update nMinimumChainWork using block 497000. 2019-03-13 17:24:43 -07:00
Sean Bowe bf4de896e7 (testnet/regtest) Avoid mining transactions that would violate the turnstile. 2019-03-13 01:38:34 -06:00
Sean Bowe 8a990a7d64 (testnet) Reject blocks that result in turnstile violations 2019-03-13 00:54:29 -06:00
Sean Bowe 24db3297df (testnet) Fall back to hardcoded shielded pool balance to avoid reorgs. 2019-03-13 00:43:54 -06:00
Homu 1cbe5075d6 Auto merge of #3762 - str4d:2074-detach-wallet-from-miner, r=Eirik0
Detach wallet from miner

Cherry-picked from upstream PR bitcoin/bitcoin#5994.

Part of #2074.
2019-03-12 13:01:31 -07:00
Jack Grigg 1fee15028f
Move payment disclosure code and tests into wallet
The code was already compiled as part of the wallet, but the tests were
not, meaning that the tests would fail to compile when the wallet was
disabled.
2019-03-06 10:04:23 +13:00
Jack Grigg c7fc78987a
Move utiltest.cpp from wallet to common
This ensures it is accessible by the test suite when the wallet is
disabled.
2019-03-06 09:41:39 +13:00
Jack Grigg c233f6fd31
Add comments 2019-03-06 09:03:55 +13:00
Jack Grigg 3cb20f26a1
test: Make expected_utxos optional in get_coinbase_address() 2019-03-06 09:03:55 +13:00
Jack Grigg b0f1d643aa
test: Fetch coinbase address from coinbase UTXOs
After upstream PR bitcoin/bitcoin#5994, the first call to getnewaddress after
startup does not return the address being used by the miner.
2019-03-06 09:03:51 +13:00