Browse Source

Merge remote-tracking branch 'origin/dev' into v1.0.12-rc

Conflicts:
	doc/payment-api.md
	src/rpcmining.cpp
	src/sendalert.cpp
	zcutil/build.sh
pull/56/head
Jonathan "Duke" Leto 7 years ago
parent
commit
c84c21eb80
  1. 29
      Testnet.md
  2. 5
      contrib/devtools/README.md
  3. 31
      doc/payment-api.md
  4. 33
      doc/security.md
  5. 2
      doc/wallet-backup.md
  6. 2
      qa/rpc-tests/test_framework/mininode.py
  7. BIN
      src/.main.cpp.swo
  8. 3
      src/main.cpp
  9. 22
      src/rpcmining.cpp
  10. 9
      src/sendalert.cpp
  11. 4
      src/util.cpp
  12. 3
      src/util.h
  13. 14
      zcutil/build.sh
  14. 6
      zcutil/fetch-params.sh
  15. 65
      zdash-gui/README.md
  16. BIN
      zdash-gui/zdash.jar

29
Testnet.md

@ -1,8 +1,6 @@
HUSH 1.0.9 - Testnet
=============
What is a Testnet?
--------------
# Running a HUSH Testnet Node (TUSH Node)
## What is a Testnet?
![Logo](doc/hush/hush.png "Logo")
@ -10,8 +8,7 @@ This software is the HUSH node and command-line Testnet client. It provides
a safe place - off the main network - for testing of new features,
applications and ideas without compromising the security of the main network.
How is running the Testnet different to running a Mainnet node?
--------------
## How is running the Testnet different to running a Mainnet node?
In essence their is very little difference in running a Testnet to a Mainnet node
it only requires one of many possible changes in how you start the node - we will
@ -21,6 +18,11 @@ However - it is important that before you choose which method to use, you consid
if you will be ONLY running a Testnet node, or if you will be running one alongside
a Mainnet node on the same computer.
The testnet node uses the currency symbol TUSH for Test HUSH, and to be clear,
if you own a taddr/zaddr on mainnet, you do not own those addresses on the testnet,
since it has it's own genesis block and address hash space.
### To run a Testnet node on it's own (the simplest way) once only.
Make sure there are no other instances of Hush running:
```
@ -67,7 +69,7 @@ testnet=1
gen=1
genproclimit=1
equihashsolver=tromp
mineraddress=
mineraddress=XXX
```
Don't forget to add in one of your testnet transparent addresses (an empty one)
on the last line there - it will keep all your mined coins on one address ready for
@ -119,17 +121,24 @@ testnet=1
gen=1
genproclimit=1
equihashsolver=tromp
mineraddress=
mineraddress=XXX
```
- Run this from the usual hush directory (adjust for your paths):
```
./src/hushd -datadir=/home/username/.hush-t
```
- OR make a nice bash script in ```/usr/bin/```
`tush`:
```
#!/bin/bash
~/hush/src/hushd -datadir=/home/username/.hush-t $1 $2 $3
~/hush/src/hushd -datadir=/home/username/.hush-t $@
```
and `tush-cli`:
```
#!/bin/bash
~/hush/src/hush-cli -rpcport=18822 $@
```
Remember that to talk to this Testnet node - you will still need to use the
```./src/hush-cli -rpcport=18822``` style command, or of course you could also
make other scripts and nice bits to customise the system the way you want it.

5
contrib/devtools/README.md

@ -1,8 +1,7 @@
Contents
===========
# Contents
This directory contains tools for developers working on this repository.
github-merge.sh
# github-merge.sh
==================
A small script to automate merging pull-requests securely and sign them with GPG.

31
doc/payment-api.md

@ -1,4 +1,10 @@
# Zcash Payment API
# Hush Payment API
Hush inherits the Zcash Payment API.
Hush supports all commands in the Bitcoin Core API (as of version 0.11.2).
Where applicable, Hush will extend commands in a backwards-compatible way to
enable additional functionality.
## Overview
@ -9,18 +15,29 @@ Zcash payments make use of two address formats:
* taddr - an address for transparent funds (just like a Bitcoin address, value stored in UTXOs)
* zaddr - an address for private funds (value stored in objects called notes)
When transferring funds from one taddr to another taddr, you can use either the existing Bitcoin RPC calls or the new Zcash RPC calls.
When transferring funds from one taddr to another taddr, you can use either the
existing Bitcoin RPC calls or the new Zcash RPC calls.
When a transfer involves zaddrs, you must use the new Zcash RPC calls.
## Compatibility with Bitcoin Core
Zcash supports all commands in the Bitcoin Core API (as of version 0.11.2). Where applicable, Zcash will extend commands in a backwards-compatible way to enable additional functionality.
Zcash supports all commands in the Bitcoin Core API (as of version 0.11.2).
Where applicable, Hush will extend commands in a backwards-compatible way to
enable additional functionality.
Zcash supports all commands in the Bitcoin Core API (as of version 0.11.2).
Where applicable, Zcash will extend commands in a backwards-compatible way to
enable additional functionality.
We do not recommend use of accounts which are now deprecated in Bitcoin Core. Where the account parameter exists in the API, please use “” as its value, otherwise an error will be returned.
We do not recommend use of accounts which are now deprecated in Bitcoin Core.
Where the account parameter exists in the API, please use “” as its value,
otherwise an error will be returned.
To support multiple users in a single node’s wallet, consider using getnewaddress or z_getnewaddress to obtain a new address for each user. Also consider mapping multiple addresses to each user.
To support multiple users in a single node’s wallet, consider using
getnewaddress or z_getnewaddress to obtain a new address for each user. Also
consider mapping multiple addresses to each user.
## List of Zcash API commands
@ -64,15 +81,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 hushd’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. 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] | _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. The number of coinbase utxos selected for shielding is limited by both the -mempooltxinputlimit=xxx option and 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 trasaction and what remains to be shielded.
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 HUSH.<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.
### Operations

33
doc/security.md

@ -0,0 +1,33 @@
# Security Overview
This document is a very high overview related to the security of Hush, with links to other resources.
## SECURITY AUDIT
Hush itself has not had a 3rd party code audit, but our upstream fork, Zcash, has. More details on that here:
https://z.cash/blog/audit-results.html
# KNOWN SECURITY ISSUES
Each release contains a `./doc/security-warnings.md` document describing security
issues known to affect that release. You can find the most recent version of
this document [here](https://github.com/MyHush/hush/blob/master/doc/security-warnings.md)
Note that this link points to the "in development" version of the file, so it
may have more recent findings than the version released with your software. (It
might also have issues that are only relevant for the upcoming release which
don't affect the current release or older software.)
# What if myhush.org get hacked?
In the event the Hush website is down or hacked, please also check these
twitter handles: @radix42, @dukeleto and @MyHushTeam. The Hush protocol has an
alert system and currently a small set of people control the keys to issue
alerts. These will be sent to all nodes, if necessary in an emergency situation.
# What if all the Hush core devs turn evil?
If we are sufficiently hacked, or if we collectively turn evil, the above
resources will not be sufficient to protect you. Luckily, the Hush network is
growing into a larger and more resilient decentralized community everyday.

2
doc/wallet-backup.md

@ -22,7 +22,7 @@ For all methods, you will need to include an export directory setting in your co
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.
Note that hushd will need to be stopped and restarted for edits in the config file to take effect.
### Using `backupwallet`

2
qa/rpc-tests/test_framework/mininode.py

@ -38,7 +38,7 @@ MY_SUBVERSION = "/python-mininode-tester:0.0.1/"
MAX_INV_SZ = 50000
COIN = 100000000 # 1 zec in zatoshis
COIN = 100000000 # 1 Hush in puposhis
# Keep our own socket map for asyncore, so that we can track disconnects
# ourselves (to workaround an issue with closing an asyncore socket when

BIN
src/.main.cpp.swo

Binary file not shown.

3
src/main.cpp

@ -1,5 +1,6 @@
// Copyright (c) 2009-2010 Satoshi Nakamoto
// Copyright (c) 2009-2014 The Bitcoin Core developers
// Copyright (c) 2017 The Hush developers
// Distributed under the MIT software license, see the accompanying
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
@ -95,7 +96,7 @@ static void CheckBlockIndex();
/** Constant stuff for coinbase transactions we create: */
CScript COINBASE_FLAGS;
const string strMessageMagic = "Zcash Signed Message:\n";
const string strMessageMagic = "Hush Signed Message:\n";
// Internal stuff
namespace {

22
src/rpcmining.cpp

@ -1,5 +1,6 @@
// Copyright (c) 2010 Satoshi Nakamoto
// Copyright (c) 2009-2014 The Bitcoin Core developers
// Copyright (c) 2017 The Hush developers
// Distributed under the MIT software license, see the accompanying
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
@ -550,13 +551,13 @@ UniValue getblocktemplate(const UniValue& params, bool fHelp)
}
if (strMode != "template")
throw JSONRPCError(RPC_INVALID_PARAMETER, "Invalid mode");
throw JSONRPCError(RPC_INVALID_PARAMETER, "Invalid mode!");
if (vNodes.empty())
throw JSONRPCError(RPC_CLIENT_NOT_CONNECTED, "Hush is not connected!");
throw JSONRPCError(RPC_CLIENT_NOT_CONNECTED, "Hush is not connected! :(");
if (IsInitialBlockDownload())
throw JSONRPCError(RPC_CLIENT_IN_INITIAL_DOWNLOAD, "Hush is downloading blocks...");
throw JSONRPCError(RPC_CLIENT_IN_INITIAL_DOWNLOAD, "Hush is downloading blocks, be patient please...");
static unsigned int nTransactionsUpdatedLast;
@ -677,11 +678,6 @@ UniValue getblocktemplate(const UniValue& params, bool fHelp)
entry.push_back(Pair("sigops", pblocktemplate->vTxSigOps[index_in_template]));
if (tx.IsCoinBase()) {
// Show founders' reward if it is required
if (pblock->vtx[0].vout.size() > 1) {
// Correct this if GetBlockTemplate changes the order
entry.push_back(Pair("foundersreward", (int64_t)tx.vout[1].nValue));
}
entry.push_back(Pair("required", true));
txCoinbase = entry;
} else {
@ -878,13 +874,12 @@ UniValue getblocksubsidy(const UniValue& params, bool fHelp)
if (fHelp || params.size() > 1)
throw runtime_error(
"getblocksubsidy height\n"
"\nReturns block subsidy reward, taking into account the mining slow start and the founders reward, of block at index provided.\n"
"\nReturns block subsidy reward, taking into account the mining slow start, of a block at index provided.\n"
"\nArguments:\n"
"1. height (numeric, optional) The block height. If not provided, defaults to the current height of the chain.\n"
"\nResult:\n"
"{\n"
" \"miner\" : x.xxx (numeric) The mining reward amount in " + CURRENCY_UNIT + ".\n"
" \"founders\" : x.xxx (numeric) The founders reward amount in " + CURRENCY_UNIT + ".\n"
"}\n"
"\nExamples:\n"
+ HelpExampleCli("getblocksubsidy", "1000")
@ -897,13 +892,8 @@ UniValue getblocksubsidy(const UniValue& params, bool fHelp)
throw JSONRPCError(RPC_INVALID_PARAMETER, "Block height out of range");
CAmount nReward = GetBlockSubsidy(nHeight, Params().GetConsensus());
CAmount nFoundersReward = 0;
if ((nHeight > 0) && (nHeight <= Params().GetConsensus().GetLastFoundersRewardBlockHeight())) {
nFoundersReward = 0;
nReward -= nFoundersReward;
}
UniValue result(UniValue::VOBJ);
result.push_back(Pair("miner", ValueFromAmount(nReward)));
result.push_back(Pair("founders", ValueFromAmount(nFoundersReward)));
return result;
}

9
src/sendalert.cpp

@ -1,4 +1,5 @@
// Copyright (c) 2016 The Zcash developers
// Copyright (c) 2017 The Hush developers
// Original code from: https://gist.github.com/laanwj/0e689cfa37b52bcbbb44
/*
@ -72,9 +73,12 @@ void ThreadSendAlert()
CAlert alert;
alert.nRelayUntil = GetTime() + 15 * 60;
alert.nExpiration = GetTime() + 12 * 30 * 24 * 60 * 60;
alert.nID = 1004; // use https://github.com/zcash/zcash/wiki/specification#assigned-numbers to keep track of alert IDs
// Hush has never set an alert, no need to keep incrementing Zcashs alert ids here
//
alert.nID = 1003; // use https://github.com/MyHush/hush/wiki/Alerts to keep track of ids
alert.nCancel = 1001; // cancels previous messages up to this ID number
// Currently we are exactly the same as our Upstream Zcash protocol version
// These versions are protocol versions
// 170002 : 1.0.0
alert.nMinVer = 170002;
@ -88,7 +92,8 @@ void ThreadSendAlert()
// 4000 or higher will put the RPC into safe mode
alert.nPriority = 4000;
alert.strComment = "";
alert.strStatusBar = "Your client version 1.0.10 has degraded networking behavior. Please update to the most recent version of Zcash (1.0.10-1 or later).";
// NOTE: Do not merge over with Zcash links here, kthankxbai :)
alert.strStatusBar = "Your client is out of date. Please update to the most recent version of Hush. More info at: https://github.com/MyHush/hush/blob/master/doc/security.md";
alert.strRPCError = alert.strStatusBar;
// Set specific client version/versions here. If setSubVer is empty, no filtering on subver is done:

4
src/util.cpp

@ -892,8 +892,8 @@ void SetThreadPriority(int nPriority)
std::string PrivacyInfo()
{
return "\n" +
FormatParagraph(strprintf(_("In order to ensure you are adequately protecting your privacy when using Zcash, please see <%s>."),
"https://z.cash/support/security/index.html")) + "\n";
FormatParagraph(strprintf(_("In order to ensure you are adequately protecting your privacy when using Hush, please see <%s>."),
"https://github.com/MyHush/hush/blob/master/doc/security.md")) + "\n";
}
std::string LicenseInfo()

3
src/util.h

@ -1,5 +1,6 @@
// Copyright (c) 2009-2010 Satoshi Nakamoto
// Copyright (c) 2009-2014 The Bitcoin Core developers
// Copyright (c) 2017 The Hush developers
// Distributed under the MIT software license, see the accompanying
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
@ -234,7 +235,7 @@ void RenameThread(const char* name);
*/
template <typename Callable> void TraceThread(const char* name, Callable func)
{
std::string s = strprintf("zcash-%s", name);
std::string s = strprintf("hush-%s", name);
RenameThread(s.c_str());
try
{

14
zcutil/build.sh

@ -34,20 +34,20 @@ $0 --help
Show this help message and exit.
$0 [ --enable-lcov || --disable-tests ] [ --disable-mining ] [ --disable-rust ] [ --enable-proton ] [ --disable-libs ] [ MAKEARGS... ]
Build Zcash and most of its transitive dependencies from
source. MAKEARGS are applied to both dependencies and Zcash itself.
Build Hush and most of its transitive dependencies from
source. MAKEARGS are applied to both dependencies and Hush itself.
If --enable-lcov is passed, Zcash is configured to add coverage
If --enable-lcov is passed, Hush is configured to add coverage
instrumentation, thus enabling "make cov" to work.
If --disable-tests is passed instead, the Zcash tests are not built.
If --disable-tests is passed instead, the Hush tests are not built.
If --disable-mining is passed, Zcash is configured to not build any mining
If --disable-mining is passed, Hush is configured to not build any mining
code. It must be passed after the test arguments, if present.
If --disable-rust is passed, Zcash is configured to not build any Rust language
If --disable-rust is passed, Hush is configured to not build any Rust language
assets. It must be passed after test/mining arguments, if present.
If --enable-proton is passed, Zcash is configured to build the Apache Qpid Proton
If --enable-proton is passed, Hush is configured to build the Apache Qpid Proton
library required for AMQP support. This library is not built by default.
It must be passed after the test/mining/Rust arguments, if present.

6
zcutil/fetch-params.sh

@ -123,10 +123,10 @@ function main() {
|| exit_locked_error
cat <<EOF
Zcash - fetch-params.sh
Hush - fetch-params.sh
This script will fetch the Zcash zkSNARK parameters and verify their
integrity with sha256sum.
This script will fetch the Zcash zkSNARK parameters, which the Hush network
relies on, and verify their integrity with sha256sum.
If they already exist locally, it will exit now and do nothing else.
EOF

65
zdash-gui/README.md

@ -1,65 +0,0 @@
# zdash-gui
gui-wallet for zdash
Installing and running the Wallet GUI
Before running the Desktop GUI Wallet you need to have Zdash installed up and running in linux.
1 - download the binary zdash.jar
Operating system and tools:
The Linux tools you need to run the Wallet GUI, Java (JDK7 or later) and Ant. If using Ubuntu Linux, they may be installed via command:
>> sudo apt-get install git default-jdk ant
For RedHat/CentOS/Fedora-type Linux systems the command is (like):
>> sudo yum install java-1.8.0-openjdk git ant
The name of the JDK package (java-1.8.0-openjdk) may vary depending on the Linux system, so you need to check it, if name java-1.8.0-openjdk is not accepted. If you have some other Linux distribution, please check your relevant documentation on installing Git, JDK and Ant. The commands git, java, javac and ant need to be startable from command line before proceeding with build.
2- Place the file zdash.jar in zdash/src and make it executable:
>> chmod u+x ./zdash/src/zdash.jar
* zdash.jar must be in the same folder with the daemon and cli-wallet.
* the daemon must be running before gui wallet is started ( zcashd --daemon )
Running the Zdash GUI wallet:
Before running the GUI you need to start zcashd (e.g. zcashd --daemon). The wallet GUI is a Java program packaged as an executable JAR file. Run from command line. Assuming you have already installed Zdash and the GUI Wallet zdash.jar in directory /home/user/zdash/src run it from command line:
>> java -jar /home/user/zdash/src/dash.jar
The GUI wallet is simple to use and navigate. Test with small transctions at first.
=======================================================================================
zdash GUI wallet is based on:
https://github.com/ondrejsika/zcash-swing-wallet-ui
License
This program is distributed under an MIT License.
Disclaimer
This program is not officially endorsed by or associated with the ZCash project and the ZCash company.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Known issues and limitations
1- Limitation: Wallet encryption has been temporarily disabled in ZCash due to stability problems. A corresponding issue #1552 has been opened by the ZCash developers. Correspondingly wallet encryption has been temporarily disabled in the ZCash Desktop GUI Wallet.
2- Issue: the GUI wallet does not work correctly if zcashd is started with a custom data directory, like: zcashd -datadir=/home/data/whatever This will be fixed in later versions.
3- Issue: GUI data tables (transactions/addresses etc.) allow copying of data via double click but also allow editing. The latter needs to be disabled.
4- Limitation: The list of transactions does not show all outgoing ones (specifically outgoing Z address transactions). A corresponding issue #1438 has been opened for the ZCash developers - soon to be fixed. A fix for the GUI wallet may be expected within 1-2 weeks.
5- Limitation: The CPU percentage shown to be taken by zcashd is the average for the entire lifetime of the process. This is not very useful. This will be improved in future versions.

BIN
zdash-gui/zdash.jar

Binary file not shown.
Loading…
Cancel
Save