Dependency Updates
This updates:
- Boost from 1.66.0 to 1.69.0
- OpenSSL From 1.1.0h to 1.1.1a
- Proton from 0.17.0 to 0.26.0
- Rust from 1.28.0 to 1.32.0
zmq: add flag to publish all checked blocks
This change adds a hook for the BlockChecked signal to the zmq publisher. This is useful for light wallet daemon initialization (see https://github.com/zcash/zcash/issues/3638 for context, and [lightwalletd](https://github.com/zcash-hackworks/lightwalletd) for implementation).
The new flag is `-zmqpubcheckedblock=address`, in keeping with the established style.
Return more information when building a transaction fails
This PR is intended to make it easier to diagnose what went wrong when building a transaction using `TransactionBuilder` fails.
On shutdown, wait for miner threads to exit (join them)
Closes#2926. Have `Shutdown()` running in the main thread wait for miner threads to exit before exiting.
Update for Mac OS local rpc-tests
This PR is for #3341 .
The main issue is that ```#!/usr/bin/env python2``` is not valid on Mac. However, ```#!/usr/bin/env python``` is standard for Python2.7 interpreter link.
On a side note, pyflakes does a passive check on modules imported per some python file. This allows modules to be imported even if they do not exist on the current system (e.g. pyzmq, pybake2). Ultimately, the missing modules wont throw errors until ```rpc-test.sh``` calls that python file.
I sanity checked running this update on an Ubuntu 16.04 node, and the tests pass as expected (minus a known issue that is independent from this update). Also have updated the RTD documentation for the MacOS user guide procedure.
Allow user to ask server to save the Sprout R1CS to a file during startup.
This adds an experimental feature `-savesproutr1cs` which can be used to save the file `r1cs` containing the constraint system used in the original launch of Zcash. The file is written to the parameters directory. This can be used to recover this file for verification of the Sprout MPC transcript and parameters.
initialize pCurrentParams in TransactionBuilder tests
In issue https://github.com/zcash/zcash/issues/3715 the failing tests were calling Params(), which includes an assertion that pCurrentParams is not null, without first calling SelectParams(), which will set that pointer. All the other tests in the same test case (which don't fail in the manner described in #3715 ) start out by calling `SelectParams(CBaseChainParams::REGTEST);`.
This change adds an identical call to the affected tests, getting past the failed assertion in Params() on pCurrentParams.
Here is a GitLab pipeline showing output from these tests run in isolation before this change:
https://gitlab.com/charlieok/zcash/pipelines/38304730
...and here is one with the same set of tests after this change:
https://gitlab.com/charlieok/zcash/pipelines/38307556
This change adds a hook for the BlockChecked signal to the zmq
publisher. This is useful for light wallet daemon initialization.
The new flag is `-zmqpubcheckedblock=address`