<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Development on Skycoin Blog</title><link>https://blog.theskywirenetwork.net/tags/development/</link><description>Recent content in Development on Skycoin Blog</description><generator>Hugo</generator><language>en</language><lastBuildDate>Sat, 05 Sep 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://blog.theskywirenetwork.net/tags/development/index.xml" rel="self" type="application/rss+xml"/><item><title>Skywire Development Update — September 5, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-09-05/</link><pubDate>Sat, 05 Sep 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/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></item><item><title>Skywire Development Update — September 4, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-09-04/</link><pubDate>Fri, 04 Sep 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/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></item><item><title>Skywire Development Update — September 3, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-09-03/</link><pubDate>Thu, 03 Sep 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/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></item><item><title>Skywire Development Update — September 2, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-09-02/</link><pubDate>Wed, 02 Sep 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/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></item><item><title>Skywire Development Update — September 1, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-09-01/</link><pubDate>Tue, 01 Sep 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/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></item><item><title>Skywire Development Update — August 31, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-08-31/</link><pubDate>Mon, 31 Aug 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/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></item><item><title>Skywire Development Update — August 30, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-08-30/</link><pubDate>Sun, 30 Aug 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/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></item><item><title>Skywire Development Update — August 29, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-08-29/</link><pubDate>Sat, 29 Aug 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/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></item><item><title>Skywire Development Update — August 28, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-08-28/</link><pubDate>Fri, 28 Aug 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/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></item><item><title>Skywire Development Update — August 27, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-08-27/</link><pubDate>Thu, 27 Aug 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/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></item><item><title>Skywire Development Update — August 26, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-08-26/</link><pubDate>Wed, 26 Aug 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/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></item><item><title>Skywire Development Update — August 25, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-08-25/</link><pubDate>Tue, 25 Aug 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/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></item><item><title>Skywire Development Update — August 24, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-08-24/</link><pubDate>Mon, 24 Aug 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/dev-update-2026-08-24/</guid><description>&lt;p&gt;Today&amp;rsquo;s thread is the transport-discovery feed getting its own dedicated CXO channel so TPD can fill it completely, with a subscriber allowlist gating the service-consumed feeds and the aggregator&amp;rsquo;s node identity bound to TPD&amp;rsquo;s key so gated visors accept it. A survey-key mismatch that had been costing operators their rewards is fixed, the proxy status page gains a bilateral route-group tree with a matching &lt;code&gt;proxy tree&lt;/code&gt; CLI, and an interactive console over the command tree lands.&lt;/p&gt;</description></item><item><title>Skywire Development Update — August 23, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-08-23/</link><pubDate>Sun, 23 Aug 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/dev-update-2026-08-23/</guid><description>&lt;p&gt;The proxy status page becomes a live instrument today: it pushes updates over a WebSocket control channel and SSE instead of a full-page refresh, folds the per-leg mux table and full routes into one route tree, and stays reachable even when the exit is down. Underneath it a mux aux-leg race (issue #80) is buffered, another CXO publisher freeze — this one from a batch-rollback cache desync — is cured, and an optional in-process dmsg server that shares the visor key lands, default off.&lt;/p&gt;</description></item><item><title>Skywire Development Update — August 22, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-08-22/</link><pubDate>Sat, 22 Aug 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/dev-update-2026-08-22/</guid><description>&lt;p&gt;The busiest day of the run, on two fronts. A CXO publisher-freeze is diagnosed and closed from several angles — the publisher stops publishing stale history, hydrates best-effort around dangling references, and surfaces its own feed health in &lt;code&gt;visor state&lt;/code&gt;. And the adaptive router gets a composite destination-transport oracle, capacity-weighted distribution, and a set of guardrails that keep it from reusing a transport already in the group or fighting an explicit &lt;code&gt;--direct&lt;/code&gt; flag. The proxy status page grows a full per-leg route with every hop and PK.&lt;/p&gt;</description></item><item><title>Skywire Development Update — August 21, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-08-21/</link><pubDate>Fri, 21 Aug 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/dev-update-2026-08-21/</guid><description>&lt;p&gt;A large CLI-standardization sweep runs across almost every command group today, fixing small bugs and converging the flag and help vocabulary, and it lands next to a set of route-setup reliability fixes that stop intermittent skynet route drops and apps stuck in &amp;ldquo;starting&amp;rdquo;. The proxy status surface gains a real HTTPS certificate and a chunked live route-setup progress stream, and a route-visualizer scaffold goes in.&lt;/p&gt;
&lt;h3 id="skywire-route-setup-stops-dropping"&gt;Skywire: Route Setup Stops Dropping&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;4078&lt;/code&gt;&lt;/strong&gt; sets up candidate route groups in parallel rather than serially, fixing a steady-connection stall where a slow candidate delayed the whole dial. &lt;strong&gt;&lt;code&gt;4057&lt;/code&gt;&lt;/strong&gt; retransmits the route-group setup handshake to prevent intermittent skynet route drops, and &lt;strong&gt;&lt;code&gt;4051&lt;/code&gt;&lt;/strong&gt; stops a route-setup drop from wedging an app in the &amp;ldquo;starting&amp;rdquo; state, adding a cascade→classic fallback so a failed cascade setup degrades to the classic path instead of hanging. &lt;strong&gt;&lt;code&gt;4081&lt;/code&gt;&lt;/strong&gt; excludes same-LAN peers as routing intermediates for genuine route diversity, and &lt;strong&gt;&lt;code&gt;4079&lt;/code&gt;&lt;/strong&gt; has the &lt;code&gt;adaptive&lt;/code&gt; default hold a warm standby with an asymmetric forward/reverse shape, app-agnostically.&lt;/p&gt;</description></item><item><title>Skywire Development Update — August 20, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-08-20/</link><pubDate>Thu, 20 Aug 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/dev-update-2026-08-20/</guid><description>&lt;p&gt;The routing-policy work crosses a threshold today: &lt;code&gt;adaptive&lt;/code&gt; becomes the default preset, and a family of conditional presets and a native-Go engine let it run on the TinyGo wasm-visor without a WASM interpreter aboard. Alongside it the CXO treestore gains real self-heal so a publisher can no longer freeze on an evicted object, the mux data plane gets a no-dip hot-swap and a full-window SACK, and the CLI gains a live per-leg mux chart and a one-call &lt;code&gt;visor state&lt;/code&gt; snapshot. The packaging side moves to a rolling per-merge binary and drops the retired &lt;code&gt;stable&lt;/code&gt; channel.&lt;/p&gt;</description></item><item><title>Skywire Development Update — August 19, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-08-19/</link><pubDate>Wed, 19 Aug 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/dev-update-2026-08-19/</guid><description>&lt;p&gt;The big thread today is a root-cause fix to transport discovery: the transport-discovery service had been reflecting only about 9% of the real transport graph, and the route-finder plans over that view, so it was blind to most of the network. A run of eight fixes traces it to CXO fills breaking over short-lived announce connections and closes the gap from both ends — the publisher makes its feed fill faster and smaller, the aggregator keeps a stable source, and both sides now verify what they publish. Alongside it, an optional route-calculation path sidesteps the discovery service entirely, the mux data plane gets two more fixes, and the performance presets move onto the no-dip engine.&lt;/p&gt;</description></item><item><title>Skywire Development Update — August 18, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-08-18/</link><pubDate>Tue, 18 Aug 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/dev-update-2026-08-18/</guid><description>&lt;p&gt;Two campaigns reach their point today. Route ranking stops guessing at transport quality by type and starts using &lt;em&gt;measured&lt;/em&gt; throughput and end-to-end latency, in a three-phase build that goes from free passive observation to an active packet-pair probe to ranking that treats the type cost as a mere prior. And the warm-standby mux primitive — a leg that stays alive but parked — lands and is wired through the policy ABI, so &lt;code&gt;rotating-bw&lt;/code&gt; rotates by promoting a warm standby instead of tearing a live leg down mid-stream. Alongside them, an app can finally override the visor-global mux defaults, and the deployment HTTP and CXO surfaces are gzipped.&lt;/p&gt;</description></item><item><title>Skywire Development Update — August 17, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-08-17/</link><pubDate>Mon, 17 Aug 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/dev-update-2026-08-17/</guid><description>&lt;p&gt;A large day on the multiplexed data plane. A multi-leg mux route group had been establishing cleanly but carrying no aggregated data — mux=1 was fine, adding a healthy second leg black-holed the transfer to zero bytes — and today three localized bugs behind that are found and fixed, so a mux&amp;gt;1 group finally aggregates. In parallel the routing-policy engine gets its compiled WASM presets embedded and dispatched from one bundle with several new dynamic presets, the native mesh proxies gain a branded route-building interstitial, and the code graph is published as a page on the site.&lt;/p&gt;</description></item><item><title>Skywire Development Update — August 16, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-08-16/</link><pubDate>Sun, 16 Aug 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/dev-update-2026-08-16/</guid><description>&lt;p&gt;A focused day on the browser visor and the vendored forks behind it. The wasm-visor tour gains a real file browser and a set of hardening fixes, its HV-UI caches are pre-warmed at boot so the first visit is instant, the bundled wallet surface is corrected on two fronts, and the hand-copied &lt;code&gt;0magnet&lt;/code&gt; module sources are dropped in favor of importing the forks by their own paths.&lt;/p&gt;
&lt;h3 id="skywire-the-0magnet-forks-imported-not-copied"&gt;Skywire: The 0magnet Forks, Imported Not Copied&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;3951&lt;/code&gt;&lt;/strong&gt; removes the hand-vendored copies under &lt;code&gt;third_party/0magnet&lt;/code&gt; and requires the modules by their own paths. The copies were staging — sources vendored by hand so the browser-terminal work could move without a round trip through another repository — and that trade had stopped paying: they had already fallen behind, &lt;code&gt;xterm-go&lt;/code&gt; and &lt;code&gt;websh&lt;/code&gt; having gained a &lt;code&gt;ResizeObserver&lt;/code&gt; that re-fits the terminal to its container rather than the window, which is exactly what the hypervisor UI needs, since its terminal lives inside a WinBox window. No replace directives are needed — each fork is a module in its own right and resolves normally — and only four files outside the copied trees imported them, none reaching into an &lt;code&gt;internal/&lt;/code&gt; package, so the rewrite is a straight path substitution that also picks up an afero fix narrowing the TinyGo shims to &lt;code&gt;js/wasm&lt;/code&gt; where they belong.&lt;/p&gt;</description></item><item><title>Skywire Development Update — August 15, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-08-15/</link><pubDate>Sat, 15 Aug 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/dev-update-2026-08-15/</guid><description>&lt;p&gt;Most of today is the browser visor becoming trustworthy to use: the hypervisor-UI tabs that spun forever now render at once, clearnet and mesh browsing stop failing on transient races, and a POST-body corruption that had been silently rewriting every request body is fixed. Underneath it the transport layer sheds two sources of wasted goroutines and one half-open leak, the CXO subscription goes live instead of polling, and the CLI gains two output filters that work on both binaries.&lt;/p&gt;</description></item><item><title>Skywire Development Update — August 14, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-08-14/</link><pubDate>Fri, 14 Aug 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/dev-update-2026-08-14/</guid><description>&lt;p&gt;A broad day of hardening under two headings: the network visualizer moves onto a WebGL renderer that is a role of the single wasm-visor blob rather than a second binary, and a run of correctness fixes — a runtime CPU peg in the browser visor, the browse-origin routing finally under test, and a lint-and-format sweep that unblocks every open PR. Alongside them the routing-policy library rounds out with three new presets and the vendored forks are synced back to their upstreams.&lt;/p&gt;</description></item><item><title>Skywire Development Update — August 13, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-08-13/</link><pubDate>Thu, 13 Aug 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/dev-update-2026-08-13/</guid><description>&lt;p&gt;Two threads today, both about a program describing itself honestly to whatever reads it. The larger is the foundation for structured CLI output: &lt;code&gt;skywire cli&lt;/code&gt; learns to emit &lt;code&gt;--help --json&lt;/code&gt; — a machine-readable schema of all 379 commands — and its output helper is replaced by a printer that renders one self-describing value rather than a JSON blob and a hand-written human string that had already drifted apart. In the same pass the transport command&amp;rsquo;s output shape, which existed as three copies that disagreed, is consolidated into one importable type the e2e suite shares. Alongside it, a release-hygiene fix on the mobile side stops the visor&amp;rsquo;s version being stamped from the wrong tag.&lt;/p&gt;</description></item><item><title>One Toolchain, Two Repositories: A Cross-Repo Front-End Modernization</title><link>https://blog.theskywirenetwork.net/posts/one-toolchain-for-the-hypervisor-ui/</link><pubDate>Wed, 12 Aug 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/one-toolchain-for-the-hypervisor-ui/</guid><description>&lt;p&gt;Over the past two weeks, every Angular front-end in the Skycoin and Skywire ecosystem was pulled onto one strict, modern build toolchain — the desktop wallet, the web wallet, the block explorer, and the Skywire hypervisor&amp;rsquo;s &amp;ldquo;manager&amp;rdquo; UI. It happened across two separate repositories, in the same window, converging on a single shared standard. This is the story of that convergence, because the interesting part isn&amp;rsquo;t any one upgrade — it&amp;rsquo;s that four independently-maintained UIs ended up governed by the same rules on purpose.&lt;/p&gt;</description></item><item><title>Skywire Development Update — August 12, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-08-12/</link><pubDate>Wed, 12 Aug 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/dev-update-2026-08-12/</guid><description>&lt;p&gt;A very large day, on two fronts that rarely land together. The manager UI — the Angular hypervisor front-end — was brought to the same engineering footing as skycoin&amp;rsquo;s three other front-ends in a single coordinated stack: explicit change detection, strict TypeScript with strict templates, correctness-matched ESLint, the esbuild application builder, Angular 22, and a browser smoke check that catches the class of migration bugs a build and a lint and a spec all miss. In parallel the cascade route-setup verification campaign gained the observability and the leg-level reclamation it needs to prove its own correctness, dmsg carrier selection learned to converge and self-heal, and the CLI got several honesty fixes. Underneath it all, the manager UI was also made null-safe end to end. And on the Skycoin side the same wasm-cipher work reached its point: skycoin-lite now stamps both its Go and TinyGo artifacts, returns errors instead of trapping the whole module on a mistyped address, and — the payoff — was lifted out of a &lt;code&gt;main&lt;/code&gt; into a &lt;code&gt;Register&lt;/code&gt; any wasm program can call, so a skywire visor can carry the skycoin cipher, with a transport seam now under the wallet&amp;rsquo;s &lt;code&gt;ApiService&lt;/code&gt; for the node API calls to follow.&lt;/p&gt;</description></item><item><title>Skywire Development Update — August 11, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-08-11/</link><pubDate>Tue, 11 Aug 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/dev-update-2026-08-11/</guid><description>&lt;p&gt;Today&amp;rsquo;s headline is a measured, fleet-wide efficiency win: a single quiet-feed keepalive that ends a churn pattern which had been re-handshaking healthy CXO connections every ninety seconds across the whole network — and, built on it, moving dmsg client-entry registration off its periodic HTTP-over-dmsg re-PUTs and onto a persistent CXO feed. Both attack the same cost: the Noise + post-quantum handshake that was dominating dmsg-discovery&amp;rsquo;s CPU. Alongside them the browser dmsg carrier finally converges from WebSocket to WebTransport, and the in-tab wasm visor grows a real shell. On the Skycoin side, the skycoin-web wallet&amp;rsquo;s unit-test suite came back from a single working spec to 1146 — reviving the golden-vector check that a browser-restored wallet holds the same coins as a node-restored one — the skycoin-lite wasm cipher stopped swallowing its own panics, and the cipher artifact learned to report the commit it was built from.&lt;/p&gt;</description></item><item><title>Skywire Development Update — August 10, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-08-10/</link><pubDate>Mon, 10 Aug 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/dev-update-2026-08-10/</guid><description>&lt;p&gt;Yesterday&amp;rsquo;s dmsg-bootstrap-floor RFC named the &amp;ldquo;real prize&amp;rdquo;: generalize the dmsg server&amp;rsquo;s peer-forwarding to &lt;em&gt;any&lt;/em&gt; visor, carried over its own transports, so a visor need not stay attached to public dmsg servers once it has transports of its own. Today that primitive lands and gets wired into the two paths that make it carry real traffic — &lt;code&gt;.skynet&lt;/code&gt; fetches and &lt;code&gt;.dmsg&lt;/code&gt; reach — with a relay-discovery layer robust to a stale or empty transport graph. Alongside it, the real-origin mesh browser reaches its hosted form: mesh sites now open as genuine isolated web origins served entirely through the in-tab visor, behind a single wildcard TLS certificate. Skycoin had its second big day of the window: the front-end toolchain converged onto one shared ESLint base and aligned tsconfig strictness, all three Angular apps adopted OnPush change detection, the code moved to the &lt;code&gt;@ngx-translate&lt;/code&gt; v18 API, and CI now builds, lints and tests every front-end. That shared-ESLint base is the standard skywire&amp;rsquo;s own manager UI was subsequently brought up to match.&lt;/p&gt;</description></item><item><title>Skywire Development Update — August 9, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-08-09/</link><pubDate>Sun, 09 Aug 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/dev-update-2026-08-09/</guid><description>&lt;p&gt;Today&amp;rsquo;s work lays the groundwork for a structural change in how the network uses dmsg. For most of Skywire&amp;rsquo;s life a visor stays permanently attached to a star of public dmsg servers, and the deployment services live behind those servers too — a topology that concentrates connection churn and handshake cost onto a handful of hosts. The design landing today reframes dmsg as a &lt;em&gt;bootstrap-only floor&lt;/em&gt;: something a visor leans on to get its first transports, then increasingly bypasses by relaying for its peers over the transports it already has. Two of the four RFC components ship as running code — the idle-session reaper and always-on server relaying — alongside two empirical findings that decide how the deployment feeds eventually move off the dmsg-server star.&lt;/p&gt;</description></item><item><title>Skywire Development Update — August 8, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-08-08/</link><pubDate>Sat, 08 Aug 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/dev-update-2026-08-08/</guid><description>&lt;p&gt;Mostly reliability work under the hood. A silent first-session publish skip that kept a freshly-booted visor out of dmsg discovery — and blew the e2e suite&amp;rsquo;s time budget waiting for it — was tracked down and fixed. The CXO memory-growth and CPU-saturation seen on the live deployment hosts got three targeted fixes, paired with a server-side change that keeps the SD services feed always servable. On the UI side, the VPN client became a first-class in-place node tab and the clearnet iframe browser gained real reliability and browser parity.&lt;/p&gt;</description></item><item><title>Skywire Development Update — August 7, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-08-07/</link><pubDate>Fri, 07 Aug 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/dev-update-2026-08-07/</guid><description>&lt;p&gt;A lighter day, with one substantive CXO fix behind it. The blank network-uptime page and empty proxy/VPN server pickers on hypervisor visors were traced to a pair of CXO problems — a cold snapshot read before the first sync, and a per-feed dmsg-port collision — and both were fixed. The mobile SkyDEX screen was taught to follow the app&amp;rsquo;s theme instead of arriving as the one dark page in a light app, and the accumulated golangci-lint debt on develop was cleared so every open PR goes green again.&lt;/p&gt;</description></item><item><title>Skywire Development Update — August 6, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-08-06/</link><pubDate>Thu, 06 Aug 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/dev-update-2026-08-06/</guid><description>&lt;p&gt;Today the mobile app took center stage. The phone got a real Wallet — SKY, the fiber coins, BTC, and now native Ethereum with ERC-20 tokens and USDT built in — a redesign that gives every screen one visual language, and several passes of polish driven by using it on a device. Underneath, two periodic jobs the phone had been paying for got trimmed, and the phone stopped shipping the deployment&amp;rsquo;s survey whitelist it had no business carrying. On the browser side, the Services-Health tab is now populated and bounded on a wasm hypervisor, guarded against silent DTO drift; and a dmsg server can finally reach its own co-located transit client so its version stops showing blank.&lt;/p&gt;</description></item><item><title>Skywire Development Update — August 5, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-08-05/</link><pubDate>Wed, 05 Aug 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/dev-update-2026-08-05/</guid><description>&lt;p&gt;A heavy day across the whole stack. The dmsg server fleet learned to serve WebTransport on the socket it already listens on, so browser visors stop being stuck on the wss fallback. The decommissioned standalone Uptime Tracker was purged from every CLI command that still dialed its dead PK, with all uptime queries repointed to the TPD-integrated tracker over CXO. The native and browser edges kept converging — a shared transport-manager builder, a shared service-PK set, and a shared auto-transport policy that finally makes dmsg the genuine last resort on both. On top of that: discovery readouts that show real versions and inferred load, a guided tour that actually walks the UI, and a large mobile push — the phone&amp;rsquo;s Fleet window, SkyVPN over Android&amp;rsquo;s TUN, and a skychat that can move between devices. On the Skycoin repo the day was light: a batch of web-subproject dependency bumps and a README/security-policy pass that brings the project into line with skywire.&lt;/p&gt;</description></item><item><title>Skywire Development Update — August 4, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-08-04/</link><pubDate>Tue, 04 Aug 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/dev-update-2026-08-04/</guid><description>&lt;p&gt;The day&amp;rsquo;s most important change is a security fix in the shared &lt;code&gt;httpauth&lt;/code&gt; middleware: over dmsg, the caller&amp;rsquo;s identity is now taken from the noise-verified session PK instead of an unverified header, closing an impersonation hole that let any dmsg peer spoof another visor to the address-resolver, transport discovery, service discovery, and the uptime tracker — and it &lt;em&gt;reduces&lt;/em&gt; load while doing it. Alongside it, the hypervisor SPA&amp;rsquo;s long-planned GUI-embedding standardization landed in four steps (a SharedModule, a generic bundle-mount host, the first lazy-loaded feature module, and CDK-portal mounting that retires the self-iframe), the wasm-visor&amp;rsquo;s runtime-config reached parity with native and became editable, the clearnet browser got its search/nav/CSS working over the proxy, and the Android app grew SkyDEX, voice calls, and a shared address book.&lt;/p&gt;</description></item><item><title>The Header That Lied: Closing a Visor-Impersonation Hole</title><link>https://blog.theskywirenetwork.net/posts/the-header-that-lied/</link><pubDate>Tue, 04 Aug 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/the-header-that-lied/</guid><description>&lt;p&gt;Every Skywire visor authenticates itself to the network&amp;rsquo;s core services — the address resolver, the transport discovery, the service discovery, the uptime tracker — with a small HTTP handshake carried by a shared &lt;code&gt;httpauth&lt;/code&gt; middleware. Over the public internet that handshake does real cryptographic work: the caller sends its public key in a &lt;code&gt;SW-Public&lt;/code&gt; header, a one-time &lt;code&gt;SW-Nonce&lt;/code&gt;, and a secp256k1 &lt;strong&gt;signature&lt;/strong&gt; proving it holds the private key for that public key. Forge the header and you fail the signature check. That is the whole point.&lt;/p&gt;</description></item><item><title>Skywire Development Update — August 3, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-08-03/</link><pubDate>Mon, 03 Aug 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/dev-update-2026-08-03/</guid><description>&lt;p&gt;A heavy day on the reward system: the survey-collection pipeline that had lived as host-only bash (&lt;code&gt;fetch_surveys.sh&lt;/code&gt; + &lt;code&gt;getlogs.sh&lt;/code&gt;) got ported into Go, made a drop-in for the live host, and paired with a new &lt;strong&gt;push&lt;/strong&gt; model where a visor POSTs its own survey to the reward system over dmsg — closing the silent-drop gap where a demonstrably-up visor could earn nothing because a pull snapshot happened to read it offline. Around it: the systray decoupled from the visor process so a background service can be driven by an unprivileged tray, the pty-exec gate was narrowed to self-only so hypervisor control of remote visors works again by default, skynet source-routes got warm-route reuse, skychat gained a dmsg-first auto mode, and the network visualizer started counting every transport type it actually has.&lt;/p&gt;</description></item><item><title>Skywire Development Update — August 2, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-08-02/</link><pubDate>Sun, 02 Aug 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/dev-update-2026-08-02/</guid><description>&lt;p&gt;The headline today is a one-line divisor fix that retroactively repairs a fleet-wide reward regression: continuously-up visors that had been scoring ~30% daily uptime — below the 75% reward bar — snap back to ~100% the moment the reward server re-reads its stored counts, no fleet update required. Around it, apps got a way to reach a user who isn&amp;rsquo;t looking at them (a visor-global notification hub with an SSE stream, an OS-notify sink, and a &lt;code&gt;hv notify&lt;/code&gt; bridge for headless nodes), a visor learned to quiesce itself without stopping the process, the wasm-visor&amp;rsquo;s clearnet proxy became a first-class configurable app, and skychat&amp;rsquo;s broadcast channels plus a mobile-app skeleton landed.&lt;/p&gt;</description></item><item><title>The Thirty-Percent Ceiling: A Reward-Uptime Divisor Bug</title><link>https://blog.theskywirenetwork.net/posts/the-thirty-percent-ceiling/</link><pubDate>Sun, 02 Aug 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/the-thirty-percent-ceiling/</guid><description>&lt;p&gt;For several weeks, a strange thing was true of the Skywire network: a visor could be online continuously — process up, dmsg connected, reachable, everything green in its own logs — and the reward system would record its daily uptime at almost exactly &lt;strong&gt;30%&lt;/strong&gt;. Rewards require &lt;strong&gt;75%&lt;/strong&gt;. So a node that never went down earned nothing, and its owner had no way to see why. Roughly half the fleet was in this state.&lt;/p&gt;</description></item><item><title>Skywire Development Update — August 1, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-08-01/</link><pubDate>Sat, 01 Aug 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/dev-update-2026-08-01/</guid><description>&lt;p&gt;Today&amp;rsquo;s work sits mostly on the operator-facing surface: how a visor is tuned, how it&amp;rsquo;s controlled from the CLI, and how it self-describes. The routing examination continued paying out with a router change that races transport creation against routing over existing transports — so a warm peer connects in half a second instead of paying the full direct-dial latency first. The privacy and routing knobs that had been config-JSON-only got proper &lt;code&gt;autoconfig&lt;/code&gt;/&lt;code&gt;config gen&lt;/code&gt; flags and a tuning guide, a local privilege-escalation vector in RPC-initiated dmsgpty exec was gated behind opt-in, and &lt;code&gt;cli visor app&lt;/code&gt; grew into the app-control superset that &lt;code&gt;proxy&lt;/code&gt; and &lt;code&gt;vpn&lt;/code&gt; can later alias. A stray Mixed-Content bug in the browser&amp;rsquo;s mesh navigation was also fixed.&lt;/p&gt;</description></item><item><title>Skywire Development Update — July 31, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-07-31/</link><pubDate>Fri, 31 Jul 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/dev-update-2026-07-31/</guid><description>&lt;p&gt;A dense fifteen-PR day across four fronts. The skychat group feature — a long-standing community contribution — landed with its admission control, encryption hardening, and the last open &amp;ldquo;ask again&amp;rdquo; item finished. The dual-surface divergence campaign reached its conclusion: skychat, the logs content, and the logs window all now render from &lt;em&gt;one&lt;/em&gt; implementation on every surface, with the wasm desktop&amp;rsquo;s WinBox windows hosting the exact same Angular components the native node page uses. A performance push cut wasm-visor time-to-first-transport by more than half and killed the native visor&amp;rsquo;s five-minute autoconnect cold start. And the routing examination began yielding concrete controls — a per-type transport-creation policy, a shared cross-network fallback primitive, and a fix for a browser proxy that was dying on a two-route mux.&lt;/p&gt;</description></item><item><title>Skywire Development Update — July 30, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-07-30/</link><pubDate>Thu, 30 Jul 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/dev-update-2026-07-30/</guid><description>&lt;p&gt;The throughline today is the browser dmsg edge. A reachability campaign run down over the last stretch culminates in a fix to the deepest issue: a wss-only browser client was silently falling back to raw TCP it can&amp;rsquo;t dial, dead-ending connections that should have rendezvoused over WebSocket to the next server. That fix comes with a two-tier headless test harness so the browser edge — which the compile lane can&amp;rsquo;t cover — is finally regression-gated, plus an operator-run health probe that would have auto-caught the day&amp;rsquo;s real wss outage. The wallet also stopped shipping an 11MB copied tree and now serves straight from the vendored skycoin module, and the manager UI&amp;rsquo;s dependabot backlog was cleared in one batch. It was also the biggest Skycoin day in the window: all three Angular front-ends — the desktop wallet, skycoin-web, and the explorer — moved to Angular 22 and had strict TypeScript with &lt;code&gt;strictTemplates&lt;/code&gt; turned on, new wallets began defaulting to bip44 (HD, multicoin), and a round of gnet and untrusted-input hardening landed underneath.&lt;/p&gt;</description></item><item><title>Skywire Development Update — July 29, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-07-29/</link><pubDate>Wed, 29 Jul 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/dev-update-2026-07-29/</guid><description>&lt;p&gt;Two threads today. The larger is a test-coverage pass over skychat that, by exercising the previously-untested code, turned up and fixed four latent bugs — including a data race in a shared CXO package and an empty-string public key that reached five endpoints as a real peer. The smaller thread is a run of wasm-hypervisor UI polish: the onboarding tour became non-blocking and told the real dmsg-carrier story, the wallet config overlay that had collapsed to an unusable strip was fixed, and the node info card now shows &lt;em&gt;how&lt;/em&gt; a visor reached each dmsg server. Skycoin, meanwhile, spent the day on dependency maintenance ahead of the front-end toolchain work to come.&lt;/p&gt;</description></item><item><title>Skywire Development Update — July 28, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-07-28/</link><pubDate>Tue, 28 Jul 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/dev-update-2026-07-28/</guid><description>&lt;p&gt;The urgent item today is a reward regression the previous release introduced: after v1.3.89 restored the reward heartbeat, roughly half the fleet was recording only ~30% uptime while actually up — below the 75% reward threshold, so earning nothing. The fix runs the failure down to heartbeat &lt;em&gt;under-delivery&lt;/em&gt; rather than any server-side scoring bug, and adds bounded backfill so flaky delivery no longer maps one-to-one to sparse uptime. Around it, the TinyGo wasm-visor got unwedged (a reflection panic that only fired inside the HV worker), the Bitcoin wallet&amp;rsquo;s electrum backend moved to where every other coin&amp;rsquo;s node lives, a flaky routing test got a real correctness fix behind it, and &lt;strong&gt;v1.3.91&lt;/strong&gt; was cut.&lt;/p&gt;</description></item><item><title>Skywire Development Update — July 27, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-07-27/</link><pubDate>Mon, 27 Jul 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/dev-update-2026-07-27/</guid><description>&lt;p&gt;The skychat convergence hit full stride today — eighteen PRs, most of them landing the payoff of yesterday&amp;rsquo;s seams. The centerpiece is a &lt;strong&gt;single shared DM controller&lt;/strong&gt; that both the native app and the browser wasm visor now run on, deleting hundreds of lines of duplicated connection, read-loop, and send logic that had drifted between the two. With one core in place, the DM feature set that used to be implemented twice (or not at all on one surface) landed uniformly: delete-for-everyone, WhatsApp-style delivery ticks, and the quoted-reply UI reached both visors and both chat UIs at once. The day also brought a large browser-skychat feature merge, a config-regen fix that had been quietly making newly-shipped apps unreachable, and an RFC on serving SkyDEX as a plain website over dmsg.&lt;/p&gt;</description></item><item><title>Skywire Development Update — July 26, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-07-26/</link><pubDate>Sun, 26 Jul 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/dev-update-2026-07-26/</guid><description>&lt;p&gt;Today is the start of a multi-day skychat convergence push (tracked in #3596): the native app and the browser wasm visor have long carried two separate copies of the same chat machinery, and they&amp;rsquo;ve been drifting. The work begins at the two seams that let the rest converge — a wire format that carries quoted replies to the &lt;em&gt;recipient&lt;/em&gt; rather than just the sender, and a history store that finally compiles under &lt;code&gt;GOOS=js&lt;/code&gt; so the browser visor can adopt the same persistence the native app uses. Alongside the chat work, the TinyGo wasm-visor gained a runtime toolchain switch for A/B validation, and the packaging docs got a much-needed page on how installed nodes actually update themselves.&lt;/p&gt;</description></item><item><title>Skywire Development Update — July 25, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-07-25/</link><pubDate>Sat, 25 Jul 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/dev-update-2026-07-25/</guid><description>&lt;p&gt;A short day, spent making the browser hypervisor tell the truth. The AU miner owner reported that the wasm hypervisor&amp;rsquo;s node list looked broken next to the native one — managed visors showing &lt;code&gt;Total: 0&lt;/code&gt; transports, a single flat list where the native HV renders per-hypervisor clusters, and the whole thing flickering as visors blinked offline and back. All three are the same underlying gap: the wasm HV was rendering from partial mirror data over a marginal dmsg link. Today&amp;rsquo;s work closes those, then rebuilds the served blob so the fixes actually reach the PWA, and the network visualizer gets a small cosmetic win.&lt;/p&gt;</description></item><item><title>Skywire Development Update — July 24, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-07-24/</link><pubDate>Fri, 24 Jul 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/dev-update-2026-07-24/</guid><description>&lt;p&gt;Today&amp;rsquo;s work is a rescue. For days the fleet&amp;rsquo;s reward uptime had silently collapsed — hundreds of visors that were plainly online were recording almost no uptime and earning nothing for it — and the outage stayed invisible because every layer that could have shouted about it was logging at Debug or discarding the error entirely. The investigation ran the failure down to two independent causes, both fixed: the reward-critical TPD heartbeat had been quietly disabled when the standalone uptime tracker was decommissioned, and the visors that &lt;em&gt;were&lt;/em&gt; heartbeating were losing an httpauth nonce race that 401&amp;rsquo;d most of their requests. Around those two fixes sits a ring of hardening — the residual TPD memory leaks closed, latent unbounded-timeout and unbounded-map bugs guarded, and the silent-failure logging that hid all of it turned up to Warn. The bottom line for operators: &lt;strong&gt;current-fleet visors must update to v1.3.89 to earn rewards correctly&lt;/strong&gt; — the heartbeat fix is visor-side, and the release raises the auto-incrementing version floor. Also today, the &lt;code&gt;.dmsg&lt;/code&gt;/&lt;code&gt;.skynet&lt;/code&gt; LAN gateway got a config-safe path so one board can serve a whole home-router LAN. On the Skycoin side, the day was dependency housekeeping — the open Dependabot PRs batched into one branch.&lt;/p&gt;</description></item><item><title>Skywire Development Update — July 23, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-07-23/</link><pubDate>Thu, 23 Jul 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/dev-update-2026-07-23/</guid><description>&lt;p&gt;Two threads today, both about stripping dependencies out from under a running system. The VPN router&amp;rsquo;s control plane started moving off shell-outs to &lt;code&gt;ip&lt;/code&gt; and &lt;code&gt;iptables&lt;/code&gt; and onto native Go — netlink and nftables spoken directly to the kernel — which is the first real step toward shipping Skywire as a dependency-free gokrazy appliance that carries no iproute2 or userland at all. Separately, the long-running TPD reward outage got its first concrete fix: the CXO aggregator that receives every visor&amp;rsquo;s Roots was never pruning the superseded ones, and on the production TPD host that was leaking toward OOM at roughly a gigabyte a day.&lt;/p&gt;</description></item><item><title>Skywire Development Update — July 22, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-07-22/</link><pubDate>Wed, 22 Jul 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/dev-update-2026-07-22/</guid><description>&lt;p&gt;Today Skywire cut &lt;strong&gt;v1.3.88&lt;/strong&gt;, and the release&amp;rsquo;s headline is the VPN router: over the last stretch it graduated from an on-the-bench prototype into a fully configurable, documented feature that any supported board can run. The bigger leap that rode in with it is the &lt;strong&gt;mesh gateway&lt;/strong&gt; — a LAN device behind the router can now reach a &lt;code&gt;.dmsg&lt;/code&gt; or &lt;code&gt;.skynet&lt;/code&gt; service by name, with no per-device setup and no SOCKS proxy, because the router resolves the name to a synthetic IP and transparently proxies the connection over the mesh. Underneath the features, a cluster of VPN reliability bugs got run down: a port collision that made vpn-server unstartable on every hypervisor-connected board, and two tunnel-exemption bugs that left the VPN silently dead on common transport types. The dmsg deployment also split two servers onto new hosts. (The VPN router gets its own dedicated feature article — this daily covers the day&amp;rsquo;s router PRs at a normal pace and points you there for the full story.)&lt;/p&gt;</description></item><item><title>The Skywire VPN Router</title><link>https://blog.theskywirenetwork.net/posts/the-skywire-vpn-router/</link><pubDate>Wed, 22 Jul 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/the-skywire-vpn-router/</guid><description>&lt;p&gt;Running a VPN has always been a per-device chore. You install a client on the laptop, another on the phone, a third on the tablet, and you hope the smart TV and the game console — which won&amp;rsquo;t run a client at all — simply do without. Skywire&amp;rsquo;s &lt;code&gt;vpn-client&lt;/code&gt; was no different: it protects the one machine it runs on, and nothing else on the network.&lt;/p&gt;
&lt;p&gt;Today&amp;rsquo;s release, &lt;strong&gt;v1.3.88&lt;/strong&gt;, changes the unit of protection from a device to a &lt;em&gt;network&lt;/em&gt;. The new &lt;strong&gt;&lt;code&gt;vpn-router&lt;/code&gt;&lt;/strong&gt; app turns a spare Linux board — a skyminer, a Raspberry Pi, any SBC with two network interfaces — into a plug-in privacy router. Everything behind it, wired or wireless, gets an address by DHCP and has its traffic NAT&amp;rsquo;d into the Skywire mesh VPN, with &lt;strong&gt;no per-device configuration&lt;/strong&gt;. The phone that joins its WiFi doesn&amp;rsquo;t know Skywire exists; it just has a different public IP.&lt;/p&gt;</description></item><item><title>Skywire Development Update — July 21, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-07-21/</link><pubDate>Tue, 21 Jul 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/dev-update-2026-07-21/</guid><description>&lt;p&gt;Two of today&amp;rsquo;s fixes were the kind that take a service down or make it lie. One was a nil-dereference in &lt;code&gt;IsRoot()&lt;/code&gt; that, on the static musl release binary, crash-looped every &lt;code&gt;skywire&lt;/code&gt; command from &lt;code&gt;init()&lt;/code&gt; — and had already taken the main hypervisor offline behind a wall of 502s. The other was the reward JSON endpoints returning each visor&amp;rsquo;s raw bandwidth byte count where the SKY amount should have been, so the hypervisor UI showed a visor&amp;rsquo;s 13-SKY reward as over a million. Alongside those, the VPN-router app finally got a config surface so it can be enabled the normal way, a wasm deep-link overlay stopped spinning against a visor that was already connected, and a routine vendor bump picked up a secp256k1 allocation win. That win came from the skycoin monorepo, where the ECmult precomp tables moved onto the stack for ~41% fewer bytes per ECDH.&lt;/p&gt;</description></item><item><title>Skywire Development Update — July 20, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-07-20/</link><pubDate>Mon, 20 Jul 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/dev-update-2026-07-20/</guid><description>&lt;p&gt;Two threads ran through today. One was operational safety: updating a visor over its own dmsgpty had been quietly dangerous, because &lt;code&gt;autoconfig&lt;/code&gt; ends by restarting the service — which kills the pty session and the in-flight update along with it — so a &lt;code&gt;--no-restart&lt;/code&gt; flag now lets the restart happen out-of-band as the last step. The other was closing config gaps: a v1.3.85 regression had silently emptied every visor&amp;rsquo;s country code, the skycoin-web wallet gained a serve toggle and a full capability-gated custody model, and an audit of the &lt;code&gt;skywire.conf&lt;/code&gt; template turned up eight documented-nowhere knobs plus a hypervisor address filed under the wrong heading. In the skycoin monorepo the wallet&amp;rsquo;s status bar learned the node&amp;rsquo;s chain identity and its node settings escaped the wizard guard, and the SkyDEX exchange engine moved in — domain logic in skycoin, skywire wrapping only the transport.&lt;/p&gt;</description></item><item><title>Skywire Development Update — July 19, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-07-19/</link><pubDate>Sun, 19 Jul 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/dev-update-2026-07-19/</guid><description>&lt;p&gt;Today&amp;rsquo;s work was all plumbing, down in the layer where dmsg carries HTTP and CXO fans roots out to subscribers. A production profile of dmsg-discovery told the story that started it: the service was sitting at ~84% CPU with garbage collection burning most of it, and nearly three-quarters of every allocation traced to noise handshakes — because the net/http-free HTTP client dialed a brand-new dmsg stream on every single call and told the server to close it. That got fixed. So did a stall on the CXO broadcast path where a well-meant optimization had quietly serialized every publisher behind one encode, a build-breaking piece of dead code that kept the darwin and windows CI jobs permanently red, and a flaky test that had been miscounting an async register. The skycoin monorepo spent the day in the same layer, cutting the memory a large transaction history costs — streaming the API response and paging the GUI view — plus a round of dependency maintenance.&lt;/p&gt;</description></item><item><title>Skywire Development Update — July 18, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-07-18/</link><pubDate>Sat, 18 Jul 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/dev-update-2026-07-18/</guid><description>&lt;p&gt;Yesterday&amp;rsquo;s multicoin rework made the embedded wallet route every coin&amp;rsquo;s requests through the visor — but only the browser-tab wasm visor had ever actually been driven in a browser, so the native hypervisor-served wallet had a latent gap that surfaced today: skycoin-web&amp;rsquo;s Angular HttpClient issues its requests over &lt;code&gt;XMLHttpRequest&lt;/code&gt;, and the native shim only intercepted &lt;code&gt;fetch&lt;/code&gt;. Fixing that unblocked the create-wallet selectors, which needed a matching skycoin-web change to fill in. The day closed with an efficiency fix in the transport-discovery CXO node, where broadcasting a large root to hundreds of subscribers was re-encoding it once per subscriber. The matching skycoin-web change — the one that fills those newly-reachable create-wallet selectors — landed in the skycoin monorepo the same day.&lt;/p&gt;</description></item><item><title>Skywire Development Update — July 17, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-07-17/</link><pubDate>Fri, 17 Jul 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/dev-update-2026-07-17/</guid><description>&lt;p&gt;A big day, in the way that days get big when a production fire and a milestone feature land in the same twenty-four hours. A dmsg dependency bump had quietly flipped a default that took the data plane down fleet-wide, and undoing that sat next to a public-visor init stall it had exposed — two fixes that had to ship together. Alongside the firefighting: the browser visor finally got a small body, compiled under TinyGo and shipped next to the standard-Go blob; a brand-new app turned a visor into a WiFi router that puts a whole LAN onto the mesh with no client software; a leaked-connection deadlock deep in the transport-discovery CXO node got traced and broken; and the default binary shed about 44 MB with no loss of function. A stack of wallet, diagnostic, and CI hygiene work rounds it out. In the skycoin monorepo, the wallet&amp;rsquo;s pre-unlock disclaimer got the honest rewrite that the visor&amp;rsquo;s onboarding tour then folded in.&lt;/p&gt;</description></item><item><title>Skywire Development Update — July 16, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-07-16/</link><pubDate>Thu, 16 Jul 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/dev-update-2026-07-16/</guid><description>&lt;p&gt;The discovery and transport-discovery hosts had been running hot — 124% CPU, load hovering around 7 — and the culprit turned out to be the fleet talking to itself too eagerly. A dmsg server re-registers its discovery entry every time a client session comes or goes, and under a busy server that innocent bookkeeping was amplifying into a handshake storm that thrashed the discovery&amp;rsquo;s garbage collector. Today&amp;rsquo;s work bounds the amplifier at both ends. In the skycoin monorepo, two follow-ons to yesterday&amp;rsquo;s TinyGo build shrank the binary to its intended size and greened the lint checks after the upstream merge.&lt;/p&gt;</description></item><item><title>Skywire Development Update — July 15, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-07-15/</link><pubDate>Wed, 15 Jul 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/dev-update-2026-07-15/</guid><description>&lt;p&gt;A quiet, sharp-edged day: a pair of concurrency races that had been hiding inside the skynet server and the cxo Filler got pulled out of a larger exchange-engine branch and fixed on their own, so the reliability work wouldn&amp;rsquo;t have to wait on the bigger review. Both bugs were the same shape — a goroutine registering work on a &lt;code&gt;WaitGroup&lt;/code&gt; at the exact moment another goroutine was tearing the whole thing down — and both are the kind of race that stays invisible until a CI runner or a production visor happens to interleave the two just so. In the skycoin monorepo the day was all about making a TinyGo build of the node real and shippable — porting the web wallet off gin, embedding the wasm that matches the toolchain, colored help without &lt;code&gt;text/template&lt;/code&gt;, and a release job that actually produces a TinyGo archive.&lt;/p&gt;</description></item><item><title>Skywire Development Update — July 14, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-07-14/</link><pubDate>Tue, 14 Jul 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/dev-update-2026-07-14/</guid><description>&lt;p&gt;Today began with an audit of the transport bandwidth pipeline and found the rolled-up totals inflating throughput by roughly two — every network and per-visor aggregate had been reading a legacy combined field that summed both edges of a transport, each of which independently reports the full throughput. Fixing that read-side math corrected the dashboards immediately. A second transport-discovery bug explained why a freshly-booted visor&amp;rsquo;s routes 404&amp;rsquo;d for the first half-minute: the shared route-finder index was only refreshed on a 30-second ticker, so a new visor&amp;rsquo;s feed simply wasn&amp;rsquo;t subscribed yet — now it subscribes the moment the connection lands. Alongside the correctness work, transports gained a direction — every transport was originated by one side, and that in-versus-out distinction now shows in both the CLI and the hypervisor node list — the BTC-over-mesh gateway got its final blockers cleared and a health surface, and the wasm-visor&amp;rsquo;s auto-update became reliable enough to actually move connected tabs onto new builds. In the skycoin monorepo the same day cleared two of the daemon&amp;rsquo;s last TinyGo blockers — the real HTTPS API and the explorer — and landed the electrum and wallet-health source changes behind the gateway&amp;rsquo;s new connection surface.&lt;/p&gt;</description></item><item><title>Skywire Development Update — July 13, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-07-13/</link><pubDate>Mon, 13 Jul 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/dev-update-2026-07-13/</guid><description>&lt;p&gt;Yesterday the skycoin wallet became a hypervisor feature; today it grew teeth. Bitcoin now works in the mesh-served wallet — the browser has always done its own BTC key derivation, transaction building and signing, so all it ever lacked was chain data, and a small gateway that translates the wallet&amp;rsquo;s BTC calls to an Electrum backend supplies exactly that, keys and signatures never leaving the tab. That gateway landed natively and then in the browser tab, dialing clearnet Electrum servers over the mesh through a skysocks exit so the wallet&amp;rsquo;s chain queries are IP-anonymous. Around it, the wallet&amp;rsquo;s backend configuration — which had been reimplemented three separate times — collapsed into one shared &lt;code&gt;/wallet/config&lt;/code&gt; page that every surface embeds, complete with curated electrum-server dropdowns and skysocks-exit pickers. Skychat, meanwhile, shed its last loopback TCP port and became truly in-process, and a shared resolver bug that had quietly broken &lt;code&gt;.dmsg:port&lt;/code&gt; addresses everywhere got fixed. In the skycoin monorepo, the source-side changes the gateway vendors landed too — an electrum client and backend that take an injectable dialer, more lenient JSON-RPC error parsing, and a skycoin-web wallet that keeps a no-password seed across a refresh and can encrypt it with a password at creation.&lt;/p&gt;</description></item><item><title>Skywire Development Update — July 12, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-07-12/</link><pubDate>Sun, 12 Jul 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/dev-update-2026-07-12/</guid><description>&lt;p&gt;The browser and the native visor kept converging on the hypervisor UI today. The skycoin wallet — which had been a browser-tab feature — became something the native visor serves too, at the same same-origin &lt;code&gt;/wallet/&lt;/code&gt; path, proxying the node API over dmsg on the server side exactly as the browser proxies it in-tab; so the wallet is now a hypervisor &lt;em&gt;feature&lt;/em&gt;, available with no separate process and no port, on either kind of visor. The browser tab, in turn, gained the apps-management surface and an &amp;ldquo;about&amp;rdquo; entry it had been missing, and the whole wallet configuration story got a proper panel. Underneath the features, a real node-list hang got fixed, and two reference documents landed.&lt;/p&gt;</description></item><item><title>Skywire Development Update — July 11, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-07-11/</link><pubDate>Sat, 11 Jul 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/dev-update-2026-07-11/</guid><description>&lt;p&gt;Yesterday&amp;rsquo;s coin-node discovery had a destination in mind, and today it arrived: a skycoin wallet that runs inside a browser tab, with its keys and wallets held entirely client-side and its only network traffic — the node API — routed over the encrypted mesh. It&amp;rsquo;s a direct substitute for the discontinued skycoin mobile wallets, needing no local full node and no clearnet. The same day, skycoin-web was folded into the visor&amp;rsquo;s internal-app model so it launches the same way everywhere, setting up the convergence between the host-native and browser paths.&lt;/p&gt;</description></item><item><title>Skywire Development Update — July 10, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-07-10/</link><pubDate>Fri, 10 Jul 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/dev-update-2026-07-10/</guid><description>&lt;p&gt;The day laid the groundwork for a skycoin wallet that runs in a browser tab with no full node and no clearnet. The pieces are a discovery contract — a generic &lt;code&gt;coin&lt;/code&gt; service type — plus the visor-side wiring that reverse-proxies a fibercoin node&amp;rsquo;s HTTP API over dmsg and advertises it only while it&amp;rsquo;s actually answering, and two follow-on fixes that came straight out of testing it live against a real node behind Caddy. Alongside the coin work, a large test-coverage pass closed the gaps an earlier audit had flagged across the WASM builds, the service APIs, and the hypervisor Web UI.&lt;/p&gt;</description></item><item><title>Skywire Development Update — July 9, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-07-09/</link><pubDate>Thu, 09 Jul 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/dev-update-2026-07-09/</guid><description>&lt;p&gt;A broad hardening day. The centerpiece was a subtle autoconnect bug that could silently stop a visor from ever building transports again — root-caused from a five-day-old goroutine dump on a live node. Around it, skychat&amp;rsquo;s federated groups grew the machinery to actually &lt;em&gt;converge&lt;/em&gt;: a receive-side roster reconciler, a roster broadcast so late joiners catch up, and genuine sender-side unsend. A &amp;ldquo;message me&amp;rdquo; deep-link, a Windows-installer upgrade fix, and a couple of infrastructure moves rounded it out.&lt;/p&gt;</description></item><item><title>Skywire Development Update — July 8, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-07-08/</link><pubDate>Wed, 08 Jul 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/dev-update-2026-07-08/</guid><description>&lt;p&gt;Yesterday voice landed as a working signaling-and-media engine that auto-answered every call with &lt;em&gt;silence&lt;/em&gt; — a deliberate placeholder while the real audio path and a consent flow were built. Today that placeholder came off: skychat voice became a call you can actually hear, with real microphone capture and playback, an Opus codec, an explicit-answer consent gate, and an in-call spectrogram that doubles as the terminal&amp;rsquo;s &amp;ldquo;see the audio&amp;rdquo; view — all still riding the encrypted skywire transport with no raw-internet ICE. Every new piece was built the same way the rest of skywire is: pure Go, no cgo, no system libraries to link, so the default build is untouched.&lt;/p&gt;</description></item><item><title>Skywire Development Update — July 7, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-07-07/</link><pubDate>Tue, 07 Jul 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/dev-update-2026-07-07/</guid><description>&lt;p&gt;A big day for skychat: the mesh messenger grew two features that make it a real communication tool rather than a text demo — &lt;strong&gt;file sharing&lt;/strong&gt; and &lt;strong&gt;real-time voice&lt;/strong&gt; — both built on the same principle that everything rides the encrypted skywire transport and nothing touches the clearnet. Underneath that, a memory leak that had been quietly bloating the transport-discovery server to 4 GB got root-caused and fixed, and the committed browser-visor blob finally got its bloated git history pruned. This post walks the arc: the leak, file sharing on native and in the browser tab, and the voice stack from RFC to a working call.&lt;/p&gt;</description></item><item><title>Skywire Development Update — July 6, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-07-06/</link><pubDate>Mon, 06 Jul 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/dev-update-2026-07-06/</guid><description>&lt;p&gt;A heavy day on the browser visor and the tooling around it. The wasm-visor stopped re-booting itself every time you opened a tab, learned to narrate its own connection process instead of flashing a scary error during the connection window, and — in its single-file form — was made to run straight from &lt;code&gt;file://&lt;/code&gt; again. The transport graph was wired to source its data over dmsg so the standalone tool works against the dmsg-only deployment, and its GPU view learned to group by country like the flat view. Underneath all of it, a connection leak that had grown the transport-discovery node&amp;rsquo;s heap to ~4GB was tracked down and fixed, and the hypervisor UI gained a group-chat interface.&lt;/p&gt;</description></item><item><title>Skywire Development Update — July 5, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-07-05/</link><pubDate>Sun, 05 Jul 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/dev-update-2026-07-05/</guid><description>&lt;p&gt;A day about spreading load fairly and seeing the network you actually have. The headline fix ends a load imbalance across the dmsg fleet that had been quietly making delegated services — including the reward system — intermittently unreachable, by matching each client to what a server can actually take. Alongside it, the transport-graph tooling caught up to the fleet&amp;rsquo;s newer transport types and gained a GPU-backed view that can finally draw the whole topology without freezing, and the in-tab browser learned to wait out a transient connection window instead of showing an error.&lt;/p&gt;</description></item><item><title>Skywire Development Update — July 4, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-07-04/</link><pubDate>Sat, 04 Jul 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/dev-update-2026-07-04/</guid><description>&lt;p&gt;A big day with a single unifying idea running under most of it: stop telling services what to do one imperative call at a time, and instead publish desired state and let them reconcile. The transport registry moves from HTTP register/delete calls — which spammed the discovery service with 429s under churn and shutdown — to a declarative model where a visor publishes its transport list over CXO and the transport-discovery reconciles against it. The standalone reward server gets the same treatment, reading CXO feeds instead of HTTP. On top of that: a clearnet-to-dmsg deep-link gateway, a much-improved visor switcher in the hypervisor UI, a guided tour, and a batch of packaging and tooling fixes.&lt;/p&gt;</description></item><item><title>Skywire Development Update — July 3, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-07-03/</link><pubDate>Fri, 03 Jul 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/dev-update-2026-07-03/</guid><description>&lt;p&gt;The browser wasm-visor had a structural flaw that no amount of UI polish could fix: it ran on the page&amp;rsquo;s main thread, so the moment it did anything slow — setting up a skysocks route, say — the whole tab froze. Event loop stalled, buttons dead, nothing repaints. Today moves the visor off the main thread entirely and into a dedicated Web Worker, which is the right fix but a disruptive one: WebRTC and IP self-reporting both break in a worker context and have to be re-plumbed. The other half of the day is a route-lifetime fix on the native side that keeps multihop routes from dying under a browser, and the v1.3.79 release.&lt;/p&gt;</description></item><item><title>Skywire Development Update — July 2, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-07-02/</link><pubDate>Thu, 02 Jul 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/dev-update-2026-07-02/</guid><description>&lt;p&gt;Skychat is the oldest app in the tree, and it shows: it grew ad-hoc over the years into several parallel implementations, more than one message model, two generations of group chat, and a handful of transports — each added when it was needed, none ever unified. Today opens the refactor that fixes that. It starts where a refactor should: a written RFC that names the problem, a first shared primitive extracted out of the duplication, and a concrete payoff — federated group chat running inside the browser wasm-visor, in a desktop-style chat window. This whole batch shipped together as &lt;strong&gt;&lt;code&gt;3362&lt;/code&gt;&lt;/strong&gt;.&lt;/p&gt;</description></item><item><title>Skywire Development Update — July 1, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-07-01/</link><pubDate>Wed, 01 Jul 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/dev-update-2026-07-01/</guid><description>&lt;p&gt;Today pushed the WASM visor toward being a full-fledged hypervisor in its own right. It gained the network-visualizer, skysocks-lite controls, and skychat that the native UI has, and — underneath — CXO was made to build and run inside a browser tab so a WASM visor can report its own transport telemetry to the TPD. Getting CXO to compile under &lt;code&gt;js/wasm&lt;/code&gt; meant splitting its on-disk storage behind a build tag.&lt;/p&gt;</description></item><item><title>Skywire Development Update — June 30, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-06-30/</link><pubDate>Tue, 30 Jun 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/dev-update-2026-06-30/</guid><description>&lt;p&gt;The theme today was cutting external dependencies out of the transport layer. dmsg gained the ability to serve secure WebSockets itself, obtaining its own certificate via Let&amp;rsquo;s Encrypt, so a dmsg server no longer needs a Caddy reverse proxy in front of it to reach browsers. WebTransport was folded onto the same unified transport port as the QUIC-based transport, and the hypervisor mini-desktop got a real window manager.&lt;/p&gt;
&lt;h3 id="skywire-built-in-secure-websockets"&gt;Skywire: Built-In Secure WebSockets&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;3356&lt;/code&gt;&lt;/strong&gt; feat(dmsg): optional built-in wss via Let&amp;rsquo;s Encrypt autocert (no Caddy required) lets a dmsg server terminate secure WebSockets on its own. Browsers on HTTPS pages can only open &lt;code&gt;wss://&lt;/code&gt; connections, and dmsg servers previously spoke plain WebSocket — so reaching them from a browser meant standing up Caddy (or another reverse proxy) in front of each server just to add TLS. This wires an autocert manager directly into the dmsg server: it obtains and renews a Let&amp;rsquo;s Encrypt certificate itself and serves &lt;code&gt;wss://&lt;/code&gt; natively, removing the reverse proxy from the deployment entirely.&lt;/p&gt;</description></item><item><title>Skywire Development Update — June 29, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-06-29/</link><pubDate>Mon, 29 Jun 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/dev-update-2026-06-29/</guid><description>&lt;p&gt;Packaging and configuration cleanup day. The Windows and Debian installers were fixed to run the right first-boot configuration step, the deployment config moved toward a single dmsg-only source of truth with the clearnet URLs stripped out, and the CLI stopped hardcoding clearnet help URLs in favor of ones sourced from the deployment. A raw-byte splice fix for the skynet web proxy and more mini-desktop UI work rounded it out.&lt;/p&gt;
&lt;h3 id="skywire-installers-run-the-right-autoconfig"&gt;Skywire: Installers Run the Right Autoconfig&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;3351&lt;/code&gt;&lt;/strong&gt; feat(win+autoconfig): Windows postinstall runs skywire autoconfig; autoconfig is PATH-independent fixes what a fresh Windows install does on first boot. The postinstall step now runs &lt;code&gt;skywire autoconfig&lt;/code&gt; — the correct, complete configuration entry point — and &lt;code&gt;autoconfig&lt;/code&gt; itself was made PATH-independent so it works regardless of where the installer placed the binary or whether the shell environment has been set up yet. &lt;strong&gt;&lt;code&gt;3349&lt;/code&gt;&lt;/strong&gt; fix(deb): postinstall runs skywire autoconfig, not skywire-cli visor gen-config applies the same correction to the Debian package, which had been calling the lower-level &lt;code&gt;gen-config&lt;/code&gt; directly and missing the surrounding setup that &lt;code&gt;autoconfig&lt;/code&gt; performs.&lt;/p&gt;</description></item><item><title>Skywire Development Update — June 28, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-06-28/</link><pubDate>Sun, 28 Jun 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/dev-update-2026-06-28/</guid><description>&lt;p&gt;A quieter day spent turning the hypervisor UI into an actual browser. The native and WASM hypervisors both grew a virtual browser for reaching skynet and clearnet sites through the visor, and the two front-ends were brought onto the same shared code so they stop diverging. Alongside that, a rewards accounting fix closed a bonus-splitting loophole, and a couple of small transport and skychat fixes landed.&lt;/p&gt;
&lt;h3 id="skywire-a-browser-inside-the-hypervisor"&gt;Skywire: A Browser Inside the Hypervisor&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;3340&lt;/code&gt;&lt;/strong&gt; feat(visor): skynet/clearnet virtual browser in the native HV UI (shared browse.js) brings the browsing surface that already existed in the WASM hypervisor into the native hypervisor UI, and — importantly — does it by sharing a single &lt;code&gt;browse.js&lt;/code&gt; between the two front-ends. Both hypervisors now drive the same fetch-and-render logic, so a fix or feature in one lands in the other for free instead of being re-implemented and drifting apart.&lt;/p&gt;</description></item><item><title>Skywire Development Update — June 27, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-06-27/</link><pubDate>Sat, 27 Jun 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/dev-update-2026-06-27/</guid><description>&lt;p&gt;Yesterday gave the browser visor plain-WebSocket reachability; today&amp;rsquo;s problem is that a browser visor served over HTTPS &lt;em&gt;can&amp;rsquo;t&lt;/em&gt; open a &lt;code&gt;ws://&lt;/code&gt; connection — the browser blocks the mixed-content downgrade, and public dmsg servers only speak plain WebSocket. The fix is a two-stage bootstrap: connect over &lt;code&gt;wss://&lt;/code&gt; just long enough to get onto the network, then hand off to WebTransport for the real session. That handoff drove a cleanup of the whole transport-type taxonomy, and around it the wasm visor kept filling in native parity — an in-process skychat, served peer interfaces, its own routing tab — while the hypervisor UI learned to tell a browser visor apart from a native one at a glance.&lt;/p&gt;</description></item><item><title>Skywire Development Update — June 26, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-06-26/</link><pubDate>Fri, 26 Jun 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/dev-update-2026-06-26/</guid><description>&lt;p&gt;A dense day of transport-layer work, all pointed at one goal: letting a visor that runs entirely inside a browser tab reach the rest of the network — and letting the rest of the network reach it back. Browsers can&amp;rsquo;t open raw sockets, so a wasm visor is confined to the transports the browser exposes: WebSocket and WebTransport. Today&amp;rsquo;s changes teach the address-resolver to advertise those endpoints, teach native visors to dial them, fold a WebSocket listener onto the existing stcpr port so &lt;em&gt;every&lt;/em&gt; visor is reachable by a browser without opening a new port, and then wire the wasm visor to autoconnect over both. The result is a browser tab that discovers public visors and dials them the same way a native visor does.&lt;/p&gt;</description></item><item><title>Skywire Development Update — June 25, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-06-25/</link><pubDate>Thu, 25 Jun 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/dev-update-2026-06-25/</guid><description>&lt;p&gt;Where the previous day proved a browser tab could act as a visor, this one made the native and in-tab visors share the code that makes them work — so they stop drifting apart. The centerpiece is &lt;em&gt;visorcore&lt;/em&gt;: a set of refactors that pull service resolution, the register-before-serve dmsg invariant, and router construction into one shared assembly used by both backends. Around it, the dmsg client learned to register seeded edge clients correctly so a browser visor actually appears in discovery, a WebSocket transport was unified onto the dmsg-server&amp;rsquo;s main port, and &lt;code&gt;hv serve&lt;/code&gt; grew the ability to serve the wasm-visor with the browse/host overlay. This post traces the convergence, the discovery fixes it depended on, the WebSocket unification, and the serving path.&lt;/p&gt;</description></item><item><title>Skywire Development Update — June 24, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-06-24/</link><pubDate>Wed, 24 Jun 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/dev-update-2026-06-24/</guid><description>&lt;p&gt;A day spent turning the browser tab into a full participant in the network. The wasm-visor gained a standard-Go &lt;code&gt;js/wasm&lt;/code&gt; build that unlocks the real &lt;code&gt;crypto/tls&lt;/code&gt; and &lt;code&gt;net/http&lt;/code&gt; stacks inside the tab, a yamux RPC bridge so &lt;code&gt;skywire cli&lt;/code&gt; can drive that tab exactly as it drives a native visor, the route-origination machinery a visor needs to actually reach the mesh, and a shared browse/host engine for loading dmsg-hosted sites in-page. The blob that carries all of this now ships embedded in the binary by default. This post follows the arc from build toolchain, to control plane, to browsing, to distribution.&lt;/p&gt;</description></item><item><title>Skywire Development Update — June 23, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-06-23/</link><pubDate>Tue, 23 Jun 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/dev-update-2026-06-23/</guid><description>&lt;p&gt;Yesterday the visor learned to run in a browser tab; today it learned to talk to peers the way a browser can and to serve the dmsg web from inside the tab. Three threads ran in parallel. The first is WebRTC as a genuine Skywire transport — added natively with pion, given a browser carrier that can both dial and accept, and turned on by default so any visor accepts every transport type it&amp;rsquo;s capable of. The second is the unified transport port: a reworking of how a visor binds its listeners so that multiple transport types can share a single TCP or UDP socket, shrinking the visor&amp;rsquo;s port footprint. The third closes the wasm-visor story from the day before — a browser tab can now fetch content over dmsg, render a dmsg site in a sandboxed iframe, and even self-host content that other nodes fetch back.&lt;/p&gt;</description></item><item><title>Skywire Development Update — June 22, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-06-22/</link><pubDate>Mon, 22 Jun 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/dev-update-2026-06-22/</guid><description>&lt;p&gt;Today the visor learned to compile under TinyGo, and then to assemble itself inside a browser tab. This is the build-out of the wasm-visor: a real Skywire visor — router, transport manager, app server, and a hypervisor UI — running entirely in-browser as WebAssembly, reachable and routable over the same network as a native node. Getting there meant porting one subsystem at a time to a toolchain that has no &lt;code&gt;net/http&lt;/code&gt;, no &lt;code&gt;net/rpc&lt;/code&gt;, and no TCP ingress, then bolting the ported pieces together into a working &amp;ldquo;edge&amp;rdquo; visor and giving it browser-native ways to dial its peers. The day&amp;rsquo;s PRs read like a checklist of that ascent: package-by-package TinyGo compilation, a reflection-free gob RPC shim to replace &lt;code&gt;net/rpc&lt;/code&gt;, the edge assembly itself, and the first two visor-to-visor transports a browser can actually open — direct WebSocket and direct WebTransport.&lt;/p&gt;</description></item><item><title>Skywire Development Update — June 21, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-06-21/</link><pubDate>Sun, 21 Jun 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/dev-update-2026-06-21/</guid><description>&lt;p&gt;Two threads from the week converge into shippable artifacts today. The browser-hypervisor work reaches its natural endpoint: a single self-contained &lt;code&gt;hypervisor.html&lt;/code&gt; file, assembled by a generator, that inlines everything it needs to run a serverless visor UI from one artifact. And the embedded push clears a real milestone — the dmsg client now compiles under TinyGo for wasip1 and IoT targets, which meant extracting QUIC behind an interface and, along the way, catching two latent QUIC stream bugs. A wallet-like key ring for deterministic derived keys and a Windows test flake fix round out the day.&lt;/p&gt;</description></item><item><title>Skywire Development Update — June 20, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-06-20/</link><pubDate>Sat, 20 Jun 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/dev-update-2026-06-20/</guid><description>&lt;p&gt;With WebSocket and QUIC carriers landed the day before, today the browser finally becomes a first-class citizen of the mesh. A WASM dmsg client compiles and runs in a browser tab, and a serverless hypervisor UI runs entirely over dmsg — no clearnet, no hosting a control surface on a domain. A fourth dmsg carrier, WebTransport, lands alongside it for CA-free browser reach. Underneath, the discovery layer sheds the last of its plain-HTTP fallbacks so that discovery is now strictly dmsg, and the TinyGo logging groundwork is generalized in preparation for an embedded dmsg port.&lt;/p&gt;</description></item><item><title>Skywire Development Update — June 19, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-06-19/</link><pubDate>Fri, 19 Jun 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/dev-update-2026-06-19/</guid><description>&lt;p&gt;The day the transport layer grew two new legs and finished a long-running one. Two efforts landed side by side: a fresh push to give dmsg more ways onto the wire — carrying dmsg sessions over both WebSocket and QUIC — and the final assembly of the multi-year &amp;ldquo;faithful UDP&amp;rdquo; work (issue #2607), where UDP semantics are preserved end to end instead of being papered over by a reliable stream. QUIC ties the two together: it brings native datagrams that faithful UDP can ride on directly, and it becomes a first-class skynet transport in its own right. A slimmer end-to-end test harness and a cleaner split between the hypervisor&amp;rsquo;s web UI and its RPC round out the day.&lt;/p&gt;</description></item><item><title>Skywire Development Update — June 18, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-06-18/</link><pubDate>Thu, 18 Jun 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/dev-update-2026-06-18/</guid><description>&lt;p&gt;The most important day in a while, and it started with the network down. The dmsg-only convergence work of the prior days, combined with a fleet-wide redeploy, walked straight into a &lt;strong&gt;cold-start bootstrap trap&lt;/strong&gt;: every dmsg-server was waiting on a registration that could only succeed once &lt;em&gt;another&lt;/em&gt; server was already accepting — a circular dependency where nobody could be first, so the whole fleet stayed down even though every binary was healthy. Untangling it took a chain of fixes that each peeled back one layer of the trap, and once the network was back up, a multi-agent code audit of the v1.3.72–76 dmsg changes turned up a long tail of leaks, races, and &amp;ldquo;looks-healthy-but-can&amp;rsquo;t-relay&amp;rdquo; failure modes — all fixed the same day, culminating in the v1.3.76 release. This post traces the arc: the outage, the root cause, the audit, and a hard-fail defense against silent post-quantum downgrades.&lt;/p&gt;</description></item><item><title>Skywire Development Update — June 17, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-06-17/</link><pubDate>Wed, 17 Jun 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/dev-update-2026-06-17/</guid><description>&lt;p&gt;The big structural change of the day was collapsing the visor&amp;rsquo;s two same-key dmsg clients into one — and the bumpy path it took to land. The visor had been running a discovery client and a direct client under the same public key, and because dmsg servers evict by newest-session-wins, the two were quietly evicting each other on every shared server: a continuous self-eviction storm measured at tens of session-deaths per minute per server. The fix went in, got reverted when it surfaced a fatal re-entrant deadlock, and was re-applied with the deadlock fixed. Around that headline: a clutch of resolving-proxy alias features (including a clickable &lt;code&gt;home.dmsg&lt;/code&gt; directory page), a redis-starvation fix in service discovery, a dmsg-server config simplification, and the noise-fork PQ design doc catching up to the code.&lt;/p&gt;</description></item><item><title>Skywire Development Update — June 16, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-06-16/</link><pubDate>Tue, 16 Jun 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/dev-update-2026-06-16/</guid><description>&lt;p&gt;The headline is post-quantum cryptography landing in the Noise handshake. Over three pull requests — a design sketch, a self-contained crypto layer, and the live wiring — skywire&amp;rsquo;s encrypted transports gained a hybrid X25519 + ML-KEM-768 key agreement, with no new round trips, no flag to flip, and full backward compatibility with peers that haven&amp;rsquo;t updated. Around it: an end-of-month docs refresh of the reward rules to match the current dmsg-only deployment, two transport-reliability changes aimed at dead-edge detection (OS-level keepalive and a local-route-calc preference for disjoint mux legs), and the migration off the frozen noise fork that made the PQ work possible in the first place.&lt;/p&gt;</description></item><item><title>Skywire Development Update — June 15, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-06-15/</link><pubDate>Mon, 15 Jun 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/dev-update-2026-06-15/</guid><description>&lt;p&gt;A short but consequential day, with two changes that each close a gap the old code couldn&amp;rsquo;t see. The router gains a per-leg end-to-end liveness probe, so a multiplexed route whose path dies &lt;em&gt;beyond&lt;/em&gt; the first hop is detected and dropped instead of silently black-holing traffic. And the rewards regional-saturation formula is reworked so that running more visors at a country&amp;rsquo;s IP grows the country&amp;rsquo;s pot proportionally rather than freezing it at the single-visor amount — fixing a case where adding visors actively diluted everyone&amp;rsquo;s reward.&lt;/p&gt;</description></item><item><title>Skywire Development Update — June 14, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-06-14/</link><pubDate>Sun, 14 Jun 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/dev-update-2026-06-14/</guid><description>&lt;p&gt;A day of grounding the dmsg-only default in reality: as the network leans harder on the overlay, the failure modes that used to be masked by a plain-HTTP fallback now have to be fixed properly. Two of them were boot-and-reconnect wedges — a dmsg-only visor that spun forever trying to reach the transport-discovery, and a SUDPH client that retried a closed socket until it gave up. Alongside those, a new &lt;code&gt;inject_pk&lt;/code&gt; mode makes forwarded websites HTTP-aware (the backend finally learns &lt;em&gt;who&lt;/em&gt; is connecting), the router&amp;rsquo;s setup-failure diagnostics are made panic-safe and then richer, and a couple of CLI/UI papercuts get smoothed.&lt;/p&gt;</description></item><item><title>Skywire Development Update — June 13, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-06-13/</link><pubDate>Sat, 13 Jun 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/dev-update-2026-06-13/</guid><description>&lt;p&gt;A day that follows the plain-HTTP retirement to its logical conclusion: if deployment services live on the overlay, you need a clean way to &lt;em&gt;see&lt;/em&gt; them from a browser without a clearnet hop — and that way is the resolving SOCKS5 proxy. The headline work makes those &lt;code&gt;.dmsg&lt;/code&gt; / &lt;code&gt;.skynet&lt;/code&gt; proxies smarter: a visor asked for &lt;em&gt;its own&lt;/em&gt; key now short-circuits in-process instead of dialing a wasteful round-trip back to itself, and a configurable alias lets &lt;code&gt;skywire.dmsg&lt;/code&gt; mean &amp;ldquo;the local visor&amp;rsquo;s landing page.&amp;rdquo; Around it: the CLI finally drops its dead plain-HTTP fallback (the resolver is the supported replacement), a discovery-side timeout-and-hang fix on &lt;code&gt;/uptimes?v=v3&lt;/code&gt;, a self-healing &lt;code&gt;--direct&lt;/code&gt; route for control-plane forwards, and the real fix for a dmsg-discovery CPU storm that had been pinning the service for hours.&lt;/p&gt;</description></item><item><title>Skywire Development Update — June 12, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-06-12/</link><pubDate>Fri, 12 Jun 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/dev-update-2026-06-12/</guid><description>&lt;p&gt;The headline is persistent pty sessions: the hypervisor web terminal can now drop, reconnect, and rebind to the &lt;em&gt;same&lt;/em&gt; shell with its missed output replayed — built up across four self-contained phases so the concurrency-critical core was validated before anything touched the host&amp;rsquo;s hot path. Around it, a receive-side route-setup race gets fixed by parking frames instead of dropping them; the CLI stops silently serving stale cache data when you asked for fresh; minimal visor configs finally seed the direct-service entries they need to reach TPD over dmsg; the web terminal works for sub-hypervisor visors; and &lt;code&gt;reward lookup&lt;/code&gt; and &lt;code&gt;hv ls --load&lt;/code&gt; give operators two new windows over dmsg.&lt;/p&gt;</description></item><item><title>Skywire Development Update — June 11, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-06-11/</link><pubDate>Thu, 11 Jun 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/dev-update-2026-06-11/</guid><description>&lt;p&gt;A day spent making things recover from failure instead of silently wedging on it. skysocks-client&amp;rsquo;s reconnect loop finally fires on the failure that matters most — a route group torn down router-side without an EOF — and interactive pty terminals stop dying every two minutes of idle. Underneath, a sustained adversarial audit during a live deploy-churn window turned up a string of churn-exposed leaks, races, a crash, and a transport-eviction bug that was breaking routes for minutes at a time. Plus a &lt;code&gt;--cascade&lt;/code&gt; config flag so operators can opt into the source-driven route setup, and a documented hook for restarting out-of-tree services after an auto-update.&lt;/p&gt;</description></item><item><title>Skywire Development Update — June 10, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-06-10/</link><pubDate>Wed, 10 Jun 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/dev-update-2026-06-10/</guid><description>&lt;p&gt;A heavy day on two fronts. The first is the dmsg server: it stops booting on plain HTTP entirely — building its transit client before the server, registering and resolving strictly over dmsg, falling back to the embedded deployment config when no block is set, and self-updating its embedded server list over dmsg — and it gains a way for a &lt;em&gt;non-public&lt;/em&gt; server to be reachable inbound via signed peer announcements. The second is the adaptive routing arc for multiplexed proxies, which lands its full observable → manual → adaptive control loop: &lt;code&gt;mux-set&lt;/code&gt; to reconcile a leg-set, &lt;code&gt;mux-auto&lt;/code&gt; to prune toward a latency preset, and the GROW direction so a session re-grows lost redundancy. Around those, a long run of lifecycle-audit fixes hardened the router, transport, dmsg session, and CXO layers against leaks and races found during live deploy-churn.&lt;/p&gt;</description></item><item><title>Skywire Development Update — June 9, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-06-09/</link><pubDate>Tue, 09 Jun 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/dev-update-2026-06-09/</guid><description>&lt;p&gt;A day of sharpening the tools you measure and operate the network with. The route-finder learns to hand back per-hop latency so a client can rank routes without re-probing them; the &lt;code&gt;proxy mux-info&lt;/code&gt; view gains a live throughput-and-share readout so you can see what a multiplexed session is actually delivering right now; and the CLI takes another step off the plain-HTTP edge of the deployment services. Underneath that, two leaks and a race get root-caused — a CXO publisher heap leak that was OOM-looping the transport-discovery in hours, and a router data race that turned out to be the real cause of the linux CI failures.&lt;/p&gt;</description></item><item><title>Skywire Development Update — June 8, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-06-08/</link><pubDate>Mon, 08 Jun 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/dev-update-2026-06-08/</guid><description>&lt;p&gt;A day with two threads running in parallel: making multihop route setup tolerate the network&amp;rsquo;s churn instead of failing on it, and giving the resolving proxy real source-routing power. The route-setup work adds a per-hop id-reservation retry on transient dmsg-202 and replaces dmsgweb&amp;rsquo;s reconnect storm with a single client. The resolver work lets you name a dmsg rendezvous server or an exact transport path right in the hostname — pinning how a &lt;code&gt;.dmsg&lt;/code&gt; or &lt;code&gt;.skynet&lt;/code&gt; address is reached. Around them: latency-weighted route selection becomes the finder&amp;rsquo;s default, debug logs and pprof get consolidated onto one dmsg port, and a third CXO goroutine leak is closed.&lt;/p&gt;</description></item><item><title>Skywire Development Update — June 7, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-06-07/</link><pubDate>Sun, 07 Jun 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/dev-update-2026-06-07/</guid><description>&lt;p&gt;The day the dmsg session lifecycle finally got fixed — the change that was the real root cause behind &amp;ldquo;dmsg error 202&amp;rdquo; and the per-hop coin flip that made multihop route setup unreliable for months. Newest-session-wins replaces a lifecycle that rejected healthy reconnects and clung to half-dead corpses. Alongside it: bounding the mux-bandwidth RTT probe so it can&amp;rsquo;t hang the run, and a hypervisor UI pass that adds a DMSG-server IP column, fixes text contrast, and declutters the skynet forms.&lt;/p&gt;</description></item><item><title>Skywire Development Update — June 6, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-06-06/</link><pubDate>Sat, 06 Jun 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/dev-update-2026-06-06/</guid><description>&lt;p&gt;A day spent unsticking the things that quietly leak, wedge, or fall back to plain HTTP. The headline is a dmsg-only fix for the blank hypervisor network tab — a casualty of the new default config — alongside a setup-node connection pool that stopped handing out dead connections and a CXO goroutine leak that was dragging whole hosts down. Around them: the rewards calc sourcing uptime from the transport-gated tracker, and the &lt;code&gt;got&lt;/code&gt; CLI learning to actually use its SOCKS5 proxy.&lt;/p&gt;</description></item><item><title>Skywire Development Update — June 5, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-06-05/</link><pubDate>Fri, 05 Jun 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/dev-update-2026-06-05/</guid><description>&lt;p&gt;A big day the day after a release, and the dominant thread is multihop route setup again — but this time with a hard, pragmatic pivot. Live A/B testing showed the new source-driven cascade installs routes whose control plane succeeds on every hop yet whose &lt;em&gt;data plane&lt;/em&gt; doesn&amp;rsquo;t carry traffic, so the default flips back to legacy direct-dial route setup while the cascade&amp;rsquo;s data-plane bug is chased down, with the dial loop hardened to walk more candidate intermediates and a mux that now self-heals its degree in the background. Around it: a benevolent bandwidth-spreading routing-policy preset, a TPD fix that keeps both edges of an expired transport (worth ~half the network&amp;rsquo;s bandwidth rewards), a launcher fix that had the skysocks- and vpn-clients dead on arrival, a synchronous bbolt integrity walk that stops ARM boards crash-looping, the ssh/sshd/sshfs commands unified under &lt;code&gt;cli pty&lt;/code&gt;, and a clutch of CXO, skychat, and logserver ergonomics.&lt;/p&gt;</description></item><item><title>Programmable Routing Policy: Skylark and WASM</title><link>https://blog.theskywirenetwork.net/posts/programmable-routing-policy/</link><pubDate>Thu, 04 Jun 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/programmable-routing-policy/</guid><description>&lt;p&gt;Skywire&amp;rsquo;s router has, over the last month, become genuinely capable. It builds &lt;strong&gt;multihop&lt;/strong&gt; routes through chosen intermediates, fans a flow across &lt;strong&gt;multiplexed&lt;/strong&gt; parallel routes, keeps those routes &lt;strong&gt;disjoint&lt;/strong&gt; (no shared middle hop), routes the forward and reverse legs &lt;strong&gt;asymmetrically&lt;/strong&gt;, and &lt;strong&gt;ranks candidates by measured per-hop latency&lt;/strong&gt;. That&amp;rsquo;s a rich mechanism.&lt;/p&gt;
&lt;p&gt;But a mechanism needs a policy. &lt;em&gt;Which&lt;/em&gt; of those capabilities applies to a given flow — how many routes, how many hops, through which countries, rotated how often — was, until recently, a decision hardwired in Go. If you wanted your VPN traffic to take a different path than your chat traffic, or to avoid transiting a particular jurisdiction, or to fan across four disjoint paths during the workday and collapse to one at night, you patched the router.&lt;/p&gt;</description></item><item><title>Route Setup Over Transports: The Source-Driven Cascade</title><link>https://blog.theskywirenetwork.net/posts/source-driven-cascade-route-setup/</link><pubDate>Thu, 04 Jun 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/source-driven-cascade-route-setup/</guid><description>&lt;p&gt;To carry traffic across the skywire overlay, a multihop route has to be &lt;em&gt;built&lt;/em&gt;: each visor along the path needs a routing rule telling it which transport to forward a packet onto next. Installing those rules has, until now, been the job of a &lt;strong&gt;route-setup node&lt;/strong&gt; (RSN) — a dedicated service that, given a route, reaches out to every hop and writes the rule.&lt;/p&gt;
&lt;p&gt;The way it reached each hop was the problem. The RSN dialed each visor &lt;strong&gt;over dmsg&lt;/strong&gt;. And dmsg reachability is not the same thing as &lt;em&gt;route&lt;/em&gt; reachability. A visor can be perfectly alive on its transports — its stcpr and sudph links up, forwarding packets fine — while its dmsg session has quietly gone half-dead (an older build with an undetected zombie session, a relay that dropped it). The RSN would try to dial that hop over dmsg, time out, and the whole route setup would fail — even though every transport the route actually needs is working.&lt;/p&gt;</description></item><item><title>Skychat: Group Messaging on a Peer-to-Peer Mesh</title><link>https://blog.theskywirenetwork.net/posts/skychat-group-messaging/</link><pubDate>Thu, 04 Jun 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/skychat-group-messaging/</guid><description>&lt;p&gt;Skychat is the chat application that ships with skywire — direct messages and group conversations between visors. It is also, quietly, one of the best stress tests the project has. A group chat exercises almost everything underneath it at once: the encrypted transport mesh, the CXO data layer that synchronizes shared state, presence and reconnection, and the unforgiving question every messaging system eventually faces — when you send a message, does it actually &lt;em&gt;arrive&lt;/em&gt;?&lt;/p&gt;</description></item><item><title>Skywire Development Update — June 4, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-06-04/</link><pubDate>Thu, 04 Jun 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/dev-update-2026-06-04/</guid><description>&lt;p&gt;A big day, the day after a release. v1.3.64 shipped, and then the work turned to the thing that had been making multihop routes unreliable for months: &lt;strong&gt;route setup&lt;/strong&gt;. The headline is a redesign of how routing rules get installed — the route-setup node stops dialing every hop over dmsg and becomes a pure signing oracle, with the source injecting the signed rules down the route&amp;rsquo;s own transports. That gets &lt;a href="https://blog.theskywirenetwork.net/posts/source-driven-cascade-route-setup/"&gt;its own article&lt;/a&gt;; it took five pull requests and a lot of live debugging to land working end-to-end. Around it: a sudph reliability fix so visors recover after an address-resolver restart, a route-finding correctness fix, two new standalone diagnostic tools (a dmsg probe and a skywire-native sshfs), the &lt;code&gt;cli version&lt;/code&gt; command, and a handful of post-release cleanups.&lt;/p&gt;</description></item><item><title>Skywire Development Update — June 3, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-06-03/</link><pubDate>Wed, 03 Jun 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/dev-update-2026-06-03/</guid><description>&lt;p&gt;A day about taking plain HTTP off the critical path. With the overlay&amp;rsquo;s reliability and egress now in good shape, the default generated config drops the plain-HTTP service-discovery fallback — services are reached over the peer-to-peer overlay (dmsg today, skynet transports by design). Plain HTTP now survives only as a compatibility shim for custom deployments; on the public network it&amp;rsquo;s headed for the door entirely. Getting there safely meant draining &amp;ldquo;ghost&amp;rdquo; transports at the source, cutting the transport-discovery&amp;rsquo;s egress with gzip + caching, and bounding a runaway CXO goroutine spawn. Plus the Windows installer is fixed and v1.3.64 is prepared.&lt;/p&gt;</description></item><item><title>Skywire Development Update — June 2, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-06-02/</link><pubDate>Tue, 02 Jun 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/dev-update-2026-06-02/</guid><description>&lt;p&gt;A routing-reliability day, and two releases. The router gets a run of hardening — one hop&amp;rsquo;s failure no longer tears down the whole route, a cluster of panics and races are guarded, and a multiplexed-route stall is fixed. The dmsg-first client stops a bad HTTP fallback, the hypervisor starts forwarding browser-side UI errors into the visor log (where they&amp;rsquo;re actually visible), and v1.3.62 / v1.3.63 ship.&lt;/p&gt;
&lt;h3 id="skywire-router--dont-let-one-hop-sink-the-route"&gt;Skywire: Router — Don&amp;rsquo;t Let One Hop Sink the Route&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;2976&lt;/code&gt; fix(router): stop one hop&amp;rsquo;s failure from RST-ing the whole route (setup cascade)&lt;/strong&gt; — during route setup, a single hop failing could cascade into a reset of the entire route. Now a hop failure is contained, so the rest of the route survives and can be repaired rather than torn down wholesale. This is the kind of fix that turns &amp;ldquo;the route flaps when any intermediate hiccups&amp;rdquo; into &amp;ldquo;the route tolerates a hiccup.&amp;rdquo;&lt;/p&gt;</description></item><item><title>Skywire Development Update — June 1, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-06-01/</link><pubDate>Mon, 01 Jun 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/dev-update-2026-06-01/</guid><description>&lt;p&gt;The standalone chat path reaches its purest form: CXO-backed group messaging over &lt;strong&gt;native TCP, peer-to-peer, with no dmsg involved at all&lt;/strong&gt; — just two public keys and an encrypted transport between them. Plus transitive hypervisor trust, a per-server service health check, and a cluster of router and CXO fixes (one of which we&amp;rsquo;ll revisit later in the month).&lt;/p&gt;
&lt;h3 id="skywire-standalone-skychat--cxo-over-native-tcp-no-dmsg"&gt;Skywire: Standalone Skychat — CXO Over Native TCP, No DMSG&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;2950&lt;/code&gt; feat(skychat): CXO-backed messaging over native TCP in standalone (P2P, no dmsg)&lt;/strong&gt; — the standalone chat app can now run its CXO-backed group messaging directly over a noise-encrypted native-TCP connection between peers, with &lt;strong&gt;no dmsg layer at all&lt;/strong&gt;. Each instance is identified by its public key; the noise handshake encrypts the link; CXO feeds carry the messages. Two (or more) peers point at each other&amp;rsquo;s &lt;code&gt;pk@host:port&lt;/code&gt; and have a working, encrypted, public-key-authenticated group — no visor, no router, no dmsg server, no discovery service.&lt;/p&gt;</description></item><item><title>Skywire Development Update — May 31, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-05-31/</link><pubDate>Sun, 31 May 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/dev-update-2026-05-31/</guid><description>&lt;p&gt;A short day, mostly routing-policy ergonomics: the policy&amp;rsquo;s rotation callbacks get richer inputs, and the proxy and VPN clients learn to take a &lt;code&gt;--routing-policy&lt;/code&gt; directly on the command line.&lt;/p&gt;
&lt;h3 id="skywire-routing-policy--richer-rotation-cli-wiring"&gt;Skywire: Routing Policy — Richer Rotation, CLI Wiring&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;2938&lt;/code&gt; feat(router/policy): expose leg byte counters and hop chain to rotation callbacks&lt;/strong&gt; — a policy&amp;rsquo;s rotation callback now receives the per-leg byte counters and the hop chain. A rotation policy can make decisions on real data — &amp;ldquo;this leg has moved very little traffic&amp;rdquo; or &amp;ldquo;this path runs through an intermediate I want to avoid&amp;rdquo; — rather than rotating blindly on a timer.&lt;/p&gt;</description></item><item><title>Skywire Development Update — May 30, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-05-30/</link><pubDate>Sat, 30 May 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/dev-update-2026-05-30/</guid><description>&lt;p&gt;A light day. The node survey learns to report CPU details on the hardware skywire actually runs on — ARM single-board computers and Windows — and the &lt;code&gt;hv ls&lt;/code&gt; listing gains multi-section output with aligned columns.&lt;/p&gt;
&lt;h3 id="skywire-survey--cpu-info-on-the-real-hardware"&gt;Skywire: Survey — CPU Info on the Real Hardware&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;2934&lt;/code&gt; feat(survey): internalize zcalusic/sysinfo + populate CPU on ARM SBCs and Windows&lt;/strong&gt; — the node survey (the hardware/OS inventory a visor reports) internalizes the &lt;code&gt;zcalusic/sysinfo&lt;/code&gt; library and fills in CPU details on the platforms where it was previously blank: ARM single-board computers (the Raspberry-Pi-class hardware much of the network runs on) and Windows. Internalizing the dependency also means the survey isn&amp;rsquo;t at the mercy of an external library&amp;rsquo;s platform gaps — the code that needs fixing is in-tree.&lt;/p&gt;</description></item><item><title>Skywire Development Update — May 29, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-05-29/</link><pubDate>Fri, 29 May 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/dev-update-2026-05-29/</guid><description>&lt;p&gt;The routing-policy work keeps building. Yesterday&amp;rsquo;s Starlark policies gain a &lt;strong&gt;WASM backend&lt;/strong&gt; (a compiled, language-agnostic alternative to the Starlark interpreter), the operator-facing name &lt;strong&gt;&amp;ldquo;skylark&amp;rdquo;&lt;/strong&gt;, periodic route &lt;strong&gt;rotation&lt;/strong&gt;, a hypervisor-UI panel to manage it, and runtime per-app hot-swap. Underneath, the router&amp;rsquo;s mux loop gets a best-effort + local-fallback path, and the CXO node sheds a long-standing accept-path serialization bottleneck. Two releases, v1.3.60 and v1.3.61, go out.&lt;/p&gt;
&lt;h3 id="skywire-routing-policy--wasm-backend-rotation-and-skylark"&gt;Skywire: Routing Policy — WASM Backend, Rotation, and &amp;ldquo;Skylark&amp;rdquo;&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;2913&lt;/code&gt; feat(router/policy): WASM backend for routing policies&lt;/strong&gt; — alongside the Starlark interpreter, policies can be compiled to &lt;strong&gt;WASM&lt;/strong&gt; and run through a WASM backend. Starlark is the readable, write-it-inline option; WASM is the compile-it-from-any-language, run-it-fast option. The router can evaluate either.&lt;/p&gt;</description></item><item><title>Skywire Development Update — May 28, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-05-28/</link><pubDate>Thu, 28 May 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/dev-update-2026-05-28/</guid><description>&lt;p&gt;The headline feature of the week lands: &lt;strong&gt;operator-programmable routing policy&lt;/strong&gt;. Skywire&amp;rsquo;s router already does multihop, multiplexed, latency-ranked, asymmetric path selection — but &lt;em&gt;which&lt;/em&gt; path a given flow takes was hardwired in Go. Today that decision becomes a program the operator writes, in &lt;strong&gt;Starlark&lt;/strong&gt; (a small, sandboxed, Python-like language), evaluated per dial. A flow can be steered onto disjoint paths, pinned by 5-tuple, made latency-adaptive, prioritized by DSCP, or forced onto the overlay — by policy, not by patch.&lt;/p&gt;</description></item><item><title>Skywire Development Update — May 27, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-05-27/</link><pubDate>Wed, 27 May 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/dev-update-2026-05-27/</guid><description>&lt;p&gt;A big structural day. Two long-running refactors converge: the &lt;strong&gt;unified app framework&lt;/strong&gt; (#2775) names the implicit contract every skywire app has been following and starts folding the built-in services into it, and the &lt;strong&gt;pty rename&lt;/strong&gt; finishes de-coupling the pty subsystem from dmsg — &lt;code&gt;pkg/dmsg/dmsgpty&lt;/code&gt; becomes &lt;code&gt;pkg/pty&lt;/code&gt;, because the pty runs over dmsg, skynet, tcp, &lt;em&gt;or&lt;/em&gt; http, and the name should say so. Plus the pair-binary collapse and a round of hypervisor-cache tuning that produces two patch releases.&lt;/p&gt;</description></item><item><title>Skywire Development Update — May 26, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-05-26/</link><pubDate>Tue, 26 May 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/dev-update-2026-05-26/</guid><description>&lt;p&gt;A refactoring-heavy day with one clear goal: make the visor config generator &lt;strong&gt;compile to WASM under TinyGo&lt;/strong&gt;, so the install-command generator page can build a real config in the browser from the live flag set. That meant surgically removing &lt;code&gt;net/http&lt;/code&gt; and &lt;code&gt;encoding/json&lt;/code&gt; from the config-gen build graph and hand-rolling a streaming JSON serializer. Alongside, the skypty-over-skynet listener gets the fixes that make it actually start and accept connections.&lt;/p&gt;
&lt;h3 id="skywire-a-wasm-clean-config-generator"&gt;Skywire: A WASM-Clean Config Generator&lt;/h3&gt;
&lt;p&gt;The install-command generator lifts skywire&amp;rsquo;s own &lt;code&gt;autoconfig&lt;/code&gt; flag set into a browser form via a TinyGo-compiled WASM blob — so the flags shown always match the binary. To generate a &lt;em&gt;config&lt;/em&gt; in the browser (not just assemble a command line), the config generator itself has to compile under TinyGo, which is strict about what packages it accepts. Today does that surgery.&lt;/p&gt;</description></item><item><title>Skywire Development Update — May 25, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-05-25/</link><pubDate>Mon, 25 May 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/dev-update-2026-05-25/</guid><description>&lt;p&gt;The CLI&amp;rsquo;s connection to a visor gets unified around one idea: address a visor by its &lt;strong&gt;public key&lt;/strong&gt; and reach it over whichever transport works. &lt;code&gt;--rpc&lt;/code&gt; and &lt;code&gt;--via&lt;/code&gt; now accept both &lt;code&gt;dmsg://&amp;lt;pk&amp;gt;&lt;/code&gt; and &lt;code&gt;skynet://&amp;lt;pk&amp;gt;&lt;/code&gt;, the dmsg and skynet bridges fold into a single RPC surface, and &lt;code&gt;--via skynet://&lt;/code&gt; works end to end. The control plane gets the same both-transports-are-first-class treatment the data plane already had — plus self-healing for degraded dmsg.&lt;/p&gt;</description></item><item><title>Skywire Development Update — May 24, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-05-24/</link><pubDate>Sun, 24 May 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/dev-update-2026-05-24/</guid><description>&lt;p&gt;The management plane starts moving onto the overlay. Visor↔hypervisor RPC and the pty session can now &lt;strong&gt;auto-upgrade to skynet&lt;/strong&gt; — carrying control traffic over skywire&amp;rsquo;s own routed transports rather than only over dmsg. The pty UI gets a &lt;code&gt;skypty-ui&lt;/code&gt; rebrand, the installers get a round of fixes (and the groundwork for generating the config at install time), and two patch releases go out.&lt;/p&gt;
&lt;h3 id="skywire-management-over-skynet"&gt;Skywire: Management Over Skynet&lt;/h3&gt;
&lt;p&gt;Control traffic — the RPC a hypervisor uses to drive a visor, and the pty session an operator opens into it — has historically ridden dmsg. Today it learns to ride the routed overlay too.&lt;/p&gt;</description></item><item><title>Skywire Development Update — May 23, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-05-23/</link><pubDate>Sat, 23 May 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/dev-update-2026-05-23/</guid><description>&lt;p&gt;A heavy day, and a release. The routing layer learns &lt;strong&gt;asymmetric, latency-ranked&lt;/strong&gt; path selection — forward and reverse legs can carry different route counts and minimum hops, and candidates are ranked by measured per-hop latency rather than picked arbitrarily. Transport discovery becomes &lt;strong&gt;CXO-aware&lt;/strong&gt;: local route calculation reads the transport graph from the CXO feed before reaching for HTTP. The hypervisor gains real &lt;strong&gt;drill-down&lt;/strong&gt; — proxying RPC through a sub-hypervisor to manage visors nested behind it — plus runtime management commands. And it all ships as &lt;strong&gt;v1.3.54&lt;/strong&gt;.&lt;/p&gt;</description></item><item><title>Skywire Development Update — May 22, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-05-22/</link><pubDate>Fri, 22 May 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/dev-update-2026-05-22/</guid><description>&lt;p&gt;A small, consolidating day. The &lt;code&gt;--min-hops&lt;/code&gt; constraint finishes its journey through the app dial chain, ping gets a hard timeout, and a subtle CXO prefix-matching bug gets fixed.&lt;/p&gt;
&lt;h3 id="skywire-min-hops-through-the-app-dial-chain"&gt;Skywire: Min-Hops Through the App Dial Chain&lt;/h3&gt;
&lt;p&gt;The minimum-hop-count constraint — force a dial onto the overlay rather than letting it take a direct shortcut — needs to be honored all the way from the app down to the router. Today closes the last gaps.&lt;/p&gt;</description></item><item><title>Skywire Development Update — May 21, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-05-21/</link><pubDate>Thu, 21 May 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/dev-update-2026-05-21/</guid><description>&lt;p&gt;A routing-correctness day. The local-route calculator gets a proper N-hop BFS so multi-hop local routes are found deterministically and honor a minimum hop count, and the mux-bandwidth and ping paths get a round of race fixes and failure-surfacing so the measurements are trustworthy.&lt;/p&gt;
&lt;h3 id="skywire-local-routing--deterministic-n-hop-bfs"&gt;Skywire: Local Routing — Deterministic N-Hop BFS&lt;/h3&gt;
&lt;p&gt;When a route can be assembled from transports the visor already knows about (without consulting the route-finder service), it does so locally. That local calculation needed to be both correct and deterministic.&lt;/p&gt;</description></item><item><title>Skywire Development Update — May 20, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-05-20/</link><pubDate>Wed, 20 May 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/dev-update-2026-05-20/</guid><description>&lt;p&gt;The multiplexed-routing work gets serious about &lt;em&gt;measurement&lt;/em&gt;. A new &lt;code&gt;StreamMuxBandwidth&lt;/code&gt; RPC and a &lt;code&gt;cli mux-bw&lt;/code&gt; command — with a live TUI dashboard — turn &amp;ldquo;route a flow over N disjoint paths&amp;rdquo; into measured throughput, queueing delay, and an idle baseline. The &lt;code&gt;DialOptions&lt;/code&gt; grow disjoint-mux and intermediate-exclusion controls so the paths can be forced apart. Alongside, a round of hypervisor-UI fixes and a couple of router correctness fixes.&lt;/p&gt;
&lt;h3 id="skywire-multiplexed-bandwidth--measure-the-disjoint-paths"&gt;Skywire: Multiplexed Bandwidth — Measure the Disjoint Paths&lt;/h3&gt;
&lt;p&gt;If multiplexed routing is the headline capability, it needs to be measurable. Today builds the instrument.&lt;/p&gt;</description></item><item><title>Skywire Development Update — May 19, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-05-19/</link><pubDate>Tue, 19 May 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/dev-update-2026-05-19/</guid><description>&lt;p&gt;A shorter day, with three through-lines: the &lt;code&gt;ping tree&lt;/code&gt; diagnostic moves to a server-side gRPC stream, parallel multiplexed-route dialing gets a &lt;code&gt;--routes&lt;/code&gt; knob (and a CI harness to assert on it), and the storage layer learns to &lt;strong&gt;auto-recover from bbolt corruption&lt;/strong&gt; instead of crash-looping on it.&lt;/p&gt;
&lt;h3 id="skywire-ping-tree--server-side-streaming"&gt;Skywire: Ping-Tree — Server-Side Streaming&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;ping tree&lt;/code&gt; view — which walks the route tree to a destination and times each hop — moves its heavy lifting server-side.&lt;/p&gt;</description></item><item><title>Skywire Development Update — May 18, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-05-18/</link><pubDate>Mon, 18 May 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/dev-update-2026-05-18/</guid><description>&lt;p&gt;Two foundational threads today. The big one is &lt;strong&gt;IPv6 dual-stack&lt;/strong&gt; — issue #1525 lands across the schema, the address resolver, the dmsg-server advertisement, and a Happy-Eyeballs dialer, in a tidy phased rollout. The other is the &lt;strong&gt;standalone skychat&lt;/strong&gt; path: a noise-TCP direct connection (encrypted, public-key-addressed) plus a &lt;code&gt;--standalone&lt;/code&gt; mode that runs the chat app with no visor process behind it — just the encrypted connection and a pubkey identity. Plus the usual CXO/pairing reconnect hardening and the start of a CI mux-route probe.&lt;/p&gt;</description></item><item><title>Skywire Development Update — May 17, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-05-17/</link><pubDate>Sun, 17 May 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/dev-update-2026-05-17/</guid><description>&lt;p&gt;Two threads dominate today. First, skychat&amp;rsquo;s &lt;strong&gt;pairing&lt;/strong&gt; path — direct, one-to-one CXO-backed messaging — gets its own baseline tests and CLI surface, sitting alongside the group path. Second, the skychat-group gossip model shifts to an &lt;strong&gt;admin-aggregator, full-mesh&lt;/strong&gt; topology with signed mutations and signed leaf messages, dropping the older admin-mirror feed scheme. Underneath, a cluster of CXO node/skyobject/cxds fixes, and dmsgpty&amp;rsquo;s MultiDialer grows a &lt;strong&gt;skynet&lt;/strong&gt; listener and dialer — pty reaching a peer over skywire&amp;rsquo;s own p2p transports, not only dmsg.&lt;/p&gt;</description></item><item><title>Skywire Development Update — May 16, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-05-16/</link><pubDate>Sat, 16 May 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/dev-update-2026-05-16/</guid><description>&lt;p&gt;A heavy reliability day. The skychat-group work keeps closing the gap between &amp;ldquo;a message was sent&amp;rdquo; and &amp;ldquo;a message was delivered&amp;rdquo; — a fresh wave of per-layer drop counters and per-peer last-inbound surfaces make the receive path observable, while signed roster/admin gossip and history-replay-beyond-the-ring harden it. Underneath, the CXO node and treestore get a cluster of restart- and rejoin-robustness fixes, the hypervisor gains a nested-visor &lt;em&gt;tree&lt;/em&gt; view (backend + UI), and dmsgpty starts a two-phase dialer refactor.&lt;/p&gt;</description></item><item><title>Faithful UDP-Over-Skynet</title><link>https://blog.theskywirenetwork.net/posts/faithful-udp-over-skynet/</link><pubDate>Fri, 15 May 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/faithful-udp-over-skynet/</guid><description>&lt;p&gt;Skywire has always carried TCP traffic well. Route groups are reliable, ordered, head-of-line-blocked on packet loss — exactly the contract &lt;code&gt;net.Conn&lt;/code&gt; callers expect. That&amp;rsquo;s the right shape for HTTP, SSH, raw TCP forwarding, and almost everything else apps reach for by default.&lt;/p&gt;
&lt;p&gt;But real-world UDP applications — DNS, NTP, VoIP, gaming, QUIC, anything that has its own loss-tolerance built in — treat &lt;strong&gt;late packets as worse than lost packets&lt;/strong&gt;. A DNS resolver that retries after 100ms doesn&amp;rsquo;t want the original response to arrive 5 seconds later through a TCP-shaped tunnel. A VoIP codec that masks 20ms of lost audio doesn&amp;rsquo;t want all subsequent audio to wait while the lost packet retransmits. A gaming engine doesn&amp;rsquo;t want the world-state update from a frame ago — it wants the current update or nothing.&lt;/p&gt;</description></item><item><title>Skywire Development Update — May 15, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-05-15/</link><pubDate>Fri, 15 May 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/dev-update-2026-05-15/</guid><description>&lt;p&gt;The faithful-UDP arc lands. Five stacked PRs add UDP-over-skynet end to end: wire type, route group, per-datagram AEAD, the visor-side bridge for forwarded ports, and the app-API surface for &lt;code&gt;DialPacket&lt;/code&gt;. Plus a standalone &lt;code&gt;skyudp-bridge&lt;/code&gt; (sibling to skymail-bridge) and the next round of skychat-group reliability fixes — the cascade that produces the &lt;code&gt;subscriber_alive&lt;/code&gt; auto-recovery story.&lt;/p&gt;
&lt;h3 id="skywire-faithful-udp-over-skynet-stages-15"&gt;Skywire: Faithful UDP-Over-Skynet (Stages 1–5)&lt;/h3&gt;
&lt;p&gt;The architectural problem: skywire&amp;rsquo;s route groups have always been TCP-shaped — ordered, reliable, head-of-line-blocked on packet loss. Most real-world UDP traffic (DNS, NTP, VoIP, gaming, QUIC) treats late packets as worse than lost packets. Tunneling UDP through a TCP-shaped stream defeats the point.&lt;/p&gt;</description></item><item><title>Skymail-Bridge: Email Over Skywire</title><link>https://blog.theskywirenetwork.net/posts/skymail-bridge-email-over-skywire/</link><pubDate>Thu, 14 May 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/skymail-bridge-email-over-skywire/</guid><description>&lt;p&gt;Email is the oldest addressable identity on the internet, and it&amp;rsquo;s been outside Skywire&amp;rsquo;s reach since the project began. Today&amp;rsquo;s PR #2598 closes that gap: &lt;strong&gt;&lt;code&gt;skymail-bridge&lt;/code&gt;&lt;/strong&gt; — a sender-side SMTP bridge that lets an operator send email to and receive email from a Skywire identity, using the same Postfix machinery they already run.&lt;/p&gt;
&lt;h3 id="the-address-shape"&gt;The address shape&lt;/h3&gt;
&lt;p&gt;A Skywire identity is a 33-byte compressed secp256k1 public key. Base32-encoded (RFC 4648), that&amp;rsquo;s 52 characters — small enough to fit inside RFC 1035&amp;rsquo;s 63-octet DNS label limit, which is the hard constraint email addresses have to live within. Hex would be 66 characters and break.&lt;/p&gt;</description></item><item><title>Skywire Development Update — May 14, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-05-14/</link><pubDate>Thu, 14 May 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/dev-update-2026-05-14/</guid><description>&lt;p&gt;Largest day on develop in recent memory. Three big arcs land: &lt;strong&gt;federated send for group chat&lt;/strong&gt; (members publish to their own feeds instead of relaying through the owner), the &lt;strong&gt;admin-role + admin-mirror cascade&lt;/strong&gt;, and the &lt;strong&gt;skymail-bridge&lt;/strong&gt; for email-over-skywire. Plus a sweep of fixes to the per-peerSub liveness model from yesterday, the dmsgpty-via-visor-RPC routing, and specs cleanup.&lt;/p&gt;
&lt;h3 id="skywire-skychatgroup--federated-send"&gt;Skywire: Skychat/Group — Federated Send&lt;/h3&gt;
&lt;p&gt;PR #2580 inverts the v1 model. Pre-fix: only the owner published; members had to route through the owner&amp;rsquo;s relay listener (PR #2506). Post-fix: every member publishes to their own per-PK feed; other members subscribe to every other member&amp;rsquo;s feed.&lt;/p&gt;</description></item><item><title>Skywire Development Update — May 13, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-05-13/</link><pubDate>Wed, 13 May 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/dev-update-2026-05-13/</guid><description>&lt;p&gt;The day after the v1.3.53 ship: most of the work is on the chat-app&amp;rsquo;s subscriber-liveness model. Four flags collapse into one, and a watchdog plus a fan-out fix shake out the remaining false negatives on &lt;code&gt;subscriber_alive&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id="skywire-skychatgroup--unified-liveness-signal"&gt;Skywire: Skychat/Group — Unified Liveness Signal&lt;/h3&gt;
&lt;p&gt;PR #2537 is the cleanup: four separate liveness fields collapse into a single &lt;code&gt;lastInboundNs&lt;/code&gt; (atomic int64, set on every observable inbound event). The old fields were:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Session.subAlive bool&lt;/code&gt; — toggled on Connect / Close&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Session.lastHeartbeatNs&lt;/code&gt; — heartbeat-only signal&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Record.LastMessageAt&lt;/code&gt; — chat-only, persisted&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Record.Status&lt;/code&gt; — configuration state pulling double duty as health&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;They kept disagreeing. Each pair-wise disagreement got its own fix (PRs #2530–#2534 in this same arc) and the holistic answer was a single timestamp that&amp;rsquo;s &lt;em&gt;computed&lt;/em&gt; from events instead of stored in multiple places.&lt;/p&gt;</description></item><item><title>Skychat D1: Group Chat Over CXO</title><link>https://blog.theskywirenetwork.net/posts/skychat-d1-group-chat/</link><pubDate>Tue, 12 May 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/skychat-d1-group-chat/</guid><description>&lt;p&gt;Skychat got DM-shaped messaging years ago. Group chat is a different shape — multi-party, lossy-tolerant, with members joining and leaving — and it&amp;rsquo;s been an open feature gap. Today&amp;rsquo;s PR stack ships &lt;strong&gt;D1 group chat&lt;/strong&gt;: the first design iteration, owner-centric, riding on CXO feeds, with end-to-end encryption optional via per-group AES keys.&lt;/p&gt;
&lt;h3 id="the-d1-model"&gt;The D1 model&lt;/h3&gt;
&lt;p&gt;D1 picks the smallest viable shape that lets a group of people exchange messages reliably:&lt;/p&gt;</description></item><item><title>Skywire Development Update — May 12, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-05-12/</link><pubDate>Tue, 12 May 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/dev-update-2026-05-12/</guid><description>&lt;p&gt;A massive day for skychat. The chat-app gets group chat, encrypted DM, per-PK aliases, history replay, peer-receipt acks, a unified CLI TUI, and the dmsgscp utility — all merged today. v1.3.53 ships at the end.&lt;/p&gt;
&lt;h3 id="skywire-skychat-d1--group-chat-over-cxo"&gt;Skywire: Skychat D1 — Group Chat over CXO&lt;/h3&gt;
&lt;p&gt;PR #2505 introduces D1 group chat. The model: one member owns the group&amp;rsquo;s CXO feed and publishes messages; other members subscribe (read-only in v1; PR #2506 adds member-side relay).&lt;/p&gt;</description></item><item><title>Skywire Development Update — May 11, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-05-11/</link><pubDate>Mon, 11 May 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/dev-update-2026-05-11/</guid><description>&lt;h3 id="skywire-v1352--network-state--observability-release"&gt;Skywire: v1.3.52 — Network-State + Observability Release&lt;/h3&gt;
&lt;p&gt;PR #80c2fd2c1 cuts release v1.3.52, capping the network-state arc that ran from late April through last week. Headline items in the release:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;DHT removal in favor of CXO + HTTP discovery (#2459)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;pkg/services&lt;/code&gt; framework with single-process multi-service supervisor (#2464–#2472)&lt;/li&gt;
&lt;li&gt;Single-container CI e2e (#2471)&lt;/li&gt;
&lt;li&gt;CXO publishers on every authoritative source; CXO subscribers replacing HTTP polls across the visor and tpviz (#2456–#2463)&lt;/li&gt;
&lt;li&gt;dmsgfirst APIClient with HTTP fallback (#2433, #2441)&lt;/li&gt;
&lt;li&gt;Per-transport latency end-to-end (#2401)&lt;/li&gt;
&lt;li&gt;Transport uptime via CXO-driven heartbeats with minute granularity (#2426)&lt;/li&gt;
&lt;li&gt;Stats / serviceuptime / version provenance in local bbolt (#2428)&lt;/li&gt;
&lt;li&gt;WAN-reachable hypervisor-embedded dmsg + discovery proxy + terminal persistence (#2450)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The release lines up the network for the round of resilience and observability work landing this week.&lt;/p&gt;</description></item><item><title>Skywire Development Update — May 8, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-05-08/</link><pubDate>Fri, 08 May 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/dev-update-2026-05-08/</guid><description>&lt;p&gt;Today is a turning point. Two large arcs land on the same day: &lt;strong&gt;Kademlia DHT is removed from the codebase&lt;/strong&gt;, and the &lt;strong&gt;deployment services migrate onto a shared &lt;code&gt;pkg/services&lt;/code&gt; framework&lt;/strong&gt; that collapses nine deployment containers into one for CI e2e.&lt;/p&gt;
&lt;h3 id="skywire-dht-removed--cxo--http-discovery-wins"&gt;Skywire: DHT Removed — CXO + HTTP Discovery Wins&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;2459&lt;/code&gt; chore: remove the Kademlia DHT subsystem in favor of CXO + HTTP discovery&lt;/strong&gt; — the DHT shipped in late April was a sincere attempt at decentralized discovery. Two weeks of running it in production surfaced enough operational sharp edges (value-size limits, signature collision dedup, the difference between DHT and HTTP being a constant source of &amp;ldquo;which one is right&amp;rdquo; questions) that the project chose the simpler CXO-publisher / CXO-subscriber model instead.&lt;/p&gt;</description></item><item><title>Skywire Discovery: From DHT to CXO + HTTP</title><link>https://blog.theskywirenetwork.net/posts/skywire-discovery-cxo-over-dht/</link><pubDate>Fri, 08 May 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/skywire-discovery-cxo-over-dht/</guid><description>&lt;p&gt;Two weeks ago we shipped a Kademlia DHT as the decentralized discovery layer for Skywire — TPD, SD, and dmsg-discovery mirrored their authoritative data into it, visors could read from it as an alternative to HTTP, and the dmsg-servers ran full DHT nodes. The vision was that production services would gradually transition to bootstrapping points while the DHT carried the real load.&lt;/p&gt;
&lt;p&gt;Today we&amp;rsquo;re removing the DHT.&lt;/p&gt;
&lt;p&gt;The replacement isn&amp;rsquo;t a step back to centralized HTTP. It&amp;rsquo;s a different decentralization model — &lt;strong&gt;CXO publishers and subscribers&lt;/strong&gt; — that turns out to fit Skywire&amp;rsquo;s actual needs much better than a Kademlia DHT.&lt;/p&gt;</description></item><item><title>Skywire Development Update — May 7, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-05-07/</link><pubDate>Thu, 07 May 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/dev-update-2026-05-07/</guid><description>&lt;h3 id="skywire-dmsg-self-deadlock-fixes-under-dmsgfirst-path"&gt;Skywire: DMSG Self-Deadlock Fixes Under dmsgfirst Path&lt;/h3&gt;
&lt;p&gt;The dmsgfirst client introduced yesterday (PR #2433) surfaced a class of self-deadlocks in dmsg-discovery code paths. When a visor&amp;rsquo;s dmsg disc client runs over dmsg (instead of HTTP), and that client tries to fetch its own entry — or fetch an entry it needs to complete its own connect — the recursive call pattern can deadlock on the dmsg session lock.&lt;/p&gt;
&lt;p&gt;Four PRs land on the same day to plug them all:&lt;/p&gt;</description></item><item><title>Skywire Development Update — May 6, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-05-06/</link><pubDate>Wed, 06 May 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/dev-update-2026-05-06/</guid><description>&lt;h3 id="skywire-dmsg-discovery--dmsgfirst-apiclient"&gt;Skywire: dmsg-discovery — dmsgfirst APIClient&lt;/h3&gt;
&lt;p&gt;PR #2433 introduces a new shape for the discovery client: try dmsg first, fall back to HTTP. Pre-fix, every discovery client opened an HTTP connection over the clearnet TCP transport; visors behind aggressive firewalls but reachable over dmsg had to manually configure HTTP through a SOCKS5 proxy.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dmsgfirst.NewAPIClient&lt;/code&gt; wraps any of the discovery client interfaces. The first request tries the dmsg-http path (using the existing dmsghttp transport); if dmsg isn&amp;rsquo;t ready or the request fails with a transport-layer error, it falls back to plain HTTP. The fallback is sticky for the duration of the process — once HTTP wins, subsequent requests go straight to HTTP — so we don&amp;rsquo;t pay the dmsg-handshake cost on every call when dmsg is known-unreachable.&lt;/p&gt;</description></item><item><title>Skywire Development Update — May 4, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-05-04/</link><pubDate>Mon, 04 May 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/dev-update-2026-05-04/</guid><description>&lt;h3 id="skywire-transport-uptime--cxo-driven-heartbeats"&gt;Skywire: Transport Uptime — CXO-Driven Heartbeats&lt;/h3&gt;
&lt;p&gt;PR #2426 rewrites the transport uptime model from polled re-registration to event-driven heartbeats with slot-accurate timelines.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Pre-fix:&lt;/strong&gt; TPD inferred uptime from the timing of register/deregister and the 90-second TTL refresh. A transport that was up but lost its refresh window (slow network, brief TPD outage) showed up as &amp;ldquo;down&amp;rdquo; until the next refresh succeeded. The bitmap timeline had 90-second resolution and lots of false negatives.&lt;/p&gt;</description></item><item><title>Skywire Development Update — May 3, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-05-03/</link><pubDate>Sun, 03 May 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/dev-update-2026-05-03/</guid><description>&lt;h3 id="skywire-tpd-panic-loop--two-sources"&gt;Skywire: TPD Panic Loop — Two Sources&lt;/h3&gt;
&lt;p&gt;Production TPD was restarting every 30-40s (RestartCount 556 over 6h on the prod host) because two distinct panics tear down the process. Today&amp;rsquo;s PRs catch both, plus the residual nil-deref races they exposed.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;80fef7159&lt;/code&gt; Fix tpd panic loop: cxo Finc-to-negative + httputil short-write discriminator&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;pkg/cxo/skyobject/cache.go (*Cache).Finc:1189,1216&lt;/code&gt; — panic: &lt;code&gt;&amp;quot;Finc to negative for: &amp;lt;hash&amp;gt;&amp;quot;&lt;/code&gt;. The filling-refcount went below zero, likely a duplicate &lt;code&gt;Finc&lt;/code&gt; on a &lt;code&gt;Filler.incs&lt;/code&gt; map or an &lt;code&gt;Inc&lt;/code&gt;/&lt;code&gt;Finc&lt;/code&gt; mismatch across overlapping fillers. Hard process kill via panic. &lt;code&gt;Filler.apply&lt;/code&gt; / &lt;code&gt;Filler.reject&lt;/code&gt; already consume Finc&amp;rsquo;s error return and just log; surface the inconsistency through that path instead. Clamp &lt;code&gt;fc&lt;/code&gt; to 0, log the condition with key and the offending inc, and continue. Worst case is a leaked filling-item slot — orders of magnitude better than killing the service.&lt;/p&gt;</description></item><item><title>Skywire Development Update — May 2, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-05-02/</link><pubDate>Sat, 02 May 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/dev-update-2026-05-02/</guid><description>&lt;h3 id="skywire-forwarded-ports--arbitrary-targets"&gt;Skywire: Forwarded Ports — Arbitrary Targets&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;546730da6&lt;/code&gt; Forwarded ports/arbitrary target&lt;/strong&gt; (PR #2405) — raw-TCP forwarding for non-port-80 entries was hardcoded to &lt;code&gt;localhost:&amp;lt;localPort&amp;gt;&lt;/code&gt;. Now honors &lt;code&gt;fp.ProxyAddr&lt;/code&gt; at both the DMSG forwarder (&lt;code&gt;api_network.go&lt;/code&gt;) and the skynet sky-forwarding side (&lt;code&gt;init_services.go&lt;/code&gt;) so users can forward an arbitrary &lt;code&gt;host:port&lt;/code&gt; (e.g. a LAN service at &lt;code&gt;192.168.1.20:5432&lt;/code&gt;) over &lt;code&gt;.skynet&lt;/code&gt; / &lt;code&gt;.dmsg&lt;/code&gt; without running it on the visor.&lt;/p&gt;
&lt;p&gt;CLI:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;skywire cli serve add &amp;lt;p&amp;gt; --to host:port&lt;/code&gt; now accepts non-localhost hosts on every port (was rejected outside port 80).&lt;/li&gt;
&lt;li&gt;&lt;code&gt;skywire cli skynet port add --proxy-addr&lt;/code&gt; help text updated to reflect the broader meaning.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;UI:&lt;/p&gt;</description></item><item><title>Skywire Development Update — May 1, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-05-01/</link><pubDate>Fri, 01 May 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/dev-update-2026-05-01/</guid><description>&lt;h3 id="skywire-per-transport-latency-end-to-end"&gt;Skywire: Per-Transport Latency End-to-End&lt;/h3&gt;
&lt;p&gt;PR #2401 plumbs measured latency through every layer that touches a transport:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Visor → TPD&lt;/strong&gt; — the visor&amp;rsquo;s transport-level ping result (the new mechanism from PR #2317 that replaced RSN-based latency) is included in the transport register call. TPD persists the latency on the entry alongside type, label, and timing.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;TPD storage&lt;/strong&gt; — latency lives in the transport entry, queryable via the &lt;code&gt;GET /transports/edge:{pk}&lt;/code&gt; endpoint and surfaced through the DHT mirror.&lt;/p&gt;</description></item><item><title>Skywire Development Update — April 30, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-04-30/</link><pubDate>Thu, 30 Apr 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/dev-update-2026-04-30/</guid><description>&lt;h3 id="skywire-dht-address-mirror--self-publish"&gt;Skywire: DHT Address Mirror + Self-Publish&lt;/h3&gt;
&lt;p&gt;PR #2399 adds two pieces that close the loop on what visors can do over the DHT directly, without dmsg-discovery as a write path.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Self-publish&lt;/strong&gt; — every visor now mirrors its own DMSG entry into the DHT on the same cadence the dmsg-discovery sees in HTTP. The DHT target is SHA256(visorPK || &amp;ldquo;client&amp;rdquo;), the value is the full signed dmsg entry. A peer that wants to dial a visor can look up the entry from the DHT just like it would from dmsg-discovery — same shape, same signature verification.&lt;/p&gt;</description></item><item><title>Skywire Development Update — April 29, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-04-29/</link><pubDate>Wed, 29 Apr 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/dev-update-2026-04-29/</guid><description>&lt;h3 id="skywire-per-port-pk-whitelist-on-raw-tcp-skynet-and-dmsg"&gt;Skywire: Per-Port PK Whitelist on Raw-TCP Skynet and DMSG&lt;/h3&gt;
&lt;p&gt;PR #2395 closes a gap in the forwarded-port access-control model. The &lt;code&gt;ForwardedPort.Whitelist&lt;/code&gt; field already gated the port-80 HTTP reverse-proxy path (added with the landing page in PR #2317), but raw-TCP forwards on every other port bypassed the check entirely — any peer who knew the port could connect.&lt;/p&gt;
&lt;p&gt;The fix:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;serve&lt;/code&gt; command&amp;rsquo;s TCP forwarder (skynet path) consults the per-port whitelist before accepting an incoming connection. Source PK comes from the route group&amp;rsquo;s remote address.&lt;/li&gt;
&lt;li&gt;DMSG-side raw-TCP forwarder does the same lookup on its incoming dmsg streams.&lt;/li&gt;
&lt;li&gt;Reject path closes the conn immediately; no error frame, no acknowledgment that a port-with-this-number exists. From the rejected peer&amp;rsquo;s perspective, the port behaves identically to one that isn&amp;rsquo;t forwarded.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The CLI gains &lt;code&gt;serve whitelist&lt;/code&gt; to manage the per-port set:&lt;/p&gt;</description></item><item><title>Skychat Pairing: End-to-End Encryption + Consent</title><link>https://blog.theskywirenetwork.net/posts/skychat-pairing-e2e-encryption/</link><pubDate>Tue, 28 Apr 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/skychat-pairing-e2e-encryption/</guid><description>&lt;p&gt;Skychat — Skywire&amp;rsquo;s built-in messaging app — had been a &amp;ldquo;best-effort&amp;rdquo; DM system since it shipped. Any peer who knew your public key could open a chat-app stream to you and send a message. Bodies traveled in cleartext on the wire (over Noise-encrypted transports, but with no app-layer secret of their own), and there was no mechanism to refuse a sender ahead of time. Today&amp;rsquo;s PR stack changes both of those: consent-gated pairing, plus end-to-end encrypted message bodies that the transport layer never sees in plaintext.&lt;/p&gt;</description></item><item><title>Skywire Development Update — April 28, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-04-28/</link><pubDate>Tue, 28 Apr 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/dev-update-2026-04-28/</guid><description>&lt;h3 id="skywire-skychat-pairing--end-to-end-encryption--consent"&gt;Skywire: Skychat Pairing — End-to-End Encryption + Consent&lt;/h3&gt;
&lt;p&gt;The biggest day for skychat: a five-PR stack that turns the chat app from &amp;ldquo;anyone with my PK can DM me&amp;rdquo; into a consent-based, end-to-end encrypted system.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;2379&lt;/code&gt; per-pair feed primitives + bolt store&lt;/strong&gt; — each accepted pairing gets its own CXO feed, indexed in a local bbolt store. The pair record carries the peer PK, the negotiated symmetric key, and an &lt;code&gt;Accepted | Declined | Pending&lt;/code&gt; state.&lt;/p&gt;</description></item><item><title>Skywire Development Update — April 27, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-04-27/</link><pubDate>Mon, 27 Apr 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/dev-update-2026-04-27/</guid><description>&lt;h3 id="skywire-visor-self-tracking-telemetry-on-cxo-treestore"&gt;Skywire: Visor Self-Tracking Telemetry on CXO TreeStore&lt;/h3&gt;
&lt;p&gt;PR #2359 moves per-visor telemetry off HTTP entirely and onto the CXO TreeStore. Every visor publishes its own self-tracking record — uptime, version, transport count, last seen — into a CXO feed it owns. The transport discovery becomes a CXO subscriber that aggregates the published feeds into the same shape the HTTP &lt;code&gt;/uptimes&lt;/code&gt; API used to serve directly.&lt;/p&gt;
&lt;p&gt;The payoff is twofold. First, telemetry no longer rides the HTTP TPD register path, so a slow or partitioned TPD doesn&amp;rsquo;t lose telemetry — visors keep publishing into their local CXO node and the aggregator catches up when reachable. Second, the aggregation is now pull-based instead of push-based: TPD reads from the canonical source (each visor&amp;rsquo;s own feed) rather than trusting whatever the HTTP register endpoint last accepted.&lt;/p&gt;</description></item><item><title>Skywire Development Update — April 26, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-04-26/</link><pubDate>Sun, 26 Apr 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/dev-update-2026-04-26/</guid><description>&lt;h3 id="skywire-dht-sequence-monotonicity-fix"&gt;Skywire: DHT Sequence Monotonicity Fix&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;d6732e3ea&lt;/code&gt; Fix DHT seq + self-probe endpoint&lt;/strong&gt; — two unrelated bugs surfacing in the same PR.&lt;/p&gt;
&lt;p&gt;The visor&amp;rsquo;s &lt;code&gt;dhtPublishLoop&lt;/code&gt; seeded &lt;code&gt;seq&lt;/code&gt; from the local in-memory store (which starts at 1 after restart), and the &lt;code&gt;tpd_adapter&lt;/code&gt; computed &lt;code&gt;seq&lt;/code&gt; from entry count + cumulative transport bandwidth (which resets on restart and drops on transport churn). Both produced non-monotonic seq values across visor restarts. DHT peers correctly rejected those &lt;code&gt;Put&lt;/code&gt; operations with &lt;code&gt;ErrSeqNotMonotonic&lt;/code&gt;, manifesting as repeated &lt;code&gt;'PutValue failed: dht: remote rejected put: dht: sequence number must increase'&lt;/code&gt; debug logs after every visor restart.&lt;/p&gt;</description></item><item><title>Skywire Development Update — April 25, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-04-25/</link><pubDate>Sat, 25 Apr 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/dev-update-2026-04-25/</guid><description>&lt;h3 id="skywire-production-performance-push"&gt;Skywire: Production Performance Push&lt;/h3&gt;
&lt;p&gt;A run of profile-driven optimizations targeting the deployment services. Every change came from a specific pprof or production-redis observation.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;5e9044141&lt;/code&gt; Setup-node porter watchdog&lt;/strong&gt; — standalone &lt;code&gt;Node.Serve&lt;/code&gt; was missing the &lt;code&gt;SweepStalePorterEntries&lt;/code&gt; loop the embedded RSN already runs. Production saw ~13 ports/min leaking, full ephemeral exhaustion (16,387 ports reserved) after ~20h of uptime, and ~1 GB of stranded &lt;code&gt;yamux.Stream&lt;/code&gt; objects parented by the porter map. Adds the same 60s sweep that drops entries older than 5 minutes.&lt;/p&gt;</description></item><item><title>Skywire Development Update — April 24, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-04-24/</link><pubDate>Fri, 24 Apr 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/dev-update-2026-04-24/</guid><description>&lt;h3 id="skywire-dht-mirror--full-transport-lists-per-edge"&gt;Skywire: DHT Mirror — Full Transport Lists Per Edge&lt;/h3&gt;
&lt;p&gt;PR #2334 fixes a fundamental flaw in how the transport discovery mirrored data to the DHT:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;The problem:&lt;/strong&gt; TPD&amp;rsquo;s DHT mirror wrote one &lt;code&gt;MutableItem&lt;/code&gt; per transport per edge, keyed by SHA256(edgePK || &amp;ldquo;tp&amp;rdquo;). Because multiple transports sharing the same edge resolved to the same target, each Mirror call overwrote the previous one. A visor that was an edge of 552 transports ended up with exactly 1 transport visible under its DHT target. Verified against production: 4,615 transports in HTTP discovery produced only 1,370 DHT items.&lt;/p&gt;</description></item><item><title>Skywire DHT: Decentralizing the Discovery Layer</title><link>https://blog.theskywirenetwork.net/posts/skywire-dht-decentralizing-discovery/</link><pubDate>Fri, 24 Apr 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/skywire-dht-decentralizing-discovery/</guid><description>&lt;p&gt;Skywire has always depended on centralized HTTP discovery services. When a visor wants to find another visor&amp;rsquo;s DMSG servers, it queries &lt;code&gt;dmsg-discovery&lt;/code&gt;. When it wants to know what transports are available, it queries &lt;code&gt;transport-discovery&lt;/code&gt;. When it wants to find a VPN or proxy, &lt;code&gt;service-discovery&lt;/code&gt;. These services are reliable and fast, but they&amp;rsquo;re single points of failure and they concentrate load on the deployment operator.&lt;/p&gt;
&lt;p&gt;Over the past week, we&amp;rsquo;ve been building and deploying a Kademlia DHT that will gradually replace these centralized services with peer-to-peer discovery. The production deployment is transitioning from the source of truth to a bootstrapping point and network observer.&lt;/p&gt;</description></item><item><title>Skynet: Port Forwarding, Website Hosting, and Direct Transport</title><link>https://blog.theskywirenetwork.net/posts/skywire-skynet-port-forwarding/</link><pubDate>Thu, 23 Apr 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/skywire-skynet-port-forwarding/</guid><description>&lt;p&gt;Over the past two weeks, Skynet went from a name and a concept to a working system. Every visor in the Skywire network can now host services — websites, APIs, custom applications — accessible to any other visor over the encrypted mesh, with no port forwarding on the router, no public IP address, and no DNS configuration.&lt;/p&gt;
&lt;h3 id="what-skynet-is"&gt;What Skynet Is&lt;/h3&gt;
&lt;p&gt;Skynet is Skywire&amp;rsquo;s application-layer port forwarding system. It lets a visor expose local TCP ports to the network, accessible via &lt;code&gt;.skynet&lt;/code&gt; domains through a resolving proxy. Think of it as a decentralized reverse proxy where the &amp;ldquo;internet&amp;rdquo; is the Skywire mesh.&lt;/p&gt;</description></item><item><title>Skywire Development Update — April 23, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-04-23/</link><pubDate>Thu, 23 Apr 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/dev-update-2026-04-23/</guid><description>&lt;h3 id="skywire-skynet-direct-transport"&gt;Skywire: Skynet Direct Transport&lt;/h3&gt;
&lt;p&gt;PR #2331 introduces the most significant optimization for skynet: &lt;strong&gt;direct transport forwarding bypasses route setup entirely.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;For visors that share a direct transport (STCPR or SUDPH), skynet port forwarding now uses &lt;code&gt;VStreamMux&lt;/code&gt; on route ID 0 with &lt;code&gt;SkynetForwardPacket&lt;/code&gt; type. No route setup node involved. No route descriptor conflicts. No ephemeral port exhaustion.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;How it works:&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;The skynetweb dialer checks if a direct transport exists to the destination PK&lt;/li&gt;
&lt;li&gt;If yes: opens a VStream directly over the transport (route ID 0)&lt;/li&gt;
&lt;li&gt;If no: falls back to &lt;code&gt;DialRoutes&lt;/code&gt; for multi-hop connections through the DMSG mesh&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The forwarding server accepts connections from both paths — route groups (existing) and VStream mux (new) — using the same &lt;code&gt;handleServerConn&lt;/code&gt; handler. The ready byte, ClientMsg handshake, and port dispatch are identical.&lt;/p&gt;</description></item><item><title>Skywire Development Update — April 22, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-04-22/</link><pubDate>Wed, 22 Apr 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/dev-update-2026-04-22/</guid><description>&lt;h3 id="skywire-dht-to-discovery-pusher"&gt;Skywire: DHT-to-Discovery Pusher&lt;/h3&gt;
&lt;p&gt;PR #2327/2328 closes the loop on DHT architecture: DMSG servers now push DHT writes back to the HTTP discovery services, enabling a smooth transition where visors can publish to the DHT only while the HTTP APIs stay in sync.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Store.SetOnPut&lt;/code&gt; callback&lt;/strong&gt; — fires after every successful DHT store operation (outside the lock). The DMSG server registers a callback that inspects the salt and forwards the entry to the appropriate HTTP discovery.&lt;/p&gt;</description></item><item><title>Skywire Development Update — April 21, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-04-21/</link><pubDate>Tue, 21 Apr 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/dev-update-2026-04-21/</guid><description>&lt;h3 id="skywire-dht-full-node-discovery-and-bulk-sync"&gt;Skywire: DHT Full Node Discovery and Bulk Sync&lt;/h3&gt;
&lt;p&gt;PR #2321 adds the infrastructure for DHT nodes to find each other and synchronize their data stores:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;GetItems RPC (method 5)&lt;/strong&gt; — new DHT RPC for bulk data sync. Supports salt filtering (dmsg, tp, svc) and sequence threshold for incremental sync. Paginated with limit + hasMore indicator. 30-second timeout for bulk transfers.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Full node advertisement&lt;/strong&gt; — full nodes publish their PK under salt &amp;ldquo;fullnode&amp;rdquo; every 5 minutes. &lt;code&gt;FindFullNodes()&lt;/code&gt; returns bootstrap peers as known full nodes. This lets any visor discover which peers have the complete dataset.&lt;/p&gt;</description></item><item><title>Skywire Development Update — April 20, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-04-20/</link><pubDate>Mon, 20 Apr 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/dev-update-2026-04-20/</guid><description>&lt;h3 id="skywire-dht-arrives--kademlia-implementation"&gt;Skywire: DHT Arrives — Kademlia Implementation&lt;/h3&gt;
&lt;p&gt;The biggest architectural change in Skywire since the DMSG merge: a full Kademlia DHT implementation that will replace the centralized HTTP discovery services. PR #2318 introduces the DHT in three phases.&lt;/p&gt;
&lt;h4 id="phase-1-core-dht-implementation-pkgdht"&gt;Phase 1: Core DHT Implementation (&lt;code&gt;pkg/dht&lt;/code&gt;)&lt;/h4&gt;
&lt;p&gt;A complete Kademlia DHT with BEP44 mutable data support, built from scratch:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;id.go&lt;/code&gt;&lt;/strong&gt; — 256-bit NodeID derived from SHA256 of the secp256k1 public key. XOR distance metric for routing decisions.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;bucket.go&lt;/code&gt;&lt;/strong&gt; — k-buckets (k=20) with a 256-bucket routing table. Standard Kademlia eviction: least-recently-seen evicted on full bucket, ping-first for live nodes.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;item.go&lt;/code&gt;&lt;/strong&gt; — MutableItem with secp256k1 sign/verify (using Skywire&amp;rsquo;s existing &lt;code&gt;cipher.SignPayload&lt;/code&gt;/&lt;code&gt;VerifyPubKeySignedPayload&lt;/code&gt;). Monotonic sequence numbers prevent replay.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;store.go&lt;/code&gt;&lt;/strong&gt; — thread-safe item store with TTL expiry and capacity eviction. Items are keyed by SHA256(pubkey || salt), allowing multiple namespaces per identity.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;rpc.go&lt;/code&gt;&lt;/strong&gt; — length-prefixed JSON wire protocol: Ping, FindNode, GetValue, PutValue.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;lookup.go&lt;/code&gt;&lt;/strong&gt; — iterative Kademlia lookup with alpha=3 concurrency. Standard approach: query closest-known nodes, refine until convergence.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;dht.go&lt;/code&gt;&lt;/strong&gt; — Node type with Put/Get, bootstrap, maintenance loop.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;mock_transport.go&lt;/code&gt;&lt;/strong&gt; — in-process &lt;code&gt;net.Pipe&lt;/code&gt; network for unit testing.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="phase-2-dmsg-transport-and-visor-integration"&gt;Phase 2: DMSG Transport and Visor Integration&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;dmsg_transport.go&lt;/code&gt;&lt;/strong&gt; — DHT transport over DMSG streams on port 100. Reuses existing DMSG sessions, so DHT adds zero new connections.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;init_dht.go&lt;/code&gt;&lt;/strong&gt; — visor init module: starts DHT after DMSG is ready.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;api_dht.go&lt;/code&gt;&lt;/strong&gt; — DHTStatus/DHTPut/DHTGet visor API methods.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;DHTConfig&lt;/code&gt;&lt;/strong&gt; in visor config: enable, bootstrap_pks, full_node flag.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="phase-3-discovery-adapter-and-hybrid-client"&gt;Phase 3: Discovery Adapter and Hybrid Client&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;disc_adapter.go&lt;/code&gt;&lt;/strong&gt; — implements the existing &lt;code&gt;disc.APIClient&lt;/code&gt; interface backed by DHT. &lt;code&gt;Entry&lt;/code&gt;/&lt;code&gt;PostEntry&lt;/code&gt;/&lt;code&gt;PutEntry&lt;/code&gt;/&lt;code&gt;DelEntry&lt;/code&gt; map to DHT Get/Put with salt=&amp;ldquo;dmsg&amp;rdquo;. Server entries are auto-cached on fetch. &lt;code&gt;StartReannounce&lt;/code&gt; keeps entries alive beyond TTL.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;disc_hybrid.go&lt;/code&gt;&lt;/strong&gt; — DHT-first with HTTP fallback. Reads try DHT first, fall back to HTTP on miss. Writes dual-write to both DHT and HTTP. Bulk queries delegate to HTTP (until DHT population is sufficient).&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="skywire-dht-full-node-on-dmsg-servers"&gt;Skywire: DHT Full Node on DMSG Servers&lt;/h3&gt;
&lt;p&gt;PR #2319 takes the DHT from &amp;ldquo;implemented&amp;rdquo; to &amp;ldquo;deployed&amp;rdquo;:&lt;/p&gt;</description></item><item><title>Skywire Development Update — April 17, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-04-17/</link><pubDate>Fri, 17 Apr 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/dev-update-2026-04-17/</guid><description>&lt;h3 id="skywire-network-stability--skynet-transport-level-ping-website-hosting"&gt;Skywire: Network Stability — Skynet, Transport-Level Ping, Website Hosting&lt;/h3&gt;
&lt;p&gt;PR #2317 is another massive change touching nearly every subsystem. The theme: making Skywire a practical platform for hosting and accessing services.&lt;/p&gt;
&lt;h4 id="skynet-port-forwarding"&gt;Skynet Port Forwarding&lt;/h4&gt;
&lt;p&gt;The forwarded port system was built from the ground up:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Rich metadata model&lt;/strong&gt; — &lt;code&gt;ForwardedPort&lt;/code&gt; replaces the simple &lt;code&gt;map[int]bool&lt;/code&gt; with per-port metadata: label, description, show-on-landing toggle, skynet/DMSG forwarding toggles, PK whitelist, and proxy address. Data persists to &lt;code&gt;local/forwarded_ports.json&lt;/code&gt; across restarts.&lt;/p&gt;</description></item><item><title>Skywire Development Update — April 16, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-04-16/</link><pubDate>Thu, 16 Apr 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/dev-update-2026-04-16/</guid><description>&lt;h3 id="skywire-cli-refactor-and-skynet-integration"&gt;Skywire: CLI Refactor and Skynet Integration&lt;/h3&gt;
&lt;p&gt;PR #2313 is one of the largest single changes in recent Skywire history — a complete restructuring of the CLI, a new deployment configuration system, and the foundations of the skynet integration.&lt;/p&gt;
&lt;h4 id="cli-directory-reorganization"&gt;CLI Directory Reorganization&lt;/h4&gt;
&lt;p&gt;The command structure was reorganized for clarity:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;cmd/dmsg-commands&lt;/code&gt; -&amp;gt; &lt;code&gt;cmd/dmsg&lt;/code&gt; — DMSG-specific commands&lt;/li&gt;
&lt;li&gt;Services moved to &lt;code&gt;cmd/svc/&lt;/code&gt; — all deployment service binaries&lt;/li&gt;
&lt;li&gt;Utilities moved to &lt;code&gt;cmd/util/&lt;/code&gt; — helper tools&lt;/li&gt;
&lt;li&gt;&lt;code&gt;cmd/skywirevisormobile&lt;/code&gt; removed — dead Android scaffold that was never completed&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Cobra command groups introduced across all command trees: &lt;code&gt;skywire cli&lt;/code&gt; now has 8 groups (Network, Transports, DMSG, Visor, Services, Utilities, Config, Debug), &lt;code&gt;visor&lt;/code&gt; has 5, &lt;code&gt;tp&lt;/code&gt; has 3. The flat list of 60+ commands is now navigable.&lt;/p&gt;</description></item><item><title>Skywire Development Update — April 13, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-04-13/</link><pubDate>Mon, 13 Apr 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/dev-update-2026-04-13/</guid><description>&lt;h3 id="skywire-dmsg-self-ping-command"&gt;Skywire: DMSG Self-Ping Command&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;ff684f796&lt;/code&gt; Add &lt;code&gt;skywire dmsg self-ping&lt;/code&gt;&lt;/strong&gt; — a new diagnostic command that verifies end-to-end DMSG connectivity by having the visor dial itself through the DMSG network. The visor dials its own public key on a test port, measures the round-trip time, and reports success or failure. This is the definitive test for &amp;ldquo;is my visor reachable over DMSG?&amp;rdquo; — it exercises the full path: discovery lookup, server session, noise handshake, stream establishment.&lt;/p&gt;</description></item><item><title>Skywire Development Update — April 12, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-04-12/</link><pubDate>Sun, 12 Apr 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/dev-update-2026-04-12/</guid><description>&lt;h3 id="skywire-uptime-tracking-overhaul"&gt;Skywire: Uptime Tracking Overhaul&lt;/h3&gt;
&lt;p&gt;The uptime system was completely reworked to produce higher-fidelity data and reduce load on the standalone uptime tracker:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;0c18f00a9&lt;/code&gt; TPD: record heartbeat on transport registration&lt;/strong&gt; — every time a visor re-registers its transports (every 90 seconds), the TPD now records a heartbeat for uptime tracking. This piggybacks uptime data collection onto an operation that&amp;rsquo;s already happening, rather than requiring a separate HTTP call.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;0c955313f&lt;/code&gt; Visor: send heartbeat to TPD alongside uptime tracker&lt;/strong&gt; — the visor now sends heartbeats to both the standalone uptime tracker and the TPD, ensuring continuity during the migration.&lt;/p&gt;</description></item><item><title>Skywire Development Update — April 11, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-04-11/</link><pubDate>Sat, 11 Apr 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/dev-update-2026-04-11/</guid><description>&lt;h3 id="skywire-unified-service-mode-pkgsvcmode"&gt;Skywire: Unified Service Mode (pkg/svcmode)&lt;/h3&gt;
&lt;p&gt;Every deployment service (transport discovery, service discovery, route finder, address resolver, config bootstrapper, uptime tracker) previously had its own copy of HTTP + DMSG listener setup code — a pattern that had diverged across services over months of independent fixes. Today that was replaced with &lt;code&gt;pkg/svcmode&lt;/code&gt;: a single shared helper that handles both HTTP and DMSG HTTP listening, health endpoints, and graceful shutdown for all services.&lt;/p&gt;</description></item><item><title>Skywire Development Update — April 10, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-04-10/</link><pubDate>Fri, 10 Apr 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/dev-update-2026-04-10/</guid><description>&lt;h3 id="skywire-services-health-dashboard"&gt;Skywire: Services Health Dashboard&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;be6e5ce05&lt;/code&gt; Services health UI dashboard&lt;/strong&gt; — the hypervisor now has a dedicated services health page that probes every deployment service (DMSG discovery, transport discovery, service discovery, route finder, uptime tracker, address resolver, DMSG servers) and displays their status, version, public key, transport type, and latency in a table view. Services are probed over DMSG where possible, with HTTP fallback.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;1145197ba&lt;/code&gt; Fix hypervisor UI feedback items&lt;/strong&gt; — split the health flags into separate indicators for HTTP and DMSG reachability, so operators can see which transport layer is working when debugging connectivity issues. Also fixed several UI regressions.&lt;/p&gt;</description></item><item><title>Skywire Development Update — April 9, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-04-09/</link><pubDate>Thu, 09 Apr 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/dev-update-2026-04-09/</guid><description>&lt;h3 id="skywire-route-setup-integrated-into-dmsg-server"&gt;Skywire: Route Setup Integrated Into DMSG Server&lt;/h3&gt;
&lt;p&gt;One of the most significant architectural changes this week: &lt;strong&gt;route setup-node is now integrated directly into the DMSG server&lt;/strong&gt; (#6698ccf4).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Before&lt;/strong&gt; — route setup was a standalone service (&lt;code&gt;skywire svc sn&lt;/code&gt;) that visors connected to via DMSG to request route setup. Every setup operation required the visor&amp;rsquo;s DMSG client to establish a separate stream to the setup node, which in turn might have needed its own stream to reach the destination visor. This created ephemeral port exhaustion issues under load.&lt;/p&gt;</description></item><item><title>Skywire Development Update — April 8, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-04-08/</link><pubDate>Wed, 08 Apr 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/dev-update-2026-04-08/</guid><description>&lt;h3 id="skywire-merge-dmsg-into-skywire"&gt;Skywire: Merge DMSG Into Skywire&lt;/h3&gt;
&lt;p&gt;A structural change that had been brewing for weeks: &lt;strong&gt;the DMSG library was merged directly into the Skywire repository&lt;/strong&gt; (#2289).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;The problem&lt;/strong&gt; — DMSG and Skywire were separate repositories, and Skywire vendored DMSG as a dependency. Every DMSG fix required:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Commit the fix to the DMSG repo&lt;/li&gt;
&lt;li&gt;Tag a new DMSG version&lt;/li&gt;
&lt;li&gt;Update the vendor directory in Skywire&lt;/li&gt;
&lt;li&gt;Wait for the Skywire CI to pass&lt;/li&gt;
&lt;li&gt;Merge the vendor update&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;This &amp;ldquo;vendor ping-pong&amp;rdquo; was consuming significant development time and causing CI reliability issues — tests would fail on one side or the other due to timing mismatches between repos.&lt;/p&gt;</description></item><item><title>Skywire Development Update — April 7, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-04-07/</link><pubDate>Tue, 07 Apr 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/dev-update-2026-04-07/</guid><description>&lt;h3 id="dmsg-two-more-server-goroutine-leaks"&gt;DMSG: Two More Server Goroutine Leaks&lt;/h3&gt;
&lt;p&gt;The DMSG server goroutine hunt continued — &lt;strong&gt;two more leaks found and fixed&lt;/strong&gt;, both involving the server&amp;rsquo;s forwarding logic.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Bridged streams idle timeout&lt;/strong&gt; (#372) — bridged streams (bidirectional copy between two clients through the server) were blocking forever on &lt;code&gt;io.Copy Read&lt;/code&gt; when one side disconnected without cleanly closing the connection. This caused goroutines to accumulate — &lt;strong&gt;observed as 55,000+ stuck goroutines in production&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;The fix added an &lt;code&gt;idleTimeoutConn&lt;/code&gt; wrapper that resets a per-operation deadline on each Read/Write. If no data flows for 5 minutes, the deadline fires, &lt;code&gt;io.Copy&lt;/code&gt; returns an error, &lt;code&gt;CopyReadWriteCloser&lt;/code&gt; closes both streams, and the goroutine exits. The timeout resets on each successful read/write, so active streams are unaffected — only truly idle/dead streams are cleaned up.&lt;/p&gt;</description></item><item><title>Skywire Development Update — April 6, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-04-06/</link><pubDate>Mon, 06 Apr 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/dev-update-2026-04-06/</guid><description>&lt;h3 id="skywire-setup-node-goroutine-leak-fix"&gt;Skywire: Setup-Node Goroutine Leak Fix&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Route setup-node goroutine leak&lt;/strong&gt; (#2280) — a serious production issue: the setup-node was accumulating 500+ leaked goroutines within minutes of restart.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Root cause&lt;/strong&gt; — &lt;code&gt;MakeMap&lt;/code&gt; used an &lt;strong&gt;unbuffered&lt;/strong&gt; results channel, causing goroutines to block forever on send when the reader stopped after the first error. Combined with no dial timeout, unreachable visors caused indefinite blocking in &lt;code&gt;DialStream.readResponse&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;The fix&lt;/strong&gt; — added buffered channels and explicit dial/handler timeouts so stuck dials can&amp;rsquo;t accumulate. The setup-node now cleanly errors out and cleans up goroutines when it can&amp;rsquo;t reach a visor.&lt;/p&gt;</description></item><item><title>Skywire Development Update — April 5, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-04-05/</link><pubDate>Sun, 05 Apr 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/dev-update-2026-04-05/</guid><description>&lt;h3 id="skywire-ci-e2e-fixes-and-runtime-hypervisor-toggle"&gt;Skywire: CI E2E Fixes and Runtime Hypervisor Toggle&lt;/h3&gt;
&lt;p&gt;A consolidation day focused on test reliability and configuration ergonomics (#2279).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;-Q&lt;/code&gt; flag: write conf template to file&lt;/strong&gt; — a new &lt;code&gt;-Q&lt;/code&gt; flag writes the conf template to a specified file path. Both &lt;code&gt;-q&lt;/code&gt; (print) and &lt;code&gt;-Q&lt;/code&gt; (write) now reflect flags passed to them: &lt;code&gt;skywire cli config gen -iq&lt;/code&gt; uncomments &lt;code&gt;ISHYPERVISOR&lt;/code&gt; in the printed output. The new &lt;code&gt;applyFlagsToConf&lt;/code&gt; helper maps CLI flags to SKYENV variables so they take effect in the generated config.&lt;/p&gt;</description></item><item><title>Skywire Development Update — April 4, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-04-04/</link><pubDate>Sat, 04 Apr 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/dev-update-2026-04-04/</guid><description>&lt;h3 id="skywire-regional-saturation-scaling-for-rewards"&gt;Skywire: Regional Saturation Scaling for Rewards&lt;/h3&gt;
&lt;p&gt;A significant economic change to the reward system: &lt;strong&gt;regional saturation scaling&lt;/strong&gt; (#2278).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;The problem&lt;/strong&gt; — the presence pool distributes rewards equally across all uptime-eligible visors. If a single country has 1,000 visors, it receives 1,000 shares. This creates an incentive to flood a single region with cheap VPS instances to maximize reward extraction, which distorts the geographic distribution of the network.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;The fix&lt;/strong&gt; — apply diminishing returns to the presence pool based on unique IP addresses per country. Countries with more unique IPs still receive a larger total allocation, but each additional IP contributes less. Default is square-root scaling (configurable via &lt;code&gt;--sat-exp&lt;/code&gt; flag). A country with 100 IPs gets &lt;code&gt;sqrt(100) = 10&lt;/code&gt; units of weight per IP instead of 1 per IP; a country with 4 IPs gets &lt;code&gt;sqrt(4) = 2&lt;/code&gt; units per IP — so the 100-IP country gets 5× the weight of the 4-IP country, not 25×.&lt;/p&gt;</description></item><item><title>Skywire Development Update — April 3, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-04-03/</link><pubDate>Fri, 03 Apr 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/dev-update-2026-04-03/</guid><description>&lt;h3 id="skywire-skydeploy-override"&gt;Skywire: SKYDEPLOY Override&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;New environment variable&lt;/strong&gt; (#2276) — &lt;code&gt;SKYDEPLOY=/path/to/config.json&lt;/code&gt; overrides the embedded &lt;code&gt;services-config.json&lt;/code&gt; deployment configuration. This supports:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Private networks&lt;/strong&gt; — point Skywire at a custom deployment without rebuilding&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Corporate deployments&lt;/strong&gt; — run a private Skywire network with your own TPD, DMSG, Address Resolver, etc.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Testing&lt;/strong&gt; — quickly switch between test and production deployments&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The embedded config is still used as the default, so nothing changes for users on the public network. But operators running private deployments no longer need to patch and rebuild Skywire to change the discovery URLs.&lt;/p&gt;</description></item><item><title>Skywire Development Update — April 2, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-04-02/</link><pubDate>Thu, 02 Apr 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/dev-update-2026-04-02/</guid><description>&lt;h3 id="skywire-dmsg-grpc-listener"&gt;Skywire: DMSG gRPC Listener&lt;/h3&gt;
&lt;p&gt;A new remote-management capability: &lt;strong&gt;DMSG gRPC listener for remote gotop and stats&lt;/strong&gt; (#2271).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Design&lt;/strong&gt; — a new &lt;code&gt;DmsgGRPCPort&lt;/code&gt; (49) serves gRPC over DMSG alongside the existing local CLI gRPC. The &lt;code&gt;DialDmsgRPC&lt;/code&gt; function was updated to dial the new port instead of &lt;code&gt;DmsgHypervisorPort&lt;/code&gt;. This enables:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Remote &lt;code&gt;gotop&lt;/code&gt; (system activity monitor) over DMSG&lt;/li&gt;
&lt;li&gt;Stats streaming from any visor to any other visor&lt;/li&gt;
&lt;li&gt;Ping and latency measurements between visors&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Both visors need the update — the local visor dials the new port and the remote visor listens on it. Once deployed, operators can run &lt;code&gt;skywire cli visor ping&lt;/code&gt; or stream system activity from any visor they have authorized access to, all over the encrypted DMSG overlay.&lt;/p&gt;</description></item><item><title>Skywire Development Update — April 1, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-04-01/</link><pubDate>Wed, 01 Apr 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/dev-update-2026-04-01/</guid><description>&lt;h3 id="skycoin-explorer-fixes-for-fibercoin-support"&gt;Skycoin: Explorer Fixes for Fibercoin Support&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Explorer blocks page fix&lt;/strong&gt; — the explorer&amp;rsquo;s blocks page was showing &amp;ldquo;Error loading data&amp;rdquo; silently. The root cause was that &lt;code&gt;getBlocks&lt;/code&gt; was being called without the &lt;code&gt;verbose=1&lt;/code&gt; parameter, so transaction inputs were returned as bare UXID strings instead of objects with &lt;code&gt;owner&lt;/code&gt;/&lt;code&gt;coins&lt;/code&gt;/&lt;code&gt;hours&lt;/code&gt; fields. The frontend&amp;rsquo;s &lt;code&gt;parseGenericTransaction&lt;/code&gt; would fail silently on the bare strings. Fixed by adding &lt;code&gt;verbose=1&lt;/code&gt; to the API call.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Content-Type header ordering&lt;/strong&gt; — a subtle bug in the explorer proxy: &lt;code&gt;Content-Type&lt;/code&gt; was being set &lt;em&gt;after&lt;/em&gt; &lt;code&gt;WriteHeader&lt;/code&gt;, so the header was never actually sent to clients. Fixed to set &lt;code&gt;Content-Type&lt;/code&gt; before &lt;code&gt;WriteHeader&lt;/code&gt;.&lt;/p&gt;</description></item><item><title>Skywire Development Update — March 31, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-03-31/</link><pubDate>Tue, 31 Mar 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/dev-update-2026-03-31/</guid><description>&lt;h3 id="skywire-xpub-address-reuse-fix"&gt;Skywire: Xpub Address Reuse Fix&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Subtle bug in the reward system&amp;rsquo;s BIP44 address handling&lt;/strong&gt; (#2266): &lt;code&gt;resolveRewardAddress&lt;/code&gt; was deriving addresses from the visor&amp;rsquo;s xpub key by day count, but on days where reward distribution was delayed (no &lt;code&gt;{date}.txt&lt;/code&gt; transaction marker), the next successful distribution would reuse the same derived address from the previous period.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;The fix&lt;/strong&gt; — &lt;code&gt;resolveRewardAddress&lt;/code&gt; now offsets the BIP44 derivation index by the number of consecutive undistributed days. If rewards are delayed by 3 days, the address for the next distribution is derived 3 indices ahead of where it would have been, preventing reuse.&lt;/p&gt;</description></item><item><title>Skywire Development Update — March 30, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-03-30/</link><pubDate>Mon, 30 Mar 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/dev-update-2026-03-30/</guid><description>&lt;h3 id="skywire-lan-dmsg-auto-discovery"&gt;Skywire: LAN DMSG Auto-Discovery&lt;/h3&gt;
&lt;p&gt;Major improvements to the LAN DMSG server feature from earlier in the week:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Port 0 support&lt;/strong&gt; — the OS now auto-selects an available port for the LAN DMSG server. The LAN IP is detected automatically from private network interfaces. No manual port configuration needed.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Keypair stored in visor config&lt;/strong&gt; — instead of requiring a separate key file, the PK/SK fields are now in &lt;code&gt;LANDmsgServerConf&lt;/code&gt; directly. Auto-generated on first use and persisted via the existing config flush mechanism.&lt;/p&gt;</description></item><item><title>Skywire Development Update — March 29, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-03-29/</link><pubDate>Sun, 29 Mar 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/dev-update-2026-03-29/</guid><description>&lt;h3 id="skywire-lan-dmsg-server-polish-and-hypervisor-ui-fix"&gt;Skywire: LAN DMSG Server Polish and Hypervisor UI Fix&lt;/h3&gt;
&lt;p&gt;A consolidation day following the LAN DMSG server work from March 28. PR #2264 (&amp;ldquo;Fix/next&amp;rdquo;) bundled the LAN DMSG server implementation together with the hypervisor UI CPU spike fix into a single merge.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Recap of the LAN DMSG server&lt;/strong&gt; — the hypervisor can now run a private DMSG server on the LAN. Visors connect to it preferentially for local communication, avoiding round-trips through public relay servers. Zero configuration for the hypervisor (&lt;code&gt;enable: true&lt;/code&gt;), and the server uses &lt;code&gt;direct.NewClient&lt;/code&gt; for in-memory discovery so it&amp;rsquo;s never registered publicly.&lt;/p&gt;</description></item><item><title>Skywire Development Update — March 28, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-03-28/</link><pubDate>Sat, 28 Mar 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/dev-update-2026-03-28/</guid><description>&lt;h3 id="skywire-lan-dmsg-server-in-the-hypervisor"&gt;Skywire: LAN DMSG Server in the Hypervisor&lt;/h3&gt;
&lt;p&gt;A clever optimization for LAN-based Skywire deployments: the hypervisor can now run an &lt;strong&gt;embedded DMSG server&lt;/strong&gt; on the local network. LAN visors connect to it preferentially instead of routing all their DMSG traffic through public relay servers on the internet.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;How it works&lt;/strong&gt; — the hypervisor starts a private DMSG server on the LAN with a persisted keypair. It uses &lt;code&gt;direct.NewClient&lt;/code&gt; for in-memory discovery (no public registration with the DMSG Discovery). A &lt;code&gt;GET /api/lan-dmsg-server&lt;/code&gt; endpoint exposes the server&amp;rsquo;s public key and address for auto-discovery by LAN visors. A &lt;code&gt;lanPriorityDisc&lt;/code&gt; wrapper prepends the LAN server entries to discovery results, so visors connect to it before trying public servers.&lt;/p&gt;</description></item><item><title>Skywire Development Update — March 27, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-03-27/</link><pubDate>Fri, 27 Mar 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/dev-update-2026-03-27/</guid><description>&lt;h3 id="skycoin-bip44-wallet-ux-overhaul"&gt;Skycoin: BIP44 Wallet UX Overhaul&lt;/h3&gt;
&lt;p&gt;A major UX improvement day for the wallet GUIs:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;xpub key display&lt;/strong&gt; — account-level extended public keys are now exposed in both the API and both wallet GUIs (desktop and web). Users can see and copy their account xpub for watch-only wallet setups or sharing with accounting tools.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Address hierarchy&lt;/strong&gt; — BIP44 wallet addresses are now displayed nested under their parent xpub key, with BIP44 child indices shown and path labels (e.g., &lt;code&gt;m/44'/8000'/0'/0/3&lt;/code&gt;) on each address section. This makes the HD wallet structure visible and understandable instead of showing a flat list of addresses.&lt;/p&gt;</description></item><item><title>Skywire Development Update — March 26, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-03-26/</link><pubDate>Thu, 26 Mar 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/dev-update-2026-03-26/</guid><description>&lt;h3 id="dmsg-server-cpu-exhaustion-fix"&gt;DMSG: Server CPU Exhaustion Fix&lt;/h3&gt;
&lt;p&gt;The root cause of DMSG server performance issues was found and fixed:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Stream concurrency limit&lt;/strong&gt; — a single DMSG session (e.g., from a setup node) could spawn unbounded goroutines via stream creation, starving the server&amp;rsquo;s CPU. A per-session concurrency semaphore (2048 streams) now provides backpressure — streams exceeding the limit are immediately closed rather than queued (#353).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Accept loop backoff&lt;/strong&gt; — non-fatal stream accept errors were causing tight CPU spin loops. A 50ms backoff delay was added on persistent errors.&lt;/p&gt;</description></item><item><title>Skywire Development Update — March 25, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-03-25/</link><pubDate>Wed, 25 Mar 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/dev-update-2026-03-25/</guid><description>&lt;h3 id="skywire-cxo-transport-adapter-and-login-chain"&gt;Skywire: CXO Transport Adapter and Login Chain&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;CXO-based transport discovery over DMSG&lt;/strong&gt; — a CXO DMSG transport adapter was added, allowing CXO nodes to communicate over DMSG instead of raw TCP. This is the foundation for distributing transport discovery data through CXO&amp;rsquo;s content-addressable object system over the encrypted DMSG overlay — a step toward decentralizing the TPD (#2249).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Login chain genesis&lt;/strong&gt; — the first steps of a Fibercoin-based login chain for the reward system were implemented. The login chain is a dedicated Fibercoin blockchain used to authenticate reward claims. Genesis block signing was implemented (#2250).&lt;/p&gt;</description></item><item><title>Skywire Development Update — March 24, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-03-24/</link><pubDate>Tue, 24 Mar 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/dev-update-2026-03-24/</guid><description>&lt;h3 id="skycoin-pprof-for-explorer-and-web-wallet"&gt;Skycoin: pprof for Explorer and Web Wallet&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Profiling support&lt;/strong&gt; — &lt;code&gt;--pprofmode&lt;/code&gt; and &lt;code&gt;--pprofaddr&lt;/code&gt; flags were added to both the blockchain explorer and &lt;code&gt;skycoin web&lt;/code&gt;. Combined with the DMSG pprof flags added yesterday, every long-running Skycoin and DMSG service can now be profiled at runtime. This reflects an ongoing effort to diagnose and eliminate performance bottlenecks across the stack.&lt;/p&gt;
&lt;h3 id="skywire-dependency-updates-and-gotop-fix"&gt;Skywire: Dependency Updates and gotop Fix&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Dependency updates&lt;/strong&gt; — Go module dependencies were updated across the board.&lt;/p&gt;</description></item><item><title>Skywire Development Update — March 23, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-03-23/</link><pubDate>Mon, 23 Mar 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/dev-update-2026-03-23/</guid><description>&lt;h3 id="skycoin-release-documentation-and-windows-msi"&gt;Skycoin: Release Documentation and Windows MSI&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;RELEASE.md&lt;/strong&gt; — a new document was added describing all release binaries, their contents, and the build process. This makes the release pipeline auditable and helps new contributors understand what gets shipped.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Windows MSI installer&lt;/strong&gt; — &lt;code&gt;skyhw.exe&lt;/code&gt; and its required DLLs are now correctly included in the Windows amd64 MSI installer.&lt;/p&gt;
&lt;h3 id="skywire-rwmutex-deadlock-and-kcp-leak"&gt;Skywire: RWMutex Deadlock and KCP Leak&lt;/h3&gt;
&lt;p&gt;Two stability-critical bugs were found and fixed:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;RWMutex deadlock in ActiveRoutes&lt;/strong&gt; — the &lt;code&gt;ActiveRoutes&lt;/code&gt; RPC call was taking an &lt;code&gt;RLock&lt;/code&gt; on a mutex, then calling a function that attempted a full &lt;code&gt;Lock&lt;/code&gt; on the same mutex. This caused the visor&amp;rsquo;s RPC interface to hang permanently, making it unresponsive to all CLI commands. Discovered because &lt;code&gt;skywire cli tp&lt;/code&gt; would freeze (#2243).&lt;/p&gt;</description></item><item><title>Skywire Development Update — March 22, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-03-22/</link><pubDate>Sun, 22 Mar 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/dev-update-2026-03-22/</guid><description>&lt;h3 id="skycoin-code-quality-and-windows-release"&gt;Skycoin: Code Quality and Windows Release&lt;/h3&gt;
&lt;p&gt;A cleanup and hardening day following the v0.28.4 push.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Internal package restructuring&lt;/strong&gt; — the &lt;code&gt;internal/&lt;/code&gt; directory was eliminated. The &lt;code&gt;chacha20&lt;/code&gt; package was moved up to a public location and fuzz packages were renamed. This removes Go&amp;rsquo;s &lt;code&gt;internal/&lt;/code&gt; import restrictions, making these packages available for use by the Skywire vendor and other dependents.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Cyclomatic complexity reduction&lt;/strong&gt; — three functions that had grown unwieldy were refactored: &lt;code&gt;serve()&lt;/code&gt;, &lt;code&gt;postProcess()&lt;/code&gt;, and &lt;code&gt;addressGenCmd()&lt;/code&gt;. Each was broken into smaller, testable functions.&lt;/p&gt;</description></item><item><title>Skywire Development Update — March 21, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-03-21/</link><pubDate>Sat, 21 Mar 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/dev-update-2026-03-21/</guid><description>&lt;h3 id="skycoin-dynamic-fibercoin-branding-and-v0284"&gt;Skycoin: Dynamic Fibercoin Branding and v0.28.4&lt;/h3&gt;
&lt;p&gt;The final push for Skycoin v0.28.4:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Dynamic ASCII art for all help menus&lt;/strong&gt; — setting &lt;code&gt;FIBER_TOML&lt;/code&gt; now makes every help menu (&lt;code&gt;skycoin&lt;/code&gt;, &lt;code&gt;skycoin daemon&lt;/code&gt;, &lt;code&gt;skycoin cli&lt;/code&gt;, &lt;code&gt;skycoin web&lt;/code&gt;, &lt;code&gt;skycoin explorer&lt;/code&gt;) display the configured coin&amp;rsquo;s name in ASCII art. The daemon description, CLI defaults (&lt;code&gt;RPC_ADDR&lt;/code&gt;, &lt;code&gt;COIN&lt;/code&gt;, &lt;code&gt;DATA_DIR&lt;/code&gt;), and web wallet branding all adapt automatically. A &lt;code&gt;cli halt&lt;/code&gt; command was added for graceful daemon shutdown (#2825).&lt;/p&gt;</description></item><item><title>Skywire Development Update — March 20, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-03-20/</link><pubDate>Fri, 20 Mar 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/dev-update-2026-03-20/</guid><description>&lt;h3 id="skycoin-newcoin-templates-and-fibercoin-tooling"&gt;Skycoin: Newcoin Templates and Fibercoin Tooling&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;newcoin templates&lt;/code&gt; subcommand&lt;/strong&gt; — the embedded code generation templates can now be printed to stdout with &lt;code&gt;skycoin newcoin templates&lt;/code&gt;, so users can inspect, customize, and feed them back with &lt;code&gt;--template-dir&lt;/code&gt;. The &lt;code&gt;--template-dir&lt;/code&gt; flag, which was previously dead code, now actually works to override the embedded templates (#2821).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;fiber.toml defaults&lt;/strong&gt; — noisy peer connection log messages were suppressed, and &lt;code&gt;fiber.toml&lt;/code&gt; default values were updated to be more useful out of the box.&lt;/p&gt;</description></item><item><title>Skywire Development Update — March 19, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-03-19/</link><pubDate>Thu, 19 Mar 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/dev-update-2026-03-19/</guid><description>&lt;h3 id="skycoin-bip44-chain-selection-and-release-build-fixes"&gt;Skycoin: BIP44 Chain Selection and Release Build Fixes&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;BIP44 chain selection&lt;/strong&gt; — the API, CLI, and web wallet GUI now support selecting different BIP44 derivation chains (external vs. internal/change addresses). This gives users more control over address generation for privacy-conscious workflows — change addresses can be generated separately from receiving addresses, matching standard Bitcoin wallet behavior (#2817).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Release build hardening&lt;/strong&gt; — the &lt;code&gt;cmd/release&lt;/code&gt; binary (which includes hardware wallet support via libusb/cgo) was fixed to compile correctly on platforms where cgo is available and degrade gracefully where it isn&amp;rsquo;t. The &lt;code&gt;DisallowUnknownFields&lt;/code&gt; restriction was removed from the API client JSON decoder, which was causing failures when the API returned fields the client didn&amp;rsquo;t expect — a forward-compatibility issue that would break older clients talking to newer nodes (#2820).&lt;/p&gt;</description></item><item><title>Skywire Development Update — March 18, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-03-18/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/dev-update-2026-03-18/</guid><description>&lt;h3 id="skycoin-bip32-panic-fixes-and-fibercoin-ci"&gt;Skycoin: BIP32 Panic Fixes and Fibercoin CI&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;BIP32 panic-to-error conversion&lt;/strong&gt; — the &lt;code&gt;bip32&lt;/code&gt; package used &lt;code&gt;log.Panic&lt;/code&gt; for error conditions, which would crash the entire process on invalid xpub keys or derivation failures. These were converted to proper error returns so callers can handle them gracefully. New &lt;code&gt;verifyXpub&lt;/code&gt; and &lt;code&gt;nextAddress&lt;/code&gt; CLI commands were added for xpub key validation and unused address derivation.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Fibercoin genesis CI test&lt;/strong&gt; — an integration test was added that creates a Fibercoin from scratch in CI: generates a genesis wallet, creates a fiber.toml, starts a daemon, creates the genesis block, distributes coins, and verifies the chain state. This catches regressions in the Fibercoin creation workflow automatically.&lt;/p&gt;</description></item><item><title>Skywire Development Update — March 17, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-03-17/</link><pubDate>Tue, 17 Mar 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/dev-update-2026-03-17/</guid><description>&lt;h3 id="happy-birthday-skycoin-blockchain"&gt;Happy Birthday, Skycoin Blockchain&lt;/h3&gt;
&lt;p&gt;Eleven years ago today — March 17, 2015 — the Skycoin genesis block was created. The chain has been running continuously ever since, through organizational splits, team changes, and complete codebase rewrites. Block 194,634 and counting.&lt;/p&gt;
&lt;h3 id="skycoin-web-wallet-hardening"&gt;Skycoin: Web Wallet Hardening&lt;/h3&gt;
&lt;p&gt;A dense day of web wallet improvements:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;BIP44 account support&lt;/strong&gt; — the desktop wallet (skycoin-web) now properly supports BIP44 multi-account structure with encrypted seed storage. The &lt;code&gt;beforeunload&lt;/code&gt; handler was fixed to prevent accidental data loss.&lt;/p&gt;</description></item><item><title>Skywire Development Update — March 16, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-03-16/</link><pubDate>Mon, 16 Mar 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/dev-update-2026-03-16/</guid><description>&lt;h3 id="skycoin-bitcoin-wallet-support-lands"&gt;Skycoin: Bitcoin Wallet Support Lands&lt;/h3&gt;
&lt;p&gt;The biggest feature addition to Skycoin in years landed today: &lt;strong&gt;full Bitcoin wallet support&lt;/strong&gt; in the &lt;code&gt;skycoin web&lt;/code&gt; thin client.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Bitcoin via Electrum and Bitcoin Core&lt;/strong&gt; — two new backend types were added to the web wallet: an Electrum client (TCP/TLS) and a Bitcoin Core RPC client. Both support UTXO fetching, balance queries, transaction history, fee estimation, and broadcast (#2815 baseline, with Bitcoin-specific code in this commit).&lt;/p&gt;</description></item><item><title>Skywire Development Update — March 15, 2026</title><link>https://blog.theskywirenetwork.net/posts/dev-update-2026-03-15/</link><pubDate>Sun, 15 Mar 2026 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/dev-update-2026-03-15/</guid><description>&lt;h3 id="skywire-docker-and-ci-overhaul"&gt;Skywire: Docker and CI Overhaul&lt;/h3&gt;
&lt;p&gt;Today&amp;rsquo;s work focused on fixing the Skywire Docker build and deployment pipeline and upgrading the frontend stack.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Docker build fixes&lt;/strong&gt; — the Docker build was broken by several issues: the &lt;code&gt;+dirty&lt;/code&gt; version suffix appeared in image tags because the build context had uncommitted changes, the &lt;code&gt;go sum&lt;/code&gt; database check for the Skywire module was failing in containers, &lt;code&gt;git&lt;/code&gt; was missing from the Docker image (needed for &lt;code&gt;GOPROXY=direct&lt;/code&gt;), and &lt;code&gt;ldflags&lt;/code&gt; were being passed to Docker targets that don&amp;rsquo;t support them. All four issues were fixed across PRs #2215–#2218.&lt;/p&gt;</description></item><item><title>Latest Version of Skycoin Desktop Wallet Adds Skywallet Compatibility</title><link>https://blog.theskywirenetwork.net/posts/latest-version-of-skycoin-desktop-wallet-adds-skywallet-compatibility/</link><pubDate>Mon, 02 Dec 2019 17:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/latest-version-of-skycoin-desktop-wallet-adds-skywallet-compatibility/</guid><description>&lt;p&gt;The latest version of the Skycoin desktop wallet and daemon is now available for download at &lt;a href="https://skycoin.com/downloads"&gt;Skycoin.com/downloads&lt;/a&gt;. The new release, version 0.27.0, adds support for the recently released &lt;em&gt;&lt;a href="https://store.skycoin.com/products/skywallet"&gt;Skywallet&lt;/a&gt;&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;At the end of November, the Skycoin community saw the successful launch of the highly anticipated Skywallet, a portable hardware cryptocurrency wallet designed by Skycoin. The Skywallet is able to securely generate a wallet seed without connecting to the Internet or a computer. Users can send Skycoin to the address generated from the secure seed without fear that the seed is compromised.&lt;/p&gt;</description></item><item><title>July 2019 Community Update</title><link>https://blog.theskywirenetwork.net/posts/july-2019-community-update/</link><pubDate>Thu, 08 Aug 2019 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/july-2019-community-update/</guid><description>&lt;p&gt;As always, the Skycoin team continued to deliver regardless of market fluctuations and general Cryptosphere craziness. July saw a flurry of activity across the board as Skycoin closes in on realizing a vision of true decentralization.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://blog.theskywirenetwork.net/img/Development.png" alt=""&gt;&lt;/p&gt;
&lt;p&gt;Skycoin remained a high flier on coincodecap.com during July with 1216 commits across all the Skycoin repositories, confirming yet again that Skycoin is one of the most active projects in the space.&lt;/p&gt;
&lt;p&gt;![Skycoin ranked 2nd for Github activity in July](/img/CoinCodeCap.com July.JPG &amp;ldquo;CoinCodeCap.com July&amp;rdquo;)&lt;/p&gt;</description></item><item><title>Development Update - Week 30 &amp; 31</title><link>https://blog.theskywirenetwork.net/posts/development-update-week-30-31/</link><pubDate>Fri, 02 Aug 2019 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/development-update-week-30-31/</guid><description>&lt;h3 id="skywire-update"&gt;Skywire Update&lt;/h3&gt;
&lt;p&gt;The latest progress on the Skywire meshnet has focused on two key areas, beginning with the improvement of automated tests and addition of new test scenarios. We also introduced a second transport implementation, which as well as being simpler than dmsg is also able to directly connect two nodes. (dmsg will be used for the network&amp;rsquo;s control plane and the TCP transport in the data plane, as it does not tunnel traffic over an intermediate server.)&lt;/p&gt;</description></item><item><title>Skycoin Development Update - Week 28 &amp; 29</title><link>https://blog.theskywirenetwork.net/posts/skycoin-development-update-week-27-28/</link><pubDate>Fri, 19 Jul 2019 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/skycoin-development-update-week-27-28/</guid><description>&lt;h3 id="skywire-update"&gt;Skywire Update&lt;/h3&gt;
&lt;p&gt;The past two weeks&amp;rsquo; work on Skywire has centered on two main objectives: switching to dmsg and improving the public deployment&amp;rsquo;s performance, and writing automated integration tests. Both of these are essential to migration; along with a stable, working public deployment, we need automated integration tests that accurately resemble it in order to ensure the code we push doesn&amp;rsquo;t break the mainnet.&lt;/p&gt;
&lt;p&gt;A lot has gone into achieving this:&lt;/p&gt;</description></item><item><title>June 2019 Community Update</title><link>https://blog.theskywirenetwork.net/posts/community-update-june-2019/</link><pubDate>Fri, 12 Jul 2019 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/community-update-june-2019/</guid><description>&lt;p&gt;June 2019 will go down in history as Skycoin’s #MonthOfAnnouncements, and, what a month it turned out to be! True to form, the Skycoin team brushed aside any distraction and kept delivering throughout the month to ensure that Skycoin’s trajectory to the top remains steady.&lt;/p&gt;
&lt;br&gt;
&lt;h2 id="development"&gt;Development&lt;/h2&gt;
&lt;p&gt;The usual flurry of development activity carried on throughout June and Coincodecap.com consistently shows Skycoin among the top 10 projects ranked according to all Github activity. During June, the Skycoin Github saw a massive 963 commits from 21 developers, meaning Skycoin was placed at number 2 out of all projects for the month!&lt;/p&gt;</description></item><item><title>Skycoin Development Update - Week 27</title><link>https://blog.theskywirenetwork.net/posts/skycoin-development-update-week-27/</link><pubDate>Sat, 06 Jul 2019 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/skycoin-development-update-week-27/</guid><description>&lt;h3 id="skycoin-core-update"&gt;Skycoin Core Update&lt;/h3&gt;
&lt;p&gt;Over the past week we have been working to redesign the wallet management library to support multiple wallet &amp;ldquo;types&amp;rdquo; (a prerequisite for full bip44 wallet support).&lt;/p&gt;
&lt;h3 id="skywire-update"&gt;Skywire Update&lt;/h3&gt;
&lt;p&gt;Skywire has now implemented benchmarks for dmsg structures. Meanwhile, we have moved the dmsg library into its own repo and created a wrapper for it in Skywire, as well as increasing test coverage for dmsg. Because we want other services to be able to use dmsg, we have now made it independent of Skywire. As a result, Skywire imports dmsg so that projects using it for communication do not need to import Skywire.&lt;/p&gt;</description></item><item><title>Skycoin Development Update - Week 26</title><link>https://blog.theskywirenetwork.net/posts/skycoin-development-update-week-26/</link><pubDate>Fri, 28 Jun 2019 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/skycoin-development-update-week-26/</guid><description>&lt;h3 id="skycoin-core"&gt;Skycoin Core&lt;/h3&gt;
&lt;p&gt;The major news this week is the launch of the new Android wallet. Among other updates, it now includes language support for Japanese!&lt;/p&gt;
&lt;h3 id="skywire-update"&gt;Skywire Update&lt;/h3&gt;
&lt;p&gt;Skywire has now added at retry logic for application use following network error. We have also fixed certificate issues with public deployments and written more tests for dmsg.&lt;/p&gt;
&lt;h3 id="skywallet-update"&gt;Skywallet Update&lt;/h3&gt;
&lt;p&gt;As well as adding firmware update functionality for the desktop wallet, Skywallet added a version endpoint to the daemon this week.&lt;/p&gt;</description></item><item><title>Skycoin Development Update - Week 25</title><link>https://blog.theskywirenetwork.net/posts/skycoin-development-update-week-25/</link><pubDate>Fri, 21 Jun 2019 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/skycoin-development-update-week-25/</guid><description>&lt;h3 id="skywire-update"&gt;Skywire Update&lt;/h3&gt;
&lt;p&gt;This week Skywire implemented a new shutdown procedure for an app on the Skywire node restart process. We also improved checks for the transport establishment handshake and added profiling for the Skywire node.&lt;/p&gt;
&lt;h3 id="skywallet-update"&gt;Skywallet Update&lt;/h3&gt;
&lt;p&gt;As well as fixing a number of issues discovered during the last review, Skywallet focused this week on reviewing edge case tests for the signing function.&lt;/p&gt;
&lt;h3 id="coin-hour-bank-update"&gt;Coin Hour Bank Update&lt;/h3&gt;
&lt;p&gt;Coin Hour Bank has now added a comments column in the transaction table, as well as OTP support for withdrawals. We have also fixed the email notification for successful withdrawals, improving user experience.&lt;/p&gt;</description></item><item><title>Skycoin Development Update - Week 24</title><link>https://blog.theskywirenetwork.net/posts/skycoin-development-update-week-24/</link><pubDate>Fri, 14 Jun 2019 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/skycoin-development-update-week-24/</guid><description>&lt;h3 id="cx-update"&gt;CX Update&lt;/h3&gt;
&lt;p&gt;CX added the CX version parameter to CX Program this week, providing a way to handle incompatibilities between the different CX versions that may have been used on CX chains to date. We also solved an issue that was preventing the program state from storing, improving usability.&lt;/p&gt;
&lt;h3 id="whitelisting-system-update"&gt;Whitelisting System Update&lt;/h3&gt;
&lt;p&gt;The most recent changes to the whitelisting system have resolved an issue that was creating duplicate nodes for users.&lt;/p&gt;</description></item><item><title>Introducing CX v0.7</title><link>https://blog.theskywirenetwork.net/posts/introducing-cx-v0-7/</link><pubDate>Thu, 13 Jun 2019 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/introducing-cx-v0-7/</guid><description>&lt;p&gt;The Skycoin team keeps on powering through #MonthOfAnnouncements, and delivering key product updates through amazing development progress!&lt;/p&gt;
&lt;h2 id="cx-version-07"&gt;CX version 0.7&lt;/h2&gt;
&lt;p&gt;CX is the blockchain programming language for smart contracts on the &lt;a href="https://www.skycoin.com/"&gt;Skycoin&lt;/a&gt; blockchain, and is an incredibly powerful part of the Skycoin ecosystem.&lt;/p&gt;
&lt;p&gt;CX is a general purpose, interpreted, and compiled programming language, with a very strict type system and a syntax similar to Golang&amp;rsquo;s. CX provides a new programming paradigm based on the concept of affordances.&lt;/p&gt;</description></item><item><title>Skycoin Development Update - Week 23</title><link>https://blog.theskywirenetwork.net/posts/skycoin-development-update-week-22/</link><pubDate>Fri, 07 Jun 2019 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/skycoin-development-update-week-22/</guid><description>&lt;h3 id="cx-update"&gt;CX Update&lt;/h3&gt;
&lt;p&gt;We have big news to announce this week thanks to the public beta release of CX version 0.7. This version of our programming language integrates it with Skycoin&amp;rsquo;s Fiber blockchains, enabling developers to write programs that will be stored on blockchains specialized for CX code. It also introduces plenty of new features, language fixes, libraries and bug fixes. Learn more &lt;a href="https://github.com/skycoin/cx/blob/bbc77962142a8dadd19a81d82bf666b7abfcf142/releases/RELEASE-0.7beta.md" title="CX beta version 0.7"&gt;here&lt;/a&gt; and check out &lt;a href="https://github.com/skycoin/cx/wiki/CX-Chains-Tutorial" title="CX Chains Tutorial"&gt;the tutorial&lt;/a&gt;!&lt;/p&gt;</description></item><item><title>May 2019 Community Update</title><link>https://blog.theskywirenetwork.net/posts/may-2019-community-update/</link><pubDate>Thu, 06 Jun 2019 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/may-2019-community-update/</guid><description>&lt;p&gt;The Skycoin universe experienced a surge of fresh energy during May as the long dark crypto winter started yielding to the spring of the bulls.&lt;/p&gt;
&lt;p&gt;Rather than surrendering to the temptation of hibernation during the aforementioned dark months, the Skycoin team and community were hard at work preparing for the inevitable spring thaw.&lt;/p&gt;
&lt;p&gt;This month&amp;rsquo;s update reflects the fruits of that work.&lt;/p&gt;
&lt;h2 id="development"&gt;Development&lt;/h2&gt;
&lt;p&gt;Development went ahead at full steam with the weekly development updates on the &lt;a href="https://www.skycoin.com/blog/"&gt;Skyblog&lt;/a&gt; showing continuous refinement of Skywire, the Skywallet, Ledger integration, CX and the Coin Hour Bank which are all nearing completion or big milestones.&lt;/p&gt;</description></item><item><title>Major June Announcements</title><link>https://blog.theskywirenetwork.net/posts/major-june-announcements/</link><pubDate>Sat, 01 Jun 2019 13:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/major-june-announcements/</guid><description>&lt;p&gt;The Skycoin community has many reasons to pop the champagne and celebrate!&lt;/p&gt;
&lt;p&gt;The Skycoin team is delivering not just one announcement, but multiple announcements for today alone!&lt;/p&gt;
&lt;br&gt;
&lt;h2 id="monthofannouncements"&gt;#MonthOfAnnouncements&lt;/h2&gt;
&lt;p&gt;As some of the community may have noticed in our flurry of recent news, today marks the start of &lt;strong&gt;Skycoin&amp;rsquo;s Month of Announcements&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;In a continual effort to keep the community up to date on Skycoin&amp;rsquo;s incredible progress, alongside our weekly development updates:&lt;/p&gt;</description></item><item><title>Buy Skycoin with Desktop Wallet v0.26</title><link>https://blog.theskywirenetwork.net/posts/buy-skycoin-with-desktop-wallet-v0-26/</link><pubDate>Sat, 01 Jun 2019 12:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/buy-skycoin-with-desktop-wallet-v0-26/</guid><description>&lt;p&gt;The Skycoin team is excited to announce an update to the official Skycoin desktop wallet that allows you to buy Skycoin directly from the Official Desktop Wallet!&lt;/p&gt;
&lt;p&gt;This new service is provided by an integration with &lt;a href="https://swaplab.cc/" title="Swaplab"&gt;Swaplab&lt;/a&gt;, and makes buying Skycoin even easier, safer and faster by removing the need to register with an exchange!&lt;/p&gt;
&lt;p&gt;Start by ensuring you have the most recent version of the Skycoin desktop wallet. Download the latest version, 0.26.0 or higher, from &lt;a href="https://www.skycoin.com/downloads/" title="Skycoin Downloads"&gt;skycoin.com/downloads&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Celebrating Skywire's Testnet Anniversary</title><link>https://blog.theskywirenetwork.net/posts/celebrating-skywire-s-testnet-anniversary/</link><pubDate>Sat, 01 Jun 2019 12:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/celebrating-skywire-s-testnet-anniversary/</guid><description>&lt;p&gt;After years of development, the Skycoin team launched Skywire with a public testnet, and we are amazed to see the progress to date!&lt;/p&gt;
&lt;h4 id="we-are-very-excited-to-celebrate-the-1-year-anniversary-for-the-skywire-testnet-today"&gt;We are very excited to celebrate the 1 year anniversary for the Skywire Testnet today!&lt;/h4&gt;
&lt;p&gt;The year has flown by, and we are extremely proud of our supportive community that has been growing the Skywire network at an amazing pace.&lt;/p&gt;
&lt;p&gt;And to show our appreciation, we are happy to announce:&lt;/p&gt;</description></item><item><title>Skycoin Development Update - Week 21</title><link>https://blog.theskywirenetwork.net/posts/skycoin-development-update-week-21/</link><pubDate>Fri, 24 May 2019 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/skycoin-development-update-week-21/</guid><description>&lt;h3 id="cx-update"&gt;CX Update&lt;/h3&gt;
&lt;p&gt;This week the developers fixed a number of bugs that were causing memory-related issues for CX-Chain programs and further improved the testing process with alterations to CX-Chain parameters (for example with Coin Hour Burn).&lt;/p&gt;
&lt;p&gt;Meanwhile, developers will benefit from the integration of a new command to work with: newcoin.&lt;/p&gt;
&lt;h3 id="skywire-update"&gt;Skywire Update&lt;/h3&gt;
&lt;p&gt;The latest work on Skywire has focused on a number of important fixes, as well as integration tests for both SSH and the proxy.&lt;/p&gt;</description></item><item><title>Skycoin Development Update - Week 20</title><link>https://blog.theskywirenetwork.net/posts/skycoin-development-update-week-20-1/</link><pubDate>Fri, 17 May 2019 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/skycoin-development-update-week-20-1/</guid><description>&lt;h3 id="cx-update"&gt;CX Update&lt;/h3&gt;
&lt;p&gt;The biggest announcement this week is the CX blockchain beta release, kicking off our first CX Labs contest. Check out the news around the contest in the &lt;a href="https://t.me/CXLabs" title="CX Labs Telegram room"&gt;CX Labs Telegram room&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Work on the CX programming language has also seen progress on the installation script, with extensive testing on a new Debian VM. This has helped identify possible reasons for why some users have been having difficulty, from issues installing Golang to conflicts between versions. To deal with these we have now updated the wiki, and work continues on the &lt;a href="https://github.com/skycoin/cx/wiki/CX-Chains-Tutorial" title="CX Tutorial"&gt;CX-Chains tutorial&lt;/a&gt;. (The examples here are simple, but they work!)&lt;/p&gt;</description></item><item><title>April 2019 Community Update</title><link>https://blog.theskywirenetwork.net/posts/april-209-community-update/</link><pubDate>Tue, 14 May 2019 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/april-209-community-update/</guid><description>&lt;hr&gt;
&lt;p&gt;Skycoin’s hectic progress flowed over from March to April. Starting with Skywire developer mainnet continuing its refinement, the Coin Hour Bank nearing public release, CX Labs offering developers earning potential via the creation of CX apps, and a collaborative Skycoin team attended the biggest Blockchain Hackathon in the world! Just to mention a few highlights. Read on for the full scoop!&lt;/p&gt;
&lt;h3 id="skywire"&gt;Skywire&lt;/h3&gt;
&lt;p&gt;We are starting with Skywire, our scalable peer-to-peer mesh network, delivering secure, uncensored, and lightning fast internet access across the globe.&lt;/p&gt;</description></item><item><title>Skycoin Development Update - Week 19</title><link>https://blog.theskywirenetwork.net/posts/skycoin-development-update-week-19/</link><pubDate>Fri, 10 May 2019 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/skycoin-development-update-week-19/</guid><description>&lt;h3 id="skywire-update"&gt;Skywire Update&lt;/h3&gt;
&lt;p&gt;This week Skywire has benefited from implementation of a human package that allows us to request user input for a number of actions, including transport creation. We have also started implementation of a new uptime tracker, which will soon replace the previous discovery uptime tracking implementation used for the testnet.&lt;/p&gt;
&lt;p&gt;Other work has focused on writing for router package tests and ongoing efforts to refactor the app package.&lt;/p&gt;</description></item><item><title>Skycoin Development Update - Week 18</title><link>https://blog.theskywirenetwork.net/posts/skycoin-development-update-week-18/</link><pubDate>Fri, 03 May 2019 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/skycoin-development-update-week-18/</guid><description>&lt;h3 id="skywire"&gt;Skywire&lt;/h3&gt;
&lt;p&gt;The main focus of the Skywire development this week was directed at continuing the refactoring of the app package and associated changes in the router module. For that purpose, tests were partially rewritten and new tests were developed to increase coverage. Additionally a configuration generator tool for the local test environment was written.&lt;/p&gt;
&lt;h3 id="skywallet"&gt;Skywallet&lt;/h3&gt;
&lt;p&gt;The team added more Salt sources for the Skywallet to salt entropy generated by the Skywallet. The linter was modified to improve the code quality and legibility. In order to allow external developers to develop with the Skywallet, enhanced contribution guidelines were added to the project and functions were added that allow to check the memory protection status of a Skywallet. More and improved tests were written for the Skywallet Golang interface.&lt;/p&gt;</description></item><item><title>Skycoin Development Update - Week 17</title><link>https://blog.theskywirenetwork.net/posts/skycoin-development-update-week-17/</link><pubDate>Fri, 26 Apr 2019 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/skycoin-development-update-week-17/</guid><description>&lt;h3 id="skywire-update"&gt;Skywire Update:&lt;/h3&gt;
&lt;p&gt;This week Skywire has moved toward better organization and simplicity. Key changes include the addition of centralized logging for the local testing environment and migration of the Route Setup Node to the public Skywire repo, simplifying the development process. We have also refactored the app package (with naming updates for improved clarity) and implemented pathfinding logic for the Skywire updater configuration file (much like what is used for the main Skywire repo).&lt;/p&gt;</description></item><item><title>Skycoin at Odyssey Hackathon 2019</title><link>https://blog.theskywirenetwork.net/posts/skycoin-x-odyssey-hackathon-2019/</link><pubDate>Thu, 25 Apr 2019 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/skycoin-x-odyssey-hackathon-2019/</guid><description>&lt;p&gt;Google ‘Odessey Hackathon’ and you will find an event billed as the world&amp;rsquo;s biggest AI and Blockchain hackathon. In just 3 years Odessey grew from 450 to 1500 participants competing in 11 tracks to solve 20 real-world societal challenges.&lt;/p&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
 &lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/pWW3FMgB5xc?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
 &lt;/div&gt;

&lt;br&gt;
&lt;p&gt;For the 2019 challenge, Skycoin partnered with Milvum which is a development house hailing from The Hague and with Hiber, a startup focussed on low cost, low energy communications satellites. Through the partnership, we demonstrated Skywire’s functionality in conjunction with other cutting edge technology.&lt;/p&gt;</description></item><item><title>Skycoin Development Update - Week 16</title><link>https://blog.theskywirenetwork.net/posts/skycoin-development-update-week-16/</link><pubDate>Fri, 19 Apr 2019 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/skycoin-development-update-week-16/</guid><description>&lt;h3 id="skywire-update"&gt;Skywire Update:&lt;/h3&gt;
&lt;p&gt;Progress on Skywire this week has mainly focused on important refactorings and simplifications. We deduplicated tests and rewrote unstable tests. We have also removed ACKs from the messaging system, simplifying the implementation.&lt;/p&gt;
&lt;p&gt;Among other developments, the node summary endpoint now contains the node IP address and the version of the node. The loop endpoint is finished, and we have started work on exposing the application APIs to the manager. This requires a refactoring of the app package.&lt;/p&gt;</description></item><item><title>The Skycoin Coin Hour Bank</title><link>https://blog.theskywirenetwork.net/posts/the-skycoin-coin-hour-bank/</link><pubDate>Thu, 18 Apr 2019 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/the-skycoin-coin-hour-bank/</guid><description>&lt;h4 id="what-is-the-coin-hour-bank"&gt;What is the Coin Hour Bank?&lt;/h4&gt;
&lt;p&gt;Put simply, the Coin Hour Bank is a system that allows you to deposit and transfer Coin Hours, the parallel Skycoin currency. Coin Hours are generated passively for holding Skycoins in your wallet. For a refresher on how this works, &lt;a href="https://medium.com/skycoin/skycoin-coin-hours-f537fa7ae614" title="Coin Hours article"&gt;read this article about Coin Hours&lt;/a&gt;.&lt;/p&gt;
&lt;h4 id="how-will-the-coin-hour-bank-work"&gt;How will the Coin Hour Bank work?&lt;/h4&gt;
&lt;p&gt;Version 1 of the Coin Hour Bank allows you to ‘deposit’ your Coin Hours by sending them from your desktop or mobile wallet to a new address in your Coin Hour Bank account. From there, you can send them to another user without cost. You can also view your balance, see your transaction history and initiate out-of-Bank withdrawals. This is an important milestone in the development of the Skycoin parallel currency.&lt;/p&gt;</description></item><item><title>Skycoin Development Update - Week 15</title><link>https://blog.theskywirenetwork.net/posts/skycoin-development-update-week-15/</link><pubDate>Fri, 12 Apr 2019 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/skycoin-development-update-week-15/</guid><description>&lt;h3 id="skywire"&gt;Skywire&lt;/h3&gt;
&lt;p&gt;Progress on Skywire continues this week with updated commands, bug fixes (completed and ongoing), and important steps toward a completed UI.&lt;/p&gt;
&lt;p&gt;We have now improved the Skywire Command Line interface by refactoring skywire-cli commands into separate groups that identify the services they interact with, rather than having them all grouped under skywire-cli as before. For example, commands that interact with skywire-node will now be grouped under skywire-cli node &lt;command&gt;, and so on.&lt;/p&gt;</description></item><item><title>March 2019 Community Update</title><link>https://blog.theskywirenetwork.net/posts/march-community-update/</link><pubDate>Thu, 11 Apr 2019 22:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/march-community-update/</guid><description>&lt;p&gt;March madness is a good description of the sheer volume of high quality development and progress made across the expanding Skycoin ecosystem. Mainnet launch, hardware wallet updates, and a new CX release were the highlights on the software side of activity.&lt;/p&gt;
&lt;p&gt;Within the Skyfleet, Drew Macgibbon lead the charge with the Skycoin Rewards Program, resulting in a number of fantastic new articles and videos by a host of first-time contributors. The first of the Skyfleet Projects was also announced - Skycoin integration into BTCPay Server - this is huge! Read on for all the Skycoin happenings in March.&lt;/p&gt;</description></item><item><title>Skycoin Development Update - Week 14</title><link>https://blog.theskywirenetwork.net/posts/skycoin-development-update-week-14/</link><pubDate>Fri, 05 Apr 2019 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/skycoin-development-update-week-14/</guid><description>&lt;p&gt;&lt;strong&gt;Skywire Update&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;During the past week, the bulk of the work dedicated to Skywire was focused on the Skywire Manager and on improvements to the network protocol.&lt;/p&gt;
&lt;p&gt;Work on the Skywire manager re-commenced with a strong push to complete the login/logout functionality of the manager. Tests were written, run and passed. The login/logout function, critical to the security of the Skywire manager, is now complete and changes have been documented.&lt;/p&gt;</description></item><item><title>Inside The Skywire Mainnet</title><link>https://blog.theskywirenetwork.net/posts/inside-the-skywire-mainnet/</link><pubDate>Wed, 03 Apr 2019 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/inside-the-skywire-mainnet/</guid><description>&lt;h2 id="the-new-internet-is-here"&gt;The New Internet Is Here&lt;/h2&gt;
&lt;p&gt;After years of development and about ten months of intensive testing on a network of nearly 10,000 nodes spanning the globe, we are happy to announce that the first version of Skywire’s mainnet is now live!&lt;/p&gt;
&lt;h4 id="what-is-skywire"&gt;&lt;strong&gt;What is Skywire?&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;Skywire is a decentralized, net-neutral, community-driven mesh internet that is fast and resistant to censorship.&lt;/p&gt;
&lt;p&gt;Today’s internet is run, or rather suppressed by an oligopolistic market. Large internet service providers (ISPs) harvest personal information, censor websites, give preferential speeds to certain websites, throttle bandwidth and face very few competitors. This means high bills for you and slow speed.&lt;/p&gt;</description></item><item><title>Skycoin Development Update - Week 13</title><link>https://blog.theskywirenetwork.net/posts/skycoin-development-update-week-13/</link><pubDate>Fri, 29 Mar 2019 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/skycoin-development-update-week-13/</guid><description>&lt;p&gt;&lt;strong&gt;Skywire Update:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Skywire has seen work on mainly two areas of the project: the Skywire Manager and automated testing.&lt;/p&gt;
&lt;p&gt;The Skywire Manager has been picked up again and we have finished the login/logout of the Manager. Users can sign in and use cookies to authenticate themselves when managing their nodes. This is required for security reasons.&lt;/p&gt;
&lt;p&gt;The other area where we have made progress is the creation of automated integration tests. Automated integration tests allow us to test the system with multiple services and instances running. So far we have relied on unit tests, which test only a single part, and had to do a lot of manual testing. Automated integration tests using the chat application have been created now and facilitate our work. We have created a development environment with a dockerized node and a docker network, allowing developers to build specific closed-network topologies for testing.&lt;/p&gt;</description></item><item><title>Development Update: Introducing CX v0.6 &amp; 0.6.1</title><link>https://blog.theskywirenetwork.net/posts/introducing-cx-v0.6-and-0.6.1/</link><pubDate>Tue, 19 Mar 2019 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/introducing-cx-v0.6-and-0.6.1/</guid><description>&lt;h4 id="about-cx"&gt;About CX&lt;/h4&gt;
&lt;p&gt;CX is the programming language for smart contracts on the &lt;a href="https://www.skycoin.com"&gt;Skycoin&lt;/a&gt; blockchain. CX is a general purpose, interpreted and compiled programming language, with a very strict type system and a syntax similar to Golang. CX provides a new programming paradigm based on the concept of affordances.&lt;/p&gt;
&lt;h1 id="cx-version-06"&gt;CX Version 0.6&lt;/h1&gt;
&lt;h2 id="20190125"&gt;2019&amp;ndash;01&amp;ndash;25&lt;/h2&gt;
&lt;p&gt;Version 0.6 of CX includes a number of features that were introduced in 0.5, including serialization, callbacks, improved error reporting and many more additions that will be laid out in the 0.6 release of the CX book.&lt;/p&gt;</description></item><item><title>Skywire Mainnet Development Update</title><link>https://blog.theskywirenetwork.net/posts/skywire-mainnet-development-update/</link><pubDate>Sat, 16 Mar 2019 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/skywire-mainnet-development-update/</guid><description>&lt;p&gt;The initial launch of Skywire mainnet is here! The coordinated work and development from our team was a massive effort to launch all the components of Skywire mainnet. Skywire consists of multiple components that all need to work together to allow the user to encrypt and successfully route traffic to peers, while still maintaining the ability to use applications on top of Skywire. The launch involved development of the following:&lt;/p&gt;</description></item><item><title>Introducing CXFX: The CX Graphics Library</title><link>https://blog.theskywirenetwork.net/posts/cxfx-v0.1/</link><pubDate>Mon, 11 Mar 2019 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/cxfx-v0.1/</guid><description>&lt;p&gt;CXFX&amp;rsquo;s objective is to facilitate the development of games and applications using &lt;a href="https://github.com/skycoin/cx"&gt;CX&lt;/a&gt;,
allowing developers to focus on building their apps instead of having to write everything from scratch! This is a way to share and factorize knowledge.&lt;/p&gt;
&lt;p&gt;At first, &lt;a href="https://github.com/skycoin/cxfx"&gt;CXFX&lt;/a&gt; will be a library-only environment,
allowing you to access CXFX functionalities from a CX program.
The eventual goal is to have something like a &lt;a href="https://en.wikipedia.org/wiki/WYSIWYG"&gt;WYSIWYG (what you see is what you get&lt;/a&gt;) game editor, like Unity.&lt;/p&gt;</description></item><item><title>Announcing PySkycoin, scripting for SkyFiber blockchains</title><link>https://blog.theskywirenetwork.net/posts/announcing-pyskycoin/</link><pubDate>Mon, 14 Jan 2019 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/announcing-pyskycoin/</guid><description>&lt;p&gt;Skyfleet, we are thrilled to announce the most recent version &lt;code&gt;0.25.0&lt;/code&gt; of &lt;code&gt;PySkycoin&lt;/code&gt;, the official Python client library for the Skycoin ecosystem. The library has been under development and testing for about a year. During that time it’s been the key to implement non-trivial numbers of tools and integrations. This article will try to help readers answer some simple questions: &lt;em&gt;What is PySkycoin? Why should I use it?&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;In short PySkycoin adds a scripting layer on top of the core Skycoin API’s. Now it is possible to use the Python tools we all love to build all sorts of applications powered by the Skycoin blockchain. This is yet another alternative for empowering the many enthusiasts engaged in the unstoppable expansion of the Skycoin ecosystem. The team is committed to ensuring the continued development of this library as well as its companion suite of open-source development tools, and will be hosting each stable release of these code-bases on the official &lt;a href="https://github.com/skycoin"&gt;Skycoin github&lt;/a&gt; account. Welcome into the future of cryptocurrencies powered by blockchain!&lt;/p&gt;</description></item><item><title>Skycoin iOS Mobile Wallet Announcement</title><link>https://blog.theskywirenetwork.net/posts/skycoin-ios-mobile-wallet-announcement/</link><pubDate>Thu, 15 Nov 2018 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/skycoin-ios-mobile-wallet-announcement/</guid><description>&lt;p&gt;Skyfleet, we are thrilled to announce the launch of the first official iOS version of our mobile wallet. &lt;a href="https://itunes.apple.com/gb/app/skycoin/id1439949089?mt=8"&gt;Now available for download in the Apple iOS App Store!&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Download the wallet here: &lt;a href="https://www.skycoin.com/downloads/"&gt;https://www.skycoin.com/downloads/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;A functional and secure mobile wallet is essential in the democratization of any peer-to-peer monetary system. The initial Android version of our mobile wallet included the basics and some advanced features from the Desktop wallet. Now iOS users will also be able to take full advantage of the Skycoin Ecosystem from the convenience of their phone or tablet.&lt;/p&gt;</description></item><item><title>Skycoin Development Update #135: Android Mobile Wallet Release</title><link>https://blog.theskywirenetwork.net/posts/development-update-135/</link><pubDate>Fri, 17 Aug 2018 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/development-update-135/</guid><description>&lt;p&gt;Skyfleet, we are thrilled to announce that the first official Android version of our mobile wallet is now fully ready to be released!&lt;/p&gt;
&lt;p&gt;Download the wallet here: &lt;a href="https://www.skycoin.com/downloads/"&gt;https://www.skycoin.com/downloads/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;(Android v6.0 &amp;ldquo;Marshmallow&amp;rdquo; and above)&lt;/p&gt;
&lt;p&gt;A functional and secure mobile wallet is essential in the democratization of any peer-to-peer monetary system. This initial version of our mobile wallet includes all the basic and some advanced features as well.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://blog.theskywirenetwork.net/img/skycoin_screen_wallet_list.png" alt=""&gt;
&lt;img src="https://blog.theskywirenetwork.net/img/skycoin_screen_wallet_details.png" alt=""&gt;&lt;/p&gt;
&lt;p&gt;Basic features such as:&lt;/p&gt;</description></item><item><title>Skycoin Development Update #134: Skycoin Wallet Update</title><link>https://blog.theskywirenetwork.net/posts/development-update-134/</link><pubDate>Fri, 27 Jul 2018 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/development-update-134/</guid><description>&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
 &lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/1VVqfrA_vhw?autoplay=1&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=1&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
 &lt;/div&gt;

&lt;br&gt;
&lt;p&gt;We have an update for the Skycoin wallet! &lt;a href="https://www.skycoin.com/downloads/"&gt;Version 0.24 has been released and is downloadable here.&lt;/a&gt; Version 0.24 comes loaded with multiple new features which will assist the Skycoin community to store and transact with SKY &amp;amp; Coin Hours. Among the new features is an advanced spending user interface (UI) consisting of the following features:&lt;/p&gt;</description></item><item><title>April Ecosystem Development Update</title><link>https://blog.theskywirenetwork.net/posts/april-ecosystem-development-update/</link><pubDate>Wed, 16 May 2018 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/april-ecosystem-development-update/</guid><description>&lt;p&gt;The inaugural Skycoin Ecosystem Conference in Shanghai marked the start of a very successful April for Skycoin as the project goes from strength to strength. The hard-working development team continues to make exciting progress on many different fronts including Skycoin itself, the blockchain collectibles game KittyCash, the CXO software and our dedicated hardware suite.&lt;/p&gt;
&lt;p&gt;There were multiple updates and changes made to the internal systems of Skycoin. Issues with Skycoin wallet synchronization and micro-transactions were resolved.&lt;/p&gt;</description></item><item><title>Skycoin Skywire Testnet Is Here!</title><link>https://blog.theskywirenetwork.net/posts/skycoin-skywire-testnet-is-here/</link><pubDate>Tue, 15 May 2018 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/skycoin-skywire-testnet-is-here/</guid><description>&lt;h2 id="skywire-testnet-going-live-may-22nd2018"&gt;Skywire Testnet Going Live May 22nd, 2018&lt;/h2&gt;
&lt;p&gt;Attention Skyfleet! The anticipation has been building, and we&amp;rsquo;re happy to announce the Skywire testnet will go live one week from today on May 22nd. This significant milestone for Skycoin will finally allow users to connect to create the new internet and engage in an inexpensive, faster, and more secure online experience.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;We are happy to announce the Skywire testnet will go live on May 22nd!&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>March Skycoin Ecosystem Technical Report</title><link>https://blog.theskywirenetwork.net/posts/march-skycoin-ecosystem-technical-report/</link><pubDate>Thu, 05 Apr 2018 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/march-skycoin-ecosystem-technical-report/</guid><description>&lt;h2 id="during-the-month-of-march-our-development-teams-have-made-tremendous-progress-on-many-projects-within-the-skycoin-ecosystem"&gt;During the month of March, our development teams have made tremendous progress on many projects within the Skycoin ecosystem&lt;/h2&gt;
&lt;h3 id="skycoin"&gt;Skycoin&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Completed command-line interface documentation and overall testing.&lt;/li&gt;
&lt;li&gt;Based on BIP21&amp;rsquo;s Skycoin URIs, &amp;ldquo;hours&amp;rdquo; will now be displayed to show the quantity of Coin Hours. For example &lt;code&gt;Skycoin:2hYbwYudg34AjkJJCRVRcMeqSWHUixjkfwY?amount=123.456&amp;amp;hours=70&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Using a new &lt;a href="https://github.com/sirupsen/logrus"&gt;logging module&lt;/a&gt; to replace the &lt;a href="https://github.com/op/go-logging"&gt;old module&lt;/a&gt; to ensure compatibility with future projects.&lt;/li&gt;
&lt;li&gt;Completed Skycoin Exchange Integration&amp;rsquo;s &lt;a href="http://github.com/skycoin/skycoin/blob/develop/INTEGRATION.md"&gt;documentation.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Tested the newest Go implementation v1.10.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="skycoin-wallet"&gt;Skycoin wallet&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Released wallet v22. Completed both the front-end and fixed vulnerabilities.&lt;/li&gt;
&lt;li&gt;Added a &lt;a href="http://github.com/skycoin/skycoin#release-signing"&gt;signature&lt;/a&gt; to the newest version of wallet in order to proof its authenticity.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="kittycash"&gt;KittyCash&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;KittyCash Verification Service - utilizing email subscription service to verify the customer&amp;rsquo;s purchase in IKO&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>Skycoin BBS v5.0 Release Announcement</title><link>https://blog.theskywirenetwork.net/posts/bbs-release-v5.0/</link><pubDate>Mon, 18 Dec 2017 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/bbs-release-v5.0/</guid><description>&lt;p&gt;Skycoin BBS v5.0 has finally been released with many changes under the hood!&lt;/p&gt;
&lt;h2 id="thin-client"&gt;Thin Client&lt;/h2&gt;
&lt;p&gt;The most apparent change of all, is the introduction of the thin client. You can now access Skycoin BBS without setting up a node! Just head to &lt;a href="http://bbs.skycoin.com"&gt;bbs.skycoin.com&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;In previous versions, one can only (and should only) access/submit content via a web user interface that is served locally. As this web-interface (and the API that it calls) has direct control over the node itself, and signs content with private keys that are stored in-node (or server-side), it is not appropriate to expose it to the public.&lt;/p&gt;</description></item><item><title>State of the Crypto Market and Development Updates</title><link>https://blog.theskywirenetwork.net/posts/state-of-the-crypto-market-development-updates/</link><pubDate>Sat, 14 Oct 2017 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/state-of-the-crypto-market-development-updates/</guid><description>&lt;ul&gt;
&lt;li&gt;&lt;a href="https://blog.theskywirenetwork.net/posts/state-of-the-crypto-market-development-updates/#q-a"&gt;Q&amp;amp;A&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://blog.theskywirenetwork.net/posts/state-of-the-crypto-market-development-updates/#summary-of-the-current-bitcoin-market"&gt;Summary of the Current Bitcoin Market&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://blog.theskywirenetwork.net/posts/state-of-the-crypto-market-development-updates/#new-wallet"&gt;New Wallet&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://blog.theskywirenetwork.net/posts/state-of-the-crypto-market-development-updates/#coinhours"&gt;CoinHours&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://blog.theskywirenetwork.net/posts/state-of-the-crypto-market-development-updates/#skycoin-dex-distributed-exchange-support"&gt;Skycoin (DEX) Distributed Exchange Support&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://blog.theskywirenetwork.net/posts/state-of-the-crypto-market-development-updates/#skycoin-projects-position-on-the-smart-contracts-fad"&gt;Skycoin Projects Position on the Smart Contracts Fad&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://blog.theskywirenetwork.net/posts/state-of-the-crypto-market-development-updates/#cx"&gt;CX&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://blog.theskywirenetwork.net/posts/state-of-the-crypto-market-development-updates/#skycoin-roadmap-finished"&gt;Skycoin Roadmap Finished&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://blog.theskywirenetwork.net/posts/state-of-the-crypto-market-development-updates/#first-distributed-social-media-platform-on-skycoin-platform-launches"&gt;First Distributed Social Media Platform on Skycoin Platform Launches&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://blog.theskywirenetwork.net/posts/state-of-the-crypto-market-development-updates/#skycoin-otc-market"&gt;Skycoin OTC Market&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="qa"&gt;Q&amp;amp;A&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;There is no mention of a re-working of the whitepapers.
Should this not be a priority so that your marketing that has started has
reference material.
This is a technical coin and so the documentation needs to be up to date.&lt;/p&gt;</description></item><item><title>Project Focus Update</title><link>https://blog.theskywirenetwork.net/posts/project-focus-update/</link><pubDate>Wed, 04 Oct 2017 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/project-focus-update/</guid><description>&lt;h3 id="mobile-wallet"&gt;Mobile Wallet&lt;/h3&gt;
&lt;p&gt;The Skycoin mobile wallet is done.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://play.google.com/apps/testing/net.skycoin.mobile"&gt;https://play.google.com/apps/testing/net.skycoin.mobile&lt;/a&gt;&lt;/p&gt;
&lt;h3 id="branding-design"&gt;Branding, Design&lt;/h3&gt;
&lt;p&gt;We are revamping the content pages for the Skycoin website&lt;/p&gt;
&lt;p&gt;We have a new logo now.&lt;/p&gt;
&lt;p&gt;Bounty program has been up for a month. If anyone wants to make Skycoin videos,
check the bounty program in telegram.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.skycoin.com/downloads/#assets"&gt;Skycoin Branding Kit&lt;/a&gt;&lt;/p&gt;
&lt;h3 id="skywire"&gt;Skywire&lt;/h3&gt;
&lt;p&gt;Skywire is working but is getting a rewrite, to use the skycoin/net networking
library.&lt;/p&gt;
&lt;p&gt;The dashboard for cluster management (node manager) and global network
dashboard is currently under development.&lt;/p&gt;</description></item><item><title>Skycoin BBS v4.1 Release Announcement</title><link>https://blog.theskywirenetwork.net/posts/bbs-release-v4.1/</link><pubDate>Tue, 26 Sep 2017 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/bbs-release-v4.1/</guid><description>&lt;p&gt;Skycoin BBS v4.1 has been released!&lt;/p&gt;
&lt;p&gt;&lt;a href="https://youtu.be/6ZqwgefYauU"&gt;&lt;img src="https://blog.theskywirenetwork.net/img/bbs-4.jpg" alt="Skycoin BBS Showcase 4 - YouTube"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2 id="change-log"&gt;Change Log&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;User interface improvements.&lt;/li&gt;
&lt;li&gt;Implemented service discovery (connections to other nodes are now automatically managed).&lt;/li&gt;
&lt;li&gt;Improved remote submission of board content (implemented via service discovery).&lt;/li&gt;
&lt;li&gt;Simplified process of board creation and hosting.&lt;/li&gt;
&lt;li&gt;Improvements to CXO data structure.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The next release will bring about even more exciting features! Watch this space to keep up to date.&lt;/p&gt;
&lt;h2 id="binaries"&gt;Binaries&lt;/h2&gt;
&lt;p&gt;These are avaliable for 64bit windows, mac and linux.&lt;/p&gt;</description></item><item><title>Skycoin BBS v3.1 Release Announcement</title><link>https://blog.theskywirenetwork.net/posts/bbs-release-v3.1/</link><pubDate>Wed, 06 Sep 2017 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/bbs-release-v3.1/</guid><description>&lt;p&gt;Skycoin BBS v3.1 has finally been released!&lt;/p&gt;
&lt;h2 id="changelog"&gt;Changelog&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Updated to use latest CXO.&lt;/li&gt;
&lt;li&gt;Reimplemented CXO data structure for easier diff management.&lt;/li&gt;
&lt;li&gt;Introduction of a &lt;code&gt;views&lt;/code&gt; module for easier implementation of different ways of viewing data.&lt;/li&gt;
&lt;li&gt;Implemented exporting/importing boards to/from file.&lt;/li&gt;
&lt;li&gt;Initial implementation of following/avoiding users.&lt;/li&gt;
&lt;li&gt;Improved UI (Work in progress).&lt;/li&gt;
&lt;li&gt;Automatic peer-to-peer relay of boards.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="binaries"&gt;Binaries&lt;/h2&gt;
&lt;p&gt;These are avaliable for 64bit windows, mac and linux.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://downloads.skycoin.com/bbs/skycoin_bbs_3.1_linux_amd64.zip"&gt;https://downloads.skycoin.com/bbs/skycoin_bbs_3.1_linux_amd64.zip&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://downloads.skycoin.com/bbs/skycoin_bbs_3.1_osx_amd64.zip"&gt;https://downloads.skycoin.com/bbs/skycoin_bbs_3.1_osx_amd64.zip&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://downloads.skycoin.com/bbs/skycoin_bbs_3.1_windows_amd64.zip"&gt;https://downloads.skycoin.com/bbs/skycoin_bbs_3.1_windows_amd64.zip&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="source-code"&gt;Source Code&lt;/h2&gt;
&lt;p&gt;Avaliable on &lt;a href="https://github.com/evanlinjin/bbs"&gt;GitHub&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Skycoin BBS Development Update #2</title><link>https://blog.theskywirenetwork.net/posts/bbs-development-update-2/</link><pubDate>Thu, 31 Aug 2017 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/bbs-development-update-2/</guid><description>&lt;p&gt;It&amp;rsquo;s been a bit more than a month since the release of version 0.1, and 0.2 is soon to be ready!&lt;/p&gt;
&lt;p&gt;The changes are the following:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Uses the latest CXO version (peer to peer self-replicating database).&lt;/li&gt;
&lt;li&gt;Reimplementation of CXO objects and tree (in preparation for new features).&lt;/li&gt;
&lt;li&gt;Introduction to a &lt;code&gt;views&lt;/code&gt; module for easy implementation of different ways of &amp;ldquo;viewing&amp;rdquo; content.&lt;/li&gt;
&lt;li&gt;Initial implementation of user following/avoiding.&lt;/li&gt;
&lt;li&gt;Completely revamped UI.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="cxo-changes"&gt;CXO Changes&lt;/h2&gt;
&lt;p&gt;CXO has been seriously refactored to be faster and more stable. The API has been made to work with hash arrays better - with constant time access, faster replication and the ability to access an element directly with a given hash.&lt;/p&gt;</description></item><item><title>Skywire and Viscript</title><link>https://blog.theskywirenetwork.net/posts/skywire-and-viscript/</link><pubDate>Tue, 15 Aug 2017 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/skywire-and-viscript/</guid><description>&lt;h2 id="introduction"&gt;Introduction&lt;/h2&gt;
&lt;h3 id="viscript"&gt;Viscript&lt;/h3&gt;
&lt;p&gt;&lt;a href="https://github.com/skycoin/viscript"&gt;Viscript&lt;/a&gt; is a cross platform CLI, and application launcher and for cluster management eventually. It is based on signal library as a signal server, so it can manage the signal clients, like node and the components in skywire. It can be run in GUI mode or headless mode.&lt;/p&gt;
&lt;h4 id="viscript-gui-screenshot"&gt;Viscript GUI Screenshot:&lt;/h4&gt;
&lt;p&gt;&lt;img src="https://blog.theskywirenetwork.net/img/viscript.jpg" alt="screenshot"&gt;&lt;/p&gt;
&lt;p&gt;We can add app configurations in the config.yaml file, like the meshnet-socks-server:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt; meshnet-socks-server:
 daemon: true
 desc: DESCRIPTION GOES HERE
 path: bin/meshnet/meshnet-run-socks-server
 default_args: []
 help: |
 [1] Text name of app, must be unique
 [2] Node address which app will be talked with. ex 101.202.34.56:9000
 [3] Port which socks server will use for connecting with target host. ex 8000

 Full Example Command:
 start meshnet-socks-server sockssrv0 101.202.34.56:9000 8001
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;After restart viscript, we can check the applications that can be started by viscript, by command apps.&lt;/p&gt;</description></item><item><title>Skycoin BBS Development Update #1</title><link>https://blog.theskywirenetwork.net/posts/bbs-development-update-1/</link><pubDate>Sat, 05 Aug 2017 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/bbs-development-update-1/</guid><description>&lt;h2 id="an-introduction"&gt;An Introduction&lt;/h2&gt;
&lt;p&gt;BBS stands for Bulletin Board System. Although traditional BBS systems are no longer widely used, BBS in the modern era is an icon for social services.&lt;/p&gt;
&lt;p&gt;Skycoin BBS is one of the first web applications to be implemented using the skycoin ecosystem. Skycoin attempts to revolutionize the internet; decentralizing it and encrypting protocols by default.&lt;/p&gt;
&lt;p&gt;Underlying Skycoin BBS is a peer-to-peer self-replicating database named CXO (part of the Skycoin ecosystem). It features immutable tree structures of Golang objects. All objects are referenced via their hashes alongside defined schemata. Each tree has a root object and signed against a public/private key pair. To update the tree, roots have incremental versions called &amp;ldquo;sequences&amp;rdquo;. This design allows for fast, bandwidth efficient data replication.&lt;/p&gt;</description></item><item><title>Skycoin: Introducing the Skyminer</title><link>https://blog.theskywirenetwork.net/posts/development-update-133/</link><pubDate>Tue, 13 Jun 2017 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/development-update-133/</guid><description>&lt;p&gt;Update:&lt;/p&gt;
&lt;h2 id="comment"&gt;Comment:&lt;/h2&gt;
&lt;p&gt;Quote from: &lt;strong&gt;hannusolo&lt;/strong&gt; on June 12, 2017, 07:55:31 PM&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Regarding tha subject, how much compute power and memory would these nodes require? I saw the renders on telegram about the proposed hardware node, but I have a mining pc that has a mostly unused cpu and memory, thinking about a little upgrade on this side in the future.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="response"&gt;Response:&lt;/h2&gt;
&lt;p&gt;Many hacking firms, used to take over peoples computers so they could put adware on them or build up a botnet, or do clickfraud to make websites look like they were getting more views than they actually are.&lt;/p&gt;</description></item><item><title>Development Update #131</title><link>https://blog.theskywirenetwork.net/posts/development-update-131/</link><pubDate>Tue, 16 May 2017 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/development-update-131/</guid><description>&lt;h2 id="bug-fix"&gt;Bug Fix:&lt;/h2&gt;
&lt;p&gt;We found a bug last night, where the node goes into infinite loop when trying to create a new block and transactions on network stopped.&lt;/p&gt;
&lt;p&gt;The node was assembling 5 transactions into a block, then failing because two transaction tried to spend the same output. Then failing and waiting a few seconds and then trying again with same result.&lt;/p&gt;
&lt;p&gt;The code is now enabled to take the list of pending transactions and add random transactions from the list, one at a time, discarding a transactions which if added to the block, would make the block unexecutable against the current unspent output set.&lt;/p&gt;</description></item><item><title>C2CX Listing and update</title><link>https://blog.theskywirenetwork.net/posts/development-update-130/</link><pubDate>Mon, 15 May 2017 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/development-update-130/</guid><description>&lt;h2 id="c2cx-skycoinbitcoin-order-book"&gt;C2CX Skycoin/Bitcoin Order Book&lt;/h2&gt;
&lt;p&gt;We are trying to get C2CX skycoin volume listed on coinmarket cap and get the APIs implemented.&lt;/p&gt;
&lt;p&gt;We are also going to open up the SKY/BTC order book, so Skycoin will not only be pegged to the yuan.&lt;/p&gt;
&lt;h2 id="infographics"&gt;Infographics&lt;/h2&gt;
&lt;p&gt;We are working on an infographics deck. We will have ~240 infographics and diagrams on various topics, explaining the internals of Skycoin and usage.&lt;/p&gt;
&lt;p&gt;These are uncorrected examples with a lot of errors.&lt;/p&gt;</description></item><item><title>Quality Control and Bug Fixes</title><link>https://blog.theskywirenetwork.net/posts/development-update-129/</link><pubDate>Wed, 26 Apr 2017 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/development-update-129/</guid><description>&lt;p&gt;We are doing misc quality control and major bug fixes now&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;We fixed a few bugs and path directory issues for the windows non-electron build. There was an error in the packaging script and assets were copied to the wrong path and the executable could not find the assets and server terminated on start.&lt;/p&gt;
&lt;p&gt;This should be fixed wallet version 15.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;We are hunting down and fixing a transaction prorogation issue, where a small number of TX hashes are not propagating to all nodes because of some race condition. We think it is fixed, but are still testing. We have implemented transaction rebroadcast, but disabled it by default because new state information flag for TX in unconfirmed pool should resolve the issue.&lt;/p&gt;</description></item><item><title>The New Skycoin Wallet Version is Out</title><link>https://blog.theskywirenetwork.net/posts/development-update-128/</link><pubDate>Fri, 21 Apr 2017 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/development-update-128/</guid><description>&lt;h2 id="new-wallet-version"&gt;New Wallet Version:&lt;/h2&gt;
&lt;p&gt;Skycoin Wallet version 15 is on the website, which fixes dozens of UI bugs.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Transaction status should be working&lt;/li&gt;
&lt;li&gt;There is a combined installer for Windows 32/64 bit now&lt;/li&gt;
&lt;li&gt;The windows path issue was fixed&lt;/li&gt;
&lt;li&gt;Peer to peer connections and PEX (peer exchange) are enabled now&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;There is a huge back log of improvements on the wallet we are working through.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;We have to decide what we will focus on for the next push&lt;/p&gt;</description></item><item><title>Skycoin Partnerships and Content Revision</title><link>https://blog.theskywirenetwork.net/posts/development-update-127/</link><pubDate>Thu, 16 Mar 2017 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/development-update-127/</guid><description>&lt;p&gt;Skycoin is finally getting an order book. This took too long.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;next exchange upgrade/rewrite skycoin will float against bitcoin&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The blog is going to be ready tomorrow and we will start migrating content.&lt;/p&gt;
&lt;p&gt;We are going to announce several partnerships with large mainstream institutions, so have to cleanup a bunch of stuff and will migrate anything relevant to blog.&lt;/p&gt;
&lt;p&gt;We will put a lot of content on the blog and things we have not revealed yet.&lt;/p&gt;</description></item><item><title>New Skycoin Website is Live</title><link>https://blog.theskywirenetwork.net/posts/development-update-126/</link><pubDate>Thu, 09 Mar 2017 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/development-update-126/</guid><description>&lt;h3 id="the-blockchain-explorer-is-up"&gt;The blockchain explorer is up&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://explorer.skycoin.com"&gt;http://explorer.skycoin.com&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="the-next-generation-of-the-skycoin-website-is-online"&gt;The next generation of the skycoin website is online&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://skycoin.com"&gt;http://skycoin.com&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="several-bug-fixes"&gt;Several bug fixes:&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Race conditions in networking pool fixed&lt;/li&gt;
&lt;li&gt;Blockchain explorer moved from node to golang backend server&lt;/li&gt;
&lt;li&gt;Congestion control added in meshnet library&lt;/li&gt;
&lt;li&gt;New wallet build etc&amp;hellip;&lt;/li&gt;
&lt;li&gt;CXO was completely written from scratch and is now half the size and simpler&lt;/li&gt;
&lt;li&gt;The CLI interface is battle tested and all the major bugs fixed. Automated deposits and withdrawals are working flawlessly now&lt;/li&gt;
&lt;li&gt;Rreenabled peer to peer exchange of peers (PEX) and several improvements, such as only relaying peers that allow incoming connections.&lt;/li&gt;
&lt;li&gt;Skycoin now has installer on OSX and Windows. We do not have auto update or anything advanced yet&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="we-are-"&gt;We are :&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Creating a skycoin blog and moving appropriate content there&lt;/li&gt;
&lt;li&gt;Creating marketing content and a press kit&lt;/li&gt;
&lt;li&gt;Creating our next generation infographic set, revealing more about the project. We need to communicate more clearly and with a message that audience will understand and which they will come away with and be able to transmit or communicate to others. We will have another set of messages for developers/technology focused segment.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="we-also-made-a-significant-mathematical-breakthrough-on-the-skycoin-economy"&gt;We also made a significant mathematical breakthrough on the skycoin economy:&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;You already receive coin hours for holding Skycoins (holding 10 coins for 1 hour, gives you 10 coin hours). These are used to pay transaction fees right now&lt;/li&gt;
&lt;li&gt;We figured out how to make Skycoin and coinhours convertible into tokens exchangeable for networking services&lt;/li&gt;
&lt;li&gt;This means we will be able to pay a bandwidth or network services reward to the Skycoin holders&lt;/li&gt;
&lt;li&gt;We are still evaluating if we should do this and if it would making holding Skycoin more attractive.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="marketing"&gt;Marketing&lt;/h2&gt;
&lt;h3 id="we-are"&gt;We are:&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Opening up development community&lt;/li&gt;
&lt;li&gt;Starting chatrooms for the development community and skycoin community&lt;/li&gt;
&lt;li&gt;Starting a systematic and sustained marketing effort (content creation, internal channels, push to external channels, press kit). This area we have put no effort in to date. This has to be ready, by the time the first applications on our platform launch.&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;Any technical updates on mesh network and all those exciting topics?&lt;/p&gt;</description></item><item><title>New Skycoin Website Blockchain Explorer</title><link>https://blog.theskywirenetwork.net/posts/development-update-125/</link><pubDate>Tue, 21 Feb 2017 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/development-update-125/</guid><description>&lt;h2 id="blockchain-explorer-almost-done-check-github"&gt;Blockchain explorer almost done. Check github.&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;github.com/skycoin/skycoin&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="new-website"&gt;New website&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;skycoin.com&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Exchange API and automated withdrawals and deposits has been in testing for a few months. Minor bugs fixed.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;We are working on &amp;ldquo;narrative&amp;rdquo; and explaining the differences between Skycoin and Bitcoin clearly and how the consensus process differs.&lt;/li&gt;
&lt;li&gt;Creating a movie to explain the project clearly&lt;/li&gt;
&lt;li&gt;Releasing the first applications that users can use and get coins.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The altcoin space is saturated with spam coins and we need to be very clear, concise and have a systematic marketing plan.&lt;/p&gt;</description></item><item><title>Skycoin Status Update</title><link>https://blog.theskywirenetwork.net/posts/development-update-124/</link><pubDate>Sat, 28 Jan 2017 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/development-update-124/</guid><description>&lt;p&gt;Exhausting list of changes, updates and bug fixes.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Most of the wallet bugs/issues are fixed&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;The CLI and automated deposits and withdrawals are done, raw transactions, send to many&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Continuous improvements to the wallet&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Continuous improvements to the website&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;CLI for meshnet daemon is working (try it)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;CLI for CXO daemon is in progress&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Designing new, next generation cross platform environment for bundling our applications and daemons&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;We have more academic papers coming.&lt;/p&gt;</description></item><item><title>Skycoin: Attack of the Bugs 5</title><link>https://blog.theskywirenetwork.net/posts/development-update-123/</link><pubDate>Fri, 27 Jan 2017 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/development-update-123/</guid><description>&lt;p&gt;We fixed eighty wallet bugs. Look at commits on github.&lt;/p&gt;
&lt;p&gt;The CLI is substantially upgraded and automated deposits and withdrawals are working now. Hundreds of changes and improves to the Skycoin CLI interface.&lt;/p&gt;
&lt;p&gt;We upgraded to latest version of electron and the copy/paste issues are fixed.&lt;/p&gt;
&lt;p&gt;32 bit windows builds should be ready in next release.&lt;/p&gt;
&lt;p&gt;We are creating installers for windows and OSX, so that you can install skycoin like a native application.&lt;/p&gt;</description></item><item><title>Skycoin Infographics 2</title><link>https://blog.theskywirenetwork.net/posts/development-update-122/</link><pubDate>Sun, 08 Jan 2017 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/development-update-122/</guid><description>&lt;h2 id="infographics"&gt;Infographics&lt;/h2&gt;
&lt;p&gt;&lt;img src="https://blog.theskywirenetwork.net/img/dev-update-122-1.jpg" alt=""&gt;&lt;/p&gt;</description></item><item><title>Skycoin Shifting Focus Towards Marketing</title><link>https://blog.theskywirenetwork.net/posts/development-update-121/</link><pubDate>Sun, 08 Jan 2017 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/development-update-121/</guid><description>&lt;p&gt;Our technicals are done. I think we have fixed the last bugs. The wallet is getting polished up very nicely.&lt;/p&gt;
&lt;h3 id="we-need-to-start-on-marketing-applications-user-community"&gt;We need to start on marketing, applications, user community:&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;We need to get blog and need to start getting content&lt;/li&gt;
&lt;li&gt;We need to start doing weekly content pushes.&lt;/li&gt;
&lt;li&gt;We need to pull in the market people&lt;/li&gt;
&lt;li&gt;We need to start doing sequential listings on the major exchanges&lt;/li&gt;
&lt;li&gt;We need to push out the first applications on the platform&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;So I think we are on track to shift focus to marketing soon. Definitely by the time the first two applications are running.&lt;/p&gt;</description></item><item><title>Skycoin Infographics 1</title><link>https://blog.theskywirenetwork.net/posts/development-update-120/</link><pubDate>Sun, 25 Dec 2016 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/development-update-120/</guid><description>&lt;h2 id="we-are-at-90-launch-readiness"&gt;We are at 90% launch readiness:&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Network is operating&lt;/li&gt;
&lt;li&gt;3 of the 7 white papers are on the websites&lt;/li&gt;
&lt;li&gt;Deposits, withdrawals and done&lt;/li&gt;
&lt;li&gt;Skycoin order book is done&lt;/li&gt;
&lt;li&gt;CLI and WebRPC are done&lt;/li&gt;
&lt;li&gt;Skycoin.com website is 70% done (backlog of tickets)&lt;/li&gt;
&lt;li&gt;Over half the wallet builds are on website (but have backlog of UI bugs)&lt;/li&gt;
&lt;li&gt;Wallet explorer API is done. We are waiting on web dev to fix UI bugs and to do the stand alone blockchain explorer&lt;/li&gt;
&lt;li&gt;Infographics are done&lt;/li&gt;
&lt;li&gt;Introduction video is in progress&lt;/li&gt;
&lt;li&gt;Several of our applications are close to launch (but backlog)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="infographics"&gt;Infographics&lt;/h2&gt;
&lt;p&gt;&lt;img src="https://blog.theskywirenetwork.net/img/dev-update-120-1.png" alt=""&gt;
&lt;img src="https://blog.theskywirenetwork.net/img/dev-update-120-2.png" alt=""&gt;
&lt;img src="https://blog.theskywirenetwork.net/img/dev-update-120-3.png" alt=""&gt;
&lt;img src="https://blog.theskywirenetwork.net/img/dev-update-120-4.png" alt=""&gt;
&lt;img src="https://blog.theskywirenetwork.net/img/dev-update-120-5.png" alt=""&gt;
&lt;img src="https://blog.theskywirenetwork.net/img/dev-update-120-6.png" alt=""&gt;
&lt;img src="https://blog.theskywirenetwork.net/img/dev-update-120-7.png" alt=""&gt;
&lt;img src="https://blog.theskywirenetwork.net/img/dev-update-120-8.png" alt=""&gt;
&lt;img src="https://blog.theskywirenetwork.net/img/dev-update-120-9.png" alt=""&gt;&lt;/p&gt;</description></item><item><title>Blockchain Explorer Nearing Completion</title><link>https://blog.theskywirenetwork.net/posts/development-update-118/</link><pubDate>Tue, 29 Nov 2016 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/development-update-118/</guid><description>&lt;p&gt;Blockchain explorer almost working. All of the API functions are in.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://blog.theskywirenetwork.net/img/dev-update-118-1.png" alt=""&gt;
&lt;img src="https://blog.theskywirenetwork.net/img/dev-update-118-2.png" alt=""&gt;
&lt;img src="https://blog.theskywirenetwork.net/img/dev-update-118-3.png" alt=""&gt;&lt;/p&gt;</description></item><item><title>Skycoin Social Platform Launch</title><link>https://blog.theskywirenetwork.net/posts/development-update-117/</link><pubDate>Wed, 23 Nov 2016 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/development-update-117/</guid><description>&lt;h2 id="summary"&gt;Summary:&lt;/h2&gt;
&lt;p&gt;We are launching our own post blockchain social platform. Starting with an immutable object replication system, inspired by Urbit and IPFS. Which is designed for decentralized social networking and source independent networking.&lt;/p&gt;
&lt;p&gt;We started this on friday and we almost have a decentralized text only version of 4chan working, five days later.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://godoc.org/github.com/skycoin/cxo"&gt;https://godoc.org/github.com/skycoin/cxo&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://godoc.org/github.com/skycoin/bbs"&gt;https://godoc.org/github.com/skycoin/bbs&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Each object has a schema and is a struct (with basic set of atomic types)&lt;/p&gt;</description></item><item><title>Skycoin Project Status Update</title><link>https://blog.theskywirenetwork.net/posts/development-update-116/</link><pubDate>Fri, 11 Nov 2016 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/development-update-116/</guid><description>&lt;h2 id="coin-status"&gt;Coin Status:&lt;/h2&gt;
&lt;p&gt;Dozens of bug fixes on the CLI and WebRPC interface. The OSX wallet directory bug is fixed now.&lt;/p&gt;
&lt;p&gt;I have been using CLI interface a lot.&lt;/p&gt;
&lt;h2 id="meshnet"&gt;Meshnet:&lt;/h2&gt;
&lt;p&gt;Three tasks left then we are onto info graphics and marketing. We do not have a user interface yet but back end will be working.&lt;/p&gt;
&lt;h2 id="marketing"&gt;Marketing:&lt;/h2&gt;
&lt;p&gt;We are trying to get full time person to manage the social media accounts, marketing and user community.&lt;/p&gt;</description></item><item><title>Command Line Interface Complete</title><link>https://blog.theskywirenetwork.net/posts/development-update-115/</link><pubDate>Tue, 08 Nov 2016 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/development-update-115/</guid><description>&lt;h2 id="90-commits"&gt;90 commits.&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;The Command Line Interface is done.&lt;/li&gt;
&lt;li&gt;The first version of the WebRPC interface is in the repo&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src="https://blog.theskywirenetwork.net/img/dev-update-115-1.png" alt=""&gt;&lt;/p&gt;
&lt;p&gt;Almost done with check box for floating on exchange.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;The CLI in next push will have&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Adding private key to wallet by private key hex&lt;/li&gt;
&lt;li&gt;Transactions for spending outputs held by a single address by private key&lt;/li&gt;
&lt;li&gt;Working send&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Community, Website and Skywire Update</title><link>https://blog.theskywirenetwork.net/posts/development-update-114/</link><pubDate>Fri, 04 Nov 2016 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/development-update-114/</guid><description>&lt;h2 id="summary"&gt;Summary:&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;We need to fix the GUI on the dev branch.&lt;/li&gt;
&lt;li&gt;We need to debug the CLI (command line interface, for exchange))&lt;/li&gt;
&lt;li&gt;We need to get the WebRPC (for exchanges)&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="we-need-to-start-building-out-the-community"&gt;We need to start building out the community.&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Need a chat room&lt;/li&gt;
&lt;li&gt;Need a forum or BBS&lt;/li&gt;
&lt;li&gt;Need a messaging system&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="we-need-to-get-the-three-white-papers-done-and-the-website"&gt;We need to get the three white papers done and the website:&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Coin / Consensus Paper&lt;/li&gt;
&lt;li&gt;Meshnet Paper&lt;/li&gt;
&lt;li&gt;Aether Paper&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="things-we-need"&gt;Things we need:&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;We have to decide if we will float and do the first market internally or use a third party.&lt;/li&gt;
&lt;li&gt;We have to get the roadmap up on the website.&lt;/li&gt;
&lt;li&gt;We have to create the third version of the website.&lt;/li&gt;
&lt;li&gt;We have to get a windows installer (to install under program menu)&lt;/li&gt;
&lt;li&gt;We need to do ansible and docker, build/installation automation scripts.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="skycoin-website"&gt;Skycoin Website:&lt;/h2&gt;
&lt;p&gt;The website is a flat file. No-script (no javascript).&lt;/p&gt;</description></item><item><title>SKY Wallet Update</title><link>https://blog.theskywirenetwork.net/posts/development-update-113/</link><pubDate>Thu, 03 Nov 2016 00:00:00 +0000</pubDate><guid>https://blog.theskywirenetwork.net/posts/development-update-113/</guid><description>&lt;h2 id="wallet-development"&gt;Wallet Development&lt;/h2&gt;
&lt;p&gt;The password feature is &amp;ldquo;wallet encryption&amp;rdquo;. We are still implementing wallet encryption. Wallet encryption will encrypt your private keys and the seed, so that if the wallet file is stolen, no one can spend your coins, without knowing the password. We are using sha256 + secp256k1hash (very slow on ASIC, GPU, CPU 1000x attempts per second max) for password derivation function and then ChaCha20.&lt;/p&gt;
&lt;p&gt;We added a lot of new features to the wallet and have not had time to QA everything.&lt;/p&gt;</description></item></channel></rss>