Giter VIP home page Giter VIP logo

raspiblitz's Introduction

RaspiBlitz

Build your own Bitcoin & Lightning Fullnode on a RaspberryPi with an optional Display.

RaspiBlitz

The RaspiBlitz is a do-it-yourself Bitcoin & Lightning Fullnode running on a RaspberryPi 4&5 with a nice display for easy setup & monitoring.

RaspiBlitz is mainly targeted for learning how to run your own node decentralized from home - because: Not your Node, Not your Rules. Discover & develop the open-source ecosystem of Bitcoin by becoming a full part of it.

Links to Quickstart your RaspiBlitz journey:

Additional Resources:

Developer Notes:

This is main RaspiBlitz repo containing the bash & python scripts to build the RaspiBlitz software. It it complimented by the following side repos:

To get started with RaspiBlitz Development check the Community Development notes.

raspiblitz's People

Contributors

1010tom avatar 21isenough avatar adevoss avatar allyourbankarebelongtous avatar botweb avatar candlehater avatar cercatrova21 avatar charlesrocket avatar chucknorrison avatar cstenglein avatar dennisreimann avatar emzy avatar frennkie avatar geco91 avatar holgern avatar jagottsicher avatar juized avatar lightrider5 avatar nolith avatar nyxnor avatar openoms avatar patrickscheich avatar ppachur avatar rootzoll avatar steepdawn974 avatar tracachang avatar vnnkl avatar we-do-it-lu avatar wiz avatar yzernik avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

raspiblitz's Issues

Put Totrrent/Download in the Background

Torrent Download '50torrentHDD.sh' and FTP Download '50downloadHDD.sh' are both processes that take quite a long time. At the moment the run as a forground process within the SSH session.

Problem: There is a good chance that SSH session breaks and downbload processes stop. This is not a good experience.

Solution: The idea would be to start those processes in the background. Writing output to a file and tail this file in the SSH session (1st iteration) or (2nd iteration) while the download is running in the background the while loop of '00infoLCD.sh' could monitoring the progress by checking the already downloaded filesize: This would deliver a progress information that could be shown on the LCD and the SSH that would also loop (showing clear, progress, tail last 10 lines) until download is ready or even when no progress is detected for a while or an error even kill the download process and offer an different option to continue.

Can't get past downloading the blockchain

I've gotten as far as choosing the first option to download the blockchain via torrent. When the unix starts running it keeps stopping at:

*** Moving Files ***
moving files ...
mv: cannot move '/mnt/hdd/raspiblitz-hdd-2018-07-16/blocks' to '/mnt/hdd/blocks': Permission denied
mv: cannot move '/mnt/hdd/raspiblitz-hdd-2018-07-16/chainstate' to '/mnt/hdd/chainstate': Permission denied
mv: cannot move '/mnt/hdd/raspiblitz-hdd-2018-07-16/testnet3' to '/mnt/hdd/testnet3': Permission denied
rm: descend into write-protected directory '/mnt/hdd/raspiblitz-hdd-2018-07-16'?

Now, i'm not sure if its working and i don't see anything or if i'm supposed to do anything. If I enter my password then I get:

*** Next Step ***
You can now use this HDD as a source to copy the Blockchain during the setup of another RaspiBlitz.

*** Checking HDD ***
FAIL - HDD is empty.
admin@raspberrypi:~ $

In the mean time, I'm downloading the blockchain on a ssd from my computer in case I need to go with option 2. I'm working on MacOS Sierra and know next to nothing about Unix commands. but i'm learning.
EDIT: I fomatted the HDD ExFat
EDIT2:
*** Downloading HDD ***
transmission-cli 2.92 (14714)
[2018-07-23 16:19:06.031] Transmission 2.92 (14714) started
[2018-07-23 16:19:06.032] RPC Server: Adding address to whitelist: 127.0.0.1
[2018-07-23 16:19:06.032] UDP: Failed to set receive buffer: requested 4194304, got 327680
[2018-07-23 16:19:06.032] UDP: Please add the line "net.core.rmem_max = 4194304" to /etc/sysctl.conf
[2018-07-23 16:19:06.032] UDP: Failed to set send buffer: requested 1048576, got 327680
[2018-07-23 16:19:06.032] UDP: Please add the line "net.core.wmem_max = 1048576" to /etc/sysctl.conf
[2018-07-23 16:19:06.032] UDP: Failed to set receive buffer: requested 4194304, got 327680
[2018-07-23 16:19:06.033] UDP: Please add the line "net.core.rmem_max = 4194304" to /etc/sysctl.conf
[2018-07-23 16:19:06.033] UDP: Failed to set send buffer: requested 1048576, got 327680
[2018-07-23 16:19:06.033] UDP: Please add the line "net.core.wmem_max = 1048576" to /etc/sysctl.conf
[2018-07-23 16:19:06.033] DHT: Generating new id
[2018-07-23 16:19:06.364] Port Forwarding (NAT-PMP): initnatpmp succeeded (0)
[2018-07-23 16:19:06.364] Port Forwarding (NAT-PMP): sendpublicaddressrequest succeeded (2)
[2018-07-23 16:19:06.768] Saved "/root/.config/transmission/torrents/raspiblitz-hdd-2018-07-16.389af3fc8216a244.torrent"
[2018-07-23 16:19:08.388] Port Forwarding (UPnP): Found Internet Gateway Device "http://192.168.178.1:49000/igdupnp/control/WANIPConn1"
[2018-07-23 16:19:08.388] Port Forwarding (UPnP): Local Address is "192.168.178.20"
[2018-07-23 16:19:08.400] Port Forwarding (UPnP): Port forwarding through "http://192.168.178.1:49000/igdupnp/control/WANIPConn1", service "urn:schemas-upnp-org:service:WANIPConnection:1". (local address: 192.168.178.20:51413)
[2018-07-23 16:19:08.400] Port Forwarding: State changed from "Not forwarded" to "Starting"
Progress: 0.0%, dl from 0 of 0 peers (0 kB/s), ul t[2018-07-23 16:19:11.543] Changed open file limit from 128000 to 1024
[2018-07-23 16:19:11.543] raspiblitz-hdd-2018-07-16: Piece 105264, which was just downloaded, failed its checksum test
[2018-07-23 16:19:11.807] raspiblitz-hdd-2018-07-16: Piece 52409, which was just downloaded, failed its checksum test
[2018-07-23 16:19:12.160] raspiblitz-hdd-2018-07-16: write failed for "raspiblitz-hdd-2018-07-16/blocks/index/114130.ldb": No space left on device
[2018-07-23 16:19:12.160] raspiblitz-hdd-2018-07-16: No space left on device (/mnt/hdd/raspiblitz-hdd-2018-07-16/blocks/index/114130.ldb)
[2018-07-23 16:19:12.355] raspiblitz-hdd-2018-07-16: Piece 106520, which was just downloaded, failed its checksum test
[2018-07-23 16:19:12.390] raspiblitz-hdd-2018-07-16: Piece 102938, which was just downloaded, failed its checksum test
Progress: 0.0%, dl from 0 of 0 peers (1.79 MB/s), ul to 0 (0 kB/s) [0.00]
Error:: No space left on device (/mnt/hdd/raspiblitz-hdd-2018-07-16/blocks/index/114130.ldb)
[2018-07-23 16:19:12.554] raspiblitz-hdd-2018-07-16: Pausing
[2018-07-23 16:19:12.557] raspiblitz-hdd-2018-07-16: write failed for "raspiblitz-hdd-2018-07-16/blocks/blk00292.dat": No space left on device
[2018-07-23 16:19:12.669] Saved "/root/.config/transmission/settings.json"
m 0 of 0 peers (2.52 MB/s), ul to 0 (0 kB/s) [0.00]
[2018-07-23 16:19:12.886] Saved "/root/.config/transmission/resume/raspiblitz-hdd-2018-07-16.389af3fc8216a244.resume"
[2018-07-23 16:19:12.892] DHT: Not saving nodes, DHT not ready
[2018-07-23 16:19:12.893] Port Forwarding: Stopped
[2018-07-23 16:19:12.893] raspiblitz-hdd-2018-07-16: Removing torrent
[2018-07-23 16:19:12.893] raspiblitz-hdd-2018-07-16: Pausing
[2018-07-23 16:19:12.895] raspiblitz-hdd-2018-07-16: write failed for "raspiblitz-hdd-2018-07-16/blocks/blk00292.dat": No space left on device
[2018-07-23 16:19:13.224] Saved "/root/.config/transmission/resume/raspiblitz-hdd-2018-07-16.389af3fc8216a244.resume"
[2018-07-23 16:19:13.236] Saved "/root/.config/transmission/stats.json"

License?

Would like to integrate some of raspiblitz with our project, if the license is compatible.

failure while unlocking lnd wallet

[lncli] rpc error: code = Internal desc = connection error: desc = "transport: authentication handshake failed: x509: certificate signed by unknown authority"

I tried mably/lncli-web#151 without success.

Any suggestion of fixing this?
Is it possible to re-install lnd?

Stuck post Blockchain Download

UNKOWN STATE
It seems that something went wrong during sync/download/copy of the blockchain.
Maybe try --> ./60finishHDD.sh

Do i need to just re-dl it? Is it just timing out trying to sync? I enter this command, and it just pops again after 5 minutes.

Help with the setup

How to setup raspiblitz using HDMI rather than LCD panel?

I've connected my RPI with the image in the SSD card and connected it to a HDMI screen but I got stuck when it shows Started D-Bus System Message Bus. message.

Preperations for future verison updates

Beginning from version 1.0 it should ne easier to update to the latest RaspiBlitz version release.

One way would be to offer an Update option in the main menu or even have an auto-update feature. But I think this is too much work in this phase of the development, because the RaspiBlitz is still much in flux (for example a change in the future from rasbian to dietpi, etc).

An easy to handle update mechanism would be that you simply power off the RaspiBlitz flash the SD card with the new SD card image build and then power the system up again. The setup process would then detect the old config and data on the HDD and use this to configure itself and continue its work. This would even make it possible to update your hardware (different Display, replace Raspberry, etc).

To prepare for this two things would be needed. All config and state data needs to be moved to the HDD - adding also a version flag. This should be done with the release of the version 1.0, so that following updates can utilize this.

If you have comments to that idea, please let me know.

undervoltage detected

LCD screen throw the error before the reboot undervoltage detected during LN setup, with following hdd errors. trying to recreate

can't start bitcoind

waiting to start sync
0.00%
error code: -28
error message:
Loading block index...
(standard_in) 1: syntax error
./70initLND.sh: 24: [: -eq: unexpected operator
./70initLND.sh: 27: [: -eq: unexpected operator
waiting to start sync
0.00%
error code: -28
error message:
Loading block index...
(standard_in) 1: syntax error
./70initLND.sh: 24: [: -eq: unexpected operator
./70initLND.sh: 27: [: -eq: unexpected operator
waiting to start sync
0.00%
error code: -28
error message:
Rewinding blocks...
(standard_in) 1: syntax error
./70initLND.sh: 24: [: -eq: unexpected operator
./70initLND.sh: 27: [: -eq: unexpected operator
waiting to start sync
0.00%

then

./70initLND.sh: 27: [: -eq: unexpected operator
waiting to start sync
0.00%
error: couldn't connect to server: EOF reached (code 1)
(make sure server is running and you are connecting to the correct RPC port)
(standard_in) 1: syntax error
./70initLND.sh: 24: [: -eq: unexpected operator
./70initLND.sh: 27: [: -eq: unexpected operator
waiting to start sync
0.00%
error: couldn't connect to server: unknown (code -1)
(make sure server is running and you are connecting to the correct RPC port)
(standard_in) 1: syntax error
./70initLND.sh: 24: [: -eq: unexpected operator
./70initLND.sh: 27: [: -eq: unexpected operator
waiting to start sync
0.00%
error: couldn't connect to server: unknown (code -1)
(make sure server is 

--force-yes is deprecated

according to man, for apt resp. apt-get the option force-yes should be replaced by either of
--allow-unauthenticated, --allow-downgrades, --allow-remove-essential and --allow-change-held-packages while needed

ensure ssh was enabled

if the user forgot to add the ssh to make the pi accessible or sshd was disabled for some reason, maybe the not running service should be recognized and handled.

other lightning implementations

As far as I see the raspiblitz currently only runs with lnd. is there any reason (other then manpower) to not include c-lightning and have the user prompted which implementation they want to run? If there is no reason I might take the lead to also include c-lightning.

my nodes sd card ran out of space

My SD card was getting close to being full (7gb),
and autocomplete did not work properly.

df -h showed that /dev/root was not full size
as i have an 16gb card

a

  1. sudo raspi-config
  2. 7 Advanced Options
  3. A1 Expand Filesystem
    followed by a reboot did the trick that system can use all the sd cards storage.

Is the script missing the expand filesystem command?
would make sense to add raspi-config --expand-rootfs

BUILD FAILED --> Bitcoin download checksum not OK

Trying to setup a node the manual way. Installing using the script works fine until it should check the code of Bitcoin and it stops with the error "BUILD FAILED --> Bitcoin download checksum not OK".

Anyone else having this issue?

make openchannel script wait/monitor confirmations

At the moment the RaspiBlitz helps the user to open a channel per script: BBopenChannel.sh

At the end the funding transaction gets shown. Now the user has to wait for 6 confirmatins before the channel is ready. It would be cool if the script would monitor this transaction and let the user know the progress of confirmations. Think of a while loop using the lncli listchaintxns

SD-Image Buildscript

At the moment the RaspiBlitz works with a prepared SD-Card image that can be downloaded. Its always a trust issue and the detail of this images lack of documentation.

The goal for the future would be to create a shell script that contains all the changes and installs on then OS base image. This way for anybody not trusting the prepared SD-Card image could invest some more time, take a plain Rasbian https://www.raspberrypi.org/downloads/raspbian/ ,run the shell script on and build a SD-Image fresh.

backlight control for original 7" touch display

the files to control the backlight is owned by root after each reboot, one option would be to change rights at boot time

backlight on/off toggle:

#!/bin/sh
f=/sys/class/backlight/rpi_backlight/bl_power
test -f ${f} || { echo "wrong display, original pi display not found"; exit 3; }
b=$(( 1 - $(cat ${f}) ))
test ${b} -eq 0 && echo "switching on" || echo "switching off" 
sudo sh -c "echo ${b} > ${f}"

change brightness within range 0-255:

#!/bin/sh
f=/sys/class/backlight/rpi_backlight/brightness
test -f ${f} || { echo "wrong display, original pi display not found"; exit 3; }
test $# -eq 0 && { echo "missing parameter: brightness (0-255)" && exit 1; }                                                                         
b=-1
case "$1" in
  "high") b=255 ;;
  "on") b=200 ;;
  "normal") b=128 ;;
  "low") b=25 ;;
  "off") b=0 ;;
  *) test $1 -ge 0 && test $1 -le 255 && b=$1
esac
test $b -ge 0 && shift
test $# -gt 0 && { echo "unknown parameter: $@ - try values 0 to 255" && exit 2; }
sudo sh -c "echo ${b} > ${f}"

enhance torrent

the torrent needs quite a while, mainly because it is seeded rarely; this could be changed if the torrent continues to seed later on after setup.

  • dont download blockchain that was not asked for at setup (e.g. bitcoin, dir testnet3) – also notice that some coredevs (e.g. Peter Todd) want testnet3 to be much bigger than mainnet to discover size issues while testing first and early in advance
  • add webseed (as the FTP storage) to the torrent file or manually to the torrent
  • priorize files in torrent, e.g.
    • dir blocks high
    • dir chanstate normal as this could be indexed on your own (slow but not crucial data)
  • make use of systemd, transmission-daemon.service and config in /lib/…, see this comment
  • switch from transmission-cli to transmission-daemon #25
  • access to status by a limited users would be problematic, so better a separate user "torrent" for running the daemon, other users can be in group "torrent" and have rights to the dirs by that
  • show download status in infoLCD
  • replace rpc-password YOUR_PASSWORD_GOES_HERE with a random string, maybe customized; sed -i "s/YOUR_PASSWORD_GOES_HERE/"$(< /dev/urandom tr -dc _A-Z-a-z0-9 | head -c${1:-128};echo;)"/" ${path_to_settings_json}
  • add local ip range besides localhost to rpc-whiteliste
  • possible option to priorize or disable download for main/testnet via transmission-remote -t ${torrenthash} -pl ${subpath} (prio low) or -t ${torrenthash} -G ${subpath}
  • ensure no download to sdcard to lower wear
  • rsync -rtvL (dont move nor copy; and dereference links) files (while setupState 50) when seeding afterwards is anticipated
  • support RSS feeds with either flexget. or feedtransmission – the latter looks smaller
  • list torrents by date-time-stamp and delete until one left or "keep amount"/"free diskspace requirement" is met
  • create dir for torrents and ensure groups/rights
    • watch-dir /mnt/hdd/torrents
    • download-dir /mn/hdd/complete
    • incomplete-dir /mnt/hdd/incomplete

~/.config/transmission-daemon/settings.json (old, manual config, better use it in /etc)

{
    "alt-speed-down": 50,
    "alt-speed-enabled": false,
    "alt-speed-time-begin": 540,
    "alt-speed-time-day": 127,
    "alt-speed-time-enabled": false,
    "alt-speed-time-end": 1020,
    "alt-speed-up": 50,
    "bind-address-ipv4": "0.0.0.0",
    "bind-address-ipv6": "::",
    "blocklist-enabled": true,
    "blocklist-url": "http://john.bitsurge.net/public/biglist.p2p.gz",
    "cache-size-mb": 4,
    "dht-enabled": true,
    "download-dir": "/mnt/hdd/complete",
    "download-queue-enabled": true,
    "download-queue-size": 5,
    "encryption": 1,
    "idle-seeding-limit": 30,
    "idle-seeding-limit-enabled": false,
    "incomplete-dir": "/mnt/hdd/incomplete",
    "incomplete-dir-enabled": false,
    "lpd-enabled": false,
    "message-level": 2,
    "peer-congestion-algorithm": "",
    "peer-id-ttl-hours": 6,
    "peer-limit-global": 200,
    "peer-limit-per-torrent": 50,
    "peer-port": 51413,
    "peer-port-random-high": 65535,
    "peer-port-random-low": 49152,
    "peer-port-random-on-start": false,
    "peer-socket-tos": "default",
    "pex-enabled": true,
    "pidfile": "/mnt/hdd/torrents/d.pid",
    "port-forwarding-enabled": true,
    "preallocation": 1,
    "prefetch-enabled": true,
    "queue-stalled-enabled": true,
    "queue-stalled-minutes": 30,
    "ratio-limit": 2,
    "ratio-limit-enabled": false,
    "rename-partial-files": true,
    "rpc-authentication-required": false,
    "rpc-bind-address": "0.0.0.0",
    "rpc-enabled": true,
    "rpc-host-whitelist": "",
    "rpc-host-whitelist-enabled": false,
    "rpc-password": "YOUR_PASSWORD_GOES_HERE",
    "rpc-port": 9091,
    "rpc-url": "/transmission/",
    "rpc-username": "",
    "rpc-whitelist": "127.0.0.1,10.0.0.*",
    "rpc-whitelist-enabled": true,
    "scrape-paused-torrents-enabled": true,
    "script-torrent-done-enabled": false,
    "script-torrent-done-filename": "",
    "seed-queue-enabled": false,
    "seed-queue-size": 10,
    "speed-limit-down": 100,
    "speed-limit-down-enabled": false,
    "speed-limit-up": 100,
    "speed-limit-up-enabled": false,
    "start-added-torrents": true,
    "trash-original-torrent-files": false,
    "umask": 18,
    "upload-slots-per-torrent": 14,
    "utp-enabled": true,
    "watch-dir": "/mnt/hdd/torrents/",
    "watch-dir-enabled": true

randompwd.sh

#!/bin/sh
len=32
test -z ${1} -o ${1} -lt ${len} 2> /dev/null && {
        len=32
}
< /dev/urandom tr -dc _A-Z-a-z0-9 | head -c${1:-${len}};echo;

Stuck at "waiting for final Blockchain synch..."

Could you please advise what to do?
Setup been stuck at "waiting for final Blockchain synch..." for 6 days now without showing any progress on the screen.
20180819_090148
Is this normal and should i wait or did something went wrong?
Thanks in advance.

test/fix restoring an old lnd wallet

On the lastest test of restoring a lnd wallet from cypher word seed on lnd wallet setup - the lnd gets during scanning the chain into some undefined state with porinting the following in the outputs ... still not sure why:

2018-08-28 19:10:49.467 [WRN] LNWL: Could not parse output script in 850fc5627818fe8249b71a920247ca4f6b3c7706149c4d04a616047baba1631a:2: opcode OP_DATA_75 requires 76 bytes, but script only has 39 remaining

Needs more testing and fixing. If anybody can repoert if this worked or getting the same error, that would be great.

error after change of hostname

ref: https://github.com/rootzoll/raspiblitz/blob/77a8f90402cc3a17be98394854b546ec22c89376/build.sdcard/raspbianStretchDesktop.sh#L36

problem: when manually applying the script, this line results in error "unable to resolve host raspberrypi"

measure: applying hostname after other changes such as memory split

relating to such problems I'd like to suggest using cmd1 && cmd2 in case cmd2 depends on cmd1 etc.
common example where to apply this, is usage of apt-get or apt with the commands update, upgrade and install

Supporting additional altcoins

Are you guys accepting PR's that add additional altcoins? I'm currently working on a Viacoin raspiblitz, and was planning on maintaining my own fork. However I would much prefer not diverting from upstream like that.

Run RaspiBlitz behind TOR

Running the RaspiBlitz behind Tor as a hidden service would be great ... not just because beeing more anon. Its perfect to make the node publicly available even when behind a NAT - without having to set port forwarding, etc.

See discussions for inspiration here: https://twitter.com/Stadicus3000/status/1017704449303867393

First step would be to write a shell script that installs and setups a TOR hidden service and takes care about the settings. If we then have also a script that would reverse this process, we could add a option into the main menu to switch TOR on and off.

Torrentseeding with RaspiBlitz

To increase the number of seeders of the torrent file and to speed things up it would make sense to let the RaspiBlitz seed the torrent once it is downloaded.

There are some things to consider: At the moment after torrent download, the torrent gets renamed/moved and the directory is used for the bitcoind - so seeding an active used directory is not a good idea. To instead of moving the torrent it would need a copy after download. The 1TB HDD has enough space for that. But the copy could add another 2h of setup time.

The the best way would be from my perspektive: When user chooses torrent download, another dialoge is asking if the user would like to share/seed the torrent after download permantly. If "YES" then instead of movng the files they get copied after download. And Transmission gets added to the systemd services - starting everytime on boot.

Piece 102422, which was just downloaded, failed its checksum test

While downloading the chain data for raspiblitz via torrent, throughout the entire process starting from 1% or so, I saw the log being full of:

"Piece 102422, which was just downloaded, failed its checksum test" all the way through 99.9%

[2018-07-29 11:25:49.378] raspiblitz-hdd-2018-07-16: Piece 102422, which was just downloaded, failed its checksum test
[2018-07-29 11:25:49.849] raspiblitz-hdd-2018-07-16: Piece 102422, which was just downloaded, failed its checksum test
[2018-07-29 11:25:50.517] raspiblitz-hdd-2018-07-16: Piece 102422, which was just downloaded, failed its checksum test
[2018-07-29 11:25:51.161] raspiblitz-hdd-2018-07-16: Piece 102422, which was just downloaded, failed its checksum test
[2018-07-29 11:25:51.605] raspiblitz-hdd-2018-07-16: Piece 102422, which was just downloaded, failed its checksum test
Progress: 99.9%, dl from 1 of 4 peers (3.11 MB/s), [2018-07-29 11:25:52.500] raspiblitz-hdd-2018-07-16: Piece 102422, which was just downloaded, failed its checksum test
[2018-07-29 11:25:53.136] raspiblitz-hdd-2018-07-16: Piece 102422, which was just downloaded, failed its checksum test
[2018-07-29 11:25:53.622] raspiblitz-hdd-2018-07-16: Piece 102422, which was just downloaded, failed its checksum test
[2018-07-29 11:25:54.032] raspiblitz-hdd-2018-07-16: Piece 102422, which was just downloaded, failed its checksum test
[2018-07-29 11:25:54.475] raspiblitz-hdd-2018-07-16: Piece 102422, which was just downloaded, failed its checksum test
[2018-07-29 11:25:55.196] raspiblitz-hdd-2018-07-16: Piece 102422, which was just downloaded, failed its checksum test
[2018-07-29 11:25:55.821] raspiblitz-hdd-2018-07-16: Piece 102422, which was just downloaded, failed its checksum test

Segmentation fault

*** Checking Download ***
wait a moment
download size is(231230516)

FAIL - download is not 460422200
--> RETRY(2) in 10 secs

LND scanning info: Add date info

lncli getinfo gives a best_header_timestamp --> transform timstamp to date and display as additional scanning info in 70scanLND.sh

better bitcoind warm up time

At the moment on a already setup raspiblitz the script gives the the system a fixed grace period to warm up. But even sometimes 120 seconds are not enough. So after a minumum time (60 secs) a script should really check if warm up is done before continue by check if you get no error output when calling bitcoin-cli.

secure and test pi user

At the moment the raspiblitz makes an auto login on powerup with user pi to play info to the display. At the moment this user has too much rights. If some gets physical access to the device, you just need to connect a keyboard and you own it.

TODO: Limit rights of unix user pi, use readonly.macaroon with lncli and test what this user could still do.

Test and make the basic function scripts more user friendly

The RaspiBlitz provides in the main menu some basic scripts like "Fund your wallet", "Add Peer" or "Pay Invoice". These are kind of shell script wrappers for the basic lncli commands - to make your start more easy but learn on the way a bit more about doing the basic stuff.

All those scripts start with BB like for example BBfundWallet.sh in the home.admin folder, if you want to take a look at their source code. You will find TODOs in there to improve the shell scripts - can be a good starting point.

Even if you are not a coder, you can help user testing. Use this basic functions and describe situations here in the comments, where you got confused or ran into a situation you felt unsecure what is going on, needed more help.

Progress on ScanLND is long at 0%

This seems because LNs is till waiting for blockchain to be in sync (catch up from preindexed old state) .. to wait for 0.99 ios not enough ... maybe up to 0.998 in 70iniLND.sh ... or just detect in scanLND that syncing Blockchain and display that to user.

This would be the line in LND logs to scan for:
Aug 02 17:41:38 raspberrypi lnd[3176]: 2018-08-02 17:41:38.270 [INF] LTND: Waiting for chain backend to finish sync, start_height=1354631

LND Blockainscanning finish detection

Had the case that the LND scan worked but the setup was still showing the san screen. The scan loop should also detect if the lnd wallet is unlocked und end in this case scan loop.

Switch Mainnet/Testnet

In the 00mainMenu.sh (when all setup is done) - the option should be presented to switch between mainnet and testnet. Building a shell script XXswitchNet.sh for this would be great.

missing permissions (here still inline sudo)

https://github.com/rootzoll/raspiblitz/blob/77a8f90402cc3a17be98394854b546ec22c89376/build.sdcard/raspbianStretchDesktop.sh#L235

still in dir /home/admin/download and current user will not have write permission for wget

as well as

https://github.com/rootzoll/raspiblitz/blob/77a8f90402cc3a17be98394854b546ec22c89376/build.sdcard/raspbianStretchDesktop.sh#L327

and

https://github.com/rootzoll/raspiblitz/blob/77a8f90402cc3a17be98394854b546ec22c89376/build.sdcard/raspbianStretchDesktop.sh#L328

in dir /home/admin

I suggest

  1. putting grouped commands such as installation for bitcoin, litecoind and lightning in functions, this way the user can be set on calling the function rather than on every command – also it would make it easier to have the user calling e.g. to install litecoin but not bitcoin or any other combination of provided other client/blockchain etc.
  2. before proceeding with a file, check test -f ${fn} is recommended or check on success for previous command (with e.g. && or test $? -eq 0)
  3. checking once in the beginning of a script if the needed rights are given and reject any execution if so, e.g.:
#!/bin/sh
# first check if user is root or script was run with privileges (e.g. sudo)
# such functions can be written once in a library-script
# and used several times after `source lib.sh` 
function requireRights() {
  {
    test "$UID" = "0" || test "$EUID" = "0" || test $(id -u) -eq 0
  } || {
    printf "%s\n" "This script must be run with root privileges!" 1>&2 && exit 1
  }
}

requireRights

Add a Admin WebUI

To have a WebUI the user can call to control the RaspiBlitz from Desktop or Mobile with more detailed options would be great.

Check Webseeds of Torrents and help Seeding

RaspiBlitz uses Bittorrent for downloading:

SD-Image: [OUTDATED LINK] --> check end of thread
Blockchain Download: [OUTDATED LINK] --> check end of thread

If you want to help out: Seeding this torrents would be great.

Both contain WebSeed-URLs for better availability and speed ... but on my test I was not seeing my torrent client using those WeebSeeds. If someone with more torrent expertise could check out if WebSeeds work ... test feedback welcome.

detect error on lncli create

on a testrun where in creating the lnd wallet I used a cipher word list from a wallet that had also a passphrase (pass d). But I dont entered a password d. that was leadingto a output of:

[lncli] rpc error: code = Unknown desc = invalid passphrase

But the setup script was not detecting this and tried to continue and failed (because no macaroons got created). Try to detect any error output on the lncli create within 70initLND.sh.

Got error when running lnd on mainnet

I cannot start the lnd service properly and got the following error:

unable to load RPC credentials for bitcoind: please set all or none of bitcoind.rpcuser, bitcoind.rpcpass, and bitcoind.zmqpath

And I found that bitcoind.zmqpath is not set in my lnd.conf:

It works after adding bitcoind.zmqpath=tcp://127.0.0.1:29000 to lnd.conf.

Litecoin Integration

Today I uploaded the basic Litecoin integration. You can now choose in the first setup screen if you want to run your RaspiBlitz on Bitcoin or on Litecoin.

bildschirmfoto 2018-07-29 um 22 35 34

Use latest SD card image linked in master README.md

Im still running the setup process tests. Any help on trying out Litecoin on the Lightning Network with RaspiBlitz is welcome. Here are some links to try out:

https://github.com/ecurrencyhodler/Litecoin-Resources/blob/master/Lightning%20Network%20Apps.md

Let me know your feedback and issues.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.