Skip to content

Date: 2025-03-03

TODO

lnd/docs/INSTALL.md at master ยท lightningnetwork/lnd

Also just run this MegalithicBTC/LND-With-Docker: Example of LND with Docker, Bitcoind, and Tor

For the last two weeks I have manically been trying to understand the Bitcoin Lightning Network and get a node up and running on it.

But why was I so interested in this quest, when I got 100's of other things articulated here in my Obsidian Vault.

The main reason I decided to research the Bitcoin Lightning Network was based on feedback from my Mememaps.net Nostr Meetups. When I asked people what they want to do on Nostr, about a third the audience said they wanted to make money. This made me realize the only real difference between Twitter/X and most Nostr clients is this Zapping(Tipping) functionality one can do on posts. Therefore as a wannabe Nostr expert that is going to eventually develop their own Nostr Client I need to know and understand this Zapping stuff on the Bitcoin Lightning Network.

Over the last two weeks I have probably spent like 30-40 hours troubleshooting TLS, x509 Certificates so that all the difference piece of the Lighting Nodes can connect.

Got Way too attached to btcd

I really liked the idea of using btcd becuase then I would have to learn how to use a separate wallet software and therefore learn the bitcoin RPC interface.

This turned into a big mistake, btcwallet is really fucking hard to setup let alone use.

Also turns out btcd is not only harder to configure with lnd because it uses specific certs but I found a weird nuanced bug using btcd on testnet with lnd that made all that work I previously did useless. I was getting a Received block connected notification for height $BLOCK_NUM while rescanning error log then all the wallet functionality of lnd broke even through the logs of lnd still showed it was still receiving blocks just fine.

Wrong assumptions of Network Setup

I run a Local Bitcoin Node that I connect via a Tailscale Proxy to a VPS. I origionally thought that it would be cool if my Bitcoin node could go down and the Lightning Channels can be closed separately... but no the Lightning Network Daemon is directly attached to the Bitcoin node, if it doesn't have a connection to a bitcoin node it doesn't work.

Therefore I might as well run the entire Lighting Node on one of my personal Machines.

And if that is the case I might as well use the Neutrino Mode of lnd.

Didn't start the project with Well Articulated Goals and Questions

The inital project was pretty simple. Setup a Lightning Node with LNBits so that people at my Nostr Meetup can be on boarded to Nostr with Zaps enabled. I could give everyone a couple hundred sats and we could go around zapping Nostr accounts and posts we liked.

At any point I could have attained some self awareness and tried a Lighting Network Saas Offering like rizful.com, lnfi.network, or voltage.cloud or the variety of tools to host Lighting Stuff such as MegalithicBTC, Umbrel, or Start9. I could have at least tested this software and read through its source code before going out an trying to do it myself all from scratch.

Lightning Network Stuff Still TODO

  • I should have done daily project updates, one at the beginning and one at the end, this needs a Playbooks
  • I need to interface with the community, I need to scope out questions and research this
  • I still don't know what I want after I get this Lightning Node up and running
  • Where is the best documentation and tutorials for each service
    • bitcoind, conf file, help command, example arguments
    • btcd, conf file, help command, example arguments
    • lnd, conf file, help command, example arguments
    • lnbits, conf file, help command, example arguments
  • Export the lnd graph into a cool database
  • Learn Nostr Wallet Connect API
  • Get LNBits running on mainnet
  • Map out what people can actually do with Lightning Bitcoin
  • Record video deploying simnet Lightning Channel and closing it
  • Record Video Deploying TESTNET Nodes, Opening a Channel then closing a channel
  • Testnet Wallet
  • TOR Stuff
    • Configure TOR Proxy
      • Docker
      • Host, so CURL can work
      • Host, so Onion sites work in all browsers
      • Socks Proxy for Firefox/Chromium
    • Configure TOR Service
    • How to Scrape Through a Socks Proxy
    • Configure LND to use TOR Proxy
    • Configure LND to use TOR Service
  • How to proxy a HTTPS service
  • Watchtower Stuff
  • Backup and Restore LND Node and other Stuff

How The Project Should Have Went

  • I should have been developing a clearer Knowledge Graph of the Lighting Network in here, right now it is a complete mess.
  • I sit down and only do research one day, I thought I knew all about Lighting Network because I have run Umbrel in the past and deployed various Ethereum and Cardano nodes but Bitcoin Lightning Network is much more complex.
    • All that research should have been published on mememaps.net and then shared with people on Social Media
  • I should have articulated my goals as specific as possible in a series of Project Updates, maybe even bunching them together in a series of projects, this is getting a bit more complicated than raw ETL to QE, though I guess the DD20 Token Standard, AI Chat bot Micro payments, and micro payment hosting all fit into the scope of ETL to QE
  • I should have come up with a list of options for example we have Core Lighting, lnd, and Lightning Development Kit and each of those have a series of documentation, docker containers, github repos, and mentions on Social Media that I should be able to take a look at.
  • But before trying to deploy something myself whatsoever I should have tried the Bitcoin Lightning Network SAAS's
  • I could have created a review of each of these SaaS offerings
  • Since these SaaS offerings onboarded me to the Bitcoin Lightning Network I could try out all the various app integrations such as Nostr Clients Zapping integrations, searching Bitcoin Lightning Network Applications and going through the following services,
  • At this point I would have done enough research where I could have created a series of User Journeys to understand what I could do with Bitcoin Lighting Network

Lessons Learned

  • Maintaining proper perspective is the most important part of project management
  • I should do a Project Update Post before I start a project and answer a series of questions such as those from a Catechism
  • The Sunk Cost Fallacy is a trap, I need to articulate how much time and effort a task is expected to take and reassess after I have committed that much time and effort
  • If I want anything I do to be successful I need to think of people first. User Centered Design and stuff is very important.
    • As part of that Catechism project scoping I should research the most important people in the space, such as thought leaders, people that would work as a technical mentor, and communities I can go to get help. This should be done before I try to deploy anything personally.
  • I should be working on two projects simultaneously so they they give one another perspective.
    • I should also take Elevator Pitch voice notes describing the projects I am working on every day before I start working on them