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.
gilardh 8b2747f8dc Replace github link to git link 3 years ago
cmd/server add coinsupply rpc to lightwalletd 4 years ago
common add coinsupply rpc to lightwalletd 4 years ago
frontend tix taddr 4 years ago
parser port to hush 5 years ago
testdata Test against the first 20 mainnet blocks 5 years ago
vendor Remove zmq from scaffolding stuff in go 5 years ago
walletrpc add coinsupply rpc to lightwalletd 4 years ago
.gitignore Display hash properly 5 years ago
README.md Replace github link to git link 3 years ago
go.mod port to hush 5 years ago
go.sum port to hush 5 years ago

README.md

Overview

Lightwalletd is a fork of lightwalletd from the ECC.

It is a backend service that provides a bandwidth-efficient interface to the Hush blockchain for the silentdragonlite-cli and SilentDragonLite

Changes from upstream lightwalletd

This version of lightwalletd extends lightwalletd and:

  • Adds support for HUSH
  • Adds support for transparent addresses
  • Adds several new RPC calls for lightclients
  • Lots of perf improvements
    • Replaces SQLite with in-memory cache for Compact Blocks
    • Replace local Txstore, delegating Tx lookups to hushd
    • Remove the need for a separate ingestor

Running your own SDL lightwalletd

0. First, install Go

You will need Go >= 1.13 which you can download from the official download page

This installation document shows how to do it on various OS's.

Here is a simpler guide just for Ubuntu

1. Run a Hush node.

Start a hushd with the following options:

server=1
rpcuser=user
rpcpassword=password
rpcbind=127.0.0.1
txindex=1

You might need to run with -reindex the first time if you are enabling the txindex or insightexplorer options for the first time. The reindex might take a while.

2. Get a TLS certificate

"Let's Encrypt" certificate using NGINX as a reverse proxy

If you running a public-facing server, the easiest way to obtain a certificate is to use a NGINX reverse proxy and get a Let's Encrypt certificate. Instructions are here

Create a new section for the NGINX reverse proxy:

server {
    listen 443 ssl http2;
 
 
    ssl_certificate     ssl/cert.pem; # From certbot
    ssl_certificate_key ssl/key.pem;  # From certbot
    
    location / {
        # Replace localhost:9067 with the address and port of your gRPC server if using a custom port
        grpc_pass grpc://localhost:9067;
    }
}

3. Run the frontend:

If you have a certificate that you want to use (from a certificate authority), pass the certificate to the frontend:

go run cmd/server/main.go -bind-addr 127.0.0.1:9067 -conf-file ~/.komodo/HUSH3/HUSH3.conf  -tls-cert /etc/letsencrypt/live/YOURWEBSITE/fullchain.pem -tls-key /etc/letsencrypt/live/YOURWEBSITE/privkey.pem

You should start seeing the frontend ingest and cache the Hush blocks after ~15 seconds.

4. Point the silentdragonlite-cli to this server

Connect to your server!

./silentdragonlite-cli -server https://lite.hush.is