Welako now talks to ten Steem servers at the same time — and shares a map with the community

in #steemit2 days ago

🇬🇧 English

What we built

Welako now talks to ten Steem servers at the same time, instead of just one. If one is slow or goes down, the system automatically switches to the next — and you as a user don't notice a thing. That was always my goal: that Welako runs as reliably as a modern booking platform, without the Steem blockchain becoming the weak link.

On the new status page welako.app/steem-status, you can now see live what's happening behind the scenes: which server is responding fastest right now, what the average response time looks like, whether all servers are online. Until now this was only visible to admins — now it's open for everyone, because transparency matters when you want to build trust.

A map with honest gaps

While building the status page I had the idea of showing a world map with the Steem server locations. Sounds simple — until you realize how hard it actually is to find out where a server really stands.

Most Steem API servers run behind Cloudflare or other CDNs. That means: what an IP geolocation shows you is usually just the CDN edge — not the real server location. For some servers I was able to find the actual origin via sister subdomains, for others it wasn't possible.

The result is a map with honest gaps:

  • Five region markers in different colors (Frankfurt, New York, Dallas, San Francisco, Singapore)

  • Each server in the legend with the color dot of its region

  • Four servers shown as "without fixed location" because I couldn't find out despite research

Above the map there's a note: locations are based on simple research and may differ significantly. If you — the server operators — want to share your actual location, send me a message and I'll update the map. Better an honest map with gaps than a pretty one with made-up data.

End of May: every user picks their own server

What I'm showing you here is just the admin phase — currently the Welako admin (that's me) centrally decides which server is used for everyone. That's going to fundamentally change at the end of May.

Then every Welako user can decide individually:

  • either pick a specific Steem server (for example your own witness server, or the geographically closest one)

  • or enable automatic optimization — Welako will then measure latency from your location to all servers and automatically use the server that's fastest for you

That means: a user in Berlin automatically gets a server in Europe. A user in Singapore automatically gets a server in Asia. No one has to put up with a central setting that's too slow for half the world. Server selection moves from a central admin setting to an individual user preference.

Open-source module + Condenser fork as a demo

I'm currently preparing the code for the multi-server logic as a standalone open-source module. An npm package called steem-node-rotator. Current spec:

  • 48 tests passing, 98% code coverage

  • Bundle < 5 KB gzipped (ESM + CJS + browser build)

  • No external dependencies — pure JavaScript/TypeScript

  • Three selection strategies: round-robin, latency-based, weighted-random

  • Sticky broadcast: write operations stay on the once-chosen server until confirmation

  • Health check with configurable cooldown and blacklisting

  • SSR-compatible and browser-ready

But to prevent it from just being a code snippet that nobody knows what to do with, I'm planning a further step: since Condenser (Steemit's original frontend) is by far the most-used Steem frontend — and presumably most of you here post through it as well — I'll create a Condenser fork and use steem-node-rotator as a reference implementation in it.

This brings two benefits:

  1. Other developers can see directly how to integrate the module — not as an abstract example but in real, production-grade code

  2. Whoever deploys the fork directly gets a fail-safe Condenser without any further work

The fork will probably appear in the coming weeks, once the npm package is properly published.

Thanks

A special thanks to @blaze.apps from Kathmandu, who offered me his server steemd.blazeapps.org for the Welako bootstrap list yesterday. Exactly this kind of community makes Steem what it is. The server is still in observation mode in my health monitor for another week, then it'll be added.

Take a look: welako.app/steem-status

Feedback, hints and corrections very welcome.


🇩🇪 Deutsch

Was wir gebaut haben

Welako spricht ab jetzt nicht mehr nur mit einem einzigen Steem-Server, sondern mit zehn gleichzeitig. Wenn einer langsam ist oder ausfällt, wechselt das System automatisch zum nächsten — und du als Nutzer merkst gar nichts davon. Das war schon immer mein Ziel: dass Welako genauso zuverlässig läuft wie ein modernes Mietportal, ohne dass die Steem-Blockchain zur Schwachstelle wird.

Auf der neuen Status-Seite welako.app/steem-status kann man jetzt live sehen, was im Hintergrund passiert: welcher Server gerade am schnellsten antwortet, wie die durchschnittliche Antwortzeit aussieht, ob alle Server online sind. Bisher war das nur für Admins sichtbar — jetzt ist es für alle offen, denn Transparenz ist wichtig wenn man Vertrauen aufbauen will.

Eine Karte mit ehrlichen Lücken

Beim Bauen der Status-Seite kam mir die Idee, eine Weltkarte mit den Standorten der Steem-Server zu zeigen. Das klingt einfach — bis man merkt, wie schwer es eigentlich ist herauszufinden, wo ein Server tatsächlich steht.

Die meisten Steem-API-Server laufen hinter Cloudflare oder anderen CDNs. Das heißt: was eine IP-Geolocation anzeigt, ist meistens nur der CDN-Edge — nicht der echte Server-Standort. Bei manchen Servern konnte ich über Schwester-Subdomains den echten Origin-Standort herausfinden, bei anderen war das nicht möglich.

Das Ergebnis ist eine Karte mit ehrlichen Lücken:

  • Fünf Region-Marker mit verschiedenen Farben (Frankfurt, New York, Dallas, San Francisco, Singapur)

  • Jeder Server in der Legende mit Farbpunkt seiner Region

  • Vier Server stehen als "ohne festen Standort" da, weil ich es trotz Recherche nicht herausfinden konnte

Über der Karte steht ein Hinweis: Die Standorte basieren auf einfacher Recherche und können erheblich abweichen. Wenn ihr — die Server-Betreiber — euren echten Standort mitteilen wollt, schreibt mir und ich aktualisiere die Karte. Lieber eine ehrliche Karte mit Lücken als eine schöne mit erfundenen Daten.

Ende Mai: jeder User wählt seinen eigenen Server

Was ich euch hier zeige, ist erst die Admin-Phase — aktuell legt der Welako-Admin (also ich) zentral fest, welcher Server für alle Nutzer verwendet wird. Das ändert sich Ende Mai grundlegend.

Dann kann jeder Welako-Nutzer einzeln entscheiden:

  • entweder einen bestimmten Steem-Server fest auswählen (zum Beispiel den eigenen Witness-Server, oder den geographisch nächsten)

  • oder die automatische Optimierung aktivieren — dann misst Welako für deinen Standort die Latenz zu allen Servern und nutzt automatisch den Server, der für dich am schnellsten ist

Das heißt: Ein User aus Berlin bekommt automatisch einen Server in Europa. Ein User aus Singapur bekommt automatisch einen Server in Asien. Niemand muss sich mehr mit einer zentralen Vorgabe abfinden, die für die halbe Welt zu langsam ist. Die Server-Auswahl wird vom zentralen Admin-Setting zur individuellen User-Einstellung.

Open-Source-Modul + Condenser-Fork als Demo

Den Code für die Multi-Server-Logik bereite ich gerade als eigenständiges Open-Source-Modul auf. Ein npm-Paket namens steem-node-rotator. Aktuelle Spec:

  • 48 Tests grün, 98% Code Coverage

  • Bundle < 5 KB gzipped (ESM + CJS + Browser-Build)

  • Keine externen Dependencies — pure JavaScript/TypeScript

  • Drei Auswahl-Strategien: round-robin, latency-based, weighted-random

  • Sticky-Broadcast: Schreib-Operationen bleiben beim einmal gewählten Server bis zur Bestätigung

  • Health-Check mit konfigurierbarem Cooldown und Black-listing

  • SSR-kompatibel und Browser-tauglich

Aber damit das nicht nur ein Code-Snippet bleibt mit dem niemand was anfangen kann, plane ich einen weiteren Schritt: Da das Condenser (Steemits Original-Frontend) trotz allem das mit Abstand meistgenutzte Steem-Frontend ist — und vermutlich die meisten von euch hier ebenfalls darüber posten — werde ich einen Condenser-Fork anlegen und dort steem-node-rotator als Referenz-Implementation einbauen.

Das bringt zwei Vorteile:

  1. Andere Entwickler sehen direkt, wie man das Modul integriert — nicht nur als abstraktes Beispiel sondern in echtem, produktiv genutztem Code

  2. Wer den Fork direkt deployt, hat sofort einen ausfallsicheren Condenser ohne weiteren Aufwand

Der Fork wird vermutlich in den nächsten Wochen entstehen, sobald das npm-Paket sauber publik ist.

Danke

Ein besonderes Dankeschön an @blaze.apps aus Kathmandu, der mir gestern seinen Server steemd.blazeapps.org für die Welako-Bootstrap-Liste angeboten hat. Genau diese Art von Community macht Steem zu dem was es ist. Der Server steht noch eine Woche im Beobachtungs-Modus in meinem Health-Monitor, dann wird er aufgenommen.

Schaut mal vorbei: welako.app/steem-status

Feedback, Hinweise, Korrekturen sind sehr willkommen.


#welako #steem #steemit #deutsch #witness #witness-category #steemdev #condenser #blockchain #travel #api #nodes #opensource #community #transparency


Published with Welako