Ciao, sono Mike Kuykendall — oltre 20 anni come ingegnere software, ex sergente dello staff USAF, padre di due figli, e ora la persona dietro Delta Zero Labs (@_MikeKuykendall su X).
Per anni ho vissuto la vita RPC. Vuoi ogni trasferimento ERC20 per un wallet whale dal 2020? Avvia uno script che esegue eth_getLogs con intervalli di 10.000 blocchi, gestisci i limiti di frequenza, riprova sui 429, impagina, deduplica, decodifica l'ABI da solo, salvalo da qualche parte... ripeti per swap DEX, tick oracle, liquidazioni.
Un progetto del weekend si è trasformato in una bolletta Alchemy da $400/mese e un nodo archivio da 14 TB che divorava il mio SSD. Giuravo che doveva esserci un modo migliore.
C'è.
Ho costruito (e ora vendo) dataset Parquet di livello production, completamente decodificati, da genesis a tip per Ethereum mainnet, BSC e Sepolia. Un download. Un file (o set partizionato pulito). Zero RPC per sempre. Interroga 7,77 miliardi di eventi BSC o 334 milioni di eventi Sepolia in secondi sul tuo laptop con DuckDB o Polars.
Questo non è un altro indexer o subgraph. Questi sono i dati che avresti estratto tu stesso — ma già fatto, decodificato, classificato per signal_type, compresso e pronto per essere posseduto per sempre.
In questo post ti sto dando la guida passo-passo esatta che avrei voluto due anni fa. Alla fine saprai esattamente come:
Eliminiamo insieme la tassa RPC.
Rapido controllo della realtà (lo sai già, ma quantifichiamo il dolore):
Mi sono stancato. Così ho scritto un motore di estrazione zero-RPC (Fused Semantic Execution in attesa di brevetto — FSE). Legge i dati grezzi della chain una volta, decodifica ogni evento in colonne pulite, lo etichetta con signal_type e lo scarica direttamente su Parquet.
Risultato? Dataset come:
Tutto fornito come Parquet. Colonnare, incredibilmente compresso (5–10× più piccolo di CSV), pronto per predicate pushdown, funziona con ogni strumento dati moderno.
Ogni riga è un evento decodificato. Ecco le colonne principali che userai ogni giorno (le specifiche complete a 19 colonne sono nei documenti di download):
Una riga = un record cristallino, pronto per l'analisi. Mai più decodifica ABI nel tuo codice.
Vai al campione ufficiale:
https://huggingface.co/datasets/MikeKuykendall/ethereum-signals-sample
O mirror Kaggle: https://www.kaggle.com/datasets/mikekuykendall/ethereum-onchain-signals
Scarica il file Parquet (~5–10 MB, 10.000 righe stratificate che coprono ogni signal_type).
Consiglio DuckDB — è magico per questo.
pip install duckdb pandas pyarrow
# oppure semplicemente brew install duckdb su Mac
Apri un notebook Jupyter o semplicemente la CLI DuckDB.
Python + Pandas (per piccola esplorazione)
import pandas as pd
df = pd.read_parquet("ethereum_signals_sample.parquet")
print(df.shape) # (10000, 19)
print(df['signal_type'].value_counts())
print(df.head())
DuckDB SQL (qui è dove accade la magia — zero memoria per file enormi)
-- Avvia DuckDB
duckdb
-- Allega il campione
SELECT * FROM read_parquet('ethereum_signals_sample.parquet') LIMIT 10;
"Quanti trasferimenti ERC20 ha fatto questo indirizzo?"
SQL
SELECT COUNT(*) as transfers,
SUM(amount) as total_volume
FROM read_parquet('your_full_dataset.parquet')
WHERE from_address = '0x1234...'
OR to_address = '0x1234...'
AND signal_type = 'ERC20_Transfer';
"Top 10 token per conteggio trasferimenti nel 2024"
SQL
SELECT contract_address,
COUNT(*) as tx_count
FROM read_parquet('your_full_dataset.parquet')
WHERE signal_type = 'ERC20_Transfer'
AND timestamp >= 1704067200 -- 1 gennaio 2024
AND timestamp < 1735689600 -- 1 gennaio 2025
GROUP BY contract_address
ORDER BY tx_count DESC
LIMIT 10;
"Tutti gli swap Uniswap V3 per un pool specifico, con impatto sul prezzo"
SQL
SELECT timestamp,
amount0,
amount1,
sqrtPriceX96,
(amount1::double / NULLIF(amount0,0)) as price_impact
FROM read_parquet('full_dataset.parquet')
WHERE signal_type = 'UniswapV3_Swap'
AND contract_address = '0x88e6a0c2ddd26feeb64f039a2c41296fcb3f5640' -- USDC/ETH 0,05%
ORDER BY block_number DESC
LIMIT 1000;
"Tick di prezzo Chainlink per ETH/USD nel tempo" (perfetto per backtesting)
SQL
SELECT
date_trunc('day', to_timestamp(timestamp)) as day,
AVG(price) as avg_eth_price
FROM read_parquet('full_dataset.parquet')
WHERE signal_type = 'Chainlink_PriceUpdate'
AND contract_address = '0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419' -- ETH/USD
GROUP BY day
ORDER BY day;
Suggerimento pro: DuckDB può leggere anche cartelle partizionate:
SQL
SELECT COUNT(*) FROM read_parquet('mainnet_parquets/*.parquet');
Utilizza automaticamente il predicate pushdown — filtrare su block_number o signal_type salta il 99% dei dati su disco. Interrogherai miliardi di righe più velocemente di quanto la maggior parte delle persone possa scorrere Twitter.
Nota sullo storage: Il set completo BSC è grande ma comprimibile e funziona bene su una macchina con 64 GB di RAM. Per flussi di lavoro più grandi avvia semplicemente un economico box Hetzner con 128 GB di RAM e DuckDB batte ancora i warehouse cloud sui costi.
Un acquirente mi ha detto: "Ho cancellato il mio piano RPC da $1.200/mese lo stesso giorno in cui è arrivato il dataset."
ApprocciosCostoVelocità per Storia 3 anniManutenzioneProprietàLoop RPC grezzi$200–2000/meseOre–giorniCostanteRicostruisci tuSubgraphs/The GraphGratuito–a pagamentoVeloce ma incompletoRischio providerNoCryo auto-estrazioneIl tuo tempo + nodoGiorni per estrarreContinuaSìDelta Zero ParquetUna tantum $999+SecondiZeroPer sempre
I primi 1.000 acquirenti su mainnet/BSC ottengono il 25% di sconto con il codice EARLY25 al checkout.
Domande? Mandami un DM su X @_MikeKuykendall o unisciti al canale Telegram linkato sul sito. Rispondo a ogni singola domanda — questa è un'operazione solo per veterani e mi importa davvero che tu vinca con i dati.
Smetti di pagare l'affitto per dati che dovrebbero essere tuoi.
Scarica il campione. Esegui le query. Poi non chiamare mai più un altro eth_getLogs.
Ci vediamo on-chain (offline).
— Mike Kuykendall Delta Zero Labs P.S. Il prossimo drop della chain arriverà presto. Vuoi accesso anticipato + tipi di segnale personalizzati? Mandami un DM.
I Ditched RPC Hell for Good: Your Complete Genesis-to-Tip Parquet Handbook for Lightning-Fast… è stato originariamente pubblicato in Coinmonks su Medium, dove le persone continuano la conversazione evidenziando e rispondendo a questa storia.


