Skip to content

Releases: urbit/urbit

410k-6

22 Sep 11:59
109fbbb

Choose a tag to compare

%base hash (check with +vats %base, =verb %.y): 0v1v.sg2ab.de1tl.8h81h.qeerm.2hpi5.rufb4.em1eg.r6eck.od0ij.ifsdj

Description

410k-6 is a minor release with the following bugfixes:

  • A pill with an agent that would make an HTTP request in the +on-init arm would crash during boot.
  • The help face in the dojo was able to be rebound.
  • The /puby jael scry took an @p instead of a @ud for the life.
  • The dead flow mitigations in 409 would cause harmless but verbose crashes if the counterparty was still on 410.

What's Changed

New Contributors

Full Changelog: 410k-5...410k-6

410k-5

01 Sep 11:01
f7146bf

Choose a tag to compare

%base hash (check with +vats %base, =verb %.y): 0vc.5mhk7.7a76d.37rju.mvoai.hv568.ho2gn.j4u4u.npoe0.c9iub.f8ges

Description

410k-5 is a minor release aiming to address two issues:

  1. Eyre http channels were using way too much memory. Reconnecting to a channel with a few megabytes of base64 encoded images in them would require hundreds of megabytes of loom.
  2. Upgrading to 410 from a ship still stuck on 411 was broken since 410k-3.

What's Changed

  • ames: add %turf to $sign to not break old queued-events by @yosoyubik in #7223
  • eyre: make channels operate on cords instead of tapes by @pkova in #7224
  • Release 410k-5 by @pkova in #7226

Full Changelog: 410k-4...410k-5

410k-4

21 Aug 13:13
41dd3b5

Choose a tag to compare

%base hash (check with +vats %base, =verb %.y): 0v1j.l6b4f.5ic0r.7s9g3.11l6k.pqrkl.f2rr3.1lm72.30f05.eirk1.lsg0s

Description

This release fixes a directed messaging regression introduced by 410k-3 yesterday. Packet retry timers on directed messaging enabled peers would drop the gifts in the middle of handling the timer, causing packet retries to not fire after the initial five seconds.

What's Changed

Full Changelog: 410k-3...410k-4

410k-3

20 Aug 12:17
9e5cb36

Choose a tag to compare

%base hash (check with +vats %base, =verb %.y): 0v8.shk83.oog5l.12co7.om7hb.rktca.0isud.dif1f.q4026.3lgj7.7llm7

Description

This release fixes several longstanding bugs:

  • Suspended agents receiving subscription facts would drop them on the ground instead of storing and applying them when getting revived.
  • Sponsorship changes were not registered properly on the ship that changed its sponsor.
  • Essential desks was suspending non-essential desks unnecessarily aggressively on an OTA even if the desk was compatible.
  • Double boot protection had problems in scenarios where a ship had migrated their galaxy to directed messaging.
  • Subscriptions in Eyre were not getting cleaned up properly, causing a memory leak in rare circumstances.
  • Toggling dead flow consolidation back and forth would create tons of unnecessary behn timers for ames.
  • If a ship crashed non-deterministically (ctrl+c, oom etc.) the very moment someone was asking the ship for its moon keys the moon keys would never get delivered.

What's Changed

Full Changelog: 410k-2...410k-3

410k-2

10 Jun 13:59
f170eb9

Choose a tag to compare

%base hash (+check with +vats %base, =verb %.y): 0v1l.6h9mk.s675m.jmi9q.g5isc.20q0l.g6r86.36v92.1l6db.li3hh.6r68a

Description

410k-2 is a minor arvo release intended to fix two issues:

  1. A direct upgrade from 411 to 410-1 was impossible. All ships that didn't have already have the initial 410 release were unable to upgrade.
  2. A small amount of ships were unable to utilize double boot protection because of a parsing / serialization mismatch.

This release also brings improvements to /lib/math.

What's Changed

Full Changelog: 410k-1...410k-2

410k-1

28 May 13:25
3380378

Choose a tag to compare

Description

%base hash: (check with +vats %base, =verb %.y): 0v1f.9teg3.e6538.1r1ha.g3d06.am3ht.1rj7i.4doco.saini.3rag8.dm94r

410k-1 is a minor bugfix release addressing the following issues:

  • Directed messaging was unable to handle a very old wire format existing on some old ships.
  • Ships that were converted to directed messaging were not properly being reset back to old ames when they breached.
  • The interface for for %keen was extremely confusing in 410. The gift that was received was a %tune from peers using old ames and a %sage for peers converted to directed messaging. In this 410 release we change these to always return a %tune. In the next 409 release we will consolidate everything to a %sage which is the new directed messaging gift.
  • When communicating with a moon a ship always asks its parents for the keys of the moon. If by some unfortunate circumstance the parent crashed just as it received the request for the moon keys they would never get delivered, and communication between the client and the moon would never happen.

This release also adds support for using Authorization headers instead of cookies for Eyre authentication, double boot protection fixes and many directed messaging bugfixes.

The most important change of this release is the following:

Urbit provides extremely unusual guarantees for userspace Gall agents. Namely, when you poke or subscribe to a ship it is guaranteed that these actions will eventually be delivered to the ship without a need for the userspace application to have any retry logic. This guarantee is implemented through Ames retrying these pokes or subscriptions every 2 minutes until the ship in question responds. In normal operation all is at it should be, however...

If a ship receives a poke or a subscription for a Gall agent that is not active it will ignore the packet. This design decision enables a kind of reactivity later if the ship does install the agent. But if this ship never installs the agent then the sender is on the hook to send this packet every 2 minutes forever! And even though the receiver ignores the packet it still gets written to disk through the event log. We have seen ships in the wild with a hundred thousand of these "dead flows" firing every two minutes. Most older ships suffer from this issue, and notably there is currently no way to recover from the dead flows other than breaching.

If your ship feels slow the root cause is almost always these dead flows.

410k-1 provides the first layer of mitigation for these dead flows. Every message that has been tried 100 000 times or more will now back off to a day instead of two minutes. We have other mitigations in the pipeline.

What's Changed

Full Changelog: 410k...410k-1

410k

23 Apr 13:44
bd3973d

Choose a tag to compare

%base hash (+check with +vats %base, =verb %.y): 0v1a.kt0d8.rvtjm.fkmp2.oblo6.oq3jp.mahql.22k1d.ilrdk.rljer.ift9b

zuse 410
arvo 236
lull 322
hoon 137

Description

410 is a major release with the following highlighted features:

  • Directed messaging, aimed at improving the reliability especially speed of Ames networking.
  • Double boot protection, aimed at fixing one of the most common failure scenarios of operating a ship.
  • Essential desks, preventing the most common upgrade failure scenario.
  • Lagoon, native matrix math for Urbit.
  • HTTP streaming, exposing the scry namespace to the web with caching in the runtime.
  • Memory usage statistics in arvo, aimed primarily at helping hosting providers monitor their ships.
  • Stateless urwasm support for running Earth programming languages inside Arvo.

Directed messaging guide

Directed messaging has to be turned on manually on a peer-by-peer basis in 410. We will enable directed messaging for all ships in kelvin 409.

To migrate a peer to directed messaging, run the following command:

|ahoy <the-ship>, =dry %.n

If the command was successful you can try sending the peer a 16 megabyte |hi:

|hi <the-ship> (bex (bex 27))

If for some reason it becomes necessary to migrate the peer back to old ames use the following command:

|rege <the-ship>, =dry %.n

Breaking changes

There are very few breaking changes in 410, most applications will be compatible with no changes.

  • Moon keyfiles generated with arvo versions 411 and above are not compatible with 410 and the corresponding vere release vere-v3.2. To use a moon with an old keyfile, rotate the keys on the parent with |moon-cycle-keys <moon-name> after upgrading the parent to 410. Keyfiles for other classes of ships are unaffected.
  • The http scry url format has changed. Note that this does not affect scrying through js-http-api:
old: https://dinleb-rambep.arvo.network/_~_/cx/===/sys/kelvin
new: https://dinleb-rambep.arvo.network/_~_/===/cx/sys/kelvin 
  • The infamous |hi has a little known optional argument that allows you to send a message with your hi. This message is now of type atom instead of a tape. One byproduct of this is you can send a very large |hi to other ships, not recommended unless you're on directed messaging.
  • Certain generators and threads have been namespaced, such as +keys becoming +jael/keys. The most commonly used generators such as +vats remain unchanged.

What's Changed

New Contributors

Read more

411k-6

25 Mar 15:59
9979280

Choose a tag to compare

%base hash (check with +vat %base): 0v3.o67ps.cq1fl.tk52p.jj2dg.d11ug.rlfum.9kpgl.2f08g.eluvl.1lu71

Today ~sarlev-sarsen discovered that some ships were showing their Azimuth ethereum block as being far in the future. This was caused by an Infura incident that briefly routed all HTTP requests to the Optimism blockchain instead of the Ethereum blockchain (https://status.infura.io/incidents/g9vzrcm5cv20). Most ships regrettably listen to Ethereum through an Infura node operated by Tlon, but this incident only lasted 10 minutes so not every ship was hit.

411k-6 fixes the issue for all affected ships.

This release is on ~zod and is propagating across the network.

What's Changed

Full Changelog: 411k-5...411k-6

410k-rc3

06 Mar 15:21
5640099

Choose a tag to compare

410k-rc3 Pre-release
Pre-release

%base hash (check with +vats %base, =verb %.y): 0v1h.uvkp6.s8rfr.72una.v9saj.n3eck.bfioe.iv4q5.t220o.5opp7.rhni9

Description

During pre-release testing of 410k-rc2 a few issues were discovered:

  • Double boot protection had a bug affecting old ships and another one for ships who were migrated to directed messaging.
  • The directed messaging driver would be unnecessarily conservative in using direct routes.
  • The manual migration for directed messaging was not performing enough sanity checks for the peer before executing the migration.

For testing guide, see the release notes for 410k-rc1.

What's Changed

  • eyre: improve test ergonomics slightly by @Fang- in #7081
  • mesa: update /~/boot endpoint to support |mesa peers by @yosoyubik in #7107
  • azimuth-rpc: remove team check on-watch by @yosoyubik in #7101
  • eyre: explicit 401 instead of implicit downgrade by @Fang- in #7076
  • mesa: test migration before sending %ahoy $plea by @yosoyubik in #7108
  • ames: fix ping-bone detection in %boot scry by @pkova in #7110

Full Changelog: 410k-rc2...410k-rc3

410k-rc2

27 Feb 13:08
177dc69

Choose a tag to compare

410k-rc2 Pre-release
Pre-release

%base hash (check with +vat %base, =verb %.y): 0vp.694fn.28f63.t8kk4.f7r4k.qnfkq.ud5dp.vl28c.ph3ab.qg3of.3slrm

Description

During pre-release testing of 410k-rc1 some issues were discovered:

  • Cancelling remote scry threads with backspace was unreliable at best.
  • The %shut group encrypted remote scry namespace was not working.
  • Migrating ships to directed messaging was not possible in all cases.
  • The runtime could exit ungracefully with a crash on ctrl+d when cleaning up DM driver timer handles.
  • The DM driver would leak memory because of an unbounded remote scry cache and an unlimited pending interest table lifetime.

This release candidate fixes all of these issues. We also added stateless Urwasm to the 410 release.

For testing guide, see the release notes for 410k-rc1.

What's Changed

Full Changelog: 410k-rc1...410k-rc2