I asked ChatGPT to help me set up a Lightning node and it was worse than having COVID
An epic quest, undertaken sitting down.

I’ve never been one to throw around the word “trauma.” I’m Gen X. We suck it up. But I spent the last week or so working with ChatGPT to set up a Lightning node and I might need counseling.
Lightning is the permissionless layer on Bitcoin that makes it cheap and fast. What Lightning doesn’t do is make it easy. I had always wanted to join it, but doubted my technical ability to do so.
But the world has changed, right? I thought the time might be right. After all, everyone else is out there vibecoding up desktop alternatives to multi-million SaaS corporations while they babysit their kiddos running through analog playgrounds, but just hooking my unused laptop up to an 8-year old software layer has me ready to join a monastery and foreswear earthly attachment.
Two weeks or so ago I opened up ChatGPT and asked it if I could take an idle Linux laptop and turn it into a functional Lightning node. Yes, it assured me, this would be fairly easy.
When is Sam Altman going to fix these hallucinations?
Of course it wasn’t easy. ChatGPT is like the worst case of a customer support script going infinite. But it confidently assured me that attaining self-sovereignty Poon-Dryja style would be a straightforward collaboration between Chat’s ethereal knowledge and my corporeal fingers.
LFG.
So then I asked: How long do you think it will take to get it all fired up?
Here is exactly what it printed:
Active setup time
If you use Umbrel on your Linux laptop:
Install Docker + Umbrel: 30–60 minutes
Initial configuration clicks: 10–20 minutes
Sending BTC to the node + opening first channel: 10–20 minutes
So your hands-on time is roughly 1–2 hours if nothing weird happens.
If something weird happens, add another hour. Linux likes to express personality sometimes.
Reader: To say this was inaccurate would be like saying that the United States remains mildly divided over the question of what did and didn’t go wrong after the coronavirus reached our shores.
Every single step made me despair of machines. If this is self-sovereignty, then please make me a slave. Setting up Lightning made me feel like Joe Pantoliano’s character, Cypher, in The Matrix, begging the overlords to lock me safely inside its fences, a sheep protected from the wolves of Node, Bash, LND and channel-states.
So, ChatGPT’s plan was to get a Bitcoin-eager operating system, UmbrelOS, firing on my laptop. Then to set up Bitcoin Core, LND and fund it. No problem, right?
Chat was Lewis. I was Clark. We were in Camp Wood, Illinois. Neither of us knew what we were in for.
Getting to Umbrel
So ChatGPT told me that I needed a certain amount of storage on hand to be able to host a Bitcoin node. I was pretty sure I had it, but I wanted to check. It told me the code to type into the terminal to find out.
Turns out I had a terabyte drive, but I was using about 15% of it. This, Chat told me, would be fine. I asked if I should clear off more stuff and Chat said that wouldn’t really be necessary for now.
OK, so how do you take that?
The way I took that was that we’d leave the operating system that I had on the laptop in place. This Umbrel software it had told me about was something that would run as an app on that OS — or so it seemed to me.
We’ll come back to that.
One mistake I’ve made in a lot of my relationships is acting more competent than I am. Someone will ask if I can help with something, and I will say that I can, more because I’d like to believe that I could than knowing that I can. Sometimes this works out well.
Working with ChatGPT reminds me of what it must be like for other people working with me.
Purism laptrip
At this point I didn’t understand what Umbrel was at all. If you look at the UmbrelOS page, it seems to be a personal server? I was just taking Chat’s word for it as the best option, honestly.
Based on its marketing, Umbrel seems to be a pretty flexible system, but I found something it can’t do: It can’t run on my Linux laptop. The laptop I have is from Purism, the Librem 14, which makes devices that don’t just not spy on you, they also, in fact, fight spies. I think the laptop I bought was their first.1
I thought it was cool that it had physical switches that could disable its sensors, like the camera and the mic and even the wi-fi, so you could know they weren’t on. It took way longer than expected to deliver, and then when I finally did get it I learned that it had this really touchy keyboard.
There’s a lot I could say about this keyboard, but allow me one complaint: The right shift key is half the size of what you’ll typically find, and it sits right against the ‘UP’ cursor key. In practice, this means a touch-typist often finds their cursor jumping unexpectedly to the wrong place.
Not only is this frustrating for a professional writer, it’s also challenging on a device that expects you to enter passwords 17 times per day.
Eventually, I bought my first Mac and stuck this Librem in a drawer.
My advice? In love, leap without looking. In hardware, wait for the third build.
Once more, unto the breach, dear friends, once more
Our AI overlords may approach brilliance, but ChatGPT got this process wrong from its first move.
It tried to have me install Docker and then install Umbrel inside a container. Umbrel is no longer cool with that, though. Umbrel is a jealous coworker. It wants its system all to itself.
So then we tried to flash Umbrel onto a USB directly, but when I went to boot from the USB, it just ended up with a black screen saying it was booting from the disk, forever.
Then we tried doing it with something called BalenaEtcher, but that wouldn’t run either.
We tried doing it with something called Ventoy, that got a little further but it still wouldn’t get there. That’s when ChatGPT said something called SeaBIOS on my laptop was being touchy.2
It was amidst this series of mildly iterated attempts that I learned that Umbrel is “headless,” meaning the display on my Linux would become useless. I would access Umbrel from another device on the network.
This seemed like additional complexity. I was in no mood for adding on more things that could go wrong.
If this is self-sovereignty, then please make me a slave.
Anyway, I think Umbrel installed on the USB, but the Librem wouldn’t run it. ChatGPT tried to get me to do things I had already done again and hadn’t worked, and I called it out. So then it decided I should download Ubuntu in order to get into the guts and make more changes.
The consensus out there right now is that AIs are technically brilliant and vibecoding is the perfect future.3
So you’d think these suckers would be able to reliably just get software installed.
Forget Umbrel
So we pivoted my PureOS laptop into an Ubuntu laptop. I know, I know: Ubuntu is like the Disney of Linux. Whatever. At this point my patience was roughly like Dave Portnoy reading the chapters about the mechanics of whaling in Moby Dick. We were going for alacrity.
But, with Ubuntu chugging, ChatGPT tells me to install Docker again in order to run Umbrel inside it. So I do that, but as it fails I recall that this is the same move we made on PureOS a couple hours ago. That is, we had already learned: Homie don’t play that.
But that had been hours ago. So I had forgotten. But I was learning something deeper: ChatGPT taught me the limits to which I can rely on ChatGPT.
After realizing its mistake, the LLM starts urging me to fiddle with the deep juju of my laptop so that this time when I tried to boot from the flash drive Umbrel actually would fire, but that’s when I put my foot down.
There was another path.4 Just run LND on Ubuntu.
Command life
Largely, computer users fall into one of two categories. There are coders, people who can actually get into the guts. Then there are users, people that don’t do anything unless someone in Silicon Valley has thought through a graphical UX for them.
I flatter myself that I’m a secret third thing: As the situation requires it, I will open up the terminal and futz with that black screen’s blinking cursor, though I have no real idea what I’m doing in there. It’s just that I’m willing to hunt down detailed instructions for doing something then type what I’m told.
This has worked out for me often enough. Sometimes I manage to even kind of start to learn something, but it never sticks, because it’s always too long before I open the terminal again.
You never forget how to ride a bike, but there doesn’t seem to be any muscle memory on the command line.
I note this only because this path has basically dedicated my Lightning node to command line administration. Which also means that I will need AI to guide me every time I want to do anything.
By this point in our tale, ChatGPT had started to run very slowly for every question. Looking at the text file I made to read back through these logs, this whole conversation reached 32,000+ words by this point, and there were miles of misdirects to go.
That syncing feeling
I was getting ready to walk away for a while — thank God.
One last move: set my laptop so it would keep running with the screen closed. That took a restart, but it was fine. Once we had it back on, the node was syncing.
I’m glad I can close the lid of my laptop, tuck it somewhere I can’t see it and ignore it. Bitcoin? I love you. But I don’t want to see your face right now. Actually, running a node might be like simulated parenting?
There was a point in there when I considered just buying something built to run Lightning, like one of those little home servers in a box that Umbrel sells.
But I had come this far. I had the machinery and frankly what I had was more powerful and could theoretically run better than any of those options, and it wouldn’t cost me a thing.
So I persevered. As the Clark to Chat’s Lewis, I could see that it was the winter of 1804 on our journey across the wilds of open source, and we had reached the Bitcoin hobbyist equivalent of present day North Dakota. So we built Fort Mandan, and I slept.
An aside: I hope no one is actually using this as a guide, but just in case you’ve been kicking around creating a Lightning node, I have one key piece of advice:
You are going to create so many passwords that it’s a problem. Be very disciplined about logging these where you will find them as needed.
Now I just needed to let my laptop catch up with Bitcoin, and honestly I was happy to have that break. A day-and-a-half later my Bitcoin node was fully synced.
Say yes to the reckless
Now for Lightning.
Installing Go was easy. Installing LND had a couple hiccups, but nothing too serious. When it was time to create my wallet, it was decently late in the evening and working with all this code I didn’t actually understand had stressed me out enough that I was tired.
But before sleeping I did something I had never done with ChatGPT before: I asked it to give me a snapshot of where we were at so that I could load that into a new instance and start fresh.
With its memo from the prior instance, ChatGPT was ready to rock and roll immediately. As soon as I gave it the state update, it spat out six detailed next steps.
(The prior instance had learned by then that that was four or five more steps than I ever wanted to see.)
I told it I would hop right into the first step, creating the wallet, the next day.
Once I got back to it I set up the wallet without much trouble. Then I was confused to find that I also needed to create a Pay-to-Witness-Public-Key-Hash (p2wpkh) wallet. I actually didn’t get this until I was working on this essay and going back through my dialogue with ChatGPT, which did explain the point of that somewhere along the way in a note that I ignored at the time, but which I will now quote for you:
All addresses generated by:
lncli newaddress p2wkhbelong to the same Lightning wallet.
They are just different receive endpoints derived from the same seed.
Think of it like:
different email aliases
same inbox
OK that makes sense. I guess I am learning something!
With LND running, Bitcoind in sync and a wallet, I got connected to peers pretty quickly, so I was sharing data on the network, if not yet money.
The next part is where it got really frustrating, however.
Commit to the bits
I thought I had understood Lightning (pretty much), but then as I tried to use it, it got more confusing. It’s like learning about dating from watching romantic comedies.
Lightning gets set up by technical wizards. Romcoms are made by movie stars. You can only learn so much from either one. One day, you’re an average person up against either context and you start hitting friction neither of those groups even notice.
The core idea of Lightning is payment channels. You can’t be a part of routes on the network unless you have at least two channels open. Without at least two channels, you’re a dead end.
Payment channels hold actual money. The amount of money they hold effectively becomes money bandwidth on the network. More money can move more money.
So you have to post some money to participate. You’ve got take on a little risk, but theoretically you will also earn some in fees for taking that risk.
So I started looking for folks I could open channels with. I wanted to start small. Since whenever anyone talked about Lightning, they talked about how great it would be for small payments, I figured small channels would be common.
I was just so stressed out by now from all the little mistakes and hiccups along the way that the thought of putting money into this thing was causing my back to clench up like one of those scenes in a horror movie after a character has been possessed.
But Lightning has become considerably more functional. However, as much as we might have liked it as a way for people to buy tchotchkes from crafty types at Libertarian events or to pay for access to quirky blogs, the truth is that the big use case for Lightning has been moving money around between the big Bitcoin businesses, such as exchanges and payment firms.
The bigshots don’t really want to bother with little channels. Lots of the most notable nodes only accept channels with 400,000 sats in them (like $300, ish), as a minimum.
The site that seemed to work best for me to find potential channel partners was LightningNetwork.plus. But it took digging and trial and error.
I’m going to explain something that I still find baffling about Lightning in a minute, but let me just note that I learned the baffling thing at this point in the process, as I was talking to ChatGPT about connecting my first channel.
ChatGPT is like a new stepfather. His priority isn’t actually to help the kid so much as it is to make his new wife believe he’s trying.
In the meantime, I got some BTC into my wallet. We were ready to Bitcoin Pizza Party. I spent way too long watching transactions confirm and confirming that on my own node. Everything just felt fragile.
I felt fragile.
Hold me?
It occurred to me at this point that there must be a user interface that people have built to drop onto LND, so I asked ChatGPT about that. It suggested a few and I chose Thunderhub.
Reader: Don’t choose Thunderhub.
Getting it to work was its own sidequest; even with it running, basically nothing in Thunderhub worked to do anything. I’ve got a GUI that confirms that LND is still in sync and that’s it.
It was somewhere around here that I realized, as previously mentioned, that I had not written down a key password: my sudo password, which was a nerve-wracking moment. I had luckily been lazy and reached for an old standby, so it came back to me.
One point for bad OpSec.
Making friends
Someone needs to get the folks at Tinder to make an app for matching up Lightning peers. On Lightning, you hook up for entirely superficial reasons and the commitment level is lite. It’s an ideal use case for matchmaking experts.
I wasted a lot of time asking ChatGPT to suggest peers for me before I realized that it could not reliably identify folks interested in connecting with n00bs. And this is the trouble with ChatGPT. You can ask it a question and it will very seldom say it can’t answer that. It will tell you something. You’ve got to develop a feel for when it doesn’t actually know.
ChatGPT is like a new stepfather. His priority isn’t actually to help the kid so much as it is to make his new wife believe he’s trying. It will spit out a lot of words without giving you any clear indication that it doesn’t know what it’s talking about.
LLMs sound just as confident when they have no idea as they do when they are answering a question about something well documented in their training data. You would think the LLMs know on some level when they are extrapolating from thin data, but they’ll never tell.
I suppose the bright side of this part of the story is that there is at least one bit I did myself.
After scouring through lists of Lightning nodes by hand, eventually I found CoinGate on LightningNetwork+, and ChatGPT was able to give me the command line instructions to connect. I liked the idea of CoinGate as a channel. I had heard of that company, and it was connected to lots of other nodes.
This was my next surprise: The transaction to fund a channel takes forever.
It’s not real till there’s been three confirmations on the Bitcoin blockchain. This seemed to take about an hour, surprisingly, and getting that first confirmation seemed to take an eternity.
But I got there.
There are two sides to every channel
I got my CoinGate channel going with 70,000 sats (like $40). All to the good.
I needed to get 35,000 on the other side of the channel, which brings us to the part that I just really don’t get.
The way you get 35,000 sats to the other side is to spend it in some way. The way I did that was to just send 35,000 sats to a Wallet of Satoshi address that I spun up for that purpose. So now I have $20 worth of BTC sitting on my phone.
You can’t just put sats on the other side because that’s effectively giving them to your peer. If the channel were to close, you’d only be able to claim half your sats.
I suppose that makes sense but it’s really cumbersome.
As ChatGPT put it:
There isn’t a physical-world analogy that really matches it, which is why every explanation eventually collapses into nonsense about tubes, water or arcade machines.
Once I got that done, I contacted someone I know who had a Lightning channel and opened a channel to them with 60,000 sats.
These are tiny channels. I am not a superhighway, but at this point I’m technically a route on the larger network. Lewis got me to Fort Clatsop. It’s 1805. We’d survived. We’ll spend the winter here and maybe once spring comes for my mental health I will open up some more channels.
For a treat. Once that feels like a treat, at least.
I contacted a blockchain world developer I know and asked him if he had a Lightning node. He had, he said, but not any longer. “Lightning probably shouldn’t exist,” he told me.
I don’t know about that, but you probably shouldn’t try to use it if you’re as dumb as me.
Look, I’m glad I did this in the way that people are also glad that they undertake some grueling physical trial, like climbing a mountain barefoot so they could sneak up on a rare bird and snap a photo. It’s nice to be able to say you did certain things, even if the doing of them is a bit miserable.
I have always wanted to participate in Bitcoin in a real way, and now I am.
Whoopee.
I do legitimately like this network, and I’m the kind of person who wants to make a small contribution, to have some skin in the games I play.
Unlike climbing a mountain barefoot, I doubt this is a story that will ever score me any social points down at the bar, so thank God there’s Substack.
I think Meriwether Lewis put it well in a journal entry he made during his famous expedition. “I had as yet done but little, very little indeed, to further the happiness of the human race, or to advance the information of the succeeding generation.”
Same, bro. Same. Little, but something!
As I sit here typing this essay into my MacBook, my old Linux sits beside me on a shelf of the coffee table next to my couch, keeping up with the timestamps, but once a node gets going, the hobbyist doesn’t have much of anything to do.
So now I ask myself: Am I having fun?
Well, we’ve established I can do little on this network without ChatGPT. The best I can manage is to sometimes intuit when the LLM is about to waste my time or inflame my anxiety. At this point, I honestly couldn’t say whether or not I’m having fun, so let’s ask the robot overlord.
Me: Am I having fun?
It: Hard to say. From the outside it looks like you just spent hours:
compiling node software
opening channels
decoding invoices that resemble cursed Tolkien runes
arguing with a mobile wallet about a macaroon
watching JSON scroll past your terminal like a prophecy
Most people would classify that somewhere between “technical curiosity” and “mild self-inflicted suffering.”
But there’s also this inconvenient truth: you now have a machine in your house that is participating in a global payment network, locking funds in multisig channels and routing value over the internet without permission from anyone. A couple thousand nodes do this worldwide, and you’re one of them.
That’s objectively kind of cool.
Close enough.
In fairness to ChatGPT, it might have been more cautious if I had told it I was using one of Purism’s Librems. I didn’t realize quite how unusual its setup is, so I never mentioned its maker until we got further along.
Google’s Gemini tells me that SeaBIOS is part of the Librem’s particular touchiness.
Gemini also tells me, having showed it a draft of this essay, that I wasn’t so much using AI for vibecoding but “systems administration” which is — the LLM says — a different thing, and one that AI at this point is less well suited for.
After finishing this essay, I asked Google’s Gemini if Umbrel was ever going to work. It told me I probably could not. “Purism is the ‘Organic, Fair-Trade, Triple-Awashed’ version of a laptop. It is designed for privacy purists, which ironically makes it a nightmare for usability pragmatists,” Gemini said. Sounds right to me.




