Zcash zk-SNARK public parameters for 1.0 "Sprout".
Created in the ceremony this weekend! 🎉
We're writing a blog post about this, I'm going to publish the code shortly too.
Closes#1553
This is relevant to #1609 because it hid the bug, but does not fix that
issue; the fix is to regenerate the genesis blocks.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
Change some Bitcoin strings to Zcash strings.
This addresses most of the user-facing ones (in help messages for example), thread names, but avoids things like tests and datastructure names.
**I slopped this together in a rush. Review it carefully!**
util: Update tinyformat
Updates `tinyformat.h` to commit
3a33bbf654 upstream.
Makes sure that our local changes are kept:
- bitcoin/bitcoin#3767 1b8fd35aad Make tinyformat errors raise an exception instead of assert()ing
- bitcoin/bitcoin#47359b6d4c5cdc Move strprintf define to tinyformat.h
- bitcoin/bitcoin#47486e5fd003e0 include stdexcept (for std::exception)
- bitcoin/bitcoin#8000 9eaa0afa6ec5d3dd01e4d01121314ef51f2bc305 force USE_VARIADIC_TEMPLATES
- Add `std::string format(const std::string &fmt...` added this
at the time, as we want to be able to do `strprintf(_(...), ...)`
Inspired by bitcoin/bitcoin#8264.
For Zcash: ref #1349
Add z_sendmany rule that when coinbase utxos must be spent in their entirety, with no change
See #1616 - coinbase utxos must be consumed entirely, without any change, since there
is currently no way to specify a change address in z_sendmany.
Updates `tinyformat.h` to commit
3a33bbf654 upstream.
Makes sure that our local changes are kept:
- #37671b8fd35aad Make tinyformat errors raise an exception instead of assert()ing
- #47359b6d4c5cdc Move strprintf define to tinyformat.h
- #47486e5fd003e0 include stdexcept (for std::exception)
- #8000 9eaa0afa6ec5d3dd01e4d01121314ef51f2bc305 force USE_VARIADIC_TEMPLATES
- Add `std::string format(const std::string &fmt...` added this
at the time, as we want to be able to do `strprintf(_(...), ...)`
Inspired by #8264.
Fixing floating point exception in non-TTY environments
As reported in #1612, a floating point exception occurs when zcashd is started with `showmetrics` enabled in environments without a TTY, such as when started as a service or piped to a file.
The root cause is that the metrics code attempts to get the screen width and uses this as a divisor in calculations. For non-TTY environments, this value is 0, leading to a division by zero error.
This PR adds a default screen width of 80 and uses the actual screen width only if the width can be fetched (and in a TTY environment).