An operating function
Go to file
fang 4affae8181 eyre: GETting non-existent channels creates them
Previously, a channel could only be created by sending a PUT request,
and a GET request to receive the channel's stream would only succeed
after channel creation had happened that way. This forces client
libraries, that generally have an explicit "set up" step before allowing
normal operation, to do strange things, like sending faux pokes
(commonly hi-ing oneself) before connecting to the channel's stream as
normal.

Here, we update the GET request handling for channels to allow requests
for non-existent channels. When this happens, the channel will be
created, and eyre tracks the request as normal.

We do some... gentle restructuring... of +on-get-request:by-channel to
let the new creation case share code with the "already exists" codepath.
In the process, we find that duct-to-key was never getting updated in
the case where we replace the original channel request/connection with
the new incoming one. We fix this, it's trivial. We also identify two
other areas with vaguely-incorrect behavior, but consider them less
important and out of scope.

We also add a test case for "create channel through GET".
2023-09-19 19:12:25 +03:00
.github ci: fix ci on next/kelvin/412 branch 2023-07-19 17:04:20 +03:00
bin ci: test some nonsense 2023-07-28 16:33:34 +03:00
doc/spec Revert "removing old Nock specs" 2022-11-30 12:55:16 -05:00
extras Misc cleanup blocking CC-Release. (#1249) 2019-04-24 17:27:27 -07:00
nix ci: don't use nixpkgs urbit binary 2023-07-19 17:09:00 +03:00
pkg eyre: GETting non-existent channels creates them 2023-09-19 19:12:25 +03:00
sh ci: fix ci on next/kelvin/412 branch 2023-07-19 17:04:20 +03:00
tests eyre: GETting non-existent channels creates them 2023-09-19 19:12:25 +03:00
.gitattributes meta: enforce LF newlines for all hoon and hoon related files 2021-11-25 10:58:21 -05:00
.gitignore Merge branch 'master' into release/next-vere 2021-10-05 11:33:08 -04:00
.ignore Can now |hi to King Haskell over Ames! (and merged Master) 2019-07-31 22:16:02 -07:00
.mailmap mailmap: add pkova [ci skip] 2020-01-30 15:53:19 +04:00
.stylish-haskell.yaml stylish-haskell 2019-07-12 12:27:15 -07:00
CONTRIBUTING.md Update CONTRIBUTING.md 2023-05-24 11:40:45 -04:00
default.nix Merge branch 'develop' into lf/goerli-address 2023-02-09 06:57:19 -08:00
flake.lock ci: fix ci on next/kelvin/412 branch 2023-07-19 17:04:20 +03:00
flake.nix ci: fix ci on next/kelvin/412 branch 2023-07-19 17:04:20 +03:00
LICENSE.txt Restore toplevel LICENSE.txt file. 2020-01-28 13:24:39 -08:00
MAINTAINERS.md meta: don't codeblock table in MAINTAINERS.md 2023-04-29 07:36:28 -05:00
Makefile arvo: retool for goerli instead of deprecated ropsten 2022-10-26 13:11:22 +10:00
README.md Fix vere link and remove herb link 2023-01-18 11:47:58 -05:00
shell.nix build: removes herb from top-level Makefile, shell.nix 2022-06-03 14:40:08 -04:00
test-desk.bill ci: fix ci on next/kelvin/412 branch 2023-07-19 17:04:20 +03:00
vere-version ci: update vere-version 2023-01-18 14:54:59 -07:00

Urbit

Urbit is a personal server stack built from scratch. It has an identity layer (Azimuth), virtual machine (Vere), and operating system (Arvo).

A running Urbit "ship" is designed to operate with other ships peer-to-peer. Urbit is a general-purpose, peer-to-peer computer and network.

This repository contains the Arvo Kernel

For the Runtime, see Vere. For more on the identity layer, see Azimuth. To manage your Urbit identity, use Bridge.

Install

To install and run Urbit, please follow the instructions at urbit.org/getting-started. You'll be on the live network in a few minutes.

Contributing

Contributions of any form are more than welcome! Please take a look at our contributing guidelines for details on our git practices, coding styles, and how we manage issues.

You might also be interested in joining the urbit-dev mailing list.

Release

For details about our release process, see the maintainers guidelines