An old Mac is still infrastructure
A Mac that is finished as a personal computer is not finished as a node. This page is written from a real build on a 2013 iMac running macOS 10.15 — two major versions past its last supported release, unable to run the SOV wallet app at all. It runs a full node: it holds the complete ledger, validates, relays, and earns the operator payout.
A node is not a wallet
This is the distinction that makes old hardware useful. The wallet is the app you hold your identity in. The node is a server that keeps the network running. They have different jobs and very different requirements.
A SOV node is walletless. It holds no keys for anybody. It cannot sign on a citizen's behalf, cannot move anyone's funds, and never sees a private key. What it stores is the replicated public ledger that every node holds. What it does is validate, relay and stay available — and that is what it is paid for.
So the operator of a node takes on no custody and no liability for anyone else's money. You are lending the network a computer and a connection, not becoming a bank.
What the hardware actually has to do
Far less than people assume. The machine in this example is a twelve-year-old desktop with four cores, and it sits idle most of the time. A node is bound by availability, not by speed: it must be switched on, connected, and reachable. An old desktop that lives in a corner and is never asked to do anything else is close to ideal — better, in some ways, than a laptop that travels and sleeps.
What an older machine will hit is a software ceiling rather than a hardware one. An operating system a few versions behind cannot run the newest runtimes, and the node's database component may refuse to build with a modern compiler flag. Both are solvable, and neither is a reason to retire the machine.
The ceiling that looks worse than it is
On the machine here, the build stopped on a single line: the compiler rejected the name of a language-standard flag that a newer compiler would accept. Not a missing feature — a spelling. Substituting the older spelling of the same standard built the component correctly and it has run without fault since.
The general lesson is worth more than the specific fix. Read the error, not the reputation of the machine. "This computer is too old" is a conclusion that arrives early and is often wrong; three weeks were spent here planning an elaborate workaround for a problem that turned out to be one word. Before accepting that hardware is finished, confirm what the tool actually said.
Two traps that make a broken node look healthy
Both of these were hit on this build, and both matter to anyone setting a node up.
An install step can report success while doing nothing. A rebuild command run against an empty directory cheerfully announces that it rebuilt everything. Nothing was built, because nothing was there. Always finish with a check that cannot pass by accident — ask the node's database component to open a database and write a row. If it returns the row, it works. If it cannot, no cheerful message means anything.
Reaching out is not the same as being reachable. A node behind a home router can connect outward to every peer on the network and still accept no connections at all. The protocol knows this and refuses to take a node's word for it: your node is marked reachable only when another node has successfully dialled it back. If your log repeats a request to be dialled, that is not a fault — it is the network correctly declining to advertise a door that does not open.
Getting reachable from a home connection
Three approaches, in the order most people should try them.
- Forward the ports on your router to the machine's address on your home network. Check which port your node serves citizens on before you do — it is not always the obvious one, and the forward has to match.
- Let the router handle dynamic DNS, not the computer. Home connections are usually given an address that changes. A small updater program running on the machine is the common advice and the weaker option: it stops when the machine is off, and it is easily lost when the machine is rebuilt. The router always knows the current address and is always on.
- Use an ingress tunnel if your provider makes forwarding impossible. Some connections share one public address between many homes, and then no port can be forwarded at all. A tunnel dials outward and gives you a stable public endpoint anyway.
Without any of these your node still takes part — it peers, replicates and validates through other nodes — but it cannot accept citizens directly, and it cannot complete operator registration, which requires proof that it can be reached.
Getting paid
To earn, a node registers as an operator against an enrolled citizen identity. It announces itself, a sample of existing nodes interrogate it, and a quorum of them must approve. The payout is for uptime and for transactions carried, and the rates are governance parameters — citizens vote on them, no company sets them.
Registration will not complete until your node can be reached, so settle reachability first. The node keeps retrying on its own; there is nothing to babysit.
Keeping it alive without touching it
A node that stops when nobody is watching earns nothing, and the defaults on a desktop machine are all wrong for this. Three settings do most of the work:
- Restart automatically after a power cut. Desktops normally stay off. One power interruption otherwise ends your node until somebody walks over to it.
- Never sleep. An idle desktop sleeps within minutes and stops serving. On the machine here it was sleeping for two hours at a time before this was changed.
- Start the node at boot, not at login. This is the one people miss. If the node is set up to start when a user logs in, then a machine that reboots and waits at the login screen is a machine doing nothing — and if you were relying on reaching it remotely, you now cannot reach it at all.
Check that these settings are saved, not merely applied to the current session. Most systems distinguish between the two, and only the saved ones survive a restart.
One habit worth more than any command
If you ever wipe a node to start it clean, remember that wiping data is not the same as wiping configuration. On this machine, several clean wipes removed every database and every data directory — and left the service definition untouched. That file quietly preserved settings from the machine's previous life, so a node rebuilt from a "clean" start came back carrying old values, and said so only in a log line on other nodes that read like noise.
When you rebuild a node, reconcile the service definition too. Otherwise you are not starting clean; you are starting with a fresh database and a stale identity.
A node is the most ordinary contribution anyone can make to SOV, and the most useful. It needs no permission, no company, and no new hardware — only a machine that stays on and a connection that lets it answer.
SOV NETWORK