31 Dec I created a Bitcoin node too!
I figured I should give some info about what I did right, and what I did wrong for others to learn from.
My Node is made of:
– Raspberry Pi 4b
I ended up returning:
– Geekworm X872 M.2 NVMe SSD Expansion Board
I first attempted to install raspiblitz (https://github.com/rootzoll/raspiblitz) but I was having trouble with the SSD, and I ended up following RaspiBolt (https://stadicus.github.io/RaspiBolt/) instead. I recommend following RaspiBolt, even though I reckon I could install raspiblitz now that I have overcome the hardware issues, I just feel like I understand my setup better with RaspiBolt than I would with raspiblitz as it comes pre-configured.
My first issue, was that the SSD wasn’t working properly with the WIFI. I got a wifi adapter, but even that lost connection periodically. I run my Pi headless so this is unacceptable, I would have no way to know what the problem was when it stopped working randomly. I ensured that I got a low powered SSD after reading lots of reviews, I also was looking for one with power loss protection, but I gave up on that after some time because they are not easy to find. I chose NVMe because I could only find the NVMe version of the Geekworm SSD Expansion Board for sale. I wanted something that I could box up nicely. As you can tell, I failed at that, I now have that SSD sticking out and I haven’t figured out a case for it yet.
I later found out that there were 2 manufacturers of NVMe driver boards, that the GeekWorm product used a JMicron chipset (JMS583) and UGreen used a ASMedia chipset (ASM2362). All manufacturers use one or the other, and I found that this ASMedia chip worked with my Pi and my SSD. There is still a chance that the JMicron one would work too, but I had a faulty one, but I have a setup that works now.
The Ice Tower heatsink is great, it is silent, and I can even overclock the PI without a fan. However, it isn’t that great when building onto it. The Battery UPS was designed to go above the PI, but because of the heatsink, I ended up fitting it below and buying a ribbon cable to connect the pins together. Be careful if you are doing this, make sure you don’t accidentally flip the connections. Also make sure you buy good quality cables. I learnt a new term which might be useful: “AWG” which is an American unit telling you how thick the cable is. Thicker is better. I ended up not being able to use that information, I found a ribbon cable manufacturer on Amazon delivering to UK and found it to be satisfactory.
The first UPS I received was definitely faulty; the indicator lights were not working properly. I got a replacement and I thought that was faulty too because it seemed to not be able to charge my batteries and power the pi at the same time, so I ended up doing a lot of testing. It turns out that it will prioritise power to the PI, so although the device seemed to be constantly restarting, the PI was on and stable. If you are doing what I am, using cables to connect the pins between the UPS and the PI, use a good quality ribbon cable because the cables you get in pi experiment kits have a lot of resistance and it means your pi won’t get enough voltage to run properly. The restarting behaviour of the device ended up being the fault of the official raspberry pi power adapter. It uses a type of polyfuse that allows you to draw over 3.2amps but immediately turns off and on again until you start drawing less. While the UPS could draw less, it attempts more first and it gets stuck in a loop. Ultimately, it means that once there has been a power surge, if the battery goes low, then I should shut down the node and wait for the battery to charge before turning it back on. For now, I haven’t had any power issues :fingers crossed:.
In hindsight, buying a SATA SSD would have been better, but I couldn’t find a SATA enclosure that I liked that would keep the form factor small. Again, I ended up buying the uGreen so I didn’t get the form factor I wanted anyway. The SSD I have works great, but I’m not using it to its full potential, an NVMe can run much faster than an SATA, but over USB3, it runs the same as a SATA. At the same time, the recommended SSDs cost about the same as this NVMe so I don’t regret it too much.
I am running a full Bitcoin node, LND, “Bitcoin Explorer”, and “Ride The Lightning”. The last 2 are web based interfaces for me to monitor and manage the state of the node. I am using TOR for all external communication, and none of the web interfaces are accessible to the internet for security reasons.
I keep the device behind my blinds because the lights can be blinding at night. At the same time, if something were to go wrong, the lights are the first thing I need to be able to see, so I’m going to have to keep that in mind when designing a case for it.