Go to file
Gavin Andresen d7a20b6373 Simple benchmarking framework
Benchmarking framework, loosely based on google's micro-benchmarking
library (https://github.com/google/benchmark)

Wny not use the Google Benchmark framework? Because adding Even More Dependencies
isn't worth it. If we get a dozen or three benchmarks and need nanosecond-accurate
timings of threaded code then switching to the full-blown Google Benchmark library
should be considered.

The benchmark framework is hard-coded to run each benchmark for one wall-clock second,
and then spits out .csv-format timing information to stdout. It is left as an
exercise for later (or maybe never) to add command-line arguments to specify which
benchmark(s) to run, how long to run them for, how to format results, etc etc etc.
Again, see the Google Benchmark framework for where that might end up.

See src/bench/MilliSleep.cpp for a sanity-test benchmark that just benchmarks
'sleep 100 milliseconds.'

To compile and run benchmarks:
  cd src; make bench

Sample output:

Benchmark,count,min,max,average
Sleep100ms,10,0.101854,0.105059,0.103881
2020-01-22 21:40:35 +00:00
.github ld --version doesn't work on macOS. 2019-06-14 23:18:10 +01:00
build-aux/m4 Revert "Check if OpenMP is available before using it" 2019-08-22 15:42:50 +01:00
contrib make-release.py: Updated release notes and changelog for 2.1.1. 2020-01-17 10:27:31 -07:00
depends Update libsodium download-path 2020-01-13 13:23:16 +09:00
doc make-release.py: Updated release notes and changelog for 2.1.1. 2020-01-17 10:27:31 -07:00
qa Auto merge of #4252 - str4d:wallet-interface-refactor, r=str4d 2019-12-18 22:48:26 +00:00
share [doc] Fix markdown 2019-12-17 12:18:50 -06:00
src Simple benchmarking framework 2020-01-22 21:40:35 +00:00
zcutil Auto merge of #4171 - defuse:fuzzer-packaging, r=str4d 2019-11-06 03:33:05 -08:00
.gitattributes Separate protocol versioning from clientversion 2014-10-29 00:24:40 -04:00
.gitignore Separate AFL build, run fuzz stages, and add afl argument pass-through 2019-10-28 11:54:13 -06:00
.travis.yml Travis: Use Blue Box VMs for IPv6 loopback support 2017-11-29 17:24:59 +00:00
CONTRIBUTING.md Link to development guidelines in CONTRIBUTING.md 2019-06-11 10:27:52 -05:00
COPYING Update of copyright year to 2020 2019-12-27 17:58:48 +01:00
INSTALL Typo Fix 2019-08-21 11:17:21 -04:00
Makefile.am Replace http with https: in links to the MIT license. 2019-07-18 15:26:01 +01:00
README.md make-release.py: Versioning changes for 2.1.1. 2020-01-17 10:26:14 -07:00
autogen.sh Replace http with https: in links to the MIT license. 2019-07-18 15:26:01 +01:00
code_of_conduct.md Electric Coin Company 2019-03-20 09:04:32 +02:00
configure.ac Simple benchmarking framework 2020-01-22 21:40:35 +00:00
libzcashconsensus.pc.in Rename libbitcoinconsensus to libzcashconsensus 2016-10-18 16:45:37 -05:00
responsible_disclosure.md Fixes #4013, added BitcoinABC as a disclosure partner 2019-05-14 07:51:08 -07:00

README.md

Zcash 2.1.1

What is Zcash?

Zcash is an implementation of the "Zerocash" protocol. Based on Bitcoin's code, Zcash intends to offer a far higher standard of privacy through a sophisticated zero-knowledge proving scheme that preserves confidentiality of transaction metadata. More 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 it 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 period. The automatic feature is based on block height.

Getting Started

Please see our user guide for joining the main Zcash network.

Need Help?

  • 📘 See the documentation at the ReadTheDocs for help and more information.
  • 📨 Ask for help on the Zcash forum.
  • 🔍 Chat with our support community on Rocket.Chat

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

Building

Build Zcash along with most dependencies from source by running the following command:

./zcutil/build.sh -j$(nproc)

Currently, Zcash is only officially supported on Debian and Ubuntu.

License

For license information see the file COPYING.