Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 13 Next »

This section explains why we need decentralized computing devices and the problems the Netrabrick resolves.

1980: Do we value design?

image-20240404-135615.png

2000: Do we value open-source?

image-20240404-140735.png

2020: Do we value decentralization?

image-20240404-140813.png

Phase I: The atomization:

image-20240404-140919.png

Phase II: Centralization

image-20240404-141142.png

Phase III: Decentralization

image-20240404-141235.png

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

IMG_0214 2.jpegIMG_0213 2.jpeg

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, password root.

  • PiKVM Web Interface (API, VNC...): user admin, password admin, 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

  1. 3D print the Netrabrick lid cover.

  2. Screw on the lid components

  3. Connect the headers cables to the PiSugar and Raspberry Pi.

  4. Flash the PiKVM image onto a the Raspberry Pi Zero W 2.

  5. Install the SD card in the Raspberry Pi

  6. Attach the lid, and connect the HDMI - CS1 adapter cable

Printing the Netrabrick lid cover

Attaching the Netrabrick lid components

Open the Netrabrick by removing the four bottom screws:

IMG_4052-20240406-163655.jpeg

Be careful to not disconnect or break the SATA drive cable connection:

0AD2D467-FD4C-4AA8-B5FA-809715479C41-20240406-164331.jpeg

Connecting the header cables to the PiSugar and RaspberryPi

Flashing the PiKVM image

Attaching the lid and connecting external cables

NUC - Netrabrick NUClid cabling

Identifier

Header

8

COM Header

9

USB2 Header

10

Front Panel Header

COM header

Use of this header is not really necessary, but it could be connected to the Raspberry Pi used by PiKVM to provide a serial terminal login access to the server.

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

The USB2.0 header is essential for providing keyboard and mouse HID access from the PiKVM instance on the Raspberry Pi to the server. Also, this header provides power to the SugarPi3, which in turn, powers the PiKVM Raspberry Pi.

Notice that VCC (5v) is NOT provided to the MicroUSB connection on the Raspberry Pi. This is the equivalent of blocking the VCC pin, as described here.

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

Connecting the NUC Front Panel header to the Raspberry Pi is necessary if want ATX power control from PiKVM.

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

This is how ATX wiring between the server and Raspberry Pi are instrumented:

image-20240406-162905.png

As described here:

With this part, you will be able to remotely turn on, turn off and restart your computer!

  • x4 MOSFET relays OMRON G3VM-61A1 or OMRON G3VM-61AY1.
    Don't use random relay modules or random optocouplers! Some of these may not be sensitive enough for the Raspberry Pi, some others may be low-level controlled. Either use relays that are activated by a high logic level, or follow the design provided and buy an OMRON. See details here.

  • x4 390 Ohm resistors (see here for alternatives).

  • 2x 4.7 kOhm resistors.

  • x10+ dupont wires male-male.

  • x1 a breadboard.

  • various wires for the breadboard.

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.

  • No labels