on master help sign in
Add go-urbit proposal (#1382)
commit414cc540e3d29ee4ba73d35cd78b0bc204536104 authormikeosborne <mike@urbit.org> dateWed 23 Mar 2022, 12:55 (5 years ago) parent7982f46
1 file changed+64
content/grants/go-urbit.md+64
content/grants/go-urbit.mdnew file+64
@@ -0,0 +1,64 @@
1++++
2+
3+title = "Go-Urbit Core Interface"
4+date = "2022-03-23"
5+
6+[taxonomies]
7+grant_type = ["Proposal"]
8+grant_category = ["App Dev: Other"]
9+
10+[extra]
11+image = ""
12+description = "Create a go-urbit library that contains the required functions for interfacing with Ames"
13+reward = "$30000 in WSTR"
14+assignee = "~litryl-tadmev"
15+champion = "~wicdev-wisryt"
16+grant_id = "P0125"
17+completed = false
18+canceled = false
19+link = ""
20+
21++++
22+
23+# go-urbit Core Interface
24+
25+One of the missing projects in the Urbit ecosystem is the ability to directly communicate with Urbit from another device or system using the Ames protocol.
26+
27+Most particularly embedded devices and low-power systems needing to transmit messages to another ship, on which running a full Urbit ship would either be not possible, or not ideal. This also includes services running in cloud environments only needing to transmit message packets.
28+
29+I am proposing to create a go-urbit library that contains the required functions for interfacing with Ames.
30+
31+My end goal, as discussed with ~wicdev-wisryt for a future proposal, is to rewrite the Urbit King in go using this library for maximum security and memory safety.
32+
33+## Milestones
34+
35+### Milestone 1 - Go Noun
36+
37+Expected Completion: 15 April 2022
38+Payment: $10000 in WSTR
39+
40+Implement the Noun protocol in Golang.
41+
42+Core Noun functions:
43+
44+- mug
45+- jam
46+- cue
47+
48+Implement the core Noun structures:
49+
50+- Atom
51+- Cell
52+
53+### Milestone 2 - Go Ames Utilities
54+
55+Expected Completion: 1 May 2022
56+Payment: $20000 in WSTR
57+
58+Implement a Golang utility library for interfacing with Ames.
59+
60+- Lookup a planet's keys on Ethereum by name
61+- Send encrypted packets using urcrypt
62+- Construct and send poke
63+- Encode and send packet
64+- Write documentation on setup and usage