Commit Graph
100 Commits
Author SHA1 Message Date
Homu d960b75de0 Auto merge of #3472 - bitcartel:release-v2.0.0, r=ebfull
Release v2.0.0
2018-08-16 01:26:25 -07:00
Homu 4f82febcf1 Auto merge of #3469 - ebfull:sapling-mainnet-activation, r=bitcartel
Set Sapling mainnet activation height

In mainnet, block #419200 is expected to appear on October 28, 2018, Zcash's birthday.

In testnet, block #280000 is expected about a week from now. (Current height is ~275249, plus 4032 blocks for a week, plus a little more just to make the number nice.)

These are the activation heights for Sapling in mainnet and testnet, respectively. Protocol version is also changed.
2018-08-15 15:47:08 -07:00
Homu e868f8247f Auto merge of #3463 - ebfull:revert-empty-root, r=ebfull
Always write the empty root down as the best root, since we may roll back

In [`3577de83`](https://github.com/zcash/zcash/commit/3577de83aa126fec4db8bb022dbeecf9a77a3af8) we started not writing the Sapling empty root down as the "best" anchor because we had changed the encodings and didn't want users who compiled from master to have inconsistent coindb's in the future if the encoding changed again for some reason.

However, if we don't write the empty root down then during rollbacks to Sapling activation we leave the best anchor on disk different from what's in the cache, which will trigger an assertion.

This reverts the change from `3577de83` since we've settled on the encodings.
2018-08-14 17:18:47 -07:00
Homu b004f254d5 Auto merge of #3458 - str4d:temp-sapling-disable, r=ebfull
Disable Sapling features on mainnet

Also places them behind an experimental features flag on testnet.
2018-08-14 08:52:46 -07:00
Homu d54bf1dbda Auto merge of #3453 - ebfull:release-v2.0.0-rc1, r=bitcartel
Release v2.0.0 rc1

Doesn't contain "Notable changes" section in release notes, is that okay for an RC?
2018-08-09 11:44:52 -07:00
Homu 75286ba19b Auto merge of #3438 - Eirik0:3424-change-field-improvement, r=bitcartel
Only include the change field if we have a spending key

Closes #3424
2018-08-08 13:47:40 -07:00
Homu 40f320e0ee Auto merge of #3443 - daira:testnet-rollback, r=str4d
Support testnet rollback.

Part of #1302. Closes #2905.
2018-08-08 05:28:08 -07:00
Homu 0c5733fc22 Auto merge of #3448 - ebfull:sapling-params, r=bitcartel
Switch to use the official Sapling parameters
2018-08-07 11:20:10 -07:00
Homu 8df048b1de Auto merge of #3447 - str4d:zip32-prep, r=str4d
ZIP 32 preparations

Includes Makefile changes cherry-picked from the following upstream PRs:

- bitcoin/bitcoin#7689
- bitcoin/bitcoin#10849

Part of #3380.
2018-08-05 05:26:10 -07:00
Homu aa32786576 Auto merge of #3396 - arcalinea:3389_sapling_crypter, r=str4d
Update CCryptoKeyStore with Sapling support

Sapling crypter overrides for various `CCryptoKeyStore` functions such as:
- `HaveSaplingSpendingKey()`
- `GetSaplingSpendingKey()`

Also includes some changes to prepare for diversified addresses and ZIP 32.

Closes #3389
2018-08-03 09:48:22 -07:00
Homu 4b27d2efcd Auto merge of #3441 - ebfull:check-param-hash, r=str4d
Check the hash of the zk-SNARK parameters during initialization

**Please also review https://github.com/zcash/librustzcash/pull/28.**
2018-08-03 07:52:09 -07:00
Homu 871e1726c6 Auto merge of #3340 - Eirik0:rename-merkle-typedefs, r=str4d
Rename merkle tree typedefs to include Sprout

This is to be consistent with the naming convention we have been using to distinguish Sprout/Sapling.
2018-08-01 20:48:17 -07:00
Homu 16117c0d5a Auto merge of #3439 - ebfull:fix-ecc, r=ebfull
Don't call ECC_Start/ECC_Stop outside the test harness.
2018-08-01 17:23:14 -07:00
Homu 0361f789fe Auto merge of #3246 - str4d:checkpoint-304600, r=bitcartel
Add some more checkpoints, up to the 1.1.0 release
2018-08-01 13:55:34 -07:00
Homu 066cc9c6c7 Auto merge of #3429 - str4d:3217-sapling-address-creation, r=str4d
Add Sapling support to z_getnewaddress and z_listaddresses

Closes #3217.
2018-08-01 12:01:39 -07:00
Homu d84f14ec4a Auto merge of #3417 - str4d:sapling-tx-builder, r=ebfull
TransactionBuilder for Sapling and transparent transactions

This PR includes zcash/librustzcash#24, and will create a testnet chain split once merged into master (and once a Sapling transaction is mined).
2018-07-31 23:44:29 -07:00
Homu ece49a49a5 Auto merge of #3430 - ebfull:check-valuebalance, r=ebfull
Ensure sum of valueBalance and all vpub_new's does not exceed MAX_MONEY

HT to @daira for noticing that we don't check this in `CheckTransactionWithoutProofVerification`. We actually do check it in `GetShieldedValueIn` (by throwing an exception) but these exceptions are not handled by `CheckTxInputs`, which may cause a remote DoS.

Not exploitable assuming our proving system is secure, but definitely worthy of a fix.
2018-07-31 07:34:44 -07:00
Homu a11e6aaacc Auto merge of #3336 - arcalinea:expiryheight-createrawtransaction, r=bitcartel
Take expiryheight as param to createrawtransaction

Addresses #3333
2018-07-30 13:56:34 -07:00
Homu 6b9c962725 Auto merge of #3410 - LarryRuane:3399-peer-ban, r=bitcartel
don't ban peers when loading pre-overwinter blocks

Addresses #3399. If we see an invalid transaction (from our peers who are up to date, post-overwinter) during initial block download, don't invoke DoS (logging messages, blocking these peers). Instead, simply ignore the transaction.
2018-07-30 03:46:37 -07:00
Homu bb9658c88c Auto merge of #3402 - mdr0id:3401_fix_auto_senescence, r=bitcartel
Fix minor references to auto-senescence in code

Fix references
2018-07-30 01:36:32 -07:00
Homu 28a8d1d1c9 Auto merge of #3392 - arcalinea:sapling_z_importexport_keys, r=bitcartel
Add Sapling support to z_importkey, z_exportkey

Add Sapling support to `z_importkey` and `z_exportkey`
2018-07-29 21:04:14 -07:00
Homu 52e2f2cec9 Auto merge of #3416 - charlieok:3415_fix_double_slash_error, r=bitcartel
Remove extra slash from lockfile path

Issue: https://github.com/zcash/zcash/issues/3415

After this change I can successfully run `fetch-params` in an msys2 environment.
2018-07-26 08:42:57 -07:00
Homu 3eefe12c79 Auto merge of #3353 - Eirik0:3062-cache-sapling-witnesses, r=bitcartel
Cache Sapling witnesses in the wallet

Closes #3062

I have not update the tests in test_wallet.cpp. Also, there are several other methods in the wallet that have to do with witnesses and note data which will need to be updated, but this PR focuses on IncrementNoteWitnesses and DecrementNoteWitnesses.
2018-07-25 23:40:11 -07:00
Homu a7a62b724b Auto merge of #3391 - bitcartel:3061_sapling_note_encryption, r=ebfull
Sapling note plaintext (encryption and decryption)

Add encryption and decryption of SaplingNotePlaintext and SaplingOutgoingPlaintext classes.

This is part of #3061 to add Sapling note functionality.
2018-07-24 03:27:28 -07:00
Homu 5d1007a5a3 Auto merge of #3408 - LarryRuane:2929-python-test-nondeterministic, r=bitcartel
Add call to sync_all() after (z_sendmany, wait)

Closes #2929. Add missing call to `self.sync_all()` after sending coins (and waiting for the transaction to complete). This matches what is done in other python test scripts.
2018-07-23 23:09:48 -07:00
Homu cd0484e023 Auto merge of #3350 - str4d:rpc-reorg, r=bitcartel
RPC code refactor

Cherry-picked from the following upstream PRs:

- bitcoin/bitcoin#7307
- bitcoin/bitcoin#7348
- bitcoin/bitcoin#7766
2018-07-18 12:10:55 -07:00
Homu aad4b86e95 Auto merge of #3376 - LarryRuane:2728-help-message-experimental, r=bitcartel
add extra help how to enable experimental features

Closes #2728. When the user attempts to execute a disabled experimental RPC, print some nice text explaining how to enable the RPC (either command-line or adding lines to zcash.conf).
2018-07-18 07:45:46 -07:00
Homu cc9cddbf49 Auto merge of #3371 - kozyilmaz:clang, r=str4d
Add -Wl,-pie linker option for macOS and use it instead of -pie

fixes linker error (see below) due to "-pie" usage, replaced it with "-Wl,-pie" for macOS platform
```
clang: error: argument unused during compilation: '-pie' [-Werror,-Wunused-command-line-argument]
```
2018-07-17 21:41:36 -07:00
Homu efa7b914fb Auto merge of #3243 - pejvan:patch-1, r=bitcartel
Update README.md

Added default options to build zcash with as many parallel compilation units as there are cpu cores.
This makes compiling zcash multiple times faster.
2018-07-17 19:57:32 -07:00
Homu b9bd5ab42c Auto merge of #3354 - leto:absurd_fee_bug, r=bitcartel
Fix absurd fee bug reported in #3281, with tests

This was ported from the Hush `absurd_fee_bug` PR: https://github.com/MyHush/hush/pull/136

Tests executed with `./qa/pull-tester/rpc-tests.sh wallet` and pass on Ubuntu 16.04. Some tests were added for previously untested behavior as well.

Closes #3281.
2018-07-17 15:03:08 -07:00
Homu 3835cbb57f Auto merge of #3263 - str4d:ibd-upstream-changes, r=bitcartel
InitialBlockDownload upstream changes

Cherry-picked from the following upstream PRs:

- bitcoin/bitcoin#7208
- bitcoin/bitcoin#8007
- bitcoin/bitcoin#9053
  - Excluding second commit (requires bitcoin/bitcoin#8865)
- bitcoin/bitcoin#10388
2018-07-17 13:17:27 -07:00
Homu 13b41a6760 Auto merge of #3156 - Eirik0:2935-change-indicator, r=bitcartel
Add change indicator

This adds to the json returned when calling z_listreceivedbyaddress and z_listuspent an additional field entitiled 'change' which will be either true or false depending on whether or not the note was change from another transaction.
2018-07-17 11:41:03 -07:00
Homu ea0bd9d3b8 Auto merge of #3345 - str4d:sapling-z_validateaddress, r=bitcartel
Add Sapling support to z_validateaddress

Part of #3217.
2018-07-16 15:04:54 -07:00
Homu b7d058cef3 Auto merge of #3334 - arielgabizon:add_groth_tests, r=bitcartel
Extend JoinSplit tests to Groth

As we now have both PGHR and Groth proofs for Sprout - make the joinsplit tests check the Groth proofs as well.
See https://github.com/zcash/zcash/issues/3266
2018-07-16 12:11:12 -07:00
Homu eea0e2c924 Auto merge of #3390 - arcalinea:3319_discard_sk_if_invalid_ivk, r=str4d
Discard sk if ivk == 0

Addresses #3319
2018-07-13 03:16:21 -07:00
Homu f55bcd1c10 Auto merge of #3374 - rex4539:fix-typos, r=str4d
Fix typos
2018-07-12 14:25:15 -07:00
Homu d86f60f382 Auto merge of #3324 - ebfull:sapling-note-encryption, r=ebfull
Sapling note encryption implementation

Closes #3055

Implemented along with @gtank and @Eirik0

DH key exchange was implemented in https://github.com/zcash/librustzcash/pull/18
2018-07-11 14:51:57 -07:00
Homu 579ad3b13e Auto merge of #3273 - arcalinea:sapling_keys, r=str4d
Sapling keys in keystore, wallet

-  Add/Have/Get SaplingSpendingKey
- Add/Remove/Have/Get SaplingFullViewingKey
- Have/Get SaplingIncomingViewingKey

- SaplingSpendingKeyMap, SaplingFullViewingKeyMap, SaplingIncomingViewingKeyMap

- GenerateNewSaplingZKey()

Not included: note decryptors, crypted keystore
2018-07-06 15:18:39 -07:00
Homu 16b617aca6 Auto merge of #3370 - LarryRuane:2984-libsnark-debug-logging, r=str4d
Disable libsnark debug logging in Boost tests

Initialize `src/snark/libsnark/common/profiling.cpp: inhibit_profiling_info` to false.
2018-07-06 09:28:44 -07:00
Homu cea065e3d4 Auto merge of #3360 - RichardLitt:feat/license, r=str4d
docs(LICENSE): update license year to 2018

Part of #2887.
2018-07-03 13:54:24 -07:00
Homu bbee5e2525 Auto merge of #3363 - bitcartel:release-v1.1.2, r=str4d
Release v1.1.2
2018-07-02 02:19:08 -07:00
Homu 0f091f228c Auto merge of #3356 - bitcartel:release-v1.1.2-rc1, r=bitcartel
Release v1.1.2 rc1
2018-06-22 21:53:15 -07:00
Homu f649bb36c5 Auto merge of #3303 - LarryRuane:2807-rpc-test-round-fees, r=bitcartel
(rpc-test) accurately account for fee without rounding error

Fix for #2807, this test compares balances after doing key exports and imports, and expects these balances to be equal. But they are not exactly equal due to transaction fees, so the test makes them "equal" by rounding a value that has had fees taken out up to the nearest hundredth of a unit (which is much more than the default fee). This obviously is somewhat sloppy. It also converts a balance to float, which really should never be used due to loss of precision (use Decimal instead).

This change makes the test accurately account for the fee using precise comparisons, and removes the use of float. This test doesn't depend on the default fee (0.0001) but instead sets the fee (to that value). This way, if the default fee changes in the future, this test will continue to run. While testing these changes, I set the fee to various values (up to the max, 0.0190), and the test still passes.
2018-06-22 14:01:48 -07:00
Homu d5dcfa2b01 Auto merge of #3346 - bitcartel:3328_alert_non_overwinter_nodes, r=str4d
Closes #3328. Send alert to put non-Overwinter nodes into safe mode.

The alert targets nodes running protocol version <= 170004.
Overwinter compatible nodes run protocol version >= 170005.
2018-06-22 09:40:01 -07:00
Homu f587e61bda Auto merge of #3259 - leto:signmessage, r=str4d
Clarify help that signmessage only works on taddrs
2018-06-22 02:19:12 -07:00
Homu f24d1ff546 Auto merge of #3337 - str4d:getblock-finalsaplingroot, r=bitcartel
Add hashFinalSaplingRoot to getblockheader and getblock output
2018-06-19 16:19:13 -07:00
Homu 9acfa0067f Auto merge of #3258 - Eirik0:3056-anchor-test-cases, r=str4d
Add tests for sapling anchors

Closes #3253
2018-06-19 09:28:20 -07:00
Homu 2ebde5860e Auto merge of #3326 - str4d:3058-sapling-addresses, r=str4d
Sapling address encodings

This PR enables Sapling keys and addresses to be passed in anywhere Sprout keys
and addresses are used. Doing so will cause crashes until those places are updated
with Sapling support.

Includes code cherry-picked from the following upstream PRs:

- bitcoin/bitcoin#11167
  - Only the `ConvertBits()` function.
- bitcoin/bitcoin#11630

Closes #3058.
2018-06-19 05:12:50 -07:00
Homu 4e3ff06507 Auto merge of #3320 - str4d:macos-tests, r=bitcartel
Fix MacOS tests

Includes code cherry-picked from upstream PR bitcoin/bitcoin#8270.
2018-06-18 19:00:56 -07:00
Homu 3e38e248d5 Auto merge of #3332 - arcalinea:sapling_wallet_classes, r=bitcartel
Add test vectors for sapling key components

Test vectors generated by python implementation here: https://github.com/zcash-hackworks/zcash-test-vectors/pull/4

Not testing note components in this PR
2018-06-13 10:43:47 -07:00
Homu 4f18c693c3 Auto merge of #3272 - bitcartel:3061_sapling_add_notes, r=bitcartel
Add SaplingNote class

Part of #3061, adding SaplingNote class.
2018-06-12 16:58:38 -07:00
Homu 524171de1f Auto merge of #3137 - str4d:2943-remove-auto-senescence-option, r=ebfull
Remove config option -disabledeprecation

Closes #2943.
2018-06-12 08:51:13 -07:00
Homu bdec2262d9 Auto merge of #3322 - arielgabizon:master, r=str4d
Naming improvements

- `ZCProof` is a too general name, now that we also have `GrothProof` used in sprout proofs.
So I changed the name of this object to `PHGRProof`.

- In some files `pubKeyHash` was used as a var name, whereas it wasn't the pubkey hash,
but the pubkey itself. So I changed the var name to `joinSplitPubKey`
2018-06-12 03:53:08 -07:00
Homu 847df81f09 Auto merge of #3308 - ioptio:CoC-volunteer, r=daira
include note about volunteers in CoC
2018-06-09 03:17:32 -07:00
Homu de1bc2d389 Auto merge of #3321 - bitcartel:remove_librustcash_xor, r=str4d
Remove now redundant Rust call to librustzcash_xor.

Related to https://github.com/zcash/librustzcash/pull/17 which removes librustzcash_xor from library.
2018-06-07 20:37:07 -07:00
Homu 80338c07e5 Auto merge of #3237 - str4d:std-array, r=str4d
Replace boost::array with std::array
2018-06-06 19:36:57 -07:00
Homu ffba08b0e0 Auto merge of #3318 - Eirik0:3298-fix-getnetworksolps-params, r=bitcartel
Fix parsing parameters in getnetworksolps

This fixes https://github.com/zcash/zcash/issues/3298. The parameters were not correctly being converted.
2018-06-06 10:00:21 -07:00
Homu d18212b1d6 Auto merge of #3299 - Eirik0:3248-update-getblocktemplate, r=str4d
Add hashFinalSaplingRoot to getblocktemplate

Closes #3248
2018-06-06 05:00:58 -07:00
Homu b4874e9b09 Auto merge of #3269 - arcalinea:sapling_wallet_classes, r=ebfull
Add Sapling key classes to wallet

Leverages new librustzcash APIs added in https://github.com/zcash/librustzcash/pull/9
2018-06-05 15:46:24 -07:00
Homu 73fea25404 Auto merge of #3300 - bitcartel:3277_add_comment_deprecated_txdb_prefixes, r=str4d
Part of #3277. Add comment about deprecated txdb prefixes.
2018-05-25 18:42:05 -07:00
Homu 047b0bf94a Auto merge of #3305 - str4d:release-v1.1.1, r=str4d
Release v1.1.1
2018-05-25 01:21:49 -07:00
Homu d5e82d73ac Auto merge of #3287 - str4d:sapling-release-notes, r=str4d
Add Sapling details to release notes
2018-05-24 18:50:50 -07:00
Homu 088353ab02 Auto merge of #3302 - bitcartel:3301_fix_mac_compile_error, r=str4d
Closes #3301. Non-void function should not have empty definition.
2018-05-24 17:03:42 -07:00
Homu bae5adf0a4 Auto merge of #3289 - bitcartel:release-v1.1.1-rc2, r=bitcartel
Release v1.1.1 rc2
2018-05-23 11:44:49 -07:00
Homu 9c55d0b40e Auto merge of #3286 - str4d:3153-gitian-fix, r=str4d
Comment out Gitian library handling while we don't build any libraries

Fixes a Gitian build failure introduced by #3153.
2018-05-22 16:49:51 -07:00
Homu bbf01c67aa Auto merge of #3279 - str4d:release-v1.1.1-rc1, r=str4d
Release v1.1.1-rc1
2018-05-18 17:11:28 -07:00
Homu f5802f2c16 Auto merge of #3275 - ebfull:little-endian, r=str4d
Circuit change for endianness

This PR changes the circuit, encodings and parameters to match the encodings specified in the protocol spec. You'll want to `rm ~/.zcash-params/*.params` and run `./zcutil/fetch-params.sh --testnet` to switch to the new parameters for testnet.
2018-05-18 13:03:44 -07:00
Homu 386a9b35c0 Auto merge of #3238 - str4d:3199-mempool-sapling-activation, r=str4d
Update mempool_nu_activation RPC test to exercise both Overwinter and Sapling

Closes #3199.
2018-05-16 13:52:40 -07:00
Homu f62fff80d5 Auto merge of #3255 - str4d:sapling-value-pool, r=ebfull
Track net value entering and exiting the Sapling circuit
2018-05-16 10:46:32 -07:00
Homu 1063dfdeaa Auto merge of #3271 - ebfull:stable-rust, r=bitcartel
Switch Rust to 1.26 Stable
2018-05-15 21:27:53 -07:00
Homu 29a75886c2 Auto merge of #3251 - ebfull:sprout-groth16, r=ebfull
Sprout on Groth16

Depends on https://github.com/zcash/librustzcash/pull/6
2018-05-15 15:48:19 -07:00
Homu dd72b5346e Auto merge of #3264 - sembrestels:patch-1, r=bitcartel
Update Payment API

I included those missing commands to the API reference: `z_exportviewingkey`, `z_importviewingkey`, and `z_listunspent`.

Do you think we should include `z_mergetoaddress`, `z_getpaymentdisclosure`, and `z_validatepaymentdisclosure` too, despite they are experimental?
2018-05-14 11:14:05 -07:00
Homu 75546c697a Auto merge of #3234 - str4d:3058-address-polymorphism, r=str4d
Use boost::variant to represent shielded addresses and keys

Part of #3058 and #3059.
2018-05-12 04:06:27 -07:00
Homu 1942f7a42b Auto merge of #3242 - str4d:3058-key-encoding-refactor, r=str4d
Key encoding refactor

Includes code cherry-picked from the following upstream PRs:

- bitcoin/bitcoin#11372
  - Only the first three commits (the fourth commit depends on #2390)

Part of #3058.
2018-05-11 12:21:29 -07:00
Homu ae6c2587d3 Auto merge of #3232 - ebfull:3207-sapling-validation, r=str4d
Sapling validation

**Also review https://github.com/zcash/librustzcash/pull/7**

This is an attempt to tackle much of https://github.com/zcash/zcash/issues/3065
2018-05-10 10:21:15 -07:00
Homu 73f5cb1213 Auto merge of #3257 - bitcartel:3250_fix_segfault_memo, r=ebfull
Closes #3250. Memo getter should return by reference, not by value.
2018-05-10 08:47:06 -07:00
Homu 677b5b3b8b Auto merge of #3247 - str4d:3207-valuebalance, r=str4d
Add valueBalance to value balances

Part of #3065 and #3207.
2018-05-10 07:12:00 -07:00
Homu 08f74ed026 Auto merge of #3240 - str4d:remove-obsolete-binaries, r=str4d
Remove obsolete CreateJoinSplit and GenerateParams binaries
2018-05-09 13:50:25 -07:00
Homu f0daf3915f Auto merge of #3233 - str4d:3164-sapling-sighash, r=str4d
ZIP 243: Sapling SignatureHash

Closes #3164.
2018-05-08 16:59:33 -07:00
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