on master help sign in
Merge pull request #1127 from urbit/mike/grants-tag-cleanup

Cleaned up grants directory (added canceled tags, deleted duplicate p…

commit6f9e70331c2bc392b79a487b330d0b3fd6ce8f85 authormikeosborne <mike@urbit.org> dateFri 17 Sep 2021, 15:58 (5 years ago) parenta06b89c2412c1d
53 files changed+132−342
content/grants/analytics-script.md+2−1 content/grants/art-by-urbit.md+1 content/grants/bridge-l2-revamp.md+1 content/grants/calendar-ui.md+1 content/grants/comprehensive-local-server-and-mum-explanation-video.md+2−1 content/grants/contacts.md+1 content/grants/content-producer.md+1 content/grants/cross-platform-desktop-urbit-app.md+2−1 content/grants/educational-guide-todomvc-urbit-edition.md+1 content/grants/feed-aggregator.md+1 content/grants/graph-store-documentation-guide.md+1 content/grants/guide-to-s3.md+1 content/grants/host-two-urbit-meetups-12.md+2−1 content/grants/host-two-urbit-meetups-13.md+59 content/grants/json-jet.md+1 content/grants/links-in-urbit-reference-docs.md+2−1 content/grants/login-with-urbit.md+1 content/grants/machine-learning.md+1 content/grants/minimal-urbit-os.md+1 content/grants/network-explorer-data-pipeline-http-api.md+1 content/grants/network-explorer.md−233 content/grants/nuck-jet.md+1 content/grants/overhaul-the-urbitorg-website.md+1 content/grants/planet-sales.md+1 content/grants/search-in-groups.md+1−1 content/grants/slaw-scot-jets.md+1−1 content/grants/-smol-future-sustained-knowledge-sharing-and-marketing.md → content/grants/smol-future-sustained-knowledge-sharing-and-marketing.md content/grants/speech-recognition.md+1 content/grants/translate-key-parts-of-urbitorg-into-german.md+1 content/grants/translate-key-parts-of-urbitorg-into-korean.md+1 content/grants/translate-key-parts-of-urbitorg-into-spanish.md+1 content/grants/try-urbit-website.md+2−1 content/grants/ucal-google-and-outlook-integration.md+1 content/grants/urbian-a-customized-linux-distribution-for-urbit-appliances.md+1 content/grants/urbit-community-concierge-east-coast-2q2021.md+2−1 content/grants/urbit-community-concierge-east-coast.md+2−1 content/grants/urbit-community-concierge-west-coast-2q2021.md+2−1 content/grants/urbit-community-concierge-west-coast.md+2−1 content/grants/urbit-event-series.md+1 content/grants/urbit-explainer-video.md+1 content/grants/urbit-http-api-for-emacs-elisp.md+1 content/grants/urbit-http-api-for-kotlin.md+1 content/grants/urbit-http-api-for-python.md+1 content/grants/urbit-http-api-for-rust.md+1 content/grants/urbit-http-interface-java-edition.md+1 content/grants/urbit-http-library-for-ruby.md+1 content/grants/urbit-irc-bridge.md+1 content/grants/urbit-lfs-filehosting.md+1 content/grants/urbit-react-cookbook.md+1 content/grants/video-content-manager.md+1 content/grants/volt-lightning-on-urbit.md+1 content/grants/webrtc-gall-agent-and-external-app.md+15−17 content/grants/webrtc.md−80
content/grants/analytics-script.md+2−1
@@ -11,7 +11,8 @@ image = ""
1111description = "Write a generator that exports chat data into a CSV."
1212reward = 1
1313assignee = "~hosted-fornet"
14−completed = false
14+completed = true
15+canceled = false
1516work_request_link = "https://airtable.com/shr4qt9t9kz7RaOIa?prefill_Grant+ID=B0015&prefill_Grant+Name=Analytics%20Script"
1617+++
1718
content/grants/art-by-urbit.md+1
@@ -13,6 +13,7 @@ reward = 1
1313assignee = "nartes-fasrum"
1414id = "636838408"
1515completed = false
16+canceled = false
1617link = ""
1718+++
1819
content/grants/bridge-l2-revamp.md+1
@@ -12,6 +12,7 @@ description = "Our Layer 2 scaling solution is nearing completion, and the Bridg
1212reward = 5
1313assignee = "~datder-sonnet"
1414completed = false
15+canceled = false
1516link = ""
1617+++
1718
content/grants/calendar-ui.md+1
@@ -13,6 +13,7 @@ reward = 2
1313assignee = "finled-bansel"
1414id = "1555464949"
1515completed = false
16+canceled = true
1617link = ""
1718+++
1819
content/grants/comprehensive-local-server-and-mum-explanation-video.md+2−1
@@ -10,9 +10,10 @@ grant_category = [ "Community" ]
1010image = ""
1111description = "Series of three videos:1) Purchase planet, install and run on a local machine2) nginx setup3) Explaining Urbit to my tech illiterate mum "
1212reward = 1
13−assignee = "mislyr-midnyt"
13+assignee = "mislyr-misnyt"
1414id = "2020133197"
1515completed = false
16+canceled = false
1617link = ""
1718+++
1819
content/grants/contacts.md+1
@@ -13,6 +13,7 @@ reward = 1
1313mentor = "~timluc-miptev"
1414assignee = ""
1515completed = false
16+canceled = false
1617work_request_link = "https://airtable.com/shr4qt9t9kz7RaOIa?prefill_Grant+ID=B0034&prefill_Grant+Name=Contacts%20App"
1718+++
1819
content/grants/content-producer.md+1
@@ -13,6 +13,7 @@ reward = 3
1313assignee = "~sitful-hatred"
1414id = ""
1515completed = false
16+canceled = false
1617link = ""
1718+++
1819
content/grants/cross-platform-desktop-urbit-app.md+2−1
@@ -12,7 +12,8 @@ description = "A native app that makes running Urbit near friction-less for ever
1212reward = 10
1313assignee = "nocsyx-lassul"
1414id = "740109059"
15−completed = false
15+completed = true
16+canceled = false
1617link = ""
1718+++
1819
content/grants/educational-guide-todomvc-urbit-edition.md+1
@@ -13,6 +13,7 @@ reward = 10
1313assignee = "~rabsef-bicrym"
1414id = "1372696624"
1515completed = false
16+canceled = false
1617link = ""
1718+++
1819
content/grants/feed-aggregator.md+1
@@ -13,6 +13,7 @@ reward = 5
1313assignee = "~mirtyl-wacdec"
1414grant_id = "P0043"
1515completed = false
16+canceled = false
1617link = ""
1718+++
1819
content/grants/graph-store-documentation-guide.md+1
@@ -13,6 +13,7 @@ reward = 4
1313assignee = "~sipfyn-pidmex"
1414id = "1888977136"
1515completed = false
16+canceled = false
1617link = ""
1718+++
1819
content/grants/guide-to-s3.md+1
@@ -13,6 +13,7 @@ reward = 1
1313assignee = "~tomnyr-tirsyr"
1414id = ""
1515completed = false
16+canceled = false
1617link = ""
1718+++
1819
content/grants/host-two-urbit-meetups-12.md+2−1
@@ -10,10 +10,11 @@ grant_category = [ "Community" ]
1010image = ""
1111description = "Urbit needs champions! The Urbit Foundation is looking for community members to host local or online meetups to spread the word."
1212reward = 1
13−assignee = ""
13+assignee = "~tillys-fasryp"
1414id = ""
1515work_request_link = "https://airtable.com/shr4qt9t9kz7RaOIa?prefill_Grant+ID=B0031&prefill_Grant+Name=Host%20Two%20Urbit%20Meetups%20%2812%29"
1616completed = false
17+canceled = false
1718link = ""
1819+++
1920
content/grants/host-two-urbit-meetups-13.mdnew file+59
@@ -0,0 +1,59 @@
1++++
2+title = "Host Two Urbit Meetups (13)"
3+date = "2021-09-14"
4+
5+[taxonomies]
6+grant_type = [ "Bounty" ]
7+grant_category = [ "Community" ]
8+
9+[extra]
10+image = ""
11+description = "Urbit needs champions! The Urbit Foundation is looking for community members to host local or online meetups to spread the word."
12+reward = 1
13+assignee = ""
14+id = ""
15+work_request_link = "https://airtable.com/shr4qt9t9kz7RaOIa?prefill_Grant+ID=B0083&prefill_Grant+Name=Host%20Two%20Urbit%20Meetups%20%2813%29"
16+completed = false
17+canceled = false
18+link = ""
19+
20++++
21+
22+#### Background
23+
24+Urbit needs champions! The Urbit Foundation is looking for community members to host local or online meetups to spread the word.
25+
26+#### Bounty Description
27+
28+This bounty is to host an Urbit meetup in your city. The meetup should meet the following criteria:
29+
30+- The meetup must be public, and there must be a public web link for joining (like meetup.com)
31+- The meetup must have a presentation or talk about Urbit.
32+- The presentation or talk must be recorded and posted publicly online.
33+- You must promote the event vigorously; social media, a website, etc. Email support@urbit.org if you want a signal boost.
34+- You must host at least two meetups.
35+
36+You should go into this bounty with the mindset of creating a regularly scheduled meetup, one that might become the nucleus of your city's Urbit community. Also, email support@tlon.io once you've hosted a meetup, and we will add you to your [list of active meetups](https://urbit.org/community/meetups/)!
37+
38+#### Resources
39+
40+Check out our [guide](https://urbit.org/community/hosting-a-meetup/) to best practices for Urbit meetups.
41+
42+#### Contribution Guidelines
43+
44+- Do not begin work until your request to claim this bounty is accepted.
45+- When applying to work on the bounty, tell us a little about yourself and mention which city you'd be hosting the meetups in.
46+- Proof of the meetups happening will be determined by the recordings of the presentations. Email links to these recordings to grants@urbit.org.
47+- You have 100 days from the time of approval to complete this bounty.
48+
49+## Milestones
50+
51+### The first meetup is held
52+
53+0 stars
54+The first meetup is held, and a recording of that meetup's talk or presentation is sent to grants@urbit.org.
55+
56+### The second meetup is held
57+
58+1 stars
59+The second meetup is held, and a recording of that meetup's talk or presentation is sent to grants@urbit.org.
content/grants/json-jet.md+1
@@ -13,6 +13,7 @@ reward = 1
1313mentor = "~timluc-miptev"
1414assignee = "~finmep-lanteb"
1515completed = false
16+canceled = false
1617work_request_link = "https://airtable.com/shr4qt9t9kz7RaOIa?prefill_Grant+ID=B0036&prefill_Grant+Name=JSON%20Parsing%2FSerialization%20Jet"
1718+++
1819
content/grants/links-in-urbit-reference-docs.md+2−1
@@ -12,7 +12,8 @@ description = "Add links to our reference doc pages so that people can easily di
1212reward = 1
1313assignee = "alecbrick"
1414id = "45608361"
15−completed = false
15+completed = true
16+canceled = false
1617link = ""
1718+++
1819
content/grants/login-with-urbit.md+1
@@ -13,6 +13,7 @@ reward = 8
1313assignee = "dcSpark"
1414id = ""
1515completed = false
16+canceled = false
1617link = ""
1718+++
1819
content/grants/machine-learning.md+1
@@ -11,6 +11,7 @@ reward = 7
1111assignee = "~tamdev-nocdun"
1212grant_id = "P0075"
1313completed = false
14+canceled = false
1415link = ""
1516+++
1617
content/grants/minimal-urbit-os.md+1
@@ -13,6 +13,7 @@ reward = 6
1313assignee = "~forfel-norfel"
1414id = "1935638429"
1515completed = false
16+canceled = false
1617link = ""
1718+++
1819
content/grants/network-explorer-data-pipeline-http-api.md+1
@@ -13,6 +13,7 @@ reward = 5
1313assignee = "Christopher King"
1414id = "1101665172"
1515completed = false
16+canceled = true
1617link = ""
1718+++
1819
content/grants/network-explorer.mddeleted−233
@@ -1,233 +0,0 @@
1−+++
2−title = "Network Explorer: Data Pipeline and HTTP API"
3−date = "2021-03-11"
4−
5−[taxonomies]
6−grant_type = [ "Bounty" ]
7−grant_category = [ "App Dev: Other" ]
8−
9−[extra]
10−image = ""
11−description = "Build a public, open HTTP API for exploring metrics about the Urbit network."
12−reward = 5
13−assignee = "Christopher King"
14−id = ""
15−completed = false
16−link = ""
17−+++
18−
19−## Overview
20−
21−![network explorer screenshot](https://wolref-podlex.s3.us-west-2.amazonaws.com/wolref-podlex/2021.2.23..20.58.30-Screen%20Shot%202021-02-23%20at%209%2C01%2C03%20AM.png)
22−
23−### Goal
24−
25−Build a public, open HTTP API for exploring metrics about the Urbit network.
26−
27−### Background
28−
29−The project known as the **Network Explorer** has been in the works at Tlon for
30−quite some time. The idea is to build a publicly-accessible tool (hosted on
31−https://network.urbit.org) that provides key metrics and insights into the state
32−of the Urbit network. A series of high-fidelity designs have been produced.
33−
34−### Scope
35−
36−This bounty covers the creation of the:
37−
38−- **data pipeline**: we're concerned with data from the PKI (Azimuth) and
39− the Urbit network itself. These two datasets will need to be aggregated and
40− indexed for efficient querying.
41−- **HTTP API**: the interface for querying data from a client, like the Network
42− Explorer.
43−
44−The Network Explorer interface will be covered in a separate bounty.
45−
46−## Implementation
47−
48−### Data Model
49−
50−Let's start with the data model. There are two sources of data that we need:
51−
52−- **PKI (Azimuth)**: The public-key infrastructure, currently known as Azimuth,
53− is our primary source of data. This information is currently found on Ethereum
54−- **Radar output**: [`radar`](https://github.com/urbit/urbit/blob/2c412d658a74dca3b3f584b92f8b390f38a05ba1/pkg/arvo/app/radar.hoon) is a program run from within an Urbit
55− ship that pings (`|hi`) every Urbit ship and records the results. This data is exposed in a single JSON file that is added to over time as the script runs.
56−
57−Most of the required information in the Network Explorer will come from Azimuth.
58−It's important to know though that the source of PKI information will likely
59−change in the near future in light of [ongoing work to reduce the
60−cost](https://groups.google.com/a/urbit.org/g/dev/c/p6rP_WsxLS0) of bringing
61−nodes onto the network.
62−
63−The below [entity-relationship
64−diagram](https://en.wikipedia.org/wiki/Entity%E2%80%93relationship_model)
65−defines a data model in terms of a relational database:
66−
67−![erd diagram](https://wolref-podlex.s3.us-west-2.amazonaws.com/wolref-podlex/2021.2.23..20.58.39-Network%20Explorer%20ERD.png)
68−
69−Some notes about the above diagram:
70−
71−- The data model should be _agnostic to any particular PKI storage
72− infrastructure_ to future-proof it against PKI changes.
73−- For non-`ping` data, it should be possible to compute the table of `node` from
74− a time-ordered traversal of `pki_event` (kind of like Arvo!). This means that
75− many fields listed on the `node` table could instead be derived from analysis
76− of the `pki_event` table. The implementer will be responsible for determining
77− which fields should be represented on the `node` directly and which should be
78− determined from `pki_event` for performance purposes.
79−- We don't have data for comets or moons, because they're not registered on
80− Azimuth and `radar` only checks for activity from ships with keys that have
81− been set on Azimuth. There will likely be a future in which we'll have a way
82− to provide data about these ship types though.
83−
84−### Data Ingestion
85−
86−Data from Azimuth and `radar` will need to be regularly extracted, parsed, and
87−persisted to the local database for querying.
88−
89−For Azimuth, using a tool like [infura](https://infura.io) should be used.. Tlon
90−currently uses infura, so it should be possible to use a free account for
91−development and Tlon's pre-existing service in production.
92−
93−The output of the `radar` script is saved to a JSON file that can be found
94−[here](http://35.247.74.19:8080/~radar.json). This file is updated as new ping
95−information is obtained, so data ingestion from this service should happen on
96−some regular schedule.
97−
98−### API
99−
100−The following are are necessary API endpoints for the Network Explorer UI to
101−function properly. It's likely that some details have been missed, so apply your
102−own judgement when designing the API.
103−
104−This interface is meant to be agnostic to the API mechanism you choose, which
105−could be either REST or GraphQL.
106−
107−#### get-node
108−
109−Produce the details for a single node.
110−
111−**Parameters**
112−
113−- `urbit_id`: `@p`
114−
115−**Returns**
116−
117−- `urbit_id`: `@p`
118−- `node_type`: `#{galaxy,star,planet,moon,comet}`
119−- `status`: `#{locked,unlocked,spawned,activated,online}`
120−- `continuity`: `int`, current continuity
121−- `key_revision`: `int`, current revision of keys
122−- `num_owners`: `int`, number of owners
123−- `sponsors`: `[node]` (sponsor and sponsor's sponsor, if applicable)
124−- `kids`: `[node]` (nodes sponsored by this one)
125−- `proxy_addresses`:
126− - `ownership`
127− - `spawn`
128− - `transfer`
129− - `voting`
130− - `management`
131−
132−#### get-nodes
133−
134−Produce a list of nodes, optionally with parameters. Absence of parameters queries all nodes.
135−
136−**Parameters**
137−
138−- `q`: `string` (optional: query term to search for)
139−- `node_types`: `[node_type]` (optional: produce just events for specific node types)
140−- `limit`: `int` (number of results to return)
141−- `offset`: `int` (number of results to offset by)
142−
143−**Returns**
144−An array of `node` in ascending order by `point`.
145−
146−#### get-pki-events
147−
148−Produce the stream of PKI events for a specific Urbit ID, or globally in descending order of `time`.
149−
150−**Parameters**
151−
152−- `urbit_id`: `@p` (optional: unspecified implies global)
153−- `since`: `timestamp` (optional: unspecified implies all events)
154−- `node_types`: `[node_type]` (optional: produce just events for specific node types)
155−- `limit`: `int` (number of results to return)
156−- `offset`: `int` (number of results to offset by\*\*
157−
158−**Returns**
159−An array of `pki_event` in descending order of `time`.
160−
161−#### get-activity
162−
163−Produce the network activity of a node or nodes.
164−
165−**Parameters**
166−
167−- `urbit_id`: `@p` (optional: specific ship to pull activity for)
168−- `since`: `timestamp` (optional: activity since provided time)
169−- `until`: `timestamp` (optional: activity up until the provided time)
170−
171−If `urbit_id` is unspecified, implies all ships.
172−
173−If `since` and `until` are unspecified, produces all activity for all time. If
174−only `since` is provided, produces activity from `since` to the present. If only
175−`until` is provided, produces activity for all of time up until `until`. If both
176−are provided, queries activity within a range.
177−
178−**Returns**
179−Array of:
180−
181−- `urbit_id`: `@p`
182−- `date`: `date` (no time)
183−- `active`: `boolean` (active or inactive)
184−
185−### Technology Requirements/Guidelines
186−
187−That which is not explicitly specified here is up to the choice of the
188−implementer.
189−
190−- **Database**: PostgreSQL
191−- **Ethereum Interaction**: Infura
192−- **HTTP API methodology**: GraphQL or REST
193−- **ORM**: None. Implementer should be sufficiently familiar with SQL.
194−- **API Hosting**: The API will be hosted on `api.network.urbit.org` or
195− `network.urbit.org/api`.
196−
197−## Requirements
198−
199−- 2+ years of experience with developing HTTP APIs
200−- 2+ years of experience working with relational databases
201−- Code hosted at https://github.com/urbit/network-api
202−- Attend regular (weekly or bi-weekly) checkin meetings with the director of
203− urbit.org to provide status updates
204−
205−## Resources
206−
207−- A complete set of high-fidelity designs in Figma will be made available to the
208− worker.
209−- The director of urbit.org will ensure access to other resources or personnel
210− as needed.
211−
212−## Milestones
213−
214−### Data ETL
215−
216−2 stars
217−The database has been designed and data from both sources is ingested
218−(extracted, transformed and loaded) on a regular schedule. Analysis can be
219−performed at the database layer.
220−
221−### HTTP API
222−
223−2 stars
224−An HTTP API is written per the above specification and deployed to
225−`https://api.network.urbit.org`.
226−
227−### UI Integration
228−
229−1 star
230−The Network Explorer UI will be a separate proposal, but integration with an
231−interface inevitably surfaces oversights in the original design. An additional
232−star will be awarded for providing ongoing maintenance as-needed during
233−front-end integration.
content/grants/nuck-jet.md+1
@@ -13,6 +13,7 @@ reward = 1
1313mentor = "~timluc-miptev"
1414assignee = ""
1515completed = false
16+canceled = true
1617work_request_link = "https://airtable.com/shr4qt9t9kz7RaOIa?prefill_Grant+ID=B0035&prefill_Grant+Name=Nuck%20Jet"
1718+++
1819
content/grants/overhaul-the-urbitorg-website.md+1
@@ -13,6 +13,7 @@ reward = 6
1313assignee = "~radbur-sivmus"
1414id = "246698762"
1515completed = false
16+canceled = false
1617link = ""
1718+++
1819
content/grants/planet-sales.md+1
@@ -11,6 +11,7 @@ reward = 6
1111assignee = "~tacryt-socryp"
1212grant_id = "P0071"
1313completed = false
14+canceled = false
1415link = ""
1516+++
1617
content/grants/search-in-groups.md+1−1
@@ -12,7 +12,7 @@ description = "Implement a basic text search in groups channels"
1212reward = 2
1313assignee = "@nrtxrmnd"
1414id = "835369230"
15−completed = false
15+completed = true
1616link = ""
1717+++
1818
content/grants/slaw-scot-jets.md+1−1
@@ -11,7 +11,7 @@ image = ""
1111description = "Tune slaw/scot jets for better perfomance."
1212reward = 1
1313mentor = "~timluc-miptev"
14−assignee = ""
14+assignee = "~lagrev-nocfep"
1515completed = false
1616work_request_link = "https://airtable.com/shr4qt9t9kz7RaOIa?prefill_Grant+ID=B0042&prefill_Grant+Name=Tune%20slaw%2Fscot%20jets"
1717+++
content/grants/-smol-future-sustained-knowledge-sharing-and-marketing.md → content/grants/smol-future-sustained-knowledge-sharing-and-marketing.mdrenamed

The content is the same.

content/grants/speech-recognition.md+1
@@ -11,6 +11,7 @@ reward = 2
1111assignee = "~hosted-fornet"
1212grant_id = "P0053"
1313completed = false
14+canceled = false
1415link = ""
1516+++
1617
content/grants/translate-key-parts-of-urbitorg-into-german.md+1
@@ -13,6 +13,7 @@ reward = 1
1313assignee = "~hocdep-labtel"
1414id = "1163466965"
1515completed = false
16+canceled = false
1617link = ""
1718+++
1819
content/grants/translate-key-parts-of-urbitorg-into-korean.md+1
@@ -13,6 +13,7 @@ reward = 1
1313assignee = "~sibped-dabdul, 홍송이"
1414id = "1921641407"
1515completed = false
16+canceled = false
1617link = ""
1718+++
1819
content/grants/translate-key-parts-of-urbitorg-into-spanish.md+1
@@ -13,6 +13,7 @@ reward = 1
1313assignee = "Tom Holford"
1414id = "446864346"
1515completed = false
16+canceled = false
1617link = ""
1718+++
1819
content/grants/try-urbit-website.md+2−1
@@ -10,9 +10,10 @@ grant_category = [ "App Dev" ]
1010image = ""
1111description = "A website where prospective Martians can experience the Landscape interface without any technical chops."
1212reward = 2
13−assignee = "mikeosborne"
13+assignee = "~taller-ravnut"
1414id = "1413934727"
1515completed = false
16+canceled = true
1617link = ""
1718+++
1819
content/grants/ucal-google-and-outlook-integration.md+1
@@ -13,6 +13,7 @@ reward = 2
1313assignee = ""
1414id = ""
1515completed = false
16+canceled = false
1617work_request_link = "https://airtable.com/shr4qt9t9kz7RaOIa?prefill_Grant+ID=B0014&prefill_Grant+Name=ucal%20Google%20and%20Outlook%20Integration"
1718+++
1819
content/grants/urbian-a-customized-linux-distribution-for-urbit-appliances.md+1
@@ -13,6 +13,7 @@ reward = 2
1313assignee = "~botter-nidnul"
1414id = "337545546"
1515completed = false
16+canceled = false
1617link = ""
1718+++
1819
content/grants/urbit-community-concierge-east-coast-2q2021.md+2−1
@@ -12,7 +12,8 @@ description = "Provide concierge service assisting new users in the Urbit Commun
1212reward = 1
1313assignee = "tocrex"
1414id = "427340266"
15−completed = false
15+completed = true
16+canceled = false
1617link = ""
1718+++
1819
content/grants/urbit-community-concierge-east-coast.md+2−1
@@ -12,7 +12,8 @@ description = "Provide concierge service assisting new users in the Urbit Commun
1212reward = 1
1313assignee = "tocrex"
1414id = "928966814"
15−completed = false
15+completed = true
16+canceled = false
1617link = ""
1718+++
1819
content/grants/urbit-community-concierge-west-coast-2q2021.md+2−1
@@ -12,7 +12,8 @@ description = "Provide concierge service assisting new users in the Urbit Commun
1212reward = 1
1313assignee = "~sibhul-soctul"
1414id = "1693084001"
15−completed = false
15+completed = true
16+canceled = false
1617link = ""
1718+++
1819
content/grants/urbit-community-concierge-west-coast.md+2−1
@@ -12,7 +12,8 @@ description = "Provide concierge service assisting new users in the Urbit Commun
1212reward = 1
1313assignee = "~sibhul-soctul"
1414id = "669964979"
15−completed = false
15+completed = true
16+canceled = false
1617link = ""
1718+++
1819
content/grants/urbit-event-series.md+1
@@ -13,6 +13,7 @@ reward = 6
1313assignee = "~naplet-hildec"
1414id = "1751024973"
1515completed = false
16+canceled = false
1617link = ""
1718+++
1819
content/grants/urbit-explainer-video.md+1
@@ -13,6 +13,7 @@ reward = 2
1313assignee = "~rivpyl-sidfyl, ~minder-folden"
1414id = "1350087489"
1515completed = true
16+canceled = false
1617link = ""
1718+++
1819
content/grants/urbit-http-api-for-emacs-elisp.md+1
@@ -13,6 +13,7 @@ reward = 3
1313assignee = "~winduc-dozser"
1414id = "1206158911"
1515completed = false
16+canceled = true
1617link = ""
1718+++
1819
content/grants/urbit-http-api-for-kotlin.md+1
@@ -13,6 +13,7 @@ reward = 3
1313assignee = "@nrtxrmnd"
1414id = "865786150"
1515completed = false
16+canceled = true
1617link = ""
1718+++
1819
content/grants/urbit-http-api-for-python.md+1
@@ -13,6 +13,7 @@ reward = 1
1313assignee = "novbyr-miclux"
1414id = "P0029"
1515completed = false
16+canceled = false
1617link = ""
1718+++
1819
content/grants/urbit-http-api-for-rust.md+1
@@ -13,6 +13,7 @@ reward = 3
1313assignee = "~mocrux-nomdep"
1414id = "1120978319"
1515completed = false
16+canceled = false
1617link = ""
1718+++
1819
content/grants/urbit-http-interface-java-edition.md+1
@@ -13,6 +13,7 @@ reward = 3
1313assignee = "~sipfyn-pidmex"
1414id = "288224550"
1515completed = false
16+canceled = true
1617link = ""
1718+++
1819
content/grants/urbit-http-library-for-ruby.md+1
@@ -13,6 +13,7 @@ reward = 3
1313assignee = "~winter-paches"
1414id = "227255220"
1515completed = false
16+canceled = true
1617link = ""
1718+++
1819
content/grants/urbit-irc-bridge.md+1
@@ -13,6 +13,7 @@ reward = 1
1313assignee = "~fitnub-basbud"
1414id = ""
1515completed = false
16+canceled = false
1617link = ""
1718+++
1819
content/grants/urbit-lfs-filehosting.md+1
@@ -13,6 +13,7 @@ reward = 4
1313assignee = "tabnus-fondeg"
1414id = "1736585775"
1515completed = false
16+canceled = false
1617link = ""
1718+++
1819
content/grants/urbit-react-cookbook.md+1
@@ -13,6 +13,7 @@ reward = 3
1313assignee = "~witfyl-ravped"
1414id = "1312404336"
1515completed = false
16+canceled = false
1617link = ""
1718+++
1819
content/grants/video-content-manager.md+1
@@ -13,6 +13,7 @@ reward = 3
1313assignee = "~wolnyl-pasreg"
1414id = "790269488"
1515completed = false
16+canceled = false
1617link = ""
1718+++
1819
content/grants/volt-lightning-on-urbit.md+1
@@ -12,6 +12,7 @@ description = "An Urbit-native Lightning client and integration with `lnd` on 'p
1212reward = 7
1313assignee = "~martyr-binbex, ~dasrun-fadben"
1414completed = false
15+canceled = false
1516link = ""
1617+++
1718
content/grants/webrtc-gall-agent-and-external-app.md+15−17
@@ -1,18 +1,19 @@
11+++
2−title = "WebRTC Gall Agent and external app"
3−date = "2021-01-07"
2+title = "WebRTC Gall Agent and External App"
3+date = "2021-01-11"
44
55[taxonomies]
66grant_type = [ "Proposal" ]
7−grant_category = [ "App Dev" ]
7+grant_category = [ "App Dev: Other" ]
88
99[extra]
1010image = ""
1111description = "Add WebRTC support to Urbit, including call/stream setup and teardown messaging and ICE/STUN/TURN advertisement and authentication."
1212reward = 8
13−assignee = "Edward Amsden ~ritpub-sipsyl"
14−id = "21131866"
13+assignee = "~ritpub-sipsyl"
14+id = ""
1515completed = false
16+canceled = false
1617link = ""
1718+++
1819
@@ -30,7 +31,7 @@ This creates a natural synergy with URbit, as Urbit provides a hierarchical peer
3031
3132### WebRTC Gall Agent
3233
33−This will serve as the _signalling_ channel for Urbit WebRTC applications. WebRTC requires an out-of-band channel (in standard usage usually implemented as an HTTP REST API) which can receive connectivity information from peers and distribute it to peers.
34+This will serve as the signalling channel for Urbit WebRTC applications. WebRTC requires an out-of-band channel (in standard usage usually implemented as an HTTP REST API) which can receive connectivity information from peers and distribute it to peers.
3435
3536### WebRTC calling app
3637
@@ -40,7 +41,7 @@ This would be an external (probably in-browser) app which would provide the init
4041- making n-way media conference calls
4142- streaming media from one peer to many
4243
43−### ICE/STUN/Turn advertising
44+## ICE/STUN/Turn advertising
4445
4546A separate Gall agent would initially allow stars to advertise ICE and STUN servers for use by sponsored planets and their moons. WebRTC depends on ICE and STUN to allow NATed and firewalled peers to negotiate peer-to-peer connections.
4647
@@ -48,31 +49,28 @@ The last milestone would be to add TURN advertising with authentication to this
4849
4950## Beyond
5051
51−The proposer would eventually like to see media streas themselves propagated via Urbit. To achieve this, however,
52−it would be necessary to:
52+The proposer would eventually like to see media streas themselves propagated via Urbit. To achieve this, however, it would be necessary to:
5353
5454- Create a performant method (likely a vane) for passing network messages which are not retained in the event log
55−- Significantly improve Urbit's NAT traversal and firewall hole-punching abilities to match the state of the art.
56− (this has been discussed with, among others, ~ritfed-tabrg and ~wolref-podlex).
55+- Significantly improve Urbit's NAT traversal and firewall hole-punching abilities to match the state of the art. (this has been discussed with, among others, ~ritfed-tabrg and ~wolref-podlex).
5756
5857## Team
5958
60−Edward Amsden ~ritpub-sipsyl is a vertan software developer and principal of Black River Software. He has spent the last 5+ years working on industrial IoT solutions in Haskell as a contractor for Plow Technologies.
59+E
60+dward Amsden (~ritpub-sipsyl) is a vertan software developer and principal of Black River Software. He has spent the last 5+ years working on industrial IoT solutions in Haskell as a contractor for Plow Technologies.
6161
6262## References
6363
64−[Mozilla Developer Network WebRTC walkthrough](https://developer.mozilla.org/en-US/docs/Web/API/WebRTC_API/Signaling_and_video_calling)
65−[Dealing with connectivity](https://developer.mozilla.org/en-US/docs/Web/API/WebRTC_API/Connectivity)
64+[Mozilla Developer Network WebRTC walkthrough Dealing with connectivity](https://developer.mozilla.org/en-US/docs/Web/API/WebRTC_API/Signaling_and_video_calling)
6665
6766## Milestones
6867
6968### Gall agents (WebRTC, ICE/STUN)
7069
71702 stars
72−A Gall agent which handles exchanging SDP messages for WebRTC applications
73−Another Gall agent which handles advertising ICE and STUN servers from stars to planets
71+A Gall agent which handles exchanging SDP messages for WebRTC applications Another Gall agent which handles advertising ICE and STUN servers from stars to planets
7472
75−### Standalone WebRTC-via-Urbit app
73+### Standalone WebRTC-via-Urbit-app
7674
77754 stars
7876Urbit app running in browser and hosted/interfaced via Eyre which provides the three categories of calling functionality described in the body of the proposal
content/grants/webrtc.mddeleted−80
@@ -1,80 +0,0 @@
1−+++
2−title = "WebRTC Gall Agent and External App"
3−date = "2021-01-11"
4−
5−[taxonomies]
6−grant_type = [ "Proposal" ]
7−grant_category = [ "App Dev: Other" ]
8−
9−[extra]
10−image = ""
11−description = "Add WebRTC support to Urbit, including call/stream setup and teardown messaging and ICE/STUN/TURN advertisement and authentication."
12−reward = 8
13−assignee = "~ritpub-sipsyl"
14−id = ""
15−completed = false
16−link = ""
17−+++
18−
19−## Overview
20−
21−Adding the ability to make encrypted media calls between Urbit ships, using only Urbit as a signalling channel, without a centralized intermediary, would provide real utility and an immediate boost in the excitement in the end user interface.
22−
23−WebRTC provides media device (camera/speaker/microphone) discovery and peer-to-peer encrypted transit of media. It is supported by all major browsers as well as libraries for many major programming languages.
24−
25−WebRTC relies on external signalling, implemented by the application developer, to handle connection negotiation and call setup and teardown.
26−
27−This creates a natural synergy with URbit, as Urbit provides a hierarchical peer-communication system between known addresses with reputation. A WebRTC Gall agent would provide a solution for coordinating real-time media communications between Urbit ships.
28−
29−## Deliverables
30−
31−### WebRTC Gall Agent
32−
33−This will serve as the signalling channel for Urbit WebRTC applications. WebRTC requires an out-of-band channel (in standard usage usually implemented as an HTTP REST API) which can receive connectivity information from peers and distribute it to peers.
34−
35−### WebRTC calling app
36−
37−This would be an external (probably in-browser) app which would provide the initial end-user interface for
38−
39−- making two-way media calls
40−- making n-way media conference calls
41−- streaming media from one peer to many
42−
43−## ICE/STUN/Turn advertising
44−
45−A separate Gall agent would initially allow stars to advertise ICE and STUN servers for use by sponsored planets and their moons. WebRTC depends on ICE and STUN to allow NATed and firewalled peers to negotiate peer-to-peer connections.
46−
47−The last milestone would be to add TURN advertising with authentication to this agent. TURN servers provide relay services for peers which cannot directly connect, thus they are much more expensive, especially in terms of bandwidth, than ICE and and STUN. This should permit stars to specify which planets are authorized to use the TURN server, and, in the planet instantiation of the agent, seamlessly offer this information to WebRTC and other applications using the agent.
48−
49−## Beyond
50−
51−The proposer would eventually like to see media streas themselves propagated via Urbit. To achieve this, however, it would be necessary to:
52−
53−- Create a performant method (likely a vane) for passing network messages which are not retained in the event log
54−- Significantly improve Urbit's NAT traversal and firewall hole-punching abilities to match the state of the art. (this has been discussed with, among others, ~ritfed-tabrg and ~wolref-podlex).
55−
56−## Team
57−
58−E
59−dward Amsden (~ritpub-sipsyl) is a vertan software developer and principal of Black River Software. He has spent the last 5+ years working on industrial IoT solutions in Haskell as a contractor for Plow Technologies.
60−
61−## References
62−
63−[Mozilla Developer Network WebRTC walkthrough Dealing with connectivity](https://developer.mozilla.org/en-US/docs/Web/API/WebRTC_API/Signaling_and_video_calling)
64−
65−## Milestones
66−
67−### Gall agents (WebRTC, ICE/STUN)
68−
69−2 stars
70−A Gall agent which handles exchanging SDP messages for WebRTC applications Another Gall agent which handles advertising ICE and STUN servers from stars to planets
71−
72−### Standalone WebRTC-via-Urbit-app
73−
74−4 stars
75−Urbit app running in browser and hosted/interfaced via Eyre which provides the three categories of calling functionality described in the body of the proposal
76−
77−### Authenticated TURN advertising
78−
79−2 stars
80−Extension of the ICE/STUN Gall agent to allow stars to advertise an authenticated TURN server to some or all of their sponsored planets. Extension of the WebRTC application to use TURN servers.