<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Skycoin Blog</title><link>https://blog.skycoin.com/</link><description>Recent content on Skycoin Blog</description><generator>Hugo -- gohugo.io</generator><language>en</language><lastBuildDate>Wed, 14 Oct 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://blog.skycoin.com/index.xml" rel="self" type="application/rss+xml"/><item><title>Skywire Development Update — October 14, 2026</title><link>https://blog.skycoin.com/posts/dev-update-2026-10-14/</link><pubDate>Wed, 14 Oct 2026 00:00:00 +0000</pubDate><guid>https://blog.skycoin.com/posts/dev-update-2026-10-14/</guid><description>&lt;p&gt;The fourteenth of October made skywire.conf the real source of truth for a visor&amp;rsquo;s settings: every config generation flag gained a variable there, every live setting change made through the CLI, the hypervisor or the settings page is now saved back to the exact file the config was generated from, and Windows installs, whose settings file had been silently ignored, now read it. SkyDNS became usable for HTTPS to mesh names, asks for a password once instead of failing when it lacks the privilege to create its network interface, and now shares the resolving proxy&amp;rsquo;s warm routes, which took repeated page requests from several seconds each to under half a second. The resolving proxies gained explicit choices for traffic that is not bound for the mesh, LinuxOnTab can now be served beside the desk and opened from it, and on the Skycoin side the node learned to serve the web wallet as an installable app with its password kept in the browser, while the skycoin.com site was rebuilt on a current toolchain and is deployed by release again.&lt;/p&gt;</description><enclosure url="https://blog.skycoin.com/img/skywire-the-next-internet.png" length="194882" type="image/png"/></item><item><title>Skywire Development Update — October 13, 2026</title><link>https://blog.skycoin.com/posts/dev-update-2026-10-13/</link><pubDate>Tue, 13 Oct 2026 00:00:00 +0000</pubDate><guid>https://blog.skycoin.com/posts/dev-update-2026-10-13/</guid><description>&lt;p&gt;The thirteenth of October was release day for v1.3.101, which carries the KCP scheduler fix that boards running v1.3.100 needed, and the release itself prompted the browser module to stop being packaged at all, since it had pushed one package past GitHub&amp;rsquo;s file size limit; visors now fetch it when its desk is first opened. Two security changes went in: hypervisor passwords are now hashed with Argon2id, and the post-quantum handshake is now required rather than merely preferred, closing a path by which a man in the middle could force a session down to classical cryptography. The test deployment and the last environment variables that changed behavior outside the config were removed, new systemd units arrived for the Skycoin node and explorer, and the CLI gained &lt;code&gt;hv map&lt;/code&gt;, a tree of every visor behind a hypervisor and what each one runs.&lt;/p&gt;</description><enclosure url="https://blog.skycoin.com/img/skywire-the-next-internet.png" length="194882" type="image/png"/></item><item><title>Skywire Development Update — October 12, 2026</title><link>https://blog.skycoin.com/posts/dev-update-2026-10-12/</link><pubDate>Mon, 12 Oct 2026 00:00:00 +0000</pubDate><guid>https://blog.skycoin.com/posts/dev-update-2026-10-12/</guid><description>&lt;p&gt;The twelfth of October brought &lt;code&gt;skywire sh&lt;/code&gt;, a websh shell on an ordinary terminal with skywire running inside the same process, which first meant teaching a command tree that called &lt;code&gt;os.Exit&lt;/code&gt; in two hundred places to end only the command being run rather than the whole program, and then giving each in-process run its own standard output and error so pipes and redirects work. A visor&amp;rsquo;s port 80 learned to serve several local sites by host name, so a visor can host websites without a separate reverse proxy in front of it. The browser desk stopped keeping a dead visor&amp;rsquo;s memory alive and stopped starting a second visor beside one that was still running, a batched route setup that nobody was waiting for any more is now canceled, and on the Skycoin side a block publisher started without a secret key now returns an error instead of panicking.&lt;/p&gt;</description><enclosure url="https://blog.skycoin.com/img/skywire-the-next-internet.png" length="194882" type="image/png"/></item><item><title>Skywire Development Update — October 11, 2026</title><link>https://blog.skycoin.com/posts/dev-update-2026-10-11/</link><pubDate>Sun, 11 Oct 2026 00:00:00 +0000</pubDate><guid>https://blog.skycoin.com/posts/dev-update-2026-10-11/</guid><description>&lt;p&gt;The eleventh of October introduced the host bridge, a small helper process that lends a visor running in a browser tab the sockets of the computer it runs on, and within the same day the browser visor was using it to run stcpr and sudph transports at an address of its own, to forward host ports to its own apps, and to remember all of it across restarts. Reward pool 2 moved to paying on bandwidth that both ends of a transport agree on, and the first three parts of verifying that bandwidth by the content of the byte stream itself went in, along with a fix for restarts of transport discovery crediting a transport&amp;rsquo;s whole lifetime again. The deployment status page gained per-type columns and version information, and a large batch of fixes for Skywire Mobile landed ahead of its next release, including a mail screen for Skymail, search and blocking in SkyChat, and calls that are no longer silent when answered on a locked phone.&lt;/p&gt;</description><enclosure url="https://blog.skycoin.com/img/skywire-the-next-internet.png" length="194882" type="image/png"/></item><item><title>Skywire Development Update — October 10, 2026</title><link>https://blog.skycoin.com/posts/dev-update-2026-10-10/</link><pubDate>Sat, 10 Oct 2026 00:00:00 +0000</pubDate><guid>https://blog.skycoin.com/posts/dev-update-2026-10-10/</guid><description>&lt;p&gt;The tenth of October was the busiest day of the month so far, with forty-seven changes merged. The leaking KCP sessions on the address resolver were finally traced, with a heap dump, to two separate causes, one in the resolver and one in the KCP library itself, and both were fixed. A whole private deployment can now be run inside a single visor, from the dmsg server through the route finder, with other visors and even browser visors able to join it, and a guide explains how. Every remaining terminal interface moved off bubbletea and tview onto one toolkit that also runs inside the browser desk, and the desk gained a real terminal and a single shared filesystem. Gin and chi left the codebase in favor of the standard library&amp;rsquo;s router, the decommissioned uptime tracker was removed outright, the generated memory limit that had pinned small hosts in garbage collection was dropped, and the browser module stopped being embedded in the native binary at all.&lt;/p&gt;</description><enclosure url="https://blog.skycoin.com/img/skywire-the-next-internet.png" length="194882" type="image/png"/></item><item><title>Skywire Development Update — October 9, 2026</title><link>https://blog.skycoin.com/posts/dev-update-2026-10-09/</link><pubDate>Fri, 09 Oct 2026 00:00:00 +0000</pubDate><guid>https://blog.skycoin.com/posts/dev-update-2026-10-09/</guid><description>&lt;p&gt;The ninth of October was mostly about memory, and about finding out where it was going on the deployment hosts. A browser visor that ran out of memory while searching for a route got a local route search that no longer queues the same node over and over, a dmsg server&amp;rsquo;s stream census stopped growing forever when nothing reads it, and two content-addressed stores that had swollen to gigabytes were brought back down, one by sweeping unreachable objects at startup and one by no longer holding a month of settled metrics in the heap. Two diagnostic endpoints went in to pin down a growing pile of KCP sessions on the address resolver. Around that, v1.3.100 was released, the browser module learned to build itself alongside the native binary on a toolchain that supports it, the network graph view moved into its own small wasm module, and the visor&amp;rsquo;s log level finally became one setting that can be changed while it runs.&lt;/p&gt;</description><enclosure url="https://blog.skycoin.com/img/skywire-the-next-internet.png" length="194882" type="image/png"/></item><item><title>Skywire Development Update — October 8, 2026</title><link>https://blog.skycoin.com/posts/dev-update-2026-10-08/</link><pubDate>Thu, 08 Oct 2026 00:00:00 +0000</pubDate><guid>https://blog.skycoin.com/posts/dev-update-2026-10-08/</guid><description>&lt;p&gt;The eighth of October laid the groundwork for moving the deployment services into the host visors that already run the dmsg servers. A visor can now run an embedded service under that service&amp;rsquo;s own key, with its own dmsg client and identity, restart it on failure without going down itself, and stop, start or restart it from the CLI; setup node, transport setup, STUN and the config service joined the services it can run this way, and the end-to-end environment was rebuilt to run every deployment service inside one visor as production does. Along the way a deadlock in the first such move was found and fixed, and a memory limit that was starving a combined host of heap stopped overriding the one set in its service unit. Transport discovery&amp;rsquo;s Redis was trimmed from weeks of per-transport history down to days, with settled days archived on disk, and several allocation hot spots on the deployment hosts were removed. Visors also began serving signed reach cards so peers can find each other without asking the address resolver, and a standalone dmsg web proxy learned to reach visors over a transport to a visor beside it.&lt;/p&gt;</description><enclosure url="https://blog.skycoin.com/img/skywire-the-next-internet.png" length="194882" type="image/png"/></item><item><title>Skywire Development Update — October 7, 2026</title><link>https://blog.skycoin.com/posts/dev-update-2026-10-07/</link><pubDate>Wed, 07 Oct 2026 00:00:00 +0000</pubDate><guid>https://blog.skycoin.com/posts/dev-update-2026-10-07/</guid><description>&lt;p&gt;The seventh of October went after cost on the packet path, much of it driven by the TinyGo build, where every goroutine is an operating system thread and every allocation weighs on a slower collector. Over a dozen changes removed the goroutines, timers and closures created per packet, batched KCP&amp;rsquo;s scheduler wakeups, and finally let sudph and WebRTC transports be read by a small shared pool of workers instead of one blocked goroutine each. Route setup changed shape too: two visors with a transport between them now set up a one-hop route themselves without a setup node, visors began serving their own signed transport lists to each other, and route calculation can now build three-hop routes from those lists. Transport discovery stopped publishing the whole transport graph, which had been most of its outbound traffic, after the rewards bandwidth days were found to have been saved empty all week. The status pages learned to show what each service&amp;rsquo;s own process and traffic cost, and a set of browser-tab leaks in dmsg and WebRTC were found with a new census of the streams still in memory.&lt;/p&gt;</description><enclosure url="https://blog.skycoin.com/img/skywire-the-next-internet.png" length="194882" type="image/png"/></item><item><title>Skywire Development Update — October 6, 2026</title><link>https://blog.skycoin.com/posts/dev-update-2026-10-06/</link><pubDate>Tue, 06 Oct 2026 00:00:00 +0000</pubDate><guid>https://blog.skycoin.com/posts/dev-update-2026-10-06/</guid><description>&lt;p&gt;The sixth of October gave every deployment service a public status page. Transport discovery, dmsg discovery, the route finder, service discovery and the address resolver each began sampling their own counts into history and serving charts at their site root, with transport discovery adding a full network graph drawn on the GPU. Behind those pages, two bugs in transport discovery&amp;rsquo;s reconcile were found that had been hiding most of the dmsg servers&amp;rsquo; live sudph transports and churning about one in twenty of the rest every minute. A long run of changes moved visors off repeated HTTP polling and onto the CXO feeds the services already publish, for dmsg servers, uptime, address bindings and per-key transport counts. On Android, SkyDNS made &lt;code&gt;.dmsg&lt;/code&gt; and &lt;code&gt;.skynet&lt;/code&gt; names open in every app on the phone, and then on Linux desktops too. And a heap profile of a replica visor led to removing several gigabytes an hour of allocations that produced nothing.&lt;/p&gt;</description><enclosure url="https://blog.skycoin.com/img/skywire-the-next-internet.png" length="194882" type="image/png"/></item><item><title>Skywire Development Update — October 5, 2026</title><link>https://blog.skycoin.com/posts/dev-update-2026-10-05/</link><pubDate>Mon, 05 Oct 2026 00:00:00 +0000</pubDate><guid>https://blog.skycoin.com/posts/dev-update-2026-10-05/</guid><description>&lt;p&gt;The fifth of October was a lighter day, split between hardening and the browser desk. Two holes in what services accept were closed: the hypervisor&amp;rsquo;s wallet proxy had been answering without a session and could be made to fetch any URL on the visor&amp;rsquo;s behalf, and the deployment services read request bodies of any size. A QUIC session to a dmsg server was found running out of streams for good after sixteen thousand of them, because closing a stream only ever closed half of it. In the desk, a second tab no longer starts a second visor with the same key, the deep links that open a chat or a site came back, the dashboard&amp;rsquo;s chat went live inside the tab, and a crashed visor in a tab stopped holding on to half a gigabyte of memory until reload.&lt;/p&gt;</description><enclosure url="https://blog.skycoin.com/img/skywire-the-next-internet.png" length="194882" type="image/png"/></item><item><title>Skywire Development Update — October 4, 2026</title><link>https://blog.skycoin.com/posts/dev-update-2026-10-04/</link><pubDate>Sun, 04 Oct 2026 00:00:00 +0000</pubDate><guid>https://blog.skycoin.com/posts/dev-update-2026-10-04/</guid><description>&lt;p&gt;The fourth of October shipped v1.3.99, led for the fleet by a fix for visors that were stuck before they ever finished starting, walking a corrupt stats database forever. The browser visor kept closing the distance to a native one: it now hosts interactive shell sessions through websh, its dashboard terminal works, skynet port forwarding reaches the tab&amp;rsquo;s own virtual network in both directions, and the Skycoin wallet runs inside it as a real visor app with its wallet files on the tab&amp;rsquo;s disk, Bitcoin included, reached through the tab&amp;rsquo;s own proxy. The dashboard gained a Mail tab for every visor, a single proxy port now answers both clearnet and mesh names, the native end-to-end suite finally stopped routing over dmsg and found a real Windows VPN bug on the way, and the Android core was brought back under its size budget.&lt;/p&gt;</description><enclosure url="https://blog.skycoin.com/img/skywire-the-next-internet.png" length="194882" type="image/png"/></item><item><title>Skywire Development Update — October 3, 2026</title><link>https://blog.skycoin.com/posts/dev-update-2026-10-03/</link><pubDate>Sat, 03 Oct 2026 00:00:00 +0000</pubDate><guid>https://blog.skycoin.com/posts/dev-update-2026-10-03/</guid><description>&lt;p&gt;The third of October was the day the browser visor became something a native visor can log into: &lt;code&gt;pty exec&lt;/code&gt; against a tab now runs a real command and returns its output, &lt;code&gt;pty fs mount&lt;/code&gt; can mount a tab&amp;rsquo;s filesystem from a native visor and a native visor&amp;rsquo;s filesystem from inside a tab, and the pty host now listens on skynet so those sessions stop going through the dmsg servers when a direct transport exists. Autoconnect stopped skipping visors that share this visor&amp;rsquo;s public IP and learned to give its scarce WebRTC-over-WebTransport slots to peers it already reaches, which is what lets a tab find the public visor running on its own machine. Both browser carriers gained the write bounds they had been missing, the deployment&amp;rsquo;s services config can now be followed over a CXO feed instead of an hourly poll, the module moved to Go 1.27, and the browser&amp;rsquo;s wasm module shrank by a fifth by leaving out commands a browser could never run.&lt;/p&gt;</description><enclosure url="https://blog.skycoin.com/img/skywire-the-next-internet.png" length="194882" type="image/png"/></item><item><title>Skywire Development Update — October 2, 2026</title><link>https://blog.skycoin.com/posts/dev-update-2026-10-02/</link><pubDate>Fri, 02 Oct 2026 00:00:00 +0000</pubDate><guid>https://blog.skycoin.com/posts/dev-update-2026-10-02/</guid><description>&lt;p&gt;The second of October was the day the Skycoin wallet stopped being a separately served page framed inside the dashboard and became one of the dashboard&amp;rsquo;s own routes, compiled directly from the wallet project&amp;rsquo;s own source and sharing its cipher with the rest of the hypervisor. Getting there took eight separate changes to the wallet codebase itself, turning a standalone application into a module any host can mount, ahead of four more on the skywire side that wired it into place and then deleted the old framed page entirely. Alongside that, a single shared HTTP client for dmsg finally started reusing its own connections instead of paying a fresh relay negotiation for every request, which had been serializing the wallet&amp;rsquo;s own node queries behind each other badly enough to time out in a browser tab. A retained post-quantum key that should have been discarded the moment a handshake finished was found and cleared, and a folded dmsg server&amp;rsquo;s QUIC side was found leaking a goroutine per client once that client&amp;rsquo;s concurrent stream count passed quic-go&amp;rsquo;s own unannounced default limit.&lt;/p&gt;</description><enclosure url="https://blog.skycoin.com/img/skywire-the-next-internet.png" length="194882" type="image/png"/></item><item><title>Skywire Development Update — October 1, 2026</title><link>https://blog.skycoin.com/posts/dev-update-2026-10-01/</link><pubDate>Thu, 01 Oct 2026 00:00:00 +0000</pubDate><guid>https://blog.skycoin.com/posts/dev-update-2026-10-01/</guid><description>&lt;p&gt;October opened with the native hypervisor&amp;rsquo;s own desk finally getting the same real-origin browser the wasm desk already had, after which a run of navigation and caching fixes made browsing inside either one feel like an ordinary browser rather than a proof of concept. A folded dmsg server picked up QUIC and WebTransport on the same shared socket its visor already uses, closing a gap that had kept folded servers unreachable from a browser. WebTransport&amp;rsquo;s own certificate now rotates itself before browsers would otherwise refuse a connection outright, and the browser visor got WebRTC transports back after they&amp;rsquo;d quietly stopped working when the visor moved into its own worker thread. Reward pool 2 moved onto a real per-visor bandwidth feed published by transport discovery itself, after a cold cache had let an empty day get paid as if it were real data a week earlier.&lt;/p&gt;</description><enclosure url="https://blog.skycoin.com/img/skywire-the-next-internet.png" length="194882" type="image/png"/></item><item><title>Skywire Development Update — September 30, 2026</title><link>https://blog.skycoin.com/posts/dev-update-2026-09-30/</link><pubDate>Wed, 30 Sep 2026 00:00:00 +0000</pubDate><guid>https://blog.skycoin.com/posts/dev-update-2026-09-30/</guid><description>&lt;p&gt;The thirtieth continued the previous day&amp;rsquo;s push through transport discovery&amp;rsquo;s Redis load with a dozen more targeted fixes, each one measured against the same production host and each shaving off a specific, named cost rather than restructuring anything wholesale. In the browser desk, real-origin mesh and clearnet browsing picked up connection reuse, cookies, streamed responses and a relayed WebSocket, closing most of the remaining gap between browsing inside a tab and browsing anywhere else. The hypervisor UI&amp;rsquo;s network-wide transports tab, which had been freezing the browser outright on a large fleet, was rebuilt to summarize rather than ship the whole mesh. v1.3.98 shipped, and the repository gained its first AGENTS.md, combining the AI-contribution policies of the upstream projects skywire itself depends on.&lt;/p&gt;</description><enclosure url="https://blog.skycoin.com/img/skywire-the-next-internet.png" length="194882" type="image/png"/></item><item><title>Skywire Development Update — September 29, 2026</title><link>https://blog.skycoin.com/posts/dev-update-2026-09-29/</link><pubDate>Tue, 29 Sep 2026 00:00:00 +0000</pubDate><guid>https://blog.skycoin.com/posts/dev-update-2026-09-29/</guid><description>&lt;p&gt;The twenty-ninth was almost entirely about load that had been quietly accumulating on the deployment services as the fleet grew — transport discovery rewriting data in Redis it already held, a CXO feed loop that could deadlock under enough concurrent subscribers, and autoconnect downloading the entire network&amp;rsquo;s transport list on every single cycle just to pick a few peers. Profiling on live production hosts turned up roughly a dozen separate places where the same fact was being recomputed, re-read or re-written far more often than it could possibly have changed, and each one got its own targeted fix. The address resolver gained a real per-transport-type reachability feed to replace a confirmation-only binding that never actually told autoconnect who could be reached. None of this changes what the network does; all of it changes how much work proving that costs.&lt;/p&gt;</description><enclosure url="https://blog.skycoin.com/img/skywire-the-next-internet.png" length="194882" type="image/png"/></item><item><title>Skywire Development Update — September 28, 2026</title><link>https://blog.skycoin.com/posts/dev-update-2026-09-28/</link><pubDate>Mon, 28 Sep 2026 00:00:00 +0000</pubDate><guid>https://blog.skycoin.com/posts/dev-update-2026-09-28/</guid><description>&lt;p&gt;The twenty-eighth let a visor host the network&amp;rsquo;s own deployment services directly under its own key rather than as separate standalone processes, and then spent most of the day working through what that exposed — a missing nonce store, duplicate aggregator ports, and a registration cycle that had been needlessly re-handshaking with every service every thirty seconds regardless of whether anything had actually changed. A transport manager lock held across an entire incoming handshake, which could freeze the whole transport map for most of a minute against one slow peer, was narrowed to just the lookup it actually needs to protect. The browser visor&amp;rsquo;s bulk downloads were found dying whenever one of its small handful of relays dropped, fixed with five separate changes to how it spreads across hosts and recovers a pruned leg. And the onboarding tour, which had quietly stopped shipping three weeks earlier when the browser&amp;rsquo;s rendering engine was swapped out from under it, came back as two separate tours for two surfaces that no longer share a page.&lt;/p&gt;</description><enclosure url="https://blog.skycoin.com/img/skywire-the-next-internet.png" length="194882" type="image/png"/></item><item><title>Skywire Development Update — September 27, 2026</title><link>https://blog.skycoin.com/posts/dev-update-2026-09-27/</link><pubDate>Sun, 27 Sep 2026 00:00:00 +0000</pubDate><guid>https://blog.skycoin.com/posts/dev-update-2026-09-27/</guid><description>&lt;p&gt;The twenty-seventh put a real settings surface on top of the previous day&amp;rsquo;s config API, restored mesh and clearnet browsing to real browser origins after an engine swap had quietly dropped the code that made either one work, and gave the resolving proxy per-domain routing and a second protocol on the same port. Away from the desk, an adaptive routing policy was found sharing its controller state across every route group of an app instead of keeping one per group, v1.3.97 shipped, and skychat picked up call-progress reporting with a ringback tone and a full-screen video viewer. The Android app rounded out the day with favorited servers, three VPN app-selection modes, and a hotspot-sharing feature that lets another device on a phone&amp;rsquo;s hotspot ride its SkyVPN tunnel.&lt;/p&gt;</description><enclosure url="https://blog.skycoin.com/img/skywire-the-next-internet.png" length="194882" type="image/png"/></item><item><title>Skywire Development Update — September 26, 2026</title><link>https://blog.skycoin.com/posts/dev-update-2026-09-26/</link><pubDate>Sat, 26 Sep 2026 00:00:00 +0000</pubDate><guid>https://blog.skycoin.com/posts/dev-update-2026-09-26/</guid><description>&lt;p&gt;The twenty-sixth centered on a fleet-wide discovery problem that had been quietly starving browser-tab visors of routes: transport discovery was failing to subscribe to most of the connections it held, dropping the transports it did see, and buckling under its own ingest load once those bugs were fixed and every visor started actually reaching it. Six separate fixes closed that chain end to end. In the browser desk, clearnet and status-page browsing inside netscrape were restored after an earlier refactor had quietly dropped the code path that made them work, and the hypervisor&amp;rsquo;s own enable flag gained a way to survive a tab reload instead of reverting itself. The visor&amp;rsquo;s underlying config file can now be read and edited directly over the API rather than only through the generated JSON that gets silently overwritten on every regenerate.&lt;/p&gt;</description><enclosure url="https://blog.skycoin.com/img/skywire-the-next-internet.png" length="194882" type="image/png"/></item><item><title>Skywire Development Update — September 25, 2026</title><link>https://blog.skycoin.com/posts/dev-update-2026-09-25/</link><pubDate>Fri, 25 Sep 2026 00:00:00 +0000</pubDate><guid>https://blog.skycoin.com/posts/dev-update-2026-09-25/</guid><description>&lt;p&gt;The twenty-fifth introduced email as a standalone skywire capability — a mailbox built into every visor, reachable over either dmsg or a skywire route with no mail server, domain or certificate required — and shipped it on by default the same day with real limits and attachment support. The Wisp server picked up a compatibility fallback for older clients and a race that could drop its own refusal message off the wire. The VPN client learned to route around every transport type the visor itself dials rather than just two of them, and the mux campaign&amp;rsquo;s spread planner got the measurement fix its own regression test had been waiting on. Three of the router&amp;rsquo;s largest files were split along their natural seams with no behavior change, and the mobile app&amp;rsquo;s F-Droid submission took the step that lets F-Droid ship the exact APK Skycoin already signs rather than resigning its own build.&lt;/p&gt;</description><enclosure url="https://blog.skycoin.com/img/skywire-the-next-internet.png" length="194882" type="image/png"/></item><item><title>Skywire Development Update — September 24, 2026</title><link>https://blog.skycoin.com/posts/dev-update-2026-09-24/</link><pubDate>Thu, 24 Sep 2026 00:00:00 +0000</pubDate><guid>https://blog.skycoin.com/posts/dev-update-2026-09-24/</guid><description>&lt;p&gt;The twenty-fourth split between the mux campaign&amp;rsquo;s continuing correctness work and a quiet but substantial refactor of the visor&amp;rsquo;s own internals, which had grown enough shared package state over the years that two visors built in the same process could silently overwrite each other&amp;rsquo;s module graph. The standby pool learned to size itself from how many genuinely disjoint routes actually exist to an exit rather than a flat guess, a reserved leg gained a path back to being a real stream-carrying tunnel, and three separate data-plane stalls were cleared with their own emulated regression tests. A recovered panic, previously visible only if someone happened to be reading the right log at the right moment, now leaves a trace &lt;code&gt;visor state&lt;/code&gt; can show on any platform including the browser. The mobile app answered its first two rounds of F-Droid review feedback and shipped fixes for four more user-reported bugs.&lt;/p&gt;</description><enclosure url="https://blog.skycoin.com/img/skywire-the-next-internet.png" length="194882" type="image/png"/></item><item><title>Skywire Development Update — September 23, 2026</title><link>https://blog.skycoin.com/posts/dev-update-2026-09-23/</link><pubDate>Wed, 23 Sep 2026 00:00:00 +0000</pubDate><guid>https://blog.skycoin.com/posts/dev-update-2026-09-23/</guid><description>&lt;p&gt;The twenty-third opened a new design axis for the mux campaign — a session&amp;rsquo;s shape, how many tunnels it holds and how many legs each one carries — and spent the rest of the day building a converger that can actually move a session toward a target shape and correcting every place that move could silently fail on the way. Away from the mux, four separate mechanisms were found tearing down perfectly healthy voice calls for no real reason, a retransmit kept landing back on the exact leg that had just been cut, and the browser build&amp;rsquo;s CXO-backed state stores were given working in-memory substitutes so a wasm visor and skychat no longer fail at construction. A dmsg CLI tool&amp;rsquo;s config knob for the embedded Wisp server turned out not to reach the config file at all, in three separate ways, and the visor&amp;rsquo;s own log file was found silently losing every INFO, WARN and ERROR line to a rotation race that let DEBUG win every time.&lt;/p&gt;</description><enclosure url="https://blog.skycoin.com/img/skywire-the-next-internet.png" length="194882" type="image/png"/></item><item><title>Skywire Development Update — September 22, 2026</title><link>https://blog.skycoin.com/posts/dev-update-2026-09-22/</link><pubDate>Tue, 22 Sep 2026 00:00:00 +0000</pubDate><guid>https://blog.skycoin.com/posts/dev-update-2026-09-22/</guid><description>&lt;p&gt;After the weekend&amp;rsquo;s quiet, the mux campaign returned with a new idea: the standby pool a proxy session already holds is not just stream-level insurance, it is a ready source of packet-level mux legs for whichever tunnel is actually under load, and most of the day went into building and then correcting that connection. A long-lived WebRTC leak that had been slowly starving two public visors of memory and CPU was tracked down and fixed. A Wisp server and client shipped, letting a browser-side Linux guest&amp;rsquo;s network traffic ride a skywire route to an exit instead of whatever central relay it shipped with. The hypervisor UI picked up three fixes for how it behaves when served through a virtual-loopback service worker rather than the plain network, and an in-process emulated version of the mux bench joined the CI lanes so a scheduler regression no longer needs a day on the live rig to be noticed.&lt;/p&gt;</description><enclosure url="https://blog.skycoin.com/img/skywire-the-next-internet.png" length="194882" type="image/png"/></item><item><title>Skywire Development Update — September 20, 2026</title><link>https://blog.skycoin.com/posts/dev-update-2026-09-20/</link><pubDate>Sun, 20 Sep 2026 00:00:00 +0000</pubDate><guid>https://blog.skycoin.com/posts/dev-update-2026-09-20/</guid><description>&lt;p&gt;A short day with two fixes, one of them idling down a cost the standby pool&amp;rsquo;s own growth had quietly created, and the other explaining why the test suite had effectively stopped running at all for a stretch of time.&lt;/p&gt;
&lt;h3 id="skywire-a-quiet-route-group-still-spins-its-loops"&gt;Skywire: A Quiet Route Group Still Spins Its Loops&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;5074&lt;/code&gt;&lt;/strong&gt; found that every route group runs twelve goroutines regardless of whether it is carrying any traffic, verified directly against both a local visor and an exit holding thirty-two live groups. Five of those loops — the send-window and TLP timers, the reorder-stall check, leg-state resync and the unidirectional-flip controller — cannot do anything useful on a group that is simply holding a route open with nothing moving on it, and between them they were waking roughly twenty-three times a second per group per end, dominated by the two timers running at ten hertz each. That cost is invisible at one tunnel and becomes most of a visor&amp;rsquo;s idle CPU once the standby pool is holding dozens of groups toward a ceiling in the hundreds.&lt;/p&gt;</description><enclosure url="https://blog.skycoin.com/img/skywire-the-next-internet.png" length="194882" type="image/png"/></item><item><title>Skywire Development Update — September 19, 2026</title><link>https://blog.skycoin.com/posts/dev-update-2026-09-19/</link><pubDate>Sat, 19 Sep 2026 00:00:00 +0000</pubDate><guid>https://blog.skycoin.com/posts/dev-update-2026-09-19/</guid><description>&lt;p&gt;A quieter day after the mux campaign&amp;rsquo;s two heaviest, with four fixes that all trace back to operators actually running the software rather than the rig. A 32-bit ARM visor was found crash-looping every forty-five seconds on a misaligned atomic counter, the standby pool&amp;rsquo;s own route-finding was caught asking the same narrow question of the route finder on every dial and getting the same three routes back each time, half the live-settable config fields the visor already knew how to apply at runtime were still being reported as needing a restart, and a run of small dmsg CLI tools were found registering discovery entries for keys nobody could ever usefully look up.&lt;/p&gt;</description><enclosure url="https://blog.skycoin.com/img/skywire-the-next-internet.png" length="194882" type="image/png"/></item><item><title>Skywire Development Update — September 18, 2026</title><link>https://blog.skycoin.com/posts/dev-update-2026-09-18/</link><pubDate>Fri, 18 Sep 2026 00:00:00 +0000</pubDate><guid>https://blog.skycoin.com/posts/dev-update-2026-09-18/</guid><description>&lt;p&gt;The eighteenth was the busiest single day of the mux campaign and arguably of the whole run: forward traffic was finally confined to the leg it is supposed to ride rather than drifting onto whichever leg a stale heuristic favored, a shared-bottleneck detector that had been parking healthy legs on correlated noise was switched off by default, a tunnel gone quiet without actually dying got its own detection and recovery path, and every router and proxy tuning constant that used to require a rebuild to change became a live, persisted knob. An emulated multipath testbed let several of these failures be reproduced in seconds instead of an hour of rig time apiece. Elsewhere, the router&amp;rsquo;s inbound packet path was finally cut loose from a single slow peer, status.skysocks learned to survive a proxy restart, a heap profile found a third of one exit visor&amp;rsquo;s memory was a wasm module nothing had asked to load, and the mobile app shipped six Telegram-reported bug fixes plus in-app updates and Spanish.&lt;/p&gt;</description><enclosure url="https://blog.skycoin.com/img/skywire-the-next-internet.png" length="194882" type="image/png"/></item><item><title>Skywire Development Update — September 17, 2026</title><link>https://blog.skycoin.com/posts/dev-update-2026-09-17/</link><pubDate>Thu, 17 Sep 2026 00:00:00 +0000</pubDate><guid>https://blog.skycoin.com/posts/dev-update-2026-09-17/</guid><description>&lt;p&gt;The seventeenth was the mux campaign&amp;rsquo;s second day on the live rig, and it moved from making legs behave inside one route group to making several whole tunnels cooperate. A lone stream stopped stacking onto whichever tunnel happened to answer fastest regardless of load, a send window learned to size itself on what a leg&amp;rsquo;s own acknowledgements prove rather than on its first hop&amp;rsquo;s ping, sibling tunnels started being ranked and held in a standby pool before anything went wrong rather than redialed cold after it did, and an upload finally gained the ability to survive losing the tunnel underneath it the way a download already could. A live-tunable settings surface cut what had been three hours of rebuild-deploy-restart cycles out of the rest of the day. Release CI was hardened against shipping a binary built from a dirty tree, and a standalone dmsg socks tool that had never actually carried traffic over dmsg was fixed to do so.&lt;/p&gt;</description><enclosure url="https://blog.skycoin.com/img/skywire-the-next-internet.png" length="194882" type="image/png"/></item><item><title>Skywire Development Update — September 16, 2026</title><link>https://blog.skycoin.com/posts/dev-update-2026-09-16/</link><pubDate>Wed, 16 Sep 2026 00:00:00 +0000</pubDate><guid>https://blog.skycoin.com/posts/dev-update-2026-09-16/</guid><description>&lt;p&gt;The sixteenth was the day the route-multiplexing campaign went fully live on a frozen rig, measuring a real proxy session end to end after every change rather than reasoning about one in the abstract, and the result reads as a single long investigation rather than a list of features: a multi-tunnel dial that kept landing every tunnel on the same first hop, a retransmit storm that turned out to be the send-window math punishing a slow leg for being slow, and a window finally built from what a peer&amp;rsquo;s acknowledgements actually prove rather than a guess sized on the wrong delay. Underneath that campaign, a separate run of transport-layer bugs surfaced on live and benchmark traffic alike — a dmsg entry seed hiding half of a folded visor&amp;rsquo;s identity, a re-dialed peer&amp;rsquo;s fresh connection torn down by its predecessor&amp;rsquo;s death throes, a QUIC session culled every two minutes for want of a ping branch, and a receive window sized for a fraction of the bandwidth a 150ms path can actually carry. CI and lint housekeeping, an android build break and a long-running compaction that was OOM-killing an exit visor closed out the day.&lt;/p&gt;</description><enclosure url="https://blog.skycoin.com/img/skywire-the-next-internet.png" length="194882" type="image/png"/></item><item><title>Skywire Development Update — September 15, 2026</title><link>https://blog.skycoin.com/posts/dev-update-2026-09-15/</link><pubDate>Tue, 15 Sep 2026 00:00:00 +0000</pubDate><guid>https://blog.skycoin.com/posts/dev-update-2026-09-15/</guid><description>&lt;p&gt;The fifteenth was the biggest single day of the run so far, and it shows in the shape of the work: a docs site rebuilt to actually isolate, serve and link itself; a desk pairing flow walked end to end in a real browser until every rough edge it hit got its own fix; a hypervisor split across two ports instead of one flag choosing between them; and underneath all of it, a run of transport-layer bugs — a browser visor dialing protocols it does not have, a QUIC ALPN collision killing every session at thirty seconds, an off-by-one in the inbound TCP demux that had made stcpr quietly impossible on some visors. The day closed with v1.3.94 tagged and a history rewrite that stripped 232MB of superseded command-module blobs from the commits after it, moving no tag and changing no tree. Two design documents, not yet code, set out where the route-multiplexing campaign goes next.&lt;/p&gt;</description><enclosure url="https://blog.skycoin.com/img/skywire-the-next-internet.png" length="194882" type="image/png"/></item><item><title>Skywire Development Update — September 14, 2026</title><link>https://blog.skycoin.com/posts/dev-update-2026-09-14/</link><pubDate>Mon, 14 Sep 2026 00:00:00 +0000</pubDate><guid>https://blog.skycoin.com/posts/dev-update-2026-09-14/</guid><description>&lt;p&gt;The fourteenth belonged to the desk&amp;rsquo;s own survivability. The liveness watchdog that shipped the day before gained the two cases it had not yet covered — a host that restarts underneath an open tab, and a reload that would otherwise re-run code already fixed upstream — and then a file-scope bug shipped not once but twice in exactly the same way, caught the second time only because the embedded JS now has to prove it loads rather than merely parse cleanly. The documentation site was rebuilt around the desk it had previously only framed in an iframe. Two separate hardenings of the tab&amp;rsquo;s own identity, encryption at rest and the ability to come back online somewhere the original hypervisor cannot reach, rounded out the wasm side, alongside a dependency sweep, a changelog backfill covering three releases nobody had written down, and the ordinary run of small UI breakage.&lt;/p&gt;</description><enclosure url="https://blog.skycoin.com/img/skywire-the-next-internet.png" length="194882" type="image/png"/></item><item><title>Skywire Development Update — September 13, 2026</title><link>https://blog.skycoin.com/posts/dev-update-2026-09-13/</link><pubDate>Sun, 13 Sep 2026 00:00:00 +0000</pubDate><guid>https://blog.skycoin.com/posts/dev-update-2026-09-13/</guid><description>&lt;p&gt;If the twelfth was about making a relay useful, the thirteenth was about making the paths around it honest. A proxy that had been doing exactly what it was asked kept reporting itself as broken, because every surface built to describe a route only knew how to draw a route group, and a direct dial over a named transport builds none on purpose. Three more fixes chased that visibility down through the rendering stack it touches. Elsewhere the day cleared out API fields that have read as zero forever because nothing ever assigned them, caught a wasm command module quietly serving builds days stale across several installs, and gave two long-standing defaults — production log level, hypervisor auth — a way to be stated in the config file that survives a package update instead of only in a flag that doesn&amp;rsquo;t.&lt;/p&gt;</description><enclosure url="https://blog.skycoin.com/img/skywire-the-next-internet.png" length="194882" type="image/png"/></item><item><title>Skywire Development Update — September 12, 2026</title><link>https://blog.skycoin.com/posts/dev-update-2026-09-12/</link><pubDate>Sat, 12 Sep 2026 00:00:00 +0000</pubDate><guid>https://blog.skycoin.com/posts/dev-update-2026-09-12/</guid><description>&lt;p&gt;The relay tier got most of the day, and it got it in the order a feature usually gets attention: first the thing that makes it useful, then the things that were quietly making it useless. A service can now hold its own fixed dmsg identity without paying for a second client&amp;rsquo;s worth of sessions, a relay can now deliver to a destination its host can reach rather than only to peers already attached to it, and a host&amp;rsquo;s own service is no longer charged to the budget it set aside for other people. Underneath that, the day&amp;rsquo;s most consequential find had nothing to do with relays at all: folding a dmsg server onto a visor&amp;rsquo;s key had silently removed its WebSocket front, so seven of the network&amp;rsquo;s nine servers had been unreachable from any browser. Two separate ways of losing a session you were still using were traced and fixed, a visor-global setting that had been disabling the very shortcut it was meant to help was deleted, and four days of red CI lanes were finally cleared.&lt;/p&gt;</description><enclosure url="https://blog.skycoin.com/img/skywire-the-next-internet.png" length="194882" type="image/png"/></item><item><title>Skywire Development Update — September 11, 2026</title><link>https://blog.skycoin.com/posts/dev-update-2026-09-11/</link><pubDate>Fri, 11 Sep 2026 00:00:00 +0000</pubDate><guid>https://blog.skycoin.com/posts/dev-update-2026-09-11/</guid><description>&lt;p&gt;The day&amp;rsquo;s largest finding was fleet-wide: the transport discovery had become a prerequisite for booting a visor at all, so when it went unreachable the visors restarting afterwards never reached their launcher — no RPC server, no dmsgpty, no apps, and no way in to fix it. Fixing that exposed a second defect underneath, a subscription goroutine closing a channel it did not own, which crash-looped a real visor twice in six minutes. A second thread ran through the dmsg discovery, where three pieces of code still assumed a key means one thing now that one key carries both a client and a server.&lt;/p&gt;</description><enclosure url="https://blog.skycoin.com/img/skywire-the-next-internet.png" length="194882" type="image/png"/></item><item><title>Skywire Development Update — September 10, 2026</title><link>https://blog.skycoin.com/posts/dev-update-2026-09-10/</link><pubDate>Thu, 10 Sep 2026 00:00:00 +0000</pubDate><guid>https://blog.skycoin.com/posts/dev-update-2026-09-10/</guid><description>&lt;p&gt;Thirty-five merges, and three threads carry almost all of them. The convergence onto a single js/wasm module finished: the desk host, the in-tab visor, the transport visualizer and the wallet cipher all run from one &lt;code&gt;skywire.wasm&lt;/code&gt; now, which let the committed wasm-visor blobs, the SharedWorker core, the legacy boot page and two whole commands leave the tree — more than twenty thousand lines and seventeen megabytes of binary. Then a performance sweep driven entirely by profiles of the production hosts: an address resolver spending 65% of its time in the garbage collector to compress hundred-byte answers, a telemetry store holding 2.7 GB of page cache for objects it had already deleted, a transport discovery whose Redis hash reads missed 92% of the time, and a dmsg server emitting 67,000 log lines a minute and formatting each one twice. And the first steps toward folding a deployment dmsg server into the visor beside it under one identity.&lt;/p&gt;</description><enclosure url="https://blog.skycoin.com/img/skywire-the-next-internet.png" length="194882" type="image/png"/></item><item><title>Skywire Development Update — September 9, 2026</title><link>https://blog.skycoin.com/posts/dev-update-2026-09-09/</link><pubDate>Wed, 09 Sep 2026 00:00:00 +0000</pubDate><guid>https://blog.skycoin.com/posts/dev-update-2026-09-09/</guid><description>&lt;p&gt;Fifty-one merges, most of them pushing on one thread: making a dmsg session ride the mesh rather than the clearnet underneath it. Every visor now serves a relay acceptor on dmsg port 70 over skynet, a client reaches one through a session-dial hook the visor fills with an appnet dial, and the peers a visor already holds a pinned transport to are nominated as its relays with no configuration at all — which then took nine further fixes before a desk tab actually put its streams on the relay instead of on nine server sessions it did not need. By the end of the day a browser visor held exactly one dmsg session and had no discovery entry, because it no longer publishes one. Hypervisor pairing landed beside it, and the js/wasm command module the desk runs was folded into the native binary so a desk page loads one URL instead of chasing a file nothing shipped.&lt;/p&gt;</description><enclosure url="https://blog.skycoin.com/img/skywire-the-next-internet.png" length="194882" type="image/png"/></item><item><title>Skywire Development Update — September 8, 2026</title><link>https://blog.skycoin.com/posts/dev-update-2026-09-08/</link><pubDate>Tue, 08 Sep 2026 00:00:00 +0000</pubDate><guid>https://blog.skycoin.com/posts/dev-update-2026-09-08/</guid><description>&lt;p&gt;Forty-four merges, nearly all serving one direction: there should be one desk, and the native hypervisor should serve it. By the end of the day the hypervisor page had retired its own desk and was serving the wasm desk at its root — a real browser in a window, tabs in the title bar, a terminal on the host visor&amp;rsquo;s pty, and the Angular dashboard rendering natively inside the nested browser instead of as a bare iframe. Underneath that, a browser tab learned to run a visor of its own attached to the host over a WebSocket back to the page origin, which immediately exposed a router bug that had been truncating every RPC reply larger than one packet. The rest went to making a browser visor cheaper to run, and to the dmsg sessions and streams several layers had been accumulating forever.&lt;/p&gt;</description><enclosure url="https://blog.skycoin.com/img/skywire-the-next-internet.png" length="194882" type="image/png"/></item><item><title>Skywire Development Update — September 7, 2026</title><link>https://blog.skycoin.com/posts/dev-update-2026-09-07/</link><pubDate>Mon, 07 Sep 2026 00:00:00 +0000</pubDate><guid>https://blog.skycoin.com/posts/dev-update-2026-09-07/</guid><description>&lt;p&gt;Two audits and one relocation account for most of the day. The first went after bytes — a hypervisor node list shipping 8.8 megabytes on a ten-second poll, most of it transport detail nothing rendered, over a deployment whose JSON crossed dmsg uncompressed. The second went after work, surveying every loop a visor runs on a timer and every initializer a browser tab pays before the visor starts, and found self-probes that real inbound traffic already answered, HTTP reconciliation CXO had made redundant, and a 512-keypair pool sized for a server restart storm being filled on a browser&amp;rsquo;s single thread. The relocation was the desk&amp;rsquo;s wasm visor, which moved off the page main thread into a Worker and took the renderer from 86.5% of a core to 5.2%. Alongside them, a source review found a setup node logging its own secret key, and the router&amp;rsquo;s local-route memo turned out never to have hit at all.&lt;/p&gt;</description><enclosure url="https://blog.skycoin.com/img/skywire-the-next-internet.png" length="194882" type="image/png"/></item><item><title>Skywire Development Update — September 6, 2026</title><link>https://blog.skycoin.com/posts/dev-update-2026-09-06/</link><pubDate>Sun, 06 Sep 2026 00:00:00 +0000</pubDate><guid>https://blog.skycoin.com/posts/dev-update-2026-09-06/</guid><description>&lt;p&gt;The day&amp;rsquo;s main thread was the deployment&amp;rsquo;s periodic chatter moving off dmsg handshakes and onto CXO: service-discovery registrations gained a publisher and an aggregator, the address resolver gained a readable feed of its own, and a CXO facility implemented end to end and never called anywhere in skywire finally got a caller. The second thread was a correction — a fix retaining hypervisors across a config regeneration was merged and reverted the same day, for making one setting out of forty-five authoritative in the wrong file. And a 39% discrepancy in the transport discovery turned out to be two endpoints read at different moments rather than an index losing edges.&lt;/p&gt;</description><enclosure url="https://blog.skycoin.com/img/skywire-the-next-internet.png" length="194882" type="image/png"/></item><item><title>Skywire Development Update — September 5, 2026</title><link>https://blog.skycoin.com/posts/dev-update-2026-09-05/</link><pubDate>Sat, 05 Sep 2026 00:00:00 +0000</pubDate><guid>https://blog.skycoin.com/posts/dev-update-2026-09-05/</guid><description>&lt;p&gt;The day&amp;rsquo;s through-line ran from a bare &lt;code&gt;continue&lt;/code&gt; statement to a visor&amp;rsquo;s reward eligibility. Three readers in the transport discovery skipped a failed batch silently, and because those counts decide online status and uptime feeds the reward threshold, a short read could push live visors under the bar while still returning a plausible number. Fixing that fed a larger rebuild of the reward server&amp;rsquo;s statistics pages, which moved off HTTP-over-dmsg onto CXO feeds and gained panels for the dmsg substrate, service reachability, transports per visor, and the route setup nodes that negotiate every route in the network and had never appeared on any chart.&lt;/p&gt;</description><enclosure url="https://blog.skycoin.com/img/skywire-the-next-internet.png" length="194882" type="image/png"/></item><item><title>Skywire Development Update — September 4, 2026</title><link>https://blog.skycoin.com/posts/dev-update-2026-09-04/</link><pubDate>Fri, 04 Sep 2026 00:00:00 +0000</pubDate><guid>https://blog.skycoin.com/posts/dev-update-2026-09-04/</guid><description>&lt;p&gt;The desk stopped being a page the hypervisor happened to serve and became the hypervisor UI itself — on the visor-attached hypervisor, on the standalone &lt;code&gt;hv serve&lt;/code&gt;, and on the documentation site, whose root now greets with a terminal that has just run &lt;code&gt;skywire --help&lt;/code&gt;. The docs moved into the binary that documents them, so the command reference is the cobra tree walked live on every request rather than a copy that can drift, and it renders with no visor running at all. Underneath the surface work, the transport discovery&amp;rsquo;s per-transport metrics feed — the only dead feed on the deployment — was traced to a single object a fraction over CXO&amp;rsquo;s 16MB limit, which is refused at Put time and therefore kills the whole feed rather than one window; it was gzipped, chunked, and rebuilt as immutable per-day leaves. A production dmsg server was found restarting roughly every eighty seconds, and the reward server&amp;rsquo;s statistics pages were found pulling 24MB over dmsg to compute three numbers TPD publishes in 138 bytes.&lt;/p&gt;</description><enclosure url="https://blog.skycoin.com/img/skywire-the-next-internet.png" length="194882" type="image/png"/></item><item><title>Skywire Development Update — September 3, 2026</title><link>https://blog.skycoin.com/posts/dev-update-2026-09-03/</link><pubDate>Thu, 03 Sep 2026 00:00:00 +0000</pubDate><guid>https://blog.skycoin.com/posts/dev-update-2026-09-03/</guid><description>&lt;p&gt;Two threads ran through the day, and both were driven by measurement rather than by design. The wasm visor gained a real VPN client, with a gVisor userspace netstack standing in for the TUN device a browser tab cannot have. And a long run of skysocks and router fixes traced transfers that were spending two and three times the wire they needed: a 20MB upload torn down at twenty seconds by a write valve and again at 112 seconds by a keepalive that could not see uploads, a 20MB download putting 33.8MB of duplicate bytes on one leg against 14.7MB of payload. Alongside them the browser visor&amp;rsquo;s recurring five-hour death was root-caused to leaked peer connections, the resolving proxies gained status pages of their own, and the native hypervisor learned to serve the converged desk.&lt;/p&gt;</description><enclosure url="https://blog.skycoin.com/img/skywire-the-next-internet.png" length="194882" type="image/png"/></item><item><title>Skywire Development Update — September 2, 2026</title><link>https://blog.skycoin.com/posts/dev-update-2026-09-02/</link><pubDate>Wed, 02 Sep 2026 00:00:00 +0000</pubDate><guid>https://blog.skycoin.com/posts/dev-update-2026-09-02/</guid><description>&lt;p&gt;The whole skywire binary runs in a browser tab now. Not a trimmed edge build — the full command tree, compiled to wasm, running &lt;code&gt;skywire autoconfig&lt;/code&gt; in a terminal, booting a foreground visor that joins the P2P transport mesh, and serving its own hypervisor UI to a nested browser on the same page. By the end of the day that visor forms WebTransport transports like a native peer, renders the hypervisor UI natively through a service worker, and chains its proxies by default so any tab of the nested browser browses through the mesh. A try-it-now playground is live on the docs site at skycoin.github.io/skywire/playground.&lt;/p&gt;</description><enclosure url="https://blog.skycoin.com/img/skywire-the-next-internet.png" length="194882" type="image/png"/></item><item><title>Skywire Development Update — September 1, 2026</title><link>https://blog.skycoin.com/posts/dev-update-2026-09-01/</link><pubDate>Tue, 01 Sep 2026 00:00:00 +0000</pubDate><guid>https://blog.skycoin.com/posts/dev-update-2026-09-01/</guid><description>&lt;p&gt;Four merges, each substantial: the retransmit storm that could eat a loaded mux stream is root-caused and fixed, dmsg servers become probeable per carrier — uncovering and fixing a silent QUIC downgrade along the way — five operations guides land in the docs, and the last modified in-tree dependency copies become proper forks.&lt;/p&gt;
&lt;h3 id="skywire-the-retransmit-storm-root-caused"&gt;Skywire: The Retransmit Storm, Root-Caused&lt;/h3&gt;
&lt;p&gt;Under sustained load, bufferbloat inflates the in-band RTT far past the loss-detection ceiling, so the 1.5s clamp declared every in-flight packet permanently lost — and because retransmitted entries were never re-stamped, every ~25ms SACK re-selected the same holes. Measured live: 93% of sent packets were retransmits, 50MB on the wire for 8.6MB of goodput, until liveness gave out. &lt;strong&gt;&lt;code&gt;4399&lt;/code&gt;&lt;/strong&gt; fixes both halves: retransmit entries carry their last send time and back off exponentially, and the RACK ceiling is floored at one measured RTT so the adaptive reorder window is never overridden by an absolute clamp.&lt;/p&gt;</description><enclosure url="https://blog.skycoin.com/img/skywire-the-next-internet.png" length="194882" type="image/png"/></item><item><title>Skywire Development Update — August 31, 2026</title><link>https://blog.skycoin.com/posts/dev-update-2026-08-31/</link><pubDate>Mon, 31 Aug 2026 00:00:00 +0000</pubDate><guid>https://blog.skycoin.com/posts/dev-update-2026-08-31/</guid><description>&lt;p&gt;A hardening day for the browser visor: a page-freeze fix, an end to two CPU-pegging loops, and a local proxy-status page that answers even before the mesh does. A pair of allocation cuts round it out.&lt;/p&gt;
&lt;h3 id="skywire-the-browser-visor-behaves"&gt;Skywire: The Browser Visor Behaves&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;4391&lt;/code&gt;&lt;/strong&gt; stops the standalone page stranding the visor on the page&amp;rsquo;s main thread, where any long computation froze the UI with it. &lt;strong&gt;&lt;code&gt;4393&lt;/code&gt;&lt;/strong&gt; ends the in-tab proxy pegging a core against zombie exits and makes the CLI-RPC bridge report honest liveness, and &lt;strong&gt;&lt;code&gt;4394&lt;/code&gt;&lt;/strong&gt; memoizes the local-route search, widens the proxy dial margin, and recovers a wedged shared-worker boot instead of leaving the tab stuck. &lt;strong&gt;&lt;code&gt;4396&lt;/code&gt;&lt;/strong&gt; gives the browser visor a local &lt;code&gt;status.skysocks&lt;/code&gt; proxy-status page that is never gated by the interstitial — status must be readable precisely when routes are not up yet — and &lt;strong&gt;&lt;code&gt;4397&lt;/code&gt;&lt;/strong&gt; prefers proxy exits that are already direct transport peers, cutting the time to the first proxied page load.&lt;/p&gt;</description><enclosure url="https://blog.skycoin.com/img/skywire-the-next-internet.png" length="194882" type="image/png"/></item><item><title>Skywire Development Update — August 30, 2026</title><link>https://blog.skycoin.com/posts/dev-update-2026-08-30/</link><pubDate>Sun, 30 Aug 2026 00:00:00 +0000</pubDate><guid>https://blog.skycoin.com/posts/dev-update-2026-08-30/</guid><description>&lt;p&gt;A performance campaign against the route finder, end to end: from per-request graph builds and path-copy storms down to landmark routing that composes far routes through the mesh&amp;rsquo;s natural hubs. Around it, range-splitting extends to HTTPS, routes gain a transport-type exclusion knob, and &lt;code&gt;route calc&lt;/code&gt; learns to report how much disjoint capacity actually exists between two visors.&lt;/p&gt;
&lt;h3 id="skywire-the-route-finder-gets-fast"&gt;Skywire: The Route Finder Gets Fast&lt;/h3&gt;
&lt;p&gt;The route finder answered every source/destination pair with an exhaustive search over the dense transport graph, rebuilt per request. &lt;strong&gt;&lt;code&gt;4378&lt;/code&gt;&lt;/strong&gt; replaces path-copying with parent-pointer BFS, &lt;strong&gt;&lt;code&gt;4380&lt;/code&gt;&lt;/strong&gt; shares one background-refreshed route graph across requests, &lt;strong&gt;&lt;code&gt;4385&lt;/code&gt;&lt;/strong&gt; memoizes weighted route results per graph, and &lt;strong&gt;&lt;code&gt;4386&lt;/code&gt;&lt;/strong&gt; byte-sorts the search keys to kill string-conversion churn. &lt;strong&gt;&lt;code&gt;4390&lt;/code&gt;&lt;/strong&gt; caps the campaign with landmark routing: routes between every node and the highest-degree hubs are precomputed once per graph, and a far pair is answered by composing source-to-hub and hub-to-destination — with a shallow direct search keeping the optimal answer for near pairs and a full search as fallback, so nothing regresses. Composing via different hubs yields disjoint mux legs for free. On the visor side, &lt;strong&gt;&lt;code&gt;4382&lt;/code&gt;&lt;/strong&gt; builds local-route lookups once per discovery snapshot rather than per dial, and &lt;strong&gt;&lt;code&gt;4383&lt;/code&gt;&lt;/strong&gt; pins the transport feed so route calculation stops re-handshaking.&lt;/p&gt;</description><enclosure url="https://blog.skycoin.com/img/skywire-the-next-internet.png" length="194882" type="image/png"/></item><item><title>Skywire Development Update — August 29, 2026</title><link>https://blog.skycoin.com/posts/dev-update-2026-08-29/</link><pubDate>Sat, 29 Aug 2026 00:00:00 +0000</pubDate><guid>https://blog.skycoin.com/posts/dev-update-2026-08-29/</guid><description>&lt;p&gt;The mux goes unidirectional: uploads and downloads no longer have to take the same paths. A dense day around that — the two ends of a route group learn to mirror each other&amp;rsquo;s leg state, two more schedulers and shared-bottleneck detection arrive, the proxy status page grows a two-level route tree and a GPU route graph, and the browser visor&amp;rsquo;s RPC becomes reachable over dmsg. A one-line hash fix at the end of the day unblocked the published development binary for 32-bit ARM.&lt;/p&gt;</description><enclosure url="https://blog.skycoin.com/img/skywire-the-next-internet.png" length="194882" type="image/png"/></item><item><title>Skywire Development Update — August 28, 2026</title><link>https://blog.skycoin.com/posts/dev-update-2026-08-28/</link><pubDate>Fri, 28 Aug 2026 00:00:00 +0000</pubDate><guid>https://blog.skycoin.com/posts/dev-update-2026-08-28/</guid><description>&lt;p&gt;Forward error correction lands in the packet mux. Of the three named escapes from the in-order-stream wall, FEC is the first to ship: repair packets ride alongside data so a lost packet on one leg is reconstructed at the far end instead of stalling the reorder frontier until retransmit. Alongside it, retransmit timing itself gets modern — a RACK-derived threshold replaces the fixed timer — and the two ends of a route group start telling each other which legs are active.&lt;/p&gt;</description><enclosure url="https://blog.skycoin.com/img/skywire-the-next-internet.png" length="194882" type="image/png"/></item><item><title>Skywire Development Update — August 27, 2026</title><link>https://blog.skycoin.com/posts/dev-update-2026-08-27/</link><pubDate>Thu, 27 Aug 2026 00:00:00 +0000</pubDate><guid>https://blog.skycoin.com/posts/dev-update-2026-08-27/</guid><description>&lt;p&gt;A day about the lifecycle of a mux leg. With per-frame noise aggregating a single stream across legs, the remaining failure modes are legs themselves misbehaving — black-holing, congesting, sitting in a different latency class, or living on the same LAN as their sibling — and today the router learned to admit, demote, replace and retire them deliberately. On top of that: a seamless in-flight route switch for proxy sessions, and a round of housekeeping from the SOCKS listener to the transport-discovery database.&lt;/p&gt;</description><enclosure url="https://blog.skycoin.com/img/skywire-the-next-internet.png" length="194882" type="image/png"/></item><item><title>Skywire Development Update — August 26, 2026</title><link>https://blog.skycoin.com/posts/dev-update-2026-08-26/</link><pubDate>Wed, 26 Aug 2026 00:00:00 +0000</pubDate><guid>https://blog.skycoin.com/posts/dev-update-2026-08-26/</guid><description>&lt;p&gt;A day built around one idea, taken from RFC to on-by-default before it is out: per-frame noise for mux aggregation. Rather than striping a route group&amp;rsquo;s single noise-encrypted byte stream across legs and reordering it back together on the far side, noise is applied per frame, so each frame decrypts on its own and legs aggregate a single stream with no cross-leg reordering at all — the root of the reorder-buffer hazards the data-plane fixes have been chasing. Around it: a routing lock fix, the visor-state fields to actually watch the new path work, and a cluster of CI and skysocks housekeeping. The afternoon kept building on the new path: warm-standby aux legs, live mux control, the no-skip reorder rule that ends a stream-corruption class, and a predictive scheduler.&lt;/p&gt;</description><enclosure url="https://blog.skycoin.com/img/skywire-the-next-internet.png" length="194882" type="image/png"/></item><item><title>Skywire Development Update — August 25, 2026</title><link>https://blog.skycoin.com/posts/dev-update-2026-08-25/</link><pubDate>Tue, 25 Aug 2026 00:00:00 +0000</pubDate><guid>https://blog.skycoin.com/posts/dev-update-2026-08-25/</guid><description>&lt;p&gt;The throughput day. A single-line change — raising the yamux stream window from 256 KB to 16 MB for the mesh&amp;rsquo;s bandwidth-delay product — turns out to be the throughput fix the mux work had been circling: the mesh was window-starved, not CPU- or mux-bound. It lands next to a multi-tunnel aggregation foundation, an adaptive mux that finally converges to the fastest legs in one tick, sharded CXO feeds that let a busy hub&amp;rsquo;s Root fill, and a large package reorganization grouping the deployment services under &lt;code&gt;pkg/deployment&lt;/code&gt;.&lt;/p&gt;</description><enclosure url="https://blog.skycoin.com/img/skywire-the-next-internet.png" length="194882" type="image/png"/></item></channel></rss>