Merge branch 'beta' into mergemaster
# Conflicts: # src/main.cpp
This commit is contained in:
123
doc/amqp.md
Normal file
123
doc/amqp.md
Normal file
@@ -0,0 +1,123 @@
|
||||
# Block and Transaction Broadcasting With AMQP 1.0 (Experimental Feature)
|
||||
|
||||
[AMQP](https://www.amqp.org/) is an enterprise-level message queuing
|
||||
protocol for the reliable passing of real-time data and business
|
||||
transactions between applications. AMQP supports both broker and
|
||||
brokerless messaging. AMQP 1.0 is an open standard and has been
|
||||
ratified as ISO/IEC 19464.
|
||||
|
||||
The Zcash daemon can be configured to act as a trusted "border
|
||||
router", implementing the Zcash P2P protocol and relay, making
|
||||
consensus decisions, maintaining the local blockchain database,
|
||||
broadcasting locally generated transactions into the network, and
|
||||
providing a queryable RPC interface to interact on a polled basis for
|
||||
requesting blockchain related data. However, there exists only a
|
||||
limited service to notify external software of events like the arrival
|
||||
of new blocks or transactions.
|
||||
|
||||
The AMQP facility implements a notification interface through a set
|
||||
of specific notifiers. Currently there are notifiers that publish
|
||||
blocks and transactions. This read-only facility requires only the
|
||||
connection of a corresponding AMQP subscriber port in receiving
|
||||
software.
|
||||
|
||||
Currently the facility is not authenticated nor is there any two-way
|
||||
protocol involvement. Therefore, subscribers should validate the
|
||||
received data since it may be out of date, incomplete or even invalid.
|
||||
|
||||
Because AMQP is message oriented, subscribers receive transactions
|
||||
and blocks all-at-once and do not need to implement any sort of
|
||||
buffering or reassembly.
|
||||
|
||||
## Prerequisites
|
||||
|
||||
The AMQP feature in Zcash requires [Qpid Proton](https://qpid.apache.org/proton/)
|
||||
version 0.17 or newer, which you will need to install if you are not
|
||||
using the depends system. Typically, it is packaged by distributions as
|
||||
something like *libqpid-proton*. The C++ wrapper for AMQP *is* required.
|
||||
|
||||
In order to run the example Python client scripts in contrib/ one must
|
||||
also install *python-qpid-proton*, though this is not necessary for
|
||||
daemon operation.
|
||||
|
||||
## Enabling
|
||||
|
||||
By default, the AMQP feature is automatically compiled in if the
|
||||
necessary prerequisites are found. To disable, use --disable-proton
|
||||
during the *configure* step of building zcashd:
|
||||
|
||||
$ ./configure --disable-proton (other options)
|
||||
|
||||
To actually enable operation, one must set the appropriate options on
|
||||
the commandline or in the configuration file.
|
||||
|
||||
## Usage
|
||||
|
||||
AMQP support is currently an experimental feature, so you must pass
|
||||
the option:
|
||||
|
||||
-experimentalfeatures
|
||||
|
||||
Currently, the following notifications are supported:
|
||||
|
||||
-amqppubhashtx=address
|
||||
-amqppubhashblock=address
|
||||
-amqppubrawblock=address
|
||||
-amqppubrawtx=address
|
||||
|
||||
The address must be a valid AMQP address, where the same address can be
|
||||
used in more than notification. Note that SSL and SASL addresses are
|
||||
not currently supported.
|
||||
|
||||
Launch zcashd like this:
|
||||
|
||||
$ zcashd -amqppubhashtx=amqp://127.0.0.1:5672
|
||||
|
||||
Or this:
|
||||
|
||||
$ zcashd -amqppubhashtx=amqp://127.0.0.1:5672 \
|
||||
-amqppubrawtx=amqp://127.0.0.1:5672 \
|
||||
-amqppubrawblock=amqp://127.0.0.1:5672 \
|
||||
-amqppubhashblock=amqp://127.0.0.1:5672 \
|
||||
-debug=amqp
|
||||
|
||||
The debug category `amqp` enables AMQP-related logging.
|
||||
|
||||
Each notification has a topic and body, where the header corresponds
|
||||
to the notification type. For instance, for the notification `-amqpubhashtx`
|
||||
the topic is `hashtx` (no null terminator) and the body is the hexadecimal
|
||||
transaction hash (32 bytes). This transaction hash and the block hash
|
||||
found in `hashblock` are in RPC byte order.
|
||||
|
||||
These options can also be provided in zcash.conf.
|
||||
|
||||
Please see `contrib/amqp/amqp_sub.py` for a working example of an
|
||||
AMQP server listening for messages.
|
||||
|
||||
## Remarks
|
||||
|
||||
From the perspective of zcashd, the local end of an AMQP link is write-only.
|
||||
|
||||
No information is broadcast that wasn't already received from the public
|
||||
P2P network.
|
||||
|
||||
No authentication or authorization is done on peers that zcashd connects
|
||||
to; it is assumed that the AMQP link is exposed only to trusted entities,
|
||||
using other means such as firewalling.
|
||||
|
||||
TLS support may be added once OpenSSL has been removed from the Zcash
|
||||
project and alternative TLS implementations have been evaluated.
|
||||
|
||||
SASL support may be added in a future update for secure communication.
|
||||
|
||||
Note that when the block chain tip changes, a reorganisation may occur
|
||||
and just the tip will be notified. It is up to the subscriber to
|
||||
retrieve the chain from the last known block to the new tip.
|
||||
|
||||
At present, zcashd does not try to resend a notification if there was
|
||||
a problem confirming receipt. Support for delivery guarantees such as
|
||||
*at-least-once* and *exactly-once* will be added in in a future update.
|
||||
|
||||
Currently, zcashd appends an up-counting sequence number to each notification
|
||||
which allows listeners to detect lost notifications.
|
||||
|
||||
@@ -1,68 +1,93 @@
|
||||
Zcash Contributors
|
||||
==================
|
||||
|
||||
Jack Grigg (392)
|
||||
Simon Liu (254)
|
||||
Sean Bowe (185)
|
||||
Daira Hopwood (80)
|
||||
Jack Grigg (601)
|
||||
Simon Liu (297)
|
||||
Sean Bowe (193)
|
||||
Daira Hopwood (102)
|
||||
Wladimir J. van der Laan (71)
|
||||
Taylor Hornby (65)
|
||||
Wladimir J. van der Laan (58)
|
||||
Jonas Schnelli (48)
|
||||
Jay Graber (47)
|
||||
Jay Graber (61)
|
||||
Nathan Wilcox (56)
|
||||
Jonas Schnelli (49)
|
||||
Kevin Gallagher (38)
|
||||
Cory Fields (15)
|
||||
Pieter Wuille (14)
|
||||
Nathan Wilcox (10)
|
||||
Cory Fields (30)
|
||||
Pieter Wuille (24)
|
||||
syd (15)
|
||||
nomnombtc (9)
|
||||
fanquake (5)
|
||||
Paige Peterson (5)
|
||||
MarcoFalke (5)
|
||||
Paige Peterson (9)
|
||||
Matt Corallo (9)
|
||||
fanquake (8)
|
||||
MarcoFalke (7)
|
||||
Luke Dashjr (6)
|
||||
Johnathan Corgan (5)
|
||||
Gregory Maxwell (5)
|
||||
Ariel Gabizon (5)
|
||||
kozyilmaz (4)
|
||||
Philip Kaufmann (4)
|
||||
Peter Todd (4)
|
||||
Patrick Strateman (4)
|
||||
Matt Corallo (4)
|
||||
Karl-Johan Alm (4)
|
||||
Jorge Timón (4)
|
||||
Jeff Garzik (4)
|
||||
David Mercer (4)
|
||||
Daniel Cousens (4)
|
||||
lpescher (3)
|
||||
Suhas Daftuar (3)
|
||||
Pavel Janík (3)
|
||||
João Barbosa (3)
|
||||
Ariel (3)
|
||||
Alfie John (3)
|
||||
str4d (2)
|
||||
paveljanik (2)
|
||||
kpcyrd (2)
|
||||
aniemerg (2)
|
||||
Scott (2)
|
||||
Robert C. Seacord (2)
|
||||
Luke Dashjr (2)
|
||||
João Barbosa (2)
|
||||
Per Grön (2)
|
||||
Pavel Vasin (2)
|
||||
Joe Turgeon (2)
|
||||
Jason Davies (2)
|
||||
Jack Gavigan (2)
|
||||
ITH4Coinomia (2)
|
||||
Gavin Andresen (2)
|
||||
Daniel Kraft (2)
|
||||
Bjorn Hjortsberg (2)
|
||||
Amgad Abdelhafez (2)
|
||||
zathras-crypto (1)
|
||||
unsystemizer (1)
|
||||
practicalswift (1)
|
||||
mruddy (1)
|
||||
mrbandrews (1)
|
||||
kazcw (1)
|
||||
jc (1)
|
||||
isle2983 (1)
|
||||
instagibbs (1)
|
||||
emilrus (1)
|
||||
dexX7 (1)
|
||||
daniel (1)
|
||||
calebogden (1)
|
||||
ayleph (1)
|
||||
Tom Ritter (1)
|
||||
Stephen (1)
|
||||
S. Matthew English (1)
|
||||
Pavel Vasin (1)
|
||||
Ross Nicoll (1)
|
||||
René Nyffenegger (1)
|
||||
Paul Georgiou (1)
|
||||
Paragon Initiative Enterprises, LLC (1)
|
||||
Nicolas DORIER (1)
|
||||
Nathaniel Mahieu (1)
|
||||
Murilo Santana (1)
|
||||
Maxwell Gubler (1)
|
||||
Matt Quinn (1)
|
||||
Mark Friedenbach (1)
|
||||
Marius Kjærstad (1)
|
||||
Louis Nyffenegger (1)
|
||||
Leo Arias (1)
|
||||
Lars-Magnus Skog (1)
|
||||
Jorge Timón (1)
|
||||
Kevin Pan (1)
|
||||
Jonathan "Duke" Leto (1)
|
||||
Jonas Nick (1)
|
||||
Jeffrey Walton (1)
|
||||
Ian Kelling (1)
|
||||
Gaurav Rana (1)
|
||||
@@ -70,17 +95,23 @@ Forrest Voight (1)
|
||||
Florian Schmaus (1)
|
||||
Ethan Heilman (1)
|
||||
Eran Tromer (1)
|
||||
Daniel Kraft (1)
|
||||
Duke Leto (1)
|
||||
Christian von Roques (1)
|
||||
Chirag Davé (1)
|
||||
Casey Rodarmor (1)
|
||||
Cameron Boehmer (1)
|
||||
Bryan Stitt (1)
|
||||
Bruno Arueira (1)
|
||||
Boris Hajduk (1)
|
||||
Bob McElrath (1)
|
||||
Bitcoin Error Log (1)
|
||||
Ashley Holman (1)
|
||||
Anthony Towns (1)
|
||||
Allan Niemerg (1)
|
||||
Alex van der Peet (1)
|
||||
Alex Morcos (1)
|
||||
Alex (1)
|
||||
Adam Weiss (1)
|
||||
Adam Brown (1)
|
||||
4ZEC (1)
|
||||
21E14 (1)
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
* zcash.conf: contains configuration settings for zcashd
|
||||
* zcashd.pid: stores the process id of zcashd while running
|
||||
* komodo.conf: contains configuration settings for komodod
|
||||
* komodod.pid: stores the process id of komodod while running
|
||||
* blocks/blk000??.dat: block data (custom, 128 MiB per file)
|
||||
* blocks/rev000??.dat; block undo data (custom)
|
||||
* blocks/index/*; block index (LevelDB)
|
||||
* chainstate/*; block chain state database (LevelDB)
|
||||
* database/*: BDB database environment
|
||||
* db.log: wallet database log file
|
||||
* debug.log: contains debug information and general logging generated by zcashd
|
||||
* debug.log: contains debug information and general logging generated by komodod
|
||||
* fee_estimates.dat: stores statistics used to estimate minimum transaction fees and priorities required for confirmation
|
||||
* peers.dat: peer IP address database (custom format)
|
||||
* wallet.dat: personal wallet (BDB) with keys and transactions
|
||||
|
||||
74
doc/hotfix-process.md
Normal file
74
doc/hotfix-process.md
Normal file
@@ -0,0 +1,74 @@
|
||||
Hotfix Release Process
|
||||
======================
|
||||
|
||||
Hotfix releases are versioned by incrementing the build number of the latest
|
||||
release. For example:
|
||||
|
||||
First hotfix: v1.0.11 -> v1.0.11-1
|
||||
Second hotfix: v1.0.11-1 -> v1.0.11-2
|
||||
|
||||
In the commands below, <RELEASE> and <RELEASE_PREV> are prefixed with a v, ie.
|
||||
v1.0.11 (not 1.0.11).
|
||||
|
||||
## Create a hotfix branch
|
||||
|
||||
Create a hotfix branch from the previous release tag, and push it to the main
|
||||
repository:
|
||||
|
||||
$ git branch hotfix-<RELEASE> <RELEASE_PREV>
|
||||
$ git push 'git@github.com:zcash/zcash' hotfix-<RELEASE>
|
||||
|
||||
## Implement hotfix changes
|
||||
|
||||
Hotfix changes are implemented the same way as regular changes (developers work
|
||||
in separate branches per change, and push the branches to their own repositories),
|
||||
except that the branches are based on the hotfix branch instead of master:
|
||||
|
||||
$ git checkout hotfix-<RELEASE>
|
||||
$ git checkout -b <BRANCH_NAME>
|
||||
|
||||
## Merge hotfix PRs
|
||||
|
||||
Hotfix PRs are created like regular PRs, except using the hotfix branch as the
|
||||
base instead of master. Each PR should be reviewed as normal, and then the
|
||||
following process should be used to merge:
|
||||
|
||||
- A CI merge build is manually run by logging into the CI server, going to the
|
||||
pr-merge builder, clicking the "force" button, and entering the following
|
||||
values:
|
||||
|
||||
- Repository: https://github.com/<DevUser>/zcash
|
||||
- <DevUser> must be in the set of "safe" users as-specified in the CI
|
||||
config.
|
||||
- Branch: name of the hotfix PR branch (not the hotfix release branch).
|
||||
|
||||
- A link to the build and its result is manually added to the PR as a comment.
|
||||
|
||||
- If the build was successful, the PR is merged via the GitHub button.
|
||||
|
||||
## Release process
|
||||
|
||||
The majority of this process is identical to the standard release process.
|
||||
However, there are a few notable differences:
|
||||
|
||||
- When running the release script, use the `--hotfix` flag:
|
||||
|
||||
$ ./zcutil/make-release.py --hotfix <RELEASE> <RELEASE_PREV> <APPROX_RELEASE_HEIGHT>
|
||||
|
||||
- To review the automated changes in git:
|
||||
|
||||
$ git log hotfix-<RELEASE>..HEAD
|
||||
|
||||
- After the standard review process, use the hotfix merge process outlined above
|
||||
instead of the regular merge process.
|
||||
|
||||
- When making the tag, check out the hotfix branch instead of master.
|
||||
|
||||
## Post-release
|
||||
|
||||
Once the hotfix release has been created, a new PR should be opened for merging
|
||||
the hotfix release branch into master. This may require fixing merge conflicts
|
||||
(e.g. changing the version number in the hotfix branch to match master, if
|
||||
master is ahead). Such conflicts **MUST** be addressed with additional commits
|
||||
to the hotfix branch; specifically, the branch **MUST NOT** be rebased on
|
||||
master.
|
||||
84
doc/man/komodo-cli.1
Normal file
84
doc/man/komodo-cli.1
Normal file
@@ -0,0 +1,84 @@
|
||||
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.3.
|
||||
.TH KOMODO-CLI "1" "March 2018" "komodo-cli v1.0.8" "User Commands"
|
||||
.SH NAME
|
||||
komodo-cli \- manual page for komodo-cli v1.0.8
|
||||
.SH DESCRIPTION
|
||||
Komodo RPC client version v1.0.8
|
||||
.PP
|
||||
In order to ensure you are adequately protecting your privacy when using Zcash,
|
||||
please see <https://z.cash/support/security/index.html>.
|
||||
.SS "Usage:"
|
||||
.TP
|
||||
komodo\-cli [options] <command> [params]
|
||||
Send command to Komodo
|
||||
.TP
|
||||
komodo\-cli [options] help
|
||||
List commands
|
||||
.TP
|
||||
komodo\-cli [options] help <command>
|
||||
Get help for a command
|
||||
.SH OPTIONS
|
||||
.HP
|
||||
\-?
|
||||
.IP
|
||||
This help message
|
||||
.HP
|
||||
\fB\-conf=\fR<file>
|
||||
.IP
|
||||
Specify configuration file (default: komodo.conf)
|
||||
.HP
|
||||
\fB\-datadir=\fR<dir>
|
||||
.IP
|
||||
Specify data directory
|
||||
.HP
|
||||
\fB\-testnet\fR
|
||||
.IP
|
||||
Use the test network
|
||||
.HP
|
||||
\fB\-regtest\fR
|
||||
.IP
|
||||
Enter regression test mode, which uses a special chain in which blocks
|
||||
can be solved instantly. This is intended for regression testing tools
|
||||
and app development.
|
||||
.HP
|
||||
\fB\-rpcconnect=\fR<ip>
|
||||
.IP
|
||||
Send commands to node running on <ip> (default: 127.0.0.1)
|
||||
.HP
|
||||
\fB\-rpcport=\fR<port>
|
||||
.IP
|
||||
Connect to JSON\-RPC on <port> (default: 8232 or testnet: 18232)
|
||||
.HP
|
||||
\fB\-rpcwait\fR
|
||||
.IP
|
||||
Wait for RPC server to start
|
||||
.HP
|
||||
\fB\-rpcuser=\fR<user>
|
||||
.IP
|
||||
Username for JSON\-RPC connections
|
||||
.HP
|
||||
\fB\-rpcpassword=\fR<pw>
|
||||
.IP
|
||||
Password for JSON\-RPC connections
|
||||
.HP
|
||||
\fB\-rpcclienttimeout=\fR<n>
|
||||
.IP
|
||||
Timeout in seconds during HTTP requests, or 0 for no timeout. (default:
|
||||
900)
|
||||
.SH COPYRIGHT
|
||||
|
||||
In order to ensure you are adequately protecting your privacy when using Zcash,
|
||||
please see <https://z.cash/support/security/index.html>.
|
||||
|
||||
Copyright (C) 2009-2017 The Bitcoin Core Developers
|
||||
Copyright (C) 2015-2017 The Zcash Developers
|
||||
Copyright (C) 2015-2017 jl777 and SuperNET developers
|
||||
|
||||
This is experimental software.
|
||||
|
||||
Distributed under the MIT software license, see the accompanying file COPYING
|
||||
or <http://www.opensource.org/licenses/mit-license.php>.
|
||||
|
||||
This product includes software developed by the OpenSSL Project for use in the
|
||||
OpenSSL Toolkit <https://www.openssl.org/> and cryptographic software written
|
||||
by Eric Young and UPnP software written by Thomas Bernard.
|
||||
102
doc/man/komodo-tx.1
Normal file
102
doc/man/komodo-tx.1
Normal file
@@ -0,0 +1,102 @@
|
||||
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.3.
|
||||
.TH KOMODO-TX "1" "March 2018" "komodo-tx v1.0.8" "User Commands"
|
||||
.SH NAME
|
||||
komodo-tx \- manual page for komodo-tx v1.0.8
|
||||
.SH DESCRIPTION
|
||||
Zcash zcash\-tx utility version v1.0.8
|
||||
.SS "Usage:"
|
||||
.TP
|
||||
zcash\-tx [options] <hex\-tx> [commands]
|
||||
Update hex\-encoded zcash transaction
|
||||
.TP
|
||||
zcash\-tx [options] \fB\-create\fR [commands]
|
||||
Create hex\-encoded zcash transaction
|
||||
.SH OPTIONS
|
||||
.HP
|
||||
\-?
|
||||
.IP
|
||||
This help message
|
||||
.HP
|
||||
\fB\-create\fR
|
||||
.IP
|
||||
Create new, empty TX.
|
||||
.HP
|
||||
\fB\-json\fR
|
||||
.IP
|
||||
Select JSON output
|
||||
.HP
|
||||
\fB\-txid\fR
|
||||
.IP
|
||||
Output only the hex\-encoded transaction id of the resultant transaction.
|
||||
.HP
|
||||
\fB\-regtest\fR
|
||||
.IP
|
||||
Enter regression test mode, which uses a special chain in which blocks
|
||||
can be solved instantly.
|
||||
.HP
|
||||
\fB\-testnet\fR
|
||||
.IP
|
||||
Use the test network
|
||||
.PP
|
||||
Commands:
|
||||
.IP
|
||||
delin=N
|
||||
.IP
|
||||
Delete input N from TX
|
||||
.IP
|
||||
delout=N
|
||||
.IP
|
||||
Delete output N from TX
|
||||
.IP
|
||||
in=TXID:VOUT
|
||||
.IP
|
||||
Add input to TX
|
||||
.IP
|
||||
locktime=N
|
||||
.IP
|
||||
Set TX lock time to N
|
||||
.IP
|
||||
nversion=N
|
||||
.IP
|
||||
Set TX version to N
|
||||
.IP
|
||||
outaddr=VALUE:ADDRESS
|
||||
.IP
|
||||
Add address\-based output to TX
|
||||
.IP
|
||||
outscript=VALUE:SCRIPT
|
||||
.IP
|
||||
Add raw script output to TX
|
||||
.IP
|
||||
sign=SIGHASH\-FLAGS
|
||||
.IP
|
||||
Add zero or more signatures to transaction. This command requires JSON
|
||||
registers:prevtxs=JSON object, privatekeys=JSON object. See
|
||||
signrawtransaction docs for format of sighash flags, JSON objects.
|
||||
.PP
|
||||
Register Commands:
|
||||
.IP
|
||||
load=NAME:FILENAME
|
||||
.IP
|
||||
Load JSON file FILENAME into register NAME
|
||||
.IP
|
||||
set=NAME:JSON\-STRING
|
||||
.IP
|
||||
Set register NAME to given JSON\-STRING
|
||||
.SH COPYRIGHT
|
||||
|
||||
In order to ensure you are adequately protecting your privacy when using Zcash,
|
||||
please see <https://z.cash/support/security/index.html>.
|
||||
|
||||
Copyright (C) 2009-2017 The Bitcoin Core Developers
|
||||
Copyright (C) 2015-2017 The Zcash Developers
|
||||
Copyright (C) 2015-2017 jl777 and SuperNET developers
|
||||
|
||||
This is experimental software.
|
||||
|
||||
Distributed under the MIT software license, see the accompanying file COPYING
|
||||
or <http://www.opensource.org/licenses/mit-license.php>.
|
||||
|
||||
This product includes software developed by the OpenSSL Project for use in the
|
||||
OpenSSL Toolkit <https://www.openssl.org/> and cryptographic software written
|
||||
by Eric Young and UPnP software written by Thomas Bernard.
|
||||
472
doc/man/komodod.1
Normal file
472
doc/man/komodod.1
Normal file
@@ -0,0 +1,472 @@
|
||||
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.3.
|
||||
.TH KOMODOD "1" "March 2018" "komodod v1.0.8" "User Commands"
|
||||
.SH NAME
|
||||
komodod \- manual page for komodod v1.0.8
|
||||
.SH DESCRIPTION
|
||||
Komodo Daemon version v1.0.8
|
||||
.PP
|
||||
In order to ensure you are adequately protecting your privacy when using Zcash,
|
||||
please see <https://z.cash/support/security/index.html>.
|
||||
.SS "Usage:"
|
||||
.TP
|
||||
komodod [options]
|
||||
Start Komodo Daemon
|
||||
.SH OPTIONS
|
||||
.HP
|
||||
\-?
|
||||
.IP
|
||||
This help message
|
||||
.HP
|
||||
\fB\-alerts\fR
|
||||
.IP
|
||||
Receive and display P2P network alerts (default: 1)
|
||||
.HP
|
||||
\fB\-alertnotify=\fR<cmd>
|
||||
.IP
|
||||
Execute command when a relevant alert is received or we see a really
|
||||
long fork (%s in cmd is replaced by message)
|
||||
.HP
|
||||
\fB\-blocknotify=\fR<cmd>
|
||||
.IP
|
||||
Execute command when the best block changes (%s in cmd is replaced by
|
||||
block hash)
|
||||
.HP
|
||||
\fB\-checkblocks=\fR<n>
|
||||
.IP
|
||||
How many blocks to check at startup (default: 288, 0 = all)
|
||||
.HP
|
||||
\fB\-checklevel=\fR<n>
|
||||
.IP
|
||||
How thorough the block verification of \fB\-checkblocks\fR is (0\-4, default: 3)
|
||||
.HP
|
||||
\fB\-conf=\fR<file>
|
||||
.IP
|
||||
Specify configuration file (default: komodo.conf)
|
||||
.HP
|
||||
\fB\-daemon\fR
|
||||
.IP
|
||||
Run in the background as a daemon and accept commands
|
||||
.HP
|
||||
\fB\-datadir=\fR<dir>
|
||||
.IP
|
||||
Specify data directory
|
||||
.HP
|
||||
\fB\-exportdir=\fR<dir>
|
||||
.IP
|
||||
Specify directory to be used when exporting data
|
||||
.HP
|
||||
\fB\-dbcache=\fR<n>
|
||||
.IP
|
||||
Set database cache size in megabytes (4 to 16384, default: 100)
|
||||
.HP
|
||||
\fB\-loadblock=\fR<file>
|
||||
.IP
|
||||
Imports blocks from external blk000??.dat file on startup
|
||||
.HP
|
||||
\fB\-maxorphantx=\fR<n>
|
||||
.IP
|
||||
Keep at most <n> unconnectable transactions in memory (default: 100)
|
||||
.HP
|
||||
\fB\-par=\fR<n>
|
||||
.IP
|
||||
Set the number of script verification threads (\fB\-2\fR to 16, 0 = auto, <0 =
|
||||
leave that many cores free, default: 0)
|
||||
.HP
|
||||
\fB\-pid=\fR<file>
|
||||
.IP
|
||||
Specify pid file (default: komodod.pid)
|
||||
.HP
|
||||
\fB\-prune=\fR<n>
|
||||
.IP
|
||||
Reduce storage requirements by pruning (deleting) old blocks. This mode
|
||||
disables wallet support and is incompatible with \fB\-txindex\fR. Warning:
|
||||
Reverting this setting requires re\-downloading the entire blockchain.
|
||||
(default: 0 = disable pruning blocks, >550 = target size in MiB to use
|
||||
for block files)
|
||||
.HP
|
||||
\fB\-reindex\fR
|
||||
.IP
|
||||
Rebuild block chain index from current blk000??.dat files on startup
|
||||
.HP
|
||||
\fB\-sysperms\fR
|
||||
.IP
|
||||
Create new files with system default permissions, instead of umask 077
|
||||
(only effective with disabled wallet functionality)
|
||||
.HP
|
||||
\fB\-txindex\fR
|
||||
.IP
|
||||
Maintain a full transaction index, used by the getrawtransaction rpc
|
||||
call (default: 0)
|
||||
.PP
|
||||
Connection options:
|
||||
.HP
|
||||
\fB\-addnode=\fR<ip>
|
||||
.IP
|
||||
Add a node to connect to and attempt to keep the connection open
|
||||
.HP
|
||||
\fB\-banscore=\fR<n>
|
||||
.IP
|
||||
Threshold for disconnecting misbehaving peers (default: 100)
|
||||
.HP
|
||||
\fB\-bantime=\fR<n>
|
||||
.IP
|
||||
Number of seconds to keep misbehaving peers from reconnecting (default:
|
||||
86400)
|
||||
.HP
|
||||
\fB\-bind=\fR<addr>
|
||||
.IP
|
||||
Bind to given address and always listen on it. Use [host]:port notation
|
||||
for IPv6
|
||||
.HP
|
||||
\fB\-connect=\fR<ip>
|
||||
.IP
|
||||
Connect only to the specified node(s)
|
||||
.HP
|
||||
\fB\-discover\fR
|
||||
.IP
|
||||
Discover own IP addresses (default: 1 when listening and no \fB\-externalip\fR
|
||||
or \fB\-proxy\fR)
|
||||
.HP
|
||||
\fB\-dns\fR
|
||||
.IP
|
||||
Allow DNS lookups for \fB\-addnode\fR, \fB\-seednode\fR and \fB\-connect\fR (default: 1)
|
||||
.HP
|
||||
\fB\-dnsseed\fR
|
||||
.IP
|
||||
Query for peer addresses via DNS lookup, if low on addresses (default: 1
|
||||
unless \fB\-connect\fR)
|
||||
.HP
|
||||
\fB\-externalip=\fR<ip>
|
||||
.IP
|
||||
Specify your own public address
|
||||
.HP
|
||||
\fB\-forcednsseed\fR
|
||||
.IP
|
||||
Always query for peer addresses via DNS lookup (default: 0)
|
||||
.HP
|
||||
\fB\-listen\fR
|
||||
.IP
|
||||
Accept connections from outside (default: 1 if no \fB\-proxy\fR or \fB\-connect\fR)
|
||||
.HP
|
||||
\fB\-listenonion\fR
|
||||
.IP
|
||||
Automatically create Tor hidden service (default: 1)
|
||||
.HP
|
||||
\fB\-maxconnections=\fR<n>
|
||||
.IP
|
||||
Maintain at most <n> connections to peers (default: 125)
|
||||
.HP
|
||||
\fB\-maxreceivebuffer=\fR<n>
|
||||
.IP
|
||||
Maximum per\-connection receive buffer, <n>*1000 bytes (default: 5000)
|
||||
.HP
|
||||
\fB\-maxsendbuffer=\fR<n>
|
||||
.IP
|
||||
Maximum per\-connection send buffer, <n>*1000 bytes (default: 1000)
|
||||
.HP
|
||||
\fB\-onion=\fR<ip:port>
|
||||
.IP
|
||||
Use separate SOCKS5 proxy to reach peers via Tor hidden services
|
||||
(default: \fB\-proxy\fR)
|
||||
.HP
|
||||
\fB\-onlynet=\fR<net>
|
||||
.IP
|
||||
Only connect to nodes in network <net> (ipv4, ipv6 or onion)
|
||||
.HP
|
||||
\fB\-permitbaremultisig\fR
|
||||
.IP
|
||||
Relay non\-P2SH multisig (default: 1)
|
||||
.HP
|
||||
\fB\-port=\fR<port>
|
||||
.IP
|
||||
Listen for connections on <port> (default: 7770 or testnet: 17770)
|
||||
.HP
|
||||
\fB\-proxy=\fR<ip:port>
|
||||
.IP
|
||||
Connect through SOCKS5 proxy
|
||||
.HP
|
||||
\fB\-proxyrandomize\fR
|
||||
.IP
|
||||
Randomize credentials for every proxy connection. This enables Tor
|
||||
stream isolation (default: 1)
|
||||
.HP
|
||||
\fB\-seednode=\fR<ip>
|
||||
.IP
|
||||
Connect to a node to retrieve peer addresses, and disconnect
|
||||
.HP
|
||||
\fB\-timeout=\fR<n>
|
||||
.IP
|
||||
Specify connection timeout in milliseconds (minimum: 1, default: 5000)
|
||||
.HP
|
||||
\fB\-torcontrol=\fR<ip>:<port>
|
||||
.IP
|
||||
Tor control port to use if onion listening enabled (default:
|
||||
127.0.0.1:9051)
|
||||
.HP
|
||||
\fB\-torpassword=\fR<pass>
|
||||
.IP
|
||||
Tor control port password (default: empty)
|
||||
.HP
|
||||
\fB\-upnp\fR
|
||||
.IP
|
||||
Use UPnP to map the listening port (default: 0)
|
||||
.HP
|
||||
\fB\-whitebind=\fR<addr>
|
||||
.IP
|
||||
Bind to given address and whitelist peers connecting to it. Use
|
||||
[host]:port notation for IPv6
|
||||
.HP
|
||||
\fB\-whitelist=\fR<netmask>
|
||||
.IP
|
||||
Whitelist peers connecting from the given netmask or IP address. Can be
|
||||
specified multiple times. Whitelisted peers cannot be DoS banned and
|
||||
their transactions are always relayed, even if they are already in the
|
||||
mempool, useful e.g. for a gateway
|
||||
.PP
|
||||
Wallet options:
|
||||
.HP
|
||||
\fB\-disablewallet\fR
|
||||
.IP
|
||||
Do not load the wallet and disable wallet RPC calls
|
||||
.HP
|
||||
\fB\-keypool=\fR<n>
|
||||
.IP
|
||||
Set key pool size to <n> (default: 100)
|
||||
.HP
|
||||
\fB\-paytxfee=\fR<amt>
|
||||
.IP
|
||||
Fee (in BTC/kB) to add to transactions you send (default: 0.00)
|
||||
.HP
|
||||
\fB\-rescan\fR
|
||||
.IP
|
||||
Rescan the blockchain for missing wallet transactions on startup
|
||||
.HP
|
||||
\fB\-salvagewallet\fR
|
||||
.IP
|
||||
Attempt to recover private keys from a corrupt wallet.dat on startup
|
||||
.HP
|
||||
\fB\-sendfreetransactions\fR
|
||||
.IP
|
||||
Send transactions as zero\-fee transactions if possible (default: 0)
|
||||
.HP
|
||||
\fB\-spendzeroconfchange\fR
|
||||
.IP
|
||||
Spend unconfirmed change when sending transactions (default: 1)
|
||||
.HP
|
||||
\fB\-txconfirmtarget=\fR<n>
|
||||
.IP
|
||||
If paytxfee is not set, include enough fee so transactions begin
|
||||
confirmation on average within n blocks (default: 2)
|
||||
.HP
|
||||
\fB\-maxtxfee=\fR<amt>
|
||||
.IP
|
||||
Maximum total fees to use in a single wallet transaction; setting this
|
||||
too low may abort large transactions (default: 0.10)
|
||||
.HP
|
||||
\fB\-upgradewallet\fR
|
||||
.IP
|
||||
Upgrade wallet to latest format on startup
|
||||
.HP
|
||||
\fB\-wallet=\fR<file>
|
||||
.IP
|
||||
Specify wallet file (within data directory) (default: wallet.dat)
|
||||
.HP
|
||||
\fB\-walletbroadcast\fR
|
||||
.IP
|
||||
Make the wallet broadcast transactions (default: 1)
|
||||
.HP
|
||||
\fB\-walletnotify=\fR<cmd>
|
||||
.IP
|
||||
Execute command when a wallet transaction changes (%s in cmd is replaced
|
||||
by TxID)
|
||||
.HP
|
||||
\fB\-zapwallettxes=\fR<mode>
|
||||
.IP
|
||||
Delete all wallet transactions and only recover those parts of the
|
||||
blockchain through \fB\-rescan\fR on startup (1 = keep tx meta data e.g.
|
||||
account owner and payment request information, 2 = drop tx meta data)
|
||||
.PP
|
||||
ZeroMQ notification options:
|
||||
.HP
|
||||
\fB\-zmqpubhashblock=\fR<address>
|
||||
.IP
|
||||
Enable publish hash block in <address>
|
||||
.HP
|
||||
\fB\-zmqpubhashtx=\fR<address>
|
||||
.IP
|
||||
Enable publish hash transaction in <address>
|
||||
.HP
|
||||
\fB\-zmqpubrawblock=\fR<address>
|
||||
.IP
|
||||
Enable publish raw block in <address>
|
||||
.HP
|
||||
\fB\-zmqpubrawtx=\fR<address>
|
||||
.IP
|
||||
Enable publish raw transaction in <address>
|
||||
.PP
|
||||
Debugging/Testing options:
|
||||
.HP
|
||||
\fB\-debug=\fR<category>
|
||||
.IP
|
||||
Output debugging information (default: 0, supplying <category> is
|
||||
optional). If <category> is not supplied or if <category> = 1, output
|
||||
all debugging information. <category> can be: addrman, alert, bench,
|
||||
coindb, db, estimatefee, http, libevent, lock, mempool, net,
|
||||
partitioncheck, pow, proxy, prune, rand, reindex, rpc, selectcoins, tor,
|
||||
zmq, zrpc, zrpcunsafe (implies zrpc).
|
||||
.HP
|
||||
\fB\-experimentalfeatures\fR
|
||||
.IP
|
||||
Enable use of experimental features
|
||||
.HP
|
||||
\fB\-help\-debug\fR
|
||||
.IP
|
||||
Show all debugging options (usage: \fB\-\-help\fR \fB\-help\-debug\fR)
|
||||
.HP
|
||||
\fB\-logips\fR
|
||||
.IP
|
||||
Include IP addresses in debug output (default: 0)
|
||||
.HP
|
||||
\fB\-logtimestamps\fR
|
||||
.IP
|
||||
Prepend debug output with timestamp (default: 1)
|
||||
.HP
|
||||
\fB\-minrelaytxfee=\fR<amt>
|
||||
.IP
|
||||
Fees (in BTC/Kb) smaller than this are considered zero fee for relaying
|
||||
(default: 0.000001)
|
||||
.HP
|
||||
\fB\-printtoconsole\fR
|
||||
.IP
|
||||
Send trace/debug info to console instead of debug.log file
|
||||
.HP
|
||||
\fB\-shrinkdebugfile\fR
|
||||
.IP
|
||||
Shrink debug.log file on client startup (default: 1 when no \fB\-debug\fR)
|
||||
.HP
|
||||
\fB\-testnet\fR
|
||||
.IP
|
||||
Use the test network
|
||||
.PP
|
||||
Node relay options:
|
||||
.HP
|
||||
\fB\-datacarrier\fR
|
||||
.IP
|
||||
Relay and mine data carrier transactions (default: 1)
|
||||
.HP
|
||||
\fB\-datacarriersize\fR
|
||||
.IP
|
||||
Maximum size of data in data carrier transactions we relay and mine
|
||||
(default: 8192)
|
||||
.PP
|
||||
Block creation options:
|
||||
.HP
|
||||
\fB\-blockminsize=\fR<n>
|
||||
.IP
|
||||
Set minimum block size in bytes (default: 0)
|
||||
.HP
|
||||
\fB\-blockmaxsize=\fR<n>
|
||||
.IP
|
||||
Set maximum block size in bytes (default: 2000000)
|
||||
.HP
|
||||
\fB\-blockprioritysize=\fR<n>
|
||||
.IP
|
||||
Set maximum size of high\-priority/low\-fee transactions in bytes
|
||||
(default: 1000000)
|
||||
.PP
|
||||
Mining options:
|
||||
.HP
|
||||
\fB\-gen\fR
|
||||
.IP
|
||||
Generate coins (default: 0)
|
||||
.HP
|
||||
\fB\-genproclimit=\fR<n>
|
||||
.IP
|
||||
Set the number of threads for coin generation if enabled (\fB\-1\fR = all
|
||||
cores, default: 1)
|
||||
.HP
|
||||
\fB\-equihashsolver=\fR<name>
|
||||
.IP
|
||||
Specify the Equihash solver to be used if enabled (default: "default")
|
||||
.HP
|
||||
\fB\-mineraddress=\fR<addr>
|
||||
.IP
|
||||
Send mined coins to a specific single address
|
||||
.HP
|
||||
\fB\-minetolocalwallet\fR
|
||||
.IP
|
||||
Require that mined blocks use a coinbase address in the local wallet
|
||||
(default: 1)
|
||||
.PP
|
||||
RPC server options:
|
||||
.HP
|
||||
\fB\-server\fR
|
||||
.IP
|
||||
Accept command line and JSON\-RPC commands
|
||||
.HP
|
||||
\fB\-rest\fR
|
||||
.IP
|
||||
Accept public REST requests (default: 0)
|
||||
.HP
|
||||
\fB\-rpcbind=\fR<addr>
|
||||
.IP
|
||||
Bind to given address to listen for JSON\-RPC connections. Use
|
||||
[host]:port notation for IPv6. This option can be specified multiple
|
||||
times (default: bind to all interfaces)
|
||||
.HP
|
||||
\fB\-rpcuser=\fR<user>
|
||||
.IP
|
||||
Username for JSON\-RPC connections
|
||||
.HP
|
||||
\fB\-rpcpassword=\fR<pw>
|
||||
.IP
|
||||
Password for JSON\-RPC connections
|
||||
.HP
|
||||
\fB\-rpcport=\fR<port>
|
||||
.IP
|
||||
Listen for JSON\-RPC connections on <port> (default: 7771 or testnet:
|
||||
17771)
|
||||
.HP
|
||||
\fB\-rpcallowip=\fR<ip>
|
||||
.IP
|
||||
Allow JSON\-RPC connections from specified source. Valid for <ip> are a
|
||||
single IP (e.g. 1.2.3.4), a network/netmask (e.g. 1.2.3.4/255.255.255.0)
|
||||
or a network/CIDR (e.g. 1.2.3.4/24). This option can be specified
|
||||
multiple times
|
||||
.HP
|
||||
\fB\-rpcthreads=\fR<n>
|
||||
.IP
|
||||
Set the number of threads to service RPC calls (default: 4)
|
||||
.PP
|
||||
Metrics Options (only if \fB\-daemon\fR and \fB\-printtoconsole\fR are not set):
|
||||
.HP
|
||||
\fB\-showmetrics\fR
|
||||
.IP
|
||||
Show metrics on stdout (default: 1 if running in a console, 0 otherwise)
|
||||
.HP
|
||||
\fB\-metricsui\fR
|
||||
.IP
|
||||
Set to 1 for a persistent metrics screen, 0 for sequential metrics
|
||||
output (default: 1 if running in a console, 0 otherwise)
|
||||
.HP
|
||||
\fB\-metricsrefreshtime\fR
|
||||
.IP
|
||||
Number of seconds between metrics refreshes (default: 1 if running in a
|
||||
console, 600 otherwise)
|
||||
.SH COPYRIGHT
|
||||
|
||||
In order to ensure you are adequately protecting your privacy when using Zcash,
|
||||
please see <https://z.cash/support/security/index.html>.
|
||||
|
||||
Copyright (C) 2009-2017 The Bitcoin Core Developers
|
||||
Copyright (C) 2015-2017 The Zcash Developers
|
||||
Copyright (C) 2015-2017 jl777 and SuperNET developers
|
||||
|
||||
This is experimental software.
|
||||
|
||||
Distributed under the MIT software license, see the accompanying file COPYING
|
||||
or <http://www.opensource.org/licenses/mit-license.php>.
|
||||
|
||||
This product includes software developed by the OpenSSL Project for use in the
|
||||
OpenSSL Toolkit <https://www.openssl.org/> and cryptographic software written
|
||||
by Eric Young and UPnP software written by Thomas Bernard.
|
||||
@@ -1,12 +1,12 @@
|
||||
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.4.
|
||||
.TH ZCASH-CLI "1" "March 2017" "zcash-cli v1.0.8" "User Commands"
|
||||
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.3.
|
||||
.TH ZCASH-CLI "1" "February 2018" "zcash-cli v1.0.15" "User Commands"
|
||||
.SH NAME
|
||||
zcash-cli \- manual page for zcash-cli v1.0.8
|
||||
zcash-cli \- manual page for zcash-cli v1.0.15
|
||||
.SH DESCRIPTION
|
||||
Zcash RPC client version v1.0.8
|
||||
Zcash RPC client version v1.0.15
|
||||
.PP
|
||||
In order to ensure you are adequately protecting your privacy when using Zcash,
|
||||
please see <https://z.cash/support/security/index.html>.
|
||||
please see <https://z.cash/support/security/>.
|
||||
.SS "Usage:"
|
||||
.TP
|
||||
zcash\-cli [options] <command> [params]
|
||||
@@ -66,6 +66,10 @@ Password for JSON\-RPC connections
|
||||
Timeout in seconds during HTTP requests, or 0 for no timeout. (default:
|
||||
900)
|
||||
.SH COPYRIGHT
|
||||
|
||||
In order to ensure you are adequately protecting your privacy when using Zcash,
|
||||
please see <https://z.cash/support/security/>.
|
||||
|
||||
Copyright (C) 2009-2017 The Bitcoin Core Developers
|
||||
Copyright (C) 2015-2017 The Zcash Developers
|
||||
|
||||
@@ -76,4 +80,4 @@ or <http://www.opensource.org/licenses/mit-license.php>.
|
||||
|
||||
This product includes software developed by the OpenSSL Project for use in the
|
||||
OpenSSL Toolkit <https://www.openssl.org/> and cryptographic software written
|
||||
by Eric Young and UPnP software written by Thomas Bernard.
|
||||
by Eric Young.
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.4.
|
||||
.TH ZCASH-TX "1" "March 2017" "zcash-tx v1.0.8" "User Commands"
|
||||
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.3.
|
||||
.TH ZCASH-TX "1" "February 2018" "zcash-tx v1.0.15" "User Commands"
|
||||
.SH NAME
|
||||
zcash-tx \- manual page for zcash-tx v1.0.8
|
||||
zcash-tx \- manual page for zcash-tx v1.0.15
|
||||
.SH DESCRIPTION
|
||||
Zcash zcash\-tx utility version v1.0.8
|
||||
Zcash zcash\-tx utility version v1.0.15
|
||||
.SS "Usage:"
|
||||
.TP
|
||||
zcash\-tx [options] <hex\-tx> [commands]
|
||||
@@ -68,7 +68,7 @@ outscript=VALUE:SCRIPT
|
||||
.IP
|
||||
Add raw script output to TX
|
||||
.IP
|
||||
sign=SIGHASH\-FLAGS
|
||||
sign=HEIGHT:SIGHASH\-FLAGS
|
||||
.IP
|
||||
Add zero or more signatures to transaction. This command requires JSON
|
||||
registers:prevtxs=JSON object, privatekeys=JSON object. See
|
||||
@@ -84,6 +84,10 @@ set=NAME:JSON\-STRING
|
||||
.IP
|
||||
Set register NAME to given JSON\-STRING
|
||||
.SH COPYRIGHT
|
||||
|
||||
In order to ensure you are adequately protecting your privacy when using Zcash,
|
||||
please see <https://z.cash/support/security/>.
|
||||
|
||||
Copyright (C) 2009-2017 The Bitcoin Core Developers
|
||||
Copyright (C) 2015-2017 The Zcash Developers
|
||||
|
||||
@@ -94,4 +98,4 @@ or <http://www.opensource.org/licenses/mit-license.php>.
|
||||
|
||||
This product includes software developed by the OpenSSL Project for use in the
|
||||
OpenSSL Toolkit <https://www.openssl.org/> and cryptographic software written
|
||||
by Eric Young and UPnP software written by Thomas Bernard.
|
||||
by Eric Young.
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.4.
|
||||
.TH ZCASHD "1" "March 2017" "zcashd v1.0.8" "User Commands"
|
||||
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.3.
|
||||
.TH ZCASHD "1" "February 2018" "zcashd v1.0.15" "User Commands"
|
||||
.SH NAME
|
||||
zcashd \- manual page for zcashd v1.0.8
|
||||
zcashd \- manual page for zcashd v1.0.15
|
||||
.SH DESCRIPTION
|
||||
Zcash Daemon version v1.0.8
|
||||
Zcash Daemon version v1.0.15
|
||||
.PP
|
||||
In order to ensure you are adequately protecting your privacy when using Zcash,
|
||||
please see <https://z.cash/support/security/index.html>.
|
||||
please see <https://z.cash/support/security/>.
|
||||
.SS "Usage:"
|
||||
.TP
|
||||
zcashd [options]
|
||||
@@ -51,13 +51,18 @@ Run in the background as a daemon and accept commands
|
||||
.IP
|
||||
Specify data directory
|
||||
.HP
|
||||
\fB\-disabledeprecation=\fR<version>
|
||||
.IP
|
||||
Disable block\-height node deprecation and automatic shutdown (example:
|
||||
\fB\-disabledeprecation\fR=\fI\,1\/\fR.0.15)
|
||||
.HP
|
||||
\fB\-exportdir=\fR<dir>
|
||||
.IP
|
||||
Specify directory to be used when exporting data
|
||||
.HP
|
||||
\fB\-dbcache=\fR<n>
|
||||
.IP
|
||||
Set database cache size in megabytes (4 to 16384, default: 100)
|
||||
Set database cache size in megabytes (4 to 16384, default: 450)
|
||||
.HP
|
||||
\fB\-loadblock=\fR<file>
|
||||
.IP
|
||||
@@ -67,9 +72,14 @@ Imports blocks from external blk000??.dat file on startup
|
||||
.IP
|
||||
Keep at most <n> unconnectable transactions in memory (default: 100)
|
||||
.HP
|
||||
\fB\-mempooltxinputlimit=\fR<n>
|
||||
.IP
|
||||
Set the maximum number of transparent inputs in a transaction that the
|
||||
mempool will accept (default: 0 = no limit applied)
|
||||
.HP
|
||||
\fB\-par=\fR<n>
|
||||
.IP
|
||||
Set the number of script verification threads (\fB\-4\fR to 16, 0 = auto, <0 =
|
||||
Set the number of script verification threads (\fB\-2\fR to 16, 0 = auto, <0 =
|
||||
leave that many cores free, default: 0)
|
||||
.HP
|
||||
\fB\-pid=\fR<file>
|
||||
@@ -207,10 +217,6 @@ Tor control port to use if onion listening enabled (default:
|
||||
.IP
|
||||
Tor control port password (default: empty)
|
||||
.HP
|
||||
\fB\-upnp\fR
|
||||
.IP
|
||||
Use UPnP to map the listening port (default: 0)
|
||||
.HP
|
||||
\fB\-whitebind=\fR<addr>
|
||||
.IP
|
||||
Bind to given address and whitelist peers connecting to it. Use
|
||||
@@ -235,11 +241,11 @@ Set key pool size to <n> (default: 100)
|
||||
.HP
|
||||
\fB\-paytxfee=\fR<amt>
|
||||
.IP
|
||||
Fee (in BTC/kB) to add to transactions you send (default: 0.00)
|
||||
Fee (in ZEC/kB) to add to transactions you send (default: 0.00)
|
||||
.HP
|
||||
\fB\-rescan\fR
|
||||
.IP
|
||||
Rescan the blockchain for missing wallet transactions on startup
|
||||
Rescan the block chain for missing wallet transactions on startup
|
||||
.HP
|
||||
\fB\-salvagewallet\fR
|
||||
.IP
|
||||
@@ -258,10 +264,15 @@ Spend unconfirmed change when sending transactions (default: 1)
|
||||
If paytxfee is not set, include enough fee so transactions begin
|
||||
confirmation on average within n blocks (default: 2)
|
||||
.HP
|
||||
\fB\-txexpirydelta\fR
|
||||
.IP
|
||||
Set the number of blocks after which a transaction that has not been
|
||||
mined will become invalid (default: 20)
|
||||
.HP
|
||||
\fB\-maxtxfee=\fR<amt>
|
||||
.IP
|
||||
Maximum total fees to use in a single wallet transaction; setting this
|
||||
too low may abort large transactions (default: 0.10)
|
||||
Maximum total fees (in ZEC) to use in a single wallet transaction;
|
||||
setting this too low may abort large transactions (default: 0.10)
|
||||
.HP
|
||||
\fB\-upgradewallet\fR
|
||||
.IP
|
||||
@@ -333,7 +344,7 @@ Prepend debug output with timestamp (default: 1)
|
||||
.HP
|
||||
\fB\-minrelaytxfee=\fR<amt>
|
||||
.IP
|
||||
Fees (in BTC/Kb) smaller than this are considered zero fee for relaying
|
||||
Fees (in ZEC/kB) smaller than this are considered zero fee for relaying
|
||||
(default: 0.000001)
|
||||
.HP
|
||||
\fB\-printtoconsole\fR
|
||||
@@ -454,6 +465,10 @@ output (default: 1 if running in a console, 0 otherwise)
|
||||
Number of seconds between metrics refreshes (default: 1 if running in a
|
||||
console, 600 otherwise)
|
||||
.SH COPYRIGHT
|
||||
|
||||
In order to ensure you are adequately protecting your privacy when using Zcash,
|
||||
please see <https://z.cash/support/security/>.
|
||||
|
||||
Copyright (C) 2009-2017 The Bitcoin Core Developers
|
||||
Copyright (C) 2015-2017 The Zcash Developers
|
||||
|
||||
@@ -464,4 +479,4 @@ or <http://www.opensource.org/licenses/mit-license.php>.
|
||||
|
||||
This product includes software developed by the OpenSSL Project for use in the
|
||||
OpenSSL Toolkit <https://www.openssl.org/> and cryptographic software written
|
||||
by Eric Young and UPnP software written by Thomas Bernard.
|
||||
by Eric Young.
|
||||
|
||||
@@ -32,7 +32,7 @@ RPC calls by category:
|
||||
* Addresses : z_getnewaddress, z_listaddresses, z_validateaddress
|
||||
* Keys : z_exportkey, z_importkey, z_exportwallet, z_importwallet
|
||||
* Operation: z_getoperationresult, z_getoperationstatus, z_listoperationids
|
||||
* Payment : z_listreceivedbyaddress, z_sendmany
|
||||
* Payment : z_listreceivedbyaddress, z_sendmany, z_shieldcoinbase
|
||||
|
||||
RPC parameter conventions:
|
||||
|
||||
@@ -46,7 +46,7 @@ RPC parameter conventions:
|
||||
|
||||
Command | Parameters | Description
|
||||
--- | --- | ---
|
||||
z_getbalance<br>| address [minconf=1] | Returns the balance of a taddr or zaddr belonging to the node’s wallet.<br><br>Optionally set the minimum number of confirmations a private or transaction transaction must have in order to be included in the balance. Use 0 to count unconfirmed transactions.
|
||||
z_getbalance<br>| address [minconf=1] | Returns the balance of a taddr or zaddr belonging to the node’s wallet.<br><br>Optionally set the minimum number of confirmations a private or transparent transaction must have in order to be included in the balance. Use 0 to count unconfirmed transactions.
|
||||
z_gettotalbalance<br>| [minconf=1] | Return the total value of funds stored in the node’s wallet.<br><br>Optionally set the minimum number of confirmations a private or transparent transaction must have in order to be included in the balance. Use 0 to count unconfirmed transactions.<br><br>Output:<br>{<br>"transparent" : 1.23,<br>"private" : 4.56,<br>"total" : 5.79}
|
||||
|
||||
### Addresses
|
||||
@@ -55,7 +55,7 @@ Command | Parameters | Description
|
||||
--- | --- | ---
|
||||
z_getnewaddress | | Return a new zaddr for sending and receiving payments. The spending key for this zaddr will be added to the node’s wallet.<br><br>Output:<br>zN68D8hSs3...
|
||||
z_listaddresses | | Returns a list of all the zaddrs in this node’s wallet for which you have a spending key.<br><br>Output:<br>{ [“z123…”, “z456...”, “z789...”] }
|
||||
z_validateaddress | | Return information about a given zaddr.<br><br>Output:<br>{"isvalid" : true,<br>"address" : "zcWsmq...",<br>"payingkey" : "f5bb3c...",<br>"transmissionkey" : "7a58c7...",<br>"ismine" : true}
|
||||
z_validateaddress | zaddr | Return information about a given zaddr.<br><br>Output:<br>{"isvalid" : true,<br>"address" : "zcWsmq...",<br>"payingkey" : "f5bb3c...",<br>"transmissionkey" : "7a58c7...",<br>"ismine" : true}
|
||||
|
||||
### Key Management
|
||||
|
||||
@@ -64,14 +64,15 @@ Command | Parameters | Description
|
||||
z_exportkey | zaddr | _Requires an unlocked wallet or an unencrypted wallet._<br><br>Return a zkey for a given zaddr belonging to the node’s wallet.<br><br>The key will be returned as a string formatted using Base58Check as described in the Zcash protocol spec.<br><br>Output:AKWUAkypwQjhZ6LLNaMuuuLcmZ6gt5UFyo8m3jGutvALmwZKLdR5
|
||||
z_importkey | zkey [rescan=true] | _Wallet must be unlocked._<br><br>Add a zkey as returned by z_exportkey to a node's wallet.<br><br>The key should be formatted using Base58Check as described in the Zcash protocol spec.<br><br>Set rescan to true (the default) to rescan the entire local block database for transactions affecting any address or pubkey script in the wallet (including transactions affecting the newly-added address for this spending key).
|
||||
z_exportwallet | filename | _Requires an unlocked wallet or an unencrypted wallet._<br><br>Creates or overwrites a file with taddr private keys and zaddr private keys in a human-readable format.<br><br>Filename is the file in which the wallet dump will be placed. May be prefaced by an absolute file path. An existing file with that name will be overwritten.<br><br>No value is returned but a JSON-RPC error will be reported if a failure occurred.
|
||||
z_importwallet | filename | _Requires an unlocked wallet or an unencrypted wallet._<br><br>Imports private keys from a file in wallet export file format (see z_exportwallet). These keys will be added to the keys currently in the wallet. This call may need to rescan all or parts of the block chain for transactions affecting the newly-added keys, which may take several minutes.<br><br>Filename is the file to import. The path is relative to zcashd’s working directory.<br><br>No value is returned but a JSON-RPC error will be reported if a failure occurred.
|
||||
z_importwallet | filename | _Requires an unlocked wallet or an unencrypted wallet._<br><br>Imports private keys from a file in wallet export file format (see z_exportwallet). These keys will be added to the keys currently in the wallet. This call may need to rescan all or parts of the block chain for transactions affecting the newly-added keys, which may take several minutes.<br><br>Filename is the file to import. The path is relative to komodod’s working directory.<br><br>No value is returned but a JSON-RPC error will be reported if a failure occurred.
|
||||
|
||||
### Payment
|
||||
|
||||
Command | Parameters | Description
|
||||
--- | --- | ---
|
||||
z_listreceivedbyaddress<br> | zaddr [minconf=1] | Return a list of amounts received by a zaddr belonging to the node’s wallet.<br><br>Optionally set the minimum number of confirmations which a received amount must have in order to be included in the result. Use 0 to count unconfirmed transactions.<br><br>Output:<br>[{<br>“txid”: “4a0f…”,<br>“amount”: 0.54,<br>“memo”:”F0FF…”,}, {...}, {...}<br>]
|
||||
z_sendmany<br> | fromaddress amounts [minconf=1] [fee=0.0001] | _This is an Asynchronous RPC call_<br><br>Send funds from an address to multiple outputs. The address can be either a taddr or a zaddr.<br><br>Amounts is a list containing key/value pairs corresponding to the addresses and amount to pay. Each output address can be in taddr or zaddr format.<br><br>When sending to a zaddr, you also have the option of attaching a memo in hexadecimal format.<br><br>**NOTE:**When sending coinbase funds to a zaddr, the node's wallet does not allow any change. Put another way, spending a partial amount of a coinbase utxo is not allowed. This is not a consensus rule but a local wallet rule due to the current implementation of z_sendmany. In future, this rule may be removed.<br><br>Example of Outputs parameter:<br>[{“address”:”t123…”, “amount”:0.005},<br>,{“address”:”z010…”,”amount”:0.03, “memo”:”f508af…”}]<br><br>Optionally set the minimum number of confirmations which a private or transparent transaction must have in order to be used as an input.<br><br>Optionally set a transaction fee, which by default is 0.0001 ZEC.<br><br>Any transparent change will be sent to a new transparent address. Any private change will be sent back to the zaddr being used as the source of funds.<br><br>Returns an operationid. You use the operationid value with z_getoperationstatus and z_getoperationresult to obtain the result of sending funds, which if successful, will be a txid.
|
||||
z_sendmany<br> | fromaddress amounts [minconf=1] [fee=0.0001] | _This is an Asynchronous RPC call_<br><br>Send funds from an address to multiple outputs. The address can be either a taddr or a zaddr.<br><br>Amounts is a list containing key/value pairs corresponding to the addresses and amount to pay. Each output address can be in taddr or zaddr format.<br><br>When sending to a zaddr, you also have the option of attaching a memo in hexadecimal format.<br><br>**NOTE:**When sending coinbase funds to a zaddr, the node's wallet does not allow any change. Put another way, spending a partial amount of a coinbase utxo is not allowed. This is not a consensus rule but a local wallet rule due to the current implementation of z_sendmany. In future, this rule may be removed.<br><br>Example of Outputs parameter:<br>[{“address”:”t123…”, “amount”:0.005},<br>,{“address”:”z010…”,”amount”:0.03, “memo”:”f508af…”}]<br><br>Optionally set the minimum number of confirmations which a private or transparent transaction must have in order to be used as an input. When sending from a zaddr, minconf must be greater than zero.<br><br>Optionally set a transaction fee, which by default is 0.0001 ZEC.<br><br>Any transparent change will be sent to a new transparent address. Any private change will be sent back to the zaddr being used as the source of funds.<br><br>Returns an operationid. You use the operationid value with z_getoperationstatus and z_getoperationresult to obtain the result of sending funds, which if successful, will be a txid.
|
||||
z_shieldcoinbase<br> | fromaddress toaddress [fee=0.0001] [limit=50] | _This is an Asynchronous RPC call_<br><br>Shield transparent coinbase funds by sending to a shielded z address. Utxos selected for shielding will be locked. If there is an error, they are unlocked. The RPC call `listlockunspent` can be used to return a list of locked utxos.<br><br>The number of coinbase utxos selected for shielding can be set with the limit parameter, which has a default value of 50. If the parameter is set to 0, the number of utxos selected is limited by the `-mempooltxinputlimit` option. Any limit is constrained by a consensus rule defining a maximum transaction size of 100000 bytes. <br><br>The from address is a taddr or "*" for all taddrs belonging to the wallet. The to address is a zaddr. The default fee is 0.0001.<br><br>Returns an object containing an operationid which can be used with z_getoperationstatus and z_getoperationresult, along with key-value pairs regarding how many utxos are being shielded in this transaction and what remains to be shielded.
|
||||
|
||||
### Operations
|
||||
|
||||
@@ -100,7 +101,7 @@ It is currently not possible to cancel operations.
|
||||
|
||||
Command | Parameters | Description
|
||||
--- | --- | ---
|
||||
z_getoperationresult <br>| [operationids] | Return OperationStatus JSON objects for all completed operations the node is currently aware of, and then remove the operation from memory.<br><br>Operationids is an optional array to filter which operations you want to receive status objects for.<br><br>Output is a list of operation status objects, where the status is either "failed", "cancelled" or "success".<br>[<br>{“operationid”: “opid-11ee…”,<br>“status”: “cancelled”},<br>{“operationid”: “opid-9876”, “status”: ”failed”},<br>{“operationid”: “opid-0e0e”,<br>“status”:”success”,<br>“execution_time”:”25”,<br>“result”: {“txid”:”af3887654…”,...}<br>},<br>]
|
||||
z_getoperationresult <br>| [operationids] | Return OperationStatus JSON objects for all completed operations the node is currently aware of, and then remove the operation from memory.<br><br>Operationids is an optional array to filter which operations you want to receive status objects for.<br><br>Output is a list of operation status objects, where the status is either "failed", "cancelled" or "success".<br>[<br>{“operationid”: “opid-11ee…”,<br>“status”: “cancelled”},<br>{“operationid”: “opid-9876”, “status”: ”failed”},<br>{“operationid”: “opid-0e0e”,<br>“status”:”success”,<br>“execution_time”:”25”,<br>“result”: {“txid”:”af3887654…”,...}<br>},<br>]<br><br> Examples:<br>zcash-cli z_getoperationresult '["opid-8120fa20-5ee7-4587-957b-f2579c2d882b"]'<br> zcash-cli z_getoperationresult
|
||||
z_getoperationstatus <br>| [operationids] | Return OperationStatus JSON objects for all operations the node is currently aware of.<br><br>Operationids is an optional array to filter which operations you want to receive status objects for.<br><br>Output is a list of operation status objects.<br>[<br>{“operationid”: “opid-12ee…”,<br>“status”: “queued”},<br>{“operationid”: “opd-098a…”, “status”: ”executing”},<br>{“operationid”: “opid-9876”, “status”: ”failed”}<br>]<br><br>When the operation succeeds, the status object will also include the result.<br><br>{“operationid”: “opid-0e0e”,<br>“status”:”success”,<br>“execution_time”:”25”,<br>“result”: {“txid”:”af3887654…”,...}<br>}
|
||||
z_listoperationids <br>| [state] | Return a list of operationids for all operations which the node is currently aware of.<br><br>State is an optional string parameter to filter the operations you want listed by their state. Acceptable parameter values are ‘queued’, ‘executing’, ‘success’, ‘failed’, ‘cancelled’.<br><br>[“opid-0e0e…”, “opid-1af4…”, … ]
|
||||
|
||||
@@ -112,6 +113,7 @@ Zcash error codes are defined in https://github.com/zcash/zcash/blob/master/src/
|
||||
|
||||
RPC_INVALID_PARAMETER (-8) | _Invalid, missing or duplicate parameter_
|
||||
---------------------------| -------------------------------------------------
|
||||
"Minconf cannot be zero when sending from zaddr" | Cannot accept minimum confirmation value of zero when sending from zaddr.
|
||||
"Minconf cannot be negative" | Cannot accept negative minimum confirmation number.
|
||||
"Minimum number of confirmations cannot be less than 0" | Cannot accept negative minimum confirmation number.
|
||||
"From address parameter missing" | Missing an address to send funds from.
|
||||
@@ -157,7 +159,7 @@ RPC_WALLET_ERROR (-4) | _Unspecified problem with wallet_
|
||||
"Could not find previous JoinSplit anchor" | Try restarting node with `-reindex`.
|
||||
"Error decrypting output note of previous JoinSplit: __" |
|
||||
"Could not find witness for note commitment" | Try restarting node with `-rescan`.
|
||||
"Witness for note commitment is null" | Missing witness for note commitement.
|
||||
"Witness for note commitment is null" | Missing witness for note commitment.
|
||||
"Witness for spendable note does not have same anchor as change input" | Invalid anchor for spendable note witness.
|
||||
"Not enough funds to pay miners fee" | Retry with sufficient funds.
|
||||
"Missing hex data for raw transaction" | Raw transaction data is null.
|
||||
|
||||
107
doc/payment-disclosure.md
Normal file
107
doc/payment-disclosure.md
Normal file
@@ -0,0 +1,107 @@
|
||||
# Payment Disclosure (Experimental Feature)
|
||||
|
||||
**Summary**
|
||||
|
||||
Use RPC calls `z_getpaymentdisclosure` and `z_validatepaymentdisclosure` to reveal details of a shielded payment.
|
||||
|
||||
**Who should read this document**
|
||||
|
||||
Frequent users of shielded transactions, payment processors, exchanges, block explorer
|
||||
|
||||
### Experimental Feature
|
||||
|
||||
This is an experimental feature. Enable it by launching `zcashd` with flags:
|
||||
|
||||
zcashd -experimentalfeatures -paymentdisclosure -debug=paymentdisclosure -txindex=1
|
||||
|
||||
These flags can also be set as options in `zcash.conf`.
|
||||
|
||||
All nodes that generate or validate payment disclosures must run with `txindex=1` enabled.
|
||||
|
||||
### Background
|
||||
|
||||
Payment Disclosure is an implementation of the work-in-progress Payment Disclosure ZIP [1].
|
||||
|
||||
The ZIP describes a method of proving that a payment was sent to a shielded address. In the typical case, this means enabling a sender to present a proof that they transferred funds to a recipient's shielded address.
|
||||
|
||||
[1] https://github.com/zcash/zips/pull/119
|
||||
|
||||
### Example Use Case
|
||||
|
||||
Alice the customer sends 10 ZEC to Bob the merchant at the shielded address shown on their website. However, Bob is not sure if he received the funds.
|
||||
|
||||
Alice's node is running with payment disclosure enabled, so Alice generates a payment disclosure and provides it to Bob, who verifies the payment was made.
|
||||
|
||||
If Bob is a bad merchant, Alice can present the payment disclosure to a third party to validate that payment was indeed made.
|
||||
|
||||
### Solution
|
||||
|
||||
A payment disclosure can be generated for any output of a JoinSplit using the RPC call:
|
||||
|
||||
z_getpaymentdisclosure txid js_index output_index (message)
|
||||
|
||||
An optional message can be supplied. This could be used for a refund address or some other reference, as currently it is not common practice to (ahead of time) include a refund address in the memo field when making a payment.
|
||||
|
||||
To validate a payment disclosure, the following RPC call can be used:
|
||||
|
||||
z_validatepaymentdisclosure hexdata
|
||||
|
||||
### Example
|
||||
|
||||
Generate a payment disclosure for the first joinsplit, second output (index starts from zero):
|
||||
|
||||
zcash-cli z_getpaymentdisclosure 79189528d611e811a1c7bb0358dd31343033d14b4c1e998d7c4799c40f8b652b 0 1 "Hello"
|
||||
|
||||
This returns a payment disclosure in the form of a hex string:
|
||||
|
||||
706462ff000a3722aafa8190cdf9710bfad6da2af6d3a74262c1fc96ad47df814b0cd5641c2b658b0fc499477c8d991e4c4bd133303431dd5803bbc7a111e811d6289518790000000000000000017e861adb829d8cb1cbcf6330b8c2e25fb0d08041a67a857815a136f0227f8a5342bce5b3c0d894e2983000eb594702d3c1580817d0374e15078528e56bb6f80c0548656c6c6f59a7085395c9e706d82afe3157c54ad4ae5bf144fcc774a8d9c921c58471402019c156ec5641e2173c4fb6467df5f28530dc4636fa71f4d0e48fc5c560fac500
|
||||
|
||||
To validate the payment disclosure:
|
||||
|
||||
zcash-cli z_validatepaymentdisclosure HEXDATA
|
||||
|
||||
This returns data related to the payment and the payment disclosure:
|
||||
|
||||
{
|
||||
"txid": "79189528d611e811a1c7bb0358dd31343033d14b4c1e998d7c4799c40f8b652b",
|
||||
"jsIndex": 0,
|
||||
"outputIndex": 1,
|
||||
"version": 0,
|
||||
"onetimePrivKey": "1c64d50c4b81df47ad96fcc16242a7d3f62adad6fa0b71f9cd9081faaa22370a",
|
||||
"message": "Hello",
|
||||
"joinSplitPubKey": "d1c465d16166b602992479acfac18e87dc18065f6cefde6a002e70bc371b9faf",
|
||||
"signatureVerified": true,
|
||||
"paymentAddress": "ztaZJXy8iX8nrk2ytXKDBoTWqPkhQcj6E2ifARnD3wfkFwsxXs5SoX7NGmrjkzSiSKn8VtLHTJae48vX5NakvmDhtGNY5eb",
|
||||
"memo": "f600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
||||
"value": 12.49900000,
|
||||
"commitmentMatch": true,
|
||||
"valid": true
|
||||
}
|
||||
|
||||
The `signatureVerified` field confirms that the payment disclosure was generated and signed with the joinSplitPrivKey, which should only be known by the node generating and sending the transaction 7918...652b in question.
|
||||
|
||||
### Where is the data stored?
|
||||
|
||||
For all nodes, payment disclosure does not touch `wallet.dat` in any way.
|
||||
|
||||
For nodes that only validate payment disclosures, no data is stored locally.
|
||||
|
||||
For nodes that generate payment disclosures, a LevelDB database is created in the node's datadir. For most users, this would be in the folder:
|
||||
|
||||
$HOME/.zcash/paymentdisclosure
|
||||
|
||||
If you decide you don't want to use payment disclosure, it is safe to shut down your node and delete the database folder.
|
||||
|
||||
### Security Properties
|
||||
|
||||
Please consult the work-in-progress ZIP for details about the protocol, security properties and caveats.
|
||||
|
||||
### Reminder
|
||||
|
||||
Feedback is most welcome!
|
||||
|
||||
This is an experimental feature so there are no guarantees that the protocol, database format, RPC interface etc. will remain the same in the future.
|
||||
|
||||
### Notes
|
||||
|
||||
Currently there is no user friendly way to help senders identify which joinsplit output index maps to a given payment they made. It is possible to construct this from `debug.log`. Ideas and feedback are most welcome on how to improve the user experience.
|
||||
8
doc/reducing-memory-usage.md
Normal file
8
doc/reducing-memory-usage.md
Normal file
@@ -0,0 +1,8 @@
|
||||
In-memory caches
|
||||
----------------
|
||||
|
||||
The size of some in-memory caches can be reduced. As caches trade off memory usage for performance, usually reducing these have a negative effect on performance.
|
||||
|
||||
- `-dbcache=<n>` - the UTXO database cache size, this defaults to `450` (`100` before 1.0.15). The unit is MiB (where 1 GiB = 1024 MiB).
|
||||
- The minimum value for `-dbcache` is 4.
|
||||
- A lower dbcache make initial sync time much longer. After the initial sync, the effect is less pronounced for most use-cases, unless fast validation of blocks is important such as for mining.
|
||||
6
doc/release-notes.md
Normal file
6
doc/release-notes.md
Normal file
@@ -0,0 +1,6 @@
|
||||
(note: this is a temporary file, to be added-to by anybody, and moved to
|
||||
release-notes at release time)
|
||||
|
||||
Notable changes
|
||||
===============
|
||||
|
||||
11
doc/release-notes/release-notes-1.0.10-1.md
Normal file
11
doc/release-notes/release-notes-1.0.10-1.md
Normal file
@@ -0,0 +1,11 @@
|
||||
Jack Grigg (1):
|
||||
Disable building Proton in Gitian
|
||||
|
||||
Sean Bowe (2):
|
||||
Revert "Remove an unneeded version workaround as per @str4d's review comment."
|
||||
Revert "Delete old protocol version constants and simplify code that used them."
|
||||
|
||||
Simon Liu (2):
|
||||
make-release.py: Versioning changes for 1.0.10-1.
|
||||
make-release.py: Updated manpages for 1.0.10-1.
|
||||
|
||||
79
doc/release-notes/release-notes-1.0.10.md
Normal file
79
doc/release-notes/release-notes-1.0.10.md
Normal file
@@ -0,0 +1,79 @@
|
||||
Notable changes
|
||||
===============
|
||||
|
||||
Signature validation using libsecp256k1
|
||||
---------------------------------------
|
||||
|
||||
ECDSA signatures inside Zcash transactions now use validation using
|
||||
[https://github.com/bitcoin/secp256k1](libsecp256k1) instead of OpenSSL.
|
||||
|
||||
Depending on the platform, this means a significant speedup for raw signature
|
||||
validation speed. The advantage is largest on x86_64, where validation is over
|
||||
five times faster. In practice, this translates to a raw reindexing and new
|
||||
block validation times that are less than half of what it was before.
|
||||
|
||||
Libsecp256k1 has undergone very extensive testing and validation upstream.
|
||||
|
||||
A side effect of this change is that libconsensus no longer depends on OpenSSL.
|
||||
|
||||
Changelog
|
||||
=========
|
||||
|
||||
Boris Hajduk (1):
|
||||
documentatin z_validateaddress was missing param
|
||||
|
||||
Daira Hopwood (8):
|
||||
Delete old protocol version constants and simplify code that used them. fixes #2244
|
||||
Remove an unneeded version workaround as per @str4d's review comment.
|
||||
Remove unneeded lax ECDSA signature verification.
|
||||
Strict DER signatures are always enforced; remove the flag and code that used it.
|
||||
Repair tests for strict DER signatures. While we're at it, repair a similar test for CLTV, and make the repaired RPC tests run by default.
|
||||
Make transaction test failures print the comments preceding the test JSON.
|
||||
Fix a comment that was made stale before launch by #1016 (commit 542da61).
|
||||
Delete test that is redundant and inapplicable to Zcash.
|
||||
|
||||
Jack Grigg (20):
|
||||
Fix incorrect locking in CCryptoKeyStore
|
||||
Use AtomicTimer for metrics screen thread count
|
||||
Revert "Fix secp256k1 test compilation"
|
||||
Squashed 'src/secp256k1/' changes from 22f60a6..84973d3
|
||||
Fix potential overflows in ECDSA DER parsers
|
||||
Rename FALLBACK_DOWNLOAD_PATH to PRIORITY_DOWNLOAD_PATH
|
||||
Add test for incorrect consensus logic
|
||||
Correct consensus logic in ContextualCheckInputs
|
||||
Add comments
|
||||
Update Debian copyright list
|
||||
Specify ECDSA constant sizes as constants
|
||||
Remove redundant `= 0` initialisations
|
||||
Ensure that ECDSA constant sizes are correctly-sized
|
||||
Add test for -mempooltxinputlimit
|
||||
Hold an ECCVerifyHandle in zcash-gtest
|
||||
Additional testing of -mempooltxinputlimit
|
||||
Fix comment
|
||||
Use sendfrom for both t-addr calls
|
||||
make-release.py: Versioning changes for 1.0.10.
|
||||
make-release.py: Updated manpages for 1.0.10.
|
||||
|
||||
Kevin Pan (1):
|
||||
"getblocktemplate" could work without wallet
|
||||
|
||||
Pieter Wuille (2):
|
||||
Update key.cpp to new secp256k1 API
|
||||
Switch to libsecp256k1-based validation for ECDSA
|
||||
|
||||
Simon Liu (5):
|
||||
Fix intermediate vpub_new leakage in multi joinsplit tx (#1360)
|
||||
Add option 'mempooltxinputlimit' so the mempool can reject a transaction based on the number of transparent inputs.
|
||||
Check mempooltxinputlimit when creating a transaction to avoid local mempool rejection.
|
||||
Partial revert & fix for commit 9e84b5a ; code block in wrong location.
|
||||
Fix #b1eb4f2 so test checks sendfrom as originally intended.
|
||||
|
||||
Wladimir J. van der Laan (2):
|
||||
Use real number of cores for default -par, ignore virtual cores
|
||||
Remove ChainParams::DefaultMinerThreads
|
||||
|
||||
kozyilmaz (3):
|
||||
[macOS] system linker does not support “--version” option but only “-v”
|
||||
option to disable building libraries (zcutil/build.sh)
|
||||
support per platform filename and hash setting for dependencies
|
||||
|
||||
44
doc/release-notes/release-notes-1.0.11-rc1.md
Normal file
44
doc/release-notes/release-notes-1.0.11-rc1.md
Normal file
@@ -0,0 +1,44 @@
|
||||
Changelog
|
||||
=========
|
||||
|
||||
Ariel Gabizon (2):
|
||||
make-release.py: Versioning changes for 1.0.11-rc1.
|
||||
make-release.py: Updated manpages for 1.0.11-rc1.
|
||||
|
||||
Daira Hopwood (7):
|
||||
Clean up imports to be pyflakes-checkable. fixes #2450
|
||||
For unused variables reported by pyflakes, either remove the variable, suppress the warning, or fix a bug (if the wrong variable was used). refs #2450
|
||||
Cosmetics (trailing whitespace, comment conventions, etc.)
|
||||
Alert 1004 (version 1.0.10 only)
|
||||
Remove UPnP support. fixes #2500
|
||||
Change wording in Security Warnings section of README.md.
|
||||
Document our criteria for adding CI workers. closes #2499
|
||||
|
||||
Jack Grigg (15):
|
||||
Pull in temporary release notes during the release process
|
||||
Ansible playbook for installing Zcash dependencies and Buildbot worker
|
||||
Variable overrides for Debian, Ubuntu and Fedora
|
||||
Variable overrides for FreeBSD
|
||||
Simplify Python installation, inform user if they need to manually configure
|
||||
Add test for issue #2444
|
||||
Add Buildbot worker setup to Ansible playbook
|
||||
Add steps for setting up a latent worker on Amazon EC2
|
||||
Add pyblake2 to required Python modules
|
||||
Remove Buildbot version from host file
|
||||
Add a separate Buildbot host info template for EC2
|
||||
Add pyflakes to required Python modules
|
||||
Add block download progress to metrics UI
|
||||
Correct and extend EstimateNetHeightInner tests
|
||||
Improve network height estimation
|
||||
|
||||
Simon Liu (3):
|
||||
Closes #2446 by adding generated field to listunspent.
|
||||
Fixes #2519. When sending from a zaddr, minconf cannot be zero.
|
||||
Fixes #2480. Null entry in map was dereferenced leading to a segfault.
|
||||
|
||||
Wladimir J. van der Laan (1):
|
||||
rpc: Add WWW-Authenticate header to 401 response
|
||||
|
||||
practicalswift (1):
|
||||
Net: Fix resource leak in ReadBinaryFile(...)
|
||||
|
||||
47
doc/release-notes/release-notes-1.0.11.md
Normal file
47
doc/release-notes/release-notes-1.0.11.md
Normal file
@@ -0,0 +1,47 @@
|
||||
Changelog
|
||||
=========
|
||||
|
||||
Ariel Gabizon (3):
|
||||
make-release.py: Versioning changes for 1.0.11-rc1.
|
||||
make-release.py: Updated manpages for 1.0.11-rc1.
|
||||
make-release.py: Updated release notes and changelog for 1.0.11-rc1.
|
||||
|
||||
Daira Hopwood (7):
|
||||
Clean up imports to be pyflakes-checkable. fixes #2450
|
||||
For unused variables reported by pyflakes, either remove the variable, suppress the warning, or fix a bug (if the wrong variable was used). refs #2450
|
||||
Cosmetics (trailing whitespace, comment conventions, etc.)
|
||||
Alert 1004 (version 1.0.10 only)
|
||||
Remove UPnP support. fixes #2500
|
||||
Change wording in Security Warnings section of README.md.
|
||||
Document our criteria for adding CI workers. closes #2499
|
||||
|
||||
Jack Grigg (17):
|
||||
Pull in temporary release notes during the release process
|
||||
Ansible playbook for installing Zcash dependencies and Buildbot worker
|
||||
Variable overrides for Debian, Ubuntu and Fedora
|
||||
Variable overrides for FreeBSD
|
||||
Simplify Python installation, inform user if they need to manually configure
|
||||
Add test for issue #2444
|
||||
Add Buildbot worker setup to Ansible playbook
|
||||
Add steps for setting up a latent worker on Amazon EC2
|
||||
Add pyblake2 to required Python modules
|
||||
Remove Buildbot version from host file
|
||||
Add a separate Buildbot host info template for EC2
|
||||
Add pyflakes to required Python modules
|
||||
Add block download progress to metrics UI
|
||||
Correct and extend EstimateNetHeightInner tests
|
||||
Improve network height estimation
|
||||
make-release.py: Versioning changes for 1.0.11.
|
||||
make-release.py: Updated manpages for 1.0.11.
|
||||
|
||||
Simon Liu (3):
|
||||
Closes #2446 by adding generated field to listunspent.
|
||||
Fixes #2519. When sending from a zaddr, minconf cannot be zero.
|
||||
Fixes #2480. Null entry in map was dereferenced leading to a segfault.
|
||||
|
||||
Wladimir J. van der Laan (1):
|
||||
rpc: Add WWW-Authenticate header to 401 response
|
||||
|
||||
practicalswift (1):
|
||||
Net: Fix resource leak in ReadBinaryFile(...)
|
||||
|
||||
57
doc/release-notes/release-notes-1.0.12-rc1.md
Normal file
57
doc/release-notes/release-notes-1.0.12-rc1.md
Normal file
@@ -0,0 +1,57 @@
|
||||
Changelog
|
||||
=========
|
||||
|
||||
Ariel (1):
|
||||
add examples to z_getoperationresult
|
||||
|
||||
Ariel Gabizon (1):
|
||||
add load-wallet benchmark
|
||||
|
||||
Bjorn Hjortsberg (2):
|
||||
Do not warn on built in declaration mismatch
|
||||
Remove deprecated exception specification
|
||||
|
||||
Jack Grigg (20):
|
||||
ci-workers: Enable pipelining, and use root to set admin and host details
|
||||
Variable overrides for Arch Linux
|
||||
Rationalize currency unit to "ZEC"
|
||||
ci-workers: Fail if Python is not version 2.7
|
||||
ci-workers: Variable overrides and process tweaks for CentOS 7
|
||||
Add build progress to the release script if progressbar module is available
|
||||
Add hotfix support to release script
|
||||
Document the hotfix release process
|
||||
Enforce sequential hotfix versioning
|
||||
Benchmark time to call sendtoaddress with many UTXOs
|
||||
Fix bug in benchmark data generation script
|
||||
Adjust instructions for UTXO dataset creation
|
||||
Add GitHub release notes to release process
|
||||
Clarify branching and force-building operations in hotfix process
|
||||
Update user guide translations as part of release process
|
||||
make-release.py: Send stderr to stdout
|
||||
List dependencies for release script in release process doc
|
||||
Additional test cases for importprivkey RPC test
|
||||
make-release.py: Versioning changes for 1.0.12-rc1.
|
||||
make-release.py: Updated manpages for 1.0.12-rc1.
|
||||
|
||||
Jason Davies (1):
|
||||
Fix deprecation policy comment.
|
||||
|
||||
Nathan Wilcox (5):
|
||||
key_import_export rpc-test: verify that UTXO view co-evolves for nodes sharing a key.
|
||||
Add a new rpc-test-specified requirement: `importprivkey` outputs the associated address. (Test fails.)
|
||||
[tests pass] Output address on new key import.
|
||||
Add a new requirement that `importprivkey` API is idempotent.
|
||||
[tests pass] Ensure `importprivkey` outputs the address in case key is already imported.
|
||||
|
||||
Ross Nicoll (1):
|
||||
Rationalize currency unit to "BTC"
|
||||
|
||||
Simon Liu (3):
|
||||
Closes #2583. Exclude watch-only utxos from z_sendmany coin selection.
|
||||
Set up a clean chain. Delete redundant method wait_until_miner_sees() via use of sync_all().
|
||||
Implement RPC shield_coinbase #2448.
|
||||
|
||||
kpcyrd (2):
|
||||
Fetch params from ipfs if possible
|
||||
Prefer wget over ipfs
|
||||
|
||||
65
doc/release-notes/release-notes-1.0.12.md
Normal file
65
doc/release-notes/release-notes-1.0.12.md
Normal file
@@ -0,0 +1,65 @@
|
||||
Changelog
|
||||
=========
|
||||
|
||||
Ariel (1):
|
||||
add examples to z_getoperationresult
|
||||
|
||||
Ariel Gabizon (1):
|
||||
add load-wallet benchmark
|
||||
|
||||
Bjorn Hjortsberg (2):
|
||||
Do not warn on built in declaration mismatch
|
||||
Remove deprecated exception specification
|
||||
|
||||
Jack Grigg (26):
|
||||
ci-workers: Enable pipelining, and use root to set admin and host details
|
||||
Variable overrides for Arch Linux
|
||||
Rationalize currency unit to "ZEC"
|
||||
ci-workers: Fail if Python is not version 2.7
|
||||
ci-workers: Variable overrides and process tweaks for CentOS 7
|
||||
Add build progress to the release script if progressbar module is available
|
||||
Add hotfix support to release script
|
||||
Document the hotfix release process
|
||||
Enforce sequential hotfix versioning
|
||||
Benchmark time to call sendtoaddress with many UTXOs
|
||||
Fix bug in benchmark data generation script
|
||||
Adjust instructions for UTXO dataset creation
|
||||
Add GitHub release notes to release process
|
||||
Clarify branching and force-building operations in hotfix process
|
||||
Update user guide translations as part of release process
|
||||
make-release.py: Send stderr to stdout
|
||||
List dependencies for release script in release process doc
|
||||
Additional test cases for importprivkey RPC test
|
||||
make-release.py: Versioning changes for 1.0.12-rc1.
|
||||
make-release.py: Updated manpages for 1.0.12-rc1.
|
||||
make-release.py: Updated release notes and changelog for 1.0.12-rc1.
|
||||
Fix pyflakes warnings in RPC tests
|
||||
Individualise performance-measurements.sh errors for debugging
|
||||
Fix incorrect failure in memory benchmark
|
||||
make-release.py: Versioning changes for 1.0.12.
|
||||
make-release.py: Updated manpages for 1.0.12.
|
||||
|
||||
Jason Davies (1):
|
||||
Fix deprecation policy comment.
|
||||
|
||||
Nathan Wilcox (5):
|
||||
key_import_export rpc-test: verify that UTXO view co-evolves for nodes sharing a key.
|
||||
Add a new rpc-test-specified requirement: `importprivkey` outputs the associated address. (Test fails.)
|
||||
[tests pass] Output address on new key import.
|
||||
Add a new requirement that `importprivkey` API is idempotent.
|
||||
[tests pass] Ensure `importprivkey` outputs the address in case key is already imported.
|
||||
|
||||
Ross Nicoll (1):
|
||||
Rationalize currency unit to "BTC"
|
||||
|
||||
Simon Liu (5):
|
||||
Closes #2583. Exclude watch-only utxos from z_sendmany coin selection.
|
||||
Set up a clean chain. Delete redundant method wait_until_miner_sees() via use of sync_all().
|
||||
Implement RPC shield_coinbase #2448.
|
||||
Update which lock to synchronize on when calling GetBestAnchor().
|
||||
Closes #2637. Make z_shieldcoinbase an experimental feature where it can be enabled with: zcashd -experimentalfeatures -zshieldcoinbase.
|
||||
|
||||
kpcyrd (2):
|
||||
Fetch params from ipfs if possible
|
||||
Prefer wget over ipfs
|
||||
|
||||
88
doc/release-notes/release-notes-1.0.13-rc1.md
Normal file
88
doc/release-notes/release-notes-1.0.13-rc1.md
Normal file
@@ -0,0 +1,88 @@
|
||||
Changelog
|
||||
=========
|
||||
|
||||
Ariel Gabizon (1):
|
||||
boost::format -> tinyformat
|
||||
|
||||
Bruno Arueira (1):
|
||||
Removes out bitcoin mention in favor for zcash
|
||||
|
||||
Cory Fields (1):
|
||||
httpserver: explicitly detach worker threads
|
||||
|
||||
Duke Leto (1):
|
||||
Update performance-measurements.sh
|
||||
|
||||
Jack Grigg (37):
|
||||
Squashed 'src/snark/' content from commit 9ada3f8
|
||||
Add libsnark compile flag to not copy DEPINST to PREFIX
|
||||
Add Ansible playbook for grind workers
|
||||
Add connections in BIP65 and BIP66 tests to the test manager
|
||||
Add benchmark for listunspent
|
||||
[Test] MiniNode: Implement JSDescription parsing
|
||||
[Test] MiniNode: Implement v2 CTransaction parsing
|
||||
[Test] MiniNode: Implement Zcash block parsing
|
||||
[Test] MiniNode: Update protocol version and network magics
|
||||
[Test] MiniNode: Use Zcash PoW
|
||||
[Test] MiniNode: Fix coinbase creation
|
||||
[Test] MiniNode: Coerce OP_PUSHDATA bytearrays to bytes
|
||||
[Test] MiniNode: Implement Zcash coinbase
|
||||
Fix BIP65 and BIP66 tests
|
||||
Un-indent RPC test output in test runner
|
||||
Replace full-test-suite.sh with a new test suite driver script
|
||||
Move ensure-no-dot-so-in-depends.py into full_test_suite.py
|
||||
Move check-security-hardening.sh into full_test_suite.py
|
||||
Add memory benchmark for validatelargetx
|
||||
Migrate libsnark test code to Google Test
|
||||
Remove test code corresponding to removed code
|
||||
Add alt_bn128 to QAP and Merkle tree gadget tests
|
||||
Update libsnark LDLIBS
|
||||
Add "make check" to libsnark that runs the Google Tests
|
||||
Add "make libsnark-tests" that runs libsnark's "make check"
|
||||
Changes to get test_r1cs_ppzksnark passing
|
||||
Add bitcoin-util-test.py to full_test_suite.py
|
||||
Add stdout notice if any stage fails
|
||||
Add libsnark to "make clean"
|
||||
Ensure that libsnark is built first, so its headers are available
|
||||
Remove OpenSSL libraries from libsnark LDLIBS
|
||||
Add libsnark tests to full_test_suite.py
|
||||
Add --list-stages argument to full_test_suite.py
|
||||
Fix NPE in rpc_wallet_tests
|
||||
make-release.py: Versioning changes for 1.0.13-rc1.
|
||||
make-release.py: Updated manpages for 1.0.13-rc1.
|
||||
Change auto-senescence cycle to 16 weeks
|
||||
|
||||
Jason Davies (1):
|
||||
Replace "bitcoin" with "Zcash".
|
||||
|
||||
Jay Graber (1):
|
||||
s/zcash/Zcash
|
||||
|
||||
Jonathan "Duke" Leto (1):
|
||||
Fix bug where performance-measurements.sh fails hards when given no args
|
||||
|
||||
João Barbosa (1):
|
||||
Improve shutdown process
|
||||
|
||||
Sean Bowe (5):
|
||||
Remove libsnark from depends system and integrate it into build system.
|
||||
Remove crusty old "loadVerifyingKey"/"loadProvingKey" APIs and associated invariants.
|
||||
Refactor proof generation function.
|
||||
Add streaming prover.
|
||||
Integrate low memory prover.
|
||||
|
||||
Simon Liu (7):
|
||||
Replace 'bitcoin address' with 'zcash address'.
|
||||
Closes #2639. z_shieldcoinbase is now supported, no longer experimental.
|
||||
Closes #2263 fixing broken pipe error.
|
||||
Closes #2576. Update link to security info on z.cash website.
|
||||
Closes #2639. Adds optional limit parameter with a default value of 50.
|
||||
Fix an issue where qa test wallet_shieldcoinbase could hang.
|
||||
Add payment disclosure as experimental feature.
|
||||
|
||||
Wladimir J. van der Laan (4):
|
||||
Make HTTP server shutdown more graceful
|
||||
http: Wait for worker threads to exit
|
||||
http: Force-exit event loop after predefined time
|
||||
http: speed up shutdown
|
||||
|
||||
95
doc/release-notes/release-notes-1.0.13-rc2.md
Normal file
95
doc/release-notes/release-notes-1.0.13-rc2.md
Normal file
@@ -0,0 +1,95 @@
|
||||
Changelog
|
||||
=========
|
||||
|
||||
Ariel Gabizon (1):
|
||||
boost::format -> tinyformat
|
||||
|
||||
Bruno Arueira (1):
|
||||
Removes out bitcoin mention in favor for zcash
|
||||
|
||||
Cory Fields (1):
|
||||
httpserver: explicitly detach worker threads
|
||||
|
||||
Duke Leto (1):
|
||||
Update performance-measurements.sh
|
||||
|
||||
Jack Grigg (44):
|
||||
Squashed 'src/snark/' content from commit 9ada3f8
|
||||
Add libsnark compile flag to not copy DEPINST to PREFIX
|
||||
Add Ansible playbook for grind workers
|
||||
Add connections in BIP65 and BIP66 tests to the test manager
|
||||
Add benchmark for listunspent
|
||||
[Test] MiniNode: Implement JSDescription parsing
|
||||
[Test] MiniNode: Implement v2 CTransaction parsing
|
||||
[Test] MiniNode: Implement Zcash block parsing
|
||||
[Test] MiniNode: Update protocol version and network magics
|
||||
[Test] MiniNode: Use Zcash PoW
|
||||
[Test] MiniNode: Fix coinbase creation
|
||||
[Test] MiniNode: Coerce OP_PUSHDATA bytearrays to bytes
|
||||
[Test] MiniNode: Implement Zcash coinbase
|
||||
Fix BIP65 and BIP66 tests
|
||||
Un-indent RPC test output in test runner
|
||||
Replace full-test-suite.sh with a new test suite driver script
|
||||
Move ensure-no-dot-so-in-depends.py into full_test_suite.py
|
||||
Move check-security-hardening.sh into full_test_suite.py
|
||||
Add memory benchmark for validatelargetx
|
||||
Migrate libsnark test code to Google Test
|
||||
Remove test code corresponding to removed code
|
||||
Add alt_bn128 to QAP and Merkle tree gadget tests
|
||||
Update libsnark LDLIBS
|
||||
Add "make check" to libsnark that runs the Google Tests
|
||||
Add "make libsnark-tests" that runs libsnark's "make check"
|
||||
Changes to get test_r1cs_ppzksnark passing
|
||||
Add bitcoin-util-test.py to full_test_suite.py
|
||||
Add stdout notice if any stage fails
|
||||
Add libsnark to "make clean"
|
||||
Ensure that libsnark is built first, so its headers are available
|
||||
Remove OpenSSL libraries from libsnark LDLIBS
|
||||
Add libsnark tests to full_test_suite.py
|
||||
Add --list-stages argument to full_test_suite.py
|
||||
Fix NPE in rpc_wallet_tests
|
||||
make-release.py: Versioning changes for 1.0.13-rc1.
|
||||
make-release.py: Updated manpages for 1.0.13-rc1.
|
||||
make-release.py: Updated release notes and changelog for 1.0.13-rc1.
|
||||
Change auto-senescence cycle to 16 weeks
|
||||
Move libsnark from DIST_SUBDIRS into EXTRA_DIST
|
||||
Pass correct dependencies path to libsnark from both Gitian and build.sh
|
||||
Mark libsnark includes as library includes
|
||||
Add the tar-pax option to automake
|
||||
make-release.py: Versioning changes for 1.0.13-rc2.
|
||||
make-release.py: Updated manpages for 1.0.13-rc2.
|
||||
|
||||
Jason Davies (1):
|
||||
Replace "bitcoin" with "Zcash".
|
||||
|
||||
Jay Graber (1):
|
||||
s/zcash/Zcash
|
||||
|
||||
Jonathan "Duke" Leto (1):
|
||||
Fix bug where performance-measurements.sh fails hards when given no args
|
||||
|
||||
João Barbosa (1):
|
||||
Improve shutdown process
|
||||
|
||||
Sean Bowe (5):
|
||||
Remove libsnark from depends system and integrate it into build system.
|
||||
Remove crusty old "loadVerifyingKey"/"loadProvingKey" APIs and associated invariants.
|
||||
Refactor proof generation function.
|
||||
Add streaming prover.
|
||||
Integrate low memory prover.
|
||||
|
||||
Simon Liu (7):
|
||||
Replace 'bitcoin address' with 'zcash address'.
|
||||
Closes #2639. z_shieldcoinbase is now supported, no longer experimental.
|
||||
Closes #2263 fixing broken pipe error.
|
||||
Closes #2576. Update link to security info on z.cash website.
|
||||
Closes #2639. Adds optional limit parameter with a default value of 50.
|
||||
Fix an issue where qa test wallet_shieldcoinbase could hang.
|
||||
Add payment disclosure as experimental feature.
|
||||
|
||||
Wladimir J. van der Laan (4):
|
||||
Make HTTP server shutdown more graceful
|
||||
http: Wait for worker threads to exit
|
||||
http: Force-exit event loop after predefined time
|
||||
http: speed up shutdown
|
||||
|
||||
98
doc/release-notes/release-notes-1.0.13.md
Normal file
98
doc/release-notes/release-notes-1.0.13.md
Normal file
@@ -0,0 +1,98 @@
|
||||
Changelog
|
||||
=========
|
||||
|
||||
Ariel Gabizon (1):
|
||||
boost::format -> tinyformat
|
||||
|
||||
Bruno Arueira (1):
|
||||
Removes out bitcoin mention in favor for zcash
|
||||
|
||||
Cory Fields (1):
|
||||
httpserver: explicitly detach worker threads
|
||||
|
||||
Duke Leto (1):
|
||||
Update performance-measurements.sh
|
||||
|
||||
Jack Grigg (47):
|
||||
Squashed 'src/snark/' content from commit 9ada3f8
|
||||
Add libsnark compile flag to not copy DEPINST to PREFIX
|
||||
Add Ansible playbook for grind workers
|
||||
Add connections in BIP65 and BIP66 tests to the test manager
|
||||
Add benchmark for listunspent
|
||||
[Test] MiniNode: Implement JSDescription parsing
|
||||
[Test] MiniNode: Implement v2 CTransaction parsing
|
||||
[Test] MiniNode: Implement Zcash block parsing
|
||||
[Test] MiniNode: Update protocol version and network magics
|
||||
[Test] MiniNode: Use Zcash PoW
|
||||
[Test] MiniNode: Fix coinbase creation
|
||||
[Test] MiniNode: Coerce OP_PUSHDATA bytearrays to bytes
|
||||
[Test] MiniNode: Implement Zcash coinbase
|
||||
Fix BIP65 and BIP66 tests
|
||||
Un-indent RPC test output in test runner
|
||||
Replace full-test-suite.sh with a new test suite driver script
|
||||
Move ensure-no-dot-so-in-depends.py into full_test_suite.py
|
||||
Move check-security-hardening.sh into full_test_suite.py
|
||||
Add memory benchmark for validatelargetx
|
||||
Migrate libsnark test code to Google Test
|
||||
Remove test code corresponding to removed code
|
||||
Add alt_bn128 to QAP and Merkle tree gadget tests
|
||||
Update libsnark LDLIBS
|
||||
Add "make check" to libsnark that runs the Google Tests
|
||||
Add "make libsnark-tests" that runs libsnark's "make check"
|
||||
Changes to get test_r1cs_ppzksnark passing
|
||||
Add bitcoin-util-test.py to full_test_suite.py
|
||||
Add stdout notice if any stage fails
|
||||
Add libsnark to "make clean"
|
||||
Ensure that libsnark is built first, so its headers are available
|
||||
Remove OpenSSL libraries from libsnark LDLIBS
|
||||
Add libsnark tests to full_test_suite.py
|
||||
Add --list-stages argument to full_test_suite.py
|
||||
Fix NPE in rpc_wallet_tests
|
||||
make-release.py: Versioning changes for 1.0.13-rc1.
|
||||
make-release.py: Updated manpages for 1.0.13-rc1.
|
||||
make-release.py: Updated release notes and changelog for 1.0.13-rc1.
|
||||
Change auto-senescence cycle to 16 weeks
|
||||
Move libsnark from DIST_SUBDIRS into EXTRA_DIST
|
||||
Pass correct dependencies path to libsnark from both Gitian and build.sh
|
||||
Mark libsnark includes as library includes
|
||||
Add the tar-pax option to automake
|
||||
make-release.py: Versioning changes for 1.0.13-rc2.
|
||||
make-release.py: Updated manpages for 1.0.13-rc2.
|
||||
make-release.py: Updated release notes and changelog for 1.0.13-rc2.
|
||||
make-release.py: Versioning changes for 1.0.13.
|
||||
make-release.py: Updated manpages for 1.0.13.
|
||||
|
||||
Jason Davies (1):
|
||||
Replace "bitcoin" with "Zcash".
|
||||
|
||||
Jay Graber (1):
|
||||
s/zcash/Zcash
|
||||
|
||||
Jonathan "Duke" Leto (1):
|
||||
Fix bug where performance-measurements.sh fails hards when given no args
|
||||
|
||||
João Barbosa (1):
|
||||
Improve shutdown process
|
||||
|
||||
Sean Bowe (5):
|
||||
Remove libsnark from depends system and integrate it into build system.
|
||||
Remove crusty old "loadVerifyingKey"/"loadProvingKey" APIs and associated invariants.
|
||||
Refactor proof generation function.
|
||||
Add streaming prover.
|
||||
Integrate low memory prover.
|
||||
|
||||
Simon Liu (7):
|
||||
Replace 'bitcoin address' with 'zcash address'.
|
||||
Closes #2639. z_shieldcoinbase is now supported, no longer experimental.
|
||||
Closes #2263 fixing broken pipe error.
|
||||
Closes #2576. Update link to security info on z.cash website.
|
||||
Closes #2639. Adds optional limit parameter with a default value of 50.
|
||||
Fix an issue where qa test wallet_shieldcoinbase could hang.
|
||||
Add payment disclosure as experimental feature.
|
||||
|
||||
Wladimir J. van der Laan (4):
|
||||
Make HTTP server shutdown more graceful
|
||||
http: Wait for worker threads to exit
|
||||
http: Force-exit event loop after predefined time
|
||||
http: speed up shutdown
|
||||
|
||||
156
doc/release-notes/release-notes-1.0.14-rc1.md
Normal file
156
doc/release-notes/release-notes-1.0.14-rc1.md
Normal file
@@ -0,0 +1,156 @@
|
||||
Notable changes
|
||||
===============
|
||||
|
||||
Incoming viewing keys
|
||||
---------------------
|
||||
|
||||
Support for incoming viewing keys, as described in
|
||||
[the Zcash protocol spec](https://github.com/zcash/zips/blob/master/protocol/protocol.pdf),
|
||||
has been added to the wallet.
|
||||
|
||||
Use the `z_exportviewingkey` RPC method to obtain the incoming viewing key for a
|
||||
z-address in a node's wallet. For Sprout z-addresses, these always begin with
|
||||
"ZiVK" (or "ZiVt" for testnet z-addresses). Use `z_importviewingkey` to import
|
||||
these into another node.
|
||||
|
||||
A node that possesses an incoming viewing key for a z-address can view all past
|
||||
transactions received by that address, as well as all future transactions sent
|
||||
to it, by using `z_listreceivedbyaddress`. They cannot spend any funds from the
|
||||
address. This is similar to the behaviour of "watch-only" t-addresses.
|
||||
|
||||
`z_gettotalbalance` now has an additional boolean parameter for including the
|
||||
balance of "watch-only" addresses (both transparent and shielded), which is set
|
||||
to `false` by default. `z_getbalance` has also been updated to work with
|
||||
watch-only addresses.
|
||||
|
||||
- **Caution:** for z-addresses, these balances will **not** be accurate if any
|
||||
funds have been sent from the address. This is because incoming viewing keys
|
||||
cannot detect spends, and so the "balance" is just the sum of all received
|
||||
notes, including ones that have been spent. Some future use-cases for incoming
|
||||
viewing keys will include synchronization data to keep their balances accurate
|
||||
(e.g. [#2542](https://github.com/zcash/zcash/issues/2542)).
|
||||
|
||||
Changelog
|
||||
=========
|
||||
|
||||
Anthony Towns (1):
|
||||
Add configure check for -latomic
|
||||
|
||||
Cory Fields (12):
|
||||
c++11: don't throw from the reverselock destructor
|
||||
c++11: CAccountingEntry must be defined before use in a list
|
||||
c++11: fix libbdb build against libc++ in c++11 mode
|
||||
depends: use c++11
|
||||
depends: bump OSX toolchain
|
||||
build: Split hardening/fPIE options out
|
||||
build: define base filenames for use elsewhere in the buildsystem
|
||||
build: quiet annoying warnings without adding new ones
|
||||
build: fix Windows builds without pkg-config
|
||||
build: force a c++ standard to be specified
|
||||
build: warn about variable length arrays
|
||||
build: add --enable-werror option
|
||||
|
||||
Jack Grigg (36):
|
||||
Squashed 'src/secp256k1/' changes from 84973d3..6ad5cdb
|
||||
Use g-prefixed coreutils commands if they are available
|
||||
Replace hard-coded defaults for HOST and BUILD with config.guess
|
||||
Remove manual -std=c++11 flag
|
||||
Replace "install -D" with "mkdir -p && install"
|
||||
Check if OpenMP is available before using it
|
||||
[libsnark] Use POSIX-compliant ar arguments
|
||||
Include endian-ness compatibility layer in Equihash implementation
|
||||
build: Split hardening/fPIE options out in Zcash-specific binaries
|
||||
Change --enable-werror to apply to all warnings, use it in build.sh
|
||||
Move Zcash flags into configure.ac
|
||||
ViewingKey -> ReceivingKey per zcash/zips#117
|
||||
Implement viewing key storage in the keystore
|
||||
Factor out common logic from CZCPaymentAddress and CZCSpendingKey
|
||||
Track net value entering and exiting the Sprout circuit
|
||||
Add Sprout value pool to getblock and getblockchaininfo
|
||||
Apply -fstack-protector-all to libsnark
|
||||
Add Rust and Proton to configure options printout
|
||||
Clarify operator precedence in serialization of nSproutValue
|
||||
Remove nSproutValue TODO from CDiskBlockIndex
|
||||
Add Base58 encoding of viewing keys
|
||||
Implement viewing key storage in the wallet
|
||||
Add RPC methods for exporting/importing viewing keys
|
||||
Update wallet logic to account for viewing keys
|
||||
Add watch-only support to Zcash RPC methods
|
||||
Modify zcrawkeygen RPC method to set "zcviewingkey" to the viewing key
|
||||
Cleanup: Add braces for clarity
|
||||
Add cautions to z_getbalance and z_gettotalbalance help text about viewing keys
|
||||
Add release notes for incoming viewing keys
|
||||
Create release notes starting from the previous non-beta non-RC release
|
||||
release-notes.py: Remove unnecessary parameter
|
||||
Regenerate previous release notes to conform to new format
|
||||
Exclude beta and RC release notes from author tallies
|
||||
Fix pyflakes warnings in zkey_import_export RPC test
|
||||
make-release.py: Versioning changes for 1.0.14-rc1.
|
||||
make-release.py: Updated manpages for 1.0.14-rc1.
|
||||
|
||||
Jay Graber (3):
|
||||
Add cli and rpc examples for z_sendmany
|
||||
Fix cli help result for z_shieldcoinbase
|
||||
Add rpc test that exercises z_importkey
|
||||
|
||||
Jonas Schnelli (1):
|
||||
Add compile and link options echo to configure
|
||||
|
||||
Luke Dashjr (4):
|
||||
depends: Use curl for fetching on Linux
|
||||
Travis: Use curl rather than wget for Mac SDK
|
||||
Bugfix: depends/Travis: Use --location (follow redirects) and --fail [on HTTP error response] with curl
|
||||
Travis: Use Blue Box VMs for IPv6 loopback support
|
||||
|
||||
MarcoFalke (2):
|
||||
Fix url in .travis.yml
|
||||
[depends] builders: No need to set -L and --location for curl
|
||||
|
||||
Per Grön (2):
|
||||
Deduplicate test utility method wait_and_assert_operationid_status
|
||||
Print result of RPC call in test only when PYTHON_DEBUG is set
|
||||
|
||||
René Nyffenegger (1):
|
||||
Use AC_ARG_VAR to set ARFLAGS.
|
||||
|
||||
Simon Liu (5):
|
||||
RPC dumpwallet and z_exportwallet updated to no longer allow overwriting an existing file.
|
||||
Add documentation for shielding coinbase utxos.
|
||||
Add documentation for payment disclosure.
|
||||
Closes #2759. Fixes broken pipe error with QA test wallet.py.
|
||||
Closes #2746. Payment disclosure blobs now use 'zpd:' prefix.
|
||||
|
||||
Wladimir J. van der Laan (6):
|
||||
build: Enable C++11 build, require C++11 compiler
|
||||
build: update ax_cxx_compile_stdcxx to serial 4
|
||||
test: Remove java comparison tool
|
||||
build: Remove check for `openssl/ec.h`
|
||||
devtools: Check for high-entropy ASLR in 64-bit PE executables
|
||||
build: supply `-Wl,--high-entropy-va`
|
||||
|
||||
daniel (1):
|
||||
add powerpc build support for openssl lib
|
||||
|
||||
fanquake (3):
|
||||
[build-aux] Update Boost & check macros to latest serials
|
||||
[depends] Add -stdlib=libc++ to darwin CXX flags
|
||||
[depends] Set OSX_MIN_VERSION to 10.8
|
||||
|
||||
kozyilmaz (1):
|
||||
empty spaces in PATH variable cause build failure
|
||||
|
||||
syd (13):
|
||||
Upgrade googletest to 1.8.0
|
||||
Get the sec-hard tests to run correctly.
|
||||
Update libsodium from 1.0.11 to 1.0.15
|
||||
Remove Boost conditional compilation.
|
||||
Update to address @daira comments wrt fixing configure.ac
|
||||
Get rid of consensus.fPowAllowMinDifficultyBlocks.
|
||||
Don't compile libgtest.a when building libsnark.
|
||||
Add gtests to .gitignore
|
||||
Get rid of fp3 from libsnark, it is not used.
|
||||
InitGoogleMock instead of InitGoogleTest per CR
|
||||
Get rid of underscore prefixes for include guards.
|
||||
Rename bash completion files so that they refer to zcash and not bitcoin.
|
||||
Fix libsnark test failure.
|
||||
|
||||
160
doc/release-notes/release-notes-1.0.14.md
Normal file
160
doc/release-notes/release-notes-1.0.14.md
Normal file
@@ -0,0 +1,160 @@
|
||||
Notable changes
|
||||
===============
|
||||
|
||||
Incoming viewing keys
|
||||
---------------------
|
||||
|
||||
Support for incoming viewing keys, as described in
|
||||
[the Zcash protocol spec](https://github.com/zcash/zips/blob/master/protocol/protocol.pdf),
|
||||
has been added to the wallet.
|
||||
|
||||
Use the `z_exportviewingkey` RPC method to obtain the incoming viewing key for a
|
||||
z-address in a node's wallet. For Sprout z-addresses, these always begin with
|
||||
"ZiVK" (or "ZiVt" for testnet z-addresses). Use `z_importviewingkey` to import
|
||||
these into another node.
|
||||
|
||||
A node that possesses an incoming viewing key for a z-address can view all past
|
||||
transactions received by that address, as well as all future transactions sent
|
||||
to it, by using `z_listreceivedbyaddress`. They cannot spend any funds from the
|
||||
address. This is similar to the behaviour of "watch-only" t-addresses.
|
||||
|
||||
`z_gettotalbalance` now has an additional boolean parameter for including the
|
||||
balance of "watch-only" addresses (both transparent and shielded), which is set
|
||||
to `false` by default. `z_getbalance` has also been updated to work with
|
||||
watch-only addresses.
|
||||
|
||||
- **Caution:** for z-addresses, these balances will **not** be accurate if any
|
||||
funds have been sent from the address. This is because incoming viewing keys
|
||||
cannot detect spends, and so the "balance" is just the sum of all received
|
||||
notes, including ones that have been spent. Some future use-cases for incoming
|
||||
viewing keys will include synchronization data to keep their balances accurate
|
||||
(e.g. [#2542](https://github.com/zcash/zcash/issues/2542)).
|
||||
|
||||
Changelog
|
||||
=========
|
||||
|
||||
Anthony Towns (1):
|
||||
Add configure check for -latomic
|
||||
|
||||
Cory Fields (12):
|
||||
c++11: don't throw from the reverselock destructor
|
||||
c++11: CAccountingEntry must be defined before use in a list
|
||||
c++11: fix libbdb build against libc++ in c++11 mode
|
||||
depends: use c++11
|
||||
depends: bump OSX toolchain
|
||||
build: Split hardening/fPIE options out
|
||||
build: define base filenames for use elsewhere in the buildsystem
|
||||
build: quiet annoying warnings without adding new ones
|
||||
build: fix Windows builds without pkg-config
|
||||
build: force a c++ standard to be specified
|
||||
build: warn about variable length arrays
|
||||
build: add --enable-werror option
|
||||
|
||||
Jack Grigg (40):
|
||||
Squashed 'src/secp256k1/' changes from 84973d3..6ad5cdb
|
||||
Use g-prefixed coreutils commands if they are available
|
||||
Replace hard-coded defaults for HOST and BUILD with config.guess
|
||||
Remove manual -std=c++11 flag
|
||||
Replace "install -D" with "mkdir -p && install"
|
||||
Check if OpenMP is available before using it
|
||||
[libsnark] Use POSIX-compliant ar arguments
|
||||
Include endian-ness compatibility layer in Equihash implementation
|
||||
build: Split hardening/fPIE options out in Zcash-specific binaries
|
||||
Change --enable-werror to apply to all warnings, use it in build.sh
|
||||
Move Zcash flags into configure.ac
|
||||
ViewingKey -> ReceivingKey per zcash/zips#117
|
||||
Implement viewing key storage in the keystore
|
||||
Factor out common logic from CZCPaymentAddress and CZCSpendingKey
|
||||
Track net value entering and exiting the Sprout circuit
|
||||
Add Sprout value pool to getblock and getblockchaininfo
|
||||
Apply -fstack-protector-all to libsnark
|
||||
Add Rust and Proton to configure options printout
|
||||
Clarify operator precedence in serialization of nSproutValue
|
||||
Remove nSproutValue TODO from CDiskBlockIndex
|
||||
Add Base58 encoding of viewing keys
|
||||
Implement viewing key storage in the wallet
|
||||
Add RPC methods for exporting/importing viewing keys
|
||||
Update wallet logic to account for viewing keys
|
||||
Add watch-only support to Zcash RPC methods
|
||||
Modify zcrawkeygen RPC method to set "zcviewingkey" to the viewing key
|
||||
Cleanup: Add braces for clarity
|
||||
Add cautions to z_getbalance and z_gettotalbalance help text about viewing keys
|
||||
Add release notes for incoming viewing keys
|
||||
Create release notes starting from the previous non-beta non-RC release
|
||||
release-notes.py: Remove unnecessary parameter
|
||||
Regenerate previous release notes to conform to new format
|
||||
Exclude beta and RC release notes from author tallies
|
||||
Fix pyflakes warnings in zkey_import_export RPC test
|
||||
make-release.py: Versioning changes for 1.0.14-rc1.
|
||||
make-release.py: Updated manpages for 1.0.14-rc1.
|
||||
make-release.py: Updated release notes and changelog for 1.0.14-rc1.
|
||||
Update release process
|
||||
make-release.py: Versioning changes for 1.0.14.
|
||||
make-release.py: Updated manpages for 1.0.14.
|
||||
|
||||
Jay Graber (3):
|
||||
Add cli and rpc examples for z_sendmany
|
||||
Fix cli help result for z_shieldcoinbase
|
||||
Add rpc test that exercises z_importkey
|
||||
|
||||
Jonas Schnelli (1):
|
||||
Add compile and link options echo to configure
|
||||
|
||||
Luke Dashjr (4):
|
||||
depends: Use curl for fetching on Linux
|
||||
Travis: Use curl rather than wget for Mac SDK
|
||||
Bugfix: depends/Travis: Use --location (follow redirects) and --fail [on HTTP error response] with curl
|
||||
Travis: Use Blue Box VMs for IPv6 loopback support
|
||||
|
||||
MarcoFalke (2):
|
||||
Fix url in .travis.yml
|
||||
[depends] builders: No need to set -L and --location for curl
|
||||
|
||||
Per Grön (2):
|
||||
Deduplicate test utility method wait_and_assert_operationid_status
|
||||
Print result of RPC call in test only when PYTHON_DEBUG is set
|
||||
|
||||
René Nyffenegger (1):
|
||||
Use AC_ARG_VAR to set ARFLAGS.
|
||||
|
||||
Simon Liu (5):
|
||||
RPC dumpwallet and z_exportwallet updated to no longer allow overwriting an existing file.
|
||||
Add documentation for shielding coinbase utxos.
|
||||
Add documentation for payment disclosure.
|
||||
Closes #2759. Fixes broken pipe error with QA test wallet.py.
|
||||
Closes #2746. Payment disclosure blobs now use 'zpd:' prefix.
|
||||
|
||||
Wladimir J. van der Laan (6):
|
||||
build: Enable C++11 build, require C++11 compiler
|
||||
build: update ax_cxx_compile_stdcxx to serial 4
|
||||
test: Remove java comparison tool
|
||||
build: Remove check for `openssl/ec.h`
|
||||
devtools: Check for high-entropy ASLR in 64-bit PE executables
|
||||
build: supply `-Wl,--high-entropy-va`
|
||||
|
||||
daniel (1):
|
||||
add powerpc build support for openssl lib
|
||||
|
||||
fanquake (3):
|
||||
[build-aux] Update Boost & check macros to latest serials
|
||||
[depends] Add -stdlib=libc++ to darwin CXX flags
|
||||
[depends] Set OSX_MIN_VERSION to 10.8
|
||||
|
||||
kozyilmaz (1):
|
||||
empty spaces in PATH variable cause build failure
|
||||
|
||||
syd (13):
|
||||
Upgrade googletest to 1.8.0
|
||||
Get the sec-hard tests to run correctly.
|
||||
Update libsodium from 1.0.11 to 1.0.15
|
||||
Remove Boost conditional compilation.
|
||||
Update to address @daira comments wrt fixing configure.ac
|
||||
Get rid of consensus.fPowAllowMinDifficultyBlocks.
|
||||
Don't compile libgtest.a when building libsnark.
|
||||
Add gtests to .gitignore
|
||||
Get rid of fp3 from libsnark, it is not used.
|
||||
InitGoogleMock instead of InitGoogleTest per CR
|
||||
Get rid of underscore prefixes for include guards.
|
||||
Rename bash completion files so that they refer to zcash and not bitcoin.
|
||||
Fix libsnark test failure.
|
||||
|
||||
165
doc/release-notes/release-notes-1.0.15-rc1.md
Normal file
165
doc/release-notes/release-notes-1.0.15-rc1.md
Normal file
@@ -0,0 +1,165 @@
|
||||
Notable changes
|
||||
===============
|
||||
|
||||
UTXO and note merging
|
||||
---------------------
|
||||
|
||||
In order to simplify the process of combining many small UTXOs and notes into a
|
||||
few larger ones, a new RPC method `z_mergetoaddress` has been added. It merges
|
||||
funds from t-addresses, z-addresses, or both, and sends them to a single
|
||||
t-address or z-address.
|
||||
|
||||
Unlike most other RPC methods, `z_mergetoaddress` operates over a particular
|
||||
quantity of UTXOs and notes, instead of a particular amount of ZEC. By default,
|
||||
it will merge 50 UTXOs and 10 notes at a time; these limits can be adjusted with
|
||||
the parameters `transparent_limit` and `shielded_limit`.
|
||||
|
||||
`z_mergetoaddress` also returns the number of UTXOs and notes remaining in the
|
||||
given addresses, which can be used to automate the merging process (for example,
|
||||
merging until the number of UTXOs falls below some value).
|
||||
|
||||
UTXO memory accounting
|
||||
----------------------
|
||||
|
||||
The default -dbcache has been changed in this release to 450MiB. Users can set -dbcache to a higher value (e.g. to keep the UTXO set more fully cached in memory). Users on low-memory systems (such as systems with 1GB or less) should consider specifying a lower value for this parameter.
|
||||
|
||||
Additional information relating to running on low-memory systems can be found here: [reducing-memory-usage.md](https://github.com/zcash/zcash/blob/master/doc/reducing-memory-usage.md).
|
||||
|
||||
Changelog
|
||||
=========
|
||||
|
||||
21E14 (1):
|
||||
Remove obsolete reference to CValidationState from UpdateCoins.
|
||||
|
||||
Alex Morcos (1):
|
||||
Implement helper class for CTxMemPoolEntry constructor
|
||||
|
||||
Ariel (2):
|
||||
add blake2b writer
|
||||
update SignatureHash according to Overwinter spec
|
||||
|
||||
Ashley Holman (1):
|
||||
TxMemPool: Change mapTx to a boost::multi_index_container
|
||||
|
||||
Cory Fields (2):
|
||||
chainparams: move CCheckpointData into chainparams.h
|
||||
chainparams: don't use std namespace
|
||||
|
||||
Daniel Kraft (1):
|
||||
Clean up chainparams some more.
|
||||
|
||||
Jack Grigg (38):
|
||||
Scope the ECDSA constant sizes to CPubKey / CKey classes
|
||||
Enable Bash completion for -exportdir
|
||||
Check chainValueZat when checking value pool monitoring
|
||||
Add missing namespace for boost::get
|
||||
Add viewing key prefix to regtest parameters
|
||||
zkey_import_export: Synchronize mempools before mining
|
||||
Use JoinSplitTestingSetup for Boost sighash tests
|
||||
Network upgrade activation mechanism
|
||||
Allow changing network upgrade parameters on regtest
|
||||
Test network upgrade logic
|
||||
Adjust rewind logic to use the network upgrade mechanism
|
||||
Add Overwinter to upgrade list
|
||||
Add method for fetching the next activation height after a given block height
|
||||
Use a boost::optional for nCachedBranchId
|
||||
Change UI/log status message for block rewinding
|
||||
Update quote from ZIP 200
|
||||
Update SignatureHash tests for transaction format changes
|
||||
Implement roll-back limit for reorganisation
|
||||
Add rollback limit to block index rewinding
|
||||
Remove mempool transactions which commit to an unmineable branch ID
|
||||
Remove P2WPKH and P2WSH from signing logic
|
||||
Add consensus branch ID parameter to SignatureHash, remove SigVersion parameter
|
||||
Cleanup: Wrap function arguments
|
||||
Regenerate SignatureHash tests
|
||||
Make number of inputs configurable in validatelargetx test
|
||||
Use v3 transactions with caching for validatelargetx benchmark
|
||||
Extend CWallet::GetFilteredNotes to enable filtering on a set of addresses
|
||||
Add branch IDs for current and next block to getblockchaininfo
|
||||
Check Equihash solution when loading block index
|
||||
Implement z_mergetoaddress for combining UTXOs and notes
|
||||
Gate z_mergetoaddress as an experimental feature
|
||||
Add z_mergetoaddress to release notes
|
||||
Check upgrade status in wallet_overwintertx RPC test
|
||||
Document that consensus.chaintip != consensus.nextblock just before an upgrade
|
||||
Regenerate sighash tests
|
||||
wallet_mergetoaddress: Add additional syncs to prevent race conditions
|
||||
make-release.py: Versioning changes for 1.0.15-rc1.
|
||||
make-release.py: Updated manpages for 1.0.15-rc1.
|
||||
|
||||
Jay Graber (8):
|
||||
Add getdeprecationinfo rpc call to return current version and deprecation block height.
|
||||
Make applicable only on mainnet
|
||||
Add upgrades field to RPC call getblockchaininfo
|
||||
Implement transaction expiry for Overwinter
|
||||
Add -txexpirydelta cli option
|
||||
Add mempool_tx_expiry.py test
|
||||
Add expiry to z_mergetoaddress
|
||||
Change rpc_tests to 21
|
||||
|
||||
Jonas Nick (1):
|
||||
Reduce unnecessary hashing in signrawtransaction
|
||||
|
||||
Jorge Timón (3):
|
||||
Chainparams: Introduce CreateGenesisBlock() static function
|
||||
Chainparams: CTestNetParams and CRegTestParams extend directly from CChainParams
|
||||
Mempool: Use Consensus::CheckTxInputs direclty over main::CheckInputs
|
||||
|
||||
Marius Kjærstad (1):
|
||||
Changed http:// to https:// on some links
|
||||
|
||||
Mark Friedenbach (1):
|
||||
Explicitly set tx.nVersion for the genesis block and mining tests
|
||||
|
||||
Matt Corallo (5):
|
||||
Add failing test checking timelocked-txn removal during reorg
|
||||
Fix removal of time-locked transactions during reorg
|
||||
Fix comment in removeForReorg
|
||||
Make indentation in ActivateBestChainStep readable
|
||||
removeForReorg calls once-per-disconnect-> once-per-reorg
|
||||
|
||||
Maxwell Gubler (1):
|
||||
Fix syntax examples for z_importwallet and export
|
||||
|
||||
Nicolas DORIER (1):
|
||||
Unit test for sighash caching
|
||||
|
||||
Pavel Vasin (1):
|
||||
remove unused NOBLKS_VERSION_{START,END} constants
|
||||
|
||||
Pieter Wuille (8):
|
||||
Add rewind logic to deal with post-fork software updates
|
||||
Support -checkmempool=N, which runs checks on average once every N transactions
|
||||
Report non-mandatory script failures correctly
|
||||
Refactor script validation to observe amounts
|
||||
BIP143: Verification logic
|
||||
BIP143: Signing logic
|
||||
Precompute sighashes
|
||||
Rename to PrecomputedTransactionData
|
||||
|
||||
Simon Liu (11):
|
||||
Fixes #2793. Backport commit f33afd3 to increase dbcache default.
|
||||
Add documentation about dbcache.
|
||||
Add note about dbcache to 1.0.15 release notes.
|
||||
Remove redundant service flag NODE_GETUTXO meant for Bitcoin XT.
|
||||
Implementation of Overwinter transaction format ZIP 202.
|
||||
Add test to check malformed v1 transaction against Overwinter tx parser
|
||||
Closes #2964. z_sendmany once again makes v1 tx for taddr to taddr.
|
||||
Closes #2954 and #2959. Fixes Overwinter issues in sighash_tests.
|
||||
Add field nProtocolVersion to struct NetworkUpgrade.
|
||||
Overwinter peer management and network handshaking.
|
||||
Add python qa test overwinter_peer_management.
|
||||
|
||||
Suhas Daftuar (3):
|
||||
Track coinbase spends in CTxMemPoolEntry
|
||||
Don't call removeForReorg if DisconnectTip fails
|
||||
Fix removeForReorg to use MedianTimePast
|
||||
|
||||
jc (1):
|
||||
read hashReserved from disk block index
|
||||
|
||||
syd (2):
|
||||
Fix libsnark dependency build.
|
||||
Remove OSX and Windows files from Makefile + share directory.
|
||||
|
||||
209
doc/release-notes/release-notes-1.0.15.md
Normal file
209
doc/release-notes/release-notes-1.0.15.md
Normal file
@@ -0,0 +1,209 @@
|
||||
Notable changes
|
||||
===============
|
||||
|
||||
Overwinter network upgrade
|
||||
--------------------------
|
||||
|
||||
The code preparations for the Overwinter network upgrade, as described in [ZIP
|
||||
200](https://github.com/zcash/zips/blob/master/zip-0200.rst), [ZIP
|
||||
201](https://github.com/zcash/zips/blob/master/zip-0201.rst), [ZIP
|
||||
202](https://github.com/zcash/zips/blob/master/zip-0202.rst), [ZIP
|
||||
203](https://github.com/zcash/zips/blob/master/zip-0203.rst), and [ZIP
|
||||
143](https://github.com/zcash/zips/blob/master/zip-0143.rst) are
|
||||
finished and included in this release. Overwinter will activate on testnet at
|
||||
height 207500, and can also be activated at a specific height in regtest mode
|
||||
by setting the config option `-nuparams=5ba81b19:HEIGHT`.
|
||||
|
||||
However, because the Overwinter activation height is not yet specified for
|
||||
mainnet, version 1.0.15 will behave similarly as other pre-Overwinter releases
|
||||
even after a future activation of Overwinter on the network. Upgrading from
|
||||
1.0.15 will be required in order to follow the Overwinter network upgrade on
|
||||
mainnet.
|
||||
|
||||
Overwinter transaction format
|
||||
-----------------------------
|
||||
|
||||
Once Overwinter has activated, transactions must use the new v3 format
|
||||
(including coinbase transactions). All RPC methods that create new transactions
|
||||
(such as `createrawtransaction` and `getblocktemplate`) will create v3
|
||||
transactions once the Overwinter activation height has been reached.
|
||||
|
||||
Overwinter transaction expiry
|
||||
-----------------------------
|
||||
|
||||
Overwinter transactions created by `zcashd` will also have a default expiry
|
||||
height set (the block height after which the transaction becomes invalid) of 20
|
||||
blocks after the height of the next block. This can be configured with the
|
||||
config option `-txexpirydelta`.
|
||||
|
||||
UTXO and note merging
|
||||
---------------------
|
||||
|
||||
In order to simplify the process of combining many small UTXOs and notes into a
|
||||
few larger ones, a new RPC method `z_mergetoaddress` has been added. It merges
|
||||
funds from t-addresses, z-addresses, or both, and sends them to a single
|
||||
t-address or z-address.
|
||||
|
||||
Unlike most other RPC methods, `z_mergetoaddress` operates over a particular
|
||||
quantity of UTXOs and notes, instead of a particular amount of ZEC. By default,
|
||||
it will merge 50 UTXOs and 10 notes at a time; these limits can be adjusted with
|
||||
the parameters `transparent_limit` and `shielded_limit`.
|
||||
|
||||
`z_mergetoaddress` also returns the number of UTXOs and notes remaining in the
|
||||
given addresses, which can be used to automate the merging process (for example,
|
||||
merging until the number of UTXOs falls below some value).
|
||||
|
||||
UTXO memory accounting
|
||||
----------------------
|
||||
|
||||
The default `-dbcache` has been changed in this release to 450MiB. Users can set
|
||||
`-dbcache` to a higher value (e.g. to keep the UTXO set more fully cached in
|
||||
memory). Users on low-memory systems (such as systems with 1GB or less) should
|
||||
consider specifying a lower value for this parameter.
|
||||
|
||||
Additional information relating to running on low-memory systems can be found
|
||||
here: [reducing-memory-usage.md](https://github.com/zcash/zcash/blob/master/doc/reducing-memory-usage.md).
|
||||
|
||||
Changelog
|
||||
=========
|
||||
|
||||
21E14 (1):
|
||||
Remove obsolete reference to CValidationState from UpdateCoins.
|
||||
|
||||
Alex Morcos (1):
|
||||
Implement helper class for CTxMemPoolEntry constructor
|
||||
|
||||
Ariel (2):
|
||||
add blake2b writer
|
||||
update SignatureHash according to Overwinter spec
|
||||
|
||||
Ashley Holman (1):
|
||||
TxMemPool: Change mapTx to a boost::multi_index_container
|
||||
|
||||
Cory Fields (2):
|
||||
chainparams: move CCheckpointData into chainparams.h
|
||||
chainparams: don't use std namespace
|
||||
|
||||
Daniel Kraft (1):
|
||||
Clean up chainparams some more.
|
||||
|
||||
Jack Grigg (43):
|
||||
Scope the ECDSA constant sizes to CPubKey / CKey classes
|
||||
Enable Bash completion for -exportdir
|
||||
Check chainValueZat when checking value pool monitoring
|
||||
Add missing namespace for boost::get
|
||||
Add viewing key prefix to regtest parameters
|
||||
zkey_import_export: Synchronize mempools before mining
|
||||
Use JoinSplitTestingSetup for Boost sighash tests
|
||||
Network upgrade activation mechanism
|
||||
Allow changing network upgrade parameters on regtest
|
||||
Test network upgrade logic
|
||||
Adjust rewind logic to use the network upgrade mechanism
|
||||
Add Overwinter to upgrade list
|
||||
Add method for fetching the next activation height after a given block height
|
||||
Use a boost::optional for nCachedBranchId
|
||||
Change UI/log status message for block rewinding
|
||||
Update quote from ZIP 200
|
||||
Update SignatureHash tests for transaction format changes
|
||||
Implement roll-back limit for reorganisation
|
||||
Add rollback limit to block index rewinding
|
||||
Remove mempool transactions which commit to an unmineable branch ID
|
||||
Remove P2WPKH and P2WSH from signing logic
|
||||
Add consensus branch ID parameter to SignatureHash, remove SigVersion parameter
|
||||
Cleanup: Wrap function arguments
|
||||
Regenerate SignatureHash tests
|
||||
Make number of inputs configurable in validatelargetx test
|
||||
Use v3 transactions with caching for validatelargetx benchmark
|
||||
Extend CWallet::GetFilteredNotes to enable filtering on a set of addresses
|
||||
Add branch IDs for current and next block to getblockchaininfo
|
||||
Check Equihash solution when loading block index
|
||||
Implement z_mergetoaddress for combining UTXOs and notes
|
||||
Gate z_mergetoaddress as an experimental feature
|
||||
Add z_mergetoaddress to release notes
|
||||
Check upgrade status in wallet_overwintertx RPC test
|
||||
Document that consensus.chaintip != consensus.nextblock just before an upgrade
|
||||
Regenerate sighash tests
|
||||
wallet_mergetoaddress: Add additional syncs to prevent race conditions
|
||||
make-release.py: Versioning changes for 1.0.15-rc1.
|
||||
make-release.py: Updated manpages for 1.0.15-rc1.
|
||||
make-release.py: Updated release notes and changelog for 1.0.15-rc1.
|
||||
Use block hash comparison for consistency check when loading block index
|
||||
Overwinter release notes and testnet activation height
|
||||
make-release.py: Versioning changes for 1.0.15.
|
||||
make-release.py: Updated manpages for 1.0.15.
|
||||
|
||||
Jay Graber (8):
|
||||
Add getdeprecationinfo rpc call to return current version and deprecation block height.
|
||||
Make applicable only on mainnet
|
||||
Add upgrades field to RPC call getblockchaininfo
|
||||
Implement transaction expiry for Overwinter
|
||||
Add -txexpirydelta cli option
|
||||
Add mempool_tx_expiry.py test
|
||||
Add expiry to z_mergetoaddress
|
||||
Change rpc_tests to 21
|
||||
|
||||
Jonas Nick (1):
|
||||
Reduce unnecessary hashing in signrawtransaction
|
||||
|
||||
Jorge Timón (3):
|
||||
Chainparams: Introduce CreateGenesisBlock() static function
|
||||
Chainparams: CTestNetParams and CRegTestParams extend directly from CChainParams
|
||||
Mempool: Use Consensus::CheckTxInputs direclty over main::CheckInputs
|
||||
|
||||
Marius Kjærstad (1):
|
||||
Changed http:// to https:// on some links
|
||||
|
||||
Mark Friedenbach (1):
|
||||
Explicitly set tx.nVersion for the genesis block and mining tests
|
||||
|
||||
Matt Corallo (5):
|
||||
Add failing test checking timelocked-txn removal during reorg
|
||||
Fix removal of time-locked transactions during reorg
|
||||
Fix comment in removeForReorg
|
||||
Make indentation in ActivateBestChainStep readable
|
||||
removeForReorg calls once-per-disconnect-> once-per-reorg
|
||||
|
||||
Maxwell Gubler (1):
|
||||
Fix syntax examples for z_importwallet and export
|
||||
|
||||
Nicolas DORIER (1):
|
||||
Unit test for sighash caching
|
||||
|
||||
Pavel Vasin (1):
|
||||
remove unused NOBLKS_VERSION_{START,END} constants
|
||||
|
||||
Pieter Wuille (8):
|
||||
Add rewind logic to deal with post-fork software updates
|
||||
Support -checkmempool=N, which runs checks on average once every N transactions
|
||||
Report non-mandatory script failures correctly
|
||||
Refactor script validation to observe amounts
|
||||
BIP143: Verification logic
|
||||
BIP143: Signing logic
|
||||
Precompute sighashes
|
||||
Rename to PrecomputedTransactionData
|
||||
|
||||
Simon Liu (11):
|
||||
Fixes #2793. Backport commit f33afd3 to increase dbcache default.
|
||||
Add documentation about dbcache.
|
||||
Add note about dbcache to 1.0.15 release notes.
|
||||
Remove redundant service flag NODE_GETUTXO meant for Bitcoin XT.
|
||||
Implementation of Overwinter transaction format ZIP 202.
|
||||
Add test to check malformed v1 transaction against Overwinter tx parser
|
||||
Closes #2964. z_sendmany once again makes v1 tx for taddr to taddr.
|
||||
Closes #2954 and #2959. Fixes Overwinter issues in sighash_tests.
|
||||
Add field nProtocolVersion to struct NetworkUpgrade.
|
||||
Overwinter peer management and network handshaking.
|
||||
Add python qa test overwinter_peer_management.
|
||||
|
||||
Suhas Daftuar (3):
|
||||
Track coinbase spends in CTxMemPoolEntry
|
||||
Don't call removeForReorg if DisconnectTip fails
|
||||
Fix removeForReorg to use MedianTimePast
|
||||
|
||||
jc (1):
|
||||
read hashReserved from disk block index
|
||||
|
||||
syd (2):
|
||||
Fix libsnark dependency build.
|
||||
Remove OSX and Windows files from Makefile + share directory.
|
||||
|
||||
16
doc/release-notes/release-notes-1.0.8-1.md
Normal file
16
doc/release-notes/release-notes-1.0.8-1.md
Normal file
@@ -0,0 +1,16 @@
|
||||
Daira Hopwood (3):
|
||||
Don't rely on a finite upper bound on fee rate or priority.
|
||||
Simplify JoinSplit priority calculation. refs 1896
|
||||
Add check for JoinSplit priority as calculated by CCoinsViewCache::GetPriority.
|
||||
|
||||
Jack Grigg (1):
|
||||
Use a larger -rpcclienttimeout for slow performance measurements
|
||||
|
||||
Nathan Wilcox (2):
|
||||
Bump version numbers for v1.0.8-1.
|
||||
Commit the changes from gen-manpages.sh, except manually tweak the version strings.
|
||||
|
||||
str4d (2):
|
||||
Update tests to check actual infinity as well as INF_FEERATE
|
||||
Add unit test for security issue 2017-04-11.a
|
||||
|
||||
90
doc/release-notes/release-notes-1.0.9.md
Normal file
90
doc/release-notes/release-notes-1.0.9.md
Normal file
@@ -0,0 +1,90 @@
|
||||
Amgad Abdelhafez (2):
|
||||
Update timedata.cpp
|
||||
Update timedata.cpp
|
||||
|
||||
Daira Hopwood (4):
|
||||
Fix an error reporting bug due to BrokenPipeError and ConnectionResetError not existing in Python 2. refs #2263
|
||||
Alert 1002 (versions 1.0.0-1.0.2 inclusive).
|
||||
Alert 1003 (versions 1.0.3-1.0.8 inclusive).
|
||||
Disable building Proton by default.
|
||||
|
||||
Jack Grigg (14):
|
||||
Fix prioritisetransaction RPC test
|
||||
torcontrol: Handle escapes in Tor QuotedStrings
|
||||
torcontrol: Add missing copyright header
|
||||
Convert Zcash versions to Debian format
|
||||
[manpage] Handle build numbers in versions
|
||||
Address Daira's comments
|
||||
Address Daira's further comments
|
||||
Correctly handle three-digit octals with leading digit 4-7
|
||||
Check that >3-digit octals are truncated.
|
||||
Implement automatic shutdown of deprecated Zcash versions
|
||||
Wrap messages nicely on metrics screen
|
||||
Regenerate miner tests
|
||||
Add a benchmark for calling ConnectBlock on a block with many inputs
|
||||
Remove additional sources of determinism from benchmark archive
|
||||
|
||||
Jay Graber (2):
|
||||
Change help text examples to use Zcash addresses
|
||||
Poll on getblocktemplate result rather than use bare sleep to avoid race condition.
|
||||
|
||||
Nathan Wilcox (39):
|
||||
[Direct master commit] Fix a release snafu in debian version string.
|
||||
Show toolchain versions in build.sh.
|
||||
Start on a make-release.py script; currently just arg parsing and unittests [unittests fail].
|
||||
Update version spec by altering test; also update regex to pass single 0 digits in major/minor/patch.
|
||||
Add another case from debian-style versions.
|
||||
Add all of the zcash release tags in my current repo as positive test vector.
|
||||
Add support for beta/rc release versions.
|
||||
Add version sorting, assert that RELEASE_PREV is the most recent release.
|
||||
Make SystemExit errors less redundant in output; verify clean git status on master.
|
||||
Always run unittests prior to actual runs.
|
||||
Make --help output clean by not running self-test.
|
||||
Add an option to run against a different repo directory.
|
||||
Make sure to pull the latest master.
|
||||
Exit instead of raising an unexpected exception, since it's already logged.
|
||||
Implement `PathPatcher` abstraction, `clientversion.h` rewrite, and build numbering w/ unittests.
|
||||
Implement the IS_RELEASE rule for betas.
|
||||
Generalize buildnum patching for both `clientversion.h` and `configure.ac`.
|
||||
Modify the `APPROX_RELEASE_HEIGHT`.
|
||||
Remove portions of `./doc/release-process.md` now implemented in `make-release.py`.
|
||||
Switch from `sh_out_logged` to `sh_log`.
|
||||
Shorten the arg log line.
|
||||
Commit the version changes and build.
|
||||
Generate manpages; commit that; improve error output in sh_log.
|
||||
Polish logging a bit more.
|
||||
Tidy up / systematize logging output a bit more.
|
||||
First full-release-branch version of script; rewrite large swatch of release-process.md. [Manually tested.]
|
||||
Enable set -u mode.
|
||||
Fix a variable name typo.
|
||||
Reuse zcash_rpc.
|
||||
Do not use `-rpcwait` on all `zcash_rpc` invocations, only block when starting zcashd.
|
||||
Fix `release-process.md` doc usage for `make-release.py` to have correct arguments and order.
|
||||
Include release version in commit comments.
|
||||
Examine all future versions which are assumed to follow the same Version parser schema.
|
||||
Consider both beta and rc versions to be `IS_RELEASE == false`.
|
||||
Add a few more version strings to positive parser test.
|
||||
Define the deprecation policy for 1.0.9.
|
||||
Clarify that the feature is automated *shutdown*.
|
||||
make-release.py: Versioning changes for 1.0.9.
|
||||
make-release.py: Updated manpages for 1.0.9.
|
||||
|
||||
Paige Peterson (4):
|
||||
wallet backup instructions
|
||||
typo and rewording edits
|
||||
str4d and Ariel's suggestions
|
||||
specify exportdir being within homedirectory
|
||||
|
||||
Sean Bowe (1):
|
||||
Check that pairings work properly when the G1 point is at infinity.
|
||||
|
||||
Simon Liu (5):
|
||||
Add AMQP 1.0 support via Apache Qpid Proton C++ API 0.17.0
|
||||
Add --disable-proton flag to build.sh. Proton has build/linker issues with gcc 4.9.2 and requires gcc 5.x.
|
||||
Fix proton build issue with debian jessie, as used on CI servers.
|
||||
Change regtest port to 18344. Closes #2269.
|
||||
Patch to build Proton with minimal dependencies.
|
||||
|
||||
emilrus (1):
|
||||
Replace bitcoind with zcashd
|
||||
|
||||
@@ -2,125 +2,132 @@ Release Process
|
||||
====================
|
||||
Meta: There should always be a single release engineer to disambiguate responsibility.
|
||||
|
||||
If this is a hotfix release, please see `./hotfix-process.md` before proceeding.
|
||||
|
||||
## Pre-release
|
||||
|
||||
The following should have been checked well in advance of the release:
|
||||
### Github Milestone
|
||||
|
||||
- All dependencies have been updated as appropriate:
|
||||
- BDB
|
||||
- Boost
|
||||
- ccache
|
||||
- libgmp
|
||||
- libsnark (upstream of our fork)
|
||||
- libsodium
|
||||
- miniupnpc
|
||||
- OpenSSL
|
||||
Ensure all goals for the github milestone are met. If not, remove tickets
|
||||
or PRs with a comment as to why it is not included. (Running out of time
|
||||
is a common reason.)
|
||||
|
||||
### Pre-release checklist:
|
||||
|
||||
Check that dependencies are properly hosted by looking at the `check-depends` builder:
|
||||
|
||||
https://ci.z.cash/#/builders/1
|
||||
|
||||
Check that there are no surprising performance regressions:
|
||||
|
||||
https://speed.z.cash
|
||||
|
||||
Ensure that new performance metrics appear on that site.
|
||||
|
||||
### Protocol Safety Checks:
|
||||
|
||||
If this release changes the behavior of the protocol or fixes a serious
|
||||
bug, verify that a pre-release PR merge updated `PROTOCOL_VERSION` in
|
||||
`version.h` correctly.
|
||||
|
||||
If this release breaks backwards compatibility or needs to prevent
|
||||
interaction with software forked projects, change the network magic
|
||||
numbers. Set the four `pchMessageStart` in `CTestNetParams` in
|
||||
`chainparams.cpp` to random values.
|
||||
|
||||
Both of these should be done in standard PRs ahead of the release
|
||||
process. If these were not anticipated correctly, this could block the
|
||||
release, so if you suspect this is necessary, double check with the
|
||||
whole engineering team.
|
||||
|
||||
## Release dependencies
|
||||
|
||||
The release script has the following dependencies:
|
||||
|
||||
- `help2man`
|
||||
- `debchange` (part of the devscripts Debian package)
|
||||
|
||||
You can optionally install the `progressbar2` Python module with pip to have a
|
||||
progress bar displayed during the build process.
|
||||
|
||||
## Release process
|
||||
|
||||
## A. Define the release version as:
|
||||
In the commands below, <RELEASE> and <RELEASE_PREV> are prefixed with a v, ie.
|
||||
v1.0.9 (not 1.0.9).
|
||||
|
||||
$ ZCASH_RELEASE=MAJOR.MINOR.REVISION(-BUILD_STRING)
|
||||
### Create the release branch
|
||||
|
||||
Example:
|
||||
Run the release script, which will verify you are on the latest clean
|
||||
checkout of master, create a branch, then commit standard automated
|
||||
changes to that branch locally:
|
||||
|
||||
$ ZCASH_RELEASE=1.0.0-beta2
|
||||
$ ./zcutil/make-release.py <RELEASE> <RELEASE_PREV> <RELEASE_FROM> <APPROX_RELEASE_HEIGHT>
|
||||
|
||||
Also, the following commands use the `ZCASH_RELEASE_PREV` bash variable for the
|
||||
previous release:
|
||||
Examples:
|
||||
|
||||
$ ZCASH_RELEASE_PREV=1.0.0-beta1
|
||||
$ ./zcutil/make-release.py v1.0.9 v1.0.8-1 v1.0.8-1 120000
|
||||
$ ./zcutil/make-release.py v1.0.13 v1.0.13-rc1 v1.0.12 222900
|
||||
|
||||
## B. Create a new release branch / github PR
|
||||
### Create, Review, and Merge the release branch pull request
|
||||
|
||||
### B1. Check that you are up-to-date with current master, then create a release branch.
|
||||
Review the automated changes in git:
|
||||
|
||||
### B2. Update (commit) version in sources.
|
||||
$ git log master..HEAD
|
||||
|
||||
README.md
|
||||
src/clientversion.h
|
||||
configure.ac
|
||||
contrib/gitian-descriptors/gitian-linux.yml
|
||||
Push the resulting branch to github:
|
||||
|
||||
In `configure.ac` and `clientversion.h`:
|
||||
$ git push 'git@github.com:$YOUR_GITHUB_NAME/zcash' $(git rev-parse --abbrev-ref HEAD)
|
||||
|
||||
- Increment `CLIENT_VERSION_BUILD` according to the following schema:
|
||||
Then create the PR on github. Complete the standard review process,
|
||||
then merge, then wait for CI to complete.
|
||||
|
||||
- 0-24: `1.0.0-beta1`-`1.0.0-beta25`
|
||||
- 25-49: `1.0.0-rc1`-`1.0.0-rc25`
|
||||
- 50: `1.0.0`
|
||||
- 51-99: `1.0.0-1`-`1.0.0-49`
|
||||
- (`CLIENT_VERSION_REVISION` rolls over)
|
||||
- 0-24: `1.0.1-beta1`-`1.0.1-beta25`
|
||||
|
||||
- Change `CLIENT_VERSION_IS_RELEASE` to false while Zcash is in beta-test phase.
|
||||
|
||||
If this release changes the behavior of the protocol or fixes a serious bug, we may
|
||||
also wish to change the `PROTOCOL_VERSION` in `version.h`.
|
||||
|
||||
Commit these changes. (Be sure to do this before building, or else the built binary will include the flag `-dirty`)
|
||||
|
||||
Build by running `./zcutil/build.sh`.
|
||||
|
||||
Then perform the following command:
|
||||
|
||||
$ bash contrib/devtools/gen-manpages.sh
|
||||
|
||||
Commit the changes.
|
||||
|
||||
### B3. Generate release notes
|
||||
|
||||
Run the release-notes.py script to generate release notes and update authors.md file. For example:
|
||||
|
||||
$ python zcutil/release-notes.py --version $ZCASH_RELEASE
|
||||
|
||||
Add the newly created release notes to the Git repository:
|
||||
|
||||
$ git add doc/release-notes/release-notes-$ZCASH_RELEASE.md
|
||||
|
||||
Update the Debian package changelog:
|
||||
|
||||
export DEBVERSION="${ZCASH_RELEASE}"
|
||||
export DEBEMAIL="${DEBEMAIL:-team@z.cash}"
|
||||
export DEBFULLNAME="${DEBFULLNAME:-Zcash Company}"
|
||||
|
||||
dch -v $DEBVERSION -D jessie -c contrib/debian/changelog
|
||||
|
||||
(`dch` comes from the devscripts package.)
|
||||
|
||||
### B4. Change the network magics
|
||||
|
||||
If this release breaks backwards compatibility, change the network magic
|
||||
numbers. Set the four `pchMessageStart` in `CTestNetParams` in `chainparams.cpp`
|
||||
to random values.
|
||||
|
||||
### B5. Merge the previous changes
|
||||
|
||||
Do the normal pull-request, review, testing process for this release PR.
|
||||
|
||||
## C. Verify code artifact hosting
|
||||
|
||||
### C1. Ensure depends tree is working
|
||||
|
||||
https://ci.z.cash/builders/depends-sources
|
||||
|
||||
### C2. Ensure public parameters work
|
||||
|
||||
Run `./fetch-params.sh`.
|
||||
|
||||
## D. Make tag for the newly merged result
|
||||
## Make tag for the newly merged result
|
||||
|
||||
Checkout master and pull the latest version to ensure master is up to date with the release PR which was merged in before.
|
||||
|
||||
Check the last commit on the local and remote versions of master to make sure they are the same.
|
||||
$ git checkout master
|
||||
$ git pull --ff-only
|
||||
|
||||
Then create the git tag:
|
||||
Check the last commit on the local and remote versions of master to make sure they are the same:
|
||||
|
||||
$ git tag -s v${ZCASH_RELEASE}
|
||||
$ git push origin v${ZCASH_RELEASE}
|
||||
$ git log -1
|
||||
|
||||
## E. Deploy testnet
|
||||
The output should include something like, which is created by Homu:
|
||||
|
||||
Auto merge of #4242 - nathan-at-least:release-v1.0.9, r=nathan-at-least
|
||||
|
||||
Then create the git tag. The `-s` means the release tag will be
|
||||
signed. **CAUTION:** Remember the `v` at the beginning here:
|
||||
|
||||
$ git tag -s v1.0.9
|
||||
$ git push origin v1.0.9
|
||||
|
||||
## Make and deploy deterministic builds
|
||||
|
||||
- Run the [Gitian deterministic build environment](https://github.com/zcash/zcash-gitian)
|
||||
- Compare the uploaded [build manifests on gitian.sigs](https://github.com/zcash/gitian.sigs)
|
||||
- If all is well, the DevOps engineer will build the Debian packages and update the
|
||||
[apt.z.cash package repository](https://apt.z.cash).
|
||||
|
||||
## Add release notes to GitHub
|
||||
|
||||
- Go to the [GitHub tags page](https://github.com/zcash/zcash/tags).
|
||||
- Click "Add release notes" beside the tag for this release.
|
||||
- Copy the release blog post into the release description, and edit to suit
|
||||
publication on GitHub. See previous release notes for examples.
|
||||
- Click "Publish release" if publishing the release blog post now, or
|
||||
"Save draft" to store the notes internally (and then return later to publish
|
||||
once the blog post is up).
|
||||
|
||||
Note that some GitHub releases are marked as "Verified", and others as
|
||||
"Unverified". This is related to the GPG signature on the release tag - in
|
||||
particular, GitHub needs the corresponding public key to be uploaded to a
|
||||
corresponding GitHub account. If this release is marked as "Unverified", click
|
||||
the marking to see what GitHub wants to be done.
|
||||
|
||||
## Post Release Task List
|
||||
|
||||
### Deploy testnet
|
||||
|
||||
Notify the Zcash DevOps engineer/sysadmin that the release has been tagged. They update some variables in the company's automation code and then run an Ansible playbook, which:
|
||||
|
||||
@@ -131,26 +138,12 @@ Notify the Zcash DevOps engineer/sysadmin that the release has been tagged. They
|
||||
|
||||
Then, verify that nodes can connect to the testnet server, and update the guide on the wiki to ensure the correct hostname is listed in the recommended zcash.conf.
|
||||
|
||||
## F. Update the 1.0 User Guide
|
||||
### Update the 1.0 User Guide
|
||||
|
||||
## G. Publish the release announcement (blog, zcash-dev, slack)
|
||||
This also means updating [the translations](https://github.com/zcash/zcash-docs).
|
||||
Coordinate with the translation team for now. Suggestions for improving this
|
||||
part of the process should be added to #2596.
|
||||
|
||||
### G1. Check in with users who opened issues that were resolved in the release
|
||||
### Publish the release announcement (blog, github, zcash-dev, slack)
|
||||
|
||||
Contact all users who opened `user support` issues that were resolved in the release, and ask them if the release fixes or improves their issue.
|
||||
|
||||
## H. Make and deploy deterministic builds
|
||||
|
||||
- Run the [Gitian deterministic build environment](https://github.com/zcash/zcash-gitian)
|
||||
- Compare the uploaded [build manifests on gitian.sigs](https://github.com/zcash/gitian.sigs)
|
||||
- If all is well, the DevOps engineer will build the Debian packages and update the
|
||||
[apt.z.cash package repository](https://apt.z.cash).
|
||||
|
||||
## I. Celebrate
|
||||
|
||||
## missing steps
|
||||
Zcash still needs:
|
||||
|
||||
* thorough pre-release testing (presumably more thorough than standard PR tests)
|
||||
|
||||
* automated release deployment (e.g.: updating build-depends mirror, deploying testnet, etc...)
|
||||
## Celebrate
|
||||
|
||||
@@ -42,7 +42,7 @@ Wallet encryption is disabled, for several reasons:
|
||||
|
||||
You should use full-disk encryption (or encryption of your home directory) to
|
||||
protect your wallet at rest, and should assume (even unprivileged) users who are
|
||||
runnng on your OS can read your wallet.dat file.
|
||||
running on your OS can read your wallet.dat file.
|
||||
|
||||
Side-Channel Attacks
|
||||
--------------------
|
||||
|
||||
101
doc/shield-coinbase.md
Normal file
101
doc/shield-coinbase.md
Normal file
@@ -0,0 +1,101 @@
|
||||
# Shielding Coinbase UTXOs
|
||||
|
||||
**Summary**
|
||||
|
||||
Use `z_shieldcoinbase` RPC call to shield coinbase UTXOs.
|
||||
|
||||
**Who should read this document**
|
||||
|
||||
Miners, Mining pools, Online wallets
|
||||
|
||||
## Background
|
||||
|
||||
The current Zcash protocol includes a consensus rule that coinbase rewards must be sent to a shielded address.
|
||||
|
||||
## User Experience Challenges
|
||||
|
||||
A user can use the z_sendmany RPC call to shield coinbase funds, but the call was not designed for sweeping up many UTXOs, and offered a suboptimal user experience.
|
||||
|
||||
If customers send mining pool payouts to their online wallet, the service provider must sort through UTXOs to correctly determine the non-coinbase UTXO funds that can be withdrawn or transferred by customers to another transparent address.
|
||||
|
||||
## Solution
|
||||
|
||||
The z_shieldcoinbase call makes it easy to sweep up coinbase rewards from multiple coinbase UTXOs across multiple coinbase reward addresses.
|
||||
|
||||
z_shieldcoinbase fromaddress toaddress (fee) (limit)
|
||||
|
||||
The default fee is 0.0010000 ZEC and the default limit on the maximum number of UTXOs to shield is 50.
|
||||
|
||||
## Examples
|
||||
|
||||
Sweep up coinbase UTXOs from a transparent address you use for mining:
|
||||
|
||||
zcash-cli z_shieldcoinbase tMyMiningAddress zMyPrivateAddress
|
||||
|
||||
Sweep up coinbase UTXOs from multiple transparent addresses to a shielded address:
|
||||
|
||||
zcash-cli z_shieldcoinbase "*" zMyPrivateAddress
|
||||
|
||||
Sweep up with a fee of 1.23 ZEC:
|
||||
|
||||
zcash-cli z_shieldcoinbase tMyMiningAddress zMyPrivateAddress 1.23
|
||||
|
||||
Sweep up with a fee of 0.1 ZEC and set limit on the maximum number of UTXOs to shield at 25:
|
||||
|
||||
zcash-cli z_shieldcoinbase "*" zMyPrivateAddress 0.1 25
|
||||
|
||||
### Asynchronous Call
|
||||
|
||||
The `z_shieldcoinbase` RPC call is an asynchronous call, so you can queue up multiple operations.
|
||||
|
||||
When you invoke
|
||||
|
||||
zcash-cli z_shieldcoinbase tMyMiningAddress zMyPrivateAddress
|
||||
|
||||
JSON will be returned immediately, with the following data fields populated:
|
||||
|
||||
- operationid: a temporary id to use with `z_getoperationstatus` and `z_getoperationresult` to get the status and result of the operation.
|
||||
- shieldedUTXOs: number of coinbase UTXOs being shielded
|
||||
- shieldedValue: value of coinbase UTXOs being shielded.
|
||||
- remainingUTXOs: number of coinbase UTXOs still available for shielding.
|
||||
- remainingValue: value of coinbase UTXOs still available for shielding
|
||||
|
||||
### Locking UTXOs
|
||||
|
||||
The `z_shieldcoinbase` call will lock any selected UTXOs. This prevents the selected UTXOs which are already queued up from being selected for any other send operation. If the `z_shieldcoinbase` call fails, any locked UTXOs are unlocked.
|
||||
|
||||
You can use the RPC call `lockunspent` to see which UTXOs have been locked. You can also use this call to unlock any UTXOs in the event of an unexpected system failure which leaves UTXOs in a locked state.
|
||||
|
||||
### Limits, Performance and Transaction Confirmation
|
||||
|
||||
The number of coinbase UTXOs selected for shielding can be adjusted by setting the limit parameter. The default value is 50.
|
||||
|
||||
If the limit parameter is set to zero, the zcashd `mempooltxinputlimit` option will be used instead, where the default value for `mempooltxinputlimit` is zero, which means no limit.
|
||||
|
||||
Any limit is constrained by a hard limit due to the consensus rule defining a maximum transaction size of 100,000 bytes.
|
||||
|
||||
In general, the more UTXOs that are selected, the longer it takes for the transaction to be verified. Due to the quadratic hashing problem, some miners use the `mempooltxinputlimit` option to reject transactions with a large number of UTXO inputs.
|
||||
|
||||
Currently, as of November 2017, there is no commonly agreed upon limit, but as a rule of thumb (a form of emergent consensus) if a transaction has less than 100 UTXO inputs, the transaction will be mined promptly by the majority of mining pools, but if it has many more UTXO inputs, such as 500, it might take several days to be mined by a miner who has higher or no limits.
|
||||
|
||||
### Anatomy of a z_shieldcoinbase transaction
|
||||
|
||||
The transaction created is a shielded transaction. It consists of a single joinsplit, which consumes coinbase UTXOs as input, and deposits value at a shielded address, minus any fee.
|
||||
|
||||
The number of coinbase UTXOs is determined by a user configured limit.
|
||||
|
||||
If no limit is set (in the case when limit parameter and `mempooltxinputlimit` options are set to zero) the behaviour of z_shieldcoinbase is to consume as many UTXOs as possible, with `z_shieldcoinbase` constructing a transaction up to the size limit of 100,000 bytes.
|
||||
|
||||
As a result, the maximum number of inputs that can be selected is:
|
||||
|
||||
- P2PKH coinbase UTXOs ~ 662
|
||||
- 2-of-3 multisig P2SH coinbase UTXOs ~ 244.
|
||||
|
||||
Here is an example of using `z_shieldcoinbase` on testnet to shield multi-sig coinbase UTXOs.
|
||||
|
||||
- Block 141042 is almost ~2 MB in size (the maximum size for a block) and contains 1 coinbase reward transaction and 20 transactions, each indivually created by a call to z_shieldcoinbase.
|
||||
- https://explorer.testnet.z.cash/block/0050552a78e97c89f666713c8448d49ad1d7263274422272696187dedf6c0d03
|
||||
- Drilling down into a transaction, you can see there is one joinsplit, with 244 inputs (vin) and 0 outputs (vout).
|
||||
- https://explorer.testnet.z.cash/tx/cf4f3da2e434f68b6e361303403344e22a9ff9a8fda9abc180d9520d0ca6527d
|
||||
|
||||
|
||||
56
doc/tor.md
56
doc/tor.md
@@ -1,18 +1,18 @@
|
||||
*** Warning: Do not assume Tor support does the correct thing in Zcash; better Tor support is a future feature goal. ***
|
||||
*** Warning: Do not assume Tor support does the correct thing in Komodo; better Tor support is a future feature goal. ***
|
||||
|
||||
TOR SUPPORT IN ZCASH
|
||||
====================
|
||||
|
||||
It is possible to run Zcash as a Tor hidden service, and connect to such services.
|
||||
It is possible to run Komodo as a Tor hidden service, and connect to such services.
|
||||
|
||||
The following directions assume you have a Tor proxy running on port 9050. Many distributions default to having a SOCKS proxy listening on port 9050, but others may not. In particular, the Tor Browser Bundle defaults to listening on port 9150. See [Tor Project FAQ:TBBSocksPort](https://www.torproject.org/docs/faq.html.en#TBBSocksPort) for how to properly
|
||||
configure Tor.
|
||||
|
||||
|
||||
1. Run Zcash behind a Tor proxy
|
||||
1. Run Komodo behind a Tor proxy
|
||||
-------------------------------
|
||||
|
||||
The first step is running Zcash behind a Tor proxy. This will already make all
|
||||
The first step is running Komodo behind a Tor proxy. This will already make all
|
||||
outgoing connections be anonymized, but more is possible.
|
||||
|
||||
-proxy=ip:port Set the proxy server. If SOCKS5 is selected (default), this proxy
|
||||
@@ -33,10 +33,10 @@ outgoing connections be anonymized, but more is possible.
|
||||
|
||||
In a typical situation, this suffices to run behind a Tor proxy:
|
||||
|
||||
./zcashd -proxy=127.0.0.1:9050
|
||||
./komodod -proxy=127.0.0.1:9050
|
||||
|
||||
|
||||
2. Run a Zcash hidden server
|
||||
2. Run a Komodo hidden server
|
||||
----------------------------
|
||||
|
||||
If you configure your Tor system accordingly, it is possible to make your node also
|
||||
@@ -44,13 +44,13 @@ reachable from the Tor network. Add these lines to your /etc/tor/torrc (or equiv
|
||||
config file):
|
||||
|
||||
HiddenServiceDir /var/lib/tor/zcash-service/
|
||||
HiddenServicePort 8233 127.0.0.1:8233
|
||||
HiddenServicePort 18233 127.0.0.1:18233
|
||||
HiddenServicePort 7771 127.0.0.1:7771
|
||||
HiddenServicePort 17771 127.0.0.1:17771
|
||||
|
||||
The directory can be different of course, but (both) port numbers should be equal to
|
||||
your zcashd's P2P listen port (8233 by default).
|
||||
your komodod's P2P listen port (7771 by default).
|
||||
|
||||
-externalip=X You can tell Zcash about its publicly reachable address using
|
||||
-externalip=X You can tell Komodo about its publicly reachable address using
|
||||
this option, and this can be a .onion address. Given the above
|
||||
configuration, you can find your onion address in
|
||||
/var/lib/tor/zcash-service/hostname. Onion addresses are given
|
||||
@@ -70,25 +70,25 @@ your zcashd's P2P listen port (8233 by default).
|
||||
|
||||
In a typical situation, where you're only reachable via Tor, this should suffice:
|
||||
|
||||
./zcashd -proxy=127.0.0.1:9050 -externalip=zctestseie6wxgio.onion -listen
|
||||
./komodod -proxy=127.0.0.1:9050 -externalip=zctestseie6wxgio.onion -listen
|
||||
|
||||
(obviously, replace the Onion address with your own). It should be noted that you still
|
||||
listen on all devices and another node could establish a clearnet connection, when knowing
|
||||
your address. To mitigate this, additionally bind the address of your Tor proxy:
|
||||
|
||||
./bitcoind ... -bind=127.0.0.1
|
||||
./zcashd ... -bind=127.0.0.1
|
||||
|
||||
If you don't care too much about hiding your node, and want to be reachable on IPv4
|
||||
as well, use `discover` instead:
|
||||
|
||||
./zcashd ... -discover
|
||||
./komodod ... -discover
|
||||
|
||||
and open port 8233 on your firewall (or use -upnp).
|
||||
and open port 7771 on your firewall (or use -upnp).
|
||||
|
||||
If you only want to use Tor to reach onion addresses, but not use it as a proxy
|
||||
for normal IPv4/IPv6 communication, use:
|
||||
|
||||
./zcashd -onion=127.0.0.1:9050 -externalip=zctestseie6wxgio.onion -discover
|
||||
./komodod -onion=127.0.0.1:9050 -externalip=zctestseie6wxgio.onion -discover
|
||||
|
||||
|
||||
3. Automatically listen on Tor
|
||||
@@ -96,47 +96,47 @@ for normal IPv4/IPv6 communication, use:
|
||||
|
||||
Starting with Tor version 0.2.7.1 it is possible, through Tor's control socket
|
||||
API, to create and destroy 'ephemeral' hidden services programmatically.
|
||||
Zcash has been updated to make use of this.
|
||||
Komodo has been updated to make use of this.
|
||||
|
||||
This means that if Tor is running (and proper authentication has been configured),
|
||||
Zcash automatically creates a hidden service to listen on. Zcash will also use Tor
|
||||
Komodo automatically creates a hidden service to listen on. Komodo will also use Tor
|
||||
automatically to connect to other .onion nodes if the control socket can be
|
||||
successfully opened. This will positively affect the number of available .onion
|
||||
nodes and their usage.
|
||||
|
||||
This new feature is enabled by default if Zcash is listening (`-listen`), and
|
||||
This new feature is enabled by default if Komodo is listening (`-listen`), and
|
||||
requires a Tor connection to work. It can be explicitly disabled with `-listenonion=0`
|
||||
and, if not disabled, configured using the `-torcontrol` and `-torpassword` settings.
|
||||
To show verbose debugging information, pass `-debug=tor`.
|
||||
|
||||
Connecting to Tor's control socket API requires one of two authentication methods to be
|
||||
configured. For cookie authentication the user running zcashd must have write access
|
||||
configured. For cookie authentication the user running komodod must have write access
|
||||
to the `CookieAuthFile` specified in Tor configuration. In some cases this is
|
||||
preconfigured and the creation of a hidden service is automatic. If permission problems
|
||||
are seen with `-debug=tor` they can be resolved by adding both the user running tor and
|
||||
the user running zcashd to the same group and setting permissions appropriately. On
|
||||
Debian-based systems the user running zcashd can be added to the debian-tor group,
|
||||
the user running komodod to the same group and setting permissions appropriately. On
|
||||
Debian-based systems the user running komodod can be added to the debian-tor group,
|
||||
which has the appropriate permissions. An alternative authentication method is the use
|
||||
of the `-torpassword` flag and a `hash-password` which can be enabled and specified in
|
||||
Tor configuration.
|
||||
|
||||
|
||||
4. Connect to a Zcash hidden server
|
||||
4. Connect to a Komodo hidden server
|
||||
-----------------------------------
|
||||
|
||||
To test your set-up, you might want to try connecting via Tor on a different computer to just a
|
||||
a single Zcash hidden server. Launch zcashd as follows:
|
||||
a single Komodo hidden server. Launch komodod as follows:
|
||||
|
||||
./zcashd -onion=127.0.0.1:9050 -connect=zctestseie6wxgio.onion
|
||||
./komodod -onion=127.0.0.1:9050 -connect=zctestseie6wxgio.onion
|
||||
|
||||
Now use zcash-cli to verify there is only a single peer connection.
|
||||
Now use komodo-cli to verify there is only a single peer connection.
|
||||
|
||||
zcash-cli getpeerinfo
|
||||
komodo-cli getpeerinfo
|
||||
|
||||
[
|
||||
{
|
||||
"id" : 1,
|
||||
"addr" : "zctestseie6wxgio.onion:18233",
|
||||
"addr" : "zctestseie6wxgio.onion:17770",
|
||||
...
|
||||
"version" : 170002,
|
||||
"subver" : "/MagicBean:1.0.0/",
|
||||
@@ -146,4 +146,4 @@ Now use zcash-cli to verify there is only a single peer connection.
|
||||
|
||||
To connect to multiple Tor nodes, use:
|
||||
|
||||
./zcashd -onion=127.0.0.1:9050 -addnode=zctestseie6wxgio.onion -dnsseed=0 -onlynet=onion
|
||||
./komodod -onion=127.0.0.1:9050 -addnode=zctestseie6wxgio.onion -dnsseed=0 -onlynet=onion
|
||||
|
||||
91
doc/wallet-backup.md
Normal file
91
doc/wallet-backup.md
Normal file
@@ -0,0 +1,91 @@
|
||||
# Wallet Backup Instructions
|
||||
|
||||
## Overview
|
||||
|
||||
Backing up your Zcash private keys is the best way to be proactive about preventing loss of access to your ZEC.
|
||||
|
||||
Problems resulting from bugs in the code, user error, device failure, etc. may lead to losing access to your wallet (and as a result, the private keys of addresses which are required to spend from them).
|
||||
|
||||
No matter what the cause of a corrupted or lost wallet could be, we highly recommend all users backup on a regular basis. Anytime a new address in the wallet is generated, we recommending making a new backup so all private keys for addresses in your wallet are safe.
|
||||
|
||||
Note that a backup is a duplicate of data needed to spend ZEC so where you keep your backup(s) is another important consideration. You should not store backups where they would be equally or increasingly susceptible to loss or theft.
|
||||
|
||||
## Instructions for backing up your wallet and/or private keys
|
||||
|
||||
These instructions are specific for the officially supported Zcash Linux client. For backing up with third-party wallets, please consult with user guides or support channels provided for those services.
|
||||
|
||||
There are multiple ways to make sure you have at least one other copy of the private keys needed to spend your ZEC and view your shielded ZEC.
|
||||
|
||||
For all methods, you will need to include an export directory setting in your config file (`zcash.conf` located in the data directory which is `~/.zcash/` unless it's been overridden with `datadir=` setting):
|
||||
|
||||
`exportdir=path/to/chosen/export/directory`
|
||||
|
||||
You may chose any directory within the home directory as the location for export & backup files. If the directory doesn't exist, it will be created.
|
||||
|
||||
Note that zcashd will need to be stopped and restarted for edits in the config file to take effect.
|
||||
|
||||
### Using `backupwallet`
|
||||
|
||||
To create a backup of your wallet, use:
|
||||
|
||||
`zcash-cli backupwallet <nameofbackup>`.
|
||||
|
||||
The backup will be an exact copy of the current state of your wallet.dat file stored in the export directory you specified in the config file. The file path will also be returned.
|
||||
|
||||
If you generate a new Zcash address, it will not be reflected in the backup file.
|
||||
|
||||
If your original `wallet.dat` file becomes inaccessible for whatever reason, you can use your backup by copying it into your data directory and renaming the copy to `wallet.dat`.
|
||||
|
||||
### Using `z_exportwallet` & `z_importwallet`
|
||||
|
||||
If you prefer to have an export of your private keys in human readable format, you can use:
|
||||
|
||||
`zcash-cli z_exportwallet <nameofbackup>`
|
||||
|
||||
This will generate a file in the export directory listing all transparent and shielded private keys with their associated public addresses. The file path will be returned in the command line.
|
||||
|
||||
To import keys into a wallet which were previously exported to a file, use:
|
||||
|
||||
`zcash-cli z_importwallet <path/to/exportdir/nameofbackup>`
|
||||
|
||||
### Using `z_exportkey`, `z_importkey`, `dumpprivkey` & `importprivkey`
|
||||
|
||||
If you prefer to export a single private key for a shielded address, you can use:
|
||||
|
||||
`zcash-cli z_exportkey <z-address>`
|
||||
|
||||
This will return the private key and will not create a new file.
|
||||
|
||||
For exporting a single private key for a transparent address, you can use the command inherited from Bitcoin:
|
||||
|
||||
`zcash-cli dumpprivkey <t-address>`
|
||||
|
||||
This will return the private key and will not create a new file.
|
||||
|
||||
To import a private key for a shielded address, use:
|
||||
|
||||
`zcash-cli z_importkey <z-priv-key>`
|
||||
|
||||
This will add the key to your wallet and rescan the wallet for associated transactions if it is not already part of the wallet.
|
||||
|
||||
The rescanning process can take a few minutes for a new private key. To skip it, instead use:
|
||||
|
||||
`zcash-cli z_importkey <z-private-key> no`
|
||||
|
||||
For other instructions on fine-tuning the wallet rescan, see the command's help documentation:
|
||||
|
||||
`zcash-cli help z_importkey`
|
||||
|
||||
To import a private key for a transparent address, use:
|
||||
|
||||
`zcash-cli importprivkey <t-priv-key>`
|
||||
|
||||
This has the same functionality as `z_importkey` but works with transparent addresses.
|
||||
|
||||
See the command's help documentation for instructions on fine-tuning the wallet rescan:
|
||||
|
||||
`zcash-cli help importprivkey`
|
||||
|
||||
### Using `dumpwallet`
|
||||
|
||||
This command inherited from Bitcoin is deprecated. It will export private keys in a similar fashion as `z_exportwallet` but only for transparent addresses.
|
||||
16
doc/zmq.md
16
doc/zmq.md
@@ -2,11 +2,11 @@
|
||||
|
||||
[ZeroMQ](http://zeromq.org/) is a lightweight wrapper around TCP
|
||||
connections, inter-process communication, and shared-memory,
|
||||
providing various message-oriented semantics such as publish/subcribe,
|
||||
providing various message-oriented semantics such as publish/subscribe,
|
||||
request/reply, and push/pull.
|
||||
|
||||
The Zcash daemon can be configured to act as a trusted "border
|
||||
router", implementing the zcash wire protocol and relay, making
|
||||
router", implementing the Zcash wire protocol and relay, making
|
||||
consensus decisions, maintaining the local blockchain database,
|
||||
broadcasting locally generated transactions into the network, and
|
||||
providing a queryable RPC interface to interact on a polled basis for
|
||||
@@ -46,7 +46,7 @@ operation.
|
||||
|
||||
By default, the ZeroMQ feature is automatically compiled in if the
|
||||
necessary prerequisites are found. To disable, use --disable-zmq
|
||||
during the *configure* step of building zcashd:
|
||||
during the *configure* step of building komodod:
|
||||
|
||||
$ ./configure --disable-zmq (other options)
|
||||
|
||||
@@ -67,8 +67,8 @@ address. The same address can be used in more than one notification.
|
||||
|
||||
For instance:
|
||||
|
||||
$ zcashd -zmqpubhashtx=tcp://127.0.0.1:28332 \
|
||||
-zmqpubrawtx=ipc:///tmp/zcashd.tx.raw
|
||||
$ komodod -zmqpubhashtx=tcp://127.0.0.1:28332 \
|
||||
-zmqpubrawtx=ipc:///tmp/komodod.tx.raw
|
||||
|
||||
Each PUB notification has a topic and body, where the header
|
||||
corresponds to the notification type. For instance, for the
|
||||
@@ -88,9 +88,9 @@ arriving. Please see `contrib/zmq/zmq_sub.py` for a working example.
|
||||
|
||||
## Remarks
|
||||
|
||||
From the perspective of zcashd, the ZeroMQ socket is write-only; PUB
|
||||
From the perspective of komodod, the ZeroMQ socket is write-only; PUB
|
||||
sockets don't even have a read function. Thus, there is no state
|
||||
introduced into zcashd directly. Furthermore, no information is
|
||||
introduced into komodod directly. Furthermore, no information is
|
||||
broadcast that wasn't already received from the public P2P network.
|
||||
|
||||
No authentication or authorization is done on connecting clients; it
|
||||
@@ -102,6 +102,6 @@ and just the tip will be notified. It is up to the subscriber to
|
||||
retrieve the chain from the last known block to the new tip.
|
||||
|
||||
There are several possibilities that ZMQ notification can get lost
|
||||
during transmission depending on the communication type your are
|
||||
during transmission depending on the communication type you are
|
||||
using. Zcashd appends an up-counting sequence number to each
|
||||
notification which allows listeners to detect lost notifications.
|
||||
|
||||
Reference in New Issue
Block a user