Running Lightning on a Raspberry Pi with RaspiBlitz

There is a contingent of Bitcoin-rogues (some falsely claiming to be the prophet Himself, Satoshi Nakamoto) who argue that “Satoshi’s Vision” was designed to be a decentralized peer-to-peer cash system and because Bitcoin does not currently scale as quickly at 7 transactions per second as centralized payment systems currently processing 24,000 transactions per second, like Visa and Mastercard as reported by CoinTelegraph, it does not qualify as a currency because it’s not a convenient method of payment and somehow doomed to fail- nothing could be further from the truth. Satoshi Nakamoto quite clearly stated the contrary over a decade ago on bitcoin.org:

According to the Blockchain.info block-explorer, the median confirmation time (the median is a more accurate metric than average due to sporadic volumes) is approximately 5.7 minutes for a Bitcoin transaction to effectively net after the transaction has been accepted in a newly-mined block. This sentiment is also echoed by Bitcoin Core Developer, Jimmy Song, reiterating that Bitcoin’s trade-off with running a truly decentralized blockchain is convenience and speed in return for greater security.

Bitcoin-median-confirmation-time

Bitcoin’s “scalability” isn’t a “scalability-problem” insofar as it’s really a feature, not a bug. The delay in time-preference is the small-price we pay to avoid problems like double-spending and trusting centralized-authorities. If anyone has ever attempted to send $USD from one American bank to another bank, like HSBC in Hong Kong, 5.7 minutes is much quicker than waiting two to three days for FedWire to clear SWIFT. Nevertheless, charlatans like Roger Ver and Charlie Lee have emerged with their solution to an invented “problem” by respectively introducing Bitcoin-Cash (B-Cash) and Litecoin, or centralized cryptocurrencies with expedited transaction-times at the expense of less secure blockchains to compete with entirely different methods of payment like Visa and MasterCard; their solutions are tantamount to a crypto foot-race between someone carrying 100 pounds of gold-buillion and someone carrying a cashier’s-check denominated in US-Dollars for $2,405,2- simply stated the runners aren’t carrying the same products and everyone would generally prefer the former at this stage in the game. A “native” solution to the scalability problem has emerged from the Bitcoin Core Developer environment- the Lightning Network- which attempts to scale Bitcoin transactions off-chain or outside the Bitcoin Network. Although the Lightning Network garnered considerable hype after it first launched 18 months ago boasting 1,100 BTC capacity across all channels, as of this post, it’s beginning to stagnate at 844.76 BTC according to 1ML.

Lightning Network Metrics

Giving Lightning a Shot- Why Not?

Although the Lightning Network storm may be dissipating, it’s worth experimenting with as a quasi-native solution to Bitcoin scalability. The RaspiBlitz instructions as documented by rootzall proved to be the most cost-effective approach requiring only about $150.00 in parts:

raspiblitz-raspberrypi-2
A Raspberry Pi 3 B+ Running Lightning with RaspiBlitz
  1. Raspberry Pi 3 B +
  2. Seagate 1 TB external USB hard-drive
  3. Raspberry Pi 3.5″ touch-screen display
  4. 16 GB SanDisk MicroSD
  5. Keyboard

Since the RaspiBlitz documentation provided was so thorough, there is no need to document this demonstration, however, please note a few errors that can easily be avoided as described.

Do Not Use External HDMI-Monitor

Please note, the RaspiBlitz software builds for the mini-LCD display on-board, so don’t expect to initially install or configure RaspiBlitz on a Raspberry Pi with an external-HDMI monitor or you will encounter a hanging-error on screen “Stuck in Initial boot of v1.1 upgrade,” which can easily be avoided by unplugging the HDMI-monitor and booting the RaspiBlitz install with the 3.5″ RaspberryPi mini-LCD screen; there is no need to install the mini-LCD screen drivers because the RaspiBlitz install is already pre-loaded. Also note- the install requires some knowledge of remote connection via secure-shell access or SSH from another terminal on a local network.

Secure Copying the Blockchain

There are essentially three ways to download the Bitcoin Blockchain:

  1. Downloading the Bitcoin Blockchain directly from the Bitcoin Network
  2. Cloning the Bitcoin Blockchain from a second external-USB hard-drive
  3. Secure-Copy from another computer on local-network

Since downloading the entire Bitcoin Blockchain can take-up to 5 hours on an average 2018 MacBook Pro with a fiber-connection, the download will probably time-out the little Raspberry Pi 3 B+ due to insufficient RAM. Cloning the Bitcoin Blockchain from another computer on network is preferable (as detailed on this post, “How to Run a Bitcoin Full Node on a Raspberry Pi 3/B+”), however, the Raspberry Pi 3 + power-supply may not be able to handle two external-USB hard-drives depending upon the power-supply, so secure-copying from another computer on network is recommended; assuming a connection can be established to the Bitcoin Core path on the host-computer, copy the path (ie pwd) and secure-copy to the RaspiBlitz running on the Raspbery Pi according to the following syntax:

  • sudo rsync -avhW --progress ./chainstate ./blocks your-hostIP-address:/mnt/hdd/bitcoin
  • e.g. sudo rsync -avhW --progress /media/alexanderjsingleton/SEAGATE/.bitcoin/chainstate media/alexanderjsingleton/SEAGATE/.bitcoin/blocks bitcoin@xxx.xxx.x.xxx:/mnt/hdd/bitcoin

The RaspiBlitz will guide the install but it’s noted above for the sake of convenience. If you’re unfamiliar with command-line syntax, check-out explainshell.com and copy/paste the commands herein to understand what they execute.

Port Forwarding or Onion Routing

raspiblitz-onion
Running Lightning Behind Tor

A conventional set-up with port-fowarding enabled will require the following port-forwarding rules enabled for ports:

  1. 8333 (Bitcoin/mainnet)
  2. 9735 (LND Node)
  3. 10009 (LND RPC)
  4. 8080 (LND REST API)

However, it’s best to host the RaspiBlitz Lightning Node with either Dynamic DNS or, ideally, by enabling Tor Onion Routing Services on RaspiBlitz- surprisingly, running Lightning over Tor does not require extensive cypherpunk knowledge with Tor Hidden Services because RaspiBlitz automates the process. According to Rootzall, running the Lightning Node with Tor Hidden Service in lieu of Dynamic DNS or port-forwarding adds the following benefits:

  • You don’t publish your IP running a node so its much harder to resolve your real name and location.
  • You tunnel thru the NAT of your router and make Bitcoin and Lightning reachable to all other TOR nodes.
  • By using a TOR address it’s possible to move the node to a different IPv4 address and keep the existing (=preciously open and funded) channels function

While incurring limited compromises on the Lightning Network:

  • Mobile wallets don’t support connecting over TOR yet.
  • Lightning nodes that don’t run TOR cannot reach you (like behind NAT)

Again, it’s very simple to enable Tor Hidden Services within RaspiBlitz- simply select “Services” from the main boot-menu and check the box for “Run Behind TOR”- and after a sudo reboot that is it; running Lightning with RaspiBlitz over Tor is much easier, even for n00bs who are not familiar with modifying port-forwarding rules or Dynamic DNS on a network-router- and it’s probably more secure for the Lightning Node and the entire network.

Leave a Reply

Your email address will not be published. Required fields are marked *