Skip to content

Instantly share code, notes, and snippets.

View joeblackwaslike's full-sized avatar
💭
Working hard

Joe Black joeblackwaslike

💭
Working hard
View GitHub Profile
@yorickdowne
yorickdowne / HallOfBlame.md
Last active May 4, 2025 10:18
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. IOPS can roughly be used as proxy of / predictor for latency. Measuring latency directly is arguably better.

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 is a very conservative choice. The smaller 2TB drive should last an Ethereum full node until at least sometime 2026, with the [pre-merge history expiry](https://hackmd.io/@hBXHLw_9Qq2va4pRt

@FradSer
FradSer / iterm2_switch_automatic.md
Last active April 6, 2025 09:19
Switch iTerm2 color preset automatic base on macOS dark mode.

The latest beta (3.5) includes separate color settings for light & dark mode. Toggling dark mode automatically switches colors.

Vist iTerm2 homepage or use brew install iterm2-beta to download the beta. Thanks @stefanwascoding.


  1. Add switch_automatic.py to ~/Library/ApplicationSupport/iTerm2/Scripts/AutoLaunch with:
@rfikki
rfikki / mainnet-peers-latest.txt
Last active February 18, 2023 14:45
UPDATED 12/07/2020
admin.addPeer("enode://372cc9da5d91b0cf19c8773f3197ba98059041a709ca36d643d37942d9457d34eaee58f90d23bf3e20a7b777a2c4b9247e1aa301f493b2de5d53b3ddb5cb7ac7@116.202.210.165:57840");
admin.addPeer("enode://88897be3c4a05b94813f69a8802d988cedaff711c9238811a0a38649b88703668686b4aee13ad066409a95a5368100528adf4fa7a0af7efd2a9ea194711a4da1@193.26.156.253:34896");
admin.addPeer("enode://357d1b6c71fd1a9669a0d20aae53d18b69676a0eb2baa2209806932e7e1f1e20d154a823b1e200cb8434e17dcf837c4772f2231136b0164ccaaeeabf009dc2e0@119.8.107.226:16861");
admin.addPeer("enode://3a98d3f88d7b4bf0d7251e6de7e43ae803a5ec260c35e02b526681af4d8b2e660dc3d10e64235a1551f35fa18de91cd22f5ed2c364a3e683b442f3a352bedd50@47.24.140.226:30303");
admin.addPeer("enode://c9cd1b2514fc616abf0a1504e858235438ae0c3bd8d8af562e522eb5e9df703dbc516cd499232a230c107e611ec052a1860cbd3be2636ac4fb24715392c952cd@87.117.249.243:30303");
admin.addPeer("enode://f303f44626b5989f240145086a35c2a94f46d923a9590d847814c703a44940b4367a9098e8b02cbc204d9798bbf6c3dfa04b8224870170be2a9d9a5d62
@snorfalorpagus
snorfalorpagus / sqlalchemy_nested_example.py
Created April 6, 2016 16:44
SQLAlchemy nested transactions
"""
This script demonstrates the use of nested transactions in SQLAlchemy, including
a workaround for an issue with the SQLite backend.
References:
http://docs.sqlalchemy.org/en/latest/orm/session_transaction.html#using-savepoint
http://docs.sqlalchemy.org/en/latest/dialects/sqlite.html#serializable-isolation-savepoints-transactional-ddl
"""
from sqlalchemy import Column, String, Integer
@lars-tiede
lars-tiede / run_coroutine_in_another_thread.py
Created March 8, 2016 10:37
Safely run a coroutine in another thread's asyncio loop and return the result
import threading
import asyncio
async def run_coro_threadsafe(self, coro, other_loop, our_loop = None):
"""Schedules coro in other_loop, awaits until coro has run and returns
its result.
"""
loop = our_loop or asyncio.get_event_loop()
# schedule coro safely in other_loop, get a concurrent.future back
@coderofsalvation
coderofsalvation / export_process
Last active February 22, 2022 15:38
updates an environment variable of a running process
# updates an environment variable of a running process (needs sudo)
# example: sudo export_pid <variable=value> <pid>
export_process(){
script=/tmp/.gdb.$2
echo -e "attach $2\ncall putenv (\"$1\")\ndetach\n" > $script
gdb -q -batch -x $script &>/dev/null
rm $script
}
@achillean
achillean / ssh-fingerprints.csv
Created February 17, 2015 20:11
Top 1,000 Duplicate SSH Fingerprints on the Internet
dc:14:de:8e:d7:c1:15:43:23:82:25:81:d2:59:e8:c0 245272
32:f9:38:a2:39:d0:c5:f5:ba:bd:b7:75:2b:00:f6:ab 197846
d0:db:8a:cb:74:c8:37:e4:9e:71:fc:7a:eb:d6:40:81 152046
34:47:0f:e9:1a:c2:eb:56:eb:cc:58:59:3a:02:80:b6 140777
df:17:d6:57:7a:37:00:7a:87:5e:4e:ed:2f:a3:d5:dd 91904
81:96:a6:8c:3a:75:f3:be:84:5e:cc:99:a7:ab:3e:d9 80499
7c:a8:25:21:13:a2:eb:00:a6:c1:76:ca:6b:48:6e:bf 78172
1c:1e:29:43:d2:0c:c1:75:40:05:30:03:d4:02:d7:9b 71851
8b:75:88:08:41:78:11:5b:49:68:11:42:64:12:6d:49 70786
c2:77:c8:c5:72:17:e2:5b:4f:a2:4e:e3:04:0c:35:c9 68654