Commit Graph
100 Commits
Author SHA1 Message Date
Homu b1d2a69908 Auto merge of #3202 - str4d:3058-sapling-bech32, r=str4d
Bech32 encoding support

Cherry-picked from the following upstream PRs:

- bitcoin/bitcoin#8578
- bitcoin/bitcoin#11167
  - Only the second and third commits (first is in #3228, fourth depends on #2390, later ones are SegWit-specific).
- bitcoin/bitcoin#12757
  - Only the change to `src/bech32.h`

Part of #3058.
2018-05-08 09:08:37 -07:00
Homu 0c1adf8281 Auto merge of #3201 - Eirik0:3190-dumpprivkey-help-text, r=str4d
Clarify help text of dumpprivkey

Closes #3190
2018-05-08 06:02:17 -07:00
Homu 0a98b97524 Auto merge of #3236 - str4d:3192-jsoutpoint-constructor, r=str4d
Change JSOutPoint constructor to have js argument be uint64_t

Closes #3192.
2018-05-08 02:50:04 -07:00
Homu 333b9a0d0b Auto merge of #3170 - ebfull:sapling-merkle-tree, r=ebfull
Sapling merkle tree implementation

Closes #3056.

Please also review https://github.com/zcash/librustzcash/pull/8

This PR:

1. Introduces ZCSaplingIncrementalMerkleTree using Pedersen hashes.
2. Adds support for Sapling anchors into consensus rules. (Adds commitments, checks anchors are correct, handles block (dis)connects, etc.)
3. Handles mempool eviction for obsolete anchors.
4. Enforces correctness of block's Sapling root field
5. Changes miner to correctly apply the Sapling root to the block header
6. Handles mempool consistency checks for anchors
2018-05-07 20:37:46 -07:00
Homu 1d4235dce7 Auto merge of #3239 - str4d:sapling-default-tx-version, r=str4d
Update CreateNewContextualCMutableTransaction for Sapling

Part of #3063.
2018-05-07 12:27:47 -07:00
Homu 265eca3f47 Auto merge of #3212 - str4d:2864-sapling-tx-size-limit, r=str4d
Raise 100kB transaction size limit from Sapling activation

Closes #2864.
2018-05-07 02:20:42 -07:00
Homu 8ef1d333b5 Auto merge of #2894 - per-gron:dont-export-unless-needed, r=str4d
Make some globals static that can be

I wrote this patch as part of making a Bazel build system but it really is independent from that so I'm putting this as a separate PR.

External linkage does not help and just encourages sloppy dependencies (ie using symbols only declared in a cpp file in some other cpp file) and can lead to weird issues when there are name collisions.
2018-05-04 15:05:43 -07:00
Homu d97bfb766b Auto merge of #3228 - str4d:3058-taddr-encoding-refactor, r=str4d
Refactor t-address encoding

Includes code cherry-picked from the following upstream PRs:

- bitcoin/bitcoin#11117
- bitcoin/bitcoin#11259
  - Only the second commit (first is for QT code)
- bitcoin/bitcoin#11167
  - Only the first commit (the rest are not part of the t-address encoding refactor).

Part of #3058. Precursor to #3202.
2018-05-03 18:12:22 -07:00
Homu 2d1a3cf8f5 Auto merge of #3183 - bitcartel:least_authority_issue_d, r=str4d
Closes #3182 - Least Authority Issue D

Prevent undefined behaviour when null pointer is passed in as parameter to function

Includes a backport of bitcoin/bitcoin#10250.
2018-05-03 16:39:10 -07:00
Homu c7f5d5ce1c Auto merge of #3227 - str4d:3191-nullifier-macos-fix, r=str4d
Fix -Wstring-plus-int warning on clang
2018-05-03 14:36:39 -07:00
Homu 9e5398686c Auto merge of #3206 - bitcartel:3194_polymorphic_note_class, r=str4d
Update note classes to be polymorphic

Closes #3194.  Lays foundation for introduction of Sapling notes through refactoring and creation of a class hierarchy for Sprout notes.  This PR updates some tests, but otherwise is a no-op.
2018-05-02 08:07:35 -07:00
Homu 53fa6f1315 Auto merge of #3179 - bitcartel:backport_transaction_details_in_getblock_v2bitcartel, r=str4d
Add improvements to getblock RPC output

Includes and supercedes #3095. Includes code cherry-picked from bitcoin/bitcoin#8704.
2018-05-01 10:19:10 -07:00
Homu 0a8d0c25e8 Auto merge of #3220 - Eirik0:3209-fix-CheckTransaction, r=str4d
Implement consensus rules about the number of Spend and Output Descriptions in a transaction

Closes #3209.
Part of #3065.
2018-05-01 07:09:52 -07:00
Homu 90304c4214 Auto merge of #3213 - str4d:3202-precursor, r=str4d
Upstream encoding cleanups

Cherry-picked from the following upstream PRs:

- bitcoin/bitcoin#7922
- bitcoin/bitcoin#7825
- bitcoin/bitcoin#8317
- bitcoin/bitcoin#9804
  - Only the commit that changed `base58.cpp`

Precursor to #3202.
2018-05-01 05:22:38 -07:00
Homu 23f8b30c88 Auto merge of #3193 - str4d:b9856-badalloc-terminate, r=bitcartel
Terminate immediately when allocation fails

Backport of bitcoin/bitcoin#9856

Closes #1498.
2018-05-01 02:09:51 -07:00
Homu a2ff78620a Auto merge of #3191 - Eirik0:3057-sapling-nullifier-set, r=str4d
Add sapling nullifier set

PR for https://github.com/zcash/zcash/issues/3057
2018-04-26 05:28:39 -07:00
Homu c6ab62191a Auto merge of #3205 - str4d:3173-missing-return, r=str4d
Return result of boost::apply_visitor

Not returning a value at the end of a non-void function is undefined behaviour.
Given that this managed to pass our full test suite, I guess that GCC looks for
un-returned values at the end of a function and uses them as the return value,
if the keyword is missing. Clang OTOH complains, which is how we spotted this:
https://ci.z.cash/#/builders/16/builds/282
2018-04-25 13:50:53 -07:00
Homu f961e5c3c0 Auto merge of #3195 - str4d:3180-clang-warnings, r=str4d
Remove now-unshadowed serialization lines that do nothing

Previously we had both nVersion as a class parameter *and* a serialization
argument, and in several inherited serializers the latter was set to the former,
in order to pass the serialized object's version into underlying parsers. #3180
pulled in the upstream changes to clean this up, and in doing so these lines
became no-ops - setting the class parameter to itself. Clang throws warnings on
this, which turn into errors on the MacOS builder.

We can just remove these, because upstream already had done so in earlier PRs,
indicating that they were not being relied on by underlying parsers.
2018-04-24 14:03:57 -07:00
Homu 68cf6f3c2d Auto merge of #3074 - arcalinea:2983_tx_expiry_test_dependent, r=str4d
Add test for dependent txs to mempool_tx_expiry.py

Closes #2983

Also replaced absolute blockheight check with a relative height check.
2018-04-23 15:50:16 -07:00
Homu df1dc9dd91 Auto merge of #3197 - str4d:2907-sapling-v4-tx-innards, r=str4d
Sapling v4 transaction format

Builds on #3173.
2018-04-23 13:35:07 -07:00
Homu 0e65c245f7 Auto merge of #3181 - bitcartel:least_authority_issue_c, r=daira
Closes #1249 - Least Authority Issue C

Backports the first commit from https://github.com/bitcoin/bitcoin/pull/9512 to avoid unaligned access in crypto i/o.
2018-04-21 05:19:05 -07:00
Homu 77889933e7 Auto merge of #3173 - str4d:2907-sapling-v4-tx-shell, r=str4d
Initial support for Sapling v4 transactions

Part of #2907.
2018-04-20 12:35:47 -07:00
Homu 5821bb0a4d Auto merge of #3185 - ebfull:sapling-testnet-params, r=str4d
Load Sapling testnet parameters into memory

This PR depends on https://github.com/zcash/librustzcash/pull/4.

The parameters are not loaded into memory if `zcashd` is configured as a mainnet node -- this is something we can change in the weeks before `2.0.0`.
2018-04-20 01:28:13 -07:00
Homu 0753a0e8a9 Auto merge of #3180 - str4d:transaction-serialization, r=ebfull
Upstream serialization improvements

Cherry-picked from the following upstream PRs:

- bitcoin/bitcoin#5264
- bitcoin/bitcoin#6914
- bitcoin/bitcoin#6215
- bitcoin/bitcoin#8068
  - Only the `COMPACTSIZE` wrapper commit
- bitcoin/bitcoin#8658
- bitcoin/bitcoin#8708
  - Only the serializer variadics commit
- bitcoin/bitcoin#9039
- bitcoin/bitcoin#9125
  - Only the first two commits (the last two block on other upstream PRs)

Part of #2074.
2018-04-18 19:08:34 -07:00
Homu b3f2da18ef Auto merge of #3184 - str4d:b6820-univalue-subdir, r=str4d
build: univalue subdir build fixups

Backported from bitcoin/bitcoin#6820.
2018-04-18 08:22:59 -07:00
Homu ec6021950d Auto merge of #3176 - daira:use-https-for-bdb, r=daira
Use https: for BDB backup download URL.
2018-04-17 02:13:10 -07:00
Homu 0066c317b4 Auto merge of #3160 - bitcartel:3134_least_authority_issue_e, r=daira
Closes #3134 - Least Authority Issue E

CTxMemPool::check() does nothing when turned on, due to overflow.
2018-04-16 11:25:43 -07:00
Homu 012344249b Auto merge of #3175 - ca333:patch-4, r=daira
[fix] proton download path

resolves #3174
2018-04-16 09:47:39 -07:00
Homu 312f70091b Auto merge of #3169 - ebfull:sapling-global-params, r=str4d
Import sapling global parameters

This will also test the API a bit by invoking the Pedersen hashes.

Part of #3053.
2018-04-14 18:35:11 -07:00
Homu 1594c845f5 Auto merge of #3157 - bitcartel:2966_extend_sprout_tests_part_2, r=str4d
Part of #2966, extending Sprout tests to other epochs

This continues the work started in PR #3109.
2018-04-14 16:36:30 -07:00
Homu ceb4559eac Auto merge of #2784 - kozyilmaz:fetch, r=str4d
[macOS] added curl download method to fetch-params.sh

added curl download method and flock workaround for macOS

Part of #2246.
2018-04-14 14:38:07 -07:00
Homu 8be9d79c21 Auto merge of #3153 - str4d:default-disable-libs, r=str4d
Disable building libzcashconsensus by default

The library is not currently a supported build artifact; it needs work in
order to build on certain platforms (e.g. MacOS), and its dependencies need to
be narrowed down (Equihash is not a requirement for validating scripts).
2018-04-14 13:04:35 -07:00
Homu 65a8f9f201 Auto merge of #3086 - str4d:cli-binary-improvements-1, r=str4d
CLI binary improvements

Cherry-picked from the following upstream PRs:

- bitcoin/bitcoin#5936
- bitcoin/bitcoin#7550
- bitcoin/bitcoin#7989
- bitcoin/bitcoin#7957
- bitcoin/bitcoin#9067
- bitcoin/bitcoin#9220

Excludes any changes that affected the QT code.
2018-04-12 20:46:05 -07:00
Homu 3e7b5f23e4 Auto merge of #3081 - str4d:sapling-activation-logic, r=str4d
Add Sapling to upgrade list
2018-04-12 12:32:50 -07:00
Homu b691234beb Auto merge of #3162 - str4d:3052-sapling-crypto-deps, r=str4d
depends: Update to latest librustzcash with sapling-crypto dependencies

Part of #3052.
2018-04-12 11:03:55 -07:00
Homu 42e3025237 Auto merge of #3165 - str4d:release-v1.1.0, r=str4d
Release v1.1.0
2018-04-12 08:55:29 -07:00
Homu b89b48cda1 Auto merge of #3166 - str4d:3132-reset-pindexbestinvalid, r=str4d
When rewinding, reset pindexBestInvalid if it is pointing to a removed block
2018-04-11 21:41:30 -07:00
Homu 079d9e6a57 Auto merge of #3149 - str4d:release-v1.1.0-rc1, r=str4d
Release v1.1.0-rc1
2018-04-05 04:36:15 -07:00
Homu 600c4acee1 Auto merge of #3151 - bitcartel:fix_alertnotify_test, r=str4d
Fix Deprecation test to check for sanitized string from alertnotify.

Closes #3150
2018-04-05 02:08:42 -07:00
Homu f6d09aa822 Auto merge of #2814 - str4d:2074-node-bloom, r=str4d
Add NODE_BLOOM service bit

Cherry-picked from the following upstream PRs:

- bitcoin/bitcoin#6579
  - Zcash equivalent of BIP 111
- bitcoin/bitcoin#6652
  - Docs for BIP 111
- bitcoin/bitcoin#7087
- bitcoin/bitcoin#7174
- bitcoin/bitcoin#8709

Part of #2074. Closes #2738.
2018-04-04 17:34:30 -07:00
Homu f5b1082f9c Auto merge of #3148 - str4d:DOS-mitigation-tx-expiry, r=str4d
Don't increase banscore for expired transactions if they only just expired

Closes #3141.
2018-04-04 15:46:25 -07:00
Homu dc57d6a7bc Auto merge of #3146 - str4d:bc-7956-dbwrapper-tests, r=str4d
Additional dbwrapper tests

Cherry-picked from the following upstream PRs:

- bitcoin/bitcoin#7992
- bitcoin/bitcoin#9867
  - Only the commit affecting dbwrapper tests
- bitcoin/bitcoin#9610
  - Only the change affecting dbwrapper tests
- bitcoin/bitcoin#10844
2018-04-04 14:23:14 -07:00
Homu 77669b952b Auto merge of #2598 - str4d:2074-dbwrapper, r=str4d
Bitcoin 0.12+ dbwrapper improvements

Cherry-picked from the following upstream PRs:

- bitcoin/bitcoin#6650
  - Only refactor - excludes obfuscation
- bitcoin/bitcoin#6777
  - Excluding obfuscation-related changes
- bitcoin/bitcoin#6865
- bitcoin/bitcoin#6823
- bitcoin/bitcoin#6873
- bitcoin/bitcoin#7927
  - Excluding first commit (already included) and second commit (obfuscation-related)
- bitcoin/bitcoin#8467

Part of #2074.
2018-04-03 14:11:29 -07:00
Homu 599c847818 Auto merge of #2820 - str4d:darwin-build-patches, r=str4d
[macOS] Darwin build patches

Part of #2246.
2018-04-03 12:44:24 -07:00
HomuandTomas M 3055fd5508 Auto merge of #3136 - str4d:2937-z_importviewingkey-startheight, r=daira
Fix z_importviewingkey startHeight parameter

Closes #2937.

Co-authored-by: Tomas M <tomas@slax.org>
2018-04-03 09:41:09 -07:00
Homu 395ed619a0 Auto merge of #2899 - str4d:2829-alertnotify-deprecation, r=str4d
Notify users about auto-senescence via -alertnotify

Closes #2829.
2018-04-03 06:07:08 -07:00
Homu 3a47b9bcfd Auto merge of #3132 - str4d:2898-rewind-block-index, r=daira
When rewinding, remove insufficiently-validated blocks

If a block is insufficiently-validated against a particular branch ID, then we
cannot guarantee that even the block header will be valid under the actual
consensus rules the node will want to apply. Instead require that the blocks are
completely re-validated, by removing them from the block index (which is
equivalent to reducing their validity to BLOCK_VALID_UNKNOWN).

Closes #3100.
2018-04-03 04:37:21 -07:00
Homu ca981fd442 Auto merge of #3080 - leto:jsindex, r=bitcartel
Return JoinSplit and JoinSplitOutput indexes in z_listreceivedbyaddress

This implements a feature request by @nathan-at-least in https://github.com/zcash/zcash/issues/2932 and I wanted to ask for feedback about the exact form of the data returned before updating tests and docs.
2018-04-03 00:30:11 -07:00
Homu 65dedeeae3 Auto merge of #3131 - str4d:3096-cargo-checksum-fixes, r=daira
depends: Fix regex bugs in cargo-checksum.sh
2018-04-01 05:54:41 -07:00
HomuandEirik Ogilvie-Wigley 347804fe73 Auto merge of #3106 - braddmiller:3046-mergetoaddress-concurrent, r=str4d
Add Note Locking to z_mergetoaddress

Adds note locking to `z_mergetoaddress` allowing it to be invoked multiple times before previous `z_mergetoaddress` operations have finished.

Reference issue [#3046](https://github.com/zcash/zcash/issues/3046)

Co-authored-by: Eirik Ogilvie-Wigley <eirik@z.cash>
2018-03-30 14:29:17 -07:00
Homu 1a9caa6ac1 Auto merge of #3127 - str4d:2688-mandatory-rust, r=ebfull
Make Rust compilation mandatory

The temporary integration check in CheckEquihashSolution() remains, until we
have "real" Rust code to integrate.

Closes #2688.
2018-03-30 12:58:34 -07:00
Homu 989e16e302 Auto merge of #3130 - bitcartel:upgrade_openssl_1.1.0h, r=str4d
Upgrade OpenSSL to 1.1.0h

Closes #3129
2018-03-30 10:02:15 -07:00
Homu 72f14060bc Auto merge of #3098 - str4d:2343-overwinter-disable-mempooltxinputlimit, r=str4d
Ignore -mempooltxinputlimit once Overwinter activates

Overwinter changes the SignatureHash function to solve the quadratic hashing problem, so this option will no longer be needed.
2018-03-30 08:33:58 -07:00
Homu 5bdce01848 Auto merge of #2913 - bitcartel:2910_z_listunspent, r=bitcartel
Closes #2910. Add z_listunspent RPC call.

Have tested on network.  Opening up for review.
2018-03-28 10:40:49 -07:00
Homu 058efdbe0f Auto merge of #3124 - bitcartel:update_boost_url, r=str4d
Update boost package URL to match official download url on boost.org

Part of #3123.
2018-03-28 08:26:39 -07:00
Homu a08ad2b815 Auto merge of #3096 - str4d:2231-depends-vendor-rust-crates, r=str4d
depends: Explicitly download and vendor Rust dependencies

Closes #2231.
2018-03-28 07:01:39 -07:00
Homu 2c91e3ebc0 Auto merge of #3117 - charlieok:add_windows_rust_package, r=daira
Add filename and SHA256 hash for Windows Rust package

When running `make download` in the `depends` directory, the `download-win` target (which `download` depends on) generates an error when it runs the commands defined in `check_or_remove_sources`:

```Makefile
sha256sum: /home/vagrant/zcash/depends/work/download/rust-1.16.0/..hash: no properly formatted SHA256 checksum lines found
funcs.mk:242: recipe for target '/home/vagrant/gitian-builder/cache/common/download-stamps/.stamp_fetched-rust-.hash' failed
make[1]: *** [/home/vagrant/gitian-builder/cache/common/download-stamps/.stamp_fetched-rust-.hash] Error 1
make[1]: Leaving directory '/home/vagrant/zcash/depends'
Makefile:153: recipe for target 'download-win' failed
make: *** [download-win] Error 2
```

The reason for the error is that `depends/packages/rust.mk` defines `rust_file_name_linux` and `rust_file_name_darwin` but leaves `rust_file_name_mingw32` undefined.

A directory of available rust downloads is here: https://static.rust-lang.org/dist/index.html

The closest windows analog in that list (using the same version number as currently defined in `rust.mk`) appears to be `rust-mingw-1.16.0-x86_64-pc-windows-gnu.tar.gz`. A corresponding sha256 value is also given in `rust-mingw-1.16.0-x86_64-pc-windows-gnu.tar.gz.sha256`.

After adding these values to `rust.mk`, the rust-mingw tar package was downloaded along with the rest of the dependencies and the above error message went away.
2018-03-28 05:31:43 -07:00
Homu fb26130787 Auto merge of #3109 - bitcartel:2966_extend_tests, r=str4d
Part of #2966, extending Sprout tests to other epochs.

Tests updated:
- test_Get
- test_simple_joinsplit_invalidity
2018-03-27 13:10:39 -07:00
Homu 99b6f76355 Auto merge of #3111 - bitcartel:3110_high_fee_error_reporting, r=bitcartel
Closes #3110.  Ensure user can see error message about absurdly high fees.
2018-03-27 10:33:52 -07:00
Homu 9a6809a75b Auto merge of #3113 - bitcartel:update_boost_1.66.0, r=str4d
Update boost to 1.66.0

- Remove no longer required patch `deprecated_auto_ptr.patch`.
- Remove potentially no longer required patch `include_poll.patch`. This might cause a regression for unsupported platform Alpine Linux (see #1559)
2018-03-27 07:31:16 -07:00
Homu c24a617c40 Auto merge of #3120 - str4d:pyflakes-clean, r=daira
cleanup: Ensure code is pyflakes-clean for CI
2018-03-27 05:44:06 -07:00
Homu 4d6498b900 Auto merge of #3082 - str4d:overwinter-info, r=daira
Add link to Overwinter info page
2018-03-23 07:25:09 -07:00
Homu 8ed0346284 Auto merge of #3077 - str4d:asan-initialization-order-fiasco, r=str4d
Split declaration and definition of SPROUT_BRANCH_ID constant

Fixes an initialization-order-fiasco error detected by ASan:
https://ci.z.cash/#/builders/7/builds/149
2018-03-20 16:16:13 -07:00
Homu 64de921747 Auto merge of #3091 - bitcartel:cache_invalidation_qa, r=str4d
Closes #1988. Add qa test for cache invalidation bug found in v1.0.0 to v1.0.3.
2018-03-20 11:28:08 -07:00
Homu 70e2522306 Auto merge of #3090 - bitcartel:3084_log_expired_txid, r=bitcartel
Closes #3084.  Log txid when removing expired transactions from mempool.
2018-03-19 14:59:30 -07:00
Homu 601fc2414d Auto merge of #3093 - bitcartel:3092_clean_up_qa_test_operationid_status, r=str4d
Remove local function wait_and_assert_operationid_status which is now defined in test framework

Closes #3092
2018-03-19 03:24:21 -07:00
HomuandMarshall Gaucher 01c31ec57f Auto merge of #3069 - braddmiller:3034-disable-auto-dep, r=daira
Disable auto-deprecation on regtest and testnet

Prevents auto-senescence based on @str4d's recommendation to early return out of `EnforceNodeDeprecation` if net is not `main`.

Closes #2876.

Co-authored-by: Marshall Gaucher <marshall@z.cash>
2018-03-15 18:45:15 -07:00
Homu bc8221da81 Auto merge of #3089 - kozyilmaz:clang, r=str4d
[macOS] Fix test/gtest bugs caught by latest clang

Tests fail with latest clang on macOS (clang-900.0.39.2)

```
test/rpc_wallet_tests.cpp:1064:26: error: implicit conversion from 'double' to 'CAmount' (aka 'long long') changes value from 123.456 to 123 [-Werror,-Wliteral-conversion]
test/rpc_wallet_tests.cpp:1071:18: error: implicit conversion from 'double' to 'CAmount' (aka 'long long') changes value from 1.111 to 1 [-Werror,-Wliteral-conversion]
gtest/test_deprecation.cpp:28:1: error: control reaches end of non-void function [-Werror,-Wreturn-type]
```

Part of #2246.
2018-03-15 17:21:23 -07:00
Homu 5abe4e6348 Auto merge of #3079 - daira:pyflakes-cleanup, r=str4d
pyflakes cleanups to RPC tests after Overwinter PRs.

Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2018-03-13 07:57:07 -07:00
Homu d88a12262c Auto merge of #3050 - bitcartel:cleanup_define_X, r=daira
Code clean up. Remove use of X macro.

Closes #3049
2018-03-08 03:19:29 -08:00
Homu b3a656cf53 Auto merge of #3048 - str4d:analysis-tools, r=str4d
Add configure flags for enabling ASan/UBSan and TSan

Also adds an environment variable for setting configure flags in `./zcutil/build.sh`.
2018-03-06 11:53:43 -08:00
Homu 99d9e1483f Auto merge of #2987 - leto:rpc-readme, r=bitcartel
Fix references to Bitcoin in RPC tests readme

This is a vintage documentation bug, which I just fixed in Hush as well.
2018-03-05 15:22:36 -08:00
Homu 796ea3815e Auto merge of #2965 - rofl0r:patch-1, r=str4d
fix build error due to usage of obsolete boost_system-mt

closes #2304 for real
2018-03-05 06:25:56 -08:00
Homu 9a6a81afff Auto merge of #3036 - plutomonkey:typo, r=daira
Fix typo in comment: should link to issue #1359.

Fix typo in comment.
2018-03-02 06:21:20 -08:00
Homu 112ec9886a Auto merge of #3027 - rex4539:master, r=daira
Fix typos in various files

Fix documentation and comment typos.
2018-03-02 04:50:49 -08:00
Homu 93332d6e84 Auto merge of #3030 - str4d:release-v1.0.15, r=str4d
Release v1.0.15
2018-02-28 09:18:35 -08:00
Homu b10aaacadd Auto merge of #3002 - str4d:2957-overwinter-release-notes, r=str4d
Overwinter release notes and testnet activation height

Closes #2957.
2018-02-28 05:29:48 -08:00
Homu f9dbd1e2d5 Auto merge of #2993 - str4d:2977-performance-regression, r=str4d
Use block hash comparison for consistency check when loading block index

The Equihash check caused block index loading to take around 38x longer.
However, we don't need to check it directly, as the only paths to writing a
block header to disk already go through a proof-of-work check (e.g. receiving a
block over the network). By forcing the block header inside the CBlockIndex to
be re-serialized, we retain the benefits of the consistency check without the
overhead at startup.
2018-02-26 16:53:42 -08:00
Homu be262f065f Auto merge of #2985 - str4d:release-v1.0.15-rc1, r=ebfull
Release v1.0.15-rc1
2018-02-23 21:08:05 -08:00
Homu a418756ef4 Auto merge of #2874 - arcalinea:tx_block_expiry, r=arcalinea
Transaction expiry height

Implements ZIP 203.

- Only applies after Overwinter blockheight.

Closes #754.
2018-02-23 18:37:48 -08:00
Homu e6e483b2b0 Auto merge of #2919 - bitcartel:2904_branch_id_protocol_handshake, r=str4d
Overwinter peer management

Implements ZIP 201.

Part of #2904.
2018-02-23 17:18:04 -08:00
Homu c5904fb2a4 Auto merge of #2797 - str4d:2493-active-merging, r=bitcartel
Implement z_mergetoaddress for combining UTXOs and notes

Closes #2493.
2018-02-22 20:59:51 -08:00
Homu f472edd0e2 Auto merge of #2960 - bitcartel:2959_overwinter_fix_sighash_test, r=str4d
Closes #2954 and #2959.  Fixes Overwinter issues in sighash_tests.
2018-02-22 17:47:14 -08:00
Homu 0be6cb979e Auto merge of #2978 - bitcartel:2906_v1_tx_no_assert, r=str4d
Closes #2964. z_sendmany once again makes v1 tx for taddr to taddr.
2018-02-22 07:47:49 -08:00
Homu c2d98b47c1 Auto merge of #2808 - arcalinea:2785_upgrades_rpc, r=str4d
Add network upgrade details to getblockchaininfo

Closes #2785. Closes #2974.
2018-02-22 06:03:06 -08:00
Homu 933e0d6675 Auto merge of #2968 - maxgubler:v1.0.14-edit, r=str4d
Fix documentation examples for z_importwallet z_exportwallet exportdir

Closes #2967.
2018-02-21 20:14:32 -08:00
Homu 50400310af Auto merge of #2977 - str4d:loadblockindexguts-correctness, r=str4d
Check Equihash solution when loading block index

An additional consistency check, which also ensures that the in-memory representation
matches the stored index.
2018-02-21 19:05:23 -08:00
Homu 6264927fef Auto merge of #2931 - jc23424:hashreserved-diskindex, r=str4d
read hashReserved from disk

This fixes a bug where the hashReserved field of the block header is not properly read back into CBlockIndex when loaded from disk. This happens to cause no issues currently because hashReserved has always been its default value (== 0), but if a block were ever mined where this was not the case, headers read back from disk would appear to have an invalid solution
2018-02-21 14:35:58 -08:00
Homu d4d2844829 Auto merge of #2463 - str4d:713-rollback-limit, r=str4d
Implement roll-back limit for reorganisation

Part of  #2905. Closes #713.
2018-02-20 15:17:22 -08:00
Homu 8487be8360 Auto merge of #2903 - str4d:1408-sighash, r=str4d
Overwinter SignatureHash

Implements ZIP 143.

Includes code cherry-picked from the following upstream PRs:

- bitcoin/bitcoin#7276
- bitcoin/bitcoin#7976
- bitcoin/bitcoin#8118
- bitcoin/bitcoin#8149
  - Only amount validation and SignatureHash commits.
- bitcoin/bitcoin#8346
- bitcoin/bitcoin#8524

Part of #2074 and #2254. Closes #1408 and #2584.
2018-02-20 03:59:45 -08:00
Homu 49274558c6 Auto merge of #2940 - str4d:nu-activation-mempool-expiry, r=str4d
Mempool improvements, branch ID awareness

Whenever the local chain tip is updated, transactions in the mempool which commit to an
unmineable branch ID (for example, just before a network upgrade activates, where the
next block will have a different branch ID) will be removed.

Includes commits cherry-picked from the following upstream PRs:

- bitcoin/bitcoin#6654
  - Only the mempool index change.
- bitcoin/bitcoin#6776
- bitcoin/bitcoin#7020
- bitcoin/bitcoin#6915

Part of #2074.
2018-02-19 19:00:30 -08:00
Homu 8da60b127e Auto merge of #2958 - bitcartel:2906_extra_test, r=str4d
Add test to check malformed v1 transaction against Overwinter tx parser
2018-02-17 10:14:31 -08:00
Homu c6ffabb47f Auto merge of #2925 - bitcartel:2906_overwinter_tx_format, r=str4d
Overwinter transaction format

Implements ZIP 202.

Closes #2906.
2018-02-16 11:38:58 -08:00
Homu d527116d46 Auto merge of #2923 - str4d:sighash-tests-env-bug, r=str4d
Use JoinSplitTestingSetup for Boost sighash tests

Symptom: When running all tests, the test suite passed. But when running the
sighash tests on their own, the test suite segfaulted.

Cause: The sighash tests depend on the proving parameters being accessible, but
BasicTestingSetup doesn't load them.
2018-02-15 05:41:18 -08:00
Homu e6850571dd Auto merge of #2898 - str4d:2286-nu-activation-mechanism, r=str4d
Network upgrade activation mechanism

Implements ZIP 200.

Integration with `CChainParams` inspired by https://github.com/bitcoin/bitcoin/pull/7575.

Includes block index rewinding logic cherry-picked from https://github.com/bitcoin/bitcoin/pull/8149.

Closes #2286. Part of #2905.
2018-02-07 02:33:42 -08:00
Homu a0a010c85c Auto merge of #2839 - arcalinea:add_deprecation_alert, r=bitcartel
Add getdeprecationinfo RPC method to return deprecation block height

Closes #2828

Returns:
```
{
  "version": xxxxx,                      (numeric) the server version
  "subversion": "/MagicBean:x.y.z[-v]/",     (string) the server subversion string
  "deprecationheight": xxxxx,            (numeric) the deprecation block height
}
```
2018-02-02 10:23:37 -08:00
Homu 70109a74e9 Auto merge of #2902 - bitcartel:2901_remove_unused_noblks_constants, r=daira
Remove unused NOBLKS_VERSION_{START,END} constants from version.h

Closes #2901. Backport from upstream PR https://github.com/bitcoin/bitcoin/pull/7662.
2018-01-25 04:37:33 -08:00
Homu a4a020de7b Auto merge of #2217 - str4d:2074-chainparams, r=str4d
Bitcoin 0.12 chainparams cleanups

Cherry-picked from the following upstream PRs:

- bitcoin/bitcoin#6222
- bitcoin/bitcoin#6381
- bitcoin/bitcoin#6473
- bitcoin/bitcoin#6242

Part of #2074.
2018-01-22 15:22:24 -08:00
Homu b4a20ae5ac Auto merge of #2897 - str4d:2892-zkey-rpc-bugfix, r=str4d
zkey_import_export: Synchronize mempools before mining

Resolves a race condition that caused the RPC test to intermittently fail.

Closes #2892.
2018-01-22 14:11:50 -08:00
Homu d11230be73 Auto merge of #2886 - bitcartel:2885_cleanup_node_getutxo, r=str4d
Remove redundant service flag NODE_GETUTXO meant for Bitcoin XT.

For #2885. This frees up a service bit.  Zcash has never used this flag
and upstream Bitcoin Core does not support this flag, although
it did reserve it for compatibility with Bitcoin XT.
2018-01-22 08:38:49 -08:00