Skip to content

Instantly share code, notes, and snippets.

@yorickdowne
yorickdowne / jammy.md
Last active August 10, 2024 23:52
Upgrade to Ubuntu Jammy Jellyfish

Ubuntu Jammy Jellyfish

To start, read the official release notes.

If your install fits into "vanilla Ubuntu plus maybe a handful of 3rd-party repos", then this guide for a simple upgrade to Ubuntu 22.04 "Jammy Jellyfish" from Ubuntu 20.04 "Focal Fossa" can be helpful. 3rd-party repos are handled with a find command.

Some Intel NUC10/11 with I225-LM or I225-V Ethernet chip may cause "freezing" of the OS after this update, if wired Ethernet is in use. There is no known fix; a workaround is to use a USB 3.0 to Ethernet dongle instead.

@yorickdowne
yorickdowne / friday.md
Last active October 23, 2024 03:17
Debian 13 trixie upgrade

Debian 13

This is a placeholder for instructions when Debian 13 is released in 2025

To start, read the official release notes.

If your install fits into "vanilla Debian plus maybe a handful of 3rd-party repos", then this guide for a simple upgrade to Debian 13 "trixie" from Debian 12 "bookworm" can be helpful. 3rd-party repos are handled with a find command.

Note upgrade is only supported from Debian 12 to Debian 13. If you are on Debian 11, upgrade to Debian 12 first. Then once on Debian 12, you can upgrade to Debian 13.

@yorickdowne
yorickdowne / Besu Bebop.md
Last active September 26, 2024 09:29
Optimal Besu settings for database growth

Overview

Besu, an Ethereum execution layer client, is optimized for minimal database growth (7-8 GiB/week) with default parameter --bonsai-limit-trie-logs-enabled. It can use RAM for more block processing speed.

If you have 64 GiB of RAM or more, you can add --Xplugin-rocksdb-high-spec-enabled=true for better performance.

A long-running Besu DB, started before trie-log limit was enabled, will have sizeable trie log storage. This can be reduced with a one-off prune using the storage trie-log prune subcommand, assuming Besu 24.7.0 or later.

Somer Esat adjustment

@yorickdowne
yorickdowne / noble.md
Last active November 2, 2024 21:55
Ubuntu Noble Numbat

Ubuntu Noble Numbat

To start, read the official release notes.

If your install fits into "vanilla Ubuntu plus maybe a handful of 3rd-party repos", then this guide for a simple upgrade to Ubuntu 24.04 "Noble Numbat" from Ubuntu 22.04 "Jammy Jellyfish" can be helpful. 3rd-party repos are handled with a find command.

Note upgrade is only supported from Ubuntu 22.04 or later to Ubuntu 24.04. If you are on Ubuntu 20.04, upgrade to Ubuntu 22.04 first. Then once on Ubuntu 22.04, you can upgrade to Ubuntu 24.04.

@yorickdowne
yorickdowne / yawn.md
Last active November 11, 2024 06:03
Debian 12 bookworm upgrade

Debian 12

To start, read the official release notes.

If your install fits into "vanilla Debian plus maybe a handful of 3rd-party repos", then this guide for a simple upgrade to Debian 12 "bookworm" from Debian 11 "bullseye" can be helpful. 3rd-party repos are handled with a find command.

Note upgrade is only supported from Debian 11 to Debian 12. If you are on Debian 10, upgrade to Debian 11 first and make sure to change the security repo as per the release notes. Then once on Debian 11, you can upgrade to Debian 12.

  • Check free disk space
@yorickdowne
yorickdowne / nethermost.md
Last active September 26, 2024 09:30
Pruning Nethermind

Overview

Nethermind as of January 2024 takes about 1.1 TiB of space on a snap sync, and then grows by ~ 27 GiB/week.

When it starts to fill its disk, it can be online pruned (no downtime) to free up space again, to around the size of a fresh sync.

Prerequisites

  • This is not an archive node. Do not try to prune an archive node.
@yorickdowne
yorickdowne / eth-docker-audit.md
Created November 13, 2022 14:07
Eth-docker audit notes

eth-docker informal specification

User behavior and threat model

A typical user of eth-docker is someone who wants to become a validator on the Ethereum network, also known as staking or staker, or someone who is already a validator on the Ethereum network and wants to add more validators to their setup. They can be someone who is going to setup their machine at home, someone who is going to use some kind of VPS to host their setup, or some kind of institutional staker working for large staking services or large investors.

eth-docker is an automation wrapper to run an "Ethereum node", consisting of a consensus layer client, execution layer client, and validator client.

@yorickdowne
yorickdowne / shenanigans.md
Last active August 25, 2022 10:56
Reset Geth head with eth-docker

Overview

Geth 1.10.23 fixes a bug in 1.10.22, which would have resulted in missing state in its database. The Go-Ethereum team recommends to roll the chain back and let Geth catch up again, if and only if you had updated to 1.10.22. If you did not, just update to 1.10.23 now and call it done.

This is how to roll back to a previous block when using eth-docker.

Update Geth to 1.10.23

./ethd update and ./ethd up should do it.

@yorickdowne
yorickdowne / HallOfBlame.md
Last active November 10, 2024 19:57
Great and less great SSDs for Ethereum nodes

Overview

Syncing an Ethereum node is largely reliant on latency and IOPS, I/O Per Second, of the storage. Budget SSDs will struggle to an extent, and some won't be able to sync at all. For simplicity, this page treats IOPS as a proxy for/predictor of latency.

This document aims to snapshot some known good and known bad models.

The drive lists are ordered by interface and then by capacity and alphabetically by vendor name, not by preference. The lists are not exhaustive at all. @mwpastore linked a filterable spreadsheet in comments that has a far greater variety of drives and their characteristics. Filter it by DRAM yes, NAND Type TLC, Form Factor M.2, and desired capacity.

For size, 4TB comes recommended as of mid 2024. The smaller 2TB drive should last an Ethereum full node until early 2025 or thereabouts, with crystal ball uncertainty. The Portal team aim to make 2TB [last forever with EIP-4444](https://

#! /bin/bash
# http://linuxcommand.org/wss0150.php
function error_exit
{
echo "$1" 1>&2
exit 1
}
# http://unix.stackexchange.com/questions/70859/why-doesnt-sudo-su-in-a-shell-script-run-the-rest-of-the-script-as-root