Five Unhurried Days: Building a CAW Node, Then Fixing It
CAW ships exactly one installer for running a node.
Point it at an empty server and it brings up the search engine, the database, the web server and the certificate — everything it needs — and starts running.
We rented one VPS. Five days later two of them were running, and we had decided to send two things we touched and fixed with our own hands upstream as pull requests…
❶ July 27 — we wanted to see it from the inside.
What we could see until then was what was happening on the developer's machine.
Code changes are visible from outside; what the running network actually looks like is not.
So we decided to become one of its participants ourselves.
That standing a node up would also be a contribution to CAW counted for a lot.
Two things got settled: how big a server to rent (12GB of memory, hosted in Japan, a few thousand yen a month), and to give it a domain separate from this site's — a node hands out other people's posts and images, so we kept the addresses apart.
❷ July 29 — it came up.
Answering the installer's questions in order, by 19:30 the site was replying over https.
At 22:30 the same day the step where a node announces itself to the network's roster went through, and it was given the number 1015.
The gas for it came to 0.000085 ETH — but this is a testnet (Sepolia), so that is test ETH you get free from a faucet. It costs no money.
And here is what became visible for the first time.
Recount the chain's ledger from the very beginning and there are 1,031 registrations so far. Yet only 21 addresses have ever stepped forward.
That is because a node is built to announce itself again whenever it can't find its own registration in the ledger — the busiest one had announced 246 times.
One of those 21 addresses is this site's node. It announced exactly once: number 1015. (Counted on Aug 1, 2026, by re-reading the chain's records from the start.)
❸ Before dawn on July 30 — a second one.
On the same server we brought up a node of the newer version still under development (v2).
That morning, just before seven, on the way out to work — getting a V2 testnet node up felt wonderful too.
It made the roster as number 28. The V2 side has 5 hosts, so there we are one of five.
The same phrase — "number of nodes" — carries a different weight here…
❹ The evening of July 30 — this is where the story turned.
Having built it, we wanted to use it, so we logged in to our own node to post something — and in Chrome we could not type a single Japanese character.
Type あ and nothing stays. We went as far as unplugging and replugging the keyboard, thoroughly rattled.
Could this not be our server at all, but the software…
Digging in: text you are still converting hasn't been settled yet, so the code held it aside instead of accepting it.
On Firefox that is fine, but on Chrome "not accepting it" ended up working as "erase it", and it was being rolled back as fast as we typed.
We fixed it, confirmed on a real machine that a Japanese post went through, and decided to send it upstream as PR #36.
People had already reached the same place before us — Zinsanjp and nyaromesama — and we said so in the pull request itself.
It is because of people like them that the ground under CAW's social network gets firmer.
What we did was to check it on real hardware while setting out the mechanism more sharply, and to keep our server exactly as it stood so it could serve as a test bed.
After it went up, the people running the other nodes (tencawffee, Zinsanjp, nyaromesama) each checked it in their own setup and reported back to one another.
For us it was a thoroughly good time. Let us take this chance to thank them.
❺ August 1 — one more.
It is the same as the everyday work of building things here: keeping it running, we started to see what wanted fixing in the installer itself.
At the root of it, a job that runs every three hours was running with more privilege than it needed.
It is not a spot you would go and look at without a reason, so we were glad to have found it.
We rewrote it to drop down to an ordinary account, and sent that up as PR #38.
Both pull requests are still open as of Aug 1, 2026; what we can say is that they were sent.
──Why we saved this.
While we were watching from outside, the network was a thing to look at.
Building one machine turns it into a thing you are part of.
And it isn't only your standing that changes.
Because we used it we got stuck, because we got stuck we could fix it, and because we fixed it the next person to build one doesn't get stuck in the same place.
That was the most interesting part of the whole week, and, honestly, the easiest part too.
Those five days include the evenings spent wondering which host to go with and the days spent comparing price lists — unhurried, all of it counted in.
The installer does most of the work.
Something you touch with your own hands and think "hm, that's odd" becomes your contribution.
That is exactly why anyone in the community can join in.
There are still few nodes, so simply standing one up is already an enormous contribution.
The node-building articles on caw-japan.com were a great reference too.
The other thing that made us happy was how warm the node community is.
"Let's keep it a cheerful crowd" is the mood, so you can take part at whatever pace your hours allow.
There are still seats open. After this observatory's node, the next one is surely yours.
Thank you for reading this far 🐦⬛
Source
GilgameshCaw/Caw (PR #36 · #38) · CawClientManager / CawNetworkManager roster · cawobservatory.net ↗