1d0409c4c4
We used to not accept new indirect lanes if we already have a direct lane. This means that if Bob, with a publicly-accessible lane, changes lanes (eg by restarting the process and getting a new port or changing ip addresses), tries to talk to Alice, who is behind a NAT, then Bob will try directly but fail (because Alice is behind a NAT), so he will route the message through her galaxy. This is good -- the message gets to Alice. However, Alice had a direct route to Bob's old lane, so she will try to ack on that lane, which fails. She will not time out this lane because she doesn't know that Bob isn't getting the acks (acks don't have their own acks). The solution is that if Alice receives an indirect lane for Bob when she already has a direct lane, she shouldn't ignore it. If the lane is the same as what she has, she shouldn't change anything (in particular, she shouldn't mark it as indirect). But if it's a new lane, she should discard her old direct lane and use the new indirect lane. |
||
---|---|---|
.. | ||
app | ||
gen | ||
lib | ||
mar | ||
ren | ||
sur | ||
sys | ||
ted | ||
tests | ||
.gitattributes | ||
.ignore | ||
LICENSE.txt | ||
README.md | ||
TESTING.udon |
Arvo
A clean-slate operating system.
Usage
To run Arvo, you'll need Urbit. To install Urbit and run Arvo please follow the instructions in the getting started docs. You'll be on the live network in a few minutes.
If you're doing development on Arvo, keep reading.
Documentation
Find Arvo's documentation on urbit.org.
Development
To boot a fake ship from your development files, run urbit
with the following arguments:
urbit -F zod -A /path/to/arvo -c fakezod
Mount Arvo's filesystem allows you to update its contents through Unix. To do so, run |mount
in dojo. It is most common to |mount /=home=
.
To create a custom pill (bootstrapping object) from the files loaded into the home desk, run .my/pill +solid
. Your pill will appear in /path/to/fakezod/.urb/put/my.pill
.
To boot a fake ship with a custom pill, use the -B
flag:
urbit -F zod -A /path/to/arvo -B /path/to.pill -c fakezod
To run all tests in /tests
, run +test
in dojo. +test /some/path
would only run all tests in /tests/some/path
.
Maintainers
Most parts of Arvo have dedicated maintainers.
/sys/hoon
: @pilfer-pandex (~pilfer-pandex)/sys/zuse
: @pilfer-pandex (~pilfer-pandex)/sys/arvo
: @jtobin (~nidsut-tomdun)/sys/vane/ames
: @belisarius222 (~rovnys-ricfer) & @joemfb (~master-morzod)/sys/vane/behn
: @belisarius222 (~rovnys-ricfer)/sys/vane/clay
: @philipcmonk (~wicdev-wisryt)/sys/vane/dill
: @bernardodelaplaz (~rigdyn-sondur)/sys/vane/eyre
: @eglaysher (~littel-ponnys)/sys/vane/ford
: @belisarius222 (~rovnys-ricfer) & @eglaysher (~littel-ponnys)/sys/vane/gall
: @jtobin (~nidsut-tomdun)/sys/vane/jael
: @fang- (~palfun-foslup) & @joemfb (~master-morzod)/app/acme
: @joemfb (~master-morzod)/app/dns
: @joemfb (~master-morzod)/app/hall
: @fang- (~palfun-foslup)/app/talk
: @fang- (~palfun-foslup)/app/aqua
: @philipcmonk (~wicdev-wisryt)/lib/test
: @eglaysher (~littel-ponnys)
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, how we manage issues, and so on.
You might also be interested in:
- joining the urbit-dev mailing list.
- applying to Hoon School, a course we run to teach the Hoon programming language and Urbit application development.