Blog Release of Kelvin 410k imminent

Jeremy Tunnell at

This is shaping up to be the biggest release we’ve done so far this year — possibly the biggest release ever. We’re targeting a release candidate in the next 2-4 weeks, with full release in late Q3 or early Q4, depending on how testing goes.

  • Directed Messaging: this is the headliner of the release. Directed Messaging improves data transfer speeds by 1000-10,000x and makes peer discovery significantly more reliable. This enables fast and efficient transfer of large amounts of data — from Group backlogs to large files.
  • HTTP Scry & Streaming: scry (aka “read”) requests will now be cached in the runtime, ensuring fast loads that never hit Arvo for frequently accessed content over HTTP. Taking that a step further, eyre will now support HTTP Streaming, which makes it possible to efficiently stream media from a ship by making use of HTTP range requests.
  • Double-boot Protection: double-booting is an easy mistake to make. If you’ve got a ship running in a terminal somewhere and accidentally boot it again elsewhere, either from the same keyfile or the same pier, your whole ship is toast and has to be breached. This work makes it practically impossible to make that mistake, preventing an extremely common source of support issues and user dissatisfaction.
  • In-Arvo Memory Reports: |mass is the command used to produce a memory usage report. Problem: this report is generated by the runtime and printed to Arvo, so Arvo has no actual awareness of memory usage. This will no longer be the case after 410K — memory reports from the runtime will now be delivered to Arvo as a data structure with granular information (per-vane, road, agent, etc) about usage. This is important in a world where Urbit can store large amounts of media, as users need to be aware of how much space they have available before downloading large files/datasets. This work will ship with a new agent in the %base desk that will:
    • Allow reports to be run on a configurable schedule
    • Persist every memory usage report with a timestamp, giving instant information about the most recent memory usage and enable statistics to be measured over time
    • Provide an interface to send memory reports to other ships on the network. We’ll use this to allow users to opt-in to sending their memory usage to a UF ship, enabling us to track detailed memory usage across the fleet.
    • Enable CSV exports for data analysis
  • Runtime crash stacktraces: vere currently provides minimal information when it crashes — this makes vere crashes difficult to debug in development and prevents users from providing necessary insights to developers in troubleshooting. More information is better. This is a prerequisite for implementing useful automated crash reports upon runtime errors.
  • new-app: on the live network you can install desks from ships that distribute them, but during development a fake ship has no access to the live network from which to sync desks. The -new-app thread is a DevEx improvement that allows a developer to install a desk directly from a GitHub repository.
  • Dojo help: two improvements were made to the dojo experience that should make orientation to the system much better for developers:
    • Typing help, a common thing to do at a new CLI, prompts the user to run the +start generator that provides a gentle tutorial to the CLI.
    • The +help generator has been updated to provide documentation for threads, generators and agents. Documentation has been added throughout all of the above in the %base desk to make +help provide useful feedback.
  • Userspace standard library: several new libraries have been introduced to the %base  desk that provide normal-looking interfaces to common standard library functions. The Hoon standard library is notorious for using extremely bespoke names for functions that have fairly standardized naming outside of Hoon. For example, concat instead of weldfilter instead of skimappend instead of snoc

Completion of Directed Messaging is the only major blocker for this release, work on which is ongoing. All the major pieces are implemented and in the process of being integrated, tested, and fixed as bugs are discovered.

Jeremy brokers the sale of galaxies and stars. To purchase or sell a galaxy or star contact him at [email protected]

Add Comment