Jonas Nick 2aeee22251
Merge fort-nix/nix-bitcoin#429: Add nixos-search support
5e59c784ed2c7092d7ab8df365a56e7a4bd05dbe flake: remove internal pkg `netns-exec` from packages (Erik Arvstedt)
1ef40ac230fd4acdf3183357b19f393dc297e788 ci: add flake test (Erik Arvstedt)
d3c8d7bd6f0bc2b4d1bfc73717e640655654836f .cirrus.yml: refactor (Erik Arvstedt)
26a53f0d59a0865e56e2c4c3e7ae6bc602ff46cd ci: simplify test (Erik Arvstedt)
0fd3be534315582fd08b86f2e7996ded3976d845 move ci/ to test/ (Erik Arvstedt)
eaf98f92dbeaef780285fab1fabc7be3ba500a1c test: add test `nixosSearch` (Erik Arvstedt)
77d8c00c535ddb9e76c16374327a39aaf9666d8e run-tests.sh: extract `checkFlakeSupport` (Erik Arvstedt)
96df81a4d0898e94635302f655afb903a3d4f6b4 run-tests: move `flake` next to other tests (Erik Arvstedt)
bbebd0b3832fd584da0aa0eb71144cfba6a0f6a6 treewide: remove invalid docbook XML from option descriptions (Erik Arvstedt)
3681f118f72e53e215a9bdcd453fa06dab81eafe nix-bitcoin.nix: add `defaultText` (automatic) (Erik Arvstedt)
d24c02943585150c8b79b879dd6262f86134c5a1 treewide: add `defaultText` (manual) (Erik Arvstedt)
f0096371bf2f287b29346ecd8a8d2913c1a11037 btcpayserver: expand `nbPkgs` in option defaults (Erik Arvstedt)
349f904e79544c9d80a40f7552beaa3bebb29434 secrets: use assertion instead of error in default value (Erik Arvstedt)

Pull request description:

ACKs for top commit:
  nixbitcoin:
    reACK 5e59c784ed2c7092d7ab8df365a56e7a4bd05dbe

Tree-SHA512: affecb3acd0cc5191c8225fd61a3c0869620c307fbdf02683637d1aa6ef4ea889b420496639046391e23ae2506a9cb2d9d2e6cfc0cb281e8c20f00d5508fc644
2021-12-13 21:19:47 +00:00
2021-12-07 15:35:33 +01:00
2021-11-28 21:18:40 +01:00
2021-12-12 16:21:02 +01:00
2021-12-12 16:21:12 +01:00
2021-12-12 16:21:12 +01:00
2020-01-09 10:43:29 +01:00
2021-12-08 12:38:00 +00:00
2019-01-02 14:03:52 +00:00
2020-01-09 10:43:29 +01:00
2021-12-07 15:35:33 +01:00
2020-03-30 10:49:15 +02:00

nix-bitcoin logo


CirrusCI status GitHub tag (latest SemVer) GitHub commit activity GitHub contributors GitHub downloads


nix-bitcoin is a collection of Nix packages and NixOS modules for easily installing full-featured Bitcoin nodes with an emphasis on security.

Overview

nix-bitcoin can be used for personal or merchant wallets, public infrastructure or for Bitcoin application backends. In all cases, the aim is to provide security and privacy by default. However, while nix-bitcoin is used in production today, it is still considered experimental.

nix-bitcoin nodes can be deployed on dedicated hardware, virtual machines or containers. The Nix packages and NixOS modules can be used independently and combined freely.

nix-bitcoin is built on top of Nix and NixOS which provide powerful abstractions to keep it highly customizable and maintainable. Testament to this are nix-bitcoin's robust security features and its potent test framework. However, running nix-bitcoin does not require any previous experience with the Nix ecosystem.

Get started

Docs

Features

A configuration preset for setting up a secure node

  • All applications use Tor for outbound connections and support accepting inbound connections via onion services.

NixOS modules (src)

Security

  • Simplicity: Only services enabled in configuration.nix and their dependencies are installed, support for doas (sudo alternative), code is continuously reviewed and refined.
  • Integrity: The Nix package manager guarantees that all dependencies are exactly specified, packages can be built from source to reduce reliance on binary caches, nix-bitcoin merge commits are signed, all commits are approved by multiple nix-bitcoin developers, upstream packages are cryptographically verified where possible, we use this software ourselves.
  • Principle of Least Privilege: Services operate with least privileges; they each have their own user and are restricted further with systemd features, RPC whitelisting and netns-isolation. There's a non-root user operator to interact with the various services.
  • Defense-in-depth: nix-bitcoin supports a hardened kernel, services are confined through discretionary access control, Linux namespaces, dbus firewall and seccomp-bpf with continuous improvements.

Note that if the machine you're deploying from is insecure, there is nothing nix-bitcoin can do to protect itself.

Troubleshooting

If you are having problems with nix-bitcoin check the FAQ or submit an issue.
There's also a Matrix room at #general:nixbitcoin.org and a #nix-bitcoin IRC channel on libera.
We are always happy to help.

Languages
Nix 84.4%
Shell 11.7%
Python 3.5%
C 0.4%