nix-bitcoin icon indicating copy to clipboard operation
nix-bitcoin copied to clipboard

Supported Hardware

Open nixbitcoin opened this issue 5 years ago • 22 comments

Time Horizon: Long term

Description: Compile a list of tested hardware and specific instructions. Choose one hardware platform to focus development on and look into providing plug'n'play versions of that.

Motivation: Focusing on selected hardware will improve UX and reduce development resources in the long term. Having pre-installed, ready-to-use hardware will open nix-bitcoin to a whole new class of users, who need a reasonably secure and fully-featured bitcoin node but lack the knowledge to go through the NixOS install process. Would be most useful in conjunction with https://github.com/jonasnick/nix-bitcoin/issues/38.

Implementation: pcengines apu, Intel NUC, Nodl

nixbitcoin avatar Apr 14 '19 09:04 nixbitcoin

I'm running nix-bitcoin (in a VM) on a Gigabyte BACE-3160.

0xB10C avatar Apr 30 '19 08:04 0xB10C

Nice. Would you consider running outside of the VM as a stand-alone device? I'll add it to the README.md under Tested Hardware then.

nixbitcoin avatar May 01 '19 15:05 nixbitcoin

I'm runing nix-bitcoin on GB-BACE-3150.

jonasnick avatar May 01 '19 18:05 jonasnick

Would you consider running outside of the VM as a stand-alone device?

Yes. The BACE-3160 seems to be the same as the BACE-3150 besides a newer CPU generation in the 3160.

0xB10C avatar May 01 '19 19:05 0xB10C

Tried and failed to run nix-bitcoin on Intel NUC8i5BEH (with Samsung SSD 860 QVO 1TB and Crucial Ballistix Sport LT 16GB Kit (2 x 8GB) DDR4-2400 SODIMM).

Played a little with NixOS 19.03 and it seems to me that NixOS fails to boot on this computer using the hardened kernel, but works using the vanilla one.

stefan-mihaila avatar Jul 20 '19 14:07 stefan-mihaila

@cypherpunk2140 thanks for the report! That sucks.

jonasnick avatar Jul 23 '19 19:07 jonasnick

I ended up deploying nix-bitcoin on a VM with NixOS (without hardened kernel) as the host, it works fine in the VM. When I have some time I will try to find out what specific option in the hardened kernel profile is making NixOS not boot.

stefan-mihaila avatar Jul 23 '19 21:07 stefan-mihaila

When I have some time I will try to find out what specific option in the hardened kernel profile is making NixOS not boot.

Please do, that would be awesome. I'm running on an apu2c4, which I can highly recommend.

nixbitcoin avatar Jul 26 '19 11:07 nixbitcoin

Did anyone test on aarch64 (mainly raspberry pi)?

kcalvinalvin avatar Jul 26 '19 13:07 kcalvinalvin

@kcalvinalvin Not that I know of.

jonasnick avatar Jul 26 '19 14:07 jonasnick

Raspberry pi was out of scope because imo it was way to weak to have fun with it. But perhaps that changed with version 4.

jonasnick avatar Jul 26 '19 14:07 jonasnick

I tested with rp3 but the biggest problem was memory. I’ll give another go with swapon set.

What’s the most demanding software at the moment?

kcalvinalvin avatar Jul 26 '19 14:07 kcalvinalvin

I'm running on an apu2c4, which I can highly recommend.

Thank you, I'll definitively keep it in mind for when I'll get new hardware.

I found out what makes my Intel NUC8i5BEH not boot NixOS 19.03 using the hardened kernel: "page_poison=1".

As a workaround, the following can be added to configuration.nix when using the hardened kernel profile to boot:

boot.kernelParams = lib.mkOverride 50 [
  # Slab/slub sanity checks, redzoning, and poisoning
  "slub_debug=FZP"

  # Disable slab merging to make certain heap overflow attacks harder
  "slab_nomerge"

  # Overwrite free'd memory
  # This is commented out as it makes Intel NUC8i5BEH not boot
  # "page_poison=1"

  # Disable legacy virtual syscalls
  "vsyscall=none"

  # Enable PTI even if CPU claims to be safe from meltdown
  "pti=on"
];

I didn't try it yet with nix-bitcoin, just with NixOS 19.03, but chances are this will make nix-bitcoin happy too!

I don't know the security implications. Also, I wonder if this should be reported upstream, to nixpkgs or to kernel.org?

EDIT: FWIW, MemTest86 did not find any errors on the (separately bought) system memory. Also, I started using nix-bitcoin on my machine with the workaround presented here.

stefan-mihaila avatar Aug 01 '19 16:08 stefan-mihaila

Requirement for milestone should be at least one recommended hardware setup, with links and prices.

nixbitcoin avatar Jun 03 '20 15:06 nixbitcoin

A recommended hardware setup would be nice. I'd like to try it!

justinmoon avatar Feb 27 '21 22:02 justinmoon

Hardware wise I've been happy with my bare-bone Gigabyte BACE-3160 (not sure if Gigabyte has any new iterations). You'll need RAM (make sure to get the correct one..) and a HDD/SSD too.

I'd like to try it but only have rpi4 ....

There is community support for NixOS on ARM, but I don't know if anyone ever tried running nix-bitcoin on ARM (apparently NixOps now works with ARM too according to https://github.com/illegalprime/nixos-on-arm#nixops-deployments). I might try ARM with krops at some point.

Is trying nix-bitcoin in a VM an option for you too?

0xB10C avatar Mar 02 '21 11:03 0xB10C

There is community support for NixOS on ARM, but I don't know if anyone ever tried running nix-bitcoin on ARM (apparently NixOps now works with ARM too according to https://github.com/illegalprime/nixos-on-arm#nixops-deployments). I might try ARM with krops at some point.

afaik, rpi3 is the only pi that’s officially supported, all others are community supported. I’ve been running NixOS on rpi3 for months now and it’s very stable. Based on what I’ve heard about the recent developments with NixOS on Arm, rpi4 shouldn’t be too bad.

kcalvinalvin avatar Mar 02 '21 12:03 kcalvinalvin

Confirmed, RPI4 8GB works well enough. Tested by running QEMU VM script from the examples.

volisoft avatar May 18 '21 00:05 volisoft

Confirmed, RPI4 8GB works well enough. Tested by running QEMU VM script from the examples.

Nice. Did you test with 64-bit (aarch64 / arm64) or with 32-bit (armhf)? Should make a big difference given the better memory addressability on 64-bit.

xanoni avatar Aug 15 '21 18:08 xanoni

I am running it on physical Pi4 8GB now (no vm or container), but just with electrs and bitcoind. bitcoind uses a constant 18% of memory, electrs transiently uses 8%.

tim-tx avatar Sep 11 '21 14:09 tim-tx

I am running it on physical Pi4 8GB now (no vm or container), but just with electrs and bitcoind. bitcoind uses a constant 18% of memory, electrs transiently uses 8%.

You don't run enough nodes :-p

xanoni avatar Sep 11 '21 16:09 xanoni

You mean services?

tim-tx avatar Sep 11 '21 16:09 tim-tx

Hello everyone, I would be interested to know if there is anything against a Raspberry Pi 4? This is officially supported by NixOS and the hardware only differs primarily in terms of how much RAM is installed and which storage is used.

DocBrown101 avatar Mar 29 '24 12:03 DocBrown101

@DocBrown101, Raspberry Pi 4 works fine. See docs/hardware.

erikarvstedt avatar Mar 29 '24 12:03 erikarvstedt

@erikarvstedt Yes exactly, but this ticket is still open as there are no examples for it yet, or has it just been forgotten to close?

DocBrown101 avatar Mar 29 '24 12:03 DocBrown101

nix-bitcoin is just a set of NixOS modules, all NixOS installation instructions readily apply to nix-bitcoin. No need for extra docs.

erikarvstedt avatar Mar 29 '24 13:03 erikarvstedt