This section explains why we need decentralized computing devices and the problems the Netrabrick resolves.
1980: Do we value design?
2000: Do we value open-source?
2020: Do we value decentralization?
Phase I: The atomization:
Phase II: Centralization
Phase III: True Decentralization
This section describes the installation and configuration of the Netrabrick™.
A Netrabrick is a combination of the following technologies:
Small form-factor PC (NUC)
Out-of-band Management
Ubuntu base instance
IoT data collector
backup NAS
DappNode
VPN
home automation data
Other web3 services
Small form-factor PC (NUC)
This is the initial NUC configuration: https://simplynuc.com/product/cbm1r5rb/
It may be overblown for the Netrabrick requirements:
Internally, the NUC has two USB 2.0 Headers and one serial header.
For audio:
Up to 7.1 surround via HDMI
Front audio: mic in / line out
This document contains the technical specifications, including header diagrams for internal USB, serial, and reset jumpers.
Out-of-band management
The Netrabrick runs critical services. As such, insuring uptime is supreme. To enable remote monitoring and access to the Netrabrick, an additional NUC lid (Netrabrick lid) was designed to provide out-of-band management services.
Essentially, if the Netrabrick crashes, and nobody is physically near the device to reboot or repair, this out-of-band management facility allows us to access the netrabrick remotely, power-off and power-on, reinstall or reconfigure as if we were sitting at the keyboard in front of the Netrabrick.
This is accomplished by a combination of various technologies:
Raspberry Pi Zero 2W
A Raspberry Pi Zero 2W is hardwired to the Netrabrick device.
HDMI Adapter
Geekworm Raspberry Pi HDMI to CS1-2 C229 Adapter board.
PiKVM
PiKVM is the software that is installed on the Raspberry Pi.
PiKVM comes with the following default passwords:
Linux admin (SSH, console, etc.): user
root
, passwordroot
.PiKVM Web Interface (API, VNC...): user
admin
, passwordadmin
, no 2FA code.
These are two separate entities with independent accounts.
To change passwords, you will need to use the console access via SSH or the Web Terminal. If you are using the Web Terminal, enter the su -
command to get the root
access (enter the root
user password).
[root@pikvm ~]# rw [root@pikvm ~]# passwd root [root@pikvm ~]# kvmd-htpasswd set admin [root@pikvm ~]# ro
If you require additional user for the Web UI access, use the following:
[root@pikvm ~]# kvmd-htpasswd set <user> # Set a new user with password or change of an existing one [root@pikvm ~]# kvmd-htpasswd del <user> # Remove/delete a user
Optionally you can enable the two-factor authentication for more security.
Changing the VNCAuth passkey and IPMI password at the first start of PiKVM is not required, since these services are disabled by default. But it is here just so that you remember their existence.
PiSugar
The PiSugar 3 provides uninterrupted power (UPS) to the Netrabrick lid components. This way, even if the Netrabrick server loses power, or needs to be rebooted, the Netrabrick lid will remain online long enough to provide a power-outage notification.
Also, the PiSugar 3 functions as an external watchdog reset for the Raspberry Pi.
4G modem
If the Netrabrick lid loses communications with the internet, a 4G modem can be activated by the lid to notify about the communications failure.
Setup Steps
3D print the Netrabrick lid cover.
Screw on the lid components
Connect the headers cables to the PiSugar and Raspberry Pi.
Flash the PiKVM image onto a the Raspberry Pi Zero W 2.
Install the SD card in the Raspberry Pi
Attach the lid, and connect the HDMI - CS1 adapter cable
NUC - Netrabrick NUClid cabling
Identifier | Header |
---|---|
8 | COM Header |
9 | USB2 Header |
10 | Front Panel Header |
COM header
Pin | RS232 signal | Connection |
---|---|---|
1 | DCD | Empty |
2 | RXD | RPi GPIO14 (UART TX) |
3 | TXD | RPi GPIO15 (UART RX) |
4 | DTR | Empty |
5 | GND | Rpi GND |
6 | DSR | Empty |
7 | RTS | Empty |
8 | CTS | Empty |
9 | RI# | Empty |
10 | Empty | Empty |
NUC USB2.0 header
Pin | USB Signal | Connection |
---|---|---|
1 | VCC | Pin 8 (5v in) on SugarPi3 |
2 | VCC | Current connector to power fan? |
3 | USB0- | MicroUSB cable USB- (green) |
4 | USB1- | Empty |
5 | USB0+ | MicroUSB cable USB+ (white) |
6 | USB1+ | Empty |
7 | GND | Pin 1 on SugarPi 3 (next to Pin 8) AND USB ground (black) |
8 | GND | Current ground connector to fan? |
9 | No Connect | Empty |
10 | Empty | Empty |
NUC Front Panel header
Pin | Header | Function | Connection |
---|---|---|---|
1 | HD_LED | HD_PWR | Connect to RPi, pin (red) |
3 | HD_Active | Connect to RPi, pin 22 (red) | |
2 | PWR_LED | PWR LED+ | Connect to Front Panel LED |
4 | PWR LED- | ||
5 | RESET | GND | Connect to RPi, pin (red) |
7 | RST BTN | Connect to RPi, pin 27 (red) | |
6 | PW_ON | PWR BTN | Connect to Front Panel Button |
8 | GND | ||
9 | No Connect | +5V | No connect |
10 | Empty | Empty | Empty |
Dappnode base instance
This section describes the steps involved for installing the Dappnode Linux base instance (bare metal install).
backup NAS
Time machine backup for MacOS devices
First we'll install samba
sudo apt install samba
Add a samba user
sudo smbpasswd -a mtb sudo usermod -g users mtb vi /etc/samba/smb.conf
Configure samba
[global] workgroup = openvino min protocol = SMB2 # security security = user passdb backend = tdbsam map to guest = Bad User # mac Support spotlight = yes vfs objects = acl_xattr catia fruit streams_xattr fruit:aapl = yes fruit:time machine = yes #NetShares [volumes] comment = Time Machine path = /timecapsule valid users = @users browsable = yes writable = yes read only = no create mask = 0644 directory mask = 0755
Adjust permissions
chmod 777 /timecapsule chown root:users /timecapsule/
Restart samba
service smbd restart
Connect to the samba server from MacOS finder
Go > Connect to server...
.
Configure Time Machine
FOAM.space anchor node
Dappnode
From the dappnode documentation:
DAppNode connects the decentralized internet by allowing a user to conveniently host P2P clients in a truly decentralized way, and eliminates the reliance on third parties vulnerable to centralization. It also adds an extra layer of incentivization that helps spread adoption of the blockchain ecosystem and solves the problem of infrastructure centralization.
The Problem
Most nodes for public blockchains nowadays have a degree of architectural or/and political centralization. The first refers to the number of machines a system is made of, and the second concerns the ownership of such machines, Vitalik Buterin, 2017.
A first very common case is to host a node in a Virtual Private Server (VPS). This puts your node in the hands of a highly centralized company like Digital Ocean or Amazon, which could block and censor your access. Moreover, they could be hosting different nodes in the same machine, architecturally reducing decentralization too.
Another common case in the Ethereum blockchain is to connect through a node owned by Infura. While Infura's work on providing infrastructure for the network is a necessity at this stage, we can see how the ownership of a majority of nodes by the same company is a centralizing factor.
Installation
Install dappnode
Download the image from DAppNodeISO or build it from source, and configure as a flexVDI Media Storage image file.