Avado

Last year I got an Avado machine by accident, while requesting funding for a mainnet validator.

The project was messy, I never got the keys to join the ether.fi distributed validators cluster in mainnet, and I never got any rewards. After paying the monthly fee for some months, I complained and they stopped charging me.

I will open the machine, see what’s in there and see if I can repurpose it to run something interesting. I will share my journey here.

Unboxing…

More unboxing…


tested on march 12th, 2025.

Installation

Download the latest Debian stable, bookworm 12.9.0. The reduced network installer for amd64:

$ wget --continue https://cdimage.debian.org/debian-cd/current/amd64/iso-cd/debian-12.9.0-amd64-netinst.iso

Verify the integrity of the file:

$ wget https://cdimage.debian.org/debian-cd/current/amd64/iso-cd/SHA256SUMS
$ sha256sum --check SHA256SUMS --ignore-missing 

Verify the signature:

$ gpg --recv-key --keyserver keyring.debian.org DF9B9C49EAA9298432589D76DA87E80D6294BE9B
$ gpg --verify SHA256SUMS.sign SHA256SUMS

Copy the image to a USB memory:

$ sudo dd if=debian-12.9.0-amd64-netinst.iso of=<device> bs=16M status=progress oflag=sync

Now connect the USB memory to the Avado machine, connect it to an HDMI monitor and a USB keyboard, and boot.

Press the ESC key while booting to go to the BIOS configuration, and in the Boot menu select the USB memory as the first boot device. Save and exit.

Install Debian…

Reboot.

Connect to the switch.

Enable dhcp in the wired network interface:

Edit the file /etc/network/interfaces, adding this at the end:

auto enp2s0
allow-hotplug enp2s0
iface enp2s0 inet dhcp

Restart the networking service:

$ sudo systemctl restart networking

Install software for administration:

$ sudo apt install emacs-nox byobu gnupg curl net-tools dmidecode

Enable ssh public key authentication:

$ mkdir --mode 700 ~/.ssh

Add my user public key to ~/.ssh/authorized_keys.

$ chmod 600 .ssh/authorized_keys

Disable ssh password autentication:

Edit the file /etc/ssh/sshd_config, uncommenting and setting:

PasswordAuthentication no
$ systemctl reload sshd

Sources:

System information

tl;dr:
Processor Intel i5 @ 1.10GHz, x86 64 bits, 32GB of memory, Debian 12

$ lsb_release --all
No LSB modules are available.
Distributor ID:	Debian
Description:	Debian GNU/Linux 12 (bookworm)
Release:	12
Codename:	bookworm
$ uname --all
Linux tabechaka-01 6.1.0-31-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.128-1 (2025-02-07) x86_64 GNU/Linux
$ lscpu
Architecture:             x86_64
  CPU op-mode(s):         32-bit, 64-bit
  Address sizes:          39 bits physical, 48 bits virtual
  Byte Order:             Little Endian
CPU(s):                   8
  On-line CPU(s) list:    0-7
Vendor ID:                GenuineIntel
  Model name:             Intel(R) Core(TM) i5-1035G4 CPU @ 1.10GHz
    CPU family:           6
    Model:                126
    Thread(s) per core:   2
    Core(s) per socket:   4
    Socket(s):            1
    Stepping:             5
    CPU(s) scaling MHz:   16%
    CPU max MHz:          3700.0000
    CPU min MHz:          400.0000
    BogoMIPS:             2995.20
    Flags:                fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm 
                          pbe syscall nx pdpe1gb rdtscp lm constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid ap
                          erfmperf tsc_known_freq pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 ss
                          e4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch cpuid_fault epb invp
                          cid_single ssbd ibrs ibpb stibp ibrs_enhanced tpr_shadow vnmi flexpriority ept vpid ept_ad fsgsbase tsc_adjust bmi1 
                          avx2 smep bmi2 erms invpcid avx512f avx512dq rdseed adx smap avx512ifma clflushopt intel_pt avx512cd sha_ni avx512bw
                           avx512vl xsaveopt xsavec xgetbv1 xsaves split_lock_detect dtherm ida arat pln pts hwp hwp_notify hwp_act_window hwp
                          _epp hwp_pkg_req avx512vbmi umip pku ospke avx512_vbmi2 gfni vaes vpclmulqdq avx512_vnni avx512_bitalg avx512_vpopcn
                          tdq rdpid fsrm md_clear flush_l1d arch_capabilities
Virtualization features:  
  Virtualization:         VT-x
Caches (sum of all):      
  L1d:                    192 KiB (4 instances)
  L1i:                    128 KiB (4 instances)
  L2:                     2 MiB (4 instances)
  L3:                     6 MiB (1 instance)
NUMA:                     
  NUMA node(s):           1
  NUMA node0 CPU(s):      0-7
Vulnerabilities:          
  Gather data sampling:   Vulnerable: No microcode
  Itlb multihit:          KVM: Mitigation: VMX disabled
  L1tf:                   Not affected
  Mds:                    Not affected
  Meltdown:               Not affected
  Mmio stale data:        Vulnerable: Clear CPU buffers attempted, no microcode; SMT vulnerable
  Reg file data sampling: Not affected
  Retbleed:               Mitigation; Enhanced IBRS
  Spec rstack overflow:   Not affected
  Spec store bypass:      Mitigation; Speculative Store Bypass disabled via prctl
  Spectre v1:             Mitigation; usercopy/swapgs barriers and __user pointer sanitization
  Spectre v2:             Mitigation; Enhanced / Automatic IBRS; IBPB conditional; RSB filling; PBRSB-eIBRS SW sequence; BHI SW loop, KVM SW l
                          oop
  Srbds:                  Vulnerable: No microcode
  Tsx async abort:        Not affected
$ lsblk
NAME                           MAJ:MIN RM  SIZE RO TYPE  MOUNTPOINTS
nvme0n1                        259:0    0  1.8T  0 disk  
├─nvme0n1p1                    259:1    0  512M  0 part  /boot/efi
├─nvme0n1p2                    259:2    0  488M  0 part  /boot
└─nvme0n1p3                    259:3    0  1.8T  0 part  
  └─nvme0n1p3_crypt            254:0    0  1.8T  0 crypt 
    ├─tabechaka--01--vg-root   254:1    0  1.8T  0 lvm   /
    └─tabechaka--01--vg-swap_1 254:2    0  976M  0 lvm   [SWAP]
$ sudo dmidecode --type memory
# dmidecode 3.4
Getting SMBIOS data from sysfs.
SMBIOS 3.2.0 present.

Handle 0x003A, DMI type 16, 23 bytes
Physical Memory Array
	Location: System Board Or Motherboard
	Use: System Memory
	Error Correction Type: None
	Maximum Capacity: 32 GB
	Error Information Handle: Not Provided
	Number Of Devices: 2

Handle 0x003E, DMI type 17, 84 bytes
Memory Device
	Array Handle: 0x003A
	Error Information Handle: Not Provided
	Total Width: 64 bits
	Data Width: 64 bits
	Size: 32 GB
	Form Factor: SODIMM
	Set: None
	Locator: ChannelA-DIMM0
	Bank Locator: BANK 0
	Type: DDR4
	Type Detail: Synchronous
	Speed: 3200 MT/s
	Manufacturer: 859B
	Serial Number: E798D70E
	Asset Tag: 9876543210
	Part Number: CT32G4SFD832A.M16FF 
	Rank: 2
	Configured Memory Speed: 3200 MT/s
	Minimum Voltage: 1.2 V
	Maximum Voltage: 1.2 V
	Configured Voltage: 1.2 V
	Memory Technology: DRAM
	Memory Operating Mode Capability: Volatile memory
	Firmware Version: Not Specified
	Module Manufacturer ID: Bank 6, Hex 0x9B
	Module Product ID: Unknown
	Memory Subsystem Controller Manufacturer ID: Unknown
	Memory Subsystem Controller Product ID: Unknown
	Non-Volatile Size: None
	Volatile Size: 32767 MB
	Cache Size: None
	Logical Size: None

Handle 0x003F, DMI type 17, 84 bytes
Memory Device
	Array Handle: 0x003A
	Error Information Handle: Not Provided
	Total Width: Unknown
	Data Width: Unknown
	Size: No Module Installed
	Form Factor: Unknown
	Set: None
	Locator: ChannelB-DIMM0
	Bank Locator: BANK 2
	Type: Unknown
	Type Detail: None

tested on march 14th, 2025.

Software installation

Reth

Download the latest stable version:

$ wget https://github.com/paradigmxyz/reth/releases/download/v1.3.0/reth-v1.3.0-x86_64-unknown-linux-gnu.tar.gz

Verify the signature:

$ gpg --keyserver keyserver.ubuntu.com --recv-keys 50FB7CC55B2E8AFA59FE03B7AA5ED56A7FBF253E
$ wget https://github.com/paradigmxyz/reth/releases/download/v1.3.0/reth-v1.3.0-x86_64-unknown-linux-gnu.tar.gz.asc
$ gpg --verify reth-v1.3.0-x86_64-unknown-linux-gnu.tar.gz.asc reth-v1.3.0-x86_64-unknown-linux-gnu.tar.gz

Uncompress:

$ tar -xvzf reth-v1.3.0-x86_64-unknown-linux-gnu.tar.gz 

Sync the archive node:

$ ./reth node --http --metrics 127.0.0.1:9001 

Lighthouse

Download the latest stable version:

$ wget https://github.com/sigp/lighthouse/releases/download/v6.0.1/lighthouse-v6.0.1-x86_64-unknown-linux-gnu.tar.gz

Verify the signature:

$ gpg --keyserver keyserver.ubuntu.com --recv-keys 15E66D941F697E28F49381F426416DC3F30674B0
$ wget https://github.com/sigp/lighthouse/releases/download/v6.0.1/lighthouse-v6.0.1-x86_64-unknown-linux-gnu.tar.gz.asc
$ gpg --verify https://github.com/sigp/lighthouse/releases/download/v6.0.1/lighthouse-v6.0.1-x86_64-unknown-linux-gnu.tar.gz.asc https://github.com/sigp/lighthouse/releases/download/v6.0.1/lighthouse-v6.0.1-x86_64-unknown-linux-gnu.tar.gz

Uncompress:

$ tar -xvzf lighthouse-v6.0.1-x86_64-unknown-linux-gnu.tar.gz

Run the beacon node:

$ lighthouse bn \
    --checkpoint-sync-url https://mainnet.checkpoint.sigp.io \
    --execution-endpoint http://localhost:8551 \
    --execution-jwt ~/.local/share/reth/mainnet/jwt.hex
    --http
    --metrics

Monitoring

ethereum-metrics-exporter

Download the latest stable version:

$ wget https://github.com/ethpandaops/ethereum-metrics-exporter/releases/download/v0.26.0/ethereum-metrics-exporter_0.26.0_linux_amd64.tar.gz

Uncompress:

$ tar -xvzf ethereum-metrics-exporter_0.26.0_linux_amd64.tar.gz 

Run:

$ ./ethereum-metrics-exporter-0.26.0 --metrics-port 9091

Prometheus

Install:

$ sudo apt install prometheus

Edit /etc/prometheus/prometheus.yml to add in the scrape_configs section:

  - job_name: reth
    metrics_path: "/"
    scrape_interval: 5s
    static_configs:
      - targets: ['localhost:9001']

  - job_name: lighthouse
    scrape_interval: 5s
    static_configs:
      - targets: ['localhost:5054']

  - job_name: ethereum-metrics-exporter
    metrics_path: "/metrics"
    scrape_interval: 5s
    static_configs:
      - targets: ['localhost:9091']

Restart:

$ sudo systemctl restart prometheus

Grafana

Install:

$ wget -q -O - https://apt.grafana.com/gpg.key | gpg --dearmor | sudo tee /etc/apt/keyrings/grafana.gpg > /dev/null
$ echo "deb [signed-by=/etc/apt/keyrings/grafana.gpg] https://apt.grafana.com stable main" | sudo tee -a /etc/apt/sources.list.d/grafana.list
$ sudo apt update
$ sudo apt install grafana

Run grafana:

$ sudo systemctl start grafana-server

In the browser, go to http://<ip>:3000. Login with username and password admin.

Set a new password.

Go to Connections > Data Sources and click the Add data source button. Select Prometheus and in the HTTP URL , enter http://localhost:9090. Click the Save & Test button.

Go to Dashboards > New > Import.

Upload:


Sources: