An operating function (Prototype)
Go to file
Fang 2223a85666
eth-watcher: separate timeout from refresh-rate
Previously, when the refresh-rate timer activated, and the thread from
the previous activation was still running, we would kill it and start
a new one. For low refresh rates, on slower machines, nodes, or network
connections, this could cause the update to never conclude.

Here we add a timeout-time to eth-watcher's config. If the refresh-rate
timer activates, and a thread exists, but hasn't been running for at
least the specified timeout-time yet, we simply take no action, and wait
for the next refresh timer.

Note that we opted for "at least timeout-time", instead of killing &
restarting directly after the specified timeout-time has passed, to
avoid having to handle an extra timer flow.

In the +on-load logic, we configure the timeout-time for existing
watchdogs as six times the refresh-rate. We want to set
azimuth-tracker's timeout-time to ~m30, and don't care much about other,
less-likely-to-be-active use cases of eth-watcher.
2020-04-01 12:47:38 +02:00
.github/ISSUE_TEMPLATE meta: os1 bug template, provide desktop os example 2020-03-13 10:28:54 +01:00
bin release: urbit-os-v1.0.9 2020-03-31 16:45:40 -07:00
doc/spec Misc cleanup blocking CC-Release. (#1249) 2019-04-24 17:27:27 -07:00
extras Misc cleanup blocking CC-Release. (#1249) 2019-04-24 17:27:27 -07:00
nix build: remove urbit-large-log-limit derivation 2020-03-01 23:04:22 +04:00
pkg eth-watcher: separate timeout from refresh-rate 2020-04-01 12:47:38 +02:00
sh Merge branch 'jt/rename-release-tarballs' (#2395) 2020-03-05 12:22:31 +04:00
.gitattributes gitattributes: export-ignore test directories [ci skip] 2020-02-01 12:07:13 +04:00
.gitignore gitignore: re-add mystery lines [ci skip] 2020-03-01 23:19:01 +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
.travis.yml Update scripts to point to urbit-king. 2020-01-23 21:34:21 -08:00
CONTRIBUTING.md meta: update CONTRIBUTING, MAINTAINERS 2020-03-16 11:32:55 +04:00
default.nix Nix Build + Monorepo Structure (#1196) 2019-03-04 16:43:53 -08:00
LICENSE.txt Restore toplevel LICENSE.txt file. 2020-01-28 13:24:39 -08:00
MAINTAINERS.md meta: update CONTRIBUTING, MAINTAINERS 2020-03-16 11:32:55 +04:00
Makefile Build Linux static executables. (#2120) 2019-12-19 08:11:59 -08:00
README.md readme: update bridge URL [ci skip] 2020-01-23 04:38:27 +04:00

Urbit

A personal server operating function.

The Urbit address space, Azimuth, is now live on the Ethereum blockchain. You can find it at 0x223c067f8cf28ae173ee5cafea60ca44c335fecb or azimuth.eth. Owners of Azimuth points (galaxies, stars, or planets) can view or manage them using Bridge, and can also use them to boot Arvo, the Urbit OS.

Install

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

If you're interested in Urbit development, keep reading.

Development

Build Status

Urbit uses Nix to manage builds. On Linux and macOS you can install Nix via:

curl https://nixos.org/nix/install | sh

The Makefile in the project's root directory contains useful phony targets for building, installing, testing, and so on. You can use it to avoid dealing with Nix explicitly.

To build Urbit, for example, use:

make build

The test suite can similarly be run via a simple:

make test

Note that some of the Makefile targets need access to pills tracked via git LFS, so you'll also need to have those available locally:

git lfs install
git lfs pull

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: