You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Duke Leto 34a0b2d5e3 Update 'README.md' 2 years ago
LICENSE Initial commit 4 years ago
README.md Update 'README.md' 2 years ago

README.md

Hush Full Node Integration Docs

This document will help you install and maintain a Hush Full Node. It is mainly geared towards exchanges and mining pools, but will be useful to any service provider adding Hush, such as a tipbot or exchange or mining pool.

Installing Hush from source

On Ubuntu/Linux systems, you can install Hush from source with these commands:

# install build depedencies
sudo apt-get install build-essential pkg-config libc6-dev m4 g++-multilib \
      autoconf libtool ncurses-dev unzip git python zlib1g-dev wget \
      bsdmainutils automake curl unzip nano libsodium-dev
git clone https://git.hush.is/hush/hush3.git
cd hush3
./build.sh -j4  #4 for use 4 cores

More details can be found here

Installing Hush from a binary

You can also install a binary from an official release

Terminology

We have a document that explains a lot of terminology here

Config changes for exchanges and pools

The default location on Linux for the HUSH config file is ~/.hush/HUSH3/HUSH3.conf . This file will have a username and password for RPC access, so don't show the contents to untrusted people. The legacy location used to be ~/.komodo/HUSH3/HUSH3.conf . You can move the old legacy directory to the new location and it will be found and used.

An advanced feature exchanges & pools can use is called consolidation=1 which keeps wallets small and hence fast. This feature will always make small transactions in the background, "consolidating" funds into very efficient amounts. This makes future transactions fast by spending small amounts of time consolidating funds in the background. We note that turning on consolidation for an already very large wallet will have performance issues.

Here is an example config file for HUSH which is recommended for exchanges and mining pools:

rpcuser=someuser
rpcpassword=agoodpassword
rpcport=18031
server=1
txindex=1
rpcworkqueue=256
rpcallowip=127.0.0.1
rpcbind=127.0.0.1
# if you have servers with slow CPUs or very large existing wallets, comment out the next line
consolidation=1

How Shielded Addresses (zaddrs) Are Different

  • Change from a zaddr goes back to itself! Not a different address, like in transparent addresses (taddrs).
  • Making zaddr transactions are slower, taking a few seconds instead of a few milliseconds
  • Shielded transactions do not show the sender address, receiver address or amounts on the public explorer. You will need to use local RPC methods such as z_viewtransaction to see those details
  • Shielded transactions are larger than transparent transactions, because more data is stored
  • RPCs which work with zaddrs usually begin with z_ such as z_listunspent. The very common sendmany RPC is called z_sendmany for zaddrs
  • To generate a new zaddr use z_getnewaddress
  • To see the balances of all zaddrs use z_getbalances
    • Do not use z_getbalance for each zaddr in the wallet, that will be drastically slower

GUI wallets

Hush full node GUI wallet: SilentDragon

Hush lite wallet: SilentDragonLite

Android wallet (pairs with SilentDragon or SilentDragonLite): SilentDragonAndroid