Jack Grigg
ef1678bf0f
Add some more checkpoints, up to the 1.1.0 release
2018-05-07 15:15:41 +01:00
Jack Grigg
e1dbec49b7
Add test of Sapling transaction size boundary
2018-05-04 11:17:30 +01:00
Jack Grigg
892ae945f7
Rework z_sendmany z-address recipient limit
...
From Sapling, the z-address recipients could require either JSDescriptions or
OutputDescriptions. Instead of trying to give an exact number in the help text,
rely on transaction size estimation to guide user behaviour.
2018-05-04 11:17:30 +01:00
Jack Grigg
25fee3509a
Rename MAX_TX_SIZE to MAX_TX_SIZE_AFTER_SAPLING
2018-05-04 11:17:30 +01:00
Jack Grigg
ddcee7e13a
Benchmark the largest valid Sapling transaction in validatelargetx
...
11130 inputs results in a transaction between 1992301 and 2003431 bytes.
2018-05-04 11:17:30 +01:00
Jack Grigg
15ec5525e3
Raise 100kB transaction size limit from Sapling activation
...
Closes #2864 .
2018-05-04 11:17:30 +01:00
Jack Grigg
b6be3e88bb
Use CBitcoinAddress wrappers in Zcash-specific code
2018-05-03 01:13:04 +01:00
Jack Grigg
1f9dfbb9f0
Fix -Wstring-plus-int warning on clang
2018-05-01 14:55:47 +01:00
Jack Grigg
aeb089ecc7
Attempt to log before terminating if prevector allocation fails
2018-04-26 11:30:33 +01:00
Jack Grigg
3c9dbf3ed8
Improve best-effort logging before termination on OOM
...
Suggested by @kallewoof in bitcoin/bitcoin#9856
2018-04-26 11:22:07 +01:00
Jack Grigg
bf605b2644
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-24 23:04:09 +01:00
Jack Grigg
b1608eed82
Add a constant for Overwinter's transaction version
2018-04-23 20:39:04 +01:00
Jack Grigg and George Tankersley
b4f7174a88
Implement SpendDescription and OutputDescription datastructures
...
Co-authored-by: George Tankersley <george@z.cash >
2018-04-23 20:39:00 +01:00
Jack Grigg
22ffe8ce44
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-20 09:48:33 +01:00
Jack Grigg
2d922b66b0
Pass transaction header into correct SignatureHash serialization level
...
We need to indicate whether PHGR or Groth proofs are expected to vjoinsplit,
which is serialized in an inner hash, not the outer hash.
2018-04-19 20:35:33 +01:00
Jack Grigg
72540cee4a
Add Sapling v4 transactions to IsStandard
2018-04-19 16:25:04 +01:00
Jack Grigg
b7e75b17af
Implement basic Sapling v4 transaction parser
...
Details of Sapling datatypes will be filled in later; for now, they are treated
as binary blobs.
Includes code cherry-picked from upstream commit:
7030d9eb47254499bba14f1c00abc6bf493efd91
BIP144: Serialization, hashes, relay (sender side)
2018-04-19 05:01:47 +01:00
Jack Grigg
987b8ee60e
Adjust consensus rules to require v4 transactions from Sapling activation
2018-04-19 05:01:47 +01:00
Jack Grigg
68a1a592ca
Remove nType and nVersion from Zcash-specific code
2018-04-17 13:09:47 +01:00
Jack Grigg
a8e5ae92ba
GetSerializeSize changes in Zcash-specific code
2018-04-16 07:38:38 -06:00
Jack Grigg
d2fb34fb7c
Handle usage of prevector for CScript in Zcash-specific code
2018-04-16 07:38:36 -06:00
Jack Grigg
ee6220c0ed
[Bitcoin-Tx] Adjust util-test test cases for Zcash
2018-04-12 19:36:48 -06:00
Jack Grigg
abf5dd31af
Add static asserts to ensure CONTINUE_EXECUTION doesn't collide
2018-04-12 18:11:46 -06:00
Jack Grigg
176fada24d
Add Sapling to upgrade list
2018-04-12 12:13:05 -06:00
Jack Grigg
39ee63c876
When rewinding, reset pindexBestInvalid if it is pointing to a removed block
2018-04-11 21:46:58 -06:00
Jack Grigg
4d234cd2f8
Overwinter mainnet activation height
2018-04-11 20:21:45 -06:00
Jack Grigg
2141de16e8
make-release.py: Updated release notes and changelog for 1.1.0.
2018-04-11 20:15:29 -06:00
Jack Grigg
145ee79099
make-release.py: Updated manpages for 1.1.0.
2018-04-11 20:15:13 -06:00
Jack Grigg
f64c346eca
make-release.py: Versioning changes for 1.1.0.
2018-04-11 20:02:10 -06:00
Jack Grigg
a560c24d6b
depends: Update to latest librustzcash with sapling-crypto dependencies
2018-04-11 08:06:40 -06:00
Jack Grigg
c63c9f20e4
depends: Add support for unpackaged Rust crates
2018-04-11 08:00:23 -06:00
Jack Grigg
b123b9bb79
depends: Upgrade Rust to 1.26.0-beta.3
2018-04-11 07:59:46 -06:00
Jack Grigg
47fe5f72f4
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-06 15:09:50 +01:00
Jack Grigg
ecf544d062
Set Overwinter protocol version to 170005
...
170004 is the protocol version for the NODE_BLOOM change, which is being
"released" in this RC. The activation height is being set in the final release,
which means that we may end up with both RC and final release versions online
when Overwinter activates. Bumping the protocol version for Overwinter enables
RC nodes to be correctly disconnected.
2018-04-05 12:07:44 +01:00
Jack Grigg
776b494aec
make-release.py: Updated release notes and changelog for 1.1.0-rc1.
2018-04-05 03:26:17 +01:00
Jack Grigg
13d491c7bf
make-release.py: Updated manpages for 1.1.0-rc1.
2018-04-05 03:26:07 +01:00
Jack Grigg
5e11533408
make-release.py: Versioning changes for 1.1.0-rc1.
2018-04-05 03:08:20 +01:00
Jack Grigg
3fe2f3d143
Update -enforcenodebloom RPC test with filterclear vs filteradd
2018-04-05 01:30:38 +01:00
Jack Grigg
2b7fcab8fc
Move bloom filter filtering logic back into command "switch"
2018-04-05 01:30:38 +01:00
Jack Grigg
0a284ecaf6
Fix NODE_BLOOM documentation errors
2018-04-05 01:30:38 +01:00
Jack Grigg
b77e46fe01
Add RPC test for -enforcenodebloom
2018-04-05 01:30:38 +01:00
Jack Grigg
10e97b8f00
test: Add missing Overwinter fields to mininode's CTransaction
2018-04-04 22:49:49 +01:00
Jack Grigg
8a22734ec1
test: Check return value of snprintf
2018-04-04 19:18:23 +01:00
Jack Grigg
162cc4240e
Fix typo
2018-04-04 14:59:07 +01:00
Jack Grigg
2d7bae5b33
Update CBlockTreeDB::EraseBatchSync for dbwrapper refactor
2018-04-03 21:38:34 +01:00
Jack Grigg
26cdb83add
Update blockchain.py RPC test for Zcash
2018-04-03 20:40:54 +01:00
Jack Grigg
3a8e1d0cf4
Refactor Zcash changes to CCoinsViewDB
...
To match upstream changes.
2018-04-03 20:40:54 +01:00
Jack Grigg
6c44424322
Adjust deprecation message to work in both UI and -alertnotify
2018-04-03 12:17:30 +01:00
Jack Grigg
f5007d8912
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).
2018-04-03 10:58:31 +01:00
Jack Grigg
fe87fd2b36
Add RPC test of RewindBlockIndex
2018-04-03 10:58:27 +01:00
Jack Grigg
28915c30ca
Fix z_importviewingkey startHeight parameter
...
Closes #2937 .
2018-04-03 02:43:52 +01:00
Jack Grigg
0e400c8854
depends: Fix regex bugs in cargo-checksum.sh
2018-03-30 19:06:51 +01:00
Jack Grigg
9666cc912a
Test calling z_mergetoaddress to merge notes while a note merge is ongoing
2018-03-29 15:38:26 -06:00
Jack Grigg
b96f7d692d
wallet: Cast size_t to uint64_t before passing to UniValue
2018-03-29 01:05:45 +02:00
Jack Grigg
4ff92bb6d8
rpcwallet.cpp: Cast size_t to uint64_t before passing to UniValue
2018-03-29 01:02:58 +02:00
Jack Grigg
8e95a12b63
Cast ZCIncrementalMerkleTree::size() to uint64_t before passing to UniValue
...
size_t is ambiguous for serialization, and UniValue doesn't have an API for
handling this internally.
2018-03-28 19:51:48 +02:00
Jack Grigg
f0118aaa0b
Add base case to CurrentEpoch()
2018-03-28 18:29:20 +02:00
Jack Grigg
792c05d8a9
Set PLATFORM flag when compiling libsnark
2018-03-28 18:29:19 +02:00
Jack Grigg and kozyilmaz
381a79a909
libsnark: Don't set -static on Darwin
...
Co-authored-by: kozyilmaz <kazim@monolytic.com >
2018-03-28 18:29:19 +02:00
Jack Grigg
4fe053e6e8
Move explicit instantiation of IncrementalMerkleTree::emptyroots into header
...
Fixes a -Wundefined-var-template warning with clang.
2018-03-28 18:29:19 +02:00
Jack Grigg
6c7930f688
Use uint64_t instead of size_t for serialized indices into tx.vjoinsplit
...
size_t has no guarantee of uniform size, and thus far has been serialized as a
uint64_t on supported platforms.
2018-03-28 18:29:19 +02:00
Jack Grigg
d58ed91af0
Optimise serialization of MerklePath, avoiding ambiguity of std::vector<bool>
...
The serialization enforces a maximum supported Merkle tree depth of 64.
Closes #2831 .
2018-03-28 18:26:08 +02:00
Jack Grigg
d9cd254e5e
Make Rust compilation mandatory
...
The temporary integration check in CheckEquihashSolution() remains, until we
have "real" Rust code to integrate.
Closes #2688 .
2018-03-28 17:55:45 +02:00
Jack Grigg
0adfdc99b2
depends: Explicitly download and vendor Rust dependencies
...
Closes #2231 .
2018-03-28 15:46:51 +02:00
Jack Grigg
31afbcc5c9
Ignore -mempooltxinputlimit once Overwinter activates
2018-03-28 14:25:42 +02:00
Jack Grigg
b466c1c90c
cleanup: Ensure code is pyflakes-clean for CI
2018-03-27 02:47:57 +02:00
Jack Grigg
31e6dde842
snark: Remove -mt suffix from Boost library
2018-03-26 18:28:07 +02:00
Jack Grigg
1c4a74d40b
depends: Remove -mt suffix from Boost libraries
...
Requires disabling --build-type=complete, because in Boost 1.66 it appears to be
broken (only the tagged libraries are built).
2018-03-26 16:33:27 +02:00
Jack Grigg
e6e4b619a9
Use correct Boost::System linker flag for libzcash
2018-03-26 16:22:35 +02:00
Jack Grigg
e6a34c283a
Revert "remove -mt suffix from boost libraries built by depends"
...
This reverts commit 33ae5edd2c .
2018-03-26 16:20:55 +02:00
Jack Grigg
7346f09026
Only set multicore flags if OpenMP is available
2018-03-19 17:32:21 +01:00
Jack Grigg
c64108d1a0
Don't require RELRO and BIND_NOW for Darwin
...
Xcode's ld (at least ld64-302.3) doesn't support -z
2018-03-19 17:32:21 +01:00
Jack Grigg
b7caaf954b
test: Move wait_and_assert_operationid_status debug output before asserts
...
Otherwise we don't see them for failed tests :)
2018-03-19 14:00:18 +01:00
Jack Grigg
7b4d0c7762
Notify users about auto-senescence via -alertnotify
...
Closes #2829 .
2018-03-16 10:25:45 +01:00
Jack Grigg
132a255000
Add link to Overwinter info page
2018-03-13 00:47:10 +00:00
Jack Grigg
a6ae8f55ae
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-09 09:42:20 +00:00
Jack Grigg and Robert Seacord
c4379e3a22
Add configure flags for enabling ASan/UBSan and TSan
...
Co-authored-by: Robert Seacord <rcseacord@gmail.com >
2018-03-01 16:04:42 +00:00
Jack Grigg
326fc65e66
Add environment variable for setting ./configure flags in zcutil/build.sh
...
Closes #2066 .
2018-03-01 16:04:12 +00:00
Jack Grigg
25b080a33b
make-release.py: Updated release notes and changelog for 1.0.15.
2018-02-28 16:58:19 +00:00
Jack Grigg
f58b1536b4
make-release.py: Updated manpages for 1.0.15.
2018-02-28 16:58:10 +00:00
Jack Grigg
1d6f7acf4d
make-release.py: Versioning changes for 1.0.15.
2018-02-28 16:44:07 +00:00
Jack Grigg
138cf77004
Overwinter release notes and testnet activation height
...
Closes #2957 .
2018-02-28 13:19:36 +00:00
Jack Grigg and Brad Miller
704b76358d
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.
Co-authored-by: Brad Miller <brad@z.cash >
2018-02-27 00:47:56 +00:00
Jack Grigg
34ce29b3ee
make-release.py: Updated release notes and changelog for 1.0.15-rc1.
2018-02-24 04:20:05 +00:00
Jack Grigg
7d0c1df409
make-release.py: Updated manpages for 1.0.15-rc1.
2018-02-24 04:17:59 +00:00
Jack Grigg
1dd95be4a9
make-release.py: Versioning changes for 1.0.15-rc1.
2018-02-24 04:08:36 +00:00
Jack Grigg
15ced9b153
wallet_mergetoaddress: Add additional syncs to prevent race conditions
2018-02-23 04:28:04 +00:00
Jack Grigg
713b366231
Regenerate sighash tests
2018-02-23 01:40:08 +00:00
Jack Grigg
50a90615af
Document that consensus.chaintip != consensus.nextblock just before an upgrade
2018-02-22 14:01:43 +00:00
Jack Grigg
4c3d2b3bbe
Check upgrade status in wallet_overwintertx RPC test
2018-02-22 13:44:40 +00:00
Jack Grigg
2bda6a9b22
Add z_mergetoaddress to release notes
2018-02-22 13:23:25 +00:00
Jack Grigg
553a5c1ab2
Gate z_mergetoaddress as an experimental feature
2018-02-22 13:23:25 +00:00
Jack Grigg
6e9c7629af
Implement z_mergetoaddress for combining UTXOs and notes
...
Closes #2493 .
2018-02-22 13:23:18 +00:00
Jack Grigg
44488400c1
Check Equihash solution when loading block index
2018-02-21 22:37:19 +00:00
Jack Grigg
ed9aa2b62a
Add branch IDs for current and next block to getblockchaininfo
...
Closes #2974 .
2018-02-21 21:18:03 +00:00
Jack Grigg
bdbe8e8591
Extend CWallet::GetFilteredNotes to enable filtering on a set of addresses
2018-02-20 13:19:07 +00:00
Jack Grigg
4553901850
Use v3 transactions with caching for validatelargetx benchmark
2018-02-20 04:22:22 +00:00
Jack Grigg
818b94f94f
Make number of inputs configurable in validatelargetx test
2018-02-20 04:22:22 +00:00
Jack Grigg
a3353b4e01
Regenerate SignatureHash tests
2018-02-20 04:22:21 +00:00
Jack Grigg
d55e5e778b
Cleanup: Wrap function arguments
2018-02-20 04:22:21 +00:00