Run a Geth Node: Go-Ethereum on the Ethereum Network

Run a Geth Node: Go-Ethereum on the Ethereum Network

You decide to stop trusting an Infura endpoint with your wallet traffic. Maybe a friend offered to walk you through staking 32 ETH. Maybe your dApp is one rate-limit away from breaking on launch day. Whatever the reason, the next sentence is always the same: you need to run a Geth node.

That sentence sounds heavier than it is. Geth, short for go-ethereum, is the original Ethereum execution client, written in the Go programming language by Jeffrey Wilcke and a global open-source team back in 2014. A modern laptop with a roomy SSD can run one. So can a $30-a-month Hetzner box. The pieces that trip people up are not the install commands. They are the choices around them: which sync mode to pick, which consensus client to pair Geth with, what happens after the Merge, how to keep the node alive when the disk gets full at 2 a.m.

This guide walks the full path. Hardware shopping, install, snap sync, post-Merge pairing with a consensus client, the JavaScript console, accounts and Clef, validator setup, common breakage. By the end you will know exactly what your machine is doing when those white logs scroll past, and what to do when they stop.

What Is a Geth Node and Why It Matters Today

A Geth node is a computer running the go-ethereum client and plugged into Ethereum's peer-to-peer network. The machine downloads blocks. It verifies every transaction. It runs smart contracts on the Ethereum Virtual Machine. It keeps a synchronized copy of the world state. From outside, it looks like a quiet process listening on a few ports. Inside, it is a stubborn bookkeeper that refuses to take anyone else's word for the ledger. It keeps its own copy of the blockchain data, lets your wallet check account balances or submit transactions to the chain, and lets your dApp interact with the blockchain directly instead of through someone else's API.

Why does any of this matter in 2026? Concentration. Most of the public dApp traffic on Ethereum flows through a small handful of hosted RPC providers — Infura, Alchemy, QuickNode, and a few smaller shops. Infura alone served more than 600 billion blockchain requests last year. They are reliable, mostly. They are also a single point of failure: when a provider goes down in one region, half the wallets pointed at that endpoint show stale balances and stuck transactions until somebody fixes it. Run your own Geth node and that whole class of failure stops being your problem.

It is also a numbers game. Etherscan's node tracker counts roughly 13,678 active Ethereum nodes worldwide as of April 2026. The United States holds 37.55% of those — about 5,171 nodes. Germany has 16.05%. China, 12.06%. Spinning up one more node is not heroic. It is just useful, and the network keeps quietly counting on people doing it.

There is a deeper reason too. Ethereum stays Ethereum because anyone can verify it without asking for permission. Geth is the most popular client doing that verification. Every time another independent operator brings a new Geth node online, capturing the chain gets a notch harder. That logic predates the Merge and has not weakened since.

Geth Node

Geth, Go Ethereum, and the Ethereum Protocol

Three names, one project. People mash them together in conversation and nothing breaks, but here is the actual breakdown.

Ethereum the protocol is not code. It is a spec, written across the yellow paper and a long pile of EIPs, and anybody can write a client for it. Go Ethereum, sometimes written go-ethereum, is the Go-language implementation of the Ethereum protocol. Geth is the command-line program inside Go Ethereum that you run on the command line, configure with flags, and use to interact with the Ethereum network. Everything else in the repo is libraries and helpers wrapped around it. A "Geth node" is just a machine where you have started Geth, pointed it at a `chaindata` directory, and let it talk to the Ethereum mainnet.

Different clients exist for the same protocol. Nethermind, in C#. Besu, in Java. Erigon and Reth, both in Rust. Same wire format. Different code, different performance, different histories.

Geth is the oldest of them. Over 400 people have contributed; Péter Szilágyi has run point on it for years. Home is the Ethereum Foundation; source is at ethereum/go-ethereum on GitHub; the license is the GNU General Public License, GPL-3.0 for the binaries and LGPL-3.0 for the library code. The current stable, as I write this, is v1.17.2 — codename "EMF Suppressor" — out March 30, 2026. It patched three CVEs (CVE-2026-26313, -26314, -26315) and taught the client how to sync against chains whose pre-Prague history has already been pruned.

A handful of sister tools ship next to Geth. Clef is a separate signer that keeps your private keys away from the node itself. Abigen turns a Solidity ABI into Go bindings you can actually use. The `evm` tool lets you run bytecode in isolation when you need to debug something specific. None are required. You will end up reaching for at least one within a week.

Why Run a Node: Privacy, Speed, Sovereignty

Most people who run their own Geth node land there for one of three reasons. Privacy first. When a wallet talks to a hosted RPC, that provider sees every address, every contract call, and every quote request. A self-hosted node breaks that link. The provider does not exist. Your wallet asks your machine, your machine asks the network, and only your machine sees the pattern.

Performance is the second reason. Hosted RPCs throttle. Infura's free tier caps at 100,000 requests per day; the Team tier costs $225 per month for 75 million daily requests. A local node serves your traffic at memory speed with zero per-call cost. For a dApp pulling state on every page load, the latency difference is noticeable. For an arbitrage bot scanning the mempool, it is the difference between making the trade and watching it fly past. Mainnet itself processed about 200.4 million transactions in Q1 2026, peaking at 2.88 million transactions on January 16, so a node that can keep up with the network is doing real work.

Sovereignty is the third. If you stake on Ethereum, the network expects your validator to publish a block when its turn comes. Outsourcing that publication to a shared RPC is technically allowed and operationally fragile. Run your own execution layer client and you control your slot. The same goes for serious dApp builders, on-chain analysts, MEV searchers, and anyone whose business depends on Ethereum being available specifically to them.

After the Merge: Geth and Your Consensus Client

Before September 2022, a single Geth process did everything. It peered with the network. It ran the EVM. It picked a winner among competing blocks through proof-of-work mining. The Merge split that work in half. Geth still runs the EVM and keeps state. A second program — the consensus client — now handles proof-of-stake: gossiping blocks among validators, voting on what counts, and telling Geth which fork is canonical.

So every modern Geth setup is a pair, not a single process. Pick a consensus client to run alongside it. The choices are Lighthouse (Rust), Prysm (Go), Teku (Java), Nimbus (Nim), and Lodestar (TypeScript). The two processes talk to each other over a private channel called the Engine API, gated by a JWT secret you generate once and pass to both sides with `--authrpc.jwtsecret`.

Start Geth alone, without a consensus client, and the logs will say something like "Post-merge network, but no beacon client seen. Please launch one to follow the chain!" The node will sit there, polite and useless. Geth by itself is not a complete Ethereum node anymore. The pair is the unit.

Client diversity matters here. The Ethereum community asks operators to spread out across implementations on both sides of the split, because if more than two-thirds of validators end up on the same buggy client, those validators face the full 32 ETH slashing penalty when something breaks. The latest figures from clientdiversity.org put Geth at around 41% of execution clients in 2026; Stake.fish's 2026 report says closer to 50%. Either way, that is down from over 86% in 2023, but still above the 33% safety threshold the community considers ideal. Which is why some new operators deliberately pick Nethermind, Besu, or Reth — even though Geth is the easier first step.

Pectra, the Prague + Electra upgrade that activated on May 7, 2025, also reshaped what an operator does day to day. EIP-7251 raised the maximum effective balance per validator from 32 ETH to 2,048 ETH. A staking operator who used to babysit 1,000 individual validators can now consolidate them into 16 large ones. EIP-6110 cut the wait between depositing and going active from roughly 12 hours to about 13 minutes. EIP-7002 gave validators the ability to trigger their own withdrawal, instead of begging the original deposit signer to do it. Running a Geth-paired validator stack in 2026 is materially simpler than it was in 2024.

Hardware: CPU, RAM, and SSD for Geth Nodes

The honest hardware bar in 2026 is higher than the official docs admit. Plan for the next three years, not the last three.

Component Geth official docs (2023, still current) Operator-grade reality (Cherry Servers, Chainstack, 2026) Archive node (path-based, v1.16+)
CPU Quad-core 8-core / 16-thread modern AMD or Intel 8+ cores, high single-thread
RAM 16 GB 32 GB minimum, 64 GB smoother 64 GB or more
Storage 2 TB SSD 4 to 8 TB NVMe SSD 4 TB NVMe (path-based, ~2 TB used)
Network 25 Mbps 300 to 500 Mbps for full RPC 300+ Mbps
Power UPS recommended UPS strongly recommended UPS required

Storage is the line that surprises new operators. A snap-synced, pruned Geth full node sits around 650 GB today. Geth's own docs say it adds about 14 GB a week. Add a consensus client. Add a few months of growth headroom. Add any L2 RPC traffic you plan to serve. You land between 4 and 8 TB of NVMe, fast.

A word on disk type. SATA SSDs technically work. They also stall syncs and miss attestations under load. NVMe is not optional in 2026. Spinning disks have not been viable for years. If your provider only offers SATA on the cheap tier, pay up. The math is brutal: a stuck SATA disk costs you missed validator rewards every epoch.

RAM is trap number two. The official Geth hardware page, last touched in 2023, still says 16 GB. By 2026, Cherry Servers, Chainstack, and bacloud have all landed on 32 GB as the working floor, with 64 GB as the comfortable answer. Geth caches a meaty slice of state in memory. The consensus client wants its share. Add Prometheus, Grafana, anything else you actually use, and 16 GB runs out fast.

CPU is the easiest of the three. Modern desktop chips have more headroom than Geth knows what to do with. Clock speed is barely the question. Core count and modern instructions matter more. AVX2 keeps signature verification fast. Eight cores keep a sync surge from locking up your machine. Looking ahead, the block gas limit jumped from 30 million to 45 million to 60 million between mid-2024 and November 2025. The Ethereum Foundation has been telegraphing 100M+ through 2026. That is the curve you are sizing against, not last year's load.

Geth Sync Modes for the Ethereum Blockchain

Sync mode is the biggest knob a new Geth operator turns. Pick wrong and you waste a week downloading data you did not actually need.

Mode What it stores Disk in 2026 Sync time Use case
Snap (default) Recent state + recent receipts ~650 GB, +14 GB/week 1 to 3 days (faster on NVMe) dApps, wallets, validators
Full Recent state + every header back to genesis ~1 TB 3 to 5 days Verifying every block from genesis
Archive (path-based, v1.16+) Historical state via reverse diffs 1.9 to 2.0 TB 1 to 2 weeks Most archive use cases
Archive (legacy hash-based) Every historical state, every receipt, every trie 12 to 20 TB 4 to 8 weeks DeFi indexers needing eth_getProof

Snap is the default, and almost always the right choice. It grabs a recent state snapshot from peers, then quietly fills in headers and receipts behind that. You get a working Geth node in a couple of days on decent hardware. It serves wallets, dApps, and validators just fine. The one thing it cannot do is answer historical questions like "what was Vitalik's balance on October 7, 2017?" If you do not care about that, you are done thinking about sync mode.

Full sync still ships. Most people do not need it. Full mode walks every block back to the genesis block and re-runs every transaction, so the client can verify the blockchain end-to-end instead of trusting the snap snapshot. Useful if you are paranoid about snap, or if you are seeding a pruned-history archive. Not useful for normal operations.

Archive is the heavy one, and 2025 is when archive nodes changed. Until the v1.16 release, an archive node meant 12 to 20 TB of fast SSD — essentially a small server. v1.16 shipped a path-based archive mode that stores historical state as reverse diffs and cuts disk requirements to roughly 1.9 to 2.0 TB on mainnet. That brings Geth's footprint down close to Erigon's (~1.77 TB). The trade-off, at first, was that path-based archive did not support historical Merkle proofs (`eth_getProof` on old blocks). DeFi indexers and other proof-heavy workloads still needed the legacy hash-based archive. v1.17.0, in February 2026, added proof support to the path-based mode in some configurations — check the release notes for your exact version. The typical archive operators are block explorers, forensic teams, and serious analytics shops. Most people reading this guide will never need one.

One footnote. Light-client mode, the old `--syncmode "light"` flag, has been deprecated and is no longer maintained on mainnet. If a 2026 tutorial tells you to start Geth in light mode, the tutorial is out of date.

Geth Node

Install Geth on Ubuntu, macOS, and Windows

The install step is short. Pick the platform you actually plan to run on, not the one on your laptop.

Linux / Ubuntu (the workhorse)

Most production Geth nodes live on Ubuntu. The Ethereum team maintains a PPA, and three commands through the Ubuntu package manager get you a working binary:

```

sudo add-apt-repository -y ppa:ethereum/ethereum

sudo apt-get update

sudo apt-get install ethereum

```

Run `geth version` to confirm. The PPA tracks the latest stable. In production you usually pin a known-good build with something like `apt-get install ethereum=1.17.2-...` and upgrade on a calmer schedule than "whenever apt feels like it."

macOS (developer-friendly)

On macOS, Homebrew does the work. Two lines:

```

brew tap ethereum/ethereum

brew install ethereum

```

Macs are great for testnet experiments and dApp development. Almost nobody runs a mainnet validator on a Mac, though. Power management is too aggressive, and macOS will happily put your beacon node to sleep at the wrong moment.

Windows

There are `.exe` installers and `.zip` archives on geth.ethereum.org and on the project's GitHub releases page. Click through the installer, let it edit your PATH, then open a Command Prompt or PowerShell and run `geth version`. It should answer.

Windows Server can host a perfectly fine stand-alone Geth node. Validator stacks tend to lean Linux because the consensus clients ship Linux-first, but you can mix and match if you want. The rest of this guide writes its commands in Linux shell style. Translating to PowerShell is mostly a matter of path separators and a different way of doing line continuations.

Docker

`docker pull ethereum/client-go:stable` gets you a clean container. Docker is by far the easiest way to test a new Geth release without messing up your host. It is also a respectable production deployment if your team is already container-shaped. One caveat: the Docker volume holding `chaindata` has to be on NVMe. Putting it on a regular EBS volume, an HDD datastore, or a Docker Desktop volume on a Mac will reproduce every "stuck sync" thread on Reddit.

Building from source

Source builds want Go 1.23 or newer, plus a C compiler. `make geth` builds just the node. `make all` gets you the full utility suite: geth, clef, abigen, evm, devp2p, rlpdump. Reach for source builds when you want a release that has not been packaged yet, or when you have a private patch you do not feel like maintaining as a fork.

Run Geth: First Sync and the JSON-RPC Console

Binary installed, jwt secret generated, consensus client ready. The first command on a mainnet box looks roughly like this:

```

geth \

--mainnet \

--datadir /var/lib/geth \

--syncmode snap \

--http \

--http.addr 127.0.0.1 \

--http.port 8545 \

--http.api eth,net,web3 \

--authrpc.addr 127.0.0.1 \

--authrpc.port 8551 \

--authrpc.jwtsecret /etc/geth/jwt.hex \

--authrpc.vhosts localhost

```

Three ports do the work here. 30303 over TCP and UDP — that is your peer-to-peer line to the rest of Ethereum. 8545, the HTTP-RPC door your wallet and scripts come through. 8551, the Engine API, reachable only by your consensus client and gated by the JWT secret.

To poke at the running node, attach the Geth console. (It is a JavaScript console glued to the node's APIs.) Open a second shell:

```

geth attach http://127.0.0.1:8545

```

Now every JSON-RPC method is a JavaScript call. `eth.blockNumber`. `net.peerCount` (thirty-ish is healthy on mainnet). `eth.syncing` returns `false` once the node has caught up. Want a balance? `web3.fromWei(eth.getBalance('0x...'), 'ether')`. That is the whole interactive surface.

Then there is the log file. Watch it. The line you want to see is `Imported new chain segment`. It means Geth has caught the head and is keeping pace, eating each new list of transactions off the Ethereum blockchain network as the network ships them. If your logs say `Looking for peers` and nothing else, the firewall is dropping inbound P2P. Open 30303 on TCP and UDP, restart Geth, try again. That is the fix nine times out of ten.

For automation, every Ethereum library worth using speaks JSON-RPC over HTTP, or over WebSocket if you also pass `--ws`. ethers.js. web3.js. viem. The Go client. The Python client. They all treat your local Geth node exactly like Infura — point them at `http://127.0.0.1:8545` and stop. The code stays the same. The only thing that changed is who answers the call.

Use Geth: Accounts, Clef, and Transactions

Geth still ships an account manager, but the modern recommendation is to separate signing from the node by running Clef. Clef is a tiny separate program that holds your keys and asks for explicit confirmation every time something tries to use them.

Creating an account through Clef looks like this:

```

clef newaccount --keystore /var/lib/geth/keystore

```

Clef wants a password of at least ten characters. It writes an encrypted keystore file and hands you back an address. That address is an externally-owned account (EOA) — the same flavor a hardware wallet or MetaMask would create. Nothing exotic.

To make Geth use Clef, point the node at Clef's IPC socket: `--signer=/path/to/clef.ipc`. From that moment on, every transaction request, whether it comes from the Geth console or from a dApp using the JSON-RPC API, has to be approved at the Clef terminal. That is the model the Geth team recommends in 2026. Keys live outside the node. The node, by itself, cannot spend a single wei.

A transfer from the console looks like this:

```

eth.sendTransaction({

from: '0xca57f3b40b42fcce3c37b8d18adbca5260ca72ec',

to: '0xce8dba5e4157c2b284d8853afeeea259344c1653',

value: web3.toWei(0.1, 'ether')

});

```

Clef pops up. You confirm. The transaction enters the mempool, and a few seconds later it is in a block. Behind that single line, Geth did the nonce lookup, the fee estimation, the signature handoff to Clef, the broadcast, and the inclusion check. That same loop runs under every dApp.

For more involved work, the same JSON-RPC endpoint accepts transaction submissions, event subscriptions, view function calls, and traces. From a library's point of view, your local Geth instance is indistinguishable from a hosted node — except it is faster, free per call, and yours.

Validator Setup: Stake Ether and Earn Rewards

Once your Geth node is synced and paired with a consensus client, adding a validator is mostly configuration. You do not install a new node. The execution layer (Geth) keeps doing its job. The consensus client picks up a validator role on top: it signs attestations every epoch, and when the protocol selects your validator, it asks Geth to assemble the block contents.

There are three moving parts to bring online. First comes the 32-ether deposit. You generate validator keys with the official deposit CLI, send the deposit transaction to the contract on mainnet, and wait for activation. Second is the validator client process. It runs alongside the beacon node, holds your signing key, and signs attestations on schedule. Third is MEV-Boost or a relay setup, if you want transaction-ordering rewards on top of the base reward. Geth itself does not run the validator. The consensus client does. Geth is the execution endpoint that builds the actual block payload when your validator's slot comes up.

Day-to-day, validators care about three numbers: missed attestations, sync uptime, and disk pressure. Missed attestations almost always trace back to a node that fell behind the head, which in turn almost always traces back to disk I/O or peer loss. Disk pressure on Geth is the classic culprit. Slip below the recommended NVMe spec, and your attestation effectiveness drops. Rewards drop with it.

Most home-stakers run a dedicated mini-PC: an Intel NUC, a Beelink, or a custom Ryzen build. Hardware lands somewhere between $800 and $2,000 one-time. Power and internet add another $10 to $20 a month. Coin Bureau's 2026 breakdown puts a professional Hetzner validator at $30 to $40 a month, an AWS basic full node under $100, and an AWS archive node around $1,500. Solo staking yields about 4% APY on the base reward and climbs to 5–6% with MEV-Boost; on home hardware, that breaks even in roughly 4 to 6 months at today's ether price. As of late 2025 the network had about 1.06 million active validators, holding 35 to 37 million ETH (29 to 31% of supply). Lido alone controls 27.7% of the staked total. Coinbase, 8.4%. Every additional independent validator quietly tilts that concentration the other way, which is much of why solo staking is still a thing people do.

Testnet vs Mainnet: Where to Run an Ethereum Node

Do not start on mainnet. Mistakes are cheap on a testnet, and they do not get cheaper than free. Geth handles every supported network with a single flag.

The two Ethereum testnets you should care about in 2026 are Holesky, the long-running validator-focused testnet, and Sepolia, the lighter, application-focused one. Want a Sepolia Geth node? Swap `--mainnet` for `--sepolia`. Holesky? `--holesky`. Your data directory should be a separate path from your mainnet `chaindata`. If you reuse the same folder, Geth refuses to start because the chain ID does not match — which is the kind of error message that takes thirty seconds to fix and an hour to find.

Testnet ether is free. Faucets like the Paradigm Multifaucet and the Sepolia faucet at faucet.sepolia.dev will hand out enough Sepolia ETH to deploy contracts, run integration tests, and send several thousand transactions. The "ether" is fake. Everything else is real: the EVM behaves the same, the JSON-RPC API is the same, the coupling to your consensus client is the same, the operational pain is the same. Run your stack on Sepolia for a week before pointing anything at mainnet.

Old testnets are gone. Ropsten, Rinkeby, Kovan, Goerli — all retired. If a tutorial still tells you to start Geth with `--ropsten`, it is pre-Merge and you should close the tab.

For a true private environment, run your own network. Geth's `--dev` mode boots a single-node chain in seconds, which is great for unit tests. For multi-machine private networks, write a custom `genesis.json`, share it across the boxes, and start each Geth process with `--datadir` pointing at a fresh chaindata folder. The Kurtosis framework packages all of this behind one command if you would rather not do the wiring by hand.

Common Geth Node Issues and Troubleshooting

Most Geth incidents fall into a small set of patterns. The fix is usually fast once you recognize the shape.

Sync stalled at a few percent. Your Geth node is online but not catching up: peer count is too low, your bandwidth is saturated, or the disk cannot keep up. Check `net.peerCount` in the console. If it is under fifteen, your inbound P2P port is firewalled. Open 30303 TCP and UDP. If it is healthy, run `iostat -xm 5` on Linux during sync; if the SSD is hitting 100% utilization, you are I/O bound and need faster storage. A version-specific note: Geth v1.17.1 (March 3, 2026) was released specifically to fix a snap-sync regression in v1.17.0; if you are stuck on that version, upgrading is the fix.

"Post-merge network, but no beacon client seen." The consensus client is not running, the JWT secret does not match, or the consensus client is pointed at the wrong AuthRPC port. Check the JWT path, port 8551, and that both processes were started with the same secret file.

Disk fills up overnight. Snap sync can spike disk usage during the initial state-healing phase. Pruning runs automatically afterwards. If you started on a 1 TB SSD, the head will eventually catch you. The fix is always more space, not more aggressive pruning, because Geth's pruning is already tuned. Move chaindata to a larger NVMe and rsync over.

Geth won't start: "database compatible with this version of geth not found." A previous run was on a different chain ID, an older Geth version, or a corrupted state. The `chaindata` folder is mismatched. Either resync into a fresh datadir or roll back to the prior Geth release.

Validator missing attestations. If your Geth node is reading every new block correctly but the validator still misses attestations, look at disk pressure first, network second, CPU last. The pattern in monitoring tools like Netdata is unmistakable: PSI (Pressure Stall Information) for disk hits 30% or more during attestation windows.

RPC requests slow. A heavy dApp client hammering `eth_getLogs` or `debug_traceTransaction` can saturate Geth's CPU. Move that traffic to a separate node, or use `--rpc.gascap` and `--rpc.txfeecap` to bound expensive calls.

A final habit. Watch logs continuously during the first week to keep Geth running cleanly under real load. Tools like Netdata, Prometheus + Grafana, or simply `journalctl -fu geth` make the early failure modes obvious. By week two, alerting on missed attestations and disk fill rate is enough.

Geth vs Other Ethereum Clients: Trade-offs

Geth is the default first step. It is not the only one, and the answer to "should I switch" depends on what you need.

Client Language 2026 share (clientdiversity.org / Stake.fish range) Strengths Use if...
Geth Go 41 to 50% Stability, large community, official defaults You want the safest first node
Nethermind C# 25 to 38% Fast snap sync, plugin-friendly, Hyperledger You want a non-Go execution client
Besu Java 10 to 16% Enterprise features, permissioned chains, Hyperledger You operate a permissioned chain
Reth Rust 2 to 8% Modular, modern codebase, fast sync You want the leading Rust client
Erigon Rust/Go 3 to 7% Compact archive (~1.77 TB), fast historical queries You need a small archive node

The community argument for picking something other than Geth is client diversity. If a single execution client crosses the two-thirds supermajority on mainnet and ships a buggy upgrade, validators on that client risk slashing. Splitting your validator fleet across two clients halves that risk. For a single home staker, the math is more boring: pick the one you can keep alive, run it well, and only switch if you have a specific reason. The node architecture is similar across all of them, so swapping later is easier than it sounds. Erigon and Reth in particular are now mature enough to be primary clients, not curiosities.

Any questions?

No. Ethereum retired mining at the Merge in September 2022 by switching from proof-of-work to proof-of-stake. Modern Geth runs the EVM only and hands block production to your consensus client and validator. Any tutorial mentioning `miner.start()` is pre-Merge and broken.

The 2026 minimum that actually works: 4-core CPU, 16 GB RAM, a 2 TB NVMe SSD, and an unmetered 25 Mbps line. Below that, the node stalls during sync or misses validator attestations. Archive nodes want roughly eight times the storage and more RAM.

Running a node by itself earns no ether. It opens three revenue paths instead: staking 32 ETH as a validator (~4–6% APY), MEV searching, and reselling RPC access. For home operators the actual payoff is usually privacy and dApp speed, not income.

Yes — on mainnet and every active testnet. Geth has run only the execution layer since the Merge. A consensus client (Lighthouse, Prysm, Teku, Nimbus, or Lodestar) covers proof-of-stake. They talk over the Engine API on port 8551, gated by a shared JWT secret.

Snap sync on NVMe with healthy peers: one to three days on mainnet. Slow disks drag that out to a week. Archive sync runs four to eight weeks since it rebuilds every historical state. Pre-synced services hand you a snapshot in two to four hours.

A machine running go-ethereum, hooked into Ethereum`s peer-to-peer network. It pulls down blocks, checks every transaction on the EVM, and keeps a synced copy of chain state on disk. To the network, it is one more independent witness to the ledger.

Ready to Get Started?

Create an account and start accepting payments – no contracts or KYC required. Or, contact us to design a custom package for your business.

Make first step

Always know what you pay

Integrated per-transaction pricing with no hidden fees

Start your integration

Set up Plisio swiftly in just 10 minutes.