From 26c33c0deef133c21e29e72a9cb646bb69346aea Mon Sep 17 00:00:00 2001 From: jahway603 Date: Sun, 8 Aug 2021 00:57:39 -0400 Subject: [PATCH 1/5] created simple build script --- build.sh | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100755 build.sh diff --git a/build.sh b/build.sh new file mode 100755 index 0000000..3014201 --- /dev/null +++ b/build.sh @@ -0,0 +1,16 @@ +#!/bin/bash +# Copyright 2021 The Hush Developers +# Released under GPLv3 + +# Check if go is installed on system and exits if it is not +if ! [ -x "$(command -v go)" ]; then + echo 'Error: go is not installed. Install go and try again.' >&2 + exit 1 +fi + +# now to compiling... +cd `pwd`/cmd/server +go build main.go +# move compiled main.go to lightwalletd +mv main `pwd`/../../lightwalletd +echo "lightwalletd is now compiled for you" From 6df1354f34456fdccf7bce8c5f32e4c9b3d50154 Mon Sep 17 00:00:00 2001 From: jahway603 Date: Sun, 8 Aug 2021 01:08:11 -0400 Subject: [PATCH 2/5] build script tweak --- build.sh | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/build.sh b/build.sh index 3014201..9f668ff 100755 --- a/build.sh +++ b/build.sh @@ -10,7 +10,8 @@ fi # now to compiling... cd `pwd`/cmd/server -go build main.go +go build -o lightwalletd main.go # move compiled main.go to lightwalletd -mv main `pwd`/../../lightwalletd -echo "lightwalletd is now compiled for you" +mv lightwalletd `pwd`/../../lightwalletd +echo "lightwalletd is now compiled for you." +echo "for options, run ./lightwalletd --help" From 916bb7e702f28b67d5f6ba615a4a0fb7fd39dd7a Mon Sep 17 00:00:00 2001 From: jahway603 Date: Mon, 9 Aug 2021 00:13:19 -0400 Subject: [PATCH 3/5] updated README --- .gitignore | 1 + README.md | 45 +++++++++++++++++++++++++-------------------- build.sh | 3 +-- 3 files changed, 27 insertions(+), 22 deletions(-) diff --git a/.gitignore b/.gitignore index 5aa9f6f..173fd49 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,4 @@ main grpcfrontend cert.pem key.pem +lightwalletd diff --git a/README.md b/README.md index ddac39d..a99ed79 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ Hush Lightwalletd is a fork of [lightwalletd](https://github.com/adityapk00/lightwalletd) original from Zcash (ZEC). -It is a backend service that provides a bandwidth-efficient interface to the Hush blockchain for the [SilentDragonLite cli](https://git.hush.is/hush/silentdragonlite-light-cli) and [SilentDragonLite](https://git.hush.is/hush/SilentDragonLite) +It is a backend service that provides a bandwidth-efficient interface to the Hush blockchain for [SilentDragonLite cli](https://git.hush.is/hush/silentdragonlite-light-cli) and [SilentDragonLite](https://git.hush.is/hush/SilentDragonLite). ## Changes from upstream lightwalletd This version of lightwalletd extends lightwalletd and: @@ -38,7 +38,6 @@ rpcuser=user-CHANGETHIS rpcpassword=pass-CHANGETHIS rpcport=18031 server=1 -daemon=0 txindex=1 rpcworkqueue=256 rpcallowip=127.0.0.1 @@ -47,12 +46,19 @@ rpcbind=127.0.0.1 Then start `hushd` in your command window. 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 and run the Lightwalletd frontend +#### 2. Compile lightwalletd +Run the build script. + +``` +./build.sh +``` + +#### 3. Get a TLS certificate and run the Lightwalletd frontend First, get a TLS certificate: On Ubuntu Linux, **I SUGGEST YOU DO NOT USE SNAPD** and just ```sudo apt install certbot``` and then start on [Step 7 of these instructions by the EFF](https://certbot.eff.org/instructions) -Next you decide how you want to setup lightwalletd - with or without NGINX. +Next you decide how you want to setup lightwalletd - with (Option A) or without NGINX (Option B). ##### Option A: "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. @@ -77,35 +83,34 @@ server { } ``` -Then run the lightwalletd frontend with the following (Note: we use the "-no-tls" option as we are using NGINX as a reverse proxy and letting it handle the TLS authentication): +Then run the lightwalletd frontend with the following (Note: we use the "-no-tls" option as we are using NGINX as a reverse proxy and letting it handle the TLS authentication for us instead): ``` - go run cmd/server/main.go -bind-addr your_host.net:9067 -conf-file ~/.komodo/HUSH3/HUSH3.conf -no-tls +./lightwalletd -bind-addr your_host.net:9067 -conf-file ~/.komodo/HUSH3/HUSH3.conf -no-tls ``` ##### Option B: "Let's Encrypt" certificate just using lightwalletd without NGINX The other option is to configure lightwalletd to handle its own TLS authentication. Once you have a certificate that you want to use (from a certificate authority), pass the certificate to the frontend as follows: ``` - 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 +./lightwalletd -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 ``` -#### 3. Point the `silentdragonlite-cli` to this server +#### 4. Point the `silentdragonlite-cli` to this server You should start seeing the frontend ingest and cache the Hush blocks after ~15 seconds. -Now, connect to your server! (Substitute below) +Now, connect to your server! (Substitute with your own below) ``` - git clone https://git.hush.is/hush/silentdragonlite-cli - cd silentdragonlite-cli +git clone https://git.hush.is/hush/silentdragonlite-cli +cd silentdragonlite-cli +cargo build --release +./target/release/silentdragonlite-cli --server https://lite.example.org ``` -##### Install deps for cargo on VPS https://doc.rust-lang.org/cargo/getting-started/installation.html -``` -sudo apt install -y cargo -``` -then +* If you have trouble compiling silentdragonlite-cli, then [please refer to it's separate documentation here](https://git.hush.is/hush/silentdragonlite-cli) on how to build it and what pre-requisites need to be installed. -``` - cargo build --release - ./target/release/silentdragonlite-cli --server https://lite.example.org -``` +## Support +For support or other questions, join us on [Telegram](https://hush.is/telegram), or tweet at [@MyHushTeam](https://twitter.com/MyHushTeam), or toot at our [Mastodon](https://fosstodon.org/@myhushteam) or join [Telegram Support](https://hush.is/telegram_support). + +## License +GPLv3 or later diff --git a/build.sh b/build.sh index 9f668ff..0287abd 100755 --- a/build.sh +++ b/build.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash # Copyright 2021 The Hush Developers # Released under GPLv3 @@ -11,7 +11,6 @@ fi # now to compiling... cd `pwd`/cmd/server go build -o lightwalletd main.go -# move compiled main.go to lightwalletd mv lightwalletd `pwd`/../../lightwalletd echo "lightwalletd is now compiled for you." echo "for options, run ./lightwalletd --help" From 9416cc5af2440eeea1878a1f96e1ae5f618b05de Mon Sep 17 00:00:00 2001 From: jahway603 Date: Mon, 9 Aug 2021 00:38:12 -0400 Subject: [PATCH 4/5] added CLI options to README --- README.md | 15 +++++++++++++++ start.sh | 7 +++++-- 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index a99ed79..5f18903 100644 --- a/README.md +++ b/README.md @@ -109,6 +109,21 @@ cargo build --release * If you have trouble compiling silentdragonlite-cli, then [please refer to it's separate documentation here](https://git.hush.is/hush/silentdragonlite-cli) on how to build it and what pre-requisites need to be installed. +## Lightwalletd Command-line Options + +These are the current different command line options for lightwalletd: + +| CLI option | Default | What it does | +|------------|:--------------:|------------------------------:| +| -bind-addr | 127.0.0.1:9069 | address and port to listen on | +| -tls-cert | | the path to a TLS certificate | +| -tls-key | | the path to a TLS key file | +| -no-tls | false | Disable TLS, serve un-encrypted traffic | +| -log-file | | log file to write to | +| -log-level | logrus.InfoLevel | log level 1 thru 7 (something from logrus)| +| -conf-file | | conf file to pull RPC creds from | +| -cache-size| 40000 | number of blocks to hold in the cache | + ## Support For support or other questions, join us on [Telegram](https://hush.is/telegram), or tweet at [@MyHushTeam](https://twitter.com/MyHushTeam), or toot at our [Mastodon](https://fosstodon.org/@myhushteam) or join [Telegram Support](https://hush.is/telegram_support). diff --git a/start.sh b/start.sh index 1b5b236..ef85a9d 100755 --- a/start.sh +++ b/start.sh @@ -2,8 +2,11 @@ # Copyright 2020-2021 The Hush Developers # Released under GPLv3 +# Description: This script would be used with a NGINX reverse proxy +# you can choose either IPv4 or IPv6 + # using ipv4 localhost -#./go/bin/go run cmd/server/main.go -bind-addr localhost:9067 -conf-file ~/.komodo/HUSH3/HUSH3.conf -no-tls +#./lightwalletd -bind-addr localhost:9067 -conf-file ~/.komodo/HUSH3/HUSH3.conf -no-tls # using ipv6 localhost -./go/bin/go run cmd/server/main.go -bind-addr ip6-localhost:9067 -conf-file ~/.komodo/HUSH3/HUSH3.conf -no-tls +./lightwalletd -bind-addr ip6-localhost:9067 -conf-file ~/.komodo/HUSH3/HUSH3.conf -no-tls From d1fdac026abe42e3276c422abe6db2b949fd8a4f Mon Sep 17 00:00:00 2001 From: jahway603 Date: Mon, 9 Aug 2021 00:40:04 -0400 Subject: [PATCH 5/5] minor update to table --- README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 5f18903..c565838 100644 --- a/README.md +++ b/README.md @@ -116,12 +116,12 @@ These are the current different command line options for lightwalletd: | CLI option | Default | What it does | |------------|:--------------:|------------------------------:| | -bind-addr | 127.0.0.1:9069 | address and port to listen on | -| -tls-cert | | the path to a TLS certificate | -| -tls-key | | the path to a TLS key file | +| -tls-cert | blank | the path to a TLS certificate | +| -tls-key | blank | the path to a TLS key file | | -no-tls | false | Disable TLS, serve un-encrypted traffic | -| -log-file | | log file to write to | +| -log-file | blank | log file to write to | | -log-level | logrus.InfoLevel | log level 1 thru 7 (something from logrus)| -| -conf-file | | conf file to pull RPC creds from | +| -conf-file | blank | conf file to pull RPC creds from | | -cache-size| 40000 | number of blocks to hold in the cache | ## Support