Cory Fields 4165af1b73 c++11: don't throw from the reverselock destructor
noexcept is default for destructors as of c++11. By throwing in reverselock's
destructor if it's lock has been tampered with, the likely result is
std::terminate being called. Indeed that happened before this change.

Once reverselock has taken another lock (its ctor didn't throw), it makes no
sense to try to grab or lock the parent lock. That is be broken/undefined
behavior depending on the parent lock's implementation, but it shouldn't cause
the reverselock to fail to re-lock when destroyed.

To avoid those problems, simply swap the parent lock's contents with a dummy
for the duration of the lock. That will ensure that any undefined behavior is
caught at the call-site rather than the reverse lock's destruction.

Barring a failed mutex unlock which would be indicative of a larger problem,
the destructor should now never throw.
2017-11-29 17:24:59 +00:00
2017-03-07 19:15:08 +00:00
2017-11-29 17:24:59 +00:00
2017-07-03 08:57:05 +01:00
2016-10-07 16:17:08 -07:00
2017-03-07 19:15:08 +00:00

Zcash 1.0.13

What is Zcash?

Zcash is an implementation of the "Zerocash" protocol. Based on Bitcoin's code, it intends to offer a far higher standard of privacy through a sophisticated zero-knowledge proving scheme that preserves confidentiality of transaction metadata. Technical details are available in our Protocol Specification.

This software is the Zcash client. It downloads and stores the entire history of Zcash transactions; depending on the speed of your computer and network connection, the synchronization process could take a day or more once the blockchain has reached a significant size.

Security Warnings

See important security warnings on the Security Information page.

Zcash is experimental and a work-in-progress. Use at your own risk.

Deprecation Policy

This release is considered deprecated 16 weeks after the release day. There is an automatic deprecation shutdown feature which will halt the node some time after this 16 week time period. The automatic feature is based on block height and can be explicitly disabled.

Where do I begin?

We have a guide for joining the main Zcash network: https://github.com/zcash/zcash/wiki/1.0-User-Guide

Need Help?

  • See the documentation at the Zcash Wiki for help and more information.
  • Ask for help on the Zcash forum.

Participation in the Zcash project is subject to a Code of Conduct.

Building

Build Zcash along with most dependencies from source by running ./zcutil/build.sh. Currently only Linux is officially supported.

License

For license information see the file COPYING.

Description
No description provided
Readme 174 MiB
Hush 3.10.5 Latest
2026-02-28 01:53:43 -06:00
Languages
C++ 44.3%
Shell 28.4%
C 19.4%
Python 4.5%
M4 1%
Other 2.3%