Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Releases: urbit/urbit

409k

10 Dec 13:12
c767abc

Choose a tag to compare

%base hash (check with +vats %base, =verb %.y): 0v19.n4cpn.0d8d1.693uf.8anru.6fih8.o9cdo.rm1js.tuje0.os701.6kehr

Description

The network has constantly been under heavy load since soon after software distribution released. This is because when ship A pokes ship B the poke will keep retrying forever until ship B installs the agent being poked. This is true even if ship A has long since suspended or even nuked the agent!

409 ameliorates the issue by creating a system flow between ships A and B, effectively causing B to notify A when (if ever) he installs the agent. Until that time no more packets will be sent. It is worth noting that this is an important step for enabling directed messaging on the network as a default.

The release includes support for the quickboot brass pill that speeds up initial boot from minutes to seconds. We also enable the spin hint for ship performance monitoring, visit <your-ship>/~_~/spin to see it in action. 409 also enables stateful urwasm, building on the stateless urwasm capabilities shipped in 410.

Breaking changes

The gifts emitted from the remote scry %keen task have changed from a %tune to a %sage. Here are the old and new types:

+$  spar  [=ship =path]

:: old
[%tune spar roar=(unit roar)]

+$  roar  (tale:pki:jael (pair path (unit (cask))))
+$  oath  @  ::  signature
++  tale         ::  urbit-signed *
   |$  [typ]     ::  payload mold
     $:  dat=typ   ::  data
          syg=(map ship (pair life oath))  ::  signatures
     ==

:: new
[%sage =sage:mess]
++  mess
    =>  |%
        +$  auth  (each @uxJ @uxH) :: &+sig, |+hmac
        +$  gage  $@(~ page)
        +$  sage  (pair spar gage)
        --
    $%  [%page (trel spar auth @)]
            [%peek spar]
            [%poke (pair spar sage)]
    ==

The rarely used !@ (zappat) rune has its children's order changed. If the wing is present the second branch is now taken, if the wing is not present the first branch is taken.

The iris %request task will now honor the redirects count in the outbound-config. Previously the outbound-config was ignored. Note that bunt of outbound-config follows five redirects for the status codes 307, 303 or 301.

The +mure and +mute arms for untyped virtualization are now +mure:vi and +mute:vi respectively.

What's Changed

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

409k-rc1

03 Dec 19:36
0f0ad2f

Choose a tag to compare

409k-rc1 Pre-release
Pre-release

%base hash (check with +vats %base, =verb %.y): 0v19.n4cpn.0d8d1.693uf.8anru.6fih8.o9cdo.rm1js.tuje0.os701.6kehr

Description

The network has constantly been under heavy load since soon after software distribution released. This is because when ship A pokes ship B the poke will keep retrying forever until ship B installs the agent being poked. This is true even if ship A has long since suspended or even nuked the agent!

409 ameliorates the issue by creating a system flow between ships A and B, effectively causing B to notify A when (if ever) he installs the agent. Until that time no more packets will be sent. It is worth noting that this is an important step for enabling directed messaging on the network as a default.

The release includes support for the quickboot brass pill that speeds up initial boot from minutes to seconds. We also enable the spin hint for ship performance monitoring, visit <your-ship>/~_~/spin to see it in action. 409 also enables stateful urwasm, building on the stateless urwasm capabilities shipped in 410.

Pre-release pill

The 409k-rc1 pill can be downloaded from bootstrap.urbit.org.

curl -O https://bootstrap.urbit.org/409k-rc1.pill
./urbit -F zod -B 409k-rc1.pill

The release is also on the network on ~marnec-dozzod-marzod, |ota ~marnec-dozzod-marzod to download it if you're feeling adventurous.

Breaking changes

The gifts emitted from the remote scry %keen task have changed from a %tune to a %sage. Here are the old and new types:

+$  spar  [=ship =path]

:: old
[%tune spar roar=(unit roar)]

+$  roar  (tale:pki:jael (pair path (unit (cask))))
+$  oath  @  ::  signature
++  tale         ::  urbit-signed *
   |$  [typ]     ::  payload mold
     $:  dat=typ   ::  data
          syg=(map ship (pair life oath))  ::  signatures
     ==

:: new
[%sage =sage:mess]
++  mess
    =>  |%
        +$  auth  (each @uxJ @uxH) :: &+sig, |+hmac
        +$  gage  $@(~ page)
        +$  sage  (pair spar gage)
        --
    $%  [%page (trel spar auth @)]
            [%peek spar]
            [%poke (pair spar sage)]
    ==

The rarely used !@ (zappat) rune has its children's order changed. If the wing is present the second branch is now taken, if the wing is not present the first branch is taken.

The iris %request task will now honor the redirects count in the outbound-config. Previously the outbound-config was ignored. Note that bunt of outbound-config follows five redirects for the status codes 307, 303 or 301.

The +mure and +mute arms for untyped virtualization are now +mure:vi and +mute:vi respectively.

What's Changed

Full Changelog: 410k-6...409k-rc1

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