Go to file
Suhas Daftuar b63c58500a Track transaction packages in CTxMemPoolEntry
Associate with each CTxMemPoolEntry all the size/fees of descendant
mempool transactions.  Sort mempool by max(feerate of entry, feerate
of descendants).  Update statistics on-the-fly as transactions enter
or leave the mempool.

Also add ancestor and descendant limiting, so that transactions can
be rejected if the number or size of unconfirmed ancestors exceeds
a target, or if adding a transaction would cause some other mempool
entry to have too many (or too large) a set of unconfirmed in-
mempool descendants.

(cherry picked from commit bitcoin/bitcoin@5add7a74a6)

Zcash:
- Mempool methods were adapted to our mempool changes.
- Default ancestor and descendant size limits were double to account for
  our larger block size.
- The mempool_packages RPC test fee was adapted to account for our
  emissions curve (which results in a smaller per-block reward that
  needs to be split into smaller shards for sequential transactions.
- Includes some modifications to account for us backporting
  bitcoin/bitcoin@f3fe83673e early in
  zcash/zcash#5269.
2022-12-19 05:38:43 +00:00
.cargo Update to released versions of librustzcash crates. 2022-10-20 08:35:29 -06:00
.github Remove the PR template 2022-10-24 15:56:53 -06:00
build-aux/m4 Partial revert of "Update links". See #4904 2020-12-17 01:42:03 +00:00
contrib The std::expected proposal has unnecessary instances of undefined behaviour 2022-12-08 20:53:54 +00:00
depends tl::expected follow-up to address @str4d's comments. 2022-12-09 01:36:45 +00:00
doc Merge pull request #6265 from sellout/any_taddr-sans-coinbase 2022-12-12 09:18:32 -07:00
qa Track transaction packages in CTxMemPoolEntry 2022-12-19 05:38:43 +00:00
share Remove `git_check_in_repo` from genbuild.sh to fix gitian version string 2022-10-21 14:39:21 -07:00
src Track transaction packages in CTxMemPoolEntry 2022-12-19 05:38:43 +00:00
test/lint Appease ShellCheck 2022-12-06 10:46:43 -07:00
zcutil Appease ShellCheck 2022-12-06 10:46:43 -07:00
.editorconfig Define some basic cross-editor configuration 2022-08-17 09:44:03 -06:00
.gitattributes Separate protocol versioning from clientversion 2014-10-29 00:24:40 -04:00
.gitignore rust: Add `zcash-inspect` binary for inspecting Zcash data 2022-08-19 04:13:05 +00:00
CONTRIBUTING.md Link to development guidelines in CONTRIBUTING.md 2019-06-11 10:27:52 -05:00
COPYING COPYING: Address feedback about the use of "permissive". Also refer to zcashd instead of "Zcash". 2022-06-29 13:39:44 -06:00
Cargo.lock Place zcashd.debug.* metrics behind a -debugmetrics config option 2022-11-21 20:50:02 +00:00
Cargo.toml Place zcashd.debug.* metrics behind a -debugmetrics config option 2022-11-21 20:50:02 +00:00
INSTALL Typo Fix 2019-08-21 11:17:21 -04:00
Makefile.am Make RUST_DIST in Makefile.am refer to rust-toolchain.toml (baf7d9e) 2022-09-29 13:59:58 -07:00
README.md make-release.py: Versioning changes for 5.3.2. 2022-12-03 19:49:32 +00:00
SECURITY.md Rename responsible_disclosure.md to SECURITY.md 2021-02-18 23:38:32 +00:00
autogen.sh Enable ShellCheck rules 2022-08-20 03:13:52 +00:00
code_of_conduct.md Beef up the CoC to address use of dog-whistles. 2020-10-11 08:24:37 +01:00
configure.ac make-release.py: Versioning changes for 5.3.2. 2022-12-03 19:49:32 +00:00
libzcash_script.pc.in Rename libzcashconsensus.la -> libzcash_script.la 2021-01-25 22:20:25 +00:00
rust-toolchain.toml depends: Update Rust to 1.64.0 2022-09-23 02:27:01 +00:00

README.md

Zcash 5.3.2

What is Zcash?

Zcash is an implementation of the "Zerocash" protocol. Initially based on Bitcoin's design, 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.

The zcashd Full Node

This repository hosts the zcashd software, a Zcash consensus node implementation. 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 several days.

The zcashd code is derived from a source fork of Bitcoin Core. The code was forked initially from Bitcoin Core v0.11.2, and the two codebases have diverged substantially.

🔒 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.

Other Zcash Implementations

The Zebra project offers a different Zcash consensus node implementation, written largely from the ground up.

Getting Started

Please see our user guide for instructions on 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.
  • 💬 Join our community on Discord

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. See the Debian / Ubuntu build for detailed instructions.

License

For license information see the file COPYING.