# 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](https://git.hush.is/hush/hush3) 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](https://git.hush.is/hush/hush3/src/branch/master/INSTALL.md) # Installing Hush from a binary You can also install a binary from an [official release](https://git.hush.is/hush/hush3/releases) # Terminology We have a document that explains a lot of terminology [here](https://git.hush.is/hush/terminology) # 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](https://git.hush.is/hush/SilentDragon/releases) Hush lite wallet: [SilentDragonLite](https://git.hush.is/hush/SilentDragonLite/releases) Android wallet (pairs with SilentDragon or SilentDragonLite): [SilentDragonAndroid](https://git.hush.is/hush/SilentDragonAndroid/releases)