From 245651564f1ad1079ddd65ccc8aaa600646fa0bf Mon Sep 17 00:00:00 2001 From: Mark Henderson Date: Tue, 28 Jan 2020 09:45:29 -0500 Subject: [PATCH 001/113] Adding ipfs-rust grant Delete mrh-resume.pdf --- open-grants/ipfs-rust/ipfs-rust.md | 345 ++++++++++++++++++ .../media/fig1-ipfs-rust-risk-assessment.png | Bin 0 -> 167225 bytes ...fig2-ipfs-rust-implementation-schedule.png | Bin 0 -> 96926 bytes .../ipfs-rust/media/phase-1-1-gantt.png | Bin 0 -> 146346 bytes .../ipfs-rust/media/phase-1-2-gantt.png | Bin 0 -> 104768 bytes 5 files changed, 345 insertions(+) create mode 100644 open-grants/ipfs-rust/ipfs-rust.md create mode 100644 open-grants/ipfs-rust/media/fig1-ipfs-rust-risk-assessment.png create mode 100644 open-grants/ipfs-rust/media/fig2-ipfs-rust-implementation-schedule.png create mode 100644 open-grants/ipfs-rust/media/phase-1-1-gantt.png create mode 100644 open-grants/ipfs-rust/media/phase-1-2-gantt.png diff --git a/open-grants/ipfs-rust/ipfs-rust.md b/open-grants/ipfs-rust/ipfs-rust.md new file mode 100644 index 00000000..60e5d431 --- /dev/null +++ b/open-grants/ipfs-rust/ipfs-rust.md @@ -0,0 +1,345 @@ +# Open Grant Proposal: Rust IPFS +> Category: core-dev | Proposed by: Mark Henderson (MRH.io), Joonas Koivunen (Equilibrium Labs) + +Rust, the programming language, has enjoyed a recent spike in popularity. This is due both to +its inclusive community, and also being a safe systems language with performance comparable to +C and C++. It would seem that an IPFS implementation written in Rust would make sense. + +The IPFS community seems to agree, and since then has created an astonishing amount of output. +David Craven’s “rust-ipfs”, the work of the multiformats team, and of course Parity’s rust-libp2p. Our aim is to build upon this work, forking only when necessary, and carry the torch across the finish line. + +If funded, the IPFS implementation detailed in this proposal would be a properly stewarded Rust +codebase that could stand alongside its Go and JS siblings, and be used successfully in a +variety of contexts: either as a “crate,” or via its familiar HTTP API. + +At the very least, we hope that our effort in scoping and planning is useful to any others who +might want to continue - and hopefully complete - this work. + +_We agree to license past and future contributions of this proposal under the dual +MIT/Apache-2.0 license, allowing licensees to choose either at their option._ + +## Table of Contents + +* [Project Description](#project-description) + * [Summary](#summary) + * [Value](#value) + * [Survey of Community Efforts](#survey-of-community-efforts) + * [Maintenance and Upgrade Plan](#maintenance-and-upgrade-plan) + * [Figure 1. Risk Assessment](#figure-1-risk-assessment) + * [Project Team](#project-team) +* [Project Plan](#project-plan) + * [Summary](#summary) + * [Implementation Details](#implementation-details) + * [IPLD](#ipld) + * [libp2p](#libp2p) + * [Metric: Number of CLI Commands Implemented](#metric-number-of-cli-commands-implemented) + * [Definition of Done](#definition-of-done) + * [Out of Scope](#out-of-scope) + * [Phase 1.1 IPLD Foundations](#phase-11-ipld-foundations) + * [Deliverables](#deliverables) + * [Development Schedule](#development-schedule) + * [Figure 2: Phase 1.1 Gantt Chart](#figure-2-phase-11-gantt-chart) + * [Estimated Budget (Phase 1.1)](#estimated-budget-phase-11) + * [Phase 1.2: IPLD Application Support](#phase-12-ipld-application-support) + * [Deliverables](#deliverables-1) + * [Development Schedule](#development-schedule-1) + * [Figure 3: Phase 1.2 Gantt Chart](#figure-3-phase-12-gantt-chart) + * [Estimated Budget (Phase 1.2)](#estimated-budget-phase-12) + * [Phase 2 and Onward](#phase-2-and-onward) + * [Figure 4: Implementation Schedule](#figure-4-implementation-schedule) + +## Project Description + +### Summary + +The following proposal details our project plan for the delivery of Rust IPFS. In deciding +which pieces of IPFS functionality to tackle first, we focused on a pair of end use cases: + +1. Applications that leverage IPLD, such as OrbitDB and other types of event sourcing +2. Gateway nodes, which enrich the network by making public content more accessible + +In preparation for this, the team researched the existing community contributions and, by +way of a diligent gap analysis, have charted out the path to delivery. During execution, +the team will use a very simple metric to report progress: the number of API commands implemented. + +After development is complete, Equilibrium Labs has offered to steward the project, which +will provide stability to the project, and survive the previous work of others. This should +significantly boost community morale. + +### Value + +The Rust programming language has a dual value in both its feature set, and community. + +A viable Rust implementation of IPFS would: + +* Bring greater exposure to IPFS within the Rust community + * Publicity opportunities at Rust-themed events such as conferences and meetups + * Exposure to C and other APIs via Foreign Function Interfaces (FFIs) +* Enable additional opportunities in both the embedded firmware space which opens the door to things like IoT, automotive, industrial, and wearable devices + * See the [Awesome Embedded Rust](https://github.com/rust-embedded/awesome-embedded-rust) list for some examples +* Enable additional opportunities in the WebAssembly space + +### Survey of Community Efforts + +The IPFS and Rust communities together have done an astounding job putting together +these projects. We diligently went through and performed initial outreach to the authors, +and here is what we found to be some of the top projects on this list. + +* https://github.com/ipfs-rust/rust-ipfs + * This is likely the furthest along in terms of a Rust IPFS implementation. It contains implementations of the block, dag, ipns and a few other APIs. However, there are no CLI or HTTP bindings as of this writing +* https://github.com/libp2p/rust-libp2p + * Parity’s implementation of libp2p in Rust, which includes their own in-tree versions of rust-multihash and rust-multiaddr. The next two items on the list would capture the requirements not covered, i.e. cid and multicodec +* https://github.com/multiformats/rust-cid +* https://github.com/mudlee/rust-multicodec +* https://github.com/ipfs-rust/rust-ipld + * Most advanced IPLD library with support for protobuf, cbor, and json +* https://docs.rs/ipfs-api/0.6.0-rc/ipfs_api/ + * HTTP Bindings for Rust to call the standard IPFS HTTP API +* https://github.com/vmx/rust-ipld/ + * Protocol Labs internal work on rust-ipld. + +### Maintenance and Upgrade Plan + +We want to make a codebase that will last into the future. Equilibrium Labs and MRH.io, +along with the support of the community, pledge to continue to maintain the Rust IPFS +to best of their ability and within any financial constraints that exist. + +Much like we will build upon community efforts, we will also enable and encourage others +to build upon our work. This will be a twofold effort that includes both permissive +licencing and community outreach: onboarding as many new contributors as possible, +mapping the work out into issues of different levels of difficulty, and providing mentorship. + +### Figure 1. Risk Assessment + +![IPFS Rust Risk Assessment](./media/fig1-ipfs-rust-risk-assessment.png) + +### Project Team + +| Mark Henderson | Joonas Koivunen | TBD | +| --- | --- | ---- | +| | | | +| Rust Developer, Project Manager | Rust Developer | Rust Developer | +| [+github](https://github.com/aphelionz) [+website](https://mrh.io) [+resume](https://ipfs.io/ipfs/QmcHxD94cvJgq5ZZxQkEi7SRMwD5dBnkhQ3zzaVFqNWFJb) | [+github](https://github.com/koivunej) [+linkedin](https://www.linkedin.com/in/joonas-koivunen-70273412/) | | +| Core contributor, OrbitDB. Implemented an [Ambients Protocol parser/compiler](https://github.com/aphelionz/ambients) in Rust | Current rust-ipfs contributor + Rust-lang tooling contributor + experience with database implementations in Rust | A qualified Rust Developer to be provided by Equilibrium Labs | + + + +## Project Plan + +### Summary + +We propose a phased approach, with each deliverable building on the last while still +itself being comprehensive, usable software that the community can build upon and +continue to build. + +1. Phase 1 is the shortest path to enabling IPLD applications to be written in Rust + 1. Phase 1.1 sets up the project and lays the groundwork (Blockstore, IPLD, Swarm) + 2. Phase 1.2 implements Bitswap, Pubsub to complete support for IPLD applications +2. Phase 2 enables IPFS Gateway functionality, allowing for swarming and content sharing. This +phase's planning and estimation is largely left TBD due to a rapidly changing ecosystem + +### Implementation Details + +#### IPLD + +Minimum IPLD support will be required for existing `ipfs dag get` and `ipfs dag put` +functionality, including but likely not limited to: + +* Default: Transcoding from JSON to CBOR +* Both CBOR and JSON: canonicalization (open discussion in [ipld/specs#236](https://github.com/ipld/specs/pull/236)) +* Support “paths” to navigate the DAG + * CBOR, JSON: Link can be resolved from any value + * CBOR, JSON: Paths can resolve to documents + * Protobuf: Links are named top level values (assumed to be used with UnixFSv1.x only) + * Protobuf: Paths can resolve to documents only + +Following the progress of `go-graphsync` the IPLD support will need to be extended to + +* Parsing IPLD selectors as transferred by Graphsync (CBOR) +* Depth-first walking according to the selector (inter-document and over links), providing support for recording the loaded blocks during walk + * `ipfs dag resolve` has been proposed to demonstrate and test this functionality +* Traversals in all formats (CBOR, JSON, Protobuf) + +This would give a solid foundation to implement Graphsync on top of these services in a later phase. + +#### LibP2P + +Many functions that IPFS rely on are wrappers around libp2p functions. These are: + +* `ipfs swarm *` +* `ipfs pubsub *` + +### Metric: Number of CLI Commands Implemented + +There are roughly 153 CLI commands and subcommands that a typical IPFS implementation exposes. +While there are a number of other metrics we could choose to suitably track progress, “How +many commands have been implemented in Rust so far?” is an easy question to ask. + +This proposal covers about 80 commands, with a number being deemed out of scope. See Figure 4 +at the end of the document for a breakdown of which commands fall under which project phase, +and Out of Scope Commands for a list out of scope commands. + +### Definition of Done + +Our definition of done aims to be as robust as our KPI is simple. Each command will be considered done when the following requirements are met: + +1. There is a working Rust implementation of the command’s functionality + 1. Code is “linted” i.e. code formatting via rustfmt and language idioms via clippy +2. There is an HTTP binding for said command exposed via the IPFS daemon +3. There is a CLI command that utilizes either the Rust APIs or the HTTP APIs +4. There are functional and/or unit tests written, and they are passing +5. There is suitable documentation. In our case, this means: + 1. Each command has a usage example and API specification + 2. Top-level commands with subcommands display usage instructions + 3. Rustdoc tests are passing on all code-level comments + 4. Differences between Rust’s implementation and Go or JS are explained +6. There are passing conformance tests, approved by Protocol Labs +7. There is an updated version of the library published to https://crates.io + +### Out of Scope + +The commands listed below are deemed out of scope for this proposal, and will not be +included as part of the Rust IPFS implementation work done within. + +The following commands are simply not required by our use case: +* `ipfs bitswap { ledger, reprovide, stat, wantlist }` +* `ipfs cid` +* `ipfs diag cmds` +* `ipfs files *` +* `ipfs key { gen, list, rename, rm }` +* `ipfs mount` +* `ipfs p2p` +* `ipfs shutdown` +* `ipfs stats bitswap` +* `ipfs swarm filters` +* `ipfs tar { add, cat }` +* `ipfs bootstrap { add, rm }` +* `ipfs config { profile, replace }` + +The following commands are experimental: +* `ipfs filestore { dups, ls, verify }` +* `ipfs urlstore { add }` + +The following commands are deprecated +* `ipfs files ls` +* `ipfs object { data, diff, ... }` + +Additionally: +* ipfs update will likely be handled by cargo install +* Private network support via a swarm key is out of scope. + +### Phase 1.1 IPLD Foundations + +Phase as a whole would enable the minimum functionality for higher-level abstractions and +tools to be built upon rust-ipfs, or to be accessed via an HTTP API that rust-ipfs exposes. + +Phase 1.1 covers project setup, implementations of groundwork ipfs commands (which includes +conformance testing), and the resultant grant report to be submitted to Protocol Labs. + +#### Deliverables + +1. Project Setup: Git, CI/CD, Protocol Labs conformance testing, etc. +2. Definition of Done for: + * `ipfs block` + * `ipfs block get` + * `ipfs block put` + * `ipfs block rm` + * `ipfs block stat` + * `ipfs daemon` + * `ipfs dag` + * `ipfs dag get` + * `ipfs dag put` + * `ipfs swarm connect` + * `ipfs swarm disconnect` + * `ipfs swarm peers` + * `ipfs version` + * `ipfs id` +3. Block storage implementation +4. Conformance testing via js-ipfsd-ctl, interface-js-ipfs-core +5. Project Milestone Report + +#### Development Schedule + +Development will take place over an estimated 8 weeks of development. The following chart +assumes a week 7 start date (Feb 10). We can be flexible in terms of start dates, however +starting as soon as possible is preferable due to the above risk assessment. + +##### Figure 2. Phase 1.1 Gantt Chart + +![Phase 1.1 Gantt Chart](./media/phase-1-1-gantt.png) + +#### Estimated Budget (Phase 1.1) + +| | Number of Hours | Hourly Rate | Total (Euros) | Total (USD) | +| --- | ---- | ---- | ---- | --- | +| Software Development and Project Management | 480 hours | 120€ | 57,600€ | $63,449.28 | + +### Phase 1.2: IPLD Application Support + +Phase 1.2 will complete the work started in Phase 1.1, fully enabling IPLD application +support via Rust crate functions, the HTTP API, as well as CLI commands. + +#### Deliverables + +1. Definition of Done for: + * `ipfs pubsub ls` + * `ipfs pubsub peers` + * `ipfs pubsub pub` + * `ipfs pubsub sub` + * `ipfs refs` + * `ipfs refs local` + * `ipfs init` +2. CLI commands from 1.1 that were only implemented in HTTP API +3. Benchmarking report comparing OrbitDB performance on go-ipfs, rust-ipfs, and js-ipfs +4. Bitswap testing and bug fixes + +#### Development Schedule + +Development will take place over an estimated 5 weeks of development. The following chart +assumes a week 13 start date (Feb 25). + +##### Figure 2. Phase 1.2 Gantt Chart + +![Phase 1.2 Gantt Chart](./media/phase-1-2-gantt.png) + +#### Estimated Budget (Phase 1.2) + +| | Number of Hours | Hourly Rate | Total (Euros) | Total (USD) | +| --- | ---- | ---- | ---- | --- | +| Software Development and Project Management | 424 hours | 120€ | 50,880€ | $56,066.20 | + +### Phase 2 and Onward + +_**Note:** At this point, it's likely that the landscape will have changed such that we can't sufficiently +scope or estimate work meaningfully. We'd like to treat Phase 2 and onward as TBD, with the +intent of scoping and estimating the following work over time, as we move through Phase 1 +and Phase 2._ + +That being said: This phase would contain the minimum viable feature set within rust-ipfs to +allow it to peer with, and get data from, an existing go-ipfs or js-ipfs node. In order for +an IPFS node to do so. + +#### Deliverables + +1. Definition of Done for: + * `ipfs add` + * `ipfs cat` + * `ipfs commands` + * `ipfs config { edit, show }` + * `ipfs dht { findpeer, findprovs, get, provide, put, query }` + * `ipfs diag sys` + * `ipfs dns` + * `ipfs ls` + * `ipfs name { publish, pubsub, resolve, data }` + * `ipfs pin { add, ls, rm, update, verify }` + * `ipfs ping` + * `ipfs repo { gc, stat, verify, version }` + * `ipfs resolve` + * `ipfs stats bw` + * `ipfs version deps` +2. Flagship Rust IPFS Public Gateway Production Deployment +3. Final Project Report + +### Figure 4: Implementation Schedule + +![Rust IPFS Implementation Schedule](./media/fig2-ipfs-rust-implementation-schedule.png) diff --git a/open-grants/ipfs-rust/media/fig1-ipfs-rust-risk-assessment.png b/open-grants/ipfs-rust/media/fig1-ipfs-rust-risk-assessment.png new file mode 100644 index 0000000000000000000000000000000000000000..4d8f08365f9f6bfbdbae6dce3f353f9d2e0ecb79 GIT binary patch literal 167225 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

nu2PCMG8&2P^kvJ28Kr>dUALk(@QLOE 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�zAy86RyES`tkgR z5`~6bxWSe6iTYy$E|F5ni^Hbl=y{Tg$3$|c5gM%^cq|w*I@cb1p&NK)sbyA^+{;xz zgJHY|y&oKnf1$)*Kz4qM6s(2CqQ_e>0be6-Jzf1CV#ONX7f};bfpQfk#zniS*X3a! z#Oy0ChCn<~hwKnD^*I4`hr1T`@=9}`4zO#=+%-Q?<1#L_?kN6%8Cw#OCYd=s3TzKL zf`I=UPjE;4jVI(UpIQ+gA2=#%n7^-JRIK7%q|==@2iRVv%&!2;TF@OcqI((Fv>oy> zxyJ^bFQ_6V{~20r6C(NZ>a44U`hxmDnTn9cln(+M}bl~bA5-@ptn0Z;f;g8A^!;{zIyzw_by%bjDZvvv6! z#B@@<{MlL;%x6y$r723omh`YT$qFX;`C*IunMY*c+lisIN*;t)HPty_tJ$S#Z4?SD zST9J~?xgFc7-bJ@lx~umrIRgw^CG6FF_rpnM&<=63`R%wawYPbV=<8MZ~(fOGEe4?MdAZ{VhWobu=r(tJ1tAB*dS)ZdUnS&Fkx=U2G+L>`JXc!m$V!f7$xeW=4-{&EVP8v_if2IE;o$rG#!CJ;^Ia z-Uq6$9n%KHLqp2E!%hEHLK!xk=d5Y7SGhsHiK9H0)%&+?IM$Av0AxDHA8*$m5(iY4 zbGl}1gFSJY{a;QJD{tX7pzy!~H*g1BPyYL zhNL;{T#Jt^V=SI;_qX=0M*5Do{9mT=dIysUPAx22!~*Lk{QSnxRGWitF9a8y zu>8Q$7n>sWKqaP6C83*DkJB!`>UGhBhz$vq5Q3yc8oCB&pRzICZ_qENR!{?-uL>!V zt3$*2yKLWde1w7vgMR<{wvlU)!BnJ{4hOND?Gw3?j_}#Olen(*Xam&GOWaIn_D#Vj8k4R9hQ*t0!BXMWgtaHproM)YLTnv{G@$PjaC>@Ap#zSf3fjpLT{wXm`CydGc~4Ku99?}Xz!a4seV9-%%U$T}TZLEIRc3(q zRdD;7t}$PI9-Yf9ZVUtT{sd4UU#V{pmyG`p&LV(on41#hq!aa#D9g^p!#}Xt9~x^p zX1+m27XnXgp>&3rRbURq^}@oIP_({3r9i3T1y%eV_ol>BNx*xF@8AO@{~XWMc^Z07 ztHvGR7m%Q#ymWr5AxmjISNt3i`;~zS`-3=FiX&N!=Xgp0eUF>tc&|IGAeXb?(CG0V z@KkT|&B2%MkG30VjDSBRP;8)VkpyVn?*$QZfCc$!TZl_dYPShL)MvAE7Unj~w|oDq z9XgY6P`-aqmD9IBa3=M+vP|kZvT`wxF)eO*D9|ClvJs<#31Cx&Rx5&xn^ zs-hHqj|-U^;rWSk^;CFf0f@f z-I?Ony=VVUxQ`!ioW*iXQ9Ohi`5U15*C|Ce!6^(Y_|k?9Pa2&=bAi*)Uc7y-c)b20 zD}THGY*;&++)(KpPhp9vR4ACv(}h=EomSrdU@D5Pm?nmxE=j0*N`X(!DJn&eoq{c= zDLDh#A%?4zwT4-REN_FUxzPOp9m8ny8wqZCo^A5r;q-d>u$$_>V)~tywo!e$+Zyz` zlkw=5{m6dgm34s_Qy&&qfTQg^wx-Y$=XhhFxGUxX?XFgn4<`FZ4RTT zc7+a^2ve#2D6U>E*i27%=}!G5ZZ!Rb7yy0j{%{ znUm@Hz2|Yk2D`;a7;UE4x#~RE)S-Q$wTSF^E9`u7=Y$ID*SlpS1eeu@T}0Hg zBCR))`Fv}NO-JU~chI^qSsS9Ge-Bje_gIZpWpU0rfll%XId!Q^2O%6B&T#i4idvHk zjIc**l0sEjPHA4q?372$>JZ=TAB@er=|aa-ZcA*9dMuigugQe^ju zPc|KK?pZ5dIkDqVZ}TS7cUMXc?Q0T;EpQeQy{SjCY-voI9vtF1d&a;kf+GyvD_ z&b8;k3jj&S`!+tIT(L{Mhq`&ZlZ2jE^oA1zwcl8_X&G65?GibTO4>!G(HO8xnot=e zMOC|h!OV_NQ5Hus;JvmcI6^3shM=*rlKEA+*zSBa*^z`%Ikodd@=2u+Wb^&pF z&UbK=gF&=f2KkVrd2lwk3y-u!Sl|!Fk<8eMvnS9qKMX~VT@+eirUK)DxHN`X0bJ@; z&is&2=-d${Q=9wigGCr@5a3E>LYe9uQgSPz>-ZrBw@*cuBWZjzaB0u4I*)`dXY4|c zV@e>Y9lhOW=!oRV^`@6$yE~%yR>%X(_0I|8AJj9P_28?y{pbeZwq?LqGTOq2C&*}# zm~fu+>+m>&aXn`zUT&j5^vLJXQn*sVAfXKps&;pP5u6%WLeA?A0Gp}%(k{n8x=o1c zSZRox*KCt=7M^Y*R~3js)GN2+XoJTaQv0K~$Y9Y*gAf>LzvXIZITtuIfAjK02VB2Z z@^nHuMl!jEo1FC~m!$Ce13cYS#K!Y~T*!X&gE=>${KYWJX-Bj~69)wJDQ1X1m&(Wk z%wI0@I*my5)$(t&E6V*lH2sPMTY9YYoibPn-xVvJhZz%iRMy^=`ZdKS9kD+^?=D@66}$we>SlQ=8T3sM*!u#5>v*@;8JPeUe6tg zo7`A{*n!avtp1IXHNY`@Q^$0=l|!>*w3R;SE@DK8vjLn(Ff=?`f4g{t+z^3XOl_Q= z1n;S21|u)z*(kh1(8et!C}jcNKF#^J@)a=~4U9ouk;c0PSo0|a@VV}kJw(&X`eqi& zIpR2d68#!o?C*kw1gbl018XlJnzq`wPC8#xh;8RQlq!OSjjxj2@T`YWv_wR6L@WH9 zQR7*i7V~P4+^dmIH%lWhjbIH+V$wG5({Od}%qEP7H&-xdWKRf5SfcZx7N254*`ALZ zE?dA?8%NkT{3x_#)aR8Q zTmcl@kePtt=?+p1tjNjA0>B~@tf}*>tjtG6%tp}ta53Du1LXmX2u=fSPq#yfl{TOVMep@>edTJUldOPaau1#=Y^e(j%=bCoZeIx8>xcRa!8 zvT;HF6Rg}}effWHkz+fT|Ig3dx}O!Xty5JOq?E`=NL8?5eGbquFop~SxxaX(FYlb= zk`_lz+~RguL4kwmg7RVDT9{ zeqpy*M^PA8!i^r$fu$uz&9p%mdW`dRBC@Sr>UXLzG})Akb6YM7Ihise=9fAg$^crG zV(U}bt@=jW(&FN&G;w%`8`XYUwgNzlD}mf2<7wq4a_tIM`++wQV$+jdo#ZQHi)dGCAwYt4L^HEU*n z%RGq4eKJo*{PKzYK+=8h?su1PzK+m8T}+aKhiw1lZywkZMl(Ap5%2q{xpr(na4ByV zbq(Hh^UGJWK7b70ztx6Mh~NU$rOVg1+;|f)d&oIhd%#Lt=XbF!v>$;8Zmtaf@aB;O zM?$TFx{)XKZX-!dE^(5mh7Z0)byOWf%mYE>>bO%;&9J^-BO4@-Z}d#K$bl^7+vn@f zF1oVB|7%(H-W4J}y;o!=zc>F3m*l%VP`tb$shK%=`2qH}rma^{mVbYMeu)f5K~F?M zRcA$HS54t|2O%W@nFW6xKBfQghzLeXeNwFC)*Bl~Jw0pOTF6FkbR>a72O2ZQWY!s;ee$f zJ;8aT98^S3ZG^^vc^E`pj3PRz@y>3ha{@``!ne3x{4FM>X53iZB1%uj55e3zNn%-- z)tVf&;L*6eH~(WdHl8C?SL*m~Me>;R&3~UBp+e)TaFj8EBv$e_6OZKL*&D9%*skbb zjhH?6EH=w3Geg$`mKCv!$66IF*8#VJ0>7V?Ya1cLQ)vb!l5OE3D2{6?0=G}VOCxhmwi!{qJC$N}_eFv21#Sb3 zGmMj~bsAx|z~@y7%KO-pJcw(fAG9(F{=~8}=2XogxLVpxpIh?3pd# zmvLYZAs_(=Px*tgis!(}L@F9sJRU&bCRswiLbH~Xpq}&nj+T-I+%~O>D_X!i@kUH( z``sORxY*b)Pw>Dd-Gc;3$KR9WQsaAG>Ds+HeIhj5k|xdZ+-a=vqD6~X>9QI0*4Osb zLA@lo&!)*f_foyW82}~X7Ik(s))E>rcQ=b2bz9dWFgouuZfZJ?i1-N5mWi>LDJ2>n zOy!>uByxMDRi&_8Tp<%4T=!FI44;LuQ-7HzJWpP_-+OI5QGT;CWNsp0*ZE~lhJ7PV zZZm^gIB@IHZ`0K41 zQV8npi<)9vLTY3`b|_@Ah%K-79>UMLJ<`PrGLjMaf6KJ82ePV(lqVM!l>d&y=E~(a zZ2F^fW^#l*;_W3Bxx6b-$DcOeBs7^J zYf2s}TcD9dz9=Bm`!9~AB+;sVH>4%wd9%m=8;&Yx{tSo&!*dknOig|{YGlT}#Hc8H zeT-914kqEO?y`s`J6ljuPBGq%lQ8&ax2BCV_3w6jpgcd%6>u zM(>By$(nb&7Dp;?ezHp8S&-*IuAvh);_OPL9LZbrpUUzA^pOaZe=gjl#{Xwn~DIQC1F`o%5*--)Pp!_?Eg&Olts~8p);fw zG)!`(Btt53PiFSk&^)Od;Gn*!YHL0%GPLE!4dGamk$%jX&Ga0X2&&m8nQTj`ebE#b z8yt1X478%wcz@LadYB}6eVbjheNwOR0SW0xV`uE@!B5lN*GuEUPL}!a zUS$Xhe?dLlgolBc3siEeEs{X@ZY`R0N6^z{fQ`M z$yot(h*eO7`CG#*A__-R#l6_uPNLmIYiCLVz(*y(ibzYz1Wib0@~Ac!=~oeX2Mtz0 zT~jF%eAk4AwQ`cL=%=-?RxPW(<1Zmu+1jYYkTFTpc2DDhF+>nwEYW?R8sE3Ecre!N z1L>E+z211Q7a$?R@`bQJD%%zY7FKZJ6vSyLH~eqf!rBA&a_QQhig2T8yPBZ+^C;|p zMhEL{v(2G!JZQ{*=$?qO@`p-AT1#K@<0W!)F8Jg97>XU$Vai`Rj9;KBmh=nngS~I; zNJA(M#Ehq4-_sY*owm0+So7fk1%g62s4#T~-lr&gi~; z`hMo9iuezG^>+6@e7HW!DSs&ZzaE?%g9_)F*oitW%=4)KwqeaRG=kcjQTA7#a9-F# zH9`E@BB4LU#POvu6G;AzCR8ye*3WYt(v7SFZsyKe-dJi{Xn3PGG-)>@e&xe76zwdD z`^H*MqT^8#qkqXT?QqV!ZF6u_th{v*zY>^J<{mWBgS-0Eo>}C2hvqGFp*qnwX{BG0G}eu+C`j0S7h?~TqI3TdnrQL|*X*iqho%ghE1C3#GKf8k zs~%p824Kh6+EBtKM{*fNT(Rjp713JWhD=s*|P{;KKI&rKb`pn8XfMF zLFrcDi!^8*6f%!cGtj|Q>sTS!;PBjq8)t9F>VQBsJ^dsCm<-A^&B@z~Z+B)n0!-hv zpki~ylN2U0!Pz82^OMq8hwOSm4)CiE;Ab}P<{ZL|^CcVR78hlfF3#|I@JKIxnYtl7 zE`Ve|nu4U@_!;XKSgv!Xe+%e@8Tj_=LCR*oo4ex3o=jQGNmH!&TxrDz*er->Hu2-n zR5n53|G-lBd2sDP-Fs~jX1CrQMYN`|9Bj2%?SwNDV;9Mb-mbW~Z|}&DR&RMm5{o~y zD%nqlf)TRc9s#Lce4cu@e0qV>BqEz5hoU6&CSpYEoIHM5lXRE#A~do8>1YoB$8wLl z$w9zDOg7#ccv4O3a^;#Zk{i@HAeq6JIP}r6Zn^;3xu*R`J`u%!{dJZ<>$PRboO?Zz z=f>ZEJW<~i%Pi3h+5TGxW{ASw$+)x+@PC=pn+^Hdfzcae1JVjI-|D^;vuF(Zle7Fs zeSB(ldiC;U9k0Omv;fo<$MtG9_Gs?Lwdur0+wrS%>Gk_PZBsUg3<1EEI*yCxmKBln7Z_ z`MS~ZUXsU`-pYKU&Qq)0t>I6e*u@G{+|BKZpF?B8vaKwn#5|fEB0aM9>*u{ zGIBr>^a?GNQC-}hC_}*5?SQW7JZ~gaQ?(`gk^7Y76iurKcaUs^&w3UkNZ`&}} z5FNzFII(GIcVr8380HK_VR`r(O;u6q;TQ?pH1>Q<3IA}+4@%K?y3ln5>K`lWb~gIb zi?I?Z@xER39$th;Goo&ejn_OY-xidy%P!O&ZN4DqT-igBPTZ}Y(*hitb+iAT=SD(XK(8Xh2`XY}VJ_NU1R0P@)sXZHFr%cg;4b~Y}N zgAez!X98MtP?;U4B+$6f@<}^^{hX1m>p9GndW=#@Gc~4fuzs*yGecJAl{D1|S)!nS zBoj+z6UnNrLFMxgT>D#0O#z*Q^Tme52nE#d|KVp&`zIGve6y<@JEqdrUSIMg z?H(uLkyos;dq#v7>Tq@`t$w8<+%^RbszrL*lAP3f*9zHy@*yif2v{DkL$;0ru2#bP zmypT0HVHSP*_*NfA8X5=j?%PSVHaS6vtxw{;mT+Pha@Z2!wSgw3uP z5(GAfmZx*j1331bn3uL4Z9$eN(&3vB@G>)uoZDnQqJkHW%t=ga;}XBoklseMeaJ9FOsaBAcUKB z_C({b>U&`nJ#%yw(Tl$pMEt)^Y>@qe(`NYtz#$sbY5m(M{ghKtc6{uTCg8E$c$`!2 zisBZ=Mexhrn*Bdet@_tuL%WFV=Fm3}@2foV*|gjEKiY%k@x=A)O`fmn4=VKjC|Mg<{9_KQynIiT56!Vw}x1?lxVD8{n&)&a(!97rg zHiz83i}iP{TVLuM>?@!MordFgk^rqZ2CPHSNR6B+f#NR>4PmZB z0v2fLxf8B5P<{HK3{{c9^@%nG|3Pezrba@X8aPH0Zbxio(9)B;2J(CsgC6<%WbF^S zCQG;3q|c%lW79S0tp#jDRk{OfA@o>TmLP^KV-ZVj&U+Kpd@b2EZh#C_P6SFLeEkFwgA12 zB!wrNKWGz#sx1^SHkJA(h#o!vtc$Yxp4Sn@jt_v60eQdBeY!okpr1e-PzVIwd^>d) zw>@W#k#n#3TNM7mMthHxusGMArk_3mH`%BT3><(P{4f3jpd|Z{&&~vplcMJ>f&VZj z4om=HnoXV_JcEJho_$Q!yq56ZuOKig_|IFL6-t`A?u@ek51MMD0&JuHH+)4X;o}1T zcMQnJ?cY-VH#Q&tzwK_yHoO=30Zk=6GN+TbeLItXefC4m{_l5vA_BJk27a%!TiR5= zxd{ND{5-l^-^NAfe#*>6{I_X@q+H(>{`g`U3#$Kr9r%Cf?&I8^!);twX@s7l|I5B@nVyPs>ZWZCbn3Q$nyG z=U>vYO263I$d1xidras6+@VH|Y*j&fxXl~eDz5;55kj-nk#X*ADJo<_%6ay`Qhv z$9n{d@_PA+KlA>=nU%iC#;y6+}~HhrSbl{3Y`ohuuNBNV@~o`YXfel zhM!3n=pCvoHudE{cbojaVht=7zMRzf$D>z%_lBj-`vf2MO((G7Y)!y+(wq0raMPZZ z$56)o$&vBB@^jpxRTIj(f(`BTZ9AFp`!Gs6d?Bd$lTIqL_ryFK9$-Kw^nUCWTgmWx z8W9~sWEgJWP4;GROUDV+Mrt2$W-{&7 zlcLM!hW9E@z2f_(`ZZo+#930r)57S3ejnpCyl=Ewii#`t zbF%qrZ+z40DCUvp@wf&~x%uDD2e?df$D6-*RrNq}IGy`9LwX#66g*WX4*EPDnITL@ z?P>ziUL?rw?QI9BP*ZG|nt%Ih1I6v#`qX{1y8`D!pDBur?y=L&?k||^G6!pe!W`Ug zaj84f8RE4sEOIuLZ|0+{u11_h({?7vpXL~^m*aN(S7oGdNJSoO(MSF@#4wXK9_xQ_ ziVwDciGjzOO~rdkH72~N+yc6dJE7#%s34B=`n!y3 zJ;p{2|Jaq&a6|nh$d{03H6_pg^4zTmjNBV-9RfG_DBDS$Pzk3^z>_C*R8<8{+F0eg zE*g%{9F{YYw0VVBb?UfmQ;b@RyEb}zg7n5h9b6L)VzQA3gm^q{moCyTHrNOTX4L{4 zd{Q5CrC_*ui#H|Jd%ug|I}4!XPPYhe1F8aRY)i2wnI&>>n3)f$c!EQLyD_=1?5i(AZz>gSLcO~`yt{HSGbHbf-C|7af>}XQxruum@yHN;ebW(M z$4lvVJMfDNDuKo5v*SGo@|)@K!`;nA_{^&CLm;+%=KY?jF~NPW41o+0&U({}Yczh$ zqro`h)(2o#6PDA29CFjY{(l)m!fj|6F;Erxtf=Czr&}IyQ@Cjgnxjt+wg>XDB+X|P zhC0OHZKcBUpuUreK=X*~Amr(o4TOaiM8Mvo&?kp$6FpZat&ZL>gGLR!?^P$mDl8De zALB%jxFv+m>q>O$V99kQ>4S&{=PpEObCnw}-Y{mvx(BNWe^>1twHdo+gM1yxBbI)^ zI1Rhbf13#V=(C6km|Of^8B^z&Ht1+Z%FH7%cSiI*ukkc@s4mT~L5e^Gds&ZR&?P$~ zdN5HY1!+*gqyCu7U-OSFKH)E+WBV zc`a$>^y&fa{r$NUCrIm8grPC>?a)QZ>T_V?C@2?EPh*``k~O96yL`G{+UAK$njg66 zr4T;13eFf8Oc-Vf?;2F|0yBAVc(J~HlGyN9rq59U!6`DL2of$hl966`jl%Ln!IB~p z=rSH>yiXB9FE9UQSeM&Pa%G~Fge7L}on4;Pw|%plfJwOS#R!p5a(-7;7Vo#AeF|Z6 zsK(XOXZ>ytJ{uk{LJQw5q+lfl*%F04{=$*4L4TDV{uMYPhH}!R;8TZ><4H^&yvw0a zi6oqNWM9hLCw8`}J|9_~H;0164zQR_RJP6#eyVr6bUK^sMvruvNqA&?4GBShZN{3o zW7f?nCV9O5L)@|8Ht1SHQPoEaZ5}9w%(N~zcxMTN@r5qwmR2oq+0k=gZM^Zg)9@J% zs*@IAF2Iv=F4Zzs9o8A!U>zNnBMPi@D?#ktGvHVhek5*LcS&nzRaLXm;7;bTp?VAv zq94uHCr%E-l4xO0XSNeX1U0Rxo0~P+BLDjqmekl8jE+FX$^HVj>hx{mpM7vo${qjd zu4PHJ{JV3`;5`FP!IMtPk1GP4>g+Epxn0B^{xzRC!0k9)7eZJJ8Iw@aj;Y?J2Al?R zOm;S)S+|Bl*|cgJ)0r9wY2q$%HKYGC9?AgQyvBI%@Px9t<52)C)-I!837f42me_TI z>o~w@ z3PsBF!{}E{Yx+|^h)Q~qzc$q2l3X@AWpoAa@%}5BVGh1$NDa?q z=`#1XCUfn_NG;1Xm$#(sW5(d;Qy)*49)B(raFG&)1L>ht(J|gL!S;BQ7f?NflFlfh zHK^fOHGf}E_i&e9caVi3A>I$)MJJ9S2qym{3Cj_9h4~yoa<(xe_gf4q>n?n8vsehnMDn3+3)i#Ampzy6sZl)J6%0CC{t*#kIGJ)_qNBxuv5FXeevSU6Q|A`@_RaKn)g1D zdDh@ReiT5cV-q}0-Ezxc5>(LS`gz^Od-k(W>aB_tIcQR>ci>2Yzw<;GNoW;xbsgy% z%8es1^*aLocCd#oEQ)mra4&*UVmVFZcsNPO{w)7w{3)9@yP{cmSGA+sTzs6_dz;ay z*xnY6|G1gCxt)p17r_#Gdou&CnxNU`TcBS)>=sT$oIXH+2i`p~K=JV21)u)>02zcs z!SapD`0!)H|N3dR7wgI#C4fCT*%3eQF)Iq{q_PGhVvVJ;>1M_o8KQJvEt{md=pa)n z9!*0Iy3BwI4h|WMod;L6{VPxvU&cMXr1qtgEC|274i4sYrJR2pkoI82`o)QzY~1erFjF0#Ju~ z+Z!Q5!z|#Kh0x*4Gc+i$Z&R3f`e93uh(1-+vZFbX&uY3FCh~lBvkYn+U%!78j&HI<8wa75GvCJvJOA-3h$%H8cH=Y z{AEQjJ{N--AqO5C#je@mWj3qu2s7{s~L>##cg5LGt z%Jx5ZJMOj&i;G%*74B%K6Qr|~_g+2M9XNgnw0TwNt12UHbBVM=zw-T@IT+ z+VWM}io0c&(qezwf@Wx$x4b0W`W{zzPD+ld-tOAaaEBJp6Mcz)Q)NV{_deNF{4Dt| zEeEciOBrBL40~bSs6cLC9ywmM%)Bq=KRleSKQ3H%+GoONpPY8@hV2mctp~m~zo>24 zx6E3n{w@|TeQ?$SbN1!F#q31GAJ@N{U`MyBHr^<(Yyr;jB9`>_AY&NTGcA?fE6I;j zsn3ASr90?rZ^lf0p&fiBqzxzo_GdC-%{edwaOX zw=80u848r0^Px8ntcBM@Tg~V#Sc|Zd!)en`q{$Jqg)GPnVf7I$7G_ZgO2$6O=%&TI z@{o@a!;l!YJoF?aV&CW+Tx#IpAOXhK(*rwY4$PYy`*V@Vk(h~n>L4DYSx7Q=0yBSj zG2baq8ud(1v|fm;R=H>n3gYG6e51bhY|T6|Wl3DZV35rOm90AP_=nkQvb%Q+Yl={V zpaFm5$jahd>f0d`Ua#Z4zE%RVQ6fVtSe9V0AXz%1OFZbka3}HIJ6(2 zrc1VQ+~ZGwiD$ZXprajvA5E{9}|#>ZQ~dI*Szc%-hw=O8)XvVbA7_m3Hg z>mWcoXW@q^7=l97|LN8!;>&`!5OpuT*qn{3An*Hj?nLBQU$XVNZ?xr_y^R$JCee??}X| zit2{oM8QL-!Y?r+e2EGiy@m11b}kkInIJyc6EewK3%W+!n2Tt%$d%{ORfMPxE8F(F?#lK|~B5 z60F2{vgmLXV$x3Lxc`M13c2e3n&NS&`;&*5zI6HiIhH&WoIy;fdu#~%K%H7Fte{^? zScin2Dp-^RzHT=af;iN=bT1LGYH&3ie_m)xkmc)RGo>SryDic}c!k5~`LyVHHGh|Pyo7}_z!a=XssNyHfXrou1?_r)CE7UPV0MEui5!wHZg?cHF zW^ndcCJWnEf>$9#Ds(Xi;dRL)GJlj{^(BGEn{)8xXSHFmLV0Xr%^Hf#2@g(vRhs)l z?Clwjg6FUiNu|yl0+lWCHHS@$;cc?@#S|o=f?zQp)@BTMMR);l0%Q$93hrPQgUS@| z=i!>nV8pF5tq|aae8Eg>Aqw%%DQxK&WeED+q1Lm2*;gvjj%c|kt$l&(r=Mdmn8puxitiWmdu)C}ze3MQ8}zT91-69yw- z>3a_lHv2%{Uj2Aac-(z_^WGxBF3|}LzFqm%v|wHjxm1o{p)t7PAj5a-zHr-7KQiRle-xG5kJ5|4>@|gdtAhtJh;>;{X zj;e#^77`A;eF!j(!jf(bM&wS^I6yNK&v!!&6WNgb%s@=Cm12hA0k2U$* zI+AMhQNii^FZ#&pO?vjAMBbo(LTRI<9SyZBAD~he{2yiV>)t+BaWSo?>VI|0ZD)$O z_yGMiAVMi@+5+isw7v7ll_{vtI&!Mze;2Y32Z5*mrE3 z|F|kbn@n%dqNAld-sW;h5Bj8dZgRW@wCo&@r(5a^*^p$Ly8{hhEQ;(ML{2M>hfP=P zj_$R%CN^t|tEF{(TdA~pT_RwQ|Iq@RD7a_$h7+Z8BxH0276d(|0&e)S!6sX{%b$og z%Y)NBwcI7*Tkg$wnSYn1=85qS#$Um59DjyM|GsC8f9&>^65}Vb&a)UruvgXbAA(JeXj%s%hA< zzLV%-WS^$DSWv)T|MUcZ^u!}FL~?da9rzYa5gDR*Jrj%6gO9%GBy|!0=~xnaESaM9 z0u1^&_Qfx2^17Zd#4pr1d(L)vmNaJStG#Ak*Y^y}@XpgJu|(xN&W1dq+z!rfi70{Z(S z3{*176EIcZQ(4A|_8nhQp%_5)`B)R+z~Ycy&pN4#<(Y2%E zy{$4rtw91of>x9ezo;FP!%L8ucv%GPz^bUckRNoNzxRo7R#kk904-k<+@0ibr)$X! zVyGrx?rjOO%>1lH%ob6d~sTy{Gl^BpH zsn(8EjN=Vqnh==o^;R6eui{JNZ}^k#4d2@*+10`eu@lOi z(tD2{Bgf`_A$^!tOzYltafhgDB8$jKCvCPNfCoiQxXVGS!xci9Z-r^q6Dy|lg^vD& zLc76^);oyfVG@QF1_ZAHwV*pexIRPTSJwY130nXPLcw65Aw&p*jOMi9(AAL6=@#T> z4sH>nQ2@E*(HVOL zu!M$V;l3HKb7YL>!W4O~cpkkoPC!OgLD+$u24=>8J-M}(cGz9s&$`aa`#AfoO2Akc z^$IH9*6Xi{YbjiPj*dp{pSuuj!7FKr0^oYwoEdI6i0^{%rfTlxn&@Zy)s3emb=!XOWLs)8eUXda}qkv z(^kl#x=Zxli=tQ5QpS(|{4r8*i_|b;{aTEH{6m6PYtnd;OXmp7)7Ka1(qQvUEiH^S z(YReOr!qPk9d^!8Qup-syUv=_r8fXjZFVbty5__crOk#ap8Dn~@IU99UFC4TY9T&y z$ekQZ3R9-WGn9Y0$42FU(q9d7oj%l{MxNh`d(*dOBo8#*V-^Qu$_R1lF$VOQ$;Nlnbdv6#CyTWo8n7u=aI zZLm>~nGyr6T)aO2o4O|Lw6A zME%WTfUk9<{IG~4{5IHvx%QlOvR+Egzc#(k3&((libC!0Y{@gj-y7ez?*T?cw5;N2 zFT~#-;t8Psk7nbQQKpJ%;>4jtb=F}7=fN<<4<-kq6(&j91 z_gO9Y2P+XKRSb)_f9h%MaAeZxBkko!m-{l|T=yEOV|P?#uD5HRXZg{{3_V?#Mn?fI zd-dGEi#*rtBtJICXw?|^&SSr5_CX)Ub?^fr5Tj21X6#5DJ_K}+5w9Q#+FkCkrP5v~ zSs)0w62hQ@$%(>TJICY4Z{KedxmIw$}>`@m$0mec5z{52AHx2L4?~4raA}}h= zh0oi(<#7v5!PN6pV<#+%)&ory+#!M%sFYT~BXLHx0*Vb9VZ&#Khh)%dcr`&ieSoG6 zDNi=dmyri;)-fk|Y^>R@eWJ$ zYEjTzlfO>qxoWrW$paN2BZ)8d^gW?&Tn015$){PP3=|rS{QAUI)m>eEDl5?XYd8&c zE9a$9oY=>;CikvVu)(04l0p+Ia%9ydd@KsiHHbWN=vDVJzd1A^jyT=KIjo$Bd01k0 zW}Vgs_0$lrX>&m zgLNUW6M8|k*2Gu=H3B*(CLlwxK2f{yF9=Z~$eaN33j28;0UPc(V2P32RwWkNhx3MD znvglCAjZ4CmKvh%;CIj|@}G4vg^=CS2%HUJQXl%vvF9vgIvyVPnZ#|An@n4;ktp4` zR6`gEgGeo4{yiBit3l-*`7QT?IC3WTqH0>JfxulBH@;KZ6qpLoQrEvG>xbd|BH=5Z z`S}GfJ0b{MkbJU+Me9#_F+oRq23ZE?wO;#%3Ivt?%UW3}TQYI-yXC79pPrNd(J~-i zymF}XXUaQ4zw-JDY_?%ljD4sg6;;q#Xd5av_0@B_ z$TUUPDOP&%m%d*flHKda*lEE1Tj&PM%m@T_{_L`Q)8ca*9B=#*A4{?oS6 zCxD)6*&4~J!gPx03608|EISKp6)uR$v#;X$)Q6$t(5>gcdW^6bQ*x_#2`{$Z=aY~t zj+C~k~ z5xzG4>vfnH zuHB)hv-)WN+E(f&+;9q8 zN7%})2_3c=T;7y<>Tq6vX_9O@HS~;Qbf@<4D*cxodyJjZs~-9tkaL-j;!|B&!wgu{ z7{kjz`n8Tf1#{dC^M&)eOyk- z)LeX9=e-pRdh*%A%v{3wEo2@f> z!d9AZoCUV_1Ey!<{*EPA`80g&ldoHc&n_!SPO-Pi(oDdIbB!G{o*|Xcy7SgE8N*e?1DVq^u&@; zb{F)z$xWTB1z8dOAwi^NNk)$@cCDH|3sD-SIKVk8?B^d3bFn;SVIz-*ew3iP5$t7; z;n*1M^CQAz^WNOR+{G_h@)L{X@O;?9i1ktv9c}X7k-OUBE7A66-{^6oaDkgKAQP?F zT5jK6WFoO<-pe{p>315Lfu{M%7R*K3j;BCoq^+1jEw1rQ^RRZ6+zR^B4(CWDO8vNy zpD|wT*!@_$LLrYJuz*zA40^Hd>^*0}v+#GEZyLgoWOxL5gH%Oxv-<+s+`r6?PLJj$ zw2iRz3=~vZUGnnE>jhg8AE}GcV|vW}piqug;l>4&su9u@&R?AJE(jQu?bXm~=Bs`I zpc^qPO~GPfkY482577i+lteyT!ZVy?ENk_cJ0Xpa5PnKtGYigM&>9aVX|bFn5iC6e zC<$f(pjvt;F@yImN;{^6K5wLO@01!x@>&idB{HT0F~eZzyNCOv3_8)ZceFXPjlk(O z(%HY{%XEH%7gmHLt_#ce$XkBWVZzfAAZ|aUXU7!*tzTo8FOJL==Ysv}M>2SmqN(YX z$xE~^smygqWBk^|pwkOh^_5c3Ne|*?lq2EFhm%Wmr&$}fwam^Jvys?@9@%prB z-YX|XAoj{)fexNf8@)9YsY(ONhTDCKB9;X zFeA)$6kdID2spg8kC{1)DCg?nS)7*`w~kXH;z!3B+=FO?jt)Rw21hi8d%979dqC_nqs0R*3))(F|2CBpfoZ=c}vWNf% zz84em0{#IOonK-iMCLjWNRq#9+A$e1V+Kbsc4)YKAh!H=kLs ze;$i!&r}^;t!qb8cPHIU8-x((!?#q2jp3B`N0MLI>4CY8Yg(%GA?!ESDt4GBFajOh z9AB}iB-Ks{_5)!unsxPGE3ihT5b01JCc_Y%yFpA=(on+5#g*Flf|||QsXK533(64t zSa6s48+hxWn>y;NKzlVhBJRUsV$hF#yYc@zI44DMC_!36ob081M;hLB8iYng9Ci?+ zL@pf4O$+~{HW^6*mTYG75}(8*DAL%ks2OXCFlZq>r2EajogkF5A{^K+@$a10I!C{l zTk;JPTAak=i21X{NWvvIHk}*WRE+rywx_^)3fuSxC|sJd;@2~6;aZ@eNER1&Jw&j^ zz?j0Pv55$7HHwij7ShnzOla^PXW^Nz3@0h!B>XU2OBY!fAJ>&VAf?Y4t(1D%K|A_G zj4P3R8_|H$uGAd-0E3aHs%i1fwgkV|RjIj%FQa=_&78CnVlULK&=VW?FGRL4hw?5D z(rh=W<%R*f-+ggJCTMo_K*&ZbvLc((t%|$!2BIU9$fnqm8iqyzej+vI4XAjMrCr8k zG}q*WlQP77Mojx0{o*JrRG#%|-3&*BfFic^>S8I?@-!rK=OKqvUD-eAUTPT$xESlpDRkzFhxK&h`2Edf5Tp{HpEz6!qvE&E_{AntBBf z==^!h8=ig3cdt-)SpGMBUO%|Z{Q_N_Ocz3J0@sdW?G_ifF8P)r*MRM2fYmBpGT-2U z^6wkszO*e~MErz8bd+EBuIixh>g5?xRQ?EC(;BYd<_zVadPjVM<%3G9(@kzPZfeHw z+3A?{Gv@gRG(}V#@Ugha(zjpJ+wp?tc3M35pH1aFJpS`@kuM=CD4aap+;P-CoEMsR zoA5p<4lO<*Ty$q);9e8MXHHurR_94_nmvqwrND=^8OsFkk~}0%v~fnR4ttT*8IUTJtEG;`-81Nn=K3;z=j3!=I6^K<_@-YSLM z+@1d$_#Vz-;{T14cyYk)5sEzGozs4vel%(B{~ZEk&S7R5?(jWhkq17B0*R5zZpj=Yr0+QV8FpL5TYyfE+Z@`KJ#FLf7! z$B!dEZ6jREdS~uY_tG%uCn`xCRuqT-PFfmH{(W&Gya3O7CD1{ZI;7tQ%UF|Gj`Dx| z$}SwHI?16ACL4bH`p|59p>B7t^bdwz-^!p&v>D|6owX@Z-bMwAPBpF)JB>-27djvfu)#dbH1tGQd^%{zRZ)k- zesoPns#&ZlT}3?z|LiOvoCqSPhpIneSZFbw?*-%+Y%7lN&G%mX>kWX?@jDgEF3yI` zgMU*9_0@*H!SMyxXm6d~5Md{#T^|+?V<~kJQxV~Wtt!eRoNP@%Kl#~HW7>qoYO*}L&KX!Pzd(6>$1*y)-Q$8w-np7J%1U#*6}pzYds$CD{gtJes>JOFZmJHLxyK$n(YjCtb zZ8UZI04X@6qA#>Q``qV}^8T;J&N3*jW^2^A1h?Ss?rsV0?(XjH5L^c*xNCsmZowUb zyL)hVxRd0(=aW(;7OWJLVk^PxG7c(?f!-F>Ec#?lf9Qa9E$%4b~jP0}m)J?~?4S z+|{=d5MZE4EtiG^6rabPqY=JVWG*M-C_$8PW_Rm&gJ|QG>dO=4l-SXp>l|*&e=*|l zG3#r*_PwIt>`)SY3|o6J51`?b_3H=4GqwW5P)?3beS}3D zEn~y1+nML_(@xD_n?%2u*3by?_vKj!uHD^vv#sZxDB?_!{ESw{=wRq2R{Y9}eLb*~ zv}`x6aYu046c9jY`N*)Yml%kgv~nFSa-Lij2MvY%HTi0v50m|t{~;7gf!^LBzvufc z0kk&-jCqpo1W#YvXs?occ?3NrTN}K;T8CdKKE~I0bF9tppeysjyMtNg^0IIp?{>R$ z?3HBPcgo!FPKD!Y>O=&z#r_A+%Q0g?{A?+zQ&;BoZBf~4eSm}am<<9#47rKYXxxL2 zX?`~u#}8)(&ksLN!C%s|z5=srs*-1V-7B!Z>+ct{1kmg$waVu1NznR^fPjaRpL|~n zl{G1>n2I>ICX6H;qrF#7Hzt^Wb-)pW=l9Z#tge)O813m%@Z!?d3b`(JBW$|a#!a%D zK9Lbq4I-zaUSB;kzH@EK`6TFmmJyXh`eV&22s|7Jl{_ZJ8gG2WXW!1 z@DT=w4@VpU*v;F`iVe7$5H{Em0!IcPtQ_7x`(o()1GW60_wRz-AL^J+wqHy?aOK@H`za+5*z@0fWhm% z?;{`JxD)67ti9x%)o-fv?hGuq*>(s$oi_W-U@fjE;B=sR9x@68tU#5a#weStuIX?S z=;oh19dzxC-Fs!5>9P7Fl2r2LJBP0KAnUxDc4*kW>M91bBO_l=zZF{UwD%s(TfJ>2 z7Yj`$%z(eV;%7VBVlxB$lJv^(fcsT7H$09@#SjeFLv0>`YsX6+@ZmtIg>HDY_rzp0 zS%jp>%}VXwbvQkn44F;!L+dsvr(R9Dam-JrJ2%CsRtbz2t%UZGBupW-=y}kP>PMgX zqyf&3Ef7P^ksqkLR0i8dMP=;{WPeSvSMw6g9;;SxIbn;x9)?O5o#T>fvYXe8W7J=z zJEN8q;E3~4x${`IWDoa;+NRrCIWMj>N5_7U8A5n2#rKI(w$(D;>rfb@)ekg{KBMfJ zY>@Wd^BL=S?sV3} zP{?&LuR3)(Ec+{iL4gL$iZhJTYs0L#>N}ci#C}|PPQ%XS{j|SmcYJ|m$#Eiq4C6Tt zY0YYTZ10AN)3+r63{|#UYhaXq(j@OC=iKEKA1FE|uUdBB>o&2C2=%cL68p-eF^`kl zv+V8mTd%B7G#8(hJsNN1_u9>@oka+e5@xBVxPomi7Kjb>AV{7f5xbGdSW!P+>vOXlIHn;5Cxpi z%T{&+5+z0(t+O4toPpKheAC3_FY1;hcN);IKEmEKHW&|Kn>QZo*@J;pV^((nPt;5+2? zPucdJO4^qBz~hL9-O%}~zLJDCg@HLVQR1L1uJ<*mw*&<=8YBJFaN8kQo=eChSH1q! zx{uO_#e1IC!^u1rEhy4`q?)2w&^4KLPNG#sWo_SNz z-E!&tmKBp&Q(2_X)K3C%3~@P^=+bJ1R)+m))nkbg&V|rf81YH^{Gs=Pv%|fxmnIaN zj$bViD_LP(X08THhP2tVv_Q9CJi1`#0Y)DHduS!p(`LO`?NU2AO4LIznn9ngrf&>a za^he&5*>M7xj3}L@IjU37*ecHyIqx_vWJI6Mk&4|nUAGrPfm-ufXuMU=Xu!!`dHsh zuMWcChh)yu$yUGS)9q$TX+}!OQ;v6(?J^?l#RmJwu)S$Vxq zD~+#XvXuUL&?VX-)^e-Y^YIwJf+NZ*+#f8vw(;YwEAcIxb+A3m`oC=sp-pWxnHaUX zVlNN{1Rh5Q7Vu#5EH{L-Sy4``qvILROAWiQ`A7MV0@159&z*tzV6_8A3vmX|gMfcUA_~Q(=-o{cyQoPgAC>5TV{N;n6iYndq_@oy?8ir{ecUl+lXn^KCM+&te2%Xa<> z=3kg7g^~)xQP7DM!90n+S=6KyNzRate{Ls5IyYg990*s3N2{T+{zePi+czy#j@ zzC9?AS*&=+BK&h2H||J%;MX`hvo0q#RG%UoHX0h5g59&?D+`$v3J1}6GFJ0Gcwvnb zN}ArST>ZWBkQSNqV$r6C3&z)tk+a96aL0a^)e-XJ_xhP8hqc8~b8wdR73XRh1uXHE z3XlizsnOP7$;4A^Uw~y4w;eg_D%xK7?0p4XDmm^{B^w1YIgB9MGzg@GM0NP+Y>J)lLV&v zvZWXyW#_bFX?{w2-aWJ#2Wz4hhqwXbivcQJgCr)zo1cURh0v7#(*8smc_B1w$e@BF zKiGEQ;KZeTqThIF;MGxRURlBuRksUpIyA1FmAIc*sH?(GF(m7g*bK`@5$*!vk!`Ee z6@|QfU_}R;V(@D+Mx55EgGuQ|$SWIR?>8BC&9I-}VBH8O8k7`_i$E~Wi-K&H)An5s``WLH9>kg_MRF0BwSds&?NYI5KgWv9}^PLjN$Q zkS?aNGW^Dey*QexE}_0GC6)Ya=jM)w%O}M>XeMkTu)%}U+m@u`HH4bZ@3vrwC78Wz z{SCA)1PUSu!awN?igto&T5#Xu9R+M%ewY1-Ms(K|O-B&JEO}TQvZQ->yI)ys-+G1y zXN+<0P7$}5CI#Jb5bA1*B6IA{P3rKw0sU3HY|D2I zG#ZdnOQTaPbJFca;(27`6Jve}(Mv=$<66dQRYY!DA@qxD^2nLLa8G0K)Nm-Lar+7i zw`obrdd~gD0x5bv^k`#Z(;&@ zXSy9DvGqEHB^=2gu1Z=v@cX%?;$2G57gb-9{xbLM>D_JWhIayw2#PD2d5Mu7!NR#N zb%&Pa<6ya~g3z!Ka{PquJ|IJ$*{o9gajo$3Ml-W8kzLO?_ioeX7?z_CtXMxo66?yc z6_dQM%KI>)pD?N^;kDdOj#t>J>_!hb@VFz}l6lDPOMoYxP+sem3taWVnRM1Hlr7

sftCh8(*_*LpyA%J#p*;CXP;1CbF5ov4mSqb)@u|*u;s8GyHMY5- z^xjAU*dFqEuR!2Qv&Fyysi$j_0xjbJ^E!!MV53vM^P(EMJg?j&StxF01*3yOn`3D4 zPy26}?%D?zX{d!pfyWxF=gTgZzRPsX|^Pu;&f_aQiJn z3y=p6zSwu@h+$t+nD`yrpv}bzt?Hi?j|z?ldOL#T3AfTHfH7Mj=qC}D8wZb9O`m{Y zoCbO=ISUk}4Smr%W3Gd7R=t@?o*ACrvKV{T&I(K*P-EEk)wn;1NG9+Gvm%-jInRm8 zz2`5xC{n*O3m~2)G|YYrAnY^OFK|IY{yO|cmHcFU@uKvA zKAA{8I9=`Y*9 znRgo0wW&kPH*C0m*CgM~=P&OrO+*xD-GqW&)NAx-*24V4!9Uj~bPXbwhHr^~3ef+htcJK|gSk>P7SAPu$ zFKSMB2OX7q5Fu#&nwoS#v*H$dac~&ZmbcObaU|f(SXeAMWr9*~|MY`x)=ap7&=E4J zATBD22?i#;aI3-)Er!7CIeea`ofsg|G8 zbL8fGzDF#i#|WizhmkLtt@18heAzY+Age`Eh2X?2R8l!A@^MF`eF1TiPmYI-*+`QlcnRl-n6NkOf`lc_kca7MhGCeB;qjtzNrr z2i7x2HqH8x)DO)Via7e4_9uH-h_knYppV8vyH7Dm;}!cN z6X5BB_$Rv#A!AS84&f;i;9{qRKC+aWF>M3ieIKm5mHQ*>)ELy{4WHD+4+aa339CHj zFQ-yZ?|9HIuXA2AxncbaUf%;ur+{nNvbjl^@Dgkq)p*dhxtbrue>$@0fA0C#rDqOA z(|H9*=DM`mKa+@ACK{`lO2|dMB`H66-QFqh4VZe-YofnGe2hHeJ1K1z1RtE}x~kI} zlwmwPgQ7`IInTfHToWsa5-7q53GX>zWZ^iV7>{B|>(HK|X?h%ldIV6z`v?1o6o;-nFu-5a`QUXNyM?AdmVg*)Fasw|GQPQ8kCk+|tbix<+(c+m_YF z0Nt;d8orE^$Sm>xFTyX%0_YN=9T`$nA@`2KM|ww#gTE5oCgzIeU#~ilnoE$w$SliFLUS83g=uvIzEF%@k|Q4OaU1fG(&*0bFA)Z>!F zN-@&GrcQ)`5Q$HSw-KX1%>U{+OIS zl&!GWqG%{saZwu=ds!Vggx$6(nM^OI?6V?Xzd z^6g_^YIPEPPm{i8_TLs^-lxZqz3F%DcD;8IygmGWpFx(+y7a_Z>0=`xx0hhht;S0| zX+>UHmcA8~-1cqp%9Db!QTktW+G8riZBX&e=W~V{)&G<8qI&uRei==sWT4Mh;c^(+ z_lmi#uJ`wEk&c^cec0$#@C=8v)#m0i5qHTMG}aJ1a)g`cVW<_*kx_TVh&j{q@z)Cy zmolDW?ReQrWOzfTGV3)Lv*F#K+yHYLWFGm|dI7f?D^1+xgn1`ooBDJShkv9+%O9Bo z`i^&nsGi7a?^0B$+*W%pg|XML_J9Bd?~J+Q(GEB1e6IY|Zsx4p0A2Q|GJiJd$&xr-DN)q!?9cI~BSt(o@#=PMcitYZZAPYFS4(DN`F_}+A<|ZRNGNE08#Zwf2jrM$~J*tr&UezUySh=yJ(37=aSi39GtT4_HGlq*k~Qw ziqX=|Th9tIo+Q4S>608~l0qtxM%->U{ltVNIb4@t-+hPV9G_pv85nW1$2|}#ttNL0 zt1EQ8cQe46YK>$N1%7+%woc6(CC*N?8d8}2Og%0M_HyIz7fnCGu$u=uyM#7pIMQeP z1N}xWH+CR_HC-3sizg6at7o7nIDY)N!|0t;5r=ktq-}GgExy+-zoQ&%2VVTf#sCB zh{F~{`Ez{hVltZman3cLp@tOXm-(s3OUI4Aq65VF_^+oz=$X+rqMu=$)v42UVNCtt z>#Xfc(~$+ln6MaoUc6_b2tKnmVCXviz!jQb@Ci+&0|M(x<8Y+G+YZ9W{=YYQL79D@!Zhk=d2cX9)T5+ARiW90s;jMD5{=>QKOtL zZ0vHWJb)P((_(srJbh)i-Nn1dtS6-*oRb^|5zw~-%zD5ylS&R{xE0UDCuf8c0Q9XF z1}#8mKrx5g>>ITYj7H0hv0nF~T}D97kBPx*1dmdc~1W$tePGRiY}bJBw1eXy(DMfj)-E5SHkU$^8Z^GBq}U zS~&Oq&#Q2;4mHccZpP25=olskBCVV;^n^czW~f#!S{3|Wp-M)SkwN!*)Hv9Hyv`1g zX$P}E7+B0BkWLw}Z8SNO*sRYNY?~B6JpRn}B1=({eyWuUM6+V_5D8uJ@f>&uM(M%( z!Bs_fQ7%$B;PPwCUihv$V;_l$X6E)k!v;J&dgI|QkM(oVg3+wYGwyVN57&8>F0Dr% zN#GX^gTcEgcXoboen|!y5VY}7&_4RPPW76&8c}yfVLY>n@1#Q zNRS-4xb>F!8u?Pj-xCxfW2NpsKn#AEXZGwVBR*lpqukN_?tn%p>97zqS{LCQvl91n zk z=OM+q0$&|wA|{R|)=A+~;=oh1!VKB=kY8lyAJ8#uJ5+7%E`y z4&{~61Lrm)V@L2=my^94a&+|lT=eBND#N0^4FH@PGj8VA3g8l4w-3}7>qEyI9mG|A z*fPA~sWKXan^C@^xw6TlEjHy@?(DCj9^0>-X7-sXTarQd61sp*r?f7TcY z8dm8j-7JuQxE~kKGYv`>nyxg&*K>idUT)*ht}}PUMc6VpR6;JGSq~#1`2GvQ z7aW184tR^#fe|kOjPXML9H3?tIaV-}J$;K3G(BhjAw%@;UU_v$U{;3Qn-G%RJsDb9 zP!^lNWx)?-Bi_aa!~}no7cNCFapt_v{HeLX6})2B?qK@fZ*%3W**!J$0;};%^d2|^ z<-PeSz{Twm4N|+J+vB!(WOl!Mez>O;^l^Mn`t|iWTA=4T2sw_ED z?_3vpwjdPln9LGgBZ)C(_z(&GC^!Z$BX*DeWks`FNn|lJr$tcV)B~f_Vn>P zZs(!m+Y9`yE&mYc=5M@9jhC0Z9TFdpoD=QS7WH)6&lcJVM->h?C`H7e6*}vXwl2i_ zCQUHLXy0pgxE}f=u^0fCAy=6j`?Nv-@G~NH*bz6Y$PsDMuH9B^2#O_ zxl`!zq)X0sKHotGnTx6`3}$eaT70Uokl0nXFKGN0hcO3S8#DTL#Yr+_`o-18aOia- z9!pUZRw5Q!9TLi9_swrrJPO-#Th&L&>*77)mO1S$B+V%J8e?vK!1#^kBw4k7qcM?v zMf#c$q82dN48ghTS5U;Pwt_e`!4Nz5r0W|_d$LlBQjSfHD(#Y3hXBcgvGUHf>kloQ+8f2YSW0?v%?i(v%gxAlNZC>=r-q<-*lV#^zQNxDqi`6ikGPlgH1i!eL7r~oe9{62j$P53-WU$^b7El z0|?0v#bN5mn&}ISvi%AKCDWos&p{&T&=lKV!r+wxDJXM;ZTS?F7Lh)uE4@19OqJ9Z zhkTvESZ8~9^}f5B#Ws4kcx z7u{bkmswecpp_@btL+ikn!%&RnMw3K12Tf`r?@?5_BWa58VHN8Bfh>Rq-#~ZnYq!m)k zxGwWKjbG|7ci&)ht<<3^kC+*8q^l8TLWl#eqWXq*?R?dJp?|O`b1I7!9O0l(H?%B=Gv~CA(Z$~uL{O3YFVi(aKjZNh(g1z9x8x>^E3IM9v|-xX>Ycf-77_BFGTX4) zNFkR%VE&=9FQwi1sQ-(~eq%EA@hk{Ik-IWmpYV_BD0fysfC?6&)x@S)?anEhn?uLn z_`@*WIT&EQyBUIqZn>*qG2+ufF(6OT4`ugviABO&ZEVa2#f=Gm`i!XCe3&V`pSg7 zu-@azZE%$?(Cd-cb_%fApf(fw2AWOi%cTV>U5LJ-tNnPFb!yGg4_%*E`crBnIWa+m zNThU`X#vPS!y{*;)W#ul>;F)6=UFoWS-;yaTljwQcPJ4|&WO^rlk47tUPqLLMWn@mw$BbHfRzegC1lA3*DSf5r#O{CtQkrl}I&(=Yw(gwNWA}3<85r3OT(Ns-Sge6Kax^iLqYXZA)x z4Om~BlIiESHzDh{N}D5_rc2M|e@;z3(h6^+yj43F0NlT8KH3`dko%B0j@uFDGn(;q24T@&SWYGvqf^rku5r0K6Ca3_C}$u6JLAn`*0O;s@39s zK2shU2>|jOgW7&aQyy?*kJ@@C`m77Jse9+%LIQ=Cay@Mx!*8{1|61 zt&x!Tez#k-YTv%`!2HUx8~31y!M@LHQvC6bpX7p`Ze-A|Il|xYY^Z_k_nGwHJ3P1$ zA%5cK`>R}5uKD+&F*@hceKpDZ&Av?L?BVp9VRN?`=!@-7pLeB!>Sl-dGd~EWbjm1XO)0QM!LA@f*(FPtolC7P`uxC7aOYC`bXm} zvM6J;fU!#VjDo1_ih6e$)oEwR%Oe;>E4R)j$>Rdc#H4A`7tr7k`-?NbHaDfRY1z{= z8l76uZUZuUUTpcg_>lou=1h}s+jMjT`ga1FbwT>RPan0P<{ga^VeQaMZu`U8+J zjCES0MgmntKArtfg;-#JelKF$HF02@21oF?=e`;8+MktW=V0TitICskLY{akQ_|Fv zXL=Lj5qmb`2s`a=(qs%+1FV&8*Y`#=l)fn5zc14J;P4=?{Emn{XJpw|N#0CJDt?Cek-kH^Vh9Mohy}k{6qP#RHj4cCw>MmiCuh$W)N%*X$fe+|P0h$HPq@4$ zeZ&~}tj0jum;s8dZpqy6{!2Vum=+DAg-q~4I>FV&0hs1tn5Lx|@>>k!C~bQ^WyK2E=SBaMDk;X3;7$fa|6gDlzBDe^ zoCTPP)_j-Lt1EBY0WFvGx5H7ciT)z3bX{`VGNj#sQcJ;+I3%zw{l~bldT#80qnZY7 zj}<;DP~;BtMMXIKY}+5GNWWr?+qLGUv~10GEi{u{_Wqj^D(rmnoBq`g5TfgtqV1N5 z&P4oiFk?HRX8Gh6v$(|h8TA*XmN;87pSdiI5wxkRNQRKS#a2zEr@Ba%(Vkmmp|qRSa05VX|C{Yx{$mH(@mxj;hLlvm!c>k;TB9oyQ4 zMa#$lqjB$PjT{u51!PAPLD3C!-{nDUNv`?jpos}Gc(>`*45_zi1r5}@akX|^bw%VF zbF!%;_)za1v{o5tD&NMil+8f%#}QR{=^6GWiiz0!jNJO)^4m@{`d>aH2l_(?Za*)> zLl_WlLC#1zTPvl}slm-NELt-i;l+OFwAIM4EPTRJ?_~q!ms%_XMI=MnNW4Jba=vCn9JHE*vCg~&%XvB*nURvoX1Z3|Z!fgMb z5$$uuIss@+j}O}GW_sFIk%sBAz`4j*Y}8Q$m2zN5HZ-JOLE{CQ0yx8Q%N)WJe48dL*yF>DXGv^({GbVjCEaVKGEFr z-lf26jH?mcaa4lWDO4^N_P)aOg=4n$KkcR6r}Q_9I~6Z#i*FRN5MWtJ=50nvb>`8T zub{?bk{CorP4W4`wicLUTyAPRi?Aax6nE(OA~xSCsF~x@wflE@bBmK0z=O}}qf&A} zx#xFd)7z(x0Z=Oii;8scM59bBV-z#~gA&^|1`^?!0`L!tQ1$*Hny5FU zrKw?ASU~qEGzarP)h|wZ;y)da`cKExNHFa4{O0YkEM+GUbI?+;bvn|M;9BU~F_=BW za>U&o(gVZ?IfuJJ(xfqY%f~&gzBnZl{o2ECs+2MKdDZAT=Df_Nbcg^{m_qLC9$iJz z$(ONBFe_F~I8!U>?dQIsx- zvY(2Nl@6MLU;6&9+|>`ediw`hWO#_+^prf}6SS>=vM_JM2E5e=ZWY@&@*%14DIF)I z203t3GlCZvWbH3FAEnSvn*!&ne|)JthnMZ>o($s8d}}suULgYpi=((Nws$icGP#Ig zQiQskH;EX)6GuP??0#(VPKb&wE`+!&--r-{f7=|9v+-Nc&FEJwFE$Tf8&nXhjFD^9 zPX@J>#v+kkm%S5`U-;cViDp`gu!{^BBa1{w`&fo^k_dc+FSij~=kKltgOUO0CNU7E ziJ*Kmi&wj}Co@Y8>tg*IUp3NGl@SqpZEWA#*fyo%tQN7E?MWI@K&vHJbJ9W+uLl6( z(TV>7oD>Do1ZqQ;NM5t~1gzX-#Nw#CrR8^MMJA((A)^R7BP{$uh{FHOzyw8(hv&!B z^Z!Vg`-G6Hes;i)g8VzHk!ECJKi2>RK9zOd;67;@63TI+nib-IMU}YZf{-H2N|Xf= z@ZKla)4!}D0q4fT1I)G#)PKXNQa3j4Z8};_xUPRCTaIb>x@XN{dXs%AjH}SZu{{F*MY^2qU`+A|EZb$jX#O5l5~f|)9z7+c0045)H(M3f{jBZHngdIB z82j~w(9}r)V7ttp(LE1yLNIqta{4Xf)*iD$cfAj0^5pSzHSjq_;CDk^N%i+bz+Vv5 z{r~bV{z@9+e^dB?d-=Vi|DDEtWNtL4cd2sGP`mA%npG159I5 AU;qFB literal 0 HcmV?d00001 diff --git a/open-grants/ipfs-rust/media/fig2-ipfs-rust-implementation-schedule.png b/open-grants/ipfs-rust/media/fig2-ipfs-rust-implementation-schedule.png new file mode 100644 index 0000000000000000000000000000000000000000..08056cee989f8d947f99a2543c2a7078f62e02d6 GIT binary patch literal 96926 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 _iCk8AG<>_T7+yw{Tjf~oH0yzr*7c_^jJ7Q~ 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 a^?^}_9VQ^M{4@30lPJll%hpJnhWsDT2FeHk literal 0 HcmV?d00001 diff --git a/open-grants/ipfs-rust/media/phase-1-1-gantt.png b/open-grants/ipfs-rust/media/phase-1-1-gantt.png new file mode 100644 index 0000000000000000000000000000000000000000..116bf8a865d27ddb3c4216e058cc0f074094395d GIT binary patch literal 146346 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 DpA)h3 literal 0 HcmV?d00001 From 3ab16aa3a4a16f762fd38a0d748d3543f6fa820a Mon Sep 17 00:00:00 2001 From: Mark Robert Henderson Date: Tue, 28 Jan 2020 10:06:51 -0500 Subject: [PATCH 002/113] Rename ipfs-rust.md to README.md --- open-grants/ipfs-rust/{ipfs-rust.md => README.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename open-grants/ipfs-rust/{ipfs-rust.md => README.md} (100%) diff --git a/open-grants/ipfs-rust/ipfs-rust.md b/open-grants/ipfs-rust/README.md similarity index 100% rename from open-grants/ipfs-rust/ipfs-rust.md rename to open-grants/ipfs-rust/README.md From 9a254b3e5a04239226927a5a068d89292e8021f5 Mon Sep 17 00:00:00 2001 From: Joonas Koivunen Date: Tue, 28 Jan 2020 17:23:41 +0200 Subject: [PATCH 003/113] ipfs-rust: fix deprecated "file ls" not "files ls" --- open-grants/ipfs-rust/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/open-grants/ipfs-rust/README.md b/open-grants/ipfs-rust/README.md index 60e5d431..91841a24 100644 --- a/open-grants/ipfs-rust/README.md +++ b/open-grants/ipfs-rust/README.md @@ -220,8 +220,8 @@ The following commands are experimental: * `ipfs filestore { dups, ls, verify }` * `ipfs urlstore { add }` -The following commands are deprecated -* `ipfs files ls` +The following commands are or will be deprecated: +* `ipfs file { ls }` * `ipfs object { data, diff, ... }` Additionally: From e6d6a594017256d658f2603cede1664069395eec Mon Sep 17 00:00:00 2001 From: Mark Robert Henderson Date: Tue, 28 Jan 2020 10:33:15 -0500 Subject: [PATCH 004/113] Update README.md --- open-grants/ipfs-rust/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/open-grants/ipfs-rust/README.md b/open-grants/ipfs-rust/README.md index 91841a24..dfaa5411 100644 --- a/open-grants/ipfs-rust/README.md +++ b/open-grants/ipfs-rust/README.md @@ -3,9 +3,9 @@ Rust, the programming language, has enjoyed a recent spike in popularity. This is due both to its inclusive community, and also being a safe systems language with performance comparable to -C and C++. It would seem that an IPFS implementation written in Rust would make sense. +C and C++. An IPFS implementation written in Rust only makes sense. -The IPFS community seems to agree, and since then has created an astonishing amount of output. +The IPFS community agrees, and since then has created an astonishing amount of output. David Craven’s “rust-ipfs”, the work of the multiformats team, and of course Parity’s rust-libp2p. Our aim is to build upon this work, forking only when necessary, and carry the torch across the finish line. If funded, the IPFS implementation detailed in this proposal would be a properly stewarded Rust From b119821ef78b1a181038de1cac51e229125c4ba7 Mon Sep 17 00:00:00 2001 From: Mark Robert Henderson Date: Tue, 28 Jan 2020 10:34:16 -0500 Subject: [PATCH 005/113] Update README.md --- open-grants/ipfs-rust/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/open-grants/ipfs-rust/README.md b/open-grants/ipfs-rust/README.md index dfaa5411..7bcd4e2d 100644 --- a/open-grants/ipfs-rust/README.md +++ b/open-grants/ipfs-rust/README.md @@ -10,7 +10,7 @@ David Craven’s “rust-ipfs”, the work of the multiformats team, and of cour If funded, the IPFS implementation detailed in this proposal would be a properly stewarded Rust codebase that could stand alongside its Go and JS siblings, and be used successfully in a -variety of contexts: either as a “crate,” or via its familiar HTTP API. +variety of contexts: either as a “crate,” a command line interface, or via its familiar HTTP API. At the very least, we hope that our effort in scoping and planning is useful to any others who might want to continue - and hopefully complete - this work. From f3b2bf9f81821c8dadb6905ddad2508d46b5260d Mon Sep 17 00:00:00 2001 From: Mark Robert Henderson Date: Tue, 28 Jan 2020 10:37:37 -0500 Subject: [PATCH 006/113] Update README.md --- open-grants/ipfs-rust/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/open-grants/ipfs-rust/README.md b/open-grants/ipfs-rust/README.md index 7bcd4e2d..e699657a 100644 --- a/open-grants/ipfs-rust/README.md +++ b/open-grants/ipfs-rust/README.md @@ -106,7 +106,7 @@ to best of their ability and within any financial constraints that exist. Much like we will build upon community efforts, we will also enable and encourage others to build upon our work. This will be a twofold effort that includes both permissive -licencing and community outreach: onboarding as many new contributors as possible, +licensing and community outreach: onboarding as many new contributors as possible, mapping the work out into issues of different levels of difficulty, and providing mentorship. ### Figure 1. Risk Assessment From 555d151064659acae64374610c8b26ded22f2e86 Mon Sep 17 00:00:00 2001 From: Joonas Koivunen Date: Tue, 28 Jan 2020 17:36:41 +0200 Subject: [PATCH 007/113] ipfs-rust: remove the per feature crates.io update clause from DoD --- open-grants/ipfs-rust/README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/open-grants/ipfs-rust/README.md b/open-grants/ipfs-rust/README.md index e699657a..2230e8a2 100644 --- a/open-grants/ipfs-rust/README.md +++ b/open-grants/ipfs-rust/README.md @@ -194,7 +194,6 @@ Our definition of done aims to be as robust as our KPI is simple. Each command w 3. Rustdoc tests are passing on all code-level comments 4. Differences between Rust’s implementation and Go or JS are explained 6. There are passing conformance tests, approved by Protocol Labs -7. There is an updated version of the library published to https://crates.io ### Out of Scope From ad4336148d5cb4a9bc0d0eab18bb6b5fee837c40 Mon Sep 17 00:00:00 2001 From: Mark Henderson Date: Thu, 30 Jan 2020 11:02:44 -0500 Subject: [PATCH 008/113] Feedback from comments --- open-grants/ipfs-rust/README.md | 23 ++++++++++++------ .../ipfs-rust/media/phase-1-2-gantt.png | Bin 104768 -> 122485 bytes 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/open-grants/ipfs-rust/README.md b/open-grants/ipfs-rust/README.md index 2230e8a2..483cf628 100644 --- a/open-grants/ipfs-rust/README.md +++ b/open-grants/ipfs-rust/README.md @@ -32,7 +32,7 @@ MIT/Apache-2.0 license, allowing licensees to choose either at their option._ * [Implementation Details](#implementation-details) * [IPLD](#ipld) * [libp2p](#libp2p) - * [Metric: Number of CLI Commands Implemented](#metric-number-of-cli-commands-implemented) + * [Metric: Number of HTTP Endpoints Implemented](#metric-number-of-http-endpoints-implemented) * [Definition of Done](#definition-of-done) * [Out of Scope](#out-of-scope) * [Phase 1.1 IPLD Foundations](#phase-11-ipld-foundations) @@ -169,16 +169,20 @@ Many functions that IPFS rely on are wrappers around libp2p functions. These are * `ipfs swarm *` * `ipfs pubsub *` -### Metric: Number of CLI Commands Implemented +### Metric: Number of HTTP Endpoints Implemented -There are roughly 153 CLI commands and subcommands that a typical IPFS implementation exposes. +There are roughly 153 HTTP API endpoints that a typical IPFS implementation exposes. While there are a number of other metrics we could choose to suitably track progress, “How -many commands have been implemented in Rust so far?” is an easy question to ask. +many endpoints have been implemented in Rust so far?” is an easy question to ask. This proposal covers about 80 commands, with a number being deemed out of scope. See Figure 4 at the end of the document for a breakdown of which commands fall under which project phase, and Out of Scope Commands for a list out of scope commands. +**Note:** Throughout the proposal, we will refer to commands using either the URL path or the +CLI represntation of the command, and they should be thought of as interchangable. For example +`/api/v0/add` will be referred to as `ipfs add` or simply `add`. + ### Definition of Done Our definition of done aims to be as robust as our KPI is simple. Each command will be considered done when the following requirements are met: @@ -186,7 +190,7 @@ Our definition of done aims to be as robust as our KPI is simple. Each command w 1. There is a working Rust implementation of the command’s functionality 1. Code is “linted” i.e. code formatting via rustfmt and language idioms via clippy 2. There is an HTTP binding for said command exposed via the IPFS daemon -3. There is a CLI command that utilizes either the Rust APIs or the HTTP APIs +3. (Optional) There is a CLI command that utilizes either the Rust APIs or the HTTP APIs 4. There are functional and/or unit tests written, and they are passing 5. There is suitable documentation. In our case, this means: 1. Each command has a usage example and API specification @@ -201,7 +205,6 @@ The commands listed below are deemed out of scope for this proposal, and will no included as part of the Rust IPFS implementation work done within. The following commands are simply not required by our use case: -* `ipfs bitswap { ledger, reprovide, stat, wantlist }` * `ipfs cid` * `ipfs diag cmds` * `ipfs files *` @@ -281,6 +284,10 @@ support via Rust crate functions, the HTTP API, as well as CLI commands. #### Deliverables 1. Definition of Done for: + * `ipfs bitswap ledger` + * `ipfs bitswap reprovide` + * `ipfs bitswap stat` + * `ipfs bitswap wantlist` * `ipfs pubsub ls` * `ipfs pubsub peers` * `ipfs pubsub pub` @@ -294,7 +301,7 @@ support via Rust crate functions, the HTTP API, as well as CLI commands. #### Development Schedule -Development will take place over an estimated 5 weeks of development. The following chart +Development will take place over an estimated 6 weeks of development. The following chart assumes a week 13 start date (Feb 25). ##### Figure 2. Phase 1.2 Gantt Chart @@ -305,7 +312,7 @@ assumes a week 13 start date (Feb 25). | | Number of Hours | Hourly Rate | Total (Euros) | Total (USD) | | --- | ---- | ---- | ---- | --- | -| Software Development and Project Management | 424 hours | 120€ | 50,880€ | $56,066.20 | +| Software Development and Project Management | 488 hours | 120€ | 58,560€ | $64,432.40 | ### Phase 2 and Onward diff --git a/open-grants/ipfs-rust/media/phase-1-2-gantt.png b/open-grants/ipfs-rust/media/phase-1-2-gantt.png index a2fe3064167a52b8eb11bf01e3e3473f16f9ff7a..38bfac6dc46bf91f9dd3f1a1007c096fac6fe09e 100644 GIT binary patch literal 122485 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%0D?o~6sX8HtR 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

@3I~!c_tUlykkHAKulk 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 DpA)h3 From 02e176db0a4f5f94e39750ece3768238d1c529a8 Mon Sep 17 00:00:00 2001 From: Mark Henderson Date: Thu, 30 Jan 2020 17:40:44 -0500 Subject: [PATCH 009/113] Added resource-constained note to Phase 2 --- open-grants/ipfs-rust/README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/open-grants/ipfs-rust/README.md b/open-grants/ipfs-rust/README.md index 483cf628..b893067a 100644 --- a/open-grants/ipfs-rust/README.md +++ b/open-grants/ipfs-rust/README.md @@ -344,6 +344,7 @@ an IPFS node to do so. * `ipfs stats bw` * `ipfs version deps` 2. Flagship Rust IPFS Public Gateway Production Deployment +3. Performance and resource utilization tuning for resource-constrained devices like the Pi Zero 3. Final Project Report ### Figure 4: Implementation Schedule From 885194df38510def163d5a64d8353067c2e4317d Mon Sep 17 00:00:00 2001 From: Joonas Koivunen Date: Mon, 3 Feb 2020 17:52:37 +0200 Subject: [PATCH 010/113] add the survey as was commented Comment: https://github.com/ipfs/devgrants/pull/13#discussion_r373643238 --- open-grants/ipfs-rust/README.md | 49 +++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) diff --git a/open-grants/ipfs-rust/README.md b/open-grants/ipfs-rust/README.md index b893067a..2f19380b 100644 --- a/open-grants/ipfs-rust/README.md +++ b/open-grants/ipfs-rust/README.md @@ -98,6 +98,55 @@ and here is what we found to be some of the top projects on this list. * https://github.com/vmx/rust-ipld/ * Protocol Labs internal work on rust-ipld. +#### rust-libp2p + +* secio: fast moving, even this week `ed25519` compatbile PeerId inlining was merged +* protocol selection with yamux or mplex multiplexing +* dht: cannot comment at this time on completeness or interoperability +* floodsub should now be compatible, gossipub was merged in the last weeks +* ongoing work on QUIC support, probably out of scope for now but something to keep an eye on +* swarm management, id, ping and support for building bitswap, as demonstrated by @dvc94ch's work on [rust-ipfs](https://github.com/ipfs-rust/rust-ipfs/) +* [implementation differences in aes-ctr](https://github.com/libp2p/rust-libp2p/issues/1242) ([PR pending](https://github.com/RustCrypto/stream-ciphers/pull/75)) + +Action item: learn more about status of DHT implementation in rust-libp2p. + +#### IPFS DAG / IPLD + +* [rust-ipfs] includes Merkledag (dag-pb) and dag-cbor over an unifying abstraction on top of [rust-protobuf] and [custom version of `cbor`](https://github.com/dvc94ch/rust-cbor) crate +* [rust-ipld] includes dag-cbor on top of custom encoder and decoder, even multiblock types in a separate project [rust-ipld-collections] +* protobuf encoding and decoding are mature and there exists at least three solutions for the project needs with different trade-offs ([rust-protobuf], [quick-protobuf], [prost!]) +* [cbor encoding and decoding for serde](https://github.com/pyfisch/cbor) has existed for a while, but the main crate only [recently added support for tagged values](https://github.com/pyfisch/cbor/pull/172), something which has been missing a while at least from the larger `serde` community, which the is the core crate for dealing with json alike formats + * supporting tags has been discussed for a while but problematic as they appear in formats which are essentially a superset of JSON, like CBOR + * there is ongoing work at [vmx/rust-ipld] on top of recently enabled [serde_cbor](https://github.com/pyfisch/cbor) tag support +* JSON format support can be considered mature with [serde_json] + * supporting IPLD dag-json documents will need work + +What is definitely missing is support for IPLD selectors on one account of their [spec](https://github.com/ipld/specs/blob/master/selectors/selectors.md) is still in draft status. The functionality required by `ipfs dag get` has been at least partially implemented already in [rust-ipfs]. The existing attempts are expected to evolve and will be considered to be used and extended, which ever looks most promising at the start of the project. Our understanding is that @vmx intends to implement the more advanced features of IPLD in the near future. + +[rust-ipfs]: https://github.com/ipfs-rust/rust-ipfs/ +[rust-protobuf]: https://github.com/stepancheg/rust-protobuf +[rust-ipld]: https://github.com/ipfs-rust/rust-ipld +[rust-ipld-collections]: https://github.com/ipfs-rust/rust-ipld-collections/ +[quick-protobuf]: https://github.com/tafia/quick-protobuf +[prost!]: https://github.com/danburkert/prost +[vmx/rust-ipld]: https://github.com/vmx/rust-ipld +[serde_json]: https://github.com/serde-rs/json + +#### IPFS Blockstore + +* Multiple existing key-value store solutions randing from wrappers of databases written in different languages to fully rust solutions +* Initial filesystem and rocksdb based stores in [rust-ipfs] by @dvc94ch + +[rust-ipfs]: https://github.com/ipfs-rust/rust-ipfs/ + +#### Bitswap + +* The only found implementation is in rust-ipfs by, again, @dvc94ch, which has been tested to exchange block with go-ipfs 0.4.22 and an older rust-libp2p + +#### HTTP + +The "async story" of Rust enabling for example high performance web services is still evolving at great speed but there exists some longer running projects enabling the building of HTTP API as is required to enable testing such as [warp](https://github.com/seanmonstar/warp). + ### Maintenance and Upgrade Plan We want to make a codebase that will last into the future. Equilibrium Labs and MRH.io, From 2f14ad0989cacdd47a10960dbd97c3623c9b4b5d Mon Sep 17 00:00:00 2001 From: Joonas Koivunen Date: Mon, 3 Feb 2020 17:54:38 +0200 Subject: [PATCH 011/113] survey: remove projects mentioned twice --- open-grants/ipfs-rust/README.md | 8 -------- 1 file changed, 8 deletions(-) diff --git a/open-grants/ipfs-rust/README.md b/open-grants/ipfs-rust/README.md index 2f19380b..6d22c393 100644 --- a/open-grants/ipfs-rust/README.md +++ b/open-grants/ipfs-rust/README.md @@ -85,18 +85,10 @@ The IPFS and Rust communities together have done an astounding job putting toget these projects. We diligently went through and performed initial outreach to the authors, and here is what we found to be some of the top projects on this list. -* https://github.com/ipfs-rust/rust-ipfs - * This is likely the furthest along in terms of a Rust IPFS implementation. It contains implementations of the block, dag, ipns and a few other APIs. However, there are no CLI or HTTP bindings as of this writing -* https://github.com/libp2p/rust-libp2p - * Parity’s implementation of libp2p in Rust, which includes their own in-tree versions of rust-multihash and rust-multiaddr. The next two items on the list would capture the requirements not covered, i.e. cid and multicodec * https://github.com/multiformats/rust-cid * https://github.com/mudlee/rust-multicodec -* https://github.com/ipfs-rust/rust-ipld - * Most advanced IPLD library with support for protobuf, cbor, and json * https://docs.rs/ipfs-api/0.6.0-rc/ipfs_api/ * HTTP Bindings for Rust to call the standard IPFS HTTP API -* https://github.com/vmx/rust-ipld/ - * Protocol Labs internal work on rust-ipld. #### rust-libp2p From 1d80ffd2c9f82009a80dad6ae20ae7e8e1e1c2d1 Mon Sep 17 00:00:00 2001 From: Joonas Koivunen Date: Mon, 3 Feb 2020 18:08:24 +0200 Subject: [PATCH 012/113] survey: remove the list, add back rust-ipfs-api --- open-grants/ipfs-rust/README.md | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/open-grants/ipfs-rust/README.md b/open-grants/ipfs-rust/README.md index 6d22c393..a217dd38 100644 --- a/open-grants/ipfs-rust/README.md +++ b/open-grants/ipfs-rust/README.md @@ -85,11 +85,6 @@ The IPFS and Rust communities together have done an astounding job putting toget these projects. We diligently went through and performed initial outreach to the authors, and here is what we found to be some of the top projects on this list. -* https://github.com/multiformats/rust-cid -* https://github.com/mudlee/rust-multicodec -* https://docs.rs/ipfs-api/0.6.0-rc/ipfs_api/ - * HTTP Bindings for Rust to call the standard IPFS HTTP API - #### rust-libp2p * secio: fast moving, even this week `ed25519` compatbile PeerId inlining was merged @@ -139,6 +134,8 @@ What is definitely missing is support for IPLD selectors on one account of their The "async story" of Rust enabling for example high performance web services is still evolving at great speed but there exists some longer running projects enabling the building of HTTP API as is required to enable testing such as [warp](https://github.com/seanmonstar/warp). +[ferriseng/rust-ipfs-api](https://docs.rs/ipfs-api/0.6.0-rc/ipfs_api/) provides HTTP API bindings in Rust. + ### Maintenance and Upgrade Plan We want to make a codebase that will last into the future. Equilibrium Labs and MRH.io, From a9ce7c5e4003705ed1c15e3ef93395fc28024636 Mon Sep 17 00:00:00 2001 From: Joonas Koivunen Date: Mon, 3 Feb 2020 18:11:12 +0200 Subject: [PATCH 013/113] survey: split overly long lines --- open-grants/ipfs-rust/README.md | 54 +++++++++++++++++++++++++-------- 1 file changed, 41 insertions(+), 13 deletions(-) diff --git a/open-grants/ipfs-rust/README.md b/open-grants/ipfs-rust/README.md index a217dd38..783afd36 100644 --- a/open-grants/ipfs-rust/README.md +++ b/open-grants/ipfs-rust/README.md @@ -92,23 +92,45 @@ and here is what we found to be some of the top projects on this list. * dht: cannot comment at this time on completeness or interoperability * floodsub should now be compatible, gossipub was merged in the last weeks * ongoing work on QUIC support, probably out of scope for now but something to keep an eye on -* swarm management, id, ping and support for building bitswap, as demonstrated by @dvc94ch's work on [rust-ipfs](https://github.com/ipfs-rust/rust-ipfs/) -* [implementation differences in aes-ctr](https://github.com/libp2p/rust-libp2p/issues/1242) ([PR pending](https://github.com/RustCrypto/stream-ciphers/pull/75)) +* swarm management, id, ping and support for building bitswap, as demonstrated + by @dvc94ch's work on [rust-ipfs](https://github.com/ipfs-rust/rust-ipfs/) +* [implementation differences in aes-ctr] ([pending PR]) Action item: learn more about status of DHT implementation in rust-libp2p. +[implementation differences in aes-ctr]: https://github.com/libp2p/rust-libp2p/issues/1242 +[pending PR]: https://github.com/RustCrypto/stream-ciphers/pull/75 + #### IPFS DAG / IPLD -* [rust-ipfs] includes Merkledag (dag-pb) and dag-cbor over an unifying abstraction on top of [rust-protobuf] and [custom version of `cbor`](https://github.com/dvc94ch/rust-cbor) crate -* [rust-ipld] includes dag-cbor on top of custom encoder and decoder, even multiblock types in a separate project [rust-ipld-collections] -* protobuf encoding and decoding are mature and there exists at least three solutions for the project needs with different trade-offs ([rust-protobuf], [quick-protobuf], [prost!]) -* [cbor encoding and decoding for serde](https://github.com/pyfisch/cbor) has existed for a while, but the main crate only [recently added support for tagged values](https://github.com/pyfisch/cbor/pull/172), something which has been missing a while at least from the larger `serde` community, which the is the core crate for dealing with json alike formats - * supporting tags has been discussed for a while but problematic as they appear in formats which are essentially a superset of JSON, like CBOR - * there is ongoing work at [vmx/rust-ipld] on top of recently enabled [serde_cbor](https://github.com/pyfisch/cbor) tag support +* [rust-ipfs] includes Merkledag (dag-pb) and dag-cbor over an unifying + abstraction on top of [rust-protobuf] and [custom version of + `cbor`](https://github.com/dvc94ch/rust-cbor) crate +* [rust-ipld] includes dag-cbor on top of custom encoder and decoder, even + multiblock types in a separate project [rust-ipld-collections] +* protobuf encoding and decoding are mature and there exists at least three + solutions for the project needs with different trade-offs ([rust-protobuf], + [quick-protobuf], [prost!]) +* [cbor encoding and decoding for serde](https://github.com/pyfisch/cbor) has + existed for a while, but the main crate only [recently added support for + tagged values](https://github.com/pyfisch/cbor/pull/172), something which has + been missing a while at least from the larger `serde` community, which the is + the core crate for dealing with json alike formats + * supporting tags has been discussed for a while but problematic as they + appear in formats which are essentially a superset of JSON, like CBOR + * there is ongoing work at [vmx/rust-ipld] on top of recently enabled + [serde_cbor](https://github.com/pyfisch/cbor) tag support * JSON format support can be considered mature with [serde_json] * supporting IPLD dag-json documents will need work -What is definitely missing is support for IPLD selectors on one account of their [spec](https://github.com/ipld/specs/blob/master/selectors/selectors.md) is still in draft status. The functionality required by `ipfs dag get` has been at least partially implemented already in [rust-ipfs]. The existing attempts are expected to evolve and will be considered to be used and extended, which ever looks most promising at the start of the project. Our understanding is that @vmx intends to implement the more advanced features of IPLD in the near future. +What is definitely missing is support for IPLD selectors on one account of +their [spec](https://github.com/ipld/specs/blob/master/selectors/selectors.md) +is still in draft status. The functionality required by `ipfs dag get` has been +at least partially implemented already in [rust-ipfs]. The existing attempts +are expected to evolve and will be considered to be used and extended, which +ever looks most promising at the start of the project. Our understanding is +that @vmx intends to implement the more advanced features of IPLD in the near +future. [rust-ipfs]: https://github.com/ipfs-rust/rust-ipfs/ [rust-protobuf]: https://github.com/stepancheg/rust-protobuf @@ -121,20 +143,26 @@ What is definitely missing is support for IPLD selectors on one account of their #### IPFS Blockstore -* Multiple existing key-value store solutions randing from wrappers of databases written in different languages to fully rust solutions +* Multiple existing key-value store solutions randing from wrappers of + databases written in different languages to fully rust solutions * Initial filesystem and rocksdb based stores in [rust-ipfs] by @dvc94ch [rust-ipfs]: https://github.com/ipfs-rust/rust-ipfs/ #### Bitswap -* The only found implementation is in rust-ipfs by, again, @dvc94ch, which has been tested to exchange block with go-ipfs 0.4.22 and an older rust-libp2p +* The only found implementation is in rust-ipfs by, again, @dvc94ch, which has + been tested to exchange block with go-ipfs 0.4.22 and an older rust-libp2p #### HTTP -The "async story" of Rust enabling for example high performance web services is still evolving at great speed but there exists some longer running projects enabling the building of HTTP API as is required to enable testing such as [warp](https://github.com/seanmonstar/warp). +The "async story" of Rust enabling for example high performance web services is +still evolving at great speed but there exists some longer running projects +enabling the building of HTTP API as is required to enable testing such as +[warp](https://github.com/seanmonstar/warp). -[ferriseng/rust-ipfs-api](https://docs.rs/ipfs-api/0.6.0-rc/ipfs_api/) provides HTTP API bindings in Rust. +[ferriseng/rust-ipfs-api](https://docs.rs/ipfs-api/0.6.0-rc/ipfs_api/) provides +HTTP API bindings in Rust. ### Maintenance and Upgrade Plan From 8f9baced859b2cb7b1909b7c4380f8ab3bd2b484 Mon Sep 17 00:00:00 2001 From: Joonas Koivunen Date: Mon, 3 Feb 2020 18:13:34 +0200 Subject: [PATCH 014/113] survey: add missing rust-ipfs link --- open-grants/ipfs-rust/README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/open-grants/ipfs-rust/README.md b/open-grants/ipfs-rust/README.md index 783afd36..3ed729ae 100644 --- a/open-grants/ipfs-rust/README.md +++ b/open-grants/ipfs-rust/README.md @@ -151,9 +151,11 @@ future. #### Bitswap -* The only found implementation is in rust-ipfs by, again, @dvc94ch, which has +* The only found implementation is in [rust-ipfs] by, again, @dvc94ch, which has been tested to exchange block with go-ipfs 0.4.22 and an older rust-libp2p +[rust-ipfs]: https://github.com/ipfs-rust/rust-ipfs/ + #### HTTP The "async story" of Rust enabling for example high performance web services is From 38b22c9104378defea69534ff7f483b73d38f988 Mon Sep 17 00:00:00 2001 From: Joonas Koivunen Date: Mon, 3 Feb 2020 18:17:38 +0200 Subject: [PATCH 015/113] survey: even more links, more obscure relative dates --- open-grants/ipfs-rust/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/open-grants/ipfs-rust/README.md b/open-grants/ipfs-rust/README.md index 3ed729ae..26be0735 100644 --- a/open-grants/ipfs-rust/README.md +++ b/open-grants/ipfs-rust/README.md @@ -87,10 +87,10 @@ and here is what we found to be some of the top projects on this list. #### rust-libp2p -* secio: fast moving, even this week `ed25519` compatbile PeerId inlining was merged +* secio: fast moving, recently `ed25519` compatible [PeerId inlining was merged](https://github.com/libp2p/rust-libp2p/pull/1413) * protocol selection with yamux or mplex multiplexing * dht: cannot comment at this time on completeness or interoperability -* floodsub should now be compatible, gossipub was merged in the last weeks +* floodsub [should now be compatible](https://github.com/libp2p/rust-libp2p/pull/1395), [gossipub was merged in recently](https://github.com/libp2p/rust-libp2p/pull/898) * ongoing work on QUIC support, probably out of scope for now but something to keep an eye on * swarm management, id, ping and support for building bitswap, as demonstrated by @dvc94ch's work on [rust-ipfs](https://github.com/ipfs-rust/rust-ipfs/) From bdc31f596a6d178bf01784d4a019095562d539e0 Mon Sep 17 00:00:00 2001 From: Mark Henderson Date: Mon, 3 Feb 2020 14:39:04 -0500 Subject: [PATCH 016/113] Table formatting of survey --- open-grants/ipfs-rust/README.md | 117 ++++++++++++++------------------ 1 file changed, 52 insertions(+), 65 deletions(-) diff --git a/open-grants/ipfs-rust/README.md b/open-grants/ipfs-rust/README.md index 26be0735..45a903b1 100644 --- a/open-grants/ipfs-rust/README.md +++ b/open-grants/ipfs-rust/README.md @@ -82,55 +82,67 @@ A viable Rust implementation of IPFS would: ### Survey of Community Efforts The IPFS and Rust communities together have done an astounding job putting together -these projects. We diligently went through and performed initial outreach to the authors, -and here is what we found to be some of the top projects on this list. +these projects. By thoroughly leveraging these community efforts we can save some +of time and money while fostering community morale and inclusion. -#### rust-libp2p +#### LibP2P + Pubsub -* secio: fast moving, recently `ed25519` compatible [PeerId inlining was merged](https://github.com/libp2p/rust-libp2p/pull/1413) -* protocol selection with yamux or mplex multiplexing -* dht: cannot comment at this time on completeness or interoperability -* floodsub [should now be compatible](https://github.com/libp2p/rust-libp2p/pull/1395), [gossipub was merged in recently](https://github.com/libp2p/rust-libp2p/pull/898) -* ongoing work on QUIC support, probably out of scope for now but something to keep an eye on -* swarm management, id, ping and support for building bitswap, as demonstrated - by @dvc94ch's work on [rust-ipfs](https://github.com/ipfs-rust/rust-ipfs/) -* [implementation differences in aes-ctr] ([pending PR]) +| Feature | Implemented? If so, where? | Notes | +| ---- | --------- | ------- | +| secio | [rust-libp2p #1413](https://github.com/libp2p/rust-libp2p/pull/1413) | Fast moving, recently ed25519 compatible | +| protocol selection: yamux or mplex multiplexing | [rust-libp2p](https://github.com/libp2p/rust-libp2p/tree/master/muxers) | | +| DHT | [rust-libp2p](https://github.com/libp2p/rust-libp2p/tree/master/protocols/kad) | cannot comment at this time on completeness or interoperability | +| floodsub | [rust-libp2p #1395](https://github.com/libp2p/rust-libp2p/pull/1395) | | +| gossipsub | [rust-libp2p #898](https://github.com/libp2p/rust-libp2p/pull/898) | | +| QUIC Support | Ongoing |[rust-libp2p #1334](https://github.com/libp2p/rust-libp2p/pull/1334) | +| swarm management (id, ping) | [rust-ipfs](https://github.com/ipfs-rust/rust-ipfs/) | | +| differences in aes-ctr | [rust-libp2p #1242](https://github.com/libp2p/rust-libp2p/pull/1242) | [Pending PR](https://github.com/RustCrypto/stream-ciphers/pull/75) | -Action item: learn more about status of DHT implementation in rust-libp2p. - -[implementation differences in aes-ctr]: https://github.com/libp2p/rust-libp2p/issues/1242 -[pending PR]: https://github.com/RustCrypto/stream-ciphers/pull/75 #### IPFS DAG / IPLD -* [rust-ipfs] includes Merkledag (dag-pb) and dag-cbor over an unifying - abstraction on top of [rust-protobuf] and [custom version of - `cbor`](https://github.com/dvc94ch/rust-cbor) crate -* [rust-ipld] includes dag-cbor on top of custom encoder and decoder, even - multiblock types in a separate project [rust-ipld-collections] -* protobuf encoding and decoding are mature and there exists at least three - solutions for the project needs with different trade-offs ([rust-protobuf], - [quick-protobuf], [prost!]) -* [cbor encoding and decoding for serde](https://github.com/pyfisch/cbor) has - existed for a while, but the main crate only [recently added support for - tagged values](https://github.com/pyfisch/cbor/pull/172), something which has - been missing a while at least from the larger `serde` community, which the is - the core crate for dealing with json alike formats - * supporting tags has been discussed for a while but problematic as they - appear in formats which are essentially a superset of JSON, like CBOR - * there is ongoing work at [vmx/rust-ipld] on top of recently enabled - [serde_cbor](https://github.com/pyfisch/cbor) tag support -* JSON format support can be considered mature with [serde_json] - * supporting IPLD dag-json documents will need work - -What is definitely missing is support for IPLD selectors on one account of +| Feature | Implemented? If so, where? | Notes | +| ---- | --------- | ------- | +| dag-pb + dag-cbor | Custom version of [`rust-cbor`](https://github.com/dvc94ch/rust-cbor) crate | Implements a unifying abstraction on top of [rust-protobuf] and [rust-ipld]. | +| protobuf encoding and decoding | [rust-protobuf], [quick-protobuf], [prost!] | very mature | +| JSON serialization / deserialization | [pyfisch/cbor](https://github.com/pyfisch/cbor), with issues. (See next item) | Can be considered mature with [serde_json], yet supporting dag-json will still need work | +| CBOR tag Support | Ongoing | Problematic as tags appear in formats which are essentially a supersets of JSON, like CBOR. However, [pyfisch/cbori #172](https://github.com/pyfisch/cbor/pull/172) was recently merged, which @vmx is building off of | +| IPLD Selectors | Missing | Our understanding is that @vmx intends to implement the more advanced features of IPLD in the near future. | + +#### IPFS Blockstore + +| Feature | Implemented? If so, where? | Notes | +| ---- | --------- | ------- | +| Rocksdb + filesystem based store | [rust-ipfs](https://github.com/ipfs-rust/rust-ipfs/) | Working | +| Other / Pluggable store | n/a | Multiple existing key-value store solutions randing from wrappers of databases written in different languages to fully rust solutions | + +#### Bitswap + +| Feature | Implemented? If so, where? | Notes | +| ---- | --------- | ------- | +| Bitswap | [rust-ipfs](https://github.com/ipfs-rust/rust-ipfs/) | This been tested to exchange block with go-ipfs 0.4.22 and an older rust-libp2p but may need updates to comply with spec | + + +#### HTTP + +| Feature | Implemented? If so, where? | Notes | +| ---- | --------- | ------- | +| HTTP Bindings | Not implemented. | The "async story" of Rust enabling for example high performance web services is still evolving at great speed but there exists some longer running projects enabling the building of HTTP API as is required to enable testing such as [warp](https://github.com/seanmonstar/warp). | + + + +### What is missing? + +- What is definitely missing is support for IPLD selectors on one account of their [spec](https://github.com/ipld/specs/blob/master/selectors/selectors.md) is still in draft status. The functionality required by `ipfs dag get` has been at least partially implemented already in [rust-ipfs]. The existing attempts are expected to evolve and will be considered to be used and extended, which -ever looks most promising at the start of the project. Our understanding is -that @vmx intends to implement the more advanced features of IPLD in the near -future. +ever looks most promising at the start of the project. +- HTTP Bindings + - [ferriseng/rust-ipfs-api](https://docs.rs/ipfs-api/0.6.0-rc/ipfs_api/) provides an HTTP API _client_ in Rust, but no server yet exists. +- Pluggable blockstore (sled, lmdb, etc) +- Bitswap up to spec [rust-ipfs]: https://github.com/ipfs-rust/rust-ipfs/ [rust-protobuf]: https://github.com/stepancheg/rust-protobuf @@ -141,31 +153,6 @@ future. [vmx/rust-ipld]: https://github.com/vmx/rust-ipld [serde_json]: https://github.com/serde-rs/json -#### IPFS Blockstore - -* Multiple existing key-value store solutions randing from wrappers of - databases written in different languages to fully rust solutions -* Initial filesystem and rocksdb based stores in [rust-ipfs] by @dvc94ch - -[rust-ipfs]: https://github.com/ipfs-rust/rust-ipfs/ - -#### Bitswap - -* The only found implementation is in [rust-ipfs] by, again, @dvc94ch, which has - been tested to exchange block with go-ipfs 0.4.22 and an older rust-libp2p - -[rust-ipfs]: https://github.com/ipfs-rust/rust-ipfs/ - -#### HTTP - -The "async story" of Rust enabling for example high performance web services is -still evolving at great speed but there exists some longer running projects -enabling the building of HTTP API as is required to enable testing such as -[warp](https://github.com/seanmonstar/warp). - -[ferriseng/rust-ipfs-api](https://docs.rs/ipfs-api/0.6.0-rc/ipfs_api/) provides -HTTP API bindings in Rust. - ### Maintenance and Upgrade Plan We want to make a codebase that will last into the future. Equilibrium Labs and MRH.io, @@ -173,7 +160,7 @@ along with the support of the community, pledge to continue to maintain the Rust to best of their ability and within any financial constraints that exist. Much like we will build upon community efforts, we will also enable and encourage others -to build upon our work. This will be a twofold effort that includes both permissive +to build upon our work. This will be a two-fold effort that includes both permissive licensing and community outreach: onboarding as many new contributors as possible, mapping the work out into issues of different levels of difficulty, and providing mentorship. From 586a816ab4ac558c77f42ab3c2e26f61bdacf7e6 Mon Sep 17 00:00:00 2001 From: Mark Henderson Date: Mon, 3 Feb 2020 14:43:31 -0500 Subject: [PATCH 017/113] Updating table of contents --- open-grants/ipfs-rust/README.md | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/open-grants/ipfs-rust/README.md b/open-grants/ipfs-rust/README.md index 45a903b1..0bab5cdf 100644 --- a/open-grants/ipfs-rust/README.md +++ b/open-grants/ipfs-rust/README.md @@ -24,6 +24,11 @@ MIT/Apache-2.0 license, allowing licensees to choose either at their option._ * [Summary](#summary) * [Value](#value) * [Survey of Community Efforts](#survey-of-community-efforts) + * [libp2p + pubsub](#libp2p--pubsub) + * [IPFS DAG / IPLD](#ipfs-dag--ipld) + * [IPFS Blockstore](#ipfs-blockstore) + * [HTTP](#http) + * [What is missing?](#what-is-missing) * [Maintenance and Upgrade Plan](#maintenance-and-upgrade-plan) * [Figure 1. Risk Assessment](#figure-1-risk-assessment) * [Project Team](#project-team) @@ -131,7 +136,7 @@ of time and money while fostering community morale and inclusion. -### What is missing? +#### What is missing? - What is definitely missing is support for IPLD selectors on one account of their [spec](https://github.com/ipld/specs/blob/master/selectors/selectors.md) From 30288ffb2034f9713bacfbe11e70322d01bf8081 Mon Sep 17 00:00:00 2001 From: Mark Robert Henderson Date: Mon, 3 Feb 2020 15:34:17 -0500 Subject: [PATCH 018/113] Update README.md --- open-grants/ipfs-rust/README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/open-grants/ipfs-rust/README.md b/open-grants/ipfs-rust/README.md index 0bab5cdf..a307b0fa 100644 --- a/open-grants/ipfs-rust/README.md +++ b/open-grants/ipfs-rust/README.md @@ -24,7 +24,7 @@ MIT/Apache-2.0 license, allowing licensees to choose either at their option._ * [Summary](#summary) * [Value](#value) * [Survey of Community Efforts](#survey-of-community-efforts) - * [libp2p + pubsub](#libp2p--pubsub) + * [libp2p + pubsub](#libp2p-1) * [IPFS DAG / IPLD](#ipfs-dag--ipld) * [IPFS Blockstore](#ipfs-blockstore) * [HTTP](#http) @@ -36,7 +36,7 @@ MIT/Apache-2.0 license, allowing licensees to choose either at their option._ * [Summary](#summary) * [Implementation Details](#implementation-details) * [IPLD](#ipld) - * [libp2p](#libp2p) + * [libp2p](#libp2p-2) * [Metric: Number of HTTP Endpoints Implemented](#metric-number-of-http-endpoints-implemented) * [Definition of Done](#definition-of-done) * [Out of Scope](#out-of-scope) @@ -90,7 +90,7 @@ The IPFS and Rust communities together have done an astounding job putting toget these projects. By thoroughly leveraging these community efforts we can save some of time and money while fostering community morale and inclusion. -#### LibP2P + Pubsub +#### libP2P | Feature | Implemented? If so, where? | Notes | | ---- | --------- | ------- | From de067be4b9b3ed197de8005c96b3e6be79a147a3 Mon Sep 17 00:00:00 2001 From: Mark Henderson Date: Tue, 4 Feb 2020 00:18:03 -0500 Subject: [PATCH 019/113] Updating phases and estimates --- open-grants/ipfs-rust/README.md | 198 +++++++++--------- .../ipfs-rust/media/phase-1-0-gantt.png | Bin 0 -> 95057 bytes .../ipfs-rust/media/phase-1-1-gantt.png | Bin 146346 -> 97909 bytes .../ipfs-rust/media/phase-1-2-gantt.png | Bin 122485 -> 0 bytes 4 files changed, 101 insertions(+), 97 deletions(-) create mode 100644 open-grants/ipfs-rust/media/phase-1-0-gantt.png delete mode 100644 open-grants/ipfs-rust/media/phase-1-2-gantt.png diff --git a/open-grants/ipfs-rust/README.md b/open-grants/ipfs-rust/README.md index 0bab5cdf..ae098a05 100644 --- a/open-grants/ipfs-rust/README.md +++ b/open-grants/ipfs-rust/README.md @@ -34,24 +34,25 @@ MIT/Apache-2.0 license, allowing licensees to choose either at their option._ * [Project Team](#project-team) * [Project Plan](#project-plan) * [Summary](#summary) + * [Q1 2020](#q1-2020) + * [Q2 2020](#q2-2020) * [Implementation Details](#implementation-details) * [IPLD](#ipld) * [libp2p](#libp2p) * [Metric: Number of HTTP Endpoints Implemented](#metric-number-of-http-endpoints-implemented) * [Definition of Done](#definition-of-done) * [Out of Scope](#out-of-scope) - * [Phase 1.1 IPLD Foundations](#phase-11-ipld-foundations) + * [Phase 1.0 Interoperability Baseline](#phase-10-interoperability-baseline) * [Deliverables](#deliverables) * [Development Schedule](#development-schedule) - * [Figure 2: Phase 1.1 Gantt Chart](#figure-2-phase-11-gantt-chart) - * [Estimated Budget (Phase 1.1)](#estimated-budget-phase-11) - * [Phase 1.2: IPLD Application Support](#phase-12-ipld-application-support) + * [Figure 2: Phase 1.0 Gantt Chart](#figure-2-phase-10-gantt-chart) + * [Estimated Budget (Phase 1.0)](#estimated-budget-phase-10) + * [Phase 1.1: Blockstore](#phase-12-blockstore) * [Deliverables](#deliverables-1) * [Development Schedule](#development-schedule-1) - * [Figure 3: Phase 1.2 Gantt Chart](#figure-3-phase-12-gantt-chart) - * [Estimated Budget (Phase 1.2)](#estimated-budget-phase-12) + * [Figure 3: Phase 1.1 Gantt Chart](#figure-3-phase-11-gantt-chart) + * [Estimated Budget (Phase 1.1)](#estimated-budget-phase-11) * [Phase 2 and Onward](#phase-2-and-onward) - * [Figure 4: Implementation Schedule](#figure-4-implementation-schedule) ## Project Description @@ -65,22 +66,23 @@ which pieces of IPFS functionality to tackle first, we focused on a pair of end In preparation for this, the team researched the existing community contributions and, by way of a diligent gap analysis, have charted out the path to delivery. During execution, -the team will use a very simple metric to report progress: the number of API commands implemented. +the team will use a very simple metric to report progress: the number of HTTP endpoints +implemented. After development is complete, Equilibrium Labs has offered to steward the project, which -will provide stability to the project, and survive the previous work of others. This should +will provide necessary stability, and survive the previous work of others. This should significantly boost community morale. ### Value -The Rust programming language has a dual value in both its feature set, and community. +The Rust programming language has a dual value in both its feature set and its community. A viable Rust implementation of IPFS would: * Bring greater exposure to IPFS within the Rust community * Publicity opportunities at Rust-themed events such as conferences and meetups * Exposure to C and other APIs via Foreign Function Interfaces (FFIs) -* Enable additional opportunities in both the embedded firmware space which opens the door to things like IoT, automotive, industrial, and wearable devices +* Enable additional opportunities in the embedded firmware and resource constrained spaces, which opens the door to things like IoT, automotive, industrial, and wearable devices * See the [Awesome Embedded Rust](https://github.com/rust-embedded/awesome-embedded-rust) list for some examples * Enable additional opportunities in the WebAssembly space @@ -189,14 +191,42 @@ mapping the work out into issues of different levels of difficulty, and providin ### Summary We propose a phased approach, with each deliverable building on the last while still -itself being comprehensive, usable software that the community can build upon and -continue to build. +itself being comprehensive, usable software that the community can build upon and +continue to build. The phases are designed to fit cleanly within quarters of the year, +starting partway through Q1 2020. + +#### Q1 2020 + +Phase 1.0: + +- Initial Interoperability Report +- HTTP endpoint scaffolding (with 501 not implemented default) + +This quick phase sets the baseline for interoperability testing. At this point we expect +that most, if not all, tests will fail with a `501 NOT IMPLEMENTED` error. This will become +the key metric of progress on the project. + +Phase 1.1: + +- Blockstore implementation +- HTTP endpoints for at least blockstore and pubsub + +From there, we will begin the shortest path to enabling IPLD applications to be written in Rust. +Choosing and building (or building upon) a blockstore implementation, followed by enabling several +HTTP endpoints. + +Existing community work will be extremely beneficial to this stage, as many HTTP endpoints +can likely be enabled by writing simple wrapper code around existing crates. + +#### Q2 2020 -1. Phase 1 is the shortest path to enabling IPLD applications to be written in Rust - 1. Phase 1.1 sets up the project and lays the groundwork (Blockstore, IPLD, Swarm) - 2. Phase 1.2 implements Bitswap, Pubsub to complete support for IPLD applications -2. Phase 2 enables IPFS Gateway functionality, allowing for swarming and content sharing. This -phase's planning and estimation is largely left TBD due to a rapidly changing ecosystem +Phase 2.0: + +- TBD + +The goal of Phase 2, at the time of this writing, is IPFS Gateway functionality, allowing for +swarming and content sharing. We've marked this phase highly TBD due to a rapidly changing +ecosystem. ### Implementation Details @@ -290,51 +320,40 @@ Additionally: * ipfs update will likely be handled by cargo install * Private network support via a swarm key is out of scope. -### Phase 1.1 IPLD Foundations - -Phase as a whole would enable the minimum functionality for higher-level abstractions and -tools to be built upon rust-ipfs, or to be accessed via an HTTP API that rust-ipfs exposes. +### Phase 1.0 Interoperability Baseline -Phase 1.1 covers project setup, implementations of groundwork ipfs commands (which includes -conformance testing), and the resultant grant report to be submitted to Protocol Labs. +Phase 1.0 covers project setup, and a baseline conformance test / interoperability report. #### Deliverables -1. Project Setup: Git, CI/CD, Protocol Labs conformance testing, etc. -2. Definition of Done for: - * `ipfs block` - * `ipfs block get` - * `ipfs block put` - * `ipfs block rm` - * `ipfs block stat` - * `ipfs daemon` - * `ipfs dag` - * `ipfs dag get` - * `ipfs dag put` - * `ipfs swarm connect` - * `ipfs swarm disconnect` - * `ipfs swarm peers` - * `ipfs version` - * `ipfs id` -3. Block storage implementation -4. Conformance testing via js-ipfsd-ctl, interface-js-ipfs-core -5. Project Milestone Report +1. Project Setup + 1. Git Repository Setup + 2. Crate + Subcrate Structures + 3. CI/CD +2. Conformance testing via js-ipfsd-ctl, interface-js-ipfs-core + 1. Conformance Report +3. Interoperability testing via ipfs/interop + 1. Interop Report +4. Project Milestone Report #### Development Schedule -Development will take place over an estimated 8 weeks of development. The following chart -assumes a week 7 start date (Feb 10). We can be flexible in terms of start dates, however +Development will take place over an estimated 3-4 weeks of development. The following chart +assumes a week 8 start date (Feb 17). We can be flexible in terms of start dates, however starting as soon as possible is preferable due to the above risk assessment. -##### Figure 2. Phase 1.1 Gantt Chart -![Phase 1.1 Gantt Chart](./media/phase-1-1-gantt.png) +##### Figure 2. Phase 1.0 Gantt Chart + +![Phase 1.0 Gantt Chart](./media/phase-1-0-gantt.png) -#### Estimated Budget (Phase 1.1) +_All figures are estimates._ + +#### Estimated Budget (Phase 1.0) | | Number of Hours | Hourly Rate | Total (Euros) | Total (USD) | | --- | ---- | ---- | ---- | --- | -| Software Development and Project Management | 480 hours | 120€ | 57,600€ | $63,449.28 | +| Software Development and Project Management | 164 hours | 120€ | 19,680€ | $21,832.01 | ### Phase 1.2: IPLD Application Support @@ -343,70 +362,55 @@ support via Rust crate functions, the HTTP API, as well as CLI commands. #### Deliverables -1. Definition of Done for: - * `ipfs bitswap ledger` - * `ipfs bitswap reprovide` - * `ipfs bitswap stat` - * `ipfs bitswap wantlist` - * `ipfs pubsub ls` - * `ipfs pubsub peers` - * `ipfs pubsub pub` - * `ipfs pubsub sub` - * `ipfs refs` - * `ipfs refs local` - * `ipfs init` -2. CLI commands from 1.1 that were only implemented in HTTP API -3. Benchmarking report comparing OrbitDB performance on go-ipfs, rust-ipfs, and js-ipfs -4. Bitswap testing and bug fixes +1. Blockstore Implementation +2. Bitswap testing and bug fixes +3. [Definition of Done](#definition-of-done) for: + 1. `/pubsub/*` + 2. `/swarm/*` + 3. `/version` + 4. `/id` + 5. `/block/*` + 6. `/dag/*` + 7. `/refs/*` + 8. `/bitswap/*` +4. Project Milestone Report + 1. Updated Conformance Tests + 2. Updated Interop Tests + +Here, the community work will have its chance to shine - `libp2p` and `rust-ipld` in particular. #### Development Schedule -Development will take place over an estimated 6 weeks of development. The following chart -assumes a week 13 start date (Feb 25). +Development will take place over an estimated 4 weeks of development. The following chart +assumes a week 9 start date (Feb 24). -##### Figure 2. Phase 1.2 Gantt Chart +##### Figure 2. Phase 1.1 Gantt Chart -![Phase 1.2 Gantt Chart](./media/phase-1-2-gantt.png) +![Phase 1.1 Gantt Chart](./media/phase-1-1-gantt.png) + +_All figures are estimates._ #### Estimated Budget (Phase 1.2) | | Number of Hours | Hourly Rate | Total (Euros) | Total (USD) | | --- | ---- | ---- | ---- | --- | -| Software Development and Project Management | 488 hours | 120€ | 58,560€ | $64,432.40 | +| Software Development and Project Management | 224 hours | 120€ | 26,880€ | $29,819.33 | ### Phase 2 and Onward -_**Note:** At this point, it's likely that the landscape will have changed such that we can't sufficiently +At this point, it's likely that the landscape will have changed such that we can't sufficiently scope or estimate work meaningfully. We'd like to treat Phase 2 and onward as TBD, with the intent of scoping and estimating the following work over time, as we move through Phase 1 -and Phase 2._ +and Phase 2. That being said: This phase would contain the minimum viable feature set within rust-ipfs to -allow it to peer with, and get data from, an existing go-ipfs or js-ipfs node. In order for -an IPFS node to do so. +allow it to peer and share data with an existing go-ipfs or js-ipfs node, or perhaps even a +public gateway. -#### Deliverables +#### Potential Deliverable Ideas -1. Definition of Done for: - * `ipfs add` - * `ipfs cat` - * `ipfs commands` - * `ipfs config { edit, show }` - * `ipfs dht { findpeer, findprovs, get, provide, put, query }` - * `ipfs diag sys` - * `ipfs dns` - * `ipfs ls` - * `ipfs name { publish, pubsub, resolve, data }` - * `ipfs pin { add, ls, rm, update, verify }` - * `ipfs ping` - * `ipfs repo { gc, stat, verify, version }` - * `ipfs resolve` - * `ipfs stats bw` - * `ipfs version deps` -2. Flagship Rust IPFS Public Gateway Production Deployment -3. Performance and resource utilization tuning for resource-constrained devices like the Pi Zero -3. Final Project Report - -### Figure 4: Implementation Schedule - -![Rust IPFS Implementation Schedule](./media/fig2-ipfs-rust-implementation-schedule.png) +1. Definition of Done for remaining endpoints +2. CLI bindings +3. Flagship Rust IPFS Public Gateway Production Deployment +4. Performance and resource utilization tuning for resource-constrained devices like the Pi Zero +5. Benchmarking using existing IPLD projects such as OrbitDB diff --git a/open-grants/ipfs-rust/media/phase-1-0-gantt.png b/open-grants/ipfs-rust/media/phase-1-0-gantt.png new file mode 100644 index 0000000000000000000000000000000000000000..8516f233a31646c4dacdb1a50052d277d16680f1 GIT binary patch literal 95057 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 a5BUH4FDSA)*#y3Tuv2fhZq8PxQ~wL+^)++= literal 0 HcmV?d00001 diff --git a/open-grants/ipfs-rust/media/phase-1-1-gantt.png b/open-grants/ipfs-rust/media/phase-1-1-gantt.png index 116bf8a865d27ddb3c4216e058cc0f074094395d..5d7d66c62f1aa1fcbc3b5e36a15425e12fe27a46 100644 GIT binary patch literal 97909 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%0Aqi<3aoZzAe( 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 z zR+oXIPDu(ur{N@(0a|-7k|q)PmvSmXXX0O!=Iw`(0ZPY#FMzeR_mOEsFrx-oONtKF z=4qZCt<5ttn-x+m2J!=VZjapo6%geH^8?8C>ag4^hOzW4`;W;1QNK$`4+RGL+g{Gr z&xO^~0xy6!`Fj8!G zdFjfra%d+;;;EbkRE3eF*r=#n>SJl%W#r|&ECcU_ROljB6-0tAVi^)-O8{Acq&~*b z$fKOi<75%(Oi?wI%h_BiP&b&E2i9RA{0aDIgTqOK0sSETl(}&cZ*x zsaV~J5De}k1cP}W^bGoOE1?`8Uw)zocgB_Rm+-k)mg(N+@eM~>MJtqS+dy!n@b8m{ zco-uowWZGL<$fDmG34B`t7B z9bi_DocGZXvtlV*h^CIsYFUXGAZZ-r?skE7aSW6X$L1QutXKfAO02o?+EcX7en+G+ zqv|HatYpQjmFq!?PrIMKJ-wy;muavV2Sy=g zMgBV@Fi{9T7~ngNyWqveHb!85x6&9_nZF7?MivV@H zT72rdlkGX0VdVI`dS8ir5UaXek$z)QLB;a~?WJA@;E`qqm_N`{Sk5P5p;dPgOLJyd1lj4#p`3Sm4 zeT~0`c3<;T9-*<}yrB`SRvb~7IrT1#A37jsW&Wt&lz_We!bd$7{O(Tugq@-9wL=69 zT&BM7)aRezD)@7-Z~g=SeAI^h-_o(rOa2o~?f>88)CE9%Ha;FZ)D+p%GorwY{sm}Q zy{%Ix(q$sdnz)FD8GLfGnUG+acz)>+WYfPU)Ht%@C7cec8(55{`w2pnWs#_7mzmVY}HQNU~}w$ E0Gp4=Bme*a literal 146346 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%0D?o~6sX8HtR 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

@3I~!c_tUlykkHAKulk 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 Q7CnJlZ0E?ywdF Date: Tue, 4 Feb 2020 15:44:21 +0200 Subject: [PATCH 020/113] Revert "Table formatting of survey" This reverts commit bdc31f596a6d178bf01784d4a019095562d539e0. --- open-grants/ipfs-rust/README.md | 119 ++++++++++++++++++-------------- 1 file changed, 66 insertions(+), 53 deletions(-) diff --git a/open-grants/ipfs-rust/README.md b/open-grants/ipfs-rust/README.md index 2abf9fe6..58c7aeb7 100644 --- a/open-grants/ipfs-rust/README.md +++ b/open-grants/ipfs-rust/README.md @@ -89,67 +89,55 @@ A viable Rust implementation of IPFS would: ### Survey of Community Efforts The IPFS and Rust communities together have done an astounding job putting together -these projects. By thoroughly leveraging these community efforts we can save some -of time and money while fostering community morale and inclusion. +these projects. We diligently went through and performed initial outreach to the authors, +and here is what we found to be some of the top projects on this list. -#### libP2P +#### rust-libp2p -| Feature | Implemented? If so, where? | Notes | -| ---- | --------- | ------- | -| secio | [rust-libp2p #1413](https://github.com/libp2p/rust-libp2p/pull/1413) | Fast moving, recently ed25519 compatible | -| protocol selection: yamux or mplex multiplexing | [rust-libp2p](https://github.com/libp2p/rust-libp2p/tree/master/muxers) | | -| DHT | [rust-libp2p](https://github.com/libp2p/rust-libp2p/tree/master/protocols/kad) | cannot comment at this time on completeness or interoperability | -| floodsub | [rust-libp2p #1395](https://github.com/libp2p/rust-libp2p/pull/1395) | | -| gossipsub | [rust-libp2p #898](https://github.com/libp2p/rust-libp2p/pull/898) | | -| QUIC Support | Ongoing |[rust-libp2p #1334](https://github.com/libp2p/rust-libp2p/pull/1334) | -| swarm management (id, ping) | [rust-ipfs](https://github.com/ipfs-rust/rust-ipfs/) | | -| differences in aes-ctr | [rust-libp2p #1242](https://github.com/libp2p/rust-libp2p/pull/1242) | [Pending PR](https://github.com/RustCrypto/stream-ciphers/pull/75) | +* secio: fast moving, recently `ed25519` compatible [PeerId inlining was merged](https://github.com/libp2p/rust-libp2p/pull/1413) +* protocol selection with yamux or mplex multiplexing +* dht: cannot comment at this time on completeness or interoperability +* floodsub [should now be compatible](https://github.com/libp2p/rust-libp2p/pull/1395), [gossipub was merged in recently](https://github.com/libp2p/rust-libp2p/pull/898) +* ongoing work on QUIC support, probably out of scope for now but something to keep an eye on +* swarm management, id, ping and support for building bitswap, as demonstrated + by @dvc94ch's work on [rust-ipfs](https://github.com/ipfs-rust/rust-ipfs/) +* [implementation differences in aes-ctr] ([pending PR]) +Action item: learn more about status of DHT implementation in rust-libp2p. -#### IPFS DAG / IPLD - -| Feature | Implemented? If so, where? | Notes | -| ---- | --------- | ------- | -| dag-pb + dag-cbor | Custom version of [`rust-cbor`](https://github.com/dvc94ch/rust-cbor) crate | Implements a unifying abstraction on top of [rust-protobuf] and [rust-ipld]. | -| protobuf encoding and decoding | [rust-protobuf], [quick-protobuf], [prost!] | very mature | -| JSON serialization / deserialization | [pyfisch/cbor](https://github.com/pyfisch/cbor), with issues. (See next item) | Can be considered mature with [serde_json], yet supporting dag-json will still need work | -| CBOR tag Support | Ongoing | Problematic as tags appear in formats which are essentially a supersets of JSON, like CBOR. However, [pyfisch/cbori #172](https://github.com/pyfisch/cbor/pull/172) was recently merged, which @vmx is building off of | -| IPLD Selectors | Missing | Our understanding is that @vmx intends to implement the more advanced features of IPLD in the near future. | - -#### IPFS Blockstore - -| Feature | Implemented? If so, where? | Notes | -| ---- | --------- | ------- | -| Rocksdb + filesystem based store | [rust-ipfs](https://github.com/ipfs-rust/rust-ipfs/) | Working | -| Other / Pluggable store | n/a | Multiple existing key-value store solutions randing from wrappers of databases written in different languages to fully rust solutions | - -#### Bitswap - -| Feature | Implemented? If so, where? | Notes | -| ---- | --------- | ------- | -| Bitswap | [rust-ipfs](https://github.com/ipfs-rust/rust-ipfs/) | This been tested to exchange block with go-ipfs 0.4.22 and an older rust-libp2p but may need updates to comply with spec | +[implementation differences in aes-ctr]: https://github.com/libp2p/rust-libp2p/issues/1242 +[pending PR]: https://github.com/RustCrypto/stream-ciphers/pull/75 +#### IPFS DAG / IPLD -#### HTTP - -| Feature | Implemented? If so, where? | Notes | -| ---- | --------- | ------- | -| HTTP Bindings | Not implemented. | The "async story" of Rust enabling for example high performance web services is still evolving at great speed but there exists some longer running projects enabling the building of HTTP API as is required to enable testing such as [warp](https://github.com/seanmonstar/warp). | - - - -#### What is missing? - -- What is definitely missing is support for IPLD selectors on one account of +* [rust-ipfs] includes Merkledag (dag-pb) and dag-cbor over an unifying + abstraction on top of [rust-protobuf] and [custom version of + `cbor`](https://github.com/dvc94ch/rust-cbor) crate +* [rust-ipld] includes dag-cbor on top of custom encoder and decoder, even + multiblock types in a separate project [rust-ipld-collections] +* protobuf encoding and decoding are mature and there exists at least three + solutions for the project needs with different trade-offs ([rust-protobuf], + [quick-protobuf], [prost!]) +* [cbor encoding and decoding for serde](https://github.com/pyfisch/cbor) has + existed for a while, but the main crate only [recently added support for + tagged values](https://github.com/pyfisch/cbor/pull/172), something which has + been missing a while at least from the larger `serde` community, which the is + the core crate for dealing with json alike formats + * supporting tags has been discussed for a while but problematic as they + appear in formats which are essentially a superset of JSON, like CBOR + * there is ongoing work at [vmx/rust-ipld] on top of recently enabled + [serde_cbor](https://github.com/pyfisch/cbor) tag support +* JSON format support can be considered mature with [serde_json] + * supporting IPLD dag-json documents will need work + +What is definitely missing is support for IPLD selectors on one account of their [spec](https://github.com/ipld/specs/blob/master/selectors/selectors.md) is still in draft status. The functionality required by `ipfs dag get` has been at least partially implemented already in [rust-ipfs]. The existing attempts are expected to evolve and will be considered to be used and extended, which -ever looks most promising at the start of the project. -- HTTP Bindings - - [ferriseng/rust-ipfs-api](https://docs.rs/ipfs-api/0.6.0-rc/ipfs_api/) provides an HTTP API _client_ in Rust, but no server yet exists. -- Pluggable blockstore (sled, lmdb, etc) -- Bitswap up to spec +ever looks most promising at the start of the project. Our understanding is +that @vmx intends to implement the more advanced features of IPLD in the near +future. [rust-ipfs]: https://github.com/ipfs-rust/rust-ipfs/ [rust-protobuf]: https://github.com/stepancheg/rust-protobuf @@ -160,6 +148,31 @@ ever looks most promising at the start of the project. [vmx/rust-ipld]: https://github.com/vmx/rust-ipld [serde_json]: https://github.com/serde-rs/json +#### IPFS Blockstore + +* Multiple existing key-value store solutions randing from wrappers of + databases written in different languages to fully rust solutions +* Initial filesystem and rocksdb based stores in [rust-ipfs] by @dvc94ch + +[rust-ipfs]: https://github.com/ipfs-rust/rust-ipfs/ + +#### Bitswap + +* The only found implementation is in [rust-ipfs] by, again, @dvc94ch, which has + been tested to exchange block with go-ipfs 0.4.22 and an older rust-libp2p + +[rust-ipfs]: https://github.com/ipfs-rust/rust-ipfs/ + +#### HTTP + +The "async story" of Rust enabling for example high performance web services is +still evolving at great speed but there exists some longer running projects +enabling the building of HTTP API as is required to enable testing such as +[warp](https://github.com/seanmonstar/warp). + +[ferriseng/rust-ipfs-api](https://docs.rs/ipfs-api/0.6.0-rc/ipfs_api/) provides +HTTP API bindings in Rust. + ### Maintenance and Upgrade Plan We want to make a codebase that will last into the future. Equilibrium Labs and MRH.io, @@ -167,7 +180,7 @@ along with the support of the community, pledge to continue to maintain the Rust to best of their ability and within any financial constraints that exist. Much like we will build upon community efforts, we will also enable and encourage others -to build upon our work. This will be a two-fold effort that includes both permissive +to build upon our work. This will be a twofold effort that includes both permissive licensing and community outreach: onboarding as many new contributors as possible, mapping the work out into issues of different levels of difficulty, and providing mentorship. @@ -362,7 +375,7 @@ support via Rust crate functions, the HTTP API, as well as CLI commands. #### Deliverables -1. Blockstore Implementation +1. Blockstore Implementation 2. Bitswap testing and bug fixes 3. [Definition of Done](#definition-of-done) for: 1. `/pubsub/*` From 30a715a3d9c59ff36c447a014a912c5a64168720 Mon Sep 17 00:00:00 2001 From: Joonas Koivunen Date: Tue, 4 Feb 2020 15:47:44 +0200 Subject: [PATCH 021/113] survey: fix toc again --- open-grants/ipfs-rust/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/open-grants/ipfs-rust/README.md b/open-grants/ipfs-rust/README.md index 58c7aeb7..9e4f8a70 100644 --- a/open-grants/ipfs-rust/README.md +++ b/open-grants/ipfs-rust/README.md @@ -24,11 +24,11 @@ MIT/Apache-2.0 license, allowing licensees to choose either at their option._ * [Summary](#summary) * [Value](#value) * [Survey of Community Efforts](#survey-of-community-efforts) - * [libp2p + pubsub](#libp2p-1) + * [rust-libp2p](#rust-libp2p) * [IPFS DAG / IPLD](#ipfs-dag--ipld) * [IPFS Blockstore](#ipfs-blockstore) + * [Bitswap](#bitswap) * [HTTP](#http) - * [What is missing?](#what-is-missing) * [Maintenance and Upgrade Plan](#maintenance-and-upgrade-plan) * [Figure 1. Risk Assessment](#figure-1-risk-assessment) * [Project Team](#project-team) From 9f18ec8e7e742c860c327b055d689c83baa13f2a Mon Sep 17 00:00:00 2001 From: Joonas Koivunen Date: Tue, 4 Feb 2020 15:49:30 +0200 Subject: [PATCH 022/113] survey: unrevert the first para --- open-grants/ipfs-rust/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/open-grants/ipfs-rust/README.md b/open-grants/ipfs-rust/README.md index 9e4f8a70..f91829c5 100644 --- a/open-grants/ipfs-rust/README.md +++ b/open-grants/ipfs-rust/README.md @@ -89,8 +89,8 @@ A viable Rust implementation of IPFS would: ### Survey of Community Efforts The IPFS and Rust communities together have done an astounding job putting together -these projects. We diligently went through and performed initial outreach to the authors, -and here is what we found to be some of the top projects on this list. +these projects. By thoroughly leveraging these community efforts we can save some +of time and money while fostering community morale and inclusion. #### rust-libp2p From f404569be88219953b1c7fcd30cf5497dcf04ca2 Mon Sep 17 00:00:00 2001 From: Jonathan Schwartz Date: Wed, 5 Feb 2020 09:21:26 -0500 Subject: [PATCH 023/113] Add Open Grant Proposal --- open-grants/rn-remote-ipfs/README.md | 59 ++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 open-grants/rn-remote-ipfs/README.md diff --git a/open-grants/rn-remote-ipfs/README.md b/open-grants/rn-remote-ipfs/README.md new file mode 100644 index 00000000..8bfd5418 --- /dev/null +++ b/open-grants/rn-remote-ipfs/README.md @@ -0,0 +1,59 @@ +# React Native support for the js-ipfs-http-client + +**Proposer**: [schwartz10](https://github.com/schwartz10), [pcowgill](https://github.com/pcowgill/) + +**Do you agree to open source all work you do on behalf of this RFP and dual-license under MIT and APACHE2 licenses?:** yes + +# Project Description + +The js-ipfs-http-client does not work out of the box in React Native. This is a problem because it’s difficult to create a native mobile application that interacts with a remote IPFS node. Running a remote node (instead of one in the phone) can be preferable if it consumes less data, battery, and memory, or is faster and more flexible to set up out-of-the-box. + +Phase 0 of this proposal is for up to 1.5 weeks of research to get more visibility around the technical challenges, blockers, and potential solutions for making the js-ipfs-http-client compatible with React Native. Then we’ll submit a spec that outlines our intended solution as a follow-on deliverable. + +# Value + +We gauged community interest in this initiative by filing a [Gitcoin Grant](https://gitcoin.co/grants/364/react-native-support-for-ipfs) and conducting developer interviews. In two weeks, our Gitcoin Grant received \$410 from 14 different contributors. We spoke to 5 teams developing mobile wallets in the Ethereum ecosystem - each would benefit from the js-ipfs-http-client working in React Native. In the 3Box ecosystem alone, 5 active projects requested this functionality in the past few weeks. + +Alternative starting points exist for running an IPFS node inside the phone. Textile worked on [grpc-ipfs-lite](https://github.com/textileio/grpc-ipfs-lite), which could be extended for use in React Native. There’s also [gomobile-ipfs](https://github.com/ipfs-shipyard/gomobile-ipfs), but it’s still experimental, and it’s unclear what its development and stability will be in the future. Involving other languages like Go, Swift, Kotlin, etc. adds complexity for a developer when initially configuring the project and when debugging, so it’s best to avoid unless absolutely necessary. + +Both these alternatives are still difficult to get working in React Native and would require the developer to [eject](https://docs.expo.io/versions/latest/expokit/eject/) from React Native Expo. This could make developing with IPFS less accessible to junior engineers interested in experimenting with IPFS in native mobile apps. These alternative approaches might also not be compatible with packages like 3Box or OrbitDB. + +## Deliverables + +A spec that outlines the optimal solution(s) to the problem. We plan to use this spec to create follow-on deliverables for this Open Grant Proposal. + +## Development Roadmap + +Investigation of multipart/form-data issues that the js-ipfs-http-client lib throws errors when first configured in a React Native env. We need to figure out if this problem can/should be handled natively or in JavaScript. +Documenting proper babel config for async iterator support +Documenting work-arounds for fetch to support streams in React Native (Open PR against js-ipfs-http-client and `@stardazed/streams-polyfill`) +Investigation of viability of `rn-fetch-blob` as an alternative fetch implementation +Investigation of any other newer browser APIs used in js-ipfs-http-client that are not supported in React Native. +Documenting which of the outstanding issues can be mitigated when the IPFS core team moves away from their use of ky and ky-universal as their fetch abstraction +Investigation of any networking or libp2p issues, including pub-sub. + +## Total Budget Requested + +Up to \$8,775 for 2 weeks of work, starting Monday February 3rd to Friday February 14th, 2020. If the investigation is finished early, a prorated amount will be paid. + +## Maintenance and Upgrade Plans + +Our plan is to PR the documentation/investigation outputs to an issue in ipfs/notes or ipfs/js-ipfs-http-client for others to learn from. + +## Team Members + +Open Work Labs (Jonathan Schwartz)
+[Website](https://www.openworklabs.com/)
+[GitHub](https://github.com/openworklabs/) + +Paul Cowgill
+[Website](https://cowgill.io/)
+[GitHub](https://github.com/pcowgill/) + +## Relevant experience + +We’ve been working on this exact problem with Hugo Dias from IPFS core for about 3 weeks already now. We have a very in-depth understanding of the challenges ahead. + +## Team code repositories + +https://github.com/openworklabs/react-native-ipfs-http-client/ From 4f5eb7d3422d7cd586c3da61d7a11909c27df1d3 Mon Sep 17 00:00:00 2001 From: Jonathan Schwartz Date: Wed, 5 Feb 2020 10:56:12 -0500 Subject: [PATCH 024/113] Fix dates --- open-grants/rn-remote-ipfs/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/open-grants/rn-remote-ipfs/README.md b/open-grants/rn-remote-ipfs/README.md index 8bfd5418..e3ba60d1 100644 --- a/open-grants/rn-remote-ipfs/README.md +++ b/open-grants/rn-remote-ipfs/README.md @@ -34,7 +34,7 @@ Investigation of any networking or libp2p issues, including pub-sub. ## Total Budget Requested -Up to \$8,775 for 2 weeks of work, starting Monday February 3rd to Friday February 14th, 2020. If the investigation is finished early, a prorated amount will be paid. +Up to \$8,775 for 1.5 weeks of work, starting Wednesday February 5th to Friday February 14th, 2020. If the investigation is finished early, a prorated amount will be paid. ## Maintenance and Upgrade Plans From 689d0fb9e104359eb235e0be661ec5860f57b8e0 Mon Sep 17 00:00:00 2001 From: Arkadiy Kukarkin Date: Wed, 5 Feb 2020 12:49:32 -0800 Subject: [PATCH 025/113] Update issue templates --- .github/ISSUE_TEMPLATE/tracking-issue.md | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 .github/ISSUE_TEMPLATE/tracking-issue.md diff --git a/.github/ISSUE_TEMPLATE/tracking-issue.md b/.github/ISSUE_TEMPLATE/tracking-issue.md new file mode 100644 index 00000000..5dfab1e6 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/tracking-issue.md @@ -0,0 +1,10 @@ +--- +name: Tracking Issue +about: Tracking issue for a grant proposal in review (maintainers only, please) +title: '' +labels: tracking issue +assignees: parkan + +--- + + From ef78d871c3ffecb257106087c64d5f4ccf4a96da Mon Sep 17 00:00:00 2001 From: Arkadiy Kukarkin Date: Wed, 5 Feb 2020 12:51:53 -0800 Subject: [PATCH 026/113] Update issue templates --- .github/ISSUE_TEMPLATE/tracking-issue.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/ISSUE_TEMPLATE/tracking-issue.md b/.github/ISSUE_TEMPLATE/tracking-issue.md index 5dfab1e6..c8f0d6db 100644 --- a/.github/ISSUE_TEMPLATE/tracking-issue.md +++ b/.github/ISSUE_TEMPLATE/tracking-issue.md @@ -1,10 +1,12 @@ --- name: Tracking Issue about: Tracking issue for a grant proposal in review (maintainers only, please) -title: '' +title: "[TRACKING] " labels: tracking issue assignees: parkan --- + +Tracking for From d8396737eeb5ce68e4a5a3163ee3feccb1b206f8 Mon Sep 17 00:00:00 2001 From: Arkadiy Kukarkin Date: Wed, 5 Feb 2020 12:59:39 -0800 Subject: [PATCH 027/113] Update issue templates --- .github/ISSUE_TEMPLATE/tracking-issue.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/ISSUE_TEMPLATE/tracking-issue.md b/.github/ISSUE_TEMPLATE/tracking-issue.md index c8f0d6db..2f3f4822 100644 --- a/.github/ISSUE_TEMPLATE/tracking-issue.md +++ b/.github/ISSUE_TEMPLATE/tracking-issue.md @@ -7,6 +7,6 @@ assignees: parkan --- - + Tracking for From 196d778e3b5e8cad94e11ed2721b27be9f833d3e Mon Sep 17 00:00:00 2001 From: MollyM Date: Mon, 10 Feb 2020 23:17:08 -0800 Subject: [PATCH 028/113] Update IPFS-mobile-design-research.md --- targeted-grants/IPFS-mobile-design-research.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/targeted-grants/IPFS-mobile-design-research.md b/targeted-grants/IPFS-mobile-design-research.md index 9db16a7f..1d16d3f6 100644 --- a/targeted-grants/IPFS-mobile-design-research.md +++ b/targeted-grants/IPFS-mobile-design-research.md @@ -31,11 +31,11 @@ The following is the two phase IPFS Mobile Design Guidelines plan. All of the re **Phase 1: User research and analysis** -3 Feb 2020: Proposed date to start -7 Feb 2020: Workhop, recruitment kick-off and audit -21 Feb 2020: Interviews concluded -28 Feb 2020: Analysis -3 Mar 2020: Estimated date to finish +- 3 Feb 2020: Proposed date to start +- 7 Feb 2020: Workhop, recruitment kick-off and audit +- 21 Feb 2020: Interviews concluded +- 28 Feb 2020: Analysis +- 3 Mar 2020: Estimated date to finish Detailed programme of work From 40bb4372ddc233503ffe8bbd7ca7a0e41750b358 Mon Sep 17 00:00:00 2001 From: Arkadiy Kukarkin Date: Wed, 12 Feb 2020 11:42:11 -0800 Subject: [PATCH 029/113] Fixup RN grant app --- .../README.md => rn-remote-ipfs.md} | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) rename open-grants/{rn-remote-ipfs/README.md => rn-remote-ipfs.md} (80%) diff --git a/open-grants/rn-remote-ipfs/README.md b/open-grants/rn-remote-ipfs.md similarity index 80% rename from open-grants/rn-remote-ipfs/README.md rename to open-grants/rn-remote-ipfs.md index e3ba60d1..af582b39 100644 --- a/open-grants/rn-remote-ipfs/README.md +++ b/open-grants/rn-remote-ipfs.md @@ -24,13 +24,13 @@ A spec that outlines the optimal solution(s) to the problem. We plan to use this ## Development Roadmap -Investigation of multipart/form-data issues that the js-ipfs-http-client lib throws errors when first configured in a React Native env. We need to figure out if this problem can/should be handled natively or in JavaScript. -Documenting proper babel config for async iterator support -Documenting work-arounds for fetch to support streams in React Native (Open PR against js-ipfs-http-client and `@stardazed/streams-polyfill`) -Investigation of viability of `rn-fetch-blob` as an alternative fetch implementation -Investigation of any other newer browser APIs used in js-ipfs-http-client that are not supported in React Native. -Documenting which of the outstanding issues can be mitigated when the IPFS core team moves away from their use of ky and ky-universal as their fetch abstraction -Investigation of any networking or libp2p issues, including pub-sub. +* Investigation of multipart/form-data issues that the js-ipfs-http-client lib throws errors when first configured in a React Native env. We need to figure out if this problem can/should be handled natively or in JavaScript. +* Documenting proper babel config for async iterator support +* Documenting work-arounds for fetch to support streams in React Native (Open PR against js-ipfs-http-client and `@stardazed/streams-polyfill`) +* Investigation of viability of `rn-fetch-blob` as an alternative fetch implementation +* Investigation of any other newer browser APIs used in js-ipfs-http-client that are not supported in React Native. +* Documenting which of the outstanding issues can be mitigated when the IPFS core team moves away from their use of ky and ky-universal as their fetch abstraction +* Investigation of any networking or libp2p issues, including pub-sub. ## Total Budget Requested From 2618e6d1360ceaa2b2fe74cee695baeb2c967f88 Mon Sep 17 00:00:00 2001 From: Mark Henderson Date: Mon, 17 Feb 2020 17:45:01 -0500 Subject: [PATCH 030/113] Splitting Phase 1.1 into 1.1 and 1.2 --- open-grants/ipfs-rust/README.md | 67 +++++++++++++----- .../ipfs-rust/media/phase-1-0-gantt.png | Bin 95057 -> 95245 bytes .../ipfs-rust/media/phase-1-1-gantt.png | Bin 97909 -> 73786 bytes .../ipfs-rust/media/phase-1-2-gantt.png | Bin 0 -> 70886 bytes 4 files changed, 51 insertions(+), 16 deletions(-) create mode 100644 open-grants/ipfs-rust/media/phase-1-2-gantt.png diff --git a/open-grants/ipfs-rust/README.md b/open-grants/ipfs-rust/README.md index f91829c5..5ee13b3d 100644 --- a/open-grants/ipfs-rust/README.md +++ b/open-grants/ipfs-rust/README.md @@ -47,11 +47,16 @@ MIT/Apache-2.0 license, allowing licensees to choose either at their option._ * [Development Schedule](#development-schedule) * [Figure 2: Phase 1.0 Gantt Chart](#figure-2-phase-10-gantt-chart) * [Estimated Budget (Phase 1.0)](#estimated-budget-phase-10) - * [Phase 1.1: Blockstore](#phase-12-blockstore) + * [Phase 1.1: Blockstore, etc](#phase-11-blockstore-etc) * [Deliverables](#deliverables-1) * [Development Schedule](#development-schedule-1) * [Figure 3: Phase 1.1 Gantt Chart](#figure-3-phase-11-gantt-chart) * [Estimated Budget (Phase 1.1)](#estimated-budget-phase-11) + * [Phase 1.2 Bitswap, etc](#phase-12-bitswap-etc) + * [Deliverables](#deliverables-2) + * [Development Schedule](#development-schedule-2) + * [Figure 4: Phase 1.2 Gantt Chart](#figure-4-phase-12-gantt-chart) + * [Estimated Budget (Phase 1.2)](#estimated-budget-phase-12) * [Phase 2 and Onward](#phase-2-and-onward) ## Project Description @@ -222,12 +227,18 @@ the key metric of progress on the project. Phase 1.1: - Blockstore implementation -- HTTP endpoints for at least blockstore and pubsub +- Node Instantiation and Identity +- HTTP endpoints for /pubsub/, /swarm, /version, /id From there, we will begin the shortest path to enabling IPLD applications to be written in Rust. Choosing and building (or building upon) a blockstore implementation, followed by enabling several HTTP endpoints. +Phase 1.2: + +- Bitswap testing and fixes +- HTTP endpoints for /block, /dag, /refs, /bitswap + Existing community work will be extremely beneficial to this stage, as many HTTP endpoints can likely be enabled by writing simple wrapper code around existing crates. @@ -333,7 +344,7 @@ Additionally: * ipfs update will likely be handled by cargo install * Private network support via a swarm key is out of scope. -### Phase 1.0 Interoperability Baseline +### Phase 1.0: Interoperability Baseline Phase 1.0 covers project setup, and a baseline conformance test / interoperability report. @@ -352,7 +363,7 @@ Phase 1.0 covers project setup, and a baseline conformance test / interoperabili #### Development Schedule Development will take place over an estimated 3-4 weeks of development. The following chart -assumes a week 8 start date (Feb 17). We can be flexible in terms of start dates, however +assumes a week 10 start date (Mar 2). We can be flexible in terms of start dates, however starting as soon as possible is preferable due to the above risk assessment. @@ -368,34 +379,27 @@ _All figures are estimates._ | --- | ---- | ---- | ---- | --- | | Software Development and Project Management | 164 hours | 120€ | 19,680€ | $21,832.01 | -### Phase 1.2: IPLD Application Support +### Phase 1.1: Blockstore and LibP2P -Phase 1.2 will complete the work started in Phase 1.1, fully enabling IPLD application +Phase 1.1 will complete the work started in Phase 1.0, fully enabling IPLD application support via Rust crate functions, the HTTP API, as well as CLI commands. #### Deliverables 1. Blockstore Implementation -2. Bitswap testing and bug fixes 3. [Definition of Done](#definition-of-done) for: 1. `/pubsub/*` 2. `/swarm/*` 3. `/version` 4. `/id` - 5. `/block/*` - 6. `/dag/*` - 7. `/refs/*` - 8. `/bitswap/*` 4. Project Milestone Report 1. Updated Conformance Tests 2. Updated Interop Tests -Here, the community work will have its chance to shine - `libp2p` and `rust-ipld` in particular. - #### Development Schedule -Development will take place over an estimated 4 weeks of development. The following chart -assumes a week 9 start date (Feb 24). +Development will take place over an estimated 2-3 weeks of development. The following chart +assumes a week 11 start date (Mar 9). ##### Figure 2. Phase 1.1 Gantt Chart @@ -403,11 +407,42 @@ assumes a week 9 start date (Feb 24). _All figures are estimates._ +#### Estimated Budget (Phase 1.1) + +| | Number of Hours | Hourly Rate | Total (Euros) | Total (USD) | +| --- | ---- | ---- | ---- | --- | +| Software Development and Project Management | 160 hours | 120€ | 19,200€ | $20808.58 | + +### Phase 1.2: Bitswap and Remaining HTTP Endpoints + +#### Deliverables + +1. Bitswap testing and fixes +3. [Definition of Done](#definition-of-done) for: + 1. `/block/*` + 2. `/dag/*` + 3. `/refs/*` + 4. `/bitswap/*` +4. Project Milestone Report + 1. Updated Conformance Tests + 2. Updated Interop Tests + +#### Development Schedule + +Development will take place over an estimated 2-3 weeks of development. The following chart +assumes a week 13 start date (Mar 23). + +##### Figure 2. Phase 1.2 Gantt Chart + +![Phase 1.2 Gantt Chart](./media/phase-1-2-gantt.png) + +_All figures are estimates._ + #### Estimated Budget (Phase 1.2) | | Number of Hours | Hourly Rate | Total (Euros) | Total (USD) | | --- | ---- | ---- | ---- | --- | -| Software Development and Project Management | 224 hours | 120€ | 26,880€ | $29,819.33 | +| Software Development and Project Management | 152 hours | 120€ | 18,240€ | $19,768.15 | ### Phase 2 and Onward diff --git a/open-grants/ipfs-rust/media/phase-1-0-gantt.png b/open-grants/ipfs-rust/media/phase-1-0-gantt.png index 8516f233a31646c4dacdb1a50052d277d16680f1..8deaf705fbde5ddb329739d001f71207188fd0e7 100644 GIT binary patch literal 95245 zcmd43d035Y`!>9WCXq@J2`NgVfsiyTG$~4x22Bd7BqYtXGL~o{m1vNX=4etH7D`B? z63wDn^E|Ha9G2&~pWnAV@Am%j4e!3++wHzlUF*8e>pYKRKlbDBKdz<5!OqW4AP_i? zs4MFd2xK<`f!NK(0)8jD`mq@Jg~{gNv4aG{%b?{8r{C1V*l5kqnnl%MTCUhADJvXD^oIA_?1M7uKA;zrCBMFRN#)jd_u17 zK)Q?Rux!nFRYGLtp2zlk4V}}#x9KfO+VKLAFd@-rR`;f~q#b;X4foVHx}P|AGIi=OVk|AM<&?>qy7j>#RgI1lo6qwHKWsm?bQVJ!i+d zBD=I=6ussqY-3O6U1%+ECLcv0_#nh)L+DSIr&QeHSikrDcS6Kt2+hfLa#wn5o*wpH zfbcZPTgA;?OP_pBUrZnR{7~F5-ITb31HzzHPFXoVeeFkKA%HkT)vFMDN7_7wi>BK= zXm?hNpGY+#@*=4F?s#ebA{BxOed7h{?08RgjMAo$pCL%>%OQL-A*32MWJn|-(B9o# z&L?5Ittht8dEi^x$-MZ%H9L$lE#Hz1^45S0D=F;rDM?95h9D`+@re_d2lO z-EiRQpYJben|u~V%QyMFD98cVv($BrK5rJqwxg*TBBj9D&riM8Ho1U=9uPjr67Y;S&1N0ZUs5u_C{UFAz)u2zFsSF#&`6&V>bc*X=(0B|^GR_v!I% zyzGLa5Uk(dxD2-yc@SL?{&DA+YiqmT3>VK2y&0x1&QA}wmu&hDK3lYchkmODe7dqi zfA8M0NEzF@cz+qvvF~~4lgASp@p=$TEAgQ(fiEX|K`chjuZ{_*Kf$?4(Q{_xXN8ja zVHLDW$%D=CD-|wwmiqIEY7sVhP1LGw@`~^O2G-A9_`b#Ayk6Jcm(ZV*EPNIx8!db| zdix=g@%_1^yb-;>MVCtj_UJu7`e@e~_KRStSA>? zh}7(u9DDd8tyzl}x3z&wVS$YOw^ZY-v${d_YY-$#lK%FG8kWC4z|X!i57nMu6nZHsr!pg>uA4_?zuZ5F8CqstBF$yShLeaT~eR~uKMD6t%fueW#tJ; z$GLV#u#J@*n##DTYYff=>w{{sKN8M{N1Ew6!&eq;;LcYTW=4ON2azvCwaDc=lVrf& z-grK}-vq46S|2^*dpF&kx$Px@%Nlc3nTA2 zX?Ulxn7^8+4NoYU8nCZ}6N)H;KrMk#I&K1y+@Iw(UZ1xZ?d;+HvcGvFE9XXe*Ac;v zUI@0e>mkVL2sF42SQMu+z5?&rEVLE~Q@fI~?#ZLqH_ z+0o;)4Fnk-$-_mgsYWlY%I>VLo9a}#W27yq=G82@2V%9+YqX0bQ2*eEvDG2Z^6fR| z}ljfQb-v&4%;GP`uK&haThKg`)$`@95@}s}PbEQ}(HO z(dqt#_6TX~4|ms*Q%&Q zIFF+{d18L*C4w&Jms9Uy2(+T67J_&dUEF!g`6+l_ft6CU#NXu2(Hd=@dMo#KZ&DlH z`AB3I7(x(YpF$9sSRgcr_`?es#B>d$JRNiyYRPx%sUmJfpd@NV$vO9LxwmZ{-Zg!d zmS%nhDJ>m`KV+$Y_%OFRpJZ%bmmRpHlbzFXXg^1z`K9kX$`9*;qsOiTibZ zt($~gpnuO>bl>){zrNB}m!KK0?{#(0-)$&EzIJ@!=lk2>G-pB)#}~VH#oZ7*7ZG0M zn|n&+KH~$Qwy_4RIlFTnexZ)|=2=uuf|vycE-Q`DyP+Xz)LV8Ae7fjAAO>s7vFD40 zVG8p_{P#7*Qd(Le47{#pl-MkKZ6l?%drh~xw0p7cfNw-+S+e5eecFecweJel)<1h@oiYo>UrT{??Z78ZG?CF9761#Kl#jP2M_AjCw)0-~hbeKcQPT4W=ae{Tkl z!uK*ZiGxg2$%*nplWS0b$dQfWqp7-pW6y8tX?HSrqj={Dn)K3naxq}PxWSKv3V9l~#VnkzF0;$gQICp(0$vxEKLbEi!< zuBRZPIZlrIHIG8u@PKaX7vMaP)P;fwlK0SVe1s0>Bm-LO(FFG>YI1&Vyj6x$YiO2 z;9Igd=;$-w+#Ww4j!#ad(C&{s>rDS0wSC}r+T^FNk9RVP0mSM|{6RIu4E=g%xy5A4 z==(zMYZQL>9Q*z0fv9%;)}-*Wm63bwzpY?HdE7(YGJkz*6lz|2CUaT+?s<{POzZMM zkhZ7`SC{F2N&5Es5)9%rW8S=mcmXco?!iRNEB2~0u)wHybpmGMw==2VB^0UbLEWwk_ zw+=$LZ#DyFYE3y0hFt2I9TQN9)O%0ZT{d824)`P>HhmR(t$#4D-Ftp8&lfKlwT7In z?nPVB0@T#xmVI$geW!@-{SZ4h4+t_05j_LOe6#K8$wX-5oFx-K2D4(zr0czu6mPKH&5$$lfw}ynSk* zA;mDmyeOXgVEo2@JEhSU#{Qa8kgIP74$x!p7^+XI8#8!YAIS(b@h^6MzVd%#IrQtE zQVPzw{zk0)_ZRJ->JOE?rgts{P|bZIlT$zl{clX16|*(3D~#VSl|5clb@%`|(n@7m zx~P0&BYEw{eexGvO&c0OHU*;XMje)2!9*I@Eh*1iV`bY^r3p?E?-$m6w%NSgcn3W^ zL#a7vaC*Cil0mo)h+w;ZcxPO712L>wG>B>c{+48(=O}C0CSD)G#f2D3^oOnYH2K2` z$IfYN0?Gw|g4&pjTckWk4V6WP@bT`M54(O9RERBqc=Pii%F6w}gQHLWK5=-n(rdV2sI27W+&V z*IhlIo`^aTkjCIe36szaPatDaVp%2(0>uqM{Lc84(Lp9;H->@)x4KkgJ^F?*VkG+G z=!b*y&2G8lR0E@%2HIZfPm%%Id7rYW5O$nerbz&c;bDsg*tzk8ahJB^_??4~bQ(+y zGAuIs?eN-Syc9*o|MThd|NnE_Cz_bX@M(3Dg5(CC8nl<*_uh+kBLWM`pDYE@wqxi# zxq9+N1{NSz|CM#Bk0G7VE;`RB7v=a@X-LRw(swFxe#lpWcE~oBugX*wnc> zlnQMZM4<3L5>YMKX^Qfvx+#3sFL;mtK_Xxjbqt}$r5H*z^)I;pW@3shvxjRHbXyh0SlEGm{pYwi( z;Je!fN+7EIkHSJBn4mTT&V3qM!6hsIv?J9{cY6hnG?&$UgYfq55m&AA|AkLpdkPNB z>3`-O@bN`tMX){H2J#k|ypYNesHPI(6|O1!&uEh|tiI8+ve0{`iuol$ux zrjU?2^Ep&Z?>Pa<0G|7?MqrdxsD9J9S-=hF8{yerSpJexYh$RFl_8={KN&fKMT;8` z>2lm$DMLu1ZXtRi z#Pfz(ZHZJb64P}r?q}%OVhLxRkrsZ7CK}^8_DM8`Ac0V)uJZSUg1;um>=OwVl>u=M z$ggw>S~VyqU`4sVE)^*n=WUhS@kVLkF%0~Hsre{QQJe#d(z5i6b?Tg0T8gMq~QSIFtom0r>_n{O*etz_y z+dyxL$1m0Y)ZB{L{|`CR|9u(B&!K+ZoXecOBL|T9X6MzDe{$88)}y)$fgz^_qY_j~ z!CW!lh&j!JIN4r|PatNb#k4E-Iq@L;J>2#-0)|($Yn)2R)Fq(k+g7h~@tcA9LQA0= z4CXbv(ve2A+Oj70AULY-f6J?Jc-nl3k4<*X#T^}MgD=DYTF}R38g>Jc&j&Sc%u|rq zV4(@I{2Zz?>86?1ZjSt=XeFfIdzEV(~Z$Ko6brS)dy1gp?S$=?o zbnVxQKj)ZYg`NSDWw9*9IC?En&Q)z_rVzCF>$_6m;;+9)F88+T?SLc+&SLqQF-yy` z8>@Lv9R05cuVi}6Og`H62vF3ydB~kp8kX3|ECjU6|6&PF`lx?;J2mjvfxuzejUx(! z9!=9%-dBsti34iNd7~_PSte8{#ZT0GDLO{NT1lZR_Xxd=&PTVPvaa8B-ZS&%Qdb#$ zd5NBP;(`|O>#M{w+7)3BoE&>_;4QoJ-y=;#3uU8Hjj zeqtq{ozeXVDvF$^Vx7#?U6H$V+^2n_xX5D1v2w(oxXO9)Ofi~ceRF-EjBKW^@gh@43-aRP}&jDFhwD0w79&w-+Axsobrz)$Ry|gHT>NcktW#M!B-(IBZtdnZE zkld<&fHrk!aCNhIozqMf2uGmsM+L&{-L=wjQ{y@xS6{v=hvC-O!EJWpDJxW%14*U;nlM6=Jdpsz4vO{99e{joH;Vf38lJNOb1E zL3M!%;^!-n{N7$T9wI(tRpq?9kr4e%Ud=6#bVb7%&=-qH>%Zf`BBp2q*d5!LR{T!# z2XEACwBI)DkR)j~G#Vm-gosi1QAYZ{EmqM&b2s6lcLL3S?ZFe~5K9YHdByv_a2WKE zX(d5823t6T>vCpjhCXJlId+u0ysh(uU+F{UjLiUlnS-8 zRH}!>wCQOxeKT<(_tk#weAV;QYK$=OQTM;YKx>oo>_A(NEj|$or^aqm#twWM-cmyT z(_G*G|Hx567UP~2P9_a+Bq~d%`K!` zccp(ed-#S*e#UuMQOd-9r2{N|PYuR+mEdZ@o(=>-=P!$}#=S7A7W@4*;M(8~4*{9u zOrHS~(Mexqqm%8WX7;ILrX7C@#5cdLH?BvEQtSw%p& z(nI$wBl8`SVPws-J0InoUc)uJW$egro{sZ1KVq{EQhKgOab8tq^K=-^DQjGllQ+LV z(MhZ43Dw#<=$^vfHQ)C-G-o?}rLJGOPvC;A`lAb_PI<15eTeOWGq2a`n zY>MkibsVYc8{Ck-ENZWG)uSLeU6?ybbaejULNOQr z-2AiQwBo$EHqz3!F~^wr-)4rM{=G05;$#ZJqbJwS+ja~C*!n;-5>`v6DzF2p0 zvbI6Za1#;N!Bz)flK5r%VLxqd{eWX?iQA>d3>?w2Tshg7Tj#)hW!u2Sef1FRfQu+rY+N2Ls2d3kLT*;>g}~W-Da`1ZFeu<0N(&Td_N0HnI{the{~iS z!OCigPwHncw4FmikA+xpJWMLKjv)CqT0KcHrWtHWYE=LF>kKvX%5_oFNy$iXi1qAL zT|jzA*4arP0;7WIF1^YgCChh1HWHwT=0dAnAF%_}L||dW7YXdOWFsWwRuBv!8u?rl ztpeqxcU^dQV;PUg(cr0`AqaD)3ksu_m#|DqdXAv$acBKRf715#O+$=4sFIa%5T2|& z?afV1zue}l!Sy;$q@)ZIV{-?=_N>0>Pl#^if3xS-W4rdMiI;uWgzqiqoSrQjP~U1@ zkJ9!|_Mm@KR~@6zs=Y7l?=m>n&_hoSH{4?o<73uE7ntw)uKJ#Or0c=w+jjNEn?~n_ zE%sUP5sqpcTN=3AESjcm5|hnxR68PCN`YwfZdDjzsHeTUBt}v}&A%rZ7=(aJs6V7m z*EU{8m%m|Qq4oOkM$c)%5zEQz4V)*)yDy*p{pBNZh_!|D^(KPnOv7ypubI_S14F5A zvW67tAufkd4kcf+C(&N3Q9#i8(1#m$mr=W{E6T%yh_mHmL0y~ZL09LddDlg~k~`!4 z**)1a>`d61HG-RjAsr;;zE^?zB*^UQbmbekRFH|-kv$)0W z*K>8${8z@+Oz4b@x}@BuDWc1#h*M?V%y9#1#LC@xd=te@RTfoMEPEV{aq?eN^4o<(pf;qlOq%chlp>)p7w)7cWY!s{_ z|HzVD@+|es?k7rdbERr|N{~XZ<4U;W7liP=?D>>I^JX&D=nf@Woj3=LbDSFsUxN<< zPTdznCK$ao5=QvROzw`$ohaI-Q-Q_2uP>)>g?O z?@QAGkug1`zX1u?H*t8&%y3^k+y5xZ<~d2{DJ12nC7|Gl(` zlXvfs0b~+ccXU_8X~Js(m;FPRP5U$F;y#7$N;qmvADk{OnO-a!CcnIH#agzKWW`@D z6KK1_(_+Ny?KCsZ@3!#9z!^#5>f}6+x{>&wN8bBdNYF3OhF8!WE4)umHSe;dM=V-T z1%AELOX!J4v{?G+T)DBZJUOK%$6Wh1yTiUh7 zeN1M*YFO&l#K#^vST|LS~k&wO5&au9YP2POob?{fto{DhRFu>wJDfB-K^Wbw(-C)XgMFL@3cXXY>n$f}y}q?%O8ap@ zu9>Xam`eKjmFLC3pU6xjY@^36TpvqRz3}babg<}V?L&mG+Q*dkEb`V|tpy}*98mn` zmAZVzx?QI~25;8AJ&FrACjFV>awAn1N8Q2F zC!*A6XOmxygXb%@UzvK8iCRBNq{N5v3fHYbh+l8bZIq%I_v-1O`7kSXYSKHa-+Tj6 zM3Ct{1ZM0On;}rZf|1Kt{55yCQ>@zDJ8SCf;G#jY;&LI~nC=lo?VPep-7}AWIo2&HMohj< zUPxn{5aZVqwO+_1l)(qr%N zk3t*agztZ5PL$`#6>mNB`BB6!=`&XB!P%Q_57)7DSPooIThdrS2)Dip+Y*UyH=$T71KUtLPUNkelM(nK00Xz8i zoFjO63=QVziDquGI#PO{jb?HxE%O9{VTcPo0u>*-^8I7=cU=kC!Xv&^LB?X&1Mf9J zS-T@d5JCbMle+NB(%;{a-@=48f^t%Gr_Y*eZ zq1dgu`p8V9nmkOVo^zDGoQ{Q?hfQa&t(933I}P;tZ5wN@@`;J1C=q@ms5`Bck?9)9 zTE$5~hDetT-q_Vj*h2V8_f9pg)3$fx*fVyvr&7t#li9S~nO8fB&ZaO*YKyOrpHLFM zybwPL3UQG_93Lqxy96sQZOyxX@>5!W8-3tJ8=I;WNpN@Ax{A945*a)6*KA+zE5!S> zcYmnie=bjcEcJ`eM%Ji6-6urj+L$Rf(sy9!wn((=8p53{s$ z6jL%C0f+S(>DE8WUj_NPq_m~EPbU%L&25UR+@pMlbxSlCB_@*w=qGC(RZ57e(|3o~ zwUSSlp8-s`eBjE}-aj?O%uVwzOU}+4h{~}WGDPWy!llW{)ULAmdl3lqx}~S<0CndZ z4ZV*5E(?}cwD$ZkGZ*fJY%~Ok=VnLW%vdy)6d8JCOqo-j7(Ov<(evF^OWaprbEUdB znp&r2o0#prmFA@ud7kW!1Q* zT|5nwi)or##(?XBb;1Bo%wNrM=5o2?1W2~xy1teWrlFaTuqxQ`q2t4n8`I07Xh{aj z$*NJp@$dq09JB3snOX&HbHhn|Ypk|d9M-d0LT-}@y~VtYVKU{gg8gjMM#56EOQ$Kj(_BKqBqW#)T zJEsp8Us$5A=pCJAg<@|JdxXgYBx2QvvGtlg_HwvdE7LbF|5aWuLD7Q7qcd1K%sM)M zsAHHDYB25(|2iv^in@uFWZo?5Nn#$Uu8zPHK^uEl@(p-B_6zCSi!2ja_IWvNXUicu zA0OBaP%C~*_`kU9p?VAP|89{rDc_9vhIEyg;Qe@E@2msqZsfW>yX{zz2mkg;8m`(f z%VYa&a{AzScyBb|O4o8XK;mW2AU5i$z7$W#^FV{7411maP1aZI9-jUJP+H zmZ46zIMk>cK6N!Y>Z`yr8!F^T($B0^%kJLK=G&P<%CC2H2P2EX0{fzbooL8-*VaLT>Xa6a5tCo3=SMF=~9KY9}UXGoo z`qNkA%G23iaNxcJ8s6H83=1c6Hf!lphR-yjRd3D__p34402V2j7wWpgB}%Rk-8qL8 zUQb(6rbC8=Th*}Ur@$yZ;DQ@W9sy|3QU-iwQR9p7KAfJF2=4gb$mBF>0+3Gjj*YsX3YM#8%=v&<7RWTn%F25zP{_=VC*2c}Kg0e=+9fnH8j{TpV zLVLDR67>OjBXG>_i<<$=wkN{mHi0+zf!G<1N2_Wg5~a1RHy%$i0A$8%iIsvAt`5`^ zk=FlB6sfNFfi;h=hb{0-K)-|z)4G6b48{00Hu3u6;@vuiz10_sBxX(6fciuDA)hc| z5hW>9)c)XO(WHp{xQCk@ov~E8rG{bn+-Z^x)+w_Th-rbViSz?uPlXpW7y8f@7)9EL z%h@0ZsG|9q%6Rzw#2uH$&|5j80{}h;mcrQd9-rZ zhSTivRmY+p%kfg~OHF+Nq2AB!iQ0-T5E<nouku1YySxu%fCHKf&Im*B1{a=gC@x*iArh zt%MmV8@Vyxu+ zmL%i6H>*|c;!aXI77)2+Pujd^sn;v-mw=ZlC+84!Z@<9{ z^LW3kE9w#nB-%n3m%z+eP5A9%d8XevpX?trs`kfzgIU|+T+)!oA#`@>uLtE;YP}}5 z*zaV1QmUST?T$wy?cbrZM28(nXM3zJEJOB34zblWpt%dk?kut>andY5`Reqi`&%{R z`FOESTWxTX$5&i>SyAuP9e(?jmAzDouA=XML5#4K6!MM{*pfi$8r84=G)f|Ul4yhr za#Y-9u*wzh6kf5=3hO>WfIUa&f9#?)KurFq)`YD;uX^YTTw)XzOC2s@c3eHM>tlZ4 zdJ2BLi9$bya7MQdJo~l$c@WXk=~?ByDMKR50gkJRvq?jXqQdJw(R(&==o!u`l`rkj zt(CIWosA!R%J1B$^j9a-AoeZEB3&S9X>!#%0c94px1G<+js-j>n8a;0(TK6fg@AK7 zIij{y=0A4YNB)tQ3h@Fd{+*bqoUgp2gBRU7lRR}z3M znM|6QOj2fN3O-+1Em#qJ=Ho8HnWwLg8?$}fR{=+(;$PJi???g<3-j&+f;aS)c^3rsAO7uMx6cJ^ntg zCO37J@79+}(y!8TH&$*y^&xT%@>RMk%un)2u0&l1RRUs}F0lQ}WtfB;>57-Xegi>9 zeRNZQvSJ#uR{7GJ>aRwXE?-p}&FBfpYP=3&pBDvlEF(Z-+09MSdx-y2LHdw(yo?ew zXzC?Wk2XUVOlRTEg5+2<`R$}*(N?eMGYz z;9}aZoWMr8Z>EyF9R22h7swTyN&8~*C}-8Sy%K<7Ls=?z$3h+*Vwx&7tv4(%>${rJ zY@xIX-T$~-!1)%voVx>vWuqsWpExrk=vp3`c%60+)wdt zk2A$lQ01Zsw(p8buD8Sfqi|ij6E-MMW<%B#&#`5UNYE7Zx>i(sn>*{kqH|n#j}Xmd zJ-1P6Iua-}*gO2Ewt`D@H|OW4rKCS4X7>zcY_wpSDD^9V{em%y8%8un0g3mAL|e5B zIOS~@;zu8RprDePoD`Na$vBPm*Vj_-e_X#WN%CUpFTZkbP6{+07!mEyra#I*D^hdW zwBpjva^jkOJ1!Wt5ac~vr$+t|OMA)yi8k6%3eHo!$1fFhUMaKfNXaOk>rcs`N_v)z zEWVpAGt<80^Q3)O$r*1=!POw?HUsgb4f9M+-S8M!eDfk}r+RTi-U)R!J(`{XzyWv3sNj;ga(xa(81}7EDOg9S=wvm!hkbXvY(GGu;Dgu72F}z&7Nd_lT zpOkpgZ5eQc)sA2G`Y^e!OfR}<;p|{#(|n4)A-%+X!86J;D$&Qh0ClMNc2r+eTE4V` zZRZL=rZ15Zd!+42g|MZwWD!(XAeaPj^tk6h6UW_+YZavUzo)eTGW}WkW5cThObhOd zjRPg-thsmFcDYxa1GiVa@kDx>sqcu$&tvZ%6TTWAv)JRcy5mnDpcwO%&~`}kmPuaU zoFawksg`CQqg5|~TEk=slo}&(Dx*8+v!Bj-={PO)+OEiabK2$8(EV&h83_HRpeTeZ zC2g}udv-@v7rq`xMrfgAj(Og?D9jwlsELbZZq;S+4>{}nx0MAQ7_XQkWKs7@ zLdaEICwLR8tKN$XJMsGaabpsd_uM$L7_wmZrcBb48Pg}X*$8&XOsLuHA7YDbO*m?a z<)!ivv!Uz%&v$OWyAY}S^GpxJptS8v!6WD0%l}3@yisvBE-1we4%Nt!Z4&1E z`1q}=-tz5H+XSPL{79d+1*bAYnzO0eXy{x}4G&T3f$oDk`dvQ{yL1bn@Ei*fIaYag znWhmb7$`iyCwn9GhsV6>a{b3!pB7MM-lcDzq&p6jtK1D(%SU|umg53p$MDIvyh6^8 zU%UFoCJLq<@7n;f?oce4>Fs<*<-TjlM9Do0m^yVCb_2;?6qKU5QO5~3u`gZ&u9b>B zCG-9qi{RG>eV?KuAEYzXmN-Mm%0=VVCV(V94oQAgu zrl_r_Pbh(!dXKHczsq8)uFJ_=w_w`Nu+>9t?z&-h?v63D`RB%qC52!v51*sG=NH++N96?c0yaZ5F z>g#Zl%8s-7q=LQh&*HZW#kx35<@`|5KBM(2pxToms(K{4UCB=H!T&omYoZvL8gWC1dJovZ&5Z!cC*u$@b&j+>-94_wgm6f9u~)+Jo;p<2U~`F#&&{|A)04 zT_-5q{9z|R;byFvX)O?L&epGh(-T0iDHZ!|m%F0I=OBHv<{rsf1;7m>f#ZPWqmz*T zIgg>K7#pZY5C}Vd1Mz0R6cBDIP1jR48-84^t-ukE{JaF*MXQ7w=x!!gV{bcX-*7L( zfzk$s9gKyc4PeJ6hZH08b3@S0N1j4u8cJsKyS-6g>qy63<1>a~PX_ge5_cl>*^m)z zOR$kKx!7H@ZM?WjGI=9&c!iM&lnL=P^ z^ksv_rHmBhpkZ3jnvEJezVJ6=p;I>%w*b38tDY?T*mXJoiFO5g^zkgPy&!JxZ?wVs2dxmc*#Ge7 z?6G|V+-krsPQVRaL`KuPATq+HcQ0|`IPg}Z=AR54-i0cbAfMqrUpVt2N^W%oHn98R z2?HetlMSAi%|uXD*wQxq_fl#9 z&KQ5*MTy?7{VdVu|YPQsuiPYd~Yq7e7IL+ z4}CAN9tfn|asu4Vl`D7N`MVvh@EsuOds3F3P2$Sqw#IA!t7B8H)`3PXqFe$b4GqnR<^VDKDPSp}VRt6$HlY3JiZTB_t?@|rIg?Dc?U%0+ ztopYM0m-OUp@YbU9yKSL`f-h!!%-W@nS3|BRvbxd#clm{66qE-^{d5zmSE)INsk*;Ik0NLel7S6$X@d#alf|H#*VD_Hn*!+3Zm$Vmksrzo^VdVhIgp+B<0|smA@Bj zD+FW;Z!V~CfCF1@anRbArt)ALWsYMWHk@gSNlSvh+P=E26!drJe+)!LL#+IRrjvNl z81qmx22?CHn3CVUhw#OJc9NYb5I0Kd=FWm=<<*{;$Hl9JSv)^^EK|d%CP~(O_%7;Em8qZ zor7- za$(Dv{IW(;N}1Y+Uz3pj&59XS*pxD7ETDaNh9}8iIa%aok^1OtYLa?Pj`<<1<19y- zz`1&_La_Zw&dEUy*g#bGc?{}r)uTX@^jU>ndVcd&d2Q|kX?bn;6{}x;229Q`0ygXy z7nv@vgwhEiVkeYNDD0*AVUWZUi-pC`VLo3AA#eYgtt8n~SAlf0j%)8;Ae|V|WPiy1 zm`Tbfol$uuWL#@evNG;^3zSUE2aKG&>>!e_(4m^Q%Xo0U0!Syj?6)32Zwk1hmF{03 zDRfbkRak+NSL&Ggj(Z-DrXyUz3@nv{bMKXFI^%eSF53YFH_UhTn<9`%8-st zc&?crMIhoXmOUMejU^%UfzZu!pqN|4#Qi!oZei=)D*j z?>eK;meT*9NhGY7+Qa@A5{V@aeA7I9>=zq>RKmK3MFL1A+q@)(_NlN+Lvw9K!hGd+ zz+{#d7e;%qB-&JjqZLujj4rSi&KszG=F6Bs^-%SlKcxbDFITjnDGeSRO3|*PqlJF^ z+msh?U=>9f*loH=yut;gY?2}UiE`40kJ$wL3EhmMV>Zr_bUDw04F=39AOoVo%SO7h@d4JkRapknFZSPeB0 zrZD9l{zj{aM&hZfzp;zuETWl9kM!ofOa0^=c0e z!!hlR=k3syVjFa+3Ei5N;gMueB9AV( z!01%PeHJG@=FwKgU37lM?^Wv0Nha|xi9^Vusu(w1G z;H1*h*4RSGxd%&3I`qpz$3?=NYf<}PhRw5PM zaEYiFeS{9lWgqL#^u2OtQp9=wzeZswXNV!=vLWqrB_IclvZ9n?(0B)ash?kefUkU< zp`RIli|0E$l0{B^bKyp~q|vk{G^Uk%7PG7Z71fh-pZgUgZimcWTXJ9J@l zUNG6op}Xlz4w3irP1Di(uNQF}Rt@Ma14UFaXykf&987`2H+=2KXNF(?7QApEARe0t z!D@s8YBFxWovldGMs`qXOC)BEjRnp#dQ&L4U5$)~ZWSMtyo|gRL^P?&rlG+ajke@G zQQ{7sQSE>=@`mgrL2Jk|V=@!4hHUuG|52<0kQ|45ozX%wrJ+t_=D*_~2k8a4t(XR_ zAtib=Xbt)L%J--Wu!j(Nk)l9C^1>O94rU@O`UJu(fGjgAtZM=2eKu9H)DDX2@Sn*&*trz?|l}e zIM*u-)Q(wh$;;SBBVmaKjb((Jf5&6GfGAsyoe9P`I{{P2MjI#L;Jl!X6r`Fw>F>XU z1*Rm6B5)bzHlGkEyY7dqke>`<8B#0j+8MP2(9R+z41y&UPa>myeieE~tb*W{EN>9a z-m6&W6+h3GiMCT#JXp{dx5}=^OEdUe43rdXyvg@PM2~4juGsP$k}wt1>~n#>pQ~+4 z;SpCJ+V;&b3F z-^_+nDeq5^yH`Wfw4$Qq4meXaDgZStn=>8W=W>wc)7?!cUz^N3`=MC%p{k&J;Fv(y ze)bx%20-S&v$}AT0s)UEkjH}u#RNt5K8Nnw8Vd|1(I4bvcNGE(;JK-sROAA3#Usvk zoOAWS!9dZrKi2AY$K;J}-+&U4}NF#8KYr2m*aU|Q#2>}_Jbb; zf0|IjQZ3S9(`JR#m}JTVo?x%?h6p?@z!!~3ea+R&XmtLCl{<$zHxtyWPJ}~S^Dl43 z29=Xp(YQZNcR$wh{-*>skDE9&ldJJYy!~D#@BDtOge6?YqfVcIJ{Qny(v&o(%NW3j zH;b5}w!g~C;XZfDY_c4O30s z3G|7{&IX#`*MrZmAN8%zPjb@hAq|B<(x9{Z!L|5BUb)qP#HD4Bw9D7KSSmQEGoz!w zewC94-!Mk{N+e%x35@zi(N3^=5qD#XqtLZ$VOoW zD%2-VW~UF0e?ns{m;`ho?b2P4J2N<5)9YX>>g7XkQ0@G|38<+eo{FD8eL_PFLKv&gg$PoOXV(1Xj!Ce%(ct zDl{p`dxa;%sdOCW!&{hXcvA2gOU96as%bn|5Yoaz-GkI<4qad|kW)$;}CYme=$O0p&XkIsr-NmXLly6IF!z1v&me zA|Tl~5|So43-t@m3C-T{8cAYr(pSC2#6X$2ovs=qp&eqh*^N-YAa1)Cs;VK}=h}1% zl2*D5>KBBM>}PJiI@A#rJv`x=D0;j;`-QE}*Me%b7DLdY1=whsfgqW%$_wdeoCz!S z(2T4#aCUF@IdR*Uf>7bs};vYAaaOZ|%p&I}8}?cA`ee4d=kv zEO2tfcq!q?Q&I}e8NPMIDFTiP0lm32q%s(j7SNc$nP;JQ)D{+g-rnRr^YeC{z!j_b zW@I?&iD{INW}EQib`m0pl9Yr-z#LBhUk%-EB_FxVd5GJk-)S+;;I4Ec^0*wZz0m~c z41i$+-{b?=a&IFYW%SJ8v76hY@*?yybXUdh9MuU6^yWqey;@^PxqWufJF4Qz$ zZr8ovkH&E>OuCo!4z~vsD}s+2UtH>C;k8?q&1$}X9q*0{CN0^ojh#I1{o*g*6G%o4 znYkRn>mLA;Pq$YUM|rK6Rh*mY{q>C4Sd|`Sc7S~S`N~MSbK6HwygRwfaVw$wAtWWl zImEeEZ$sr#!$;}6%$Ps!I=$}Iiaw{=vw+=mF+oUumOgHU=v2hk;y=IlQjB?cLP}V= zNdY@Uolp3(TIlQT*FkuuV1R|bI73ss=PR#kk0*^_$LWREW+lA$(Qtv6jiDxCRikbx zc{eJMJoH{8rl7JvB9Z+Jy1Z9uTaJCNM7s=u|OM!loQ`W>^rvVeY*+W-> zVFr$`wl$vn44#v{pff)ubP@L?h7oZ$LtV?29Oic@fMt&lIUd)Ov3A)u)lvgd($xlk zS^%=$ya{#J*})imOtnTMZ|qOZyBYX|=$-URP8n1Q?0so^vPk7~dB1XOhMcs^PsWJ4 z1k&mXG*xu>^C|allkXCqmYVu^%Hu;a#;0fi9$=FFb0BjFnd8~;@;Pc!zd{o)17ub& zh`FNFr#J$wBij6$>vntq!`ZwSTsv_2AmsD1BVG^YL?)R7T?IyEJBiy;c~7v5TULJA zv%B#NlS!cc{`4+cTIa1Yj)3)48_w#D(F)X=LO}VBKS^1MRnesFT82;3WjQ=28w@SH zCRdN#9Of&wm??feAUKpbezH67i{r8_b0UBw1Aa&vs#lnaJ9i{kn9y^U>=%7+`YtE) zDLVUX8+xy-CRXdK(V~6A7V=w>53Z{8pclaE!t#)@vuI-LT>?HF*4awj#ic?^tXHSb zc6KrXdSASgc$2WjggF+CSX%XWq-=;$=UX!YZKf9GYE$V(Q-`Fh&~|eABUcAjRhSra z>XV9b@ubeJA>l)S0O}bO%LEO1_0uX^4yDdbxWhkT(LW?mXtm8G?S8}?Wu{o=?OGvY zI;KjOmL%`YZ1mf|jNVS4_n{Bd7fYJRr>axhI^`Oj&DPH?!dXNn{~HF9T$%78Jn6+K z>(@8b>-EgH^)sLbZ78^P^P9u8j7A?Io;X`p^zM9?cQ;J6F6XjCSJUU!Y>ulyRJ=^e zt6{?6t0A!}8dBF%GENAvvn;BFEp-rd`Si3!)9(9i<<=A;*x$@~XF`;LQ;>drs1vBp z`M=0}51^>Fb!)T(L6IN|3J8J-Dkwn#6(zJvMkGf`DxiQ0C_!R(>o$QRQ4Ayrk|c0)h&H2$D1ZTyrkYJ^Q@#-@5Ppx9)pYZ;h&5bv(K^cCWSOoZ}mTd-K54 z8VrQzy52Frq_qd%#C|%iD*C2$g_yU>M@%;&xws2EzH&EgxE{#%GaAWcnXq_vAn9!s zJd0FT6!b)K97gtR1x@?UFx8%bc8|)-I%bp}+<0vdcM^bb`loJX_|;nJg%TqYn$D-rnl&v zhAY8Six*ypJOIH>U{=EX2@&q8=a6+>Fc0OfX=fnRGt{b{5P(O=);s}GQWo04JX1b<-75}G8BKd`4>#N3^R-Qi32ou zB$z$`*yP?YlJr&m)oenAaV&r!u;;ucouR8{EAX>0-)OTjC zYiV(+V#&s;#e7+pGX3bt4MCpsPp_MVC2bu?E{9EJl(nezA+_mYL57s6;~5F#H>;ut zCU`6Lp^+p)W&P$6fdR`wDUDC2=4G}A4^>d%xQ>&f0^1I#jZ>k)_21Dq&@}Cbn);KsPJgI4>NPO+kbZgV6hirIi8s5ipNe)ya6GV3!1nWVA*<+=?XhN zsL}8aXRhB}c;9d+@4{_h(%(B|#`C;E{9$Rf{4EgK)864H+b zW$OxgShq-ZOslPJ6dH=o0Vx-*bB3Fk={_H8WN%nbX@XgRBv05*LPWz25qMfLYc_{e zO4A!WB>`i2*5 zK2VNuV5*V3Y>EFI2NYR#eeV4KQ_09`t`?MV8^U8Th-QOy++>1}3Q{TUpvMAZs+*Vg ziqiHV>8{FBuPq8yry)Z_(->|JjJA~*1bYKeC1BJYhTVFL;xKNAUrS?G1U+rBfw7QY zRGJzIU_3PV5q^9$=mjcZ)3Uq`bRqmAKoe4BO#GsW=|YI;l}mxTN3nV|qab4|1UGl% z|A&+zNy+#5=>7lJ4YaK0#?%tNV+1VITr!mwdsqTcIJCD)H+==hXjLNs?#R8b6c$fL zMKBkyJj1LHU^NVRsd6Qy<@F^mE$mvcnisp6k@{*Q1uZB$7Un?+F_uKkKx-JVKy)DP zV!5w{2mZOT>E2*Q7gkUaDzu$>^`O947!;Yi$HVS3E-Eq0z~B{gAFaGJbU3mQcwC5) z7a`{4ONUv3n}*q_?;&v0tSZth0U$+Q#N0Fylg9lf08Gz*w!;_ZTm_%`#Z24&iG$&)138!>uS`K{erNBop1-cIC0ITH?voXzm^fj0oGBPMPo!L|re>~j z`pmw;pwK!9FWn3^%n~*7^$-IoboOHHJtrz@SctG5X8?A_x7$d<6bkQM$#C0ta{~pb zpwkA-kT)&!I(CkP8tI=DL=MmNgq}zDqE2Lc#iL%clW0@!@?NIa6fKhDT@4= zjal0c(o?{tQcwW|0a9mMI&3jPz|CGtJ4`epe|w98u#gJ=Y@q z>$S-&78Sh5?8SA|8KN5YFEWz(fAdIdfmqXjIo29=>p^=?+f)pg<~z3N;0agmP|z1) z~BmF)SS`c%2Fo^sN!e;Rd?8K?+yu&eq z53MS6JY7?AtJs7duq&+J+v5T33ap91svz-*hMhRA<<_18C(feVy@Zerm|cMouZ-Ch z2t8vMXxNE!pFdmrUK?OnkRO3Z&SrB4cH#{BI@gnP37)n0hy5qhc<0)mC69nzp`u0D z0@xMYk0p*5W3TmSymCtfSZvP~H+{|3c>-XpZpQ-eA-`no9@6`8W|L7T?&@Tqw4BW~ zm&2i%e#HkgXI8MYZu)@}V02_R?*A@iegT#A&>>4E9JHKx)D5EAu)H>tzzJ-WrPX{J zD_HnxBr^R3vlEaHt~vxje6j@_rW0`aCI=su?8#3=6HK6yU-RELO0NsMo>Z>(?`P?W zXyCwt&f2kUQ=2uKobO{GVu!-dHW4jX@qzl|C)gE9x*k{O3C@Q%f-BhJZgpJac)~$H zaVF@$A>v8dXpYY1fD+B{@HSZ_4JOjzRWO{J>0>&a*~y4Z-)g9z1cLp*b!k1-dS~O2 z@e$r?SYpz&63Ka4P_KfysU2K0CN>*wvce*lmNV6PV5WK)o!x;l@qL2}7#3OX5I`s0~>jhW9dmf z0LK~F$UB*zc3A)6R)3cxCD_Qj&7XMP7K6gnNz+pRE3CoD`$9wBV&5=N9{}rXpyVg) zhz5}d;v!v=09HOT*vNZd3IQ8=%P6phg?cJ^eZhsc|Nc;QXYe4?hu8TJQ0Q$+!qp+c z!to8^rL#1Bm)pD^sw*(;_WXx zo?Cj8{iON}5?e|3ov(bk`jnY;rlNmu|B^P)rb4~`8w1TJ7C_KG^CST4^c;4P(RQG5 z64}LQSFwxL9t@|CzM~iK#s<^`w&H_17Y3Y5p-hqq4_PB()9Gy{fi3W!PvPWy=l=@E zJem>_WsU51M~2$*$Xy1EffW!7l-_7i05y^+sh@ITkeO4>#Mwd&pg(KC8IG-u=Fq4% zM<@^R7|ly1sB>t0qc75q{GdU;g})naA6BKnzez^U0@MjNh@t{2!6GC-bzLfbu*{O7 zXxnURF%k)81pb8xHl)S3^lHU2GOi75ZQ2XKXR)zF$4o_UJKTwrO7k3^e6Cg=c54}(kD?c2+H?DGp58`93kmNbl853v=s&h z%0ME#Mio+>@X9{zNLVuL@z*OD@V9I%!YY_T*1O8Yz@+Bw%)ef* zBA~;*bH%@e)pK6P3M)bRQ%uVQxpO!;M#IV7hAf-#nE$+NtwNd>Wd!n`JJcFja%|bLeN| z#A6Ur>RkQ59*0sOsi7$(ugEU$LUVJywpu6~VY5ILHmTmoxbfo3MUGMG;@~2qimj;c zT%CH0dUJuF*R?_MoP?tIg6rEu0LXrv1B&T=B8+n}-=(W!4L5Nmw@-47I z7ue=v1%`_fc}f?2M?j=9P~d|ZH>EZ*cB`U(O6Ym4)lAOm##3PrJIUY1uew%IW#*M} z-94>FcsKRaJn;rDL09xhSil*08a!8VyB`|7(!wES4>b2+s?A993TctDGM}2km;2=a z)BSKvt+jkEY+QKe6%D|f2sHO#s?ESO_X$E2sIA?$8cOsZ4Y;j@D^12`;4Li>)A%uj z_XmhPLIdmEvRJ;KTQ|OY^R5(kTSpmb1jiTjys(C~n_MW%otXr;6UeRMPGJ)XHi?Em zd^iP)Ey8*Dc-p%Vg<+&qJ&@t2mS_N#UF)?V(@09%ujX^@x53zXkJx3>80%Pz+mDO% zH=Kge^m?h`Azs|dk#9n-!hWExATr$VHHtfnIR-XQzWk2VB21W#{Mbt-3CHy1rU7J9 z4K=xiyyvzh@nCToACO!ju_Bzx@+mjZ?ii1BV5ew>dik$S?)p>lIhlj$wXY|*TXk2r z8e4Y_OC6_o5b$>|QHI)@uN!ddXIRnBSMw zD|40y;I<$5Tjx#&{%f5Xv)FO` z2-_pG3VqSyFi0T;jR)j4ZM;M$zM-hu^no@VM76s~Ft+^2Uo9d2Mvxb}yF$H&|DJu2 z5^jUP24qsNS^smysJT62>u>w^;V(2kFLZu0*#k*g3P|?PqE+}vk zDiLh$k;5ZPQS%ELl8Y8B;nKpnMK$~7vPn7`I~=fDLfH&`42+v#&(N$AeeiZw43)}- zUN7$5XsRxpGNexV*o9rfd1z(ZUUPycy{ zX}bTvWHA&BYg%^=7KQdmP{!)+Q*)--PGz;4Z|OC*SN?EqjGA@jdWp9@fP3SHxSz4Tj!=OteH zevgewm+Wk?S-HzkNjw^!b=h_Fw*-b%&NE|`wZi+Ur(acUMJJAd-fK#;s%koS2F^EL z{|@SVvAVjflG_T`6~#Bgv+0S9a@-EE+;~By_7JUajIW`Wp@)9`1yspp!}wdzMJo4M zQ4zDa6&J2Y-R*gEaRm=zWkQjiU4Q8OW%;Ng&K_oMFHzby6Dqe+`=Xj;^}y>@(N{7T zU#dfW&a{k7A~2?gw>>FotBnDBt0wb6@`dK>wCEM~Wf=n-7+FWG-8>d-+MYl4apn?B z*#bcNJc+?;_@sHe%^9Bp=8kh;08;DRTsvDz7wk&H&ER%Zd&)~xysSuuXQ~~UhyO7^ zw;nrRQ>VbX8|`22oj=&xvh(o+wW`VG_)Wj?@IxI-EnXdeADMTwix&JqZNWR3C(&)Z zsT-S|=XlNy_Thcy8$rElyy%vU^%4qMa?mHmq%!j@QeS0;$sKNd!i|)I*K{%}MwMb)V7ZXEu2$FE_7v-OtG;bCkUXHq zHE_kHf7N=AGIc`1zCQ=C-Knh*O6(-G4F1TCuP9nHGsM8Ss;7E-_L#A~Lqd3<#^iFe zLKJHZ0NJwU$-R>btSb2n? z3ghm(U+(yx3LPXUZ+-@U#r)_e;vp^B%&|`|_@bo;jXk7wr`7#5?vA&Q{C9F$r)mRJNwcliYBn zrqQwBs2Cu!@#_v|4G1qWN_oh0KJZ$xf)kvQAC{;WS6NS&gG(IQ`N;l;R~8?N|2%rV z;w3&JkN7dLRzeF2{|`Eg*-vnLG~YzoRYnVHw~p-;H5wNSYIyB?op2fjP>i7MiT3$b zD!Cg!V+&D_O@c?D#-FH@G8LBoPbL>7O%pB;%r}qa1}*ft-K}t3Txaj}^~1}%mno-? z0c^7Od54Xy8P7Wa1TpfMotMEiNVQmcZY3PJ1#-8Tuwt+F%G9B%V`J_BY35kwuC5d z{6zX0(|dzbD9{}>S!FNzUSGJ*K+lSx1oM_JklsvTSli&!auKYfciRg5KuZ6Qxw#_2 zj%TOnIlM0(w$JJd$xrgi9?6@Lc8v2zdmR#4+6P)fp8dmA-^zV*^TXGoCDY}qNs+V~MBd(Ybb z*ak()WZEzN&k2OHU)P;&E?;u8+cQ`4xs{S`3$W3CrhfFn_d}G8GPhzXTWyaxRPjaa z-gd@7Aj~ipfZbvr1_BlzIG+(UiRQV>J@!rb$ofH4=9BW+9t<=-z^>3zL9%uR)3>AF zkA9y3l7)W_N!V;-1v3&rNW!n>kc9r4SCq~TN5*A&Gpq+jm-TJ=(#QWYIn?|tc7>p_ z8!BF)z-qF?ud4Mys2M1VZ_M9~IAjL06k3C9%hXTE>B=>@R16Xp9HHAYRd>Az%$rI5 z;kWap!Hz-E9|UcDa-BPPIpo4)4;alKKTsTiz9`-Eppf)IkAE3zBhjh^QiCLO%|NoB zKI@2y%}FoO98Hv1+04sG?mP4!sSC=l#^4SL1YlqpmbRAocpJ6bta^&h{WPfM+U$fX3-ymNepQ3A2FA(;o95smSfvN?qHL^o!DC+y!SUP_uRvkAKb$K zt;Pp<5ET_w_`j4-F4yX5)eNzH;?3Jm7-|3Z?7iDs`=$@+cMatdk@}c`62EqIqt;o_ zcbib5HU;3r*k234DT~T}{#MlEJO?GdBnEW+lJfxbB=rrXE5%z~k8JK_NVhuCkc1SmBU_?%;mynx3nO7n1J^0o zpm8w;bq>w;+&T#z>FlTAq=}ph1{0(Xyb*9e49<%S6ISY2?aQv}y8bmRC_hGvOq8R+G zcH_-Gh~5<0fnA3spCKs#Sp{B{eU0Iqi6DxhGC!1pMKSD527Bol#NDqA17yEq!fj|G z(c(CjSwd1<3h7_Doy3hC-23v-W1&qw(g6nD8SH=GYY#J!nP!@eB)H;Ly4k zE3fFhD=aJ$fcyzqBZ?RLa1R|JYa51)jemSGP}~gxxWoEx1F($$`PKWma_uy*Ms&+u zq+`~I(_gsXp`gu|W>>R0k8<2G$3WQcTUfh=fC?KnE~@(bY&39;UgDY$lROxjLf;YeTgcQs*7dpD2^xlmfC*Fcd!4N1ZBjMZx5`-Gn2zvTp z7b^<6jqb5qLTR2UBxh8jsDdI%Iq-@X$J~>M3$sUqUKYHENg<*b$x&nzVUxQ&5pM%T zc4vOPcD*V{`Fmi(YrNenJyZ%hwsh@r9i|bCsaq9uD82%vB`{E$Ve_S^L;e1XDakeP zUGQ)u3yyJ!d5D*ZDet_B9U{%bZWh)n0s($()$5m!UE9ZJ4>3!Ba z{3>uk#wT+Z z&I6Fy`}k^i#*!~&k6HBlzjLwhj$f;pv2dk zPouAtFg+YchaeWPa$?ITOFv3Y!l`M~8m1_PJxCI9q#M~oiML^?^f`r#Q@1!Hpc`ie zULGpB`ZG!rC1E37FxRym_tH&NBW+#7C`Kbbyoi(mso1pn!7?f=(l)1W3x~NBIixg{ zLdoim_>xS5&5I_D)Ux=|a{V>#Sb+wRebUekX&ar4o&_mELe#ls9hW_vrsq^`qHAae znntzS`VSSf+8Wb!eQh4Y-Hi!BFaCaG%X21@c=P}w(^&c96!y7#7P=Q_>MURcv16gj_TMvrvFN9oHSPfd|7B>?NV+_nf8-ApOs z+glq{&(80qL_XC1m_l6GKQY`?u{O+hPuW?&FG;zY<(l^#?f~!vb)osmKP(!}loS+_ zBz&#)t!r-qL(^ZSZLDFVNUDcUZ`50tL>sic7=HGNgS(n^S+Ir|yCa$-Lt%6sRzCOV zc!7p3`si~=d*6u5{Sb?GKp7n?$5E;c0}t~fA&HEOM&yUsh)~j3IM_)dndP&@G1-e5 zhziNgY7rhH6`0xP$KoQJiQL*!;u)8!Lh$58q}k0#(3Lb^S&y5>8EB4?Qni)XGFlQp zTB0AZ&l9m<#;&j5f2c*FOIpmqt8O1E^v6;T{05~c$qlFE1-yb*7DYFq6q=Ruy~5DX z@xZ9E%IkJvr*39u3wZt;LbOO1#A_HL?Ya+xRYQH6e`kJae%ZcZ-en}~MJ`S6#QnFs zZ_?ZMyA79?tt|@boxM4@hh}FtH&I|`NA74VD)4Y6v)@s&AEmu#R9D)nOpfkkz+%Sr zT0VyXOezc5Ffhwszo({`G+XQ)4Pg2wS96z#!#yW}bwPIJeeb6pB(aQNPpk(put%CB zX566^ebJhfw9DWY`j+zDZz}moYh9Yh8;qK>n51EwXR{>lCqGaeBE`LC@u06Ay#e`o)q~b2-|jrt`Fme%=J|U}UnS5CbDy=$Us%8__~P zKi)xkWnPKB*NXvCcgvgXkfZDEYd$NSY>j1x^SLd7db9V&nU8B$hK34pH1V6BG>J20 zRCq7AwpMr(?|JH#Y$^LS0lV3{2?0*?cmJGR`tCo5N{7?SHP=lnsQP-0_I!Io(P+O> z$bY7pqQw7BjK2Rp)27@*szS3r>-Fhvj|)z?R$hdkegECBHtk&$SXD|E36;*H(6?Fjl>jBK=0 znX97jmw?Qu&23VnnKE9d9PMs}`L*uJUqJRoW4RhOmbbwJe3BWrfTI@JYK`cfSYPg) zoyjBKso7I~W#|*%m3$U&tYCS|abp7?>+6)a03>}ErHnr*EU1Z>0P}k8>|`J-X42%^ zonKCrRC=^yJ*fYX5oM@nei0tH8AUh;ujjlg;Dj$9$@XG2%Inr6)>i5^4Ir3D|@I4n2}Z@;4ED|N_WXvK%LJfiAF7n=b>1QgzrnEMU6t`P|<`L$Tf|LGA6x*bKXu#ksT6` z#AMA3@%SsaT|S(Mj%ZS)aZENqBoY$rzilKY}t|d#N8LNkmarqOhShFv+Jm_EW z{8MtlMk(x?npo24l#E1zI|hc(Z+BMv1Q!6dQ){2DZ2K!|>e=DP0K|2_j~2OoRbdGJ zkY!DrF&KOB{`on0&VEyHvrff0rzI)$DC@V88YuZ+p6Zal9AYpeb($ z$F1@$!u4XO*2uqE5r7=+ro8NUIrM@$QqU7Qe`6rbJ`kQY_0E8=^=s)xfbN!LZ9LEe zpG=F-sW47^b`P?PGJeo%i1*2<|L{&kUjl&|=R}0WM)8PF_;NBaYpaq5&659gVH@s$ z`k&l}y#K=K{Ga{8fcz7T}F9Xp#R(?rO!96&nuqwgYVwHud!Dd$!BgA zDz}+^PL-lIC@1@COfj(t3k7(N7&59p0r24tOFAB9yuGm*L# z10}85*^BCO^CZ&HArfLw;>Vw!`)nNT6yRUhl$rgTVRRv)g2`yJ$UlN+bn7~E(0_&? zFK|;MSz>-4Vr|xU4g*I(Hh5(4XF%b<5%rRF0(u9pL?d*m#fgPMyQSIIipA8b z87y)Y>q0Mj8gj{*FL~o*?^T}YZo_3t^?1|(EFe6;1@#@LPDX~ZAliIF@;jO% z?U-Lg`^Jn4C6rtcCs}b?rZNyUo75x?x}s@}*&Jk6#WSY9FaF$qG7{SPNdZ7(4}|uq zZTbTTLhr*7zv29xMU(HUa-HJsSsTZr(@Ntj^Hnrcr7F@8WBF=UdUZlWN zp3@Wbn@6nfX8GVFw9&&Q9_#Q&DtIaO=UT*Q6_sFDW&)nrF))>znVEhLSy;>_o4L7_ zmo5%6wXVz||HX6_fGj6ab4os$d*u1j@M6UrdGJZ=$=o`Y#eyEY?TZDZ{weJW{nYeq=j8SX2Uvo$>wJ>G@*$F%;SZQ^|#0Qx%FFJfX zqpf`?5HT<0vxpLj5I*_hBJ-+sI|w)hf+8ghgxrvL-Eb*}_7)L!Y-+F{jD#kN1I=*3 z*ti$n!>cN~V5PJ`bZP0D?rGR%|8pyEXb4EylFk;Ty5Oa_qa4Zx$(B07EP=0Ia2qSh?wkafk&>M zrl2iVNzR{D>ZjPIWhA5*1jXPjCY4NbKO*8!dWL5e`l`4 zXdFU;q1>yxqXq$1c~aXJoTt(liwEXdhlEW$mESRh$L4-a)eMt2CM#+9-XOWCWX`1j z*lgbdQ{zbZuD&24z%6pv6s;z*cTNBTk2B0Q3V>#U4-SbFSKJzWm&VFE{k@0=AN3_Dk!MPMI#%!>?P_EO+!Yu&4{)j=(%Ax zB=1Hp16Kw62Pv(3YU4@!?gh%vo!VXROi3fgu@EM^K2uLF*)+_RJ?_0JD$=X5TDcxp_B;W=^syC9d~1n3s^9cs5m$4VSB6*kfQ{T~hfnYF!YNI6 zFmjKO))g1zGb@CoqlR4+aS3!nrTdR|u*__pMHVSP&O0ci(^Cn+6I-~ds2Zej;)aZ-12 zx|uS)J(wvdWpfwgQ6Kj&;7TxiwD@P|wVR0jObibVy||q6$=su(kk&c_H ztG6D~j-K=lu*HW$lB>-cQVxxR`YkL^u(>ai>6{}Aorx3WfcSNzO}qh}a@WwR<=lM3 z&e;UY-PlSf?#ghl?EiaKOPK&=6PfI=<;e%8+kGZZo&$sF&6=Sw3~!hV@l-+#R05Di z@?buBqsOCHeFtF0r>4S;Gse%S=RW^v10Y@3TYG=YZc|ma z=cPlVh1GPN!qd>d884u0nlLu%V^H2z-B-+hc(5dQusmn3=|#%g#apbrQ>scU>F!uRWncT9f>z?ZTPT zb!E$_|EtGhk2&;J7l$Ho`wg>SK-@2y1&;$kxw1DnlpJ;DPj3uuF?OQYPd2 z_`SD!c;5jhiz;@xm0|DLcUWdUDlLLnzg@MS#$T#ge%oAqb>@`JqGxvm|BarDrp`#g z5txauc(;s%yW@}CPw4f~%zn&r?8rV*@jOZ5my1HT-wNU8^KJJ4dhYGpPXK&HzKcI* z?)QaMbln`=Q`@zdYp({tqC`Pijm`b%yM0!<$t1i&b8?p&Yi(Z{a&4Q#)Ay$$i8wn) zxw>EIw`Wmud7VzM&L*nQsvLzhn^XYP`N44F#k&tNT<(hTzG!_lfGVkDa0(z@=Z}nB zm$+l0bqsqLJQO6Yk2&VJo|e8N<-vB>5MD73J7)u3@)Fp5P+N{{Pk+iWI=TzJ(MX^H z539i=2aLR66%H7omvmkfqpgRhCFA)qEwICvI~MjkP<)?}fHe_-^dgs=I+h;| zjm}gBN~d=R%6vLzY0bP}Lwv&F!0bK^r1QZ2EHCGNZZJs9O*ZT5%knIhMoBP|UTI8P z;s!Dmdw9LRoKpcIj(RaaZ0`9ub57fgKkxV9F6#W{_hhh!5UIN*=CJh7uHpUnhfkM3 zA+lI-<_X$o1O>esx$^bqQsZn?0sZ^%#T2F66l;{|w(_)m`>DbPb}e>&09Jtw3cFoS zGsRl_p8NhjdSJ|IG2R6`4;WASg*7cC@Kc@UKT~J?y`bJ&CbL3VJ#Nq6nYt-c{&$;) zV$hwVTgJKI*`IbumD#1TB{X}1eb-7TV=`=h!S6e6y&v|4Y^CA(Vk2{n4LfpoJy93< z#@uSQM*K{ec@#c%P3=ME@1bWe+uyetubGx`c^G1W>#C7+)-GtW)jTYvC$cHEZeO&6 zsiEoMgQB|Lv4f<2sMK%a$^Kj>m(<=PEvF+xbpu_Wq8F6E%R>tfvIR5mFTUue$Wa04 z1ZRDO>=c*DmTSU3YLc9oe`2q=_$3r^AAQimHspTNlhPdQJ=VMWD*&<7a;m1pt%bSt zxv$UIZ1|{pZV67mcIp;T0Qv1Uj7E z(}=49e|Ku!K%@=>#Zfv;;X+70#@|&}l8AC7C#HF4j^i_P(nIU`>qV(PW9$HX*)hrC zwf@WC0Ib~Vpz#GC8e|e;Q^e2~V&qV?j-J!*g$9wOx*M^mzl7o?AM^Bpt)at@D&)OL z&PfxwYlxf7N$58vvi(v0psZj)j`oUPy?)+%4kPwgytK0>(x!OulA_i zGL24Q`hv2!1CrvNGZ8qRzAMHghONGFE zX6VPPqq%3xN{Be`_Xtpfg*n+q!Mec#{FGMID@8`zKLy#K%4wlqA41MX42(bVmHr!t zGguy)^8Dv?9|IT|Fc-t1YOUK4)phBpf8sqag+Z4V+L$6X?QWWT0k46*P&!$g`K9rP z8pivXOnyXBq0#gcv;DHQjQ1WPE@7(M zQBb)+9;&b$?2<+Tvr}lBPD69g4M;4qo`!Es`Cy^=Arqa(B&SbG+jo&4A{v$zhVkT^ zR4zRcmGc>|c^$>?j5mkR7N^|XA;}np1nkm$npJgf(!hh1?>`aK9-?yABcU>1(s{;F zZ}%p-AqOg87lZ%KE`p_Sm5L_w$;S8hPDdO!emC|V7F2NHE~q-WmG;qQ4?-Itv60)t z_6wb8bh>s9z!X9vo=rJ0-MGmzFWC%*Gzjyqj*5y$A^-*+y<9r?8%yTTDM?r}a=U^x zzwA+sxgofNOsscpZr?bW$C~I>zweY#aHszI+>q8cTR`uD8XnSzJ+z^K74@F83V)e$rGoOH3p}pHElvm1ev{$ zZ}leS)jb1Xed-GEX8L)9XpXvd$X=0my8+f=%s^si%D8&5SamTkz)8(S?*`yOwX@oq6VsR3COc0%xT3*8GUO0ja6E9kV(9XyIv~ zDy=-t zT36j)DC}~4m{2|^CX_sC#iJOXlGIcQS*bO6wP7%|0y{lSjEidH)E?L~jz@uZ#` zNT4~{f__UU!Yoc%>?z$#mUI_RCC*fPOp)DhJk?29joy8 zEGG0=N#8$rlk3sCTn0BQc!ck|pe5v` zc{Dxh3z@deC79WwNrqyzoM;<=_=%ecG}^LTuPfT&&M%wXa6>~*fcPxm&9SSB1sOxu zbx*>Zn+2tGt?xz!ec2f4)>-W<(^tkmuiQOMq;e4+S|^+ftnw1kjsd(I5q2&+<7tUW zlabyPupoMU7>!Ac@a}B%7s=xH>|*0XEq>eQeq+Sw!h~$t)Wt}d zPGnU_3+!KP4)|^lP7?%pXY5q9CzhVwEB?c;H3C!EEwq+>&vw zO6v#=Ws$Q-#y>}o74Y7EzUiT7$V|1tXcXz9o2CNT&ukaz>GE#&qlMB zFvT#?JsGwuLYE)`MSMIik-?r|s=`!x(bVP1k5sDLId{Tu@8Wj#F(b#A;P~~Ur94wJ z;ggvG2|h*r?hRj$H}u^_>O&f?)2y*LTIBh)@v<(RXhwd-VnKWs-{E&|aAp196;e5& zn}_tAsaI~YZ{Xj(=9<7-g)J`Z^~ZTT_4qo4b}+gkkQvrq2tfLLvmuvC zB@7IVb$X>p!&oQVK^hcK*fZcAo134o2EI(CSw?N$QPC9*($Ye>(s!`Smb4A0D`tzC z_TtgTc+fX1?qN<`7HQQ-FdCM_)KTgvUL>DMIvKG>U5k>5#vLTcr5vZh-N<-EOfTF| zshU+r_r7~~SR#$-IBuRbJz`0wwD5hx9g(;z+XA(wnRc7}@2DelX5-kX!g6#BR=0;P z)DH%I`_cP~j)p}VHf|5D^ifHnMz_%33^!lRsK%r!SERgEM9)*xI}2YGyxW+!=nI-h znYz^B9$Z-wiT$ zCEU51k$~|{p+7dcKWq776>X!DS@LZrtWTY1VqR_0WF1`fkHkOqli`(lngc z8d7xTs`gEd+vNJz>r1PbU2C9=#{Dj_3hkgs+D9RMph4q)x2F!kyf3RT1=FC>{`6uR zG|u`I=SF#F3dVI!3^OU^U9kU?$anYD@8=yp#ls}NJv+}H??@S$gFnO;$>?><{~11j`!Rcxu%t2{j%k=l6Z1~X@H{Gr6n~Re+6I#%)31a#J!7K5a=u4R*YsEJ(02KFQOC+|&4uXj zBxZ79{_Y+m0x&50YU%EDk16xpY)WT}pd;8_>QYPx3`wW*sc>AR@wwW(aW;nVn8^=5 zFLBLt%WcVcn2Vzf)){K(7)gj9+tugjv~=P}So4XjN<=0tf4c|POIj-lO_Pi$JI(Yo{T2N)PAMJ|g)Clu=e?{8qB?C)fjeYHZ$KI0t?;?yIME9lz0d6;=C z2d8Dn^KDR;Z|Rb)WLdof4qVlRaz$2}th{@7%cE@US|t-KMSt2O>8dE!{cyN+&E7`y zBmBh{1}}QwFGd(WMgek0#DjsZJHVsvu;qR^cLvsF*N}8s=ci@fR|$!&-}k15Af^6dW3Bblk{dust~D=kZzj2WKG=b=4a@4)Co z$0u6CD=O!bqTt?Bf%UVA3V9CW5e>Q;WUnL5il%+~L_MHwvx&5woPAp1LTz4@ba$+Y zRxoej39{SuOzU}OI{ohZkjV90WkA8WL(}{8yIl4BAK>Le4EM1&i_QyIbU{9e$X^!Rcgjr%di$Ye%W8 zH`E@T%3pU3#_*+By*gmKD(A6*f%c%TKmgi+vj@nIUwRHll;)6h=$x~2FfWvU3E#_IbYP~r~&(5*-Zof>%^XFh#D5p#<&& zX&ZTCYGB;SJ16f{1{h%5i`2K^OE}^brme$%w?WMH#`_PcNGN8HJXtawdA{GH&24?Z z^V%avgPCj2cerrkl+`;o9D%!6G_(`9{A z@m>BDcPjt^dzLa#Fglf{n$7eE&jRtR;O^}=L(Bc^3zyq&)}vtg`xF~6l?hoeYW zAKFozut&Zxmbb%v6({C78O^T%$a{UKu@fX67qDgN4>@D74;-AxZhgkG?y?M<9S`T; z0YR_OeTm2#X5i{OxLIx>)6)D&juXe;g!3wW0Y}P&QPe}|X5E$V7$0_TZHqm1KB*@M zi!JKU4Ly;xf~KR6J882DN>Skt4fmSienuKpV*W|vzJRkgxSb!LeY#}t(mo?f%nUX% ztuo|6WRHT}VIygs8N_@z6nNkJAhx}z(8}Ze2VHHiMzlA~RQSUJXF~Q~RPpW!%~$84 zI5CSq5CyJX(or_o5m0kb2I_PKrrL= zIZgKh8;>o|tT_qT_O8#gY-ZxepbCq0@2*{2c&S(7ne2B6TdK^S&}dmP0X9j1VPahq zeoc)qnRiv00Ca8#1`WplEV<0xeXAn%1CxYMr1LRWKNWA(8mw&#o7OXY)yTsShA z)A_yCXF%y^SLf7946GerIeiF|85n5058O}G+crCWTLJ^)W#FnQsSeiv3McjBol5+ndjJCN-+qNZ(X3sU=Cqi7#=f0VNM{`R z_4){5as~s<`=3YJ&;UQqfoE2c3XsrggBWym?QoIJ1-UIR<1fwqnsU>vkH z!%lqS11=m%SJ;9rm+?MtIQn^cX%E&%DslO^e3=1_*ea@ZSHKxF_dTopO29_#Bqd-k z8k2I&nVEhOX=uC|h*IOgBeW@axgcI^sLuKq#$UznSyTU9ez5V;xGD$F;m10UtM(it zTv^=XtMbj4yKZ2{1D>nMTc~?yUcDDK^FD(OU>ZV#%Ll}F4KFl_+fQJ?i~E?-ZfJAC0y;6Wf=)?H97T(3IpUheJRgUF5NDRwypXYH zGYUHGM@I%?+!4TbNzP?Lrm>2Z42E8K3m$q;jk`@Pb6-gEbo9^nD#&FKP}fNHa1r#| z#Pgc}UJi`G0~>?)>w99CeD?r$Sp`+v{5yhdKGe=|$~58P)Ep|HCL%Z5^I%o@teCRT zbP53K%d&fyy+$(sO(%KMSwMZ2M{^(vgw*m~2+CbJ6g{gwNw zrXb6I%6+X`iCx4}cmeuLgh;{kW}mZZamn7HZHhW)WaeOV!T3*_8IYWPZa;wCK2+{2 z(KZB8$;oBpV(b0Jozv#awBfcg^NLb;qXGQV(U3)g z9l2dL(2ziecLgjjGapX)6nK2<`WMQF*LSY(TuVRkEcDAh?^UOESA3p#8l&g69V>X{ zLgwVgkSS;=fq`aM0#&njyg#*9AyGE%Q$e6L?4`u1Oo{ zLxC^I{G6L9eE04;sCqJ(_qzpKy_U(R{H|MnC)}F7eT0Vhb$adaE!Oq73mL^(0z9ZW z^LJ#F3}V8T7HS_?0Z1;)V9$U0IU&Rv4*2K2QokC)xjv-R4X+5p(}NUFoWYo=_0r5N z792q8#B4oY(NApwc;OwKP9~N@?IayfLrBdFH;KiKhdGmx+$oKe4)kiJBQoZQLj5Wo7|*qAtwl9J zrV)$ugICQyt7$vM-i!~7oE z!$BLq>?}FqnKnKFy)e$0U*7>qBZBeAud&dvtt4i!C6M9pJ{x z;rmFFMh|KH9ZvN9&q$!=sYSHzCFc*ro@>K5AW_kFn>4&6MYgyOYcuqW6m(wA;h9Nv zAgRH0H6|eqaDKCajDpI7zK&@n{zTCb%;*!|UU2O>(^&_p!Xzz*<~p~S@UnA)mi~u~ zc(o<(MMS876|eV30TfvU{VAnrgk8576lD&dxO`+$%_KOW(-tR+M$S+WTtc<#)b0KY z*iOW-S&UfP$}z(4_vOOse; zf~&bR0Pm6?vUmxJe3S=xIx@GWDAN08fUpb_FKv@WO1Mm-e?*%dun@Y#y#0P(;7TYn z7{7Tf`bsiW&{-&k)Z#T{v;?j(zqjJVsc*J#?~f178eJHOgyWq@M!&S!G<>6J zccL^~g11TB<=>idTCCs}Q<50(!y9*^8Bw0{?~o*0t)XxG&xLKd=VB(y*LjugI%L%4 zrOhxf%EI2{4R(nOtB3_4U`WTA-?zE1k&RHOK}s$1 zg51k-A$`(*l=LTQnq0c>Fux^_E4&gmbb*685kIm0+=I^CZYOAB&%Wrup|G-FOXuys7y~uG z?_DDj86F1D)^p12B)g*xQM{S#lUwXUZ=G{KUmy_ZAiyk@m`~U zOPnm1R(^mX^UDQP|I=Q;%(%2$AJVg&Y-&pGDRc+a&cu!>PLw|il&TDmnq8xH`g~H& z_1#+~XO6+l5J~Y+?c~0fsJfBu!+qFwL0NW|i$#bUl4NH|zAzPaBO?=jaH&of+K2R8 z_C`iYpWCSYd7Ep~7qoy6DCKX7$Mx1kNwf?wpon5>MGz$Cf~xw?bIwEe==98;_ul)x>plOw z`p)V#W7AaCQ|Iin_isn4ksU7QV=~A!e)cpjtODI`>clS=od`1HUwU*7Ry{c9DbOOd zU|s)jbv6$x<&Yn`;t+EL}Q zk@JPUFf(?$`N6v#E_#R2m#X5dAKZbNjytp=yp71pFqaCHY(fL(L13j!i?Cmf+dc0WbF8j|03uNk!n!3;y%x{&M>NXN!(?b3i3# z(&34m@_m{pUCI7(EjAQ{>}I=y%AUi~#aFH3k!ej_VturO3*-hD9~6DJ{`MhWHsowhx9@O)}ajEizPN=S0c|*mAjKC}0E(+cAe5Hj{VSQt>D)fK2#2W~(aeX4!UNUu z=rt4dhDiCfRbLhDph!W1cSCEVld$DL|C)!s0BG_bt&4IF*Hx7ZIn@g}>Bi&TTkRBN z40zc2dbC`Ns+5gM5l#;mzegoGP4#s-VdI}!=t7wDAUgU-v{hyYHmB%zg)-+#7nms4 z&B`tBlLYRg4bwUT|4r?qJaN?db+E`(Fs+@$6esKiVLN(UAFcFVw@Hd7U;1ur2q_;z z-6yZ!X!ZK=!0lbaE|S)LY$)&eO>{Rg{>cH9h_Tjc1o2x1t_KczHg#>-E08At1iOIU zdb%H(EQJDQe~XC?mNeWXql*B%5GO;|8Syml>KqDfps(z>czvU9+Y7m>5u0P$w#OJ& z8<0Vx1NZyN4`|ibjndO%Vm?CIUzd@t5wwIzwGLsyOR-@LLa5Ah(oMMZFn#4&=)8kU9$?roD^XJ| z8~#9ZMLs72UgsbQ0RxT|WK3UKeVnvz(Y{sBcCugEEm5pp^~ z&&AblH(zns=fT(E-g3>!>o`YHes5`Zw|s}?Ez^rSYHW~ccDQje896J)L#O)$T%x9e z*oUkp!EpT%x_H9;{SLjT4DEyoyX-3QOO2Shh>y0W35?JXF0YW(%t*A4pW6qR#{*oA zn&Wci>}i@OxCRL?sFz(^WhGTt>g(A=!8w6eD?f%ebsNs#*6cv7UdR}%ZKnynr z`7givNEit$B_S$)caYVD!{mALC2fXFtpZ;cUfwtl_NcNghp}1fib2%oCS+Tm2;*r5 z@@E}wac@&q*f$Mh`t@@-$=OzHfrUxdAWkm`4b;|^f`@!_r{WjTYpyUIN_I|ZNsAlP zsoA;u$BEd{D8x8DeV|BaeAc>=fg(F~;W&#(;bEBZOnF}!OD5FWXeMw4&R*Jnq#M3T z2y0M0e9 z2mR-A)>j}CpJW@E4`Od@;5 z^0LgLMehqV!mmteDR2HDnVig!H^63t^;(w0w37({nf>w(aSBA+wlC z89n*%c`L@%keB6$61DQo2m)$x;~aZ=8Pjb|qv&*!+q-$7Dw4O^R<}XGxuN?T!XLAv zFavL4J9;YTSS+ZW=JDTZ^=4FhWwp8C;LIq!yw|c}W@Y$o1X!DIhdxG4p|P|Hly9(^ z?WU#;km2S0{x1~!K;6Nvj0Y)85wb>W2x}?;M*rSH8g4qxzg1E@GkPbz%8UNG%J1`Q zf6bQo+3Ca?rFuZ~Fb|9-q9e}n>UL9iT1}+R7r`zt9K0`=Ur|?Hq#Wci*4UFpca~~@ z@~wPi(xN%?pF?zSULqr8ch0Zo9X5o{dxLUyME*76c3QIAZ=ak|oOBu}BRty`c};ku z+-&8r@iQfnDt0`Z&ZScCp8QIS$8PrE@U7}7+C=Zi953pE>l?I=oM>J6TjY*WF^J%p zzr3NK`=ffBe_U;AFkRFec2wyy=anNA+HHrOpP?~G7_ZUhN!g)sH{(V_~A&{cm*K1Qezsy*|;EZ@n&+?kl3fwVOpV6s97V>8)Ibs0{4mH(0*)B$@or4UcJeu|m zeI#-Qs$Q-PK^*eW1&KKiCbPrRT$Cv)D z!Q9!3G8DQ9hkEFKwfodv+pk4#5Si1qj+MOoVschf-dk2q{xs~<^#4-${Xq^k5oGP} zS=i{=9LDC$q-y>Czj@EribKMCRgT`r^X|M)Kx<+6^7 zz6WlG%sRRTOok(BGS@KmX>n+1F-s89tItlB8Tat1-`(21)xD>u3_$1-tWIZC zD9&GRxZ_;;cDRX;YY$cG50sw?T$>FJET$uY(p_r}YF9+e%*Ic4pM5!WnR12QM4>lO z$qW0vcW>`4mJFTDNjC~kF`|F!wQT+RqV+6#YAuMq43_03&#QvqHr3F=4}I-D(F2yE z+lJK!dn(W!5kaX6YG%1%$v>liM$fu%iW^3FOb08;<#o+$!83T*)igbiH}g)Z&vp-` zJPCgvbZ>lb9}(S?xP2+4xTTuee{d-Tjv}Fwg739S3ZC3mwC(c|Y+E7Eja^3Kh>M8!M~-(_$fVzTAQ{S6!U-KV zdaRw|q0cX03Nch$CAX=o&^5a%4S#7aUclD7_UJWPvCWrt3T_;0tZTL10dITG8O<+7 z2P-1_H=mv3(pD>Z1**l>In)bolFx6@S#9xpH}oIn49%$Q+tKWx(C>c{m(OTYRF%=Z z@`2z(_0sZv_^V~16DnOl2){hE)fO4+EWHrK1dl@f*9zg2ov%9-2J5REDpJdbJ2hi32l?!%-q@LphD;En#@5Z?^5Y7taSM<0wzB72FRa)RLg~Mz@5V}R}l`k zQ0ugzeF-8(n#F@CqwqMM(7n z)7iN}iv504SxZ}>%&8HtVR30AGR)=>TJBfo$F@xtWaoAl0#Vd-M7yLm-;=$cFDUbaQAWa=0;O<@)>-x|RBU zR$6DjTn<>R@}~a=&&7#*kqamKk+DfvNW7!*7e<%uOr1kSc>igti4cfDyH855jCs;TV@|>1ooD!J>+f6N+Y`VdK+H-6YlL zua|53Pkv){1KPy+Wd z-O^{1SJ|iEoGz+<=v#WsWs3HbN#1r$H(4#!btjNzIWva(%0vDv0 z>{t^)UT(k4G?@!X01tI7#GZ&x5FRXW;5xFdIijh$uhV~6PYM{R3I@Fv_+25rX?zPt zE{HYz0L*$U;iYtzQRl#n9r;&QsUULQVr*Q$RGyw$GC=w%(Fy{5^A3XWUaKr)2BneM zNS$0Dz{e%1iVa~V0SoZ4IcVnHm@t)V#Nz-RlkHF~=aHyi@d^yzCf|t{AEagMb{GAl zQ|h}RHspt7&%2zgufdL^&#+tpFZ)$4FeC##Hl~#q&U?bkDtfEP*u%q09WZ^mw;<_& zFN6-+I9Wk!iKt~m2d!FmIkH)iJJv%qYHIj-pSmR5|o3H6vuVS#Inz)5Wz zx{j557OHexezH8l%y95B`w;MLRfmFSJaew!tqNP@FIOLQG0K;gvwT0t`dY+IcAtJ3 zdAad*EZxe&G<2i}b6=g;@bZao={7w?ZXdfrURHE-WfY4JPpvM)s)Arck~xN5mF`Lk z!mPq+-8`0_f&%7QaPxJV$8k~LHW}4Y^x@Z5yY-WL8yOpLFwqe;QaSpL<1k6Vx=#hH7Zp9pxGIs8KD)r!(%*o4 zzr8WA3}?!t3OCZ>1@D*NRX3wIVl7bs&;{x|=Z|HfOF|DpPMSEUFH=QF5`+08NbKjNib zdhm7nL3)3v9|UA+?KNQLzd7XZ@Hr*uGWykqqkQqQHyDf~zkr$qehocTK$HtogvX2b z1a$gDt!6RwDkPzFK$6h>Pbg3l@6_Af0-05Ig!ixnf(_kJ#XHG2>`0!;_GKdPFs%t& zg$15>db4}SkD*3Y0{R>}Vef_$HdS7*T6+vQ=gbNTdu=QbU|58+7asoPK zi1Wcygn~J?3U(7QMp&U=T&wd0`nA3z<^j`IK{2$sd>YCT(zZnz0&~gL*y2L1%Nz)d z-o!$T!cVn|{iB|Ev=I@q2t3%jP^&2P10_EutZs}3Afim~WIR)|`Q2z%0l7VMzkKgx zWIa*9{0GkBqG3#|@vn05PD?7S$M%Esgpv`2OlmC@#TNJMY(u>gV^;7@)BT(Swx+2z zHkh3YuV&-~6f^Apj{-lw>lVWMt_44lS&sJDjVE!fBWF3I2g@+Bt=WYQ0dm*_I%?yw zt-74!CG<5p?;xOJRZL7$OkUr(uBlG?+9r-=7{jl1dnH!|Iv+{tNdm*YQ&XeA=fN$# zp71xMn_QHM#E&jV$s#?>2Q%*mOvClV&$97zEOFxB;jui+C!NzZ!2=BUiO3NkG;(JG zKGv3MSwF7!#T zogKmB3fgaw*1?8kLmj-5bU!3<<@A%MV71C-we@aio*)a4`H5$ahw8LFV1SZ{u9aq?@r>N%hA5V6+SAKwln8bahc2Xh0}K)Os7~bH+i*(AKDBJunw+ zJWxvBc0*TVBbcQ<=<1>t6j33;;&=Tpn|Yznp5gpMnzV4N$uf}PY`|p&ffbU<2+f&2 zv)hU*PDduR61?jx9(2k62wgMSzVRM%Xl7mQ_GRJ%uPl>sqIulBbtG{-aLtdwBj!~H zy2h99Z+V%2)#?6J3UC=)-CF>uyqm|T2SFY(?MZdo6%9H>1SwCYW{54L?-8de1wzJQR;j;ykc^~jKMcs!tGT|F3nfSlxi!cYQEu2E#d#m+UBss#pdTaG$ZfUsmW*3INMUDdrea~(Igl2i z7rp3@#Xe=MEoM(gZ60eS;q57>0lZmN3RK72=lmVjFFB?F&h2_cR!fw>lba{$x$!5m zJkn6}1KS!TPkXG)Tn?4ec9$k}9InXGDB`(&N$yB!{8-o$k2kE<9kS!H#6vL2kdl^i z2kpY0GOlRjnyX|{dUs6Ymeo)a{iD|)v0G2$r;J|C;OzDT7hj9sSX=;Uo-`eN#3tn^vp*QP9;F|uqH|tNwVocVoX3egYN{fj9JHCIg+AY(Pt)*ay7~Oxt zOZG^B22%^lZWS8|FnX;(R@(onB!A}NK;J{tR|iM0ecM>$CFuR|E9RbKoBobXZ%9*u z6>!hZR}TAxx#x)3W^ff>PkR>To}+Lr0qW*r>3y}KiI}=c___*HH~(b$^8o<1n#w{q z2oD?N>MR8Ou(d;Pld&8nmjPghZOXVu4{kx0WUC3M)nJoJ@52~k3P}9cG(!elHdH2i zCh4lQ+(x(CI|8$Qms~Lg(p;4wL$Qj(^+tcQxrS$i{~E#_6sHd>W&&XZzg($Bt8TlGbt(^^ryB-!Kgky)vSLkF?1FuUB35_BFXTMvj?s%a_Q061 ztJx?n$PZd=!j4y&3eHO)L|u1rcc?_Ll%vD-F4kex2n+DWd5n^M96|f@%tOV@x)>qx zlm79A%e(v~jCU^xtZYN5u0=>DU2A1Tordqrs;TKuw`)-2<~hE6@uZfD>UQ@D1CJHcEbLJT zo`*SCeNelh!*HE-Yf!=hfgdGG2JL=XruHe_BlHS+Bk(0PFI2i=9DK(6UdZ*2TDP@W zH~Yr5gswTF{!Km3>IuDw+T$Bnq*Duy$vRPPjEW|})jf4!d>T+ss-?4%+-@I-O6e}5 z<0GNjD67tfOL11Ue>M)pCOI>m4UIgfXQW8+8|Oh zsku<6gLZwHlzDP)_HzPpEqx{KBRqKR?S@-XNgWl>h+X`V$gc5soYNa0vEHgf&<{sAqD z?OjJ1?WkjVAVzO*Y-X{{sCSp)p4|=^c?afSU$U}GF+Y1Gcsy6gQPZlYkJ8X>ul;x8VZCl(b)xBZ`Ftcd%llu6 ze2*Vnthw&wj{hk|w)`SRHu>0jZ{Hl4CEq0*(Rk}vhf(h~!;7oL-WPCgwa30@55K|n z)od+<{gB_b%h2$-K9H>C*2r|oRY?d+MvJU0n7COvnz%8LIj3NLiG`2t42z;A#rn*^ zz~s7Xxu0di*+t%`Qb|TB5n-1ueuClU*jWV$LtB#xj0 z%y4x7DT-w{FAZxFZ27V2z$rkF{jiZApcmf3CLGIfI=743Ev}ReG2hgY>DQ><+h`%A zvd=N4y_MC>ES~s9>`#$0NQ=!AD) zR@30s{N(aOI3X_Cf>{IWHSF`UR;jKuDswkKG}tY{M~8kes{5E>gofb{OGjVvQj__z z31eEg3z75uvGlrD>jHPHM^`U$)Jq6p;}SMmh=M6ZyyUNNBJo(sPSk^xP0El3<{HN~ zRFFYI7n4TXOGjpx{-iYAF?(*MuKirb+P+Jc+P=|#)SAgO@Hl8Fv^HGDe&&95)7%Ts zXj>Ap;Pv|(_cZr$Ex)&Eug}voxTjYVHLO0!AN-z#p~fC8*fw|vpvL+-!?&)Ky0^G{ z{J*18vfhRvst5b8kg;C^ofcO&O1uwo9SzqTqhXQG-$cp-7s!kwq>r3MeC&V28gqX0 zJ8Nv{P7tcHenmmOCl)M*G$zkAOq<#|g@rj_qvHxRSzA~Tz|?nNQj>HR?Ncj_K1+ws zAb%Qa0?aKicJiMqn;NP^7jYh(a^`LwqXvY9@C`<76-&|pvp0PUBj6N=0SLyLPw3Gu zRFducQYND&2Ltn~ItP@<#bIGnqfb&K*m!2v{w%&LG1z{gQg^U@wBn!ta{n_+XW*+2 zf#>4sXIp^C2aa6TbAe8rR!rIj-xueNGCrb|jS2;_zq;z6Z9I{*w9ut2_{0=^aY z-Jv838kNsw8qHnF1A+#2N(X|Y7CD_%i&((`NT#Hr69vvaTK6Dw>~|H=4S4x5i~p5l zdNm5>Zk?kB*q;rSmCFC^iUf0^i5r8M-;qtaa`|xAIVIxE#6*ApM-tYM&=M%Fj5Q?q ziL+r12@?l*|F4ELS3)UZ(cgwNnHR&g*a&zVDh=BD70#YXL3TzrmnN6?IWi9Fm#l7A zLcP4m;b^U^i?Vc$qh^g0X=ww+>&q`f^JHVrcC7n~0!?pwzD%P0+^YyG>tu_Ql{QpW z3h7}L01bnSB(VyB`srY|#LA!eR~Qz^ z6!#In0$^n0axLL2oq)i{h3JPwywkN+2_B2theogkNPiS|0w(Uc6|-T1Opk8a!it}| z=mw7jtcW>oUh}aZ(pq5F!$@c^9?1M@5v_y5S<>F9UN9kaCgNc`id5*qxc#M|!eVT3 zA?4xG^rb-jFZFaqA_a7i+Ui`D_{V~!sJQh+Rd zu7~v;2phI^QCA$2_d6qOh5i{(uekN%^~1=U7mn&27H>ib^p#dMp~ z4ixUpc7gSgmZ>QC$B7^a8IQYStdyUe#e~02D8EZQhNN*Cs(?r>`Zc7PmckYKv9GLs zU*2uZ&k#@fu2v;JRY}d zZC^c%@u5MO%|jElC%Gaih%;%!5sa2LLfwIVFOB#PUI=zMsLPm~l;Gm(IGR}Iv|b66 z*CdOTwsksJ@!DM;jK`}h=~`YtPwacXO!Lo*Iuy_2`D5xd7$Qa<@7y6Uati^0Y-gh|?MDE{xmUU_vJ%Bk z-4?9F#jL;Q+$WkXu)L?NU0+9HWIDRun)X1_@QVhzIEZ%%Gzuoq0V5GR*NpfH z%2&d!=vQn>v=41L0x)B_Z$FI8gla%Gcy~B{#mjXZ-s~UkKzsq4dhBs)Ztbr$H?L?>L%QRw!Q>aur^GUPweGi$1k;LI_sVE1fvj*c>J>=-QAkH?ZlwveLlI**QHv%GEviP zvQlmR4iNkPOskGYi1m^G^g8obvC2ZVlOE6u6tvYsu4^Jfsy5argOQ!BJP()XCi#97 zk?7)ohujYxob&&U8bYdjLp|nvx88k|^F6tFRWJ{o_muK&0xt9B?G3RoHBvn3#5z9Ru&pYdLS-o5Rn|QD%{LIL`MNz#vH<3 z8tC#MaYWPWP>QPkOXuF*e{sgLE{vazW$GAq*!I4K;b8j;76bPPI*7bY6jQ9d(@Jiubii`$=uj;gBJ`3$|&!L z$<5tUCj=KR;)u%e`XgsOdshjv)4NwYoo%G18^v8cEa;t$ZqBUri&8tC&oC$392){D?vp-Aq^NHNGv5B={s(!7H)SXcxK12~>^Ux}#-tsvfS*!blR|j)AkJr-7 zYTh>>K6zHl%@j!R*Xw_e^=;OLIbpBKR+&eQNn^V4wxpeG!gxE8(KcDC4_q{OA3AHP zZw5e-lJ+yX9Z3haxQEre%sCmZ49ZVedfqma-1geiyan!g1&FA+DO+vbw?fy5`jZjC zVuA)CHpqo2DRd=najFU_uRMN&X}~a`m^Vvlp<6L4Ac@U)01nyE*uI#?R1U*Z?D{!7 zA{L8*|Vw_wH%PK?-3*vfwqbZ#zwp^6P*uCDoVzHHrd zMNquCW+CwXZKv^$`yEoMC1{GASlwT&^#sg`jm|`bs;wNy(1vYA2dZnc zm6JgM1mm`aA-~eeIA23#zlbEr23JV#S(Y%ejPSj}5(hWQvz|AEpB+|1}+3In`|#j(@zD^DvOTs@A#m zv+BBB6j{C^c8u2E7Mm*0gAHoHJ)3%Sw|?=Nqk4Az7@;LR>!zjtoil8|fcfVmlbM>3 zZHl1X$JRrhck*sfaL?Z*4baDF;wBpNQiMK>>0ecaT>lDWCfA?wCy)P=KeX8}l$Kj= z7ut(QVTtMZp<^z~gffcaCFsr>-<#k3#mYis|6m_E*2w+# z4-jCH_N2$J_rG1)r)X!o&HrG}OeiRpE=Wj8kB*P2nNw{CKxa4Du9|DB%i}DYN(2t1ydcaDH-RH3j{YUiIH2HJkSP#LU>wo!gq;Ze^rpfv7V3UgKVhQf> zi({uG-1FuX81H7Lfzr~*f%&{T8dE(TwsusK!2~m5GdXBt*-UpaE)H z;X5{_2{sV&$!xq90}GSpj}5^4aSDb_I~E_>1YfZ(=)n_)muEynxah?*V80GF?VhP# z5S*4bcouq>Vk_eQ$3yaLQA#{ITta1ahFl!(?nj(Nn#u zJ&Kgb0jzeMFF_?IC70Slk5@Gg^CvuY(*2+nX z>%&?(7p(jdd(2QnaxJ#_>_Frrt7421|N|9L}zCivmb^(a05FQdWeVnWXQKhFna zl(e_3L3Ge#Gx@UE1eAa8m>*?XGxM?RJ(wP{E|fpT=kZ~Sqf;kxMtMMAFW4N6KxVwP zLXORnH|XnnSO3z>SX5^EQ|I2Yb615`*SSl1|7^au`}tAgtM41HwS&H7 z8_nF~c1LI{9)sBuk4tq!#*<*UEIwI+2|p_SS?ggSL1HSjV=`RgO{VoNn~M&_^ZD4& zVl#{r6z#d+f5(Q<=b29}ty~rDnF5ACMD-^IN+Z!7d;D(Jb1=s7M%PS{bAMk!iQ4ft zxuT5|aRhpdto2OLV+}Le3BM%zKEZ~9ph_-<%TW15d2Bnlr~@D7?8tqMJ*V%YFLolj zGNb``42aFlZ$#T|N*T5^yImyWEOY+|Jw!>HMKI$kba_f|`9ULy&M9Xl#G&1t#T#{B5CPC4VJJHmAqzQ3uXg}V+yLX3W94O<8l+)FC zqX7jvo^NGOqK^%=vlm(VTx`0c`+89m&tLVG8vE15VMD^xbB|Sp>*$}b$G&+N-t5{m zX^Vl>#1sLe=nr^6Bm6`T8;@tLk2A1cH}_m;Bmk+g(sZG)roEAX32WMWiZo1;jKT0I zW5U|LDB_CS*x&_{6bz)6^al|GsZCE<&bV>8gJBbh!G?16HGrv+O#C&Peps!hVIZ|Z z9ok7D9-B3G<^a02Jstz8IXn}Z^RcbD9_WTEZ0#vxqsze%o~UCOHG*>=hEXG(JcTWy zF1D&_EBoNnPY8SZt(bjFaE8@Ncx7z9#d`z!*Z6&s?M%%)i$jtF=s8P63A{U^JscVE z+JeM{i-wp1M4YuIuV$VkgxTE-*X#=@S`&YTH@8c5$+{BrXsc>Gp%72%+6a)UDur0z@f6D>sVfXd0-)}^R-Wrth4KYV6Hfcv@% zGg#~5XqCFXx$QFL8oOiq7Y5F4qJc^b%u||O-2<707sGLP)KK8cR2gChf<+sx?NlVL zwBJXS6+97J{n2edb@>i9>)31qi?>=iK@B^WTur1jqW>Ya`OW3N0Qh3r%+&B|l(wZ= zq3s}Tw^zk@^KLI9W=MNWn7e;u^8}!d5%T;uNQk}tyZ0AI>iTdhP2;!=RLlanmn#YiW>$~^2@9o;xfnnLa2H7zz+gCbY2i6A* zN?{4b8;&0N)JnjxY+9}=Lzr)?B7_$YLN<**1+R+8d4;T# z-&n|ZRmE41mAX~2bYQyl@~zjF$ayE^ZIr=2;!v{uRRQztWd>(v!y2 ze(*fKbV*E1Q#4aG`*o(qEeg4x-jYx5XM;i1pbvehe~viyatf$UOk>Ib3e8)!ySV8k z>-;7yWW4li5LG(KUe3+Ai941MQ%Oi*_u#IDXa~#i zh4zc`HlM;oqc^(m4BLmX-++`91@CJ-Y3Xd7#BI)IJ*QT2$o-;LIoi_+&WAv@?ZazS zOPDwR1iHf_pfm-~-G3QsHRod>Lc#h!q%1EE3+i@VIL#~mRP+vySN-U zgF3cb6un3~NVh07&@*RKxeb?m^{wTm%_raN5FIJ7`E(NoEYkCBC-@<2&MM2THX944 z=8CKiH@1Ig!sf2>)uh+bU2(x*xzwJZgzf;uwEA1&%ZylmQkAE!FAM_t?hE}JF235n zoy|c^R3CrmG3hD&$dBTT_9d?Sm>3zKGAfSsLsBqpX*#ivhG|PhbTzfh`Ts^)lE1q& zc@Y>(pBAO?!n_+r$6H(H|Kh5m;GN`!qhr$ubjWW7@c2%zM7;qXAHdy$T$el_R~ zo4>M1{VkRtjh|IUpBTaC>2Lk^;0YVFAJs}lZ%|v}eYBt4%F#T=F@l^)OqbvQ@uf{M z)F{>uck?GwiWHt}l#X)|+y;@UnQH`|rgElTij4f&(ZUydaG_Yfp7K_i?WEzPb)r;J zwSkDFN1?=RR*up~56dsy2=Gc$@XX_0RX>v=-s5M|lJ)ND(k{z!IajpF zWyjmC)!%$XA(3y~O2g_X`&0Buv!4l5D~T!66HgbhK|#}PNXkgj0d~NVEFo%0eh7a_ zeBD}62ywv_9b2_utHlqZ?&A2v0jPXx4MWaoxY5>W#_$Fr{gkqqvYYIU+Ia8m=N*@I zlV;!Um;CW0o&T~<+@tQkiQ9C0M>5)V& z4rM*CYThdqD{mQ}Rm)xwbMf$c=Cr@im4#pkC69&j32Ve1v>u$8Cwo86zBV_he&ZTt zFod)P+r=U^<_XgXoP@Ldo1J> zVbLfx1@hm(WUswvu12wuy%d(15EAmSA!vP>U;pf=5caPnP+`bB(!;-*my!ozYNBOo zyOz#m9r^-aQTjeq^T@R`>WcU}?UCLLZA=F^*VA7u8O2=qlweohKzRWkvu17Ay{x^*~> z0ulz+eE#r0@5qU)qu5Zq3c#qirh9_nVMl^GA_9&~;a*B_C?a#cjQ?)rC$sRV7#P0H zIQfj;3^E_O6er?2alH(SEUWBim7dtooW=sbqBd@nVp)0@nmU%by7t20`MdW4|+cwjnw_Oqd`j*FjBOXJ0T2noz3mAGB;q9gYo z$9emOTLnr)!_;OyHr>rX?DXNGN=J)V7~^}37omPz@&&D>L?tG@ld8mQeV<3If<7l- z8molm!}>~l@bTSI(=xtqnZ8!)@~M!DwGh{0z6Any5lFMF=;+24*Zvhe_JrDp@%{>Z zoGULGEsx)1B(C(DAKj9~8D&`1kk?|D)oH7?+`qR>uTdBUmPE^hyk3XH$cq_c5_zo` z;j%0dLCV{&dAT%ozeV000?g#sTx{`z?*^s0mb3etF5IUXvu+(-vmBeosuZM^J%!N; z;t!sNrRhq9IFVXjH_kU~Yu~U@zz=HEoJWbbJ0DLdH^PPz-)EceQYwCzSwmmlmqI~y zn*}B784Y8`@4_z!t{ye{PAp=%&A1e?IG*-lLrA!`cH{1&3H=6g*bp8^U_)VR0b@%$ zlJU`~IG$$f;BqK5gX0QPAkYQ-l7$fb$%Dwdg!UQoAge-m$Z;GD$Ed>s+Je>o?KSdL>#Js4s=4|LZ|3;rEGU`5e4^4AyCCk&_MNtr3cnNYCav)^?#g>+O|Nf{5Y;mLP zn_ZFZCu&bhQt}RuKy1cchpkh}P)*bm{*g^6(m!WqLRGijEzEH&0xw0^6+?&5k-

SyW(s(v!-j&=<7Jh{am#TntSv{2E5Zw>Em;UZ;T;l1mh9y})yEszXmLCF#C zj~zwCE1QBlf1bbJ<#G!_A+1%;I!p+cx7Ag&wP zEr@+kjM7F`-GonX9^UlV=b7it4~FYIS(SBdy1g+(R~;^j(?c*p|l z>?N*|2}D~aBF-A-ZSI6muyFMDR$DZ5-x@?q2tf-j!;Slz2ddU@&g(8nt_xBml^bJ2c$KoA+%P+T>gnL3 zD$`lYnmb@tOWLY}S@b@@tGyz0l0sa~b$z+Fp!d-)pB|TYGqRRAqMt&8ou(+Cg z(@p$}>o$z)E-sZC2<@J{(H@XM+_&p#$yTZzm=gL7Z0rs4-FsWO<^1_S5b|$fbk<8N zclmIo*h&Ms)O=ZGIWRF_x1>r6JuTH|i)&?m4e)l;U5kukZ?L9}64*s(?wE{8TAz zJ5f63{o_jmNm#}IMdJ!f;`883lgkHd8m^{o&2WXXv12Gzy~_wpZEL$J+6!~U^(2C^ zCA+W(?7g0rgRR}8{`)%jf}x;{oTwBxWHr20%#qiOaZLCqr;z)OPi}gm5Ew5FzKeV_FIDM$3 z2Q@JlDsWZ5{D8oZ=1eX0X{w9&f!u^ve=irOl(HTPfpnXUfoZtsQ{yx@aATn~P1c?p`QQ3qf4ot=OgZ_m z)`t@+u45P8Ds8VKD26)GAC7U@xHyLTjBiVww@sGKHO&nS$8~!j_v))cdPr)Ney+PW z%_;P}#Z-H5Sk6p8d0r1f-F_=czg_>z>3Z3wfOTe{?w1_!F;(}m*jc{#(PxApU+Hp| ztTvnT#f7NReeCs*>%oiK(FXCn!bneEvl(ft052-ztr3jsR6~wOguzwfv*HlQwU(KP zv)p)j0)Zo=6_p`UK1^CFMh2qB09gz(X(^(G$x3ds_870^g6`?cSqz^y8o%|-#5PWy3$T4r=J)f?j@x!#)fdb;ih^D4Lgs6{s9g@~CX_HAd=nUQS93M0FSikYX$ z$E6GwDGWVrJK3AOLw`~I9;CSuQMWn;H|!*AJ(B5q1wMgSJcWy}C*^eLk_nN8yM@8b zd%yAn7-D68Xv&NZmqRu-l#~S4gV{S>1^aI+XSSz?ouU)3$#1kinjP283So5j>AG;) zTy$0oYC5QAo-S*#m?-9`QF6?i*y)cAMZ`z7)BP#Y#2Fi!T(RZRJD(^h_eCH7Ts5!x z_@+VcwlBO}S7Sr4kynV1=ROE~C|7&Ius%UL@o9w6-W4?~j7OjZ%vuW8O6zp&|SB8U9pcWaw>^K+>ZxNAf(; z>b9`G{F(w|S;6AhR5uS(fU+dgRDE8(l zZcJ(a{&7Ql(e#pYO&7s%@VXL6ga{67dh17FvWi{nIyRKFPB43Ek6(jXV3wrtDqiUb zhbv@ba5XPywcvqbbP1Fn;AT?ciYYPb*6C|LaHH4VWX?mG`}kRFpbUJ z%(SwSmnUvZkTQ<3X7#~CZiV5RJj1P3!T9kJl~M5@L-}RBIaZ=BbWQ6aO=4eh0{jH+ zDM!(AMdfv&d+ATd=q~7_-KLfQLfYdbxz_uRc=oJqU9cnLZBwY=&Pj6(YAE zVnaEf14hB@52?j!$8TZ(h;x}H;4H4T8TDb0U|!w1#XMmLoGkya{$~e!^amwLa{k(x zw`<|4KfNDnVc_6D_1u+)9sFmjNZ83~-9ge^MglM7A(_H=wBf$uqAwW_u_0F0U_*(? z2cw8LS;WBudF@vT*iJ>l!y3xA*jrJr#2<`Wszr8Ob|OU4Y~yM&ar(rm{@!fVwVn$vlcw9hhiXo zgbA(7*2fK?dv#~C8$rq z-hP4miYuAu;(^He%6!gW%;4I+ zIN*l}8qO9iuRM+)wOLcob+NbfdS~)V$OdR)o)DNtM#hN{#71+4#MGg&Q?9B zr0%Y4|5bztVDU96c`bW8*jYtdN5Qcn-|CT$?!2#fVtl$n_W<^UPh;V6x^s{UN}BjE zc)$Gse|h(4a(%E4P1Ce3aOCwO8gz;;!2=xxC%7b0q4;}r!Vb^OFgL!H!1m7gPNInt zN3NGc`-95)c#YdtCN@nUV=SV<5O}BjX;e}e$MqxFP=?<8vbB{ z4ejN(t2L^Z!%L)nc644MR8S`?+h#Q0umV}#j1SL~T|)5`Omqx2Nxihf`SR7{J? zk6J&6N0=*)S5e5km53Hz-RQ(9#}BA@hhA48`ij(pmxdzBD8W)g+n&ptd&oVbM+vV6 zKuStp*mdE|x%NlR!Sd19nu9MUx4AY#;tjot8Q4_lvh|JZKozkUdp9X`gsE?WC=kpU1M!H-4D}|q*AHL#t2F&(X zDXKnjZ_I`aI#rJMmW=y1wwSw+^drv*^Q~i3d8`VCSj=~H*{2PJMF&i;Yx@+Ho7~g~ zLt1!DrDy*eL)V+kEsWE2z1osEAGxm-li?ekn$@I7$=HmP7rX#t0P@hUxHd=-@EzOz z*9UIYYmkTo*wALZpp=m`xWg*)o^df4Dzg${r?pJ3pxeo=P1V_t!LYr#o}+H-r`S>4 z?3LHiHc7LME zW}QGfgtd$Mol6H(giEY&$5AciL8UWzbI4u6TSGaw9fFI7>W1V`N%%9QPG&vSIUsO7 z9|I`S$0^VnMf66G8a6~=FJE)WvVA6x3g19$ToJE}U1zG}6u-_?Dihp26Lc~0#VAZ^ z>v?h5!^!W8&NwmM6}@B^HAcYhcGM1Ru3y4>%?Kc*ey%t^xi|`(A?iCBXLMY4u2F-A zcxq_yHaC%bX{O!=K46Id1L0%I2KB?f@Ar3vq>P5Xo+QfiVe_r~kkVV{v4z+NAkMBe_o^QZr<9#W6= zkdE;XtVI4?7(dwQRRtoTq&9Bmj8>@LY9{INc@lj)jA)r_=r}MN3X$F( z868}CKHd{q{Z-xzwwUi==iR&L@H%}9_61Ty>IfLrHICdLt3>`dC)ohS%XxE2z7A6| z{ap%k><)eM*1Qv2UG4nuANAk-CMT#VOrT$Ib3+&0>GNKJ`pGZy$whiSb)nhhQ=+?@MbJyxo&LrDvY4hFU{7 z13D#^^nM)dWtKt3(_^QUt195(kFhjN%2}cJ2e0*K6A)U-ecJCxJyo>lJb{`or1Nyx znw7ty>QLCbS@(ad$B>qbhn^Vw@|I%EpD3=VO<7@icBhz%knjoLjvC;Hzwe7p>WgeJ zy%{qRs$fWqKSUhfRy14Tn*qkHfA9`Ytv4Do29r~zbW(F&n?S}kPr*e?!K^NpU$|&T z^^!$W3xyVmVH+=I&-!I$#Ks5bVxy$YGS{L!tsYcq^qG|~t*pnXZ+%{J*Fv?CCV>pz zZCQfmBUJg}vsER@b~n=prVz`y@C)6X_XNsSZp1?*TxgfQpKMjZvK{FWC5MN{F=YZ53)EI?9-F`b;i{UxycO77?AT7p0hn=6Bhv_EO)qeqeGW z{!eA0)b5*Lh}V||AN^T+PcO$jZ+oFA$Lzz&mWrwYj>X#|q_&weQqEp^F_kw^{IH#Q zmSSR6De!gKx)qi;K2?`q@LNi%*1izDWHOF5003|i9Y^0lfhd;xq)L?8G(;u9ANF+< zs}lRPwry~X*}=Dkoe$_dj~ZX?4?&rbZ?%#Flq_jB3HXfKXg^|FejB;_fVBdsMyGj? zK1Ijqz$U7KjX{>e>FMmPW~wxbG+ zvqJ8r9eoCcYC`$D3NYah&K}}_C(c%%r0dDdEnQQgi`NUIv)ffIQ-i*gX5BnpZyJL# zLk!S!%PO$4XEWAMIJ1V2*veJJe^_GPm3HN-Jz=Dw-mgv1bNI2{9@y_)2eQ%B)vq*6 zHmcaf5i;GC=n^(9Gc-L^f0nE>JFd;YF2A&e={ytMAKv&S>xt!Al8`7iGz8e-j6{$E zH5V`YHwCF~oAtIH1d};iAxu3t|IFT#cZ8`{2W<}8cz?oDhh$f9KU^r7A&pS>8%mct z!QZVqJR}ONIF+8QP>?N(bfvBc+*D@N{4ENi9^zy)*w;PrLVoLb8Sd)Z`>4!td~<|w zbW?nZlDV(>*c0eg@S+i0awaakm);e(TqwBtyq-}mZBcM`R$tYYRx5ygSRl9n``ZgSy3jz8;Dvv-OFbVri@ z0HTup`vZE1_kda9n*0B?_uWxZXX&<;2r8l^K~X@I41y@A7$_A)3z3{8HZ2AWAPRzn zs?t^oW&sfq5JhrSR1m1L8&FY65>yb7AUR3S_k?n0dR|Y@yf<&|A9vleUEo?x*;M_i z&hLEt+k1aM1FW*V9GG9g+5EeNzHNEtb7HKX|5#GJSx%y0#-1zyl7GSM&`5MT8JQSe zp4jfGeHnLNpGQ>6UJigKTwueh6T6l-wYCAsoX`J7be^i9eO^KP%5&K(N;gNI*+{OK z2f+v}p*hFhv{@W5e@&Ndr(fJyXanPECcs)p$RNGf7m`Lppnq=jD6HX^-raLD_f@Av zyhEcORQqapM1Igo4@HA1G%|2Z0U4ig-3>J@(aPD8h$qv@az+$#?F~oll6%}etT$FZ zBF%9ZWSLz;i)Vn7cZP>RyN+xvE9@@aOiylOx&ovl4BRjdraM_rON zV8Z(Jw-nRfkslM_5 z@$M=-YEVdvk2sCPe$~qp6;TIw&&-6hmq4LCJ~tkzp0Wu!oZ`yrKmwU+Tdl`WXH06_ zkNuu6YZN7Gc{HY5&PXJf*1hl1Wrw2DyV0#zFm7{ENyX=+qpaFdR^4a+IlQr%94Bw} zAlmws#b1p3D>G#r+=O_Y*%kUnO>PZyB81$X#SmR3Fq0X;NM$Fm6HE+e?Wb)`36_mR z-EUC`h$}qTvFlvof-d@2c%3JIZVuYwVp59P11UUCcD(0t*|w>k$3T=)(JjM0jz*eT zT=}vLy)zya4Ltn%repzIrGAHntRwGEE8FqLF=5xHX-gT!R47bwI!k%IOEXLSnG$>s z9V$Rw5)l%GN(dni#|?xnI<6PRnu0CizsXsQI1Tiq;f@Yh#Ogm`n&4w%Wq}F^KV|&& z|4zwb((#Y0Swm2&!j8GJUHrTz6?ZJ=|0Nj?&$eCfc~sm!$p%2Y>241IpIGNI z0FHTpirxo_TV`=ngi!wlF5;=UoJ!kyzt~&?AS=ev63=!zJfNY)z&|NwlxU_Hnv~fO zW4#kP9k1)Ta^XV~6&;y`%8@w9WG(_(%s+fg_4ngYp=CJ1n}Pm=>Cey7a`9*uE-{=1 z{G&gwh6*%p&d@6rmdIi$6hat$ZDKL!ViG_5O;Tn@Qfz5NwVNzZD5i z$k-U6I)JIE4W8ZI>1a1uKA_!4ub{|CUDE!grh_0Y4Z zFK3s0#KSC(`ip>H=BTu+STXw85T|;^0DZ*MFyvj7stLg!?`(;` z7R_Iu?>qMW%iHhc$KnCx91nhn^bxiG2BeP|4YfWF{eCMt=JMu-X3Lm6cP?7Eb^ViX z{u{9uop4@{8_-8Y`v;IdBJB@(3iK=U-(e9r8-H6>mW;~R5N2eoiE&~AW&Jmoch%tw zLXL(45V2cM;5rfyk+6VKbM)C|@WLf@0#zI9C^iXcsA0EKNn+AS3PzK#X72OT9<_- z13V^gO#ztLCuAt0O1lG-fj~Ua&XKY}bo%GQ2g2~lM!LDv!6e=uEHYgk!zpXG#lnQ-p9)|@@??1Z($Gn$w zcxFuZvS0M0yjc?7XCk)Da)dcEc>5-9M7dohqnuf$9wTK~*FVHC+&0mA%Wzv_KOM&% zunhIk)k#?HV13XEpvt!aC%o|X;7ZiJXg{Qq^!yg`tz8CmF}$yN%K&)lHK8tsuoqBC zqlKToYhB=npq9UZx)|n#NvMk;v^jiQ#C4KZI98Por zAeCxGdu;3GqdeyUAP=$b%)Os>bt#ZE?kryO1t5QN3d<;~m73q-djT7_P)Szi5QK%pS@b827-Y3}6iaJ4 zk|p)S*kyEvfb>j9rPSau^52JA{@k3z{T_}Z=?Bq?983$o4>?rhno~yqvOSJXVF1n} zc)w_}q^iYp8FZ4fpwl@t4<0g_V9BC;=#S8?(y5>W421&KF(hIr;4?}NOW;(t&W_4y zs|qafNjo8OBDv3-Gc7W`frV;P)*)2We)32kc0#YBvEN(5C1D8mi$VZO`ShM4x%bfw z!|82I;5DZ0mDHIYjeBFp401Cd7M9}VxJ9jEeG z5BK8g3s&3XK_h0q?#P%2;sOq^S6;O#Kxc60>#O}8vW4S#OA2M{%q^b>ZWV;tSdR?E ztKocWvFR(Yr+!bGyB*`a9XBjsERmMB|gP}AI!RWn7SJ9q@da?w5Ljlrj) znE*@7ifmeZyrVlC8-~?+*CQRr&2^r-MoOB2>9pY&ypw45%KFxlJp%IEyiphe6(y`P z^P;TQ;;_W(K!Pf2Y^9F22bRdhR=#GXo%t~RXu^QdTOk4F?fso#M`_6NTRP=LV~$_@ z=!&L+oZs5{qsg{sp9A3z(d@Ye0BM<=#y*!w%DbNT08Hs*03||2z^?UI4lcH-pP16;y`T2KzOaBhD2CiolIi;t5ap`fvLI^K42=VD@5_$N73{zxt$6k(r zO|$S(yOYcTbEid{G7sIgQt(7}28Yj2W(-C?+|9yzFPzNZ#Hc^NGtc77;|#^ME#~)< zWHgJ0ByeL!e5wys4H24aiKqXJ^@)_)^xwt$jGPw}Z8(aitx&rLAn(JRe+6J+&IN|m z9?M(K+o4*BC~zO*`UgY2Y~qjt z%rfn{X)ue7=MlP(gw?F43+2C7JSiPwfYUJvqc?l`S z>!``nG6M2H>L`>)1TdXIft!MRWCq;M_!W1Y>33Lx@(5L}_nX$=mS3w#+Y{ud|E@!r zTzs)B{?RU9)xx07erQ<>T2SI*8@p+g_-1d*UR=~AStH>K-(tw|{1i>hya2(-yb58v z_8^`lBDc@to>zO$ms2m=JsnNk9+en`G7N442o6AsXU=zp6;KUzm_KNv566ItE60k~vbASoU5MHOv88jk=WdB@26yC(4igtx5sdaL zs)S~bPgx;pQq9?;&t3i@T{JXtkqd%a^)lhSF%OXp{6-8XCdA~>79>6-E|Pf}FpaQ@QR#APL_c4oq28}o6TP-aR zNKjT(0U)-yw7EE|6ko9W@Z!-K10JV$5CmYRP#wAZaegz7y)&MhhBut+KTh^&9)GM_Fr8lxB`-^DFNiLr++oilqdXwD1 z(vtSlN1ua~8Smyz)!ETV)ZD|sHBn+?P6RtkjgAe${YOn)os8q&&5%#e}+;PR-pHINWzftn!wr1alnKo#Kr>hds zDM?S>!_#YSrK9VNz6^V|1pP(#^Z$X3K_t+h`HBLn#(}g5Fg8ReEgG8RS3CT3d2!6b zAMqWMbQI;!hotSdccdwKFyW!%EfiK$ZQD}0jU=0|qI;#|*-Gibn zS+mRV`9Z05FAGm=*giYUxzzzhR9D~>o=U`n&+vEQ%jE&mlEH0?po-|A3%=RNCPl!b z-732JIfL2KS$;T`$3t5c?a$UvE&0mJP#npoi6Kn&j1|Age={Nq2}F&Bc!O2W80o2b zY*R+Ub@!?F>CNDo7;vWXq1tYvWAx0nDZf#+&$j-FymoTlP%Gqwh{w<&v(3wF?|K9D z)Cr?Vm0&OBas)C#?BPnt1QEOMLMDiWXy*p%BRa&0Cr6D;_Fpm3&2S(d5{Gb{9)>a^ zo<92mAR}`2_I+v!Af&d=8!$l!r22M4CWzYK4P`|9!}JCyBVymb4`oFAPiZg5rzFP9 zRgeiHq#Hvfh^Rud0Zb4VXC#0l)&bvWH%C-&33VS}fy~TE%T8$kCWxyf8-jtU23{O4 zK=eg7e(@jNx3c+h93JD&=9o3d zr{J=5SbF9U*_Jmkn1bWtB&)RXy~D(TVE86`?{RPL!F>x49>RIg|&tfD;dmS3mtQEV$ z{P#2!A14!x>IRpZ5qkM#uW4hcLTicgNna{l1h*+fq_PV7kK1Xp(7Ag@gCU;#r4-Hb zO8XVf_!E~UKf@xH{MmK%RJ53Q$d(|UROmM}CU6~6UEK-k%$2*K%80o1D+HsC8>);Lfsf@% zqc+;u$Cuv+Ao6N01uCP}8Af!VGV+shwuLGqYWz4<88IEp01UnDtq%aK&X{0-Bi~&_ zP%(#KTem}%5tA?maK>?V10;qF-j5-|`WE?PTpfTVy|EOoeG+mUX2{+5sQFI-#KWc4 zKxrg8VABnhMk*Zl-Y;ka(ik;`!>e3!#afMT$y)H#}r3{qIddhE z{02IGp@AJ;Ce6V1?(?UEpV71j15+&RTYjk~ETMj-#qd0S1qjBOK!ABM6Suw@MraeG z$Niee0wu4vg#b`mUA_U3ruuqcJnNTGYiecOBJU$XR%zoiU>^AuuuA-Q`6ByI6_ibE zqsDCqU`}s=tkRR)1fgO>G3}qW#K@ZgW{C;ySpJPm3?JSpJZc^GyDRf_+ic0VnDzQqIK_(eifEr1dC_Y$0bL=aJ{5!R=C{jaWvw z>4O?k!Sm<^&9(vc@0H=kkvUp-wVBNz~?CD!+=~mD= zCG>ItqzX(yk}aTt->F_k)~h-!Ved-C!0GO@8{WG{G*ZeXdIu|?TeM^p|8(UyMq(hq zyz4A=y7MfpY4l#*nG=mf{^-rVeFK}=ahIUfhAP?>Y&=khZyz`kGsDff4`_nZjrU;AilBKlULB@$*EP5<%xT^l!>y-?9 zh!*HLD3xv*%KMO#NitacQm5MBnXaSk!Q~b*4e5LQ>f}fpJfdrjdPUpuaifTew+&hH zjFkT-!S`vui3T)f*~Yo zXuIX4z{lGesy{i9+^WVC291AqeDhJ}=i8UL_TM}1@w8gsXHFpqNQh!5$Ij#2PPf#$ z>=U)Q=5z-$BLVtc?fUKNXHNDt*B4PwCO2CYrM8Z552?9~xa*rQqdvAw()yM1(}(>H z7TpE!s16l2=mI~%SI8zzHV3zZswGuP7coUjz_6wskK3%**qoEG(JtKQD*?BQ(DgWWm@Nd^x3{#)nZwYU=YW&X2+c`-E>So zeR2XHqtp0wiX_g*7ADFYDA4Q+)<~C&_>=^CZm5|F6gg!c7?W8LK|?RJ@ds&(s`r2B zM6(_`^gdeSw#Wfa^q%$C9g%VmM+|{}NOB`Eoy{;d#{lh6k}?yT&cZGdpy}-CA__E} zsj-OAbk&(8&{sN9x`KPCJN4a;enG zkfNOk5LxeJsFZ0Ui)siFUX&D&xXn$_#}Cs#$K74CaU21R5CI+bvz>1?#3ep6TAXD2Yd?WD-HU&90nJ_ z>Do?#UxGy3r8f%sGzN;CHV>q$9hQ%!r10i849^7SYwD=UlTMs$_>N?kvt46ylgR}$ za8#-e%N5UHr$QF#f**I`l41Z-u@;2;BKJ(5aokWc^^1*b_bls;s$&|2LiZU-a}NZ& ztdJt1=I?+q0EdXLhfqzSLS~>v$k`Ak ze^2^c!iH3ET{u>Cr4XGxh8458&nPlJ`~e0eo94vs;VbN-rMwoFu_$af?qs+HU%-ia z-GM9|5l<9CIXCBQE85ZTVwHd3z)t*nCr-6vck$a$N6s)~TVuu1#VNVX#`UZYy1?lm ze=l<p6I;w5fs`8S?$obI^Y-!r5NyBBw{k1CUTd`R5ik$44-shOxu)ezMmQ!`wg3r}+~LTUyuOTiCo38*#zMT!%bt zyJm)9mc!%&ke}kpWqi|^qS>6CrbCsrKk9^pK=B0+521F|lgT07#Ly%iHIv5CPpHRX zsmdJBty86iCp}m*ZdA*^*3I;cq_mn~x(1fL-$)0?F;-qzd$7o150$U-7H&0Rxs|D) zx2XT6A;h(7R>v)M4SN(hF>Y%I&q);03O%7;(t}N(4i%Ux7#j9s69x`)(j_9(eOsvELzsHL-nFsb1tYAd7(~ zhK}PPUMrh`2s;`JOIJoT?-(}i(K&}8p@<-8$=WQnutw(aPfx&=h-)!RJ|6!G9v|ZTDAV% zGIM0CA@QN<)h`*)dS-UTuNHpL4S3FPIjb~`6~$~^by&}JPmII0e$+1C8>fje&^Or_ ze5a+?ARhSk%q=VqgNmQoghn!a#?ncj{uN(XeHETHL;COcg{?&7w2X$Q(lSHjiBliI z345=JpK)tmjvj^6Etb8=PA`+3@qyD8b%r%LqJ8EcN^x%fE?ee*aq)#2R4Uv2BR)pz50gh`7~EqzqXf zl45TKSP>32FyH8=Lo;Z^XDh+86Qa8D8JdB3>(x9?oZRwP)_|U{LoU4z|AmZie2?<_SlqsNAlwfd;Y}3@wAlC@ z{lRS}0(au|!#S}AOkW4eL66>e%lv4|URFd@aBe>nCD?ej_&-BU-Gr0Q=)OtDa=&ct zGVEYY>kwLQ0zv2(grGt>%X&Hq%31n_w58rE0L*(`{SJTvMbb?N1hkJSBiC`dq3!L$2v*Nqta&u zxc??EMW=DgMm`&)s|67;0y3+0=Ls9T80Q5MXngWID)g7gxBXjElt|S)yLS5^>49{e2>xcHAKQI8zz8Gx0GPmaZ#@p%;O@&3UaHovQ^yq)Q zO<1n6&BeD$%u3x87Vb=oLpJx0k5o3$f$Qf+Y{Kk}lD8Kk^U&;6XAdz5b2#iLAD{E3--2BA2D|v52Ti(GoL}&e&KYa z-|A$e=u|5r4#(8|?kk`JVqva=SeT(7u`sU+FY9gpBHjkTO8Ugs0RYnx=5(m~C~a|446qZiAuU zRC*fc=qSAs@z~tFQ_4M$Gs+kre+AgVwt5A?!{NPKqk6G$*KlOsg{Zo%zuSjx1K(FF=f*xG2y5eMyN~f`YXVsyi z8|;1MPtq0{=2*eRl>+r(C81e%PL7Xp8$qMKL}&XusvVMk1-CZvpx071y}{5UKYDVs zG1-676J!JuPs2Ga3A3~2C6a%W(_;LOa#}LH4iA<$uZ($Ta!}#1%eKZ0HUJ?&OUy&9 zOA6$(h!KpG5$I9)R@3yg6@VfvA__p}UbpbzvUe2W-1&Az`aYE&gMH0kio|!1>;p*i z-}-h3M3d87sEA0}$&%Z=dh=>>Aee?n2&O?$bN1)#w+~eB zYf(*CwrLa>u^2RJwMJ=VMO+w>D%d zsAWZW`DlCevOaGU_4x5lbrJhFYE|GGF}N-^fP=?1Jdb*5!}>x;$HN&b9I!{F6>yxe zF0POiKffhbb~oR6VRv2Mm?!6l(IZ^XWr5sG^w%F>s{dLrqk8O56$@zh|I@$}_;381 zHkSYSzsAGy#@i(&#V2^t`QyizJ#&%;R~BY?>V3aPAP{6u>sp;Y@Y88$t)JbU!8d}s zn!1{bn!3u`4QA@3l$aM|%y8h8LlG;{tH%c*i--j literal 95057 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 a5BUH4FDSA)*#y3Tuv2fhZq8PxQ~wL+^)++= diff --git a/open-grants/ipfs-rust/media/phase-1-1-gantt.png b/open-grants/ipfs-rust/media/phase-1-1-gantt.png index 5d7d66c62f1aa1fcbc3b5e36a15425e12fe27a46..180e6274ac3f4a1183f5a1928ec76318787335de 100644 GIT binary patch literal 73786 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%0Aqi<3aoZzAe( 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 z zR+oXIPDu(ur{N@(0a|-7k|q)PmvSmXXX0O!=Iw`(0ZPY#FMzeR_mOEsFrx-oONtKF z=4qZCt<5ttn-x+m2J!=VZjapo6%geH^8?8C>ag4^hOzW4`;W;1QNK$`4+RGL+g{Gr z&xO^~0xy6!`Fj8!G zdFjfra%d+;;;EbkRE3eF*r=#n>SJl%W#r|&ECcU_ROljB6-0tAVi^)-O8{Acq&~*b z$fKOi<75%(Oi?wI%h_BiP&b&E2i9RA{0aDIgTqOK0sSETl(}&cZ*x zsaV~J5De}k1cP}W^bGoOE1?`8Uw)zocgB_Rm+-k)mg(N+@eM~>MJtqS+dy!n@b8m{ zco-uowWZGL<$fDmG34B`t7B z9bi_DocGZXvtlV*h^CIsYFUXGAZZ-r?skE7aSW6X$L1QutXKfAO02o?+EcX7en+G+ zqv|HatYpQjmFq!?PrIMKJ-wy;muavV2Sy=g zMgBV@Fi{9T7~ngNyWqveHb!85x6&9_nZF7?MivV@H zT72rdlkGX0VdVI`dS8ir5UaXek$z)QLB;a~?WJA@;E`qqm_N`{Sk5P5p;dPgOLJyd1lj4#p`3Sm4 zeT~0`c3<;T9-*<}yrB`SRvb~7IrT1#A37jsW&Wt&lz_We!bd$7{O(Tugq@-9wL=69 zT&BM7)aRezD)@7-Z~g=SeAI^h-_o(rOa2o~?f>88)CE9%Ha;FZ)D+p%GorwY{sm}Q zy{%Ix(q$sdnz)FD8GLfGnUG+acz)>+WYfPU)Ht%@C7cec8(55{`w2pnWs#_7mzmVY}HQNU~}w$ E0Gp4=Bme*a diff --git a/open-grants/ipfs-rust/media/phase-1-2-gantt.png b/open-grants/ipfs-rust/media/phase-1-2-gantt.png new file mode 100644 index 0000000000000000000000000000000000000000..0182c1854860dd27c3fd9ef6ab7168770f6143c8 GIT binary patch literal 70886 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 literal 0 HcmV?d00001 From 52232fd6516a6d08db698eee62ea86f7dba5f7ad Mon Sep 17 00:00:00 2001 From: Mark Henderson Date: Tue, 18 Feb 2020 08:10:13 -0500 Subject: [PATCH 031/113] Updating hours --- open-grants/ipfs-rust/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/open-grants/ipfs-rust/README.md b/open-grants/ipfs-rust/README.md index 5ee13b3d..f9ada305 100644 --- a/open-grants/ipfs-rust/README.md +++ b/open-grants/ipfs-rust/README.md @@ -411,7 +411,7 @@ _All figures are estimates._ | | Number of Hours | Hourly Rate | Total (Euros) | Total (USD) | | --- | ---- | ---- | ---- | --- | -| Software Development and Project Management | 160 hours | 120€ | 19,200€ | $20808.58 | +| Software Development and Project Management | 122 hours | 120€ | 14,640€ | $15866.54 | ### Phase 1.2: Bitswap and Remaining HTTP Endpoints @@ -442,7 +442,7 @@ _All figures are estimates._ | | Number of Hours | Hourly Rate | Total (Euros) | Total (USD) | | --- | ---- | ---- | ---- | --- | -| Software Development and Project Management | 152 hours | 120€ | 18,240€ | $19,768.15 | +| Software Development and Project Management | 112 hours | 120€ | 13,440€ | $14566.00 | ### Phase 2 and Onward From 9220eede4fb47fd3da8ddb729405c9be5c3d71a2 Mon Sep 17 00:00:00 2001 From: Jessica Schilling Date: Tue, 18 Feb 2020 11:46:55 -0500 Subject: [PATCH 032/113] Update README.md Added cross-link to top level of grant program --- rfps/README.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/rfps/README.md b/rfps/README.md index 47d470b1..c23d8417 100644 --- a/rfps/README.md +++ b/rfps/README.md @@ -17,7 +17,7 @@ You're a developer or development team that can complete the work described in a 1. Select an open RFP from [this list](.). 2. [Open an issue](https://github.com/protocol/ipfs-grants/issues/new?assignees=&labels=&template=rfp-proposal.md&title=RFP+Proposal%3A+%3CYour+Project+Title%3E) with your proposal, following the template. Be sure to tag the original poster of the RFP to let them know about your proposal. -## How To Create RFP +## How To Create an RFP ### Intended Audience You're an organization looking to solicit technical contributions for a well-defined project. You have the necessary technical or product expertise to specify the work, evaluate proposals, and determine the correctness of the result. @@ -37,3 +37,6 @@ You're interested in accelerating the development of a specific feature, or perh Simply add your additional pledge to the document describing the RFP (under "Support and Funding"), or add it in comments of the PR if it is not yet merged. It may also be a good idea to add invoicing/payment information for your organization to [FUNDING](../FUNDING.md) to make the disbursement process easier. + +## Note +RFPs are just one aspect of the IPFS project's overall grant program. Check out the top level of the [IPFS Grant Platform repo](https://github.com/ipfs/devgrants) to see the big picture. From 09336172a37be2a744c753c822750c8dba8a17ee Mon Sep 17 00:00:00 2001 From: Jessica Schilling Date: Tue, 18 Feb 2020 11:47:32 -0500 Subject: [PATCH 033/113] Update README.md Added cross-link to top level of repo --- open-grants/README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/open-grants/README.md b/open-grants/README.md index 5295126c..76c3271a 100644 --- a/open-grants/README.md +++ b/open-grants/README.md @@ -23,3 +23,6 @@ Proposals that do not receive funding within 3 months of submission will be arch ## Cadence Grants are currently evaluated for acceptance and funding on a rolling basis. We may switch to quarterly cohorts depending on the application volume. + +## Note +RFPs are just one aspect of the IPFS project's overall grant program. Check out the top level of the [IPFS Grant Platform repo](https://github.com/ipfs/devgrants) to see the big picture. From d37681ab228382a67f2a1af1615dd3c92d589922 Mon Sep 17 00:00:00 2001 From: Jessica Schilling Date: Tue, 18 Feb 2020 11:48:02 -0500 Subject: [PATCH 034/113] Update MICROGRANTS.md Added cross-link to top of dev grants repo --- MICROGRANTS.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/MICROGRANTS.md b/MICROGRANTS.md index ecbb8b13..cc18aaa4 100644 --- a/MICROGRANTS.md +++ b/MICROGRANTS.md @@ -29,3 +29,6 @@ The grants are currently awarded on a rolling basis, though we may switch to fix ## Support The grant fund is contributed by [Protocol Labs](https://protocol.ai/) on a quarterly basis. + +## Note +RFPs are just one aspect of the IPFS project's overall grant program. Check out the top level of the [IPFS Grant Platform repo](https://github.com/ipfs/devgrants) to see the big picture. From 0a09013fe9636b51059f48878349aeee59dd5b3b Mon Sep 17 00:00:00 2001 From: Jessica Schilling Date: Tue, 18 Feb 2020 11:50:19 -0500 Subject: [PATCH 035/113] Update BOUNTIES.md Added cross-link to top level of repo --- BOUNTIES.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/BOUNTIES.md b/BOUNTIES.md index 9628680a..d0eb3c1b 100644 --- a/BOUNTIES.md +++ b/BOUNTIES.md @@ -21,3 +21,6 @@ To propose a bounty simply tag your issue in the "Open Bounties" column on the [ ## Support and Payments Bounties are paid out by the originating party. + +## Note +RFPs are just one aspect of the IPFS project's overall grant program. Check out the top level of the [IPFS Grant Platform repo](https://github.com/ipfs/devgrants) to see the big picture. From b4404c5d4985957b0bfab5bc9a261ab2062bc680 Mon Sep 17 00:00:00 2001 From: Jessica Schilling Date: Tue, 18 Feb 2020 11:51:54 -0500 Subject: [PATCH 036/113] Update README.md Typo --- open-grants/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/open-grants/README.md b/open-grants/README.md index 76c3271a..dca19a79 100644 --- a/open-grants/README.md +++ b/open-grants/README.md @@ -25,4 +25,4 @@ Proposals that do not receive funding within 3 months of submission will be arch Grants are currently evaluated for acceptance and funding on a rolling basis. We may switch to quarterly cohorts depending on the application volume. ## Note -RFPs are just one aspect of the IPFS project's overall grant program. Check out the top level of the [IPFS Grant Platform repo](https://github.com/ipfs/devgrants) to see the big picture. +Open grants are just one aspect of the IPFS project's overall grant program. Check out the top level of the [IPFS Grant Platform repo](https://github.com/ipfs/devgrants) to see the big picture. From 180f688fae73bffc258f6a17848f0f6802b3133b Mon Sep 17 00:00:00 2001 From: Jessica Schilling Date: Tue, 18 Feb 2020 11:52:39 -0500 Subject: [PATCH 037/113] Update BOUNTIES.md Typo --- BOUNTIES.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/BOUNTIES.md b/BOUNTIES.md index d0eb3c1b..bc43be78 100644 --- a/BOUNTIES.md +++ b/BOUNTIES.md @@ -23,4 +23,4 @@ To propose a bounty simply tag your issue in the "Open Bounties" column on the [ Bounties are paid out by the originating party. ## Note -RFPs are just one aspect of the IPFS project's overall grant program. Check out the top level of the [IPFS Grant Platform repo](https://github.com/ipfs/devgrants) to see the big picture. +Bounties are just one aspect of the IPFS project's overall grant program. Check out the top level of the [IPFS Grant Platform repo](https://github.com/ipfs/devgrants) to see the big picture. From af1640612deb2760a11b011a88ae0beb39e41fae Mon Sep 17 00:00:00 2001 From: Jessica Schilling Date: Tue, 18 Feb 2020 11:53:01 -0500 Subject: [PATCH 038/113] Update MICROGRANTS.md Typo --- MICROGRANTS.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/MICROGRANTS.md b/MICROGRANTS.md index cc18aaa4..4588a68b 100644 --- a/MICROGRANTS.md +++ b/MICROGRANTS.md @@ -31,4 +31,4 @@ The grants are currently awarded on a rolling basis, though we may switch to fix The grant fund is contributed by [Protocol Labs](https://protocol.ai/) on a quarterly basis. ## Note -RFPs are just one aspect of the IPFS project's overall grant program. Check out the top level of the [IPFS Grant Platform repo](https://github.com/ipfs/devgrants) to see the big picture. +Adoption migrogrants are just one aspect of the IPFS project's overall grant program. Check out the top level of the [IPFS Grant Platform repo](https://github.com/ipfs/devgrants) to see the big picture. From 681f66b1adb25ce5fffb15fc3056bb81e2780eb8 Mon Sep 17 00:00:00 2001 From: Jim Kosem Date: Thu, 27 Feb 2020 18:20:21 +0100 Subject: [PATCH 039/113] Updated new milestones and deliverables --- .../IPFS-mobile-design-research.md | 60 +++++++++---------- 1 file changed, 28 insertions(+), 32 deletions(-) diff --git a/targeted-grants/IPFS-mobile-design-research.md b/targeted-grants/IPFS-mobile-design-research.md index 1d16d3f6..9e5c2d5b 100644 --- a/targeted-grants/IPFS-mobile-design-research.md +++ b/targeted-grants/IPFS-mobile-design-research.md @@ -1,8 +1,7 @@ -# Open Grant Proposal: IPFS mobile design research +# Open Grant Proposal: `IPFS mobile design guidelines` **Name of Project:** -**Issuer:** @autonome **Proposer:** `jkosem` **Do you agree to open source all work you do on behalf of this RFP and dual-license under MIT and APACHE2 licenses?:** "Yes" @@ -11,55 +10,52 @@ Following on the far-reaching initial efforts to bring about mass adoption of IPFS by creating browser design guidelines to be brought to standards bodies and browser vendors, it is clear the guidelines work needs to be expanded to where it could achieve adoption quickest, on mobile. Smartphone use has eclipsed desktop, especialy in emerging markets, where IPFS stands to better address use cases, patterns and concerns around data sovereignty, offline applications and security. -This programme of work will be the first of two, including research and design phases. Both will include not just use of mobile browser but wider mobile sharing and receiving workflows of iOS and Android mobile operating systems. This will provide a foundational effort towards IPFS on mobile platforms, informing both IPFS feature prioritization and the ecosystem and community building on the protocol. +This programme of work will include the design phase to follow on from the preceding research phase. It will include not just the design of use of mobile browser but wider mobile sharing and receiving workflows of iOS and Android mobile operating systems. This will provide a foundational effort towards IPFS on mobile platforms, informing both IPFS feature prioritization and the ecosystem and community building on the protocol. ## Value -An evaluation of IPFS for mobile applications that is grounded in research and design will be the foundation for adoption at massive scale. By researching existing usage patterns and behaviors, we can identify where IPFS could have the most impact, accelerating and amplifying the efforts of application builders. +If the mobile design guidelines are not available, we risk application builders reinventing this design wheel over and over again, or shipping poorly designed IPFS-based products that don't meet user needs. This ultimately means less and less people would use IPFS. -Mobile is especially important to the wider distribution of IPFS and user base growth. IPFS could, with focused study on use cases and behaviours of mobile users for instance with sharing content and media, be an easier jump to using P2P in their daily lives. For instance, a solid and enjoyable IPFS mobile experience might allow perhaps skipping the desktop experience altogether for users coming to the platform. +The value of the IPFS Mobile Design Guidelines is taking the research and analysis, synthesising it and then providing actionable principles for the development and design communities to act on in bringing IPFS mobile experiences to the world in the most user-friendly way possible. The question of scope is constant in defining projects and areas of study. While the scope of this may initially be quite wide and shallow, this could be advantageous in setting up the groundwork for additional studies which would further refine thinking and recommendations as the field progresses. The value lies in making forays into the space, researching and designing that which has not been done to date, and creating a way to learn where to refine and redefine how IPFS is brought to more and more users. ## Deliverables -The deliverable is a repository and report of research and analysis to inform the IPFS Mobile Design Guidelines. The research contains a contextual examination of the technical, security and usability issues with IPFS use on mobile, an examination of the current mobile sharing and receiving features and patterns. After establishing the investigation space, there would follow the interviews and analysis to develop a design direction. This would include interviews with and examination of the work of firms already doing work in this space such as Berty Technologies and Textile. +The deliverable is a repository and report of use-cases, design guidelines and UX patterns. This design direction would then be explored through iconography, interface and interaction design as expressed through the design and production of graphic assets. These assets, in accessible graphical formats in a version tracked repository, will then help form the recommendations half of the public and open source report, showing and inspiring designers how to design for IPFS in a mobile world. ## Development Roadmap -The following is the two phase IPFS Mobile Design Guidelines plan. All of the research and design work is to be led or done by Jim Kosem with technical and project guidance and advice by Dietrich Ayala. +The following is the design phase of the IPFS Mobile Design Guidelines plan. All of the research and design work is to be led or done by Jim Kosem with technical and project guidance and advice by Dietrich Ayala. -**Phase 1: User research and analysis** +06 Apr 2020: Proposed date to start -- 3 Feb 2020: Proposed date to start -- 7 Feb 2020: Workhop, recruitment kick-off and audit -- 21 Feb 2020: Interviews concluded -- 28 Feb 2020: Analysis -- 3 Mar 2020: Estimated date to finish +17 Apr 2020: Preliminary designs -Detailed programme of work +24 Apr 2020: Design guidelines including design assets -- Kick-off workshop with Protocol Labs to help frame the research and highlight where and what to focus on -- Recruitment of experts for interviews, trying to include as many of the participants that were interviewed during the IPFS Browser Design Guidelines research focusing on the desktop browser -- Expert interviews and workshops to explore the problem space, relevant technology and areas and things to think about with mobile and IPFS. This would include current IPFS developers such as Berty and Textile to explore what works and what doesn’t. -- Interviews with mobile browser users to gain insights to current perceptions of browser capabilities, concerns, use patterns and issues within the context of IPFS and P2P in mobile. -- Review, survey and audit of existing mobile browser design in major mobile browsers -- Review of wider and additional contexts that affect mobile beyond the mobile browser, for example power, bandwidth and security -- Review, survey and audit of existing mobile sharing interaction patterns around publishing, sharing and receiving that would affect IPFS mobile scenarios in iOS and Android -- Coalescing of research materials and analysis to inform and inspire design the design phase +01 May 2020: Estimated date to finish -Deliverables - -- Survey review of existing interfaces, components and patterns -- Documentation of research in GitHub or other appropriate online repository -- Design strategy -- Research findings report to become part of the final report with the completion of the design phase -- Writing and publication of blog post summarising the project -- Presentation of the project at IPFS Weekly +- Week 14 + - Workshop with Protocol Labs to help translate the research into design and prioritise design efforts +- Week 15 + - Interaction and user experience design work to solve the researched issues, mapping out user flows, design patterns and use cases + - Interface design +- Week 16 + - (**deliverable**) Writing and publication of blog post introducing the project design +- Week 17 + - (**deliverable**) Designs including recommendations, iconographic, interaction and screen treaptments for IPFS in mobile browsers and mobile OS’s in graphic format in the final report as well as Sketch and PDF assets in the repository + - (**deliverable**) User experience flows in graphic format in the final report as well as Sketch and PDF assets in the repository +- Week 18 + - (**deliverable**) Design guidelines and component design to inform and help further development efforts in graphic format in the final report as well as Sketch and PDF assets in the repository + - (**deliverable**) Documentation in GitHub or other appropriate online repository including tracked versions of design assets + - (**deliverable**) Writing and publication of blog post summarising the project design + - (**deliverable**) Recommendations for further work + - (**deliverable**) Presentation of the project at IPFS Weekly ## Total Budget Requested -€12,980 EUR +€14,160 EUR No VAT charged (Reverse charge – VAT is not settled under Article 44 of Directive 2006/112/EC) @@ -79,7 +75,7 @@ As the project is research and design based, there is no need for software maint `Github repository provided by Protocol Labs to follow` ## Relevant Experience - + Jim is a designer with 20 years of experience researching, designing and helping build digital products and services for everyone from Intel, Samsung to the British Government Digital Services. He's currently working in helping make decentralisation usable. As co-author of the Protocol Labs IPFS Browser Design Guidelines, along with background in the blockchain space and extensive innovation and product experience, Jim is uniquely suited to help further IPFS's efforts in mass adoption. ## Team code repositories From b6a84433db6dfec477695dfd127f044fbdfa91b0 Mon Sep 17 00:00:00 2001 From: Jim Kosem Date: Thu, 27 Feb 2020 18:23:09 +0100 Subject: [PATCH 040/113] Updated with new milestones and deliverables --- .../IPFS-mobile-design-guidelines.md | 45 ++++++++++--------- 1 file changed, 24 insertions(+), 21 deletions(-) diff --git a/targeted-grants/IPFS-mobile-design-guidelines.md b/targeted-grants/IPFS-mobile-design-guidelines.md index 08a9f7af..9e5c2d5b 100644 --- a/targeted-grants/IPFS-mobile-design-guidelines.md +++ b/targeted-grants/IPFS-mobile-design-guidelines.md @@ -2,7 +2,6 @@ **Name of Project:** -**Issuer:** @autonome **Proposer:** `jkosem` **Do you agree to open source all work you do on behalf of this RFP and dual-license under MIT and APACHE2 licenses?:** "Yes" @@ -29,26 +28,30 @@ The deliverable is a repository and report of use-cases, design guidelines and U The following is the design phase of the IPFS Mobile Design Guidelines plan. All of the research and design work is to be led or done by Jim Kosem with technical and project guidance and advice by Dietrich Ayala. -04 Mar 2020: Proposed date to start -13 Mar 2020: Preliminary designs -20 Mar 2020: Design guidelines including design assets -03 Apr 2020: Estimated date to finish - -Programme of work: - -- Workshop with Protocol Labs to help translate the research into design and prioritise design efforts -- Interaction and user experience design work to solve the researched issues, mapping out user flows, design patterns and use cases -- Interface design - -Deliverables: - -- Designs including recommendations, iconographic, interaction and screen treatments for IPFS in mobile browsers and mobile OS’s in graphic format in the final report as well as Sketch and PDF assets in the repository -- User experience flows in graphic format in the final report as well as Sketch and PDF assets in the repository -- Design guidelines and component design to inform and help further development efforts in graphic format in the final report as well as Sketch and PDF assets in the repository -- Recommendations for further work -- Documentation in GitHub or other appropriate online repository including tracked versions of design assets -- Writing and publication of blog post summarising the project -- Presentation of the project at IPFS Weekly +06 Apr 2020: Proposed date to start + +17 Apr 2020: Preliminary designs + +24 Apr 2020: Design guidelines including design assets + +01 May 2020: Estimated date to finish + +- Week 14 + - Workshop with Protocol Labs to help translate the research into design and prioritise design efforts +- Week 15 + - Interaction and user experience design work to solve the researched issues, mapping out user flows, design patterns and use cases + - Interface design +- Week 16 + - (**deliverable**) Writing and publication of blog post introducing the project design +- Week 17 + - (**deliverable**) Designs including recommendations, iconographic, interaction and screen treaptments for IPFS in mobile browsers and mobile OS’s in graphic format in the final report as well as Sketch and PDF assets in the repository + - (**deliverable**) User experience flows in graphic format in the final report as well as Sketch and PDF assets in the repository +- Week 18 + - (**deliverable**) Design guidelines and component design to inform and help further development efforts in graphic format in the final report as well as Sketch and PDF assets in the repository + - (**deliverable**) Documentation in GitHub or other appropriate online repository including tracked versions of design assets + - (**deliverable**) Writing and publication of blog post summarising the project design + - (**deliverable**) Recommendations for further work + - (**deliverable**) Presentation of the project at IPFS Weekly ## Total Budget Requested From 949759c238db09527e96db0bc4f46c4cd6acc799 Mon Sep 17 00:00:00 2001 From: Jim Kosem Date: Fri, 28 Feb 2020 11:39:26 +0100 Subject: [PATCH 041/113] Updated milestones with pricing --- .../IPFS-mobile-design-research.md | 64 +++++++++++-------- 1 file changed, 36 insertions(+), 28 deletions(-) diff --git a/targeted-grants/IPFS-mobile-design-research.md b/targeted-grants/IPFS-mobile-design-research.md index 9e5c2d5b..6cf167ed 100644 --- a/targeted-grants/IPFS-mobile-design-research.md +++ b/targeted-grants/IPFS-mobile-design-research.md @@ -1,4 +1,4 @@ -# Open Grant Proposal: `IPFS mobile design guidelines` +# Open Grant Proposal: `IPFS mobile design research` **Name of Project:** @@ -8,54 +8,62 @@ # Project Description -Following on the far-reaching initial efforts to bring about mass adoption of IPFS by creating browser design guidelines to be brought to standards bodies and browser vendors, it is clear the guidelines work needs to be expanded to where it could achieve adoption quickest, on mobile. Smartphone use has eclipsed desktop, especialy in emerging markets, where IPFS stands to better address use cases, patterns and concerns around data sovereignty, offline applications and security. +Following on the far-reaching initial efforts to bring about mass adoption of IPFS by creating browser design guidelines to be brought to standards bodies and browser vendors, it is clear the guidelines work needs to be expanded to where it could achieve adoption quickest, on mobile. Smartphone use has eclipsed desktop, especially in emerging markets, where IPFS stands to better address use cases, patterns and concerns around data sovereignty, offline applications and security. -This programme of work will include the design phase to follow on from the preceding research phase. It will include not just the design of use of mobile browser but wider mobile sharing and receiving workflows of iOS and Android mobile operating systems. This will provide a foundational effort towards IPFS on mobile platforms, informing both IPFS feature prioritization and the ecosystem and community building on the protocol. +This programme of work will be the first of two, including research and design phases. Both will include not just use of mobile browser but wider mobile sharing and receiving workflows of iOS and Android mobile operating systems. This will provide a foundational effort towards IPFS on mobile platforms, informing both IPFS feature prioritization and the ecosystem and community building on the protocol. ## Value -If the mobile design guidelines are not available, we risk application builders reinventing this design wheel over and over again, or shipping poorly designed IPFS-based products that don't meet user needs. This ultimately means less and less people would use IPFS. +An evaluation of IPFS for mobile applications that is grounded in research and design will be the foundation for adoption at massive scale. By researching existing usage patterns and behaviors, we can identify where IPFS could have the most impact, accelerating and amplifying the efforts of application builders. -The value of the IPFS Mobile Design Guidelines is taking the research and analysis, synthesising it and then providing actionable principles for the development and design communities to act on in bringing IPFS mobile experiences to the world in the most user-friendly way possible. +Mobile is especially important to the wider distribution of IPFS and user base growth. IPFS could, with focused study on use cases and behaviours of mobile users for instance with sharing content and media, be an easier jump to using P2P in their daily lives. For instance, a solid and enjoyable IPFS mobile experience might allow perhaps skipping the desktop experience altogether for users coming to the platform. The question of scope is constant in defining projects and areas of study. While the scope of this may initially be quite wide and shallow, this could be advantageous in setting up the groundwork for additional studies which would further refine thinking and recommendations as the field progresses. The value lies in making forays into the space, researching and designing that which has not been done to date, and creating a way to learn where to refine and redefine how IPFS is brought to more and more users. ## Deliverables -The deliverable is a repository and report of use-cases, design guidelines and UX patterns. This design direction would then be explored through iconography, interface and interaction design as expressed through the design and production of graphic assets. These assets, in accessible graphical formats in a version tracked repository, will then help form the recommendations half of the public and open source report, showing and inspiring designers how to design for IPFS in a mobile world. +The deliverable is a repository and report of research and analysis to inform the IPFS Mobile Design Guidelines. The research contains a contextual examination of the technical, security and usability issues with IPFS use on mobile, an examination of the current mobile sharing and receiving features and patterns. After establishing the investigation space, there would follow the interviews and analysis to develop a design direction. This would include interviews with and examination of the work of firms already doing work in this space such as Berty Technologies and Textile. ## Development Roadmap -The following is the design phase of the IPFS Mobile Design Guidelines plan. All of the research and design work is to be led or done by Jim Kosem with technical and project guidance and advice by Dietrich Ayala. +The following is the two phase IPFS Mobile Design Guidelines plan. All of the research and design work is to be led or done by Jim Kosem with technical and project guidance and advice by Dietrich Ayala. -06 Apr 2020: Proposed date to start +**Phase 1: User research and analysis** -17 Apr 2020: Preliminary designs +26 Feb 2020: Proposed date to start -24 Apr 2020: Design guidelines including design assets +6 Mar 2020: Workshop, recruitment kick-off and audit (€4,720.00) -01 May 2020: Estimated date to finish +13 Mar 2020: Interviews started -- Week 14 - - Workshop with Protocol Labs to help translate the research into design and prioritise design efforts -- Week 15 - - Interaction and user experience design work to solve the researched issues, mapping out user flows, design patterns and use cases - - Interface design -- Week 16 - - (**deliverable**) Writing and publication of blog post introducing the project design -- Week 17 - - (**deliverable**) Designs including recommendations, iconographic, interaction and screen treaptments for IPFS in mobile browsers and mobile OS’s in graphic format in the final report as well as Sketch and PDF assets in the repository - - (**deliverable**) User experience flows in graphic format in the final report as well as Sketch and PDF assets in the repository -- Week 18 - - (**deliverable**) Design guidelines and component design to inform and help further development efforts in graphic format in the final report as well as Sketch and PDF assets in the repository - - (**deliverable**) Documentation in GitHub or other appropriate online repository including tracked versions of design assets - - (**deliverable**) Writing and publication of blog post summarising the project design - - (**deliverable**) Recommendations for further work +20 Mar 2020: Interviews concluded and analysis (€3,540.00) + +25 Mar 2020: Strategy, findings and recommendations - Estimated date to finish (€4,720.00) + +- Week 9 + - Review, survey and audit of existing mobile browser design in major mobile browsers + - Review of wider and additional contexts that affect mobile beyond the mobile browser, for example power, bandwidth and security +- Week 10 + - Kick-off workshop with Protocol Labs to help frame the research and highlight where and what to focus on + - Recruitment of experts for interviews, trying to include as many of the participants that were interviewed during the IPFS Browser Design Guidelines research focusing on the desktop browser +- Week 11 + - Expert interviews and workshops to explore the problem space, relevant technology and areas and things to think about with mobile and IPFS. This would include current IPFS developers such as Berty and Textile to explore what works and what doesn’t. + - (**deliverable**) Survey review of existing interfaces, components and patterns + - (**deliverable**) Writing and publication of blog post introducing the project research +- Week 12 + - Review, survey and audit of existing mobile sharing interaction patterns around publishing, sharing and receiving that would affect IPFS mobile scenarios in iOS and Android + - Interviews with mobile browser users to gain insights to current perceptions of browser capabilities, concerns, use patterns and issues within the context of IPFS and P2P in mobile. +- Week 13 + - Coalescing of research materials and analysis to inform and inspire design the design phase + - (**deliverable**) Documentation of research in GitHub or other appropriate online repository + - (**deliverable**) Design strategy + - (**deliverable**) Research findings report to become part of the final report with the completion of the design phase + - (**deliverable**) Writing and publication of blog post summarising the project research - (**deliverable**) Presentation of the project at IPFS Weekly ## Total Budget Requested -€14,160 EUR +€12,980 EUR No VAT charged (Reverse charge – VAT is not settled under Article 44 of Directive 2006/112/EC) @@ -75,7 +83,7 @@ As the project is research and design based, there is no need for software maint `Github repository provided by Protocol Labs to follow` ## Relevant Experience - + Jim is a designer with 20 years of experience researching, designing and helping build digital products and services for everyone from Intel, Samsung to the British Government Digital Services. He's currently working in helping make decentralisation usable. As co-author of the Protocol Labs IPFS Browser Design Guidelines, along with background in the blockchain space and extensive innovation and product experience, Jim is uniquely suited to help further IPFS's efforts in mass adoption. ## Team code repositories From afdfacdaa18a17969b80f7e44ccc6af58f92c96f Mon Sep 17 00:00:00 2001 From: Jim Kosem Date: Fri, 28 Feb 2020 11:52:54 +0100 Subject: [PATCH 042/113] Updated with milestones and prices --- targeted-grants/IPFS-mobile-design-guidelines.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/targeted-grants/IPFS-mobile-design-guidelines.md b/targeted-grants/IPFS-mobile-design-guidelines.md index 9e5c2d5b..16550e89 100644 --- a/targeted-grants/IPFS-mobile-design-guidelines.md +++ b/targeted-grants/IPFS-mobile-design-guidelines.md @@ -8,7 +8,7 @@ # Project Description -Following on the far-reaching initial efforts to bring about mass adoption of IPFS by creating browser design guidelines to be brought to standards bodies and browser vendors, it is clear the guidelines work needs to be expanded to where it could achieve adoption quickest, on mobile. Smartphone use has eclipsed desktop, especialy in emerging markets, where IPFS stands to better address use cases, patterns and concerns around data sovereignty, offline applications and security. +Following on the far-reaching initial efforts to bring about mass adoption of IPFS by creating browser design guidelines to be brought to standards bodies and browser vendors, it is clear the guidelines work needs to be expanded to where it could achieve adoption quickest, on mobile. Smartphone use has eclipsed desktop, especially in emerging markets, where IPFS stands to better address use cases, patterns and concerns around data sovereignty, offline applications and security. This programme of work will include the design phase to follow on from the preceding research phase. It will include not just the design of use of mobile browser but wider mobile sharing and receiving workflows of iOS and Android mobile operating systems. This will provide a foundational effort towards IPFS on mobile platforms, informing both IPFS feature prioritization and the ecosystem and community building on the protocol. @@ -32,9 +32,9 @@ The following is the design phase of the IPFS Mobile Design Guidelines plan. All 17 Apr 2020: Preliminary designs -24 Apr 2020: Design guidelines including design assets +24 Apr 2020: Design guidelines including design assets (€7,080.00) -01 May 2020: Estimated date to finish +01 May 2020: Estimated date to finish (€7,080.00) - Week 14 - Workshop with Protocol Labs to help translate the research into design and prioritise design efforts From c26dcb2bff719590ccfe29e20b729e1da9c1ed6c Mon Sep 17 00:00:00 2001 From: Marcin Rataj Date: Fri, 28 Feb 2020 23:32:57 +0100 Subject: [PATCH 043/113] Create protocol-handler-api-for-browser-extensions.md This is initial devgrant draft, not the final form. --- ...ocol-handler-api-for-browser-extensions.md | 190 ++++++++++++++++++ 1 file changed, 190 insertions(+) create mode 100644 targeted-grants/protocol-handler-api-for-browser-extensions.md diff --git a/targeted-grants/protocol-handler-api-for-browser-extensions.md b/targeted-grants/protocol-handler-api-for-browser-extensions.md new file mode 100644 index 00000000..64f3870a --- /dev/null +++ b/targeted-grants/protocol-handler-api-for-browser-extensions.md @@ -0,0 +1,190 @@ + +# Targeted Grant: `Native Protocol Handler API for Browser Extensions` + +**Issuer:** @lidel and @autonome + +## Project Description + +Browser extensions are unable to register handlers for URIs such as `ipfs://` + +This grant aims to create a new API that enables browser extension to register +a _native_ protocol handler capable of returning streaming responses without redirecting to a third party server. + + +## Value + +**Decentralization:** a generic Protocol Handler API could be used by IPFS and other protocols +such as [Dat](https://en.wikipedia.org/wiki/Dat_(software)) and [Secure Scuttlebutt](https://en.wikipedia.org/wiki/Secure_Scuttlebutt). + +**Local and Offline:** browser extension developers could create more powerful extensions +running locally without the need for third party localhost apps or web services +for out of band processing and workarounds. Bringing back some of possibilities +that went away when Mozilla deprecated XUL-based extension ecosystem, +but doing so within a well-defined, Origin-based security sandbox. + +**IPFS:** native protocol handler API would enable [IPFS Companion](https://github.com/ipfs/ipfs-companion) browser extension +to return data fetched from IPFS network without the need for running a local HTTP Gateway. +It would provide same addressing and Origin isolation with embedded js-ipfs +as with go-ipfs running on localhost. Origin would not be tied to HTTP transport, +but based purely on the root [CID](https://github.com/ipld/cid), +enabling seamless transition between IPFS backends +while leveraging integrity guarantees of content addressing. + + +## Deliverables + +- Vendor-agnostic API specification +- Chromium/Blink implementation + +## Recommended Team + +[Igalia](https://www.igalia.com/) is an open source consultancy specialized +in the development of innovative projects and solutions, including the web platform. + +They are experienced contributors to major browser engines familiar with both codebases +and standarization processes. One of most prominent success stories is [CSS Grid](https://www.igalia.com/2017/04/04/Shipping-CSS-Grid-Layout-in-major-browsers.html), +which they championed and implemented in Blink and WebKit. + +On the IPFS side grant will be supported by @lidel and @autonome. + +## Detailed Requirements & Constraints + +This grant tries to build on top of what is already possible, +pushing web platform and browser extensions forward. + +Below we describe the current state of the platform and prior art +around protocol handlers in browser extensions. + +Finally, we describe what is missing and in separate section list +acceptance criteria for this grant. + +### Prior art: Web API for registering redirect-based handlers + +A generic Web API for registering custom protocol handler exists +([`navigator.registerProtocolHandler`](https://developer.mozilla.org/en-US/docs/Web/API/Navigator/registerProtocolHandler)), +but it is heavily limited. + +```js +navigator.registerProtocolHandler('web+ipfs', + 'https://example.com/?uri=%s', + 'IPFS handler') +``` + +Above example: + +- Works only when executed on matching Origin + - User needs to be on `example.com` to registration to work + - Displays user prompt, asking for confirmation if a handler should be registered +- Requires unknown protocols names to be prefixed with `web+` ([MDN](https://developer.mozilla.org/en-US/docs/Web/API/Navigator/registerProtocolHandler#Permitted_schemes)) + - Firefox whitelisted `ipfs://` ([bug 1428446](https://bugzilla.mozilla.org/show_bug.cgi?id=1428446)) + - Chromium requires prefix `web+ipfs://` ([bug 651311](https://bugs.chromium.org/p/chromium/issues/detail?id=651311), [intent-to-implement](https://groups.google.com/a/chromium.org/forum/#!topic/blink-dev/29sFh4tTdc)) +- In the end, is just a gloried HTTP redirect + - opening `web+ipfs://bafybeigdyrzt5sfp7udm7hu76uh7y26nf3efuylqabf3oclgtqy55fbzdi` will redirect to a web-based handler at `http://example.com?uri=web%2Bipfs%3A%2F%2Fbafybeigdyrzt5sfp7udm7hu76uh7y26nf3efuylqabf3oclgtqy55fbzdi` + +### Prior art: browser extension registering a redirect-based handler + +#### Firefox: `manifest.json/protocol_handlers` + +Since Firefox 59 it is possible for a browser extension to perform `navigator.registerProtocolHandler`-like handler registration during own install. + +When defined, [`manifest.json/protocol_handlers`](https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/protocol_handlers) +automatically registers a redirect-based protocol handler when browser extension is installed. + +It removes the need for user to visit specific website, +but remains a thin wrapper on top of `navigator.registerProtocolHandler` API, +with the rest of its limitations: it is impossible for a browser extension +to return a byte array representing response for requested URL. + +This API is not supported by Chromium ([bug 883274](https://bugs.chromium.org/p/chromium/issues/detail?id=883274)). + +### Prior art: browser extension registering a native handler + +#### Muon-based Brave + +Before Brave switched to Chromium in 2018, we got basic experimental protocol handler working in Muon. It did not support streaming but was an important milestone for IPFS project. Details can be found in [ipfs-companion/issues/312](https://github.com/ipfs-shipyard/ipfs-companion/issues/312). + +#### Firefox Nightly + libdweb + +IPFS, Dat and others collaborated with Mozilla on prototyping native protocol handler +under project called [libdweb](https://github.com/mozilla/libdweb). +Old libdweb experiments produced [PoC Protocol API](https://github.com/mozilla/libdweb/blob/master/Readme.md#protocol-api) +and we got [PoC extension using the API](https://github.com/ipfs-shipyard/ipfs-companion/pull/533) to work, +unfortunately those APIs remained experimental and did not land in regular Firefox Nightly. +Over time, Gecko codebase moved forward breaking the demo in latest Nightlies. + +There was an effort to reimplement an async iterator version of the PoC Protocol API +in the upstream codebase ([bug 1271553](https://bugzilla.mozilla.org/show_bug.cgi?id=1271553)), +but it does not seem to be a priority for Mozilla at this time. + +### Next: Native Protocol Handler API for Browser Extensions (this grant) + +The work in scope of this grant is to leverage lessons from the past experiments +and create a general purpose Protocol Handler API that can be used by any browser extension. +Majority of browser vendors support a variant of Chromium's [Manifest V2](https://developer.chrome.com/extensions/manifest) +browser extensions (Firefox calls them [WebExtensions](https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions)). +Chromium-based vendors are vocal about being interested in improving IPFS support. +To maximize the value created by this grant Chromium codebase should be used as implementation target. + +If possible, the API should be compatible with `manifest.json/protocol_handlers` API already present in Firefox +(registering handler on extension install) but with option to omit `uriTemplate` and provide a self-hosted, +programmatic handler via `chrome.protocol.registerProtocol` instead. + +See _Acceptance Criteria_ for more details. + +## Milestones & Funding + +**Total Funding Amount:** + +**Milestones:** + + + +| Milestone No. | Milestone Description | Funding | Estimated Timeframe | +| --- | --- | --- | --- | +| 1 | Initial API design | $X | Y weeks | +| 2 | PoC API implementation in Chromium | $X | Y weeks | +| 3 | Reusable Chromium/Blink patches work with Brave | $X | Y weeks | +| 4 | ? | $X | Y weeks | +| 5 | ? | $X | Y weeks | + +## Acceptance Criteria + + + +- API specificiation document is approved by IPFS project + - Origin is based on the content root + - supports streaming responses by means of async iterators + - reuses HTTP semantics for caching, content type, headers and error codes +- API implementation in form of patches for Chromium codebase + - allows JS running in browser extension context to register `ipfs://` and `ipns://` protocol handlers, process every request made with them and return arbitrary bytes + - released under [PL's Permissive License Stack](https://protocol.ai/blog/announcing-the-permissive-license-stack/) +- API proliferation + - can be enabled at a build time by browser vendors such as Brave or Edge + - patches submitted to the Brave project + - patches submitted to the upstream Chromium / Blink projects + +## Resources + + + +- Whitelisting Dweb protocols + - [/arewedistributedyet/issues/23](https://github.com/arewedistributedyet/arewedistributedyet/issues/23) + - [/whatwg/html/issues/3935](https://github.com/whatwg/html/issues/3935) +- Firefox + - old libdweb experiments + - [PoC protocol API](https://github.com/mozilla/libdweb/blob/master/Readme.md#protocol-api) / [discussion](https://github.com/mozilla/libdweb/issues/2) + - [PoC extension using above protocol handler API](https://github.com/ipfs-shipyard/ipfs-companion/pull/533) + - new libdweb experiments + - [Bug 1271553 (libdweb-protocol): Add ability to implement programmable custom protocol handler](https://bugzilla.mozilla.org/show_bug.cgi?id=1271553) +- Chromium + - [Issue 651311: registerProtocolHandler: support version control system and decentralized protocols](https://bugs.chromium.org/p/chromium/issues/detail?id=651311) + - [Issue 883274: Extensions API should implement manifest.json/protocol_handlers](https://bugs.chromium.org/p/chromium/issues/detail?id=883274) + - [Issue 64100: Extensions should be able to register for protocols](https://bugs.chromium.org/p/chromium/issues/detail?id=64100) +- IPFS Companion browser extension + - [Support Custom Protocols in WebExtension](https://github.com/ipfs-shipyard/ipfs-companion/issues/164) + - [libdweb experiment: protocol handler API](https://github.com/ipfs-shipyard/ipfs-companion/pull/533) + - [Embedded JS IPFS in Brave](https://github.com/ipfs-shipyard/ipfs-companion/issues/716) + +## Support and Funding + +This grant is sponsored by Protocol Labs. From 6aebdcd4aee5ded526b4d36a749f15d3abdc597b Mon Sep 17 00:00:00 2001 From: Jim Kosem Date: Mon, 2 Mar 2020 16:37:02 +0100 Subject: [PATCH 044/113] Milestones in tabled format as requested --- .../IPFS-mobile-design-research.md | 54 +++++++------------ 1 file changed, 20 insertions(+), 34 deletions(-) diff --git a/targeted-grants/IPFS-mobile-design-research.md b/targeted-grants/IPFS-mobile-design-research.md index 6cf167ed..e870b0e5 100644 --- a/targeted-grants/IPFS-mobile-design-research.md +++ b/targeted-grants/IPFS-mobile-design-research.md @@ -26,40 +26,26 @@ The deliverable is a repository and report of research and analysis to inform th ## Development Roadmap -The following is the two phase IPFS Mobile Design Guidelines plan. All of the research and design work is to be led or done by Jim Kosem with technical and project guidance and advice by Dietrich Ayala. - -**Phase 1: User research and analysis** - -26 Feb 2020: Proposed date to start - -6 Mar 2020: Workshop, recruitment kick-off and audit (€4,720.00) - -13 Mar 2020: Interviews started - -20 Mar 2020: Interviews concluded and analysis (€3,540.00) - -25 Mar 2020: Strategy, findings and recommendations - Estimated date to finish (€4,720.00) - -- Week 9 - - Review, survey and audit of existing mobile browser design in major mobile browsers - - Review of wider and additional contexts that affect mobile beyond the mobile browser, for example power, bandwidth and security -- Week 10 - - Kick-off workshop with Protocol Labs to help frame the research and highlight where and what to focus on - - Recruitment of experts for interviews, trying to include as many of the participants that were interviewed during the IPFS Browser Design Guidelines research focusing on the desktop browser -- Week 11 - - Expert interviews and workshops to explore the problem space, relevant technology and areas and things to think about with mobile and IPFS. This would include current IPFS developers such as Berty and Textile to explore what works and what doesn’t. - - (**deliverable**) Survey review of existing interfaces, components and patterns - - (**deliverable**) Writing and publication of blog post introducing the project research -- Week 12 - - Review, survey and audit of existing mobile sharing interaction patterns around publishing, sharing and receiving that would affect IPFS mobile scenarios in iOS and Android - - Interviews with mobile browser users to gain insights to current perceptions of browser capabilities, concerns, use patterns and issues within the context of IPFS and P2P in mobile. -- Week 13 - - Coalescing of research materials and analysis to inform and inspire design the design phase - - (**deliverable**) Documentation of research in GitHub or other appropriate online repository - - (**deliverable**) Design strategy - - (**deliverable**) Research findings report to become part of the final report with the completion of the design phase - - (**deliverable**) Writing and publication of blog post summarising the project research - - (**deliverable**) Presentation of the project at IPFS Weekly +The following is the first of two phases of the rollout of the IPFS Mobile Design Guidelines. All of the research and design work is to be led or done by Jim Kosem with technical and project guidance and advice by Dietrich Ayala. + +04 Mar 2020: Proposed date to start + +03 Apr 2020: Proposed date to finish + +Milestone | Hours | Cost +--- | --- | --- +Kick off workshop | 16 | €1,180.00 +Research recruitment | 16 | €1,180.00 +Mobile browser survey review | 16 | €1,180.00 +Writing and publication of blog post introducing the project research | 4 | €295.00 +Additional mobile issues review | 16 | €1,180.00 +Interviews of experts and non-experts | 32 | €2,360.00 +Documentation of research in online repository | 16 | €1,180.00 +Research analysis | 32 | €2,360.00 +Design strategy compiled and documented in repository | 8 | €590.00 +Writing and publication of blog post summarising the project research | 12 | €885.00 +Presentation of the project at IPFS Weekly | 8 | €590.00 +**Total** | | **€12,980.00** ## Total Budget Requested From 45fffb101086d9eec162c07059d1e545d72c5d09 Mon Sep 17 00:00:00 2001 From: Jim Kosem Date: Mon, 2 Mar 2020 16:39:31 +0100 Subject: [PATCH 045/113] Updated with tables --- .../IPFS-mobile-design-guidelines.md | 39 +++++++------------ 1 file changed, 15 insertions(+), 24 deletions(-) diff --git a/targeted-grants/IPFS-mobile-design-guidelines.md b/targeted-grants/IPFS-mobile-design-guidelines.md index 16550e89..1cd9e20a 100644 --- a/targeted-grants/IPFS-mobile-design-guidelines.md +++ b/targeted-grants/IPFS-mobile-design-guidelines.md @@ -10,7 +10,7 @@ Following on the far-reaching initial efforts to bring about mass adoption of IPFS by creating browser design guidelines to be brought to standards bodies and browser vendors, it is clear the guidelines work needs to be expanded to where it could achieve adoption quickest, on mobile. Smartphone use has eclipsed desktop, especially in emerging markets, where IPFS stands to better address use cases, patterns and concerns around data sovereignty, offline applications and security. -This programme of work will include the design phase to follow on from the preceding research phase. It will include not just the design of use of mobile browser but wider mobile sharing and receiving workflows of iOS and Android mobile operating systems. This will provide a foundational effort towards IPFS on mobile platforms, informing both IPFS feature prioritization and the ecosystem and community building on the protocol. +This programme of work will include the design phase to follow on from the preceding research phase. It will include not just the design of use of mobile browser but wider mobile sharing and receiving workflows of iOS and Android mobile operating systems. This will provide a foundational effort towards IPFS on mobile platforms, informing both IPFS feature prioritisation and the ecosystem and community building on the protocol. ## Value @@ -26,32 +26,23 @@ The deliverable is a repository and report of use-cases, design guidelines and U ## Development Roadmap -The following is the design phase of the IPFS Mobile Design Guidelines plan. All of the research and design work is to be led or done by Jim Kosem with technical and project guidance and advice by Dietrich Ayala. +The following is the second of two phases of the rollout of the IPFS Mobile Design Guidelines. All of the research and design work is to be led or done by Jim Kosem with technical and project guidance and advice by Dietrich Ayala. + 06 Apr 2020: Proposed date to start -17 Apr 2020: Preliminary designs - -24 Apr 2020: Design guidelines including design assets (€7,080.00) - -01 May 2020: Estimated date to finish (€7,080.00) - -- Week 14 - - Workshop with Protocol Labs to help translate the research into design and prioritise design efforts -- Week 15 - - Interaction and user experience design work to solve the researched issues, mapping out user flows, design patterns and use cases - - Interface design -- Week 16 - - (**deliverable**) Writing and publication of blog post introducing the project design -- Week 17 - - (**deliverable**) Designs including recommendations, iconographic, interaction and screen treaptments for IPFS in mobile browsers and mobile OS’s in graphic format in the final report as well as Sketch and PDF assets in the repository - - (**deliverable**) User experience flows in graphic format in the final report as well as Sketch and PDF assets in the repository -- Week 18 - - (**deliverable**) Design guidelines and component design to inform and help further development efforts in graphic format in the final report as well as Sketch and PDF assets in the repository - - (**deliverable**) Documentation in GitHub or other appropriate online repository including tracked versions of design assets - - (**deliverable**) Writing and publication of blog post summarising the project design - - (**deliverable**) Recommendations for further work - - (**deliverable**) Presentation of the project at IPFS Weekly +15 May 2020: Estimated date to finish + +Milestone | Hours | Cost +--- | --- | --- +Design workshop | 16 | €1,180.00 +Writing and publication of blog post introducing the project design | 8 | €590.00 +Interface and interaction design with design guidelines documentation | 80 | €5,900.00 +Documentation in online repository including tracked versions of design assets | 64 | €4,720.00 +Writing and publication of blog post summarising the project design | 8 | €590.00 +Recommendations for further work | 8 | €590.00 +Presentation of the project at IPFS Weekly | 8 | €590.00 +**Total** | | **€14,160.00** ## Total Budget Requested From 5578f7e291008e708828e53340e8e8fdac757cc2 Mon Sep 17 00:00:00 2001 From: Jim Kosem Date: Tue, 3 Mar 2020 10:18:05 +0100 Subject: [PATCH 046/113] Revised milestones with expanded descriptions --- targeted-grants/IPFS-mobile-design-research.md | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/targeted-grants/IPFS-mobile-design-research.md b/targeted-grants/IPFS-mobile-design-research.md index e870b0e5..f208199c 100644 --- a/targeted-grants/IPFS-mobile-design-research.md +++ b/targeted-grants/IPFS-mobile-design-research.md @@ -34,17 +34,17 @@ The following is the first of two phases of the rollout of the IPFS Mobile Desig Milestone | Hours | Cost --- | --- | --- -Kick off workshop | 16 | €1,180.00 -Research recruitment | 16 | €1,180.00 -Mobile browser survey review | 16 | €1,180.00 +Kick off workshop - design, planning, setup and execution of sync remote workshop for stakeholders in order to help frame the research and highlight where and what to focus on. | 16 | €1,180.00 +Research recruitment - sourcing, evaluating, contacting and scheduling for non-technical and technical interviewees. | 16 | €1,180.00 +Survey review of mobile p2p applications - Identify and review features, capabilities, use-cases and authors of existing mobile p2p applications | 16 | €1,180.00 Writing and publication of blog post introducing the project research | 4 | €295.00 -Additional mobile issues review | 16 | €1,180.00 -Interviews of experts and non-experts | 32 | €2,360.00 -Documentation of research in online repository | 16 | €1,180.00 -Research analysis | 32 | €2,360.00 -Design strategy compiled and documented in repository | 8 | €590.00 +Review of wider and additional contexts that affect mobile beyond the mobile browser, for example power, bandwidth and security | 16 | €1,180.00 +Perform interviews of experts and non-experts | 32 | €2,360.00 +Consolidating of research notes and learnings from interviews and into a readable resource to contribute to the final design recommendations in public Github repository | 16 | €1,180.00 +Analysis of research and surveys to identify key learnings to lead the creation of design strategy | 32 | €2,360.00 +Creation and compilation of design strategy with recommendations to provide direction to the following IPFS mobile design phase documented in repository | 8 | €590.00 Writing and publication of blog post summarising the project research | 12 | €885.00 -Presentation of the project at IPFS Weekly | 8 | €590.00 +Presentation of the project at IPFS Weekly - including the production of slide deck, review, and present | 8 | €590.00 **Total** | | **€12,980.00** ## Total Budget Requested From 5594e18b8d0e9abcfbde82a35754898d2b5f4f10 Mon Sep 17 00:00:00 2001 From: Jim Kosem Date: Wed, 4 Mar 2020 17:26:33 +0100 Subject: [PATCH 047/113] Updated milestone descriptions --- targeted-grants/IPFS-mobile-design-guidelines.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/targeted-grants/IPFS-mobile-design-guidelines.md b/targeted-grants/IPFS-mobile-design-guidelines.md index 1cd9e20a..ebef05db 100644 --- a/targeted-grants/IPFS-mobile-design-guidelines.md +++ b/targeted-grants/IPFS-mobile-design-guidelines.md @@ -35,13 +35,13 @@ The following is the second of two phases of the rollout of the IPFS Mobile Desi Milestone | Hours | Cost --- | --- | --- -Design workshop | 16 | €1,180.00 -Writing and publication of blog post introducing the project design | 8 | €590.00 -Interface and interaction design with design guidelines documentation | 80 | €5,900.00 -Documentation in online repository including tracked versions of design assets | 64 | €4,720.00 +Design workshop - design, planning, setup and execution of sync remote workshop for stakeholders in order to help frame the design | 16 | €1,180.00 +Writing and publication of blog post introducing the project design phase and how it relates to the previous research phase | 8 | €590.00 +Interface and interaction design contributing to design guidelines and component design to inform and help further development efforts in graphic format for the final report with alls assets in the repository | 80 | €5,900.00 +Final report of design including including user experience flows recommendations, iconographic, interaction and screen treatments for IPFS in mobile browsers and mobile OS’s in online repository including tracked versions of design assets | 64 | €4,720.00 Writing and publication of blog post summarising the project design | 8 | €590.00 -Recommendations for further work | 8 | €590.00 -Presentation of the project at IPFS Weekly | 8 | €590.00 +Recommendations for further work to inspire and direct further work on mobile for IPFS | 8 | €590.00 +Presentation of the project at IPFS Weekly - including the production of slide deck, review, and present | 8 | €590.00 **Total** | | **€14,160.00** ## Total Budget Requested From e8fa83b1d5641d29aaed4979a878b165c4bdbdd9 Mon Sep 17 00:00:00 2001 From: Mark Henderson Date: Tue, 17 Mar 2020 21:12:27 -0400 Subject: [PATCH 048/113] Adding Phase 1.0 report empty file --- open-grants/ipfs-rust/reports/phase-1.0.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 open-grants/ipfs-rust/reports/phase-1.0.md diff --git a/open-grants/ipfs-rust/reports/phase-1.0.md b/open-grants/ipfs-rust/reports/phase-1.0.md new file mode 100644 index 00000000..e69de29b From 16d9b30f7c1a416352ae1a80500c20df3e264c0f Mon Sep 17 00:00:00 2001 From: MollyM Date: Wed, 18 Mar 2020 16:09:37 -0700 Subject: [PATCH 049/113] Update README.md --- open-grants/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/open-grants/README.md b/open-grants/README.md index dca19a79..ebc7df24 100644 --- a/open-grants/README.md +++ b/open-grants/README.md @@ -3,7 +3,7 @@ ## About Open grants are for novel ideas that advance the IPFS ecosystem, bring significant new usage, or directly [advance the IPFS mission statemnent](https://github.com/ipfs/roadmap#ipfs-mission-statement). -They are similar to [RFPs](../rpfs) in form, and require detailed specification. Because they potentially represent larger award amounts (upwards of **$10K**) as well as more risk, they require extensive due diligence and may not be funded in any given quarter (or at all), so please take the application process seriously. If your project is smaller in scope and less well-defined, you may want to consider [the microgrant program](../MICROGRANTS.md) instead. +They are similar to [RFPs](../rpfs) in form, and require detailed specification. Because they potentially represent larger award amounts (sometimes upwards of **$10K**) as well as more risk, they require extensive due diligence and may not be funded in any given quarter (or at all), so please take the application process seriously. If your project is smaller in scope and less well-defined, you may want to consider [the microgrant program](../MICROGRANTS.md) instead. ## Proposal Process To submit an open grant proposal, PR a proposal for the suggested improvement to this folder following the [open grant proposal template](open-proposal-template.md). Please cover the project being proposed (including value to the IPFS ecosystem, deliverables, development, roadmap, and budget), and the team making the proposal (including your expertise and past work). From ff08393d847aa352327a277e1680a1d69047cd8d Mon Sep 17 00:00:00 2001 From: Mark Robert Henderson Date: Wed, 18 Mar 2020 00:52:18 -0400 Subject: [PATCH 050/113] Update phase-1.0.md --- open-grants/ipfs-rust/reports/phase-1.0.md | 111 +++++++++++++++++++++ 1 file changed, 111 insertions(+) diff --git a/open-grants/ipfs-rust/reports/phase-1.0.md b/open-grants/ipfs-rust/reports/phase-1.0.md index e69de29b..a08f0fb7 100644 --- a/open-grants/ipfs-rust/reports/phase-1.0.md +++ b/open-grants/ipfs-rust/reports/phase-1.0.md @@ -0,0 +1,111 @@ +# Phase 1.0 Milestone Report +> Project Setup, HTTP Scaffolding, Conformance Testing Framework + +# Executive Summary + +TBD Last + +# Issue by Issue + +The following activities were scoped and planned for Phase 1.0: + +- Project Setup + - Git Repositories + - Code Organization + - CI/CD +- HTTP Scaffolding + - Simple Daemonization + - 501 NOT IMPLEMENTED` Boilerplate +- Conformance Testing + - Update js-ipfsd-ctl + - Update ipfs/interface-js-ipfs-core + - Run conformance testing on implemented endpoints +- Interoperability Testing + - Update ipfs/interop + - Interop Testing +- Project Milestone Report + - Executive Summary + - Comformance Test Results + - Interop Report + +## Project Setup + +* Chat Bridges +* Logo + * https://github.com/ipfs-rust/logo/issues/2 + * https://github.com/ipfs-rust/rust-ipfs/pull/55 + +### Git Repositories + +* Subcrates +* https://github.com/ipfs-rust/ipfs-rust-conformance/issues/11 +* https://github.com/ipfs-rust/rust-ipfs/issues/62 +* https://github.com/ipfs-rust/rust-ipfs/issues/61 +* https://github.com/ipfs-rust/rust-ipfs/pull/68 +* https://github.com/ipfs-rust/rust-ipfs/pull/70 +* https://github.com/ipfs-rust/rust-ipfs/pull/72 + +### Code Organization + +* https://github.com/ipfs-rust/rust-ipfs/issues/54 +* https://github.com/ipfs-rust/rust-ipfs/pull/74 +* https://github.com/ipfs-rust/rust-ipfs/pull/81 + +### CI/CD + +* https://github.com/ipfs-rust/rust-ipfs/issues/41 +* https://github.com/ipfs-rust/rust-ipfs/pull/69 +* https://github.com/ipfs-rust/rust-ipfs/pull/73 +* https://github.com/ipfs-rust/rust-ipfs/pull/100 + +## HTTP Scaffolding + +* https://github.com/ipfs-rust/rust-ipfs/issues/60 +* https://github.com/ipfs-rust/rust-ipfs/pull/103 +* https://github.com/ipfs-rust/rust-ipfs/pull/64 +* https://github.com/ipfs-rust/rust-ipfs/pull/71 + +### Simple Daemonization + +### 501 NOT IMPLEMENTED Boilerplate + +* https://github.com/ipfs-rust/rust-ipfs/blob/master/http/src/v0.rs#L30 + +## Conformance Testing + +* https://github.com/ipfs-rust/npm-rust-ipfs-dep/issues/1 + +### Update js-ipfsd-ctl + +* https://github.com/ipfs/js-ipfsd-ctl/pull/473 + +### Update ipfs/interface-js-ipfs-core + +* not necessary +* note that some tests _will_ need to be refactored +* Transisitioning to + +### Run conformance testing on implemented endpoints + +* See testing below + +## Interoperability Testing + +### Update ipfs/interop + +* https://github.com/ipfs-rust/interop/issues/1 +* https://github.com/ipfs-rust/interop/pull/2 + +### Interop Testing + +* See interop testing below + +# Conformance Test Results + +## Interface Tests + +* 501 Not implemented + +## Interop Tests + +* Not required but some cursory exploration was done, and planning for 1.1 and 1.2 From 883fe8b92b9d95d5a9481bb9409060fceed0b47d Mon Sep 17 00:00:00 2001 From: Mark Robert Henderson Date: Wed, 18 Mar 2020 02:15:18 -0400 Subject: [PATCH 051/113] Update phase-1.0.md --- open-grants/ipfs-rust/reports/phase-1.0.md | 29 +++++++++++++++------- 1 file changed, 20 insertions(+), 9 deletions(-) diff --git a/open-grants/ipfs-rust/reports/phase-1.0.md b/open-grants/ipfs-rust/reports/phase-1.0.md index a08f0fb7..aab9b9d4 100644 --- a/open-grants/ipfs-rust/reports/phase-1.0.md +++ b/open-grants/ipfs-rust/reports/phase-1.0.md @@ -3,7 +3,7 @@ # Executive Summary -TBD Last +The IPFS Rust grant team completed Phase 1.0 on schedule. # Issue by Issue @@ -34,16 +34,26 @@ The following activities were scoped and planned for Phase 1.0: * Logo * https://github.com/ipfs-rust/logo/issues/2 * https://github.com/ipfs-rust/rust-ipfs/pull/55 - + * https://github.com/ipfs-rust/rust-ipfs/pull/70 + + +Finally, we applies Mozil + ### Git Repositories -* Subcrates -* https://github.com/ipfs-rust/ipfs-rust-conformance/issues/11 -* https://github.com/ipfs-rust/rust-ipfs/issues/62 -* https://github.com/ipfs-rust/rust-ipfs/issues/61 -* https://github.com/ipfs-rust/rust-ipfs/pull/68 -* https://github.com/ipfs-rust/rust-ipfs/pull/70 -* https://github.com/ipfs-rust/rust-ipfs/pull/72 +Goal: Quality of repository administration (as opposed to code quality) + +We organized the repositories according to the following list. Indentation implies creating crates within subfolders, and importing them via the [Rust module system](https://doc.rust-lang.org/book/second-edition/ch07-00-modules.html). + +- rust-ipfs + - http + - bitswap +- rust-ipld + +We chose the Standard Readme spec. For example, see the [ipfs-rust](ttps://github.com/ipfs-rust/rust-ipfs/pull/72 +) and [ipfs-rust-conformance](https://github.com/ipfs-rust/ipfs-rust-conformance/issues/11) READMEs. We also wrote a [Contributors guide](https://github.com/ipfs-rust/rust-ipfs/issues/61) and added it to the repo according to GitHub's "Community profile", which is now reporting a green status. + +Finally, we also applied the [IPFS Community code of conduct](https://github.com/ipfs-rust/rust-ipfs/pull/68) following permission from Protocol Labs. ### Code Organization @@ -53,6 +63,7 @@ The following activities were scoped and planned for Phase 1.0: ### CI/CD +* https://github.com/ipfs-rust/rust-ipfs/issues/62 * https://github.com/ipfs-rust/rust-ipfs/issues/41 * https://github.com/ipfs-rust/rust-ipfs/pull/69 * https://github.com/ipfs-rust/rust-ipfs/pull/73 From e4b4cbaa071f628569b094adfc61fcbde82f97bf Mon Sep 17 00:00:00 2001 From: Mark Robert Henderson Date: Wed, 18 Mar 2020 02:42:12 -0400 Subject: [PATCH 052/113] Update phase-1.0.md --- open-grants/ipfs-rust/reports/phase-1.0.md | 66 ++++++++-------------- 1 file changed, 23 insertions(+), 43 deletions(-) diff --git a/open-grants/ipfs-rust/reports/phase-1.0.md b/open-grants/ipfs-rust/reports/phase-1.0.md index aab9b9d4..76e2a1f5 100644 --- a/open-grants/ipfs-rust/reports/phase-1.0.md +++ b/open-grants/ipfs-rust/reports/phase-1.0.md @@ -1,47 +1,34 @@ -# Phase 1.0 Milestone Report -> Project Setup, HTTP Scaffolding, Conformance Testing Framework +

+
+ Rust IPFS: Phase 1.0 Milestone Report +

-# Executive Summary +The IPFS Rust grant team completed Phase 1.0 on schedule. The following activities were initially scoped and planned: -The IPFS Rust grant team completed Phase 1.0 on schedule. - -# Issue by Issue - -The following activities were scoped and planned for Phase 1.0: - -- Project Setup - - Git Repositories - - Code Organization - - CI/CD -- HTTP Scaffolding - - Simple Daemonization - - 501 NOT IMPLEMENTED` Boilerplate +- [Project Setup](#project-setup) incl. Git repositories, code organization, and continuous integration +- HTTP Scaffolding with `501 NOT IMPLEMENTED` boilerplate - Conformance Testing - - Update js-ipfsd-ctl - - Update ipfs/interface-js-ipfs-core - - Run conformance testing on implemented endpoints - Interoperability Testing - - Update ipfs/interop - - Interop Testing - Project Milestone Report - - Executive Summary - - Comformance Test Results - - Interop Report + +In addition to completing the above, we completed a number of community related efforts. Protocol Labs created a logo (above), Equilibrium created a mascot (below), and we, together, set up bridged chat between [Matrix](https://riot.im/app/#/room/#rust-ipfs:matrix.org) and [Discord](https://discord.gg/9E5SFvW). -## Project Setup +# Activity Details -* Chat Bridges -* Logo - * https://github.com/ipfs-rust/logo/issues/2 - * https://github.com/ipfs-rust/rust-ipfs/pull/55 - * https://github.com/ipfs-rust/rust-ipfs/pull/70 +Each heading below represents a specific item promised in the initial grant proposal and relevant notes. +## Project Setup -Finally, we applies Mozil +Goal: Quality of repository administration (as opposed to code quality) ### Git Repositories -Goal: Quality of repository administration (as opposed to code quality) +We chose the Standard Readme spec. For example, see the [ipfs-rust](ttps://github.com/ipfs-rust/rust-ipfs/pull/72 +) and [ipfs-rust-conformance](https://github.com/ipfs-rust/ipfs-rust-conformance/issues/11) READMEs. We also wrote a [Contributors guide](https://github.com/ipfs-rust/rust-ipfs/issues/61) and added it to the repo, along with [issue and pull request templates](https://github.com/ipfs-rust/rust-ipfs/pull/74). According to GitHub's "Community profile", we have achieved a "green" status. + +Finally, we also applied the [IPFS Community code of conduct](https://github.com/ipfs-rust/rust-ipfs/pull/68) following permission from Protocol Labs. + +### Code Organization We organized the repositories according to the following list. Indentation implies creating crates within subfolders, and importing them via the [Rust module system](https://doc.rust-lang.org/book/second-edition/ch07-00-modules.html). @@ -50,17 +37,6 @@ We organized the repositories according to the following list. Indentation impli - bitswap - rust-ipld -We chose the Standard Readme spec. For example, see the [ipfs-rust](ttps://github.com/ipfs-rust/rust-ipfs/pull/72 -) and [ipfs-rust-conformance](https://github.com/ipfs-rust/ipfs-rust-conformance/issues/11) READMEs. We also wrote a [Contributors guide](https://github.com/ipfs-rust/rust-ipfs/issues/61) and added it to the repo according to GitHub's "Community profile", which is now reporting a green status. - -Finally, we also applied the [IPFS Community code of conduct](https://github.com/ipfs-rust/rust-ipfs/pull/68) following permission from Protocol Labs. - -### Code Organization - -* https://github.com/ipfs-rust/rust-ipfs/issues/54 -* https://github.com/ipfs-rust/rust-ipfs/pull/74 -* https://github.com/ipfs-rust/rust-ipfs/pull/81 - ### CI/CD * https://github.com/ipfs-rust/rust-ipfs/issues/62 @@ -120,3 +96,7 @@ Finally, we also applied the [IPFS Community code of conduct](https://github.com ## Interop Tests * Not required but some cursory exploration was done, and planning for 1.1 and 1.2 + +# What's Next? + +Phase 1.1 will XXXX. From 5daa438286b30d02f2d23b94e37ffd00a99ae19a Mon Sep 17 00:00:00 2001 From: Mark Robert Henderson Date: Wed, 18 Mar 2020 21:31:31 -0400 Subject: [PATCH 053/113] Update phase-1.0.md --- open-grants/ipfs-rust/reports/phase-1.0.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/open-grants/ipfs-rust/reports/phase-1.0.md b/open-grants/ipfs-rust/reports/phase-1.0.md index 76e2a1f5..5e766eb7 100644 --- a/open-grants/ipfs-rust/reports/phase-1.0.md +++ b/open-grants/ipfs-rust/reports/phase-1.0.md @@ -37,13 +37,13 @@ We organized the repositories according to the following list. Indentation impli - bitswap - rust-ipld -### CI/CD +### Continuous Integration (CI) -* https://github.com/ipfs-rust/rust-ipfs/issues/62 -* https://github.com/ipfs-rust/rust-ipfs/issues/41 -* https://github.com/ipfs-rust/rust-ipfs/pull/69 -* https://github.com/ipfs-rust/rust-ipfs/pull/73 -* https://github.com/ipfs-rust/rust-ipfs/pull/100 +We achieve much of the "definition of done" in this step. + +We set up [automated CI](https://github.com/ipfs-rust/rust-ipfs/pull/69), running on pushes to pull requested branches and master, on `rust-ipfs` and `rust-ipld`. The tests assert a [number of properties](https://github.com/ipfs-rust/rust-ipfs/issues/62), including unit tests, functional test, code linting and formatting and language idioms via "clippy". The rests even try and execute the examples in the README files via a tool called [skeptic](https://github.com/ipfs-rust/rust-ipfs/issues/41). + +Note that in one instance Rust's `stable` release channel updated from 1.41 to 1.42, eschewing 32 bit iOS / OSX builds, and we were able to catch that and [fix it](https://github.com/ipfs-rust/rust-ipfs/pull/100) that day. ## HTTP Scaffolding From e3624f8d1688a6cc96df187f89ca111ddbe43206 Mon Sep 17 00:00:00 2001 From: Mark Robert Henderson Date: Wed, 18 Mar 2020 21:39:09 -0400 Subject: [PATCH 054/113] Update phase-1.0.md --- open-grants/ipfs-rust/reports/phase-1.0.md | 28 ++++------------------ 1 file changed, 5 insertions(+), 23 deletions(-) diff --git a/open-grants/ipfs-rust/reports/phase-1.0.md b/open-grants/ipfs-rust/reports/phase-1.0.md index 5e766eb7..46e74626 100644 --- a/open-grants/ipfs-rust/reports/phase-1.0.md +++ b/open-grants/ipfs-rust/reports/phase-1.0.md @@ -6,10 +6,9 @@ The IPFS Rust grant team completed Phase 1.0 on schedule. The following activities were initially scoped and planned: - [Project Setup](#project-setup) incl. Git repositories, code organization, and continuous integration -- HTTP Scaffolding with `501 NOT IMPLEMENTED` boilerplate -- Conformance Testing -- Interoperability Testing -- Project Milestone Report +- [HTTP Scaffolding](#http-scaffolding) with `501 NOT IMPLEMENTED` boilerplate +- [Conformance Testing](#conformance-testing) +- [Interoperability Testing](#interoperability-testing) In addition to completing the above, we completed a number of community related efforts. Protocol Labs created a logo (above), Equilibrium created a mascot (below), and we, together, set up bridged chat between [Matrix](https://riot.im/app/#/room/#rust-ipfs:matrix.org) and [Discord](https://discord.gg/9E5SFvW). @@ -47,16 +46,9 @@ Note that in one instance Rust's `stable` release channel updated from 1.41 to 1 ## HTTP Scaffolding -* https://github.com/ipfs-rust/rust-ipfs/issues/60 -* https://github.com/ipfs-rust/rust-ipfs/pull/103 -* https://github.com/ipfs-rust/rust-ipfs/pull/64 -* https://github.com/ipfs-rust/rust-ipfs/pull/71 +The grant team used the [warp](https://github.com/seanmonstar/warp) Rust framework to scaffold [HTTP endpoints](https://github.com/ipfs-rust/rust-ipfs/issues/60) for conformance testing. This involved creating a long-standing process, and then responding to HTTP calls among specific paths to return the `501 NOT IMPLEMENTED` error code, as opposed to `404 NOT FOUND`. -### Simple Daemonization - -### 501 NOT IMPLEMENTED Boilerplate - -* https://github.com/ipfs-rust/rust-ipfs/blob/master/http/src/v0.rs#L30 +The grant team ensured that [all HTTP endpoints](https://github.com/ipfs-rust/rust-ipfs/blob/master/http/src/v0.rs#L30) covered by the `interface-js-ipfs-core` tests were appropriately scaffolded. ## Conformance Testing @@ -87,16 +79,6 @@ Note that in one instance Rust's `stable` release channel updated from 1.41 to 1 * See interop testing below -# Conformance Test Results - -## Interface Tests - -* 501 Not implemented - -## Interop Tests - -* Not required but some cursory exploration was done, and planning for 1.1 and 1.2 - # What's Next? Phase 1.1 will XXXX. From d7d5ab35c7db28e1daaaf1d0493cf8c395980a85 Mon Sep 17 00:00:00 2001 From: Mark Robert Henderson Date: Wed, 18 Mar 2020 21:53:07 -0400 Subject: [PATCH 055/113] Update phase-1.0.md --- open-grants/ipfs-rust/reports/phase-1.0.md | 29 ++++------------------ 1 file changed, 5 insertions(+), 24 deletions(-) diff --git a/open-grants/ipfs-rust/reports/phase-1.0.md b/open-grants/ipfs-rust/reports/phase-1.0.md index 46e74626..b567003c 100644 --- a/open-grants/ipfs-rust/reports/phase-1.0.md +++ b/open-grants/ipfs-rust/reports/phase-1.0.md @@ -52,33 +52,14 @@ The grant team ensured that [all HTTP endpoints](https://github.com/ipfs-rust/ru ## Conformance Testing -* https://github.com/ipfs-rust/npm-rust-ipfs-dep/issues/1 +The grant team's goal was simply to Simply being able to _run_ the tests against our setup. This involved both adding functionality to `rust-ipfs` as well as -### Update js-ipfsd-ctl +We created [`npm-rust-ipfs-dep`](https://github.com/ipfs-rust/npm-rust-ipfs-dep/issues/1) which mirrors `npm-go-ipfs-dep`, allowing for the Rust IPFS executable to be installed as an npm dependency. From there we made [small edits](https://github.com/ipfs/js-ipfsd-ctl/pull/473) to `js-ipfsd-ctl`, and then -* https://github.com/ipfs/js-ipfsd-ctl/pull/473 +We also edited the `interop` tests in a [similar fashion](https://github.com/ipfs-rust/interop/pull/2). -### Update ipfs/interface-js-ipfs-core - -* not necessary -* note that some tests _will_ need to be refactored -* Transisitioning to - -### Run conformance testing on implemented endpoints - -* See testing below - -## Interoperability Testing - -### Update ipfs/interop - -* https://github.com/ipfs-rust/interop/issues/1 -* https://github.com/ipfs-rust/interop/pull/2 - -### Interop Testing - -* See interop testing below +Currently all conformance testing, interface and interop, fail. This is intentional as grant progress can now be measured in the ratio of passing/failing tests moving forward. # What's Next? -Phase 1.1 will XXXX. +Phase 1.1 plans to introduce new HTTP endpoints, /pubsub, /swarm, /version, and /id, all of which will pass conformance testing standards. Additionally, we plan to expand our chat bridges to Telegram and Gitter. From b59922b75ed593cf721581aad08d187d485d3a8e Mon Sep 17 00:00:00 2001 From: Mark Robert Henderson Date: Wed, 18 Mar 2020 22:03:20 -0400 Subject: [PATCH 056/113] Update phase-1.0.md --- open-grants/ipfs-rust/reports/phase-1.0.md | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/open-grants/ipfs-rust/reports/phase-1.0.md b/open-grants/ipfs-rust/reports/phase-1.0.md index b567003c..92a484d8 100644 --- a/open-grants/ipfs-rust/reports/phase-1.0.md +++ b/open-grants/ipfs-rust/reports/phase-1.0.md @@ -10,7 +10,11 @@ The IPFS Rust grant team completed Phase 1.0 on schedule. The following activiti - [Conformance Testing](#conformance-testing) - [Interoperability Testing](#interoperability-testing) -In addition to completing the above, we completed a number of community related efforts. Protocol Labs created a logo (above), Equilibrium created a mascot (below), and we, together, set up bridged chat between [Matrix](https://riot.im/app/#/room/#rust-ipfs:matrix.org) and [Discord](https://discord.gg/9E5SFvW). +In addition to completing the above, we also completed a number of community related efforts. Protocol Labs created a logo (above), Equilibrium created a mascot (below), and we, together, set up bridged chat between [Matrix](https://riot.im/app/#/room/#rust-ipfs:matrix.org) and [Discord](https://discord.gg/9E5SFvW). + +![Rust IPFS "mascot"](https://user-images.githubusercontent.com/106148/75078320-50e15a00-54d3-11ea-9df4-43d6d04466cf.png) + +We also added trademark and Creative Commons notices to all relevant repositories. # Activity Details @@ -40,7 +44,7 @@ We organized the repositories according to the following list. Indentation impli We achieve much of the "definition of done" in this step. -We set up [automated CI](https://github.com/ipfs-rust/rust-ipfs/pull/69), running on pushes to pull requested branches and master, on `rust-ipfs` and `rust-ipld`. The tests assert a [number of properties](https://github.com/ipfs-rust/rust-ipfs/issues/62), including unit tests, functional test, code linting and formatting and language idioms via "clippy". The rests even try and execute the examples in the README files via a tool called [skeptic](https://github.com/ipfs-rust/rust-ipfs/issues/41). +We set up [automated CI](https://github.com/ipfs-rust/rust-ipfs/pull/69), running on pushes to pull requested branches and master, on `rust-ipfs` and `rust-ipld`. The tests assert a [number of properties](https://github.com/ipfs-rust/rust-ipfs/issues/62), including unit tests, functional tests, code linting and formatting and language idiom checks via the "clippy" tool. The rests even try and execute the examples in the README files via a tool called [skeptic](https://github.com/ipfs-rust/rust-ipfs/issues/41). Note that in one instance Rust's `stable` release channel updated from 1.41 to 1.42, eschewing 32 bit iOS / OSX builds, and we were able to catch that and [fix it](https://github.com/ipfs-rust/rust-ipfs/pull/100) that day. From 6e5953b14b709230d681e0e35d8441a1ea52c022 Mon Sep 17 00:00:00 2001 From: Mark Robert Henderson Date: Wed, 18 Mar 2020 22:07:50 -0400 Subject: [PATCH 057/113] Update phase-1.0.md --- open-grants/ipfs-rust/reports/phase-1.0.md | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/open-grants/ipfs-rust/reports/phase-1.0.md b/open-grants/ipfs-rust/reports/phase-1.0.md index 92a484d8..2c9b1cef 100644 --- a/open-grants/ipfs-rust/reports/phase-1.0.md +++ b/open-grants/ipfs-rust/reports/phase-1.0.md @@ -8,7 +8,6 @@ The IPFS Rust grant team completed Phase 1.0 on schedule. The following activiti - [Project Setup](#project-setup) incl. Git repositories, code organization, and continuous integration - [HTTP Scaffolding](#http-scaffolding) with `501 NOT IMPLEMENTED` boilerplate - [Conformance Testing](#conformance-testing) -- [Interoperability Testing](#interoperability-testing) In addition to completing the above, we also completed a number of community related efforts. Protocol Labs created a logo (above), Equilibrium created a mascot (below), and we, together, set up bridged chat between [Matrix](https://riot.im/app/#/room/#rust-ipfs:matrix.org) and [Discord](https://discord.gg/9E5SFvW). @@ -56,13 +55,13 @@ The grant team ensured that [all HTTP endpoints](https://github.com/ipfs-rust/ru ## Conformance Testing -The grant team's goal was simply to Simply being able to _run_ the tests against our setup. This involved both adding functionality to `rust-ipfs` as well as +The grant team's goal was simply to be able to _run_ the tests against our executable. This involved both adding functionality to `rust-ipfs` as well as extending Protocol Labs' testing framework to accommodate rust. -We created [`npm-rust-ipfs-dep`](https://github.com/ipfs-rust/npm-rust-ipfs-dep/issues/1) which mirrors `npm-go-ipfs-dep`, allowing for the Rust IPFS executable to be installed as an npm dependency. From there we made [small edits](https://github.com/ipfs/js-ipfsd-ctl/pull/473) to `js-ipfsd-ctl`, and then +We created [`npm-rust-ipfs-dep`](https://github.com/ipfs-rust/npm-rust-ipfs-dep/issues/1) which mirrors `npm-go-ipfs-dep`, allowing for the Rust IPFS executable to be installed as an npm dependency. From there we made [small edits](https://github.com/ipfs/js-ipfsd-ctl/pull/473) to `js-ipfsd-ctl`, and then wrote a [custom script](https://github.com/ipfs-rust/ipfs-rust-conformance) to run the interface tests. We also edited the `interop` tests in a [similar fashion](https://github.com/ipfs-rust/interop/pull/2). -Currently all conformance testing, interface and interop, fail. This is intentional as grant progress can now be measured in the ratio of passing/failing tests moving forward. +Currently all conformance testing, interface and interop, fails. This is intentional as grant progress can now be measured in the ratio of passing/failing tests moving forward. # What's Next? From c560f3134a3391083b867414ddb65615ca06155e Mon Sep 17 00:00:00 2001 From: Mark Robert Henderson Date: Wed, 18 Mar 2020 22:11:52 -0400 Subject: [PATCH 058/113] Update phase-1.0.md --- open-grants/ipfs-rust/reports/phase-1.0.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/open-grants/ipfs-rust/reports/phase-1.0.md b/open-grants/ipfs-rust/reports/phase-1.0.md index 2c9b1cef..59048e41 100644 --- a/open-grants/ipfs-rust/reports/phase-1.0.md +++ b/open-grants/ipfs-rust/reports/phase-1.0.md @@ -41,7 +41,7 @@ We organized the repositories according to the following list. Indentation impli ### Continuous Integration (CI) -We achieve much of the "definition of done" in this step. +We automate away much of the "[definition of done](https://github.com/ipfs/devgrants/tree/master/open-grants/ipfs-rust#definition-of-done)" in this step. We set up [automated CI](https://github.com/ipfs-rust/rust-ipfs/pull/69), running on pushes to pull requested branches and master, on `rust-ipfs` and `rust-ipld`. The tests assert a [number of properties](https://github.com/ipfs-rust/rust-ipfs/issues/62), including unit tests, functional tests, code linting and formatting and language idiom checks via the "clippy" tool. The rests even try and execute the examples in the README files via a tool called [skeptic](https://github.com/ipfs-rust/rust-ipfs/issues/41). @@ -55,7 +55,7 @@ The grant team ensured that [all HTTP endpoints](https://github.com/ipfs-rust/ru ## Conformance Testing -The grant team's goal was simply to be able to _run_ the tests against our executable. This involved both adding functionality to `rust-ipfs` as well as extending Protocol Labs' testing framework to accommodate rust. +The grant team's goal was simply to be able to _run_ the tests against our executable. This involved both adding functionality to `rust-ipfs` as well as extending Protocol Labs' testing framework to accommodate Rust IPFS. We created [`npm-rust-ipfs-dep`](https://github.com/ipfs-rust/npm-rust-ipfs-dep/issues/1) which mirrors `npm-go-ipfs-dep`, allowing for the Rust IPFS executable to be installed as an npm dependency. From there we made [small edits](https://github.com/ipfs/js-ipfsd-ctl/pull/473) to `js-ipfsd-ctl`, and then wrote a [custom script](https://github.com/ipfs-rust/ipfs-rust-conformance) to run the interface tests. From 1ab63e7c1093465b7c88c28f301a3a1b6a958ecf Mon Sep 17 00:00:00 2001 From: Jim Kosem Date: Wed, 25 Mar 2020 16:20:38 +0100 Subject: [PATCH 059/113] Updated table with details --- .../IPFS-mobile-design-guidelines.md | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/targeted-grants/IPFS-mobile-design-guidelines.md b/targeted-grants/IPFS-mobile-design-guidelines.md index ebef05db..ed1972e3 100644 --- a/targeted-grants/IPFS-mobile-design-guidelines.md +++ b/targeted-grants/IPFS-mobile-design-guidelines.md @@ -28,20 +28,21 @@ The deliverable is a repository and report of use-cases, design guidelines and U The following is the second of two phases of the rollout of the IPFS Mobile Design Guidelines. All of the research and design work is to be led or done by Jim Kosem with technical and project guidance and advice by Dietrich Ayala. +13 Apr 2020: Proposed date to start -06 Apr 2020: Proposed date to start - -15 May 2020: Estimated date to finish +22 May 2020: Estimated date to finish Milestone | Hours | Cost --- | --- | --- -Design workshop - design, planning, setup and execution of sync remote workshop for stakeholders in order to help frame the design | 16 | €1,180.00 -Writing and publication of blog post introducing the project design phase and how it relates to the previous research phase | 8 | €590.00 -Interface and interaction design contributing to design guidelines and component design to inform and help further development efforts in graphic format for the final report with alls assets in the repository | 80 | €5,900.00 -Final report of design including including user experience flows recommendations, iconographic, interaction and screen treatments for IPFS in mobile browsers and mobile OS’s in online repository including tracked versions of design assets | 64 | €4,720.00 +Design workshop to help translate research and direct design | 16 | €1,180.00 +User interface, component and elements design | 38 | €2,802.50 +Interaction design and production of user flows and use cases | 40 | €2,950.00 +Design guidelines creation and documentation | 20 | €1,475.00 +Documentation survey and collection of research and design materials | 18 | €1,327.50 +Guidelines analysis | 20 | €1,475.00 +Compilation of assets and writing of documentation with development recommendations | 24 | €1,770.00 Writing and publication of blog post summarising the project design | 8 | €590.00 -Recommendations for further work to inspire and direct further work on mobile for IPFS | 8 | €590.00 -Presentation of the project at IPFS Weekly - including the production of slide deck, review, and present | 8 | €590.00 +Presentation of the project at IPFS Weekly | 8 | €590.00 **Total** | | **€14,160.00** ## Total Budget Requested From 356e8fe0a7141aa5bcddc587540ad1627b6ebf71 Mon Sep 17 00:00:00 2001 From: Mark Robert Henderson Date: Wed, 18 Mar 2020 00:52:18 -0400 Subject: [PATCH 060/113] Update phase-1.0.md Update phase-1.0.md Update phase-1.0.md Update phase-1.0.md Update phase-1.0.md Update phase-1.0.md Update phase-1.0.md Update phase-1.0.md Update phase-1.0.md Create phase-1.1.md Update phase-1.1.md Update phase-1.1.md Update phase-1.1.md Update phase-1.1.md Update phase-1.1.md Update phase-1.1.md Update phase-1.1.md Update phase-1.1.md Update phase-1.1.md Update open-grants/ipfs-rust/reports/phase-1.1.md Co-Authored-By: Joonas Koivunen Update open-grants/ipfs-rust/reports/phase-1.1.md Co-Authored-By: Joonas Koivunen Update open-grants/ipfs-rust/reports/phase-1.1.md Co-Authored-By: Joonas Koivunen Update open-grants/ipfs-rust/reports/phase-1.1.md Co-Authored-By: Joonas Koivunen Update phase-1.1.md --- open-grants/ipfs-rust/reports/phase-1.1.md | 81 ++++++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 open-grants/ipfs-rust/reports/phase-1.1.md diff --git a/open-grants/ipfs-rust/reports/phase-1.1.md b/open-grants/ipfs-rust/reports/phase-1.1.md new file mode 100644 index 00000000..f8bcf22a --- /dev/null +++ b/open-grants/ipfs-rust/reports/phase-1.1.md @@ -0,0 +1,81 @@ +

+
+ Rust IPFS: Phase 1.1 Milestone Report +

+ +The IPFS Rust team completed Phase 1.1 one day behind schedule, despite adverse internal and external conditions that threatened to push the project back over one week. The following activities were completed: + +- [HTTP endpoints](#http-endpoints). + - [`/version`](#version) + - [`/id`](#id) + - [`/swarm/*`](#swarm) + - [`/pubsub/*`](#pubsub) +- [Blockstore](#blockstore) research was conducted and deferred until whenever, wherever +- [Miscellaneous](#miscellaneous) Updates and Bug Fixes +- [Conformance testing](#conformance-testing) +- Various [community activities](#community-activities) outside of the grant scope + +## HTTP Endpoints + +### /version + +The grant team completed functionality for the [`/version` endpoint](https://github.com/ipfs-rust/rust-ipfs/issues/78), both the plaintext `/version` and the `/api/v0/version` that accepts arguments. See the [pull request](https://github.com/ipfs-rust/rust-ipfs/pull/85) here. + +### /id + +The grant team completed functionality for the [`/id` endpoint](https://github.com/ipfs-rust/rust-ipfs/issues/79), which returns identifying information about the user's peer. Note that identifying another peer required additional work that was unforseen by the grant team at planning time, and was [pushed to Phase 1.2](https://github.com/ipfs-rust/rust-ipfs/issues/121). + +### /swarm + +The grant team completed functionality for the [`/swarm` endpoints](https://github.com/ipfs-rust/rust-ipfs/issues/77), We discovered cases involving [multiaddrs with peer ids](https://github.com/ipfs-rust/rust-ipfs/issues/105), which we will address in Phase 1.2. + +### /pubsub + +The grant team completed the work on the [pubsub functionality](https://github.com/ipfs-rust/rust-ipfs/pull/118) and [HTTP bindings](https://github.com/ipfs-rust/rust-ipfs/pull/118) .Please note the [discrepancy](https://github.com/ipfs-rust/rust-ipfs/issues/76#issuecomment-604053881) between how the `go-ipfs` client and `js-ipfs` client send pubsub messages. + +## Blockstore + +Rust IPFS currently has three features that lend itself to expanding into a fully-fledged, highly performant blockstore: + +1. The [`BlockStore`](https://github.com/eqlabs/rust-ipfs/blob/cb664e11f8ec2f4700e860bee2da95de36df6662/src/repo/mod.rs#L51) trait +2. An in-memory store +3. A rudimentary filestore. + +The grant team had originally planned to follow latest developments within `go-ipfs` and `js-ipfs` and innovate, as [requested by @stebalien](https://github.com/ipfs-rust/rust-ipfs/issues/84). However, we quickly learned certain architectural decisions are [pending within `ipfs/specs`](https://github.com/ipfs/specs/issues/242), so we postponed any work on the `BlockStore` until those decisions were made. + +This was fortunate, because it allowed us to focus solely on the libp2p integration during this phase, which was certainly a lift in terms of development effort. + +## Miscellaneous + +- [In memory config](https://github.com/ipfs-rust/rust-ipfs/pull/113) for easier testing: +- Fixing [crate names](https://github.com/ipfs-rust/rust-ipfs/pull/106) + +## Conformance Testing + +### Interface + +The grant team is happy to report that [31 interface tests now pass](https://github.com/ipfs-rust/ipfs-rust-conformance/actions/runs/63502176) on the latest build of Rust IPFS. + +The roster of supported endpoints now includes: + +* `/pubsub/{ publish, subscribe, unsubscribe, peers, ls }` +* `/swarm/{connect, peers, addrs, localAddrs, disconnect }` +* `/id` +* `/version` +* `/stop` + +### Interop + +The grant team discovered that a number of the interop tests, as well as the conformance tests for Phase 1.2, use endpoints that are out of grant scope, primarily `ipfs.add`. PL helped us make the decisions to refactor the tests to use a more limiited set of APIs, which will make conformance easier in the long run. This will take place in Phase 1.2 + +## Community Activities + +Matrix now bridges to a Telegram group called rust-ipfs. + +The grant team submitted two [blog posts](https://github.com/ipfs-rust/rust-ipfs/issues/67) which seemed to be well received by the community. +- https://blog.ipfs.io/2020-03-18-announcing-rust-ipfs/ +- https://medium.com/equilibriumco/announcing-rust-ipfs-af8358f90beb + +The repository has [359 stars](https://github.com/ipfs-rust/rust-ipfs/stargazers) at the time of this writing. + +Mark (@aphelionz) from the Rust IPFS team has attended two IPFS Core Implementation calls. From 1aa4d81bf897b7779b8542d0f9559827fbeb5a05 Mon Sep 17 00:00:00 2001 From: Marcin Rataj Date: Mon, 30 Mar 2020 14:54:27 +0200 Subject: [PATCH 061/113] addressing the review https://github.com/ipfs/devgrants/pull/30#pullrequestreview-380518369 License: MIT Signed-off-by: Marcin Rataj --- ...ocol-handler-api-for-browser-extensions.md | 22 ++++++++++--------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/targeted-grants/protocol-handler-api-for-browser-extensions.md b/targeted-grants/protocol-handler-api-for-browser-extensions.md index 64f3870a..6c95046b 100644 --- a/targeted-grants/protocol-handler-api-for-browser-extensions.md +++ b/targeted-grants/protocol-handler-api-for-browser-extensions.md @@ -42,10 +42,10 @@ while leveraging integrity guarantees of content addressing. in the development of innovative projects and solutions, including the web platform. They are experienced contributors to major browser engines familiar with both codebases -and standarization processes. One of most prominent success stories is [CSS Grid](https://www.igalia.com/2017/04/04/Shipping-CSS-Grid-Layout-in-major-browsers.html), +and standardization processes. One of most prominent success stories is [CSS Grid](https://www.igalia.com/2017/04/04/Shipping-CSS-Grid-Layout-in-major-browsers.html), which they championed and implemented in Blink and WebKit. -On the IPFS side grant will be supported by @lidel and @autonome. +On the IPFS side, grant will be supported by @lidel and @autonome. ## Detailed Requirements & Constraints @@ -75,9 +75,10 @@ Above example: - Works only when executed on matching Origin - User needs to be on `example.com` to registration to work - Displays user prompt, asking for confirmation if a handler should be registered -- Requires unknown protocols names to be prefixed with `web+` ([MDN](https://developer.mozilla.org/en-US/docs/Web/API/Navigator/registerProtocolHandler#Permitted_schemes)) +- Requires unknown protocols names to be prefixed with `web+` ([registerProtocolHandler#Permitted_schemes](https://developer.mozilla.org/en-US/docs/Web/API/Navigator/registerProtocolHandler#Permitted_schemes)) - Firefox whitelisted `ipfs://` ([bug 1428446](https://bugzilla.mozilla.org/show_bug.cgi?id=1428446)) - - Chromium requires prefix `web+ipfs://` ([bug 651311](https://bugs.chromium.org/p/chromium/issues/detail?id=651311), [intent-to-implement](https://groups.google.com/a/chromium.org/forum/#!topic/blink-dev/29sFh4tTdc)) + - Chromium requires prefix `web+ipfs://` ([bug 651311](https://bugs.chromium.org/p/chromium/issues/detail?id=651311), + [intent-to-implement](https://groups.google.com/a/chromium.org/forum/#!msg/blink-dev/29sFh4tTdcs/K4XroilVBAAJ) is blocked by [whatwg/html#3998](https://github.com/whatwg/html/issues/3998)) - In the end, is just a gloried HTTP redirect - opening `web+ipfs://bafybeigdyrzt5sfp7udm7hu76uh7y26nf3efuylqabf3oclgtqy55fbzdi` will redirect to a web-based handler at `http://example.com?uri=web%2Bipfs%3A%2F%2Fbafybeigdyrzt5sfp7udm7hu76uh7y26nf3efuylqabf3oclgtqy55fbzdi` @@ -116,7 +117,7 @@ There was an effort to reimplement an async iterator version of the PoC Protocol in the upstream codebase ([bug 1271553](https://bugzilla.mozilla.org/show_bug.cgi?id=1271553)), but it does not seem to be a priority for Mozilla at this time. -### Next: Native Protocol Handler API for Browser Extensions (this grant) +### Next: native protocol handler API for browser extensions (this grant) The work in scope of this grant is to leverage lessons from the past experiments and create a general purpose Protocol Handler API that can be used by any browser extension. @@ -127,7 +128,7 @@ To maximize the value created by this grant Chromium codebase should be used as If possible, the API should be compatible with `manifest.json/protocol_handlers` API already present in Firefox (registering handler on extension install) but with option to omit `uriTemplate` and provide a self-hosted, -programmatic handler via `chrome.protocol.registerProtocol` instead. +programmatic handler via to-be-created `chrome.*.registerProtocol` API instead. See _Acceptance Criteria_ for more details. @@ -151,21 +152,22 @@ See _Acceptance Criteria_ for more details. -- API specificiation document is approved by IPFS project +- API specification document is approved by IPFS project - Origin is based on the content root - supports streaming responses by means of async iterators - reuses HTTP semantics for caching, content type, headers and error codes - API implementation in form of patches for Chromium codebase - - allows JS running in browser extension context to register `ipfs://` and `ipns://` protocol handlers, process every request made with them and return arbitrary bytes - - released under [PL's Permissive License Stack](https://protocol.ai/blog/announcing-the-permissive-license-stack/) + - allows JS running in browser extension context to register `ipfs://` and `ipns://` protocol handlers, process every request made with them and return arbitrary bytes + - released under [PL's Permissive License Stack](https://protocol.ai/blog/announcing-the-permissive-license-stack/) or a license suggested by the Chromium project - API proliferation + - discussed with Mozilla and Chromium projects - can be enabled at a build time by browser vendors such as Brave or Edge - patches submitted to the Brave project - patches submitted to the upstream Chromium / Blink projects ## Resources - +Additional resources that might be helpful for an implementer who is working on this project. - Whitelisting Dweb protocols - [/arewedistributedyet/issues/23](https://github.com/arewedistributedyet/arewedistributedyet/issues/23) From 5c98528532de66f7f262ce9b948e04bc85d3d8e6 Mon Sep 17 00:00:00 2001 From: Marcin Rataj Date: Mon, 30 Mar 2020 15:41:46 +0200 Subject: [PATCH 062/113] clarify web+ whitelisting in manifest.json/protocol_handlers https://github.com/ipfs/devgrants/pull/30#discussion_r397652001 License: MIT Signed-off-by: Marcin Rataj --- .../protocol-handler-api-for-browser-extensions.md | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/targeted-grants/protocol-handler-api-for-browser-extensions.md b/targeted-grants/protocol-handler-api-for-browser-extensions.md index 6c95046b..186e229e 100644 --- a/targeted-grants/protocol-handler-api-for-browser-extensions.md +++ b/targeted-grants/protocol-handler-api-for-browser-extensions.md @@ -76,7 +76,7 @@ Above example: - User needs to be on `example.com` to registration to work - Displays user prompt, asking for confirmation if a handler should be registered - Requires unknown protocols names to be prefixed with `web+` ([registerProtocolHandler#Permitted_schemes](https://developer.mozilla.org/en-US/docs/Web/API/Navigator/registerProtocolHandler#Permitted_schemes)) - - Firefox whitelisted `ipfs://` ([bug 1428446](https://bugzilla.mozilla.org/show_bug.cgi?id=1428446)) + - Firefox whitelisted `ipfs://` and `ipns://` ([bug 1428446](https://bugzilla.mozilla.org/show_bug.cgi?id=1428446)) - Chromium requires prefix `web+ipfs://` ([bug 651311](https://bugs.chromium.org/p/chromium/issues/detail?id=651311), [intent-to-implement](https://groups.google.com/a/chromium.org/forum/#!msg/blink-dev/29sFh4tTdcs/K4XroilVBAAJ) is blocked by [whatwg/html#3998](https://github.com/whatwg/html/issues/3998)) - In the end, is just a gloried HTTP redirect @@ -86,10 +86,9 @@ Above example: #### Firefox: `manifest.json/protocol_handlers` -Since Firefox 59 it is possible for a browser extension to perform `navigator.registerProtocolHandler`-like handler registration during own install. +Since Firefox 59 it is possible for a browser extension to perform `navigator.registerProtocolHandler`-like handler registration during own install by defining handled URI schemes upfront in [`manifest.json/protocol_handlers`](https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/protocol_handlers). -When defined, [`manifest.json/protocol_handlers`](https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/protocol_handlers) -automatically registers a redirect-based protocol handler when browser extension is installed. +This automatically registers a redirect-based protocol handler when browser extension is installed and supports DWeb schemes, such as `ipfs://` and `ipns://` without `web+` prefix (whitelisted in [bug 1428446](https://bugzilla.mozilla.org/show_bug.cgi?id=1428446)). It removes the need for user to visit specific website, but remains a thin wrapper on top of `navigator.registerProtocolHandler` API, From 6b5e986dbcb35d3cafaad6bbbc5e4fc710aa0f60 Mon Sep 17 00:00:00 2001 From: Marcin Rataj Date: Mon, 30 Mar 2020 16:10:19 +0200 Subject: [PATCH 063/113] add TOC License: MIT Signed-off-by: Marcin Rataj --- .../protocol-handler-api-for-browser-extensions.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/targeted-grants/protocol-handler-api-for-browser-extensions.md b/targeted-grants/protocol-handler-api-for-browser-extensions.md index 186e229e..b3ec0a72 100644 --- a/targeted-grants/protocol-handler-api-for-browser-extensions.md +++ b/targeted-grants/protocol-handler-api-for-browser-extensions.md @@ -3,6 +3,20 @@ **Issuer:** @lidel and @autonome +- [Project Description](#project-description) +- [Value](#value) +- [Deliverables](#deliverables) +- [Recommended Team](#recommended-team) +- [Detailed Requirements & Constraints](#detailed-requirements-constraints) + - [Prior art: Web API for registering redirect-based handlers](#prior-art-web-api-for-registering-redirect-based-handlers) + - [Prior art: browser extension registering a redirect-based handler](#prior-art-browser-extension-registering-a-redirect-based-handler) + - [Prior art: browser extension registering a native handler](#prior-art-browser-extension-registering-a-native-handler) + - [Next: native protocol handler API for browser extensions (this grant)](#next-native-protocol-handler-api-for-browser-extensions-this-grant) +- [Milestones & Funding](#milestones-funding) +- [Acceptance Criteria](#acceptance-criteria) +- [Resources](#resources) +- [Support and Funding](#support-and-funding) + ## Project Description Browser extensions are unable to register handlers for URIs such as `ipfs://` From bf80feae3a5980a669d27d9cb0d18e8326782483 Mon Sep 17 00:00:00 2001 From: Arkadiy Kukarkin Date: Wed, 1 Apr 2020 17:45:13 -0700 Subject: [PATCH 064/113] Create FOCUS.md --- FOCUS.md | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 FOCUS.md diff --git a/FOCUS.md b/FOCUS.md new file mode 100644 index 00000000..23d6cb3f --- /dev/null +++ b/FOCUS.md @@ -0,0 +1,21 @@ +# Quarterly Focus + +## Current Focus (Q2 2020): COVID-19 Relief +The COVID-19 pandemic and quarantine have created numerous challenges. We'll be giving special consideration to proposals using IPFS to combat the effects of the crisis, such as: + +* Direct relief efforts +* Epidemiological Data durability and dissemenation +* Supply chain reorganization +* Remote work +* Community support networks and resilience +* Access to educational materials, online coursework, libraries, etc + +_(see also [COVID-19 Open Innovation Grants](https://research.protocol.ai/posts/202003-covid-grants/) from PL research)_ + +## Previous + +### Q1 2020: Hello World +For the soft launch of the Grants Plantform in early 2020 our focus was simple: listen to our community members, invite them to the table, and concentrate on the projects that address the biggest community needs. + +#### Highlights: +* [Rust IPFS](https://github.com/ipfs/devgrants/tree/master/open-grants/ipfs-rust) implementation addressing demand from embedded and web3 developers From c4bc7383aaa7fc7163936596a1913de81eb46b8f Mon Sep 17 00:00:00 2001 From: Arkadiy Kukarkin Date: Wed, 1 Apr 2020 17:47:59 -0700 Subject: [PATCH 065/113] Update README.md --- open-grants/README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/open-grants/README.md b/open-grants/README.md index ebc7df24..43446c97 100644 --- a/open-grants/README.md +++ b/open-grants/README.md @@ -5,6 +5,8 @@ Open grants are for novel ideas that advance the IPFS ecosystem, bring significa They are similar to [RFPs](../rpfs) in form, and require detailed specification. Because they potentially represent larger award amounts (sometimes upwards of **$10K**) as well as more risk, they require extensive due diligence and may not be funded in any given quarter (or at all), so please take the application process seriously. If your project is smaller in scope and less well-defined, you may want to consider [the microgrant program](../MICROGRANTS.md) instead. +Open Grants aligned with this quarter's [Focus Area](../FOCUS.md) will be given priority consideration. + ## Proposal Process To submit an open grant proposal, PR a proposal for the suggested improvement to this folder following the [open grant proposal template](open-proposal-template.md). Please cover the project being proposed (including value to the IPFS ecosystem, deliverables, development, roadmap, and budget), and the team making the proposal (including your expertise and past work). From b3495854516d0b6cc8e22ab33a54ce2e4e2b4774 Mon Sep 17 00:00:00 2001 From: Arkadiy Kukarkin Date: Wed, 1 Apr 2020 17:51:35 -0700 Subject: [PATCH 066/113] Update MICROGRANTS.md --- MICROGRANTS.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/MICROGRANTS.md b/MICROGRANTS.md index 4588a68b..0f163a5e 100644 --- a/MICROGRANTS.md +++ b/MICROGRANTS.md @@ -4,6 +4,8 @@ The IPFS Adoption Microgrants are intended to encourage experimentation with, and adoption of IPFS across a range of fields. They are offered with the understanding that decentralized technologies are a rapidly developing field with many unknowns, and do not make complete technical success of the proposal a prerequisite for the award. +Microgrants aligned with this quarter's [Focus Area](FOCUS.md) will be given priority consideration. + ### Intended Audience These grants are intended for independent developers, small studios, non-profits, activists, and researchers. The ideal candidate is a domain expert exploring integrating decentralized technologies into their work, particularly broadly used tools or frameworks. Open Source work is preferred, but exceptions can be made on a case-by-case basis. From 3526d35b5bf6f0785821b2f28cfe6dce825bb5b0 Mon Sep 17 00:00:00 2001 From: Arkadiy Kukarkin Date: Wed, 1 Apr 2020 17:52:05 -0700 Subject: [PATCH 067/113] Update MICROGRANTS.md --- MICROGRANTS.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/MICROGRANTS.md b/MICROGRANTS.md index 0f163a5e..4588a68b 100644 --- a/MICROGRANTS.md +++ b/MICROGRANTS.md @@ -4,8 +4,6 @@ The IPFS Adoption Microgrants are intended to encourage experimentation with, and adoption of IPFS across a range of fields. They are offered with the understanding that decentralized technologies are a rapidly developing field with many unknowns, and do not make complete technical success of the proposal a prerequisite for the award. -Microgrants aligned with this quarter's [Focus Area](FOCUS.md) will be given priority consideration. - ### Intended Audience These grants are intended for independent developers, small studios, non-profits, activists, and researchers. The ideal candidate is a domain expert exploring integrating decentralized technologies into their work, particularly broadly used tools or frameworks. Open Source work is preferred, but exceptions can be made on a case-by-case basis. From aba18ae864f1034898ee34e75860c5926d8913ce Mon Sep 17 00:00:00 2001 From: Arkadiy Kukarkin Date: Wed, 1 Apr 2020 17:52:37 -0700 Subject: [PATCH 068/113] Update MICROGRANTS.md --- MICROGRANTS.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/MICROGRANTS.md b/MICROGRANTS.md index 4588a68b..0f163a5e 100644 --- a/MICROGRANTS.md +++ b/MICROGRANTS.md @@ -4,6 +4,8 @@ The IPFS Adoption Microgrants are intended to encourage experimentation with, and adoption of IPFS across a range of fields. They are offered with the understanding that decentralized technologies are a rapidly developing field with many unknowns, and do not make complete technical success of the proposal a prerequisite for the award. +Microgrants aligned with this quarter's [Focus Area](FOCUS.md) will be given priority consideration. + ### Intended Audience These grants are intended for independent developers, small studios, non-profits, activists, and researchers. The ideal candidate is a domain expert exploring integrating decentralized technologies into their work, particularly broadly used tools or frameworks. Open Source work is preferred, but exceptions can be made on a case-by-case basis. From cfd0f96b8e78d7d69c825b61fc88f251910939ef Mon Sep 17 00:00:00 2001 From: Arkadiy Kukarkin Date: Wed, 1 Apr 2020 17:57:12 -0700 Subject: [PATCH 069/113] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index bb1b9311..4133eec4 100644 --- a/README.md +++ b/README.md @@ -36,7 +36,7 @@ To read more about creating an Open Grant proposal, see [OPEN GRANTS](open-grant --- ### Adoption Microgrant -These are small grants intended to help stimulate experimentation with and adoption of IPFS across a wide range of fields. The application and reporting requirements are more relaxed, but the monetary awards are more limited (~$1k). +These are small grants intended to help stimulate experimentation with and adoption of IPFS across a wide range of fields. The application and reporting requirements are more relaxed, but the monetary awards are more limited ($1k). To read more about Adoption Microgrants see [MICROGRANTS](MICROGRANTS.md). Adoption Microgrants are funded by Protocol Labs. From a6f8a530d3cd4e3a489753b2ca2737fa9b202b3c Mon Sep 17 00:00:00 2001 From: Andrew Nesbitt Date: Thu, 2 Apr 2020 15:39:55 +0100 Subject: [PATCH 070/113] Fix typo in microgrant issue template --- .github/ISSUE_TEMPLATE/microgrant.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/ISSUE_TEMPLATE/microgrant.md b/.github/ISSUE_TEMPLATE/microgrant.md index bcde4c26..1de57c62 100644 --- a/.github/ISSUE_TEMPLATE/microgrant.md +++ b/.github/ISSUE_TEMPLATE/microgrant.md @@ -1,7 +1,7 @@ --- name: Microgrant Application about: Adoption Microgrant Program -title: 'MIcrogrant: ' +title: 'Microgrant: ' labels: type:microgrant assignees: parkan From f03fe38575656dccc04de3e7c7c8c1c75fbfa3c1 Mon Sep 17 00:00:00 2001 From: Arkadiy Kukarkin Date: Mon, 6 Apr 2020 16:51:33 -0700 Subject: [PATCH 071/113] Update README.md --- README.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/README.md b/README.md index 4133eec4..e8498d6a 100644 --- a/README.md +++ b/README.md @@ -2,8 +2,6 @@ |beta| |---| -_:warning: WARNING WARNING WARNING: This is a *beta version* of the grant platform. Grant specifications, process, and tooling are all subject to change (in particular, any dollar award amounts should be treated as tentative). Please open a [META issue](https://github.com/protocol/ipfs-grants/issues/new?assignees=parkan&labels=&template=-meta--grant-platform-improvement.md&title=) with any concerns_ - Welcome to the IPFS Grant Platform! The Grant Platform connects grant makers with builders and researchers in the IPFS community. Whether you represent a foundation that wants to move the space forward, a company looking to accelerate development on the features your application needs, or a dev team itching to hack on IPFS tools, you've come to the right place. Take a look at the supported grant types and available funding + work opportunities below. ## Grant Types From 86a8b321e02946c620035f9d48e102842a1c8dfa Mon Sep 17 00:00:00 2001 From: Marcin Rataj Date: Mon, 13 Apr 2020 22:19:36 +0200 Subject: [PATCH 072/113] Prior art: Opera's native ipfs:// URI backed by a Subdomain Gateway License: MIT Signed-off-by: Marcin Rataj --- ...protocol-handler-api-for-browser-extensions.md | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/targeted-grants/protocol-handler-api-for-browser-extensions.md b/targeted-grants/protocol-handler-api-for-browser-extensions.md index b3ec0a72..f4281db4 100644 --- a/targeted-grants/protocol-handler-api-for-browser-extensions.md +++ b/targeted-grants/protocol-handler-api-for-browser-extensions.md @@ -11,6 +11,7 @@ - [Prior art: Web API for registering redirect-based handlers](#prior-art-web-api-for-registering-redirect-based-handlers) - [Prior art: browser extension registering a redirect-based handler](#prior-art-browser-extension-registering-a-redirect-based-handler) - [Prior art: browser extension registering a native handler](#prior-art-browser-extension-registering-a-native-handler) + - [Prior art: Opera's native `ipfs://` URI backed by a Subdomain Gateway](#prior-art-operas-native-ipfs-uri-backed-by-a-subdomain-gateway) - [Next: native protocol handler API for browser extensions (this grant)](#next-native-protocol-handler-api-for-browser-extensions-this-grant) - [Milestones & Funding](#milestones-funding) - [Acceptance Criteria](#acceptance-criteria) @@ -130,6 +131,20 @@ There was an effort to reimplement an async iterator version of the PoC Protocol in the upstream codebase ([bug 1271553](https://bugzilla.mozilla.org/show_bug.cgi?id=1271553)), but it does not seem to be a priority for Mozilla at this time. +### Prior art: Opera's native `ipfs://` URI backed by a Subdomain Gateway + +[Opera for Android 57] shipped native support for `ipfs://` and `ipns://` URIs. +It introduced a custom protocol handler that translates requests made to `ipfs://` to a URL at a public [subdomain gateway]. +This way each content root loaded from IPFS gets a unique Origin and is sandboxed from other ones. + +While the implementation done by Opera did not use browser extensions, the +similar approach (native `ipfs://` backed by HTTP gateway) could be leveraged +in other browsers if we empower extensions with capability to register custom +protocol handlers. + +[Opera for Android 57]: https://blog.ipfs.io/2020-03-30-ipfs-in-opera-for-android/ +[subdomain gateway]: https://docs-beta.ipfs.io/how-to/address-ipfs-on-web/#subdomain-gateway + ### Next: native protocol handler API for browser extensions (this grant) The work in scope of this grant is to leverage lessons from the past experiments From 32bc9a8a747b03ead638557aefe36cad782ec6f8 Mon Sep 17 00:00:00 2001 From: Marcin Rataj Date: Mon, 13 Apr 2020 23:07:45 +0200 Subject: [PATCH 073/113] Add Milestones 1 and 2 as suggested by Igalia License: MIT Signed-off-by: Marcin Rataj --- ...ocol-handler-api-for-browser-extensions.md | 64 ++++++++++++++----- 1 file changed, 48 insertions(+), 16 deletions(-) diff --git a/targeted-grants/protocol-handler-api-for-browser-extensions.md b/targeted-grants/protocol-handler-api-for-browser-extensions.md index f4281db4..f109847d 100644 --- a/targeted-grants/protocol-handler-api-for-browser-extensions.md +++ b/targeted-grants/protocol-handler-api-for-browser-extensions.md @@ -158,39 +158,71 @@ If possible, the API should be compatible with `manifest.json/protocol_handlers` (registering handler on extension install) but with option to omit `uriTemplate` and provide a self-hosted, programmatic handler via to-be-created `chrome.*.registerProtocol` API instead. -See _Acceptance Criteria_ for more details. +See _Milestones_ and _Acceptance Criteria_ for more details. ## Milestones & Funding **Total Funding Amount:** -**Milestones:** +**Milestones:** - - -| Milestone No. | Milestone Description | Funding | Estimated Timeframe | -| --- | --- | --- | --- | -| 1 | Initial API design | $X | Y weeks | -| 2 | PoC API implementation in Chromium | $X | Y weeks | -| 3 | Reusable Chromium/Blink patches work with Brave | $X | Y weeks | -| 4 | ? | $X | Y weeks | -| 5 | ? | $X | Y weeks | +| Milestone No. | Milestone Description | +| --- | --- | +| 1 | Enhance `registerProtocolHandler()` to whitelist ”ipfs” and ”ipns” protocols | +| 2 | Support `protocol_handlers` key in Chromium extensions | +| 3 | Implement a native protocol handler API for browser extensions | ## Acceptance Criteria -- API specification document is approved by IPFS project +### Milestone 1: Enhance `registerProtocolHandler()` to whitelist ”ipfs” and ”ipns” protocols + +- Restart discussion and find a browser vendor consensus at + https://github.com/whatwg/html/issues/3998 +- Update https://html.spec.whatwg.org to reflect these changes. +- Add/Update web platform tests at https://github.com/web-platform-tests/wpt + accordingly. +- Restart discussion at + https://groups.google.com/a/chromium.org/forum/#!msg/blink-dev/29sFh4tTdcs/K4XroilVBAAJ +- Ensure the intent is up-to-date with the latest criteria at + https://www.chromium.org/blink/launching-features +- Submit new patches against the latest upstream and land them into Chromium. +- Any extra tasks suggested by reviewers to get this accepted (e.g. meeting + with API owners, adding a runtime flag, whitelist more protocols, switch to a + blacklist, remove the title argument, security improvements, etc). + +### Milestone 2: Support `protocol_handlers` key in Chromium extensions + +- Coordinate with Microsoft and Google on this proposal, in particular: + https://github.com/MicrosoftEdge/MSEdgeExplainers/issues/280 + https://github.com/MicrosoftEdge/MSEdgeExplainers/issues/230 +- Ensure that at least the ”ipfs” and ”ipns” protocols are allowed. +- Make any change to Mozilla’s implementation if necessary +- Analyze code and get in touch with Chromium’s community to understand the + process to extend https://developer.chrome.com/extensions, propose a new API, + how they are used in Chromium-based browsers other than Chrome, if a runtime + flag is needed, etc. +- Write PoC patches adding support for this in Chrome’s extensions. +- Submit patches upstream and land them, with any extra tasks suggested by + reviewers to get this accepted (e.g. installation prompt for security, tests, + etc). + +### Milestone 3: Implement a native protocol handler API for browser extensions + +- API specification is approved by IPFS project - Origin is based on the content root - supports streaming responses by means of async iterators - reuses HTTP semantics for caching, content type, headers and error codes + - likely similar to libdweb’s proposal and an extension of + `protocol_handlers` from task Milestone 2. - API implementation in form of patches for Chromium codebase + - experimental build to test integration with IPFS Companion browser extension - allows JS running in browser extension context to register `ipfs://` and `ipns://` protocol handlers, process every request made with them and return arbitrary bytes - - released under [PL's Permissive License Stack](https://protocol.ai/blog/announcing-the-permissive-license-stack/) or a license suggested by the Chromium project - API proliferation - - discussed with Mozilla and Chromium projects - - can be enabled at a build time by browser vendors such as Brave or Edge - - patches submitted to the Brave project + - released under [PL's Permissive License Stack](https://protocol.ai/blog/announcing-the-permissive-license-stack/) or a license suggested by the Chromium project + - discussed with Microsoft, Mozilla and Chromium projects + - patches can be integrated into the codebase of other Chromium-based browsers such as Edge or Brave. - patches submitted to the upstream Chromium / Blink projects ## Resources From 9a0b31edbc812189860662eb6ca67a496082e022 Mon Sep 17 00:00:00 2001 From: Marcin Rataj Date: Tue, 14 Apr 2020 00:44:59 +0200 Subject: [PATCH 074/113] Clarify Milestones & Funding License: MIT Signed-off-by: Marcin Rataj --- .../protocol-handler-api-for-browser-extensions.md | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/targeted-grants/protocol-handler-api-for-browser-extensions.md b/targeted-grants/protocol-handler-api-for-browser-extensions.md index f109847d..faac2e6d 100644 --- a/targeted-grants/protocol-handler-api-for-browser-extensions.md +++ b/targeted-grants/protocol-handler-api-for-browser-extensions.md @@ -162,7 +162,12 @@ See _Milestones_ and _Acceptance Criteria_ for more details. ## Milestones & Funding -**Total Funding Amount:** +**Estimated Funding Amount:** 36000 USD (based on hours agreed between Igalia and Protocol Labs) + +Note: due to the nature of this exploratory grant, in the event of a Milestone +landing being blocked completely before the completion of the full hours, the +billing may be under the estimated total and grant recipient will bill only +hours worked. **Milestones:** From f55c64a75e62256b4fb6f1b9e9d544534cdc7a28 Mon Sep 17 00:00:00 2001 From: okdistribute <633012+okdistribute@users.noreply.github.com> Date: Tue, 14 Apr 2020 12:38:54 -0700 Subject: [PATCH 075/113] add open street map grant --- targeted-grants/open-street-map-ipfs.md | 109 ++++++++++++++++++++++++ 1 file changed, 109 insertions(+) create mode 100644 targeted-grants/open-street-map-ipfs.md diff --git a/targeted-grants/open-street-map-ipfs.md b/targeted-grants/open-street-map-ipfs.md new file mode 100644 index 00000000..19f12ccc --- /dev/null +++ b/targeted-grants/open-street-map-ipfs.md @@ -0,0 +1,109 @@ +# Targeted Grant: Open Street Map hosted on IPFS + Filecoin + +**Issuer:** @autonome + @mishmosh +**Recipient:** @okdistribute + +## Project Description + + + +We are building Peermaps, a distributed, offline-friendly alternative to commercial map providers such as Google Maps. Instead of fetching data from a centralized tile service, your computer fetches map data from other peers across the network. With the powerful inverse scaling dynamics of peer-to-peer, we can run a mapping platform at a fixed, modest cost, no matter how popular it becomes. + +We've developed a new standard format for map data that is better for decentralized contexts. [This specification can be found here.](https://github.com/peermaps/docs/blob/master/bufferschema.md) The original OSM data format is XML and is not great for random access or space efficiency. But both of these features -- small footprint and efficient access -- will be critical for practical use on a distributed storage network. A typical size for data in XML format is at least 87GB, and the OSM pbf format reduces it to 50GB. The peermaps format should be much smaller and faster by using compact buffers, triangulation, and clever indexing developed in Rust. + +This grant will help us use IPFS as a "hot" peer-to-peer storage network for Peermaps data for near-real-time access. This will be a premiere application built on IPFS that will greatly improve digital mapping. There is between 3-4GB of XML updated per week on OpenStreetMap -- we (bits.coop peermaps team) will run a node will download, diffs, and pack those changes into the Peermaps format on a regular basis. + +This script will also put OpenStreetMap data in the original (.pbf) format on the IPFS and Filecoin networks for cold storage, improving the overall resiliency and download speeds for the data. We figured this will be nice to do at the same time, since the processing node will have to downloading these large OSM files anyway, it would make sense to also upload the original (pre-processed) versions to IPFS and Filecoin. + + +## Value + + + + +We will be able to lower costs for developers who are currently using embedded Google Maps or Mapbox, which both cost money per impression after a certain limit. + +Currently a developer creating a website with a map will have to pay substantial money per impression. For example, 1 million impressions * $0.07 = $70,000. Although there are often volume discounts, this gives you an idea of how expensive this can be for the unfortunately popular individual developer or small startup. + +OpenStreetMap is an amazing example of public-interest technology and community-run critical digital infrastructure. They have managed to make a competitive product to Google maps, and they serve a substantial volume of requests. Decentralizing their storage -- both for hot and cold access -- could drastically lower costs for the community to maintain this public interest dataset. Peer to peer protocols like IPFS will be able to spread out the work of hosting very large files among all the participants in the network who are interested in a file. Centralized services can be overwhelmed if too many people want to download a file, but p2p services flip scaling on its head: the more people are downloading and sharing, the better the network works for everyone. + +## Deliverables + + + + +1. `peermaps/ingest`: A library for injesting and diffing OpenStreetMap data, handling periodic changes. This tool will convert OpenStreetMap into the Peermaps format. This deliverable is co-funded by this devgrant and SamsungNEXT; +2. Commandline tool using `peermaps/ingest` to diff .pbf files, convert to the Peermaps format, and pin both data formats on IPFS; +3. Commandline tool using `peermaps/ingest` .pbf files, convert to the Peermaps format, and pin both data formats on Filecoin +4. Post about the project for the IPFS blog +5. Demo page with example code for map view in an HTML page (we were planning + on doing this anyway, so not included in Milestones/Funding) +6. Report on feasability, usability, experience building on Filecoin/IPFS apis. + +## Team + + + + +* @okdistribute- Grant recipient. 3rd member of dat in 2014, peer-to-peer software developer with experience in developing mission-critical production applications. +* @substack, @mk30, @sedmonds, bits.coop - Technical advisors for peermaps +* Dietrich Ayala, Michelle Lee - PL Grant advisors + +## Milestones & Funding + +**Total Funding Amount:** $17,100 + +Milestone | Hours | Cost +--- | --- | --- +Research and experimentation with Filecoin and IPFS APIs, compiling report about feasibility and usability when building on both. | 16 | $1,800.00 +New repository `peermaps/spec` that further formalizes the Peermaps specification depending on factors related to IPFS and Filecoin to improve performance and usability | 16 | $1,800.00 +v1 of the `peermaps/ingest` library in Rust | 64 | $7,200.00 +Documentation, automated testing suite, bug fixes, and performance enhancments as necessary for `peermaps/ingest` at v1.0.x | 32 | $3,600.00 +Commandline tool to diff .pbf files, convert to the Peermaps format, and pin both data formats on IPFS | 12 | $1,350.00 +Commandline tool to diff .pbf files, convert to the Peermaps format, and pin both data formats on Filecoin | 12 | $1,350.00 +**Total** | | **$17,100.00** + +## Detailed Requirements & Constraints + + +We plan to run the script on a node as soon as we get the commandline tool +ready. Long-term goal of this project (1+ years from now) is to make this +downloading/packing/indexing be done with distributed computation, rather than +on a single machine. Ideally, other groups in maplandia would be interested in +running the infra/CI and we could share the computation load. + +We'd also be happy to run the script on the IPFS collaborative cluster infra as +well: https://blog.ipfs.io/2020-01-09-collaborative-clusters/. + +## Acceptance Criteria + + + +* A bash script can download the latest .pbf file from OpenStreetMap website and run the commandline tool to host the latest OpenStreetMap and Peermaps data on IPFS and Filecoin. +* A user can use an IPFS or Filecoin client to download both Peermaps and OpenStreetMap data. +* Peermaps team will maintain a mirror of this data. + +## Resources + + + +* OpenStreetMap weekly data dump (planet.osm, 87GB): https://planet.openstreetmap.org/ +* Peermaps website: peermaps.org +* Google Maps Pricing: https://cloud.google.com/maps-platform/pricing/sheet/ +* MapBox Pricing: https://www.mapbox.com/pricing/ +* How to download OSM data: https://wiki.openstreetmap.org/wiki/Downloading_data +* Statistics of daily users: https://www.openstreetmap.org/stats/data_stats.html +* Diff size can range between 3-4GB of XML per week. + +## Support and Funding + + + +This grant is funded by Protocol Labs. From a4944b52e2d32e6502ae8ea8dc6ecf8a7ed40631 Mon Sep 17 00:00:00 2001 From: okdistribute <633012+okdistribute@users.noreply.github.com> Date: Tue, 14 Apr 2020 14:44:59 -0700 Subject: [PATCH 076/113] fix: updates after review --- targeted-grants/open-street-map-ipfs.md | 23 ++++++++--------------- 1 file changed, 8 insertions(+), 15 deletions(-) diff --git a/targeted-grants/open-street-map-ipfs.md b/targeted-grants/open-street-map-ipfs.md index 19f12ccc..dcbf2a34 100644 --- a/targeted-grants/open-street-map-ipfs.md +++ b/targeted-grants/open-street-map-ipfs.md @@ -38,8 +38,7 @@ OpenStreetMap is an amazing example of public-interest technology and community- 2. Commandline tool using `peermaps/ingest` to diff .pbf files, convert to the Peermaps format, and pin both data formats on IPFS; 3. Commandline tool using `peermaps/ingest` .pbf files, convert to the Peermaps format, and pin both data formats on Filecoin 4. Post about the project for the IPFS blog -5. Demo page with example code for map view in an HTML page (we were planning - on doing this anyway, so not included in Milestones/Funding) +5. Demo page with example code for map view in an HTML page using the Peermaps data published from IPFS. 6. Report on feasability, usability, experience building on Filecoin/IPFS apis. ## Team @@ -70,23 +69,17 @@ Commandline tool to diff .pbf files, convert to the Peermaps format, and pin bot Also include any relevant constraints that the implementer should be aware of before beginning this project.--> -We plan to run the script on a node as soon as we get the commandline tool -ready. Long-term goal of this project (1+ years from now) is to make this -downloading/packing/indexing be done with distributed computation, rather than -on a single machine. Ideally, other groups in maplandia would be interested in -running the infra/CI and we could share the computation load. +We plan to run the commandline tool to diff pbf files, convert to the +Peermaps format, and upload to IPFS. This will be run on a computer every week. +This is how often a new OSM diff file is published. Long-term goal of this +project (1+ years from now) is to make this downloading/packing/indexing be +done with distributed computation, rather than on a single machine. Ideally, +other groups in maplandia would be interested in running the infra/CI and we +could share the computation load. We'd also be happy to run the script on the IPFS collaborative cluster infra as well: https://blog.ipfs.io/2020-01-09-collaborative-clusters/. -## Acceptance Criteria - - - -* A bash script can download the latest .pbf file from OpenStreetMap website and run the commandline tool to host the latest OpenStreetMap and Peermaps data on IPFS and Filecoin. -* A user can use an IPFS or Filecoin client to download both Peermaps and OpenStreetMap data. -* Peermaps team will maintain a mirror of this data. - ## Resources From 9f469302f45768796454f1d7445b40082acb7d97 Mon Sep 17 00:00:00 2001 From: Marcin Rataj Date: Wed, 15 Apr 2020 15:06:21 +0200 Subject: [PATCH 077/113] =?UTF-8?q?fix:=20to=20=E2=86=92=20for?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit License: MIT Signed-off-by: Marcin Rataj --- targeted-grants/protocol-handler-api-for-browser-extensions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/targeted-grants/protocol-handler-api-for-browser-extensions.md b/targeted-grants/protocol-handler-api-for-browser-extensions.md index faac2e6d..a5662bc0 100644 --- a/targeted-grants/protocol-handler-api-for-browser-extensions.md +++ b/targeted-grants/protocol-handler-api-for-browser-extensions.md @@ -88,7 +88,7 @@ navigator.registerProtocolHandler('web+ipfs', Above example: - Works only when executed on matching Origin - - User needs to be on `example.com` to registration to work + - User needs to be on `example.com` for registration to work - Displays user prompt, asking for confirmation if a handler should be registered - Requires unknown protocols names to be prefixed with `web+` ([registerProtocolHandler#Permitted_schemes](https://developer.mozilla.org/en-US/docs/Web/API/Navigator/registerProtocolHandler#Permitted_schemes)) - Firefox whitelisted `ipfs://` and `ipns://` ([bug 1428446](https://bugzilla.mozilla.org/show_bug.cgi?id=1428446)) From 8e2acfcc8728c6dfa454560e731d394a1119b792 Mon Sep 17 00:00:00 2001 From: John Ericson Date: Thu, 16 Apr 2020 11:10:14 -0400 Subject: [PATCH 078/113] =?UTF-8?q?Propose=20Open=20Grant=20Nix=20=C3=97?= =?UTF-8?q?=20IPFS?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- open-grants/open-proposal-nix-ipfs.md | 290 ++++++++++++++++++++++++++ 1 file changed, 290 insertions(+) create mode 100644 open-grants/open-proposal-nix-ipfs.md diff --git a/open-grants/open-proposal-nix-ipfs.md b/open-grants/open-proposal-nix-ipfs.md new file mode 100644 index 00000000..a7d15489 --- /dev/null +++ b/open-grants/open-proposal-nix-ipfs.md @@ -0,0 +1,290 @@ +# Open Grant Proposal: Nix × IPFS + +**Name of Project:** Nix × IPFS + +**Proposer:** John Ericson ([@Ericson2314](https://github.com/Ericson2314)) on behalf of Obsidian Systems + +**Do you agree to open source all work you do on behalf of this RFP and dual-license under MIT and APACHE2 licenses?:** Yes, except where it is not possible due to existing licenses. + +All work will be open sourced, and MIT and APACHE2 used where possible, but Nix is LGPL 2.1 (as stated in https://github.com/nixos/nix#license) and so the changes to Nix itself must be under that license. + +# Project Description + +Nix and IPFS are a match made in heaven. +Nix has been using its own Merkel-style hashing scheme for package management since its debut in 2003, and has risen to prominence in recent years, with over 220,000 commits on its [main repository](https://github.com/NixOS/nixpkgs). +Users of Nix see benefits like reproducible, immutable builds and the guarantee that packages installed side-by-side will never conflict. +Some of the primary problems that users of Nix encounter are: + +1. Package cache servers are annoying to configure, require a high level of trust, and do not benefit from network locality +2. Reproducible builds break down when original sources disappear from the internet +3. Nix tends to use more disk space than other package managers + +We believe that IPFS is the perfect solution to all of these issues. + +1. By providing a cache through IPFS, it will become self-configuring, trustless, and peer-to-peer +2. IPFS's pinning capabilities give organizations an easy way to ensure sources don't get lost +3. An improved caching and pinning system will increase storage flexibility and robustness, allowing users to more aggressively trim their storage usage on devices with limited storage + +This proposal outlines a plan to make open-source contributions which will allow Nix and IPFS to fully interoperate, yielding all of these benefits. +Since Nix's logical approach is already so deeply compatible with IPFS, this can be done without major reworking of the Nix codebase, and without breaking Nix's existing user experience. + +At Obsidian, we use Nix for all of our production software pipelines as well as developer computing environments. +Although we're thrilled with Nix in comparison to other alternatives, we have been looking for solutions to the problems mentioned above for quite some time. +Based on our discussions with other members of the Nix community, we believe that many Nix users will embrace an IPFS-based solution, leading to a substantial influx of user and data into the IPFS ecosystem. + +## Value + +### Milestone 1: Distribution with IPFS + +Existing mechanisms for data distribution in Nix suffer from a variety of persistence and availability issues that IPFS would solve, bringing a large and active community into the IPFS ecosystem. + +#### Source Code Distribution with IPFS + +At the conclusion of this milestone, Nix users will be able to share and distribute source code with IPFS. + +Nixpkgs has tens of thousands of packages, so over time as the Nix-specific hashes are replaced, the result is as many new pin-worthy CIDs being part of the IPFS ecosystem. + +Currently, it is possible but cumbersome for IPFS to be used with Nix to share sources. +By adding support in Nix for using IPFS content addresses, this will be greatly simplified, encouraging Nix users to make use of IPFS. +In return, Nix users will be able to easily ensure that sources will never disappear. + +#### Deployments and DevOps with IPFS + +This milestone will make it possible to deploy finished builds via IPFS, with IPFS either being a means move the data to deployment systems or an IPFS FUSE layer being the backing filesystem for deployment systems itself. + +This will substantially improve the experience for deploying large clusters, due to IPFS's ability to do peer-to-peer (BitTorrent-style) transfers. + +### Milestone 2: Building with IPFS + +Once Milestone 1 has enabled the use of IPFS as a distribution mechanism for source code and finished builds, the logical next step is to bridge the gap so different parties can leverage IPFS to collaborate. + +Nix's end-to-end build plans, together with IPFS's availability, can make Nix × IPFS the dominant way to get complete 1-click development environments to new devs, no clunky non-composable VMs needed. + +#### Sharing build artifacts + +This milestone will eliminate the current false choice between content-addressing (but needing to know the content address ahead of time) and not content addressing at all. +Nix build steps—not just retrieval steps—will also produce content-addressed build products out of the box. + +This milestone will allow build plans to automatically use IPFS-compatible data every step of the way. +This produces perhaps the first complete decentralized building solution. + +#### Adjudicating between sources of builds + +Build plans will be shared on IPFS. +Build farms will publish the mapping from build steps to output hashes. +The trustless and trust-needed parts of build caching will be cleanly separated. + +The trust mapping from build steps to output hashes can be published on IPFS just like the builds themselves, and subscribed with IPNS. +Users can compare trusted mapping to ascertain the existence of lingering non-determinism or reevaluate their trust. + +The entire sources -> build plans -> build products -> deployables lifecycle will be tightly integrated with IPFS. + +## Deliverables + +### Milestone 1: Data with IPFS + +- **Hashing**: Hash files with git tree hashes + +- **Retrieval**: Give `builtins.fetchgit` and friends git tree hash support + +- **Git-IPLD**: Ensure git tree hashes with IPLD are implemented + +- **Store**: Nix IPFS store implementation + +- **Export**: Nix export to IPFS, with pinning support + +- **Itemize**: IPFS-compatible content-addressed store items with references + +### Milestone 2: Building with IPFS + +- **Content-addressed derivations**: Build steps ("derivations") which produce outputs that are both content-addressed but don't have a predetermined content address + +- **IPLD derivations**: Build steps are in an IPFS native format for easy consumption + +- **Publishing**: Publish resolved IPLD derivation -> outputs table on IPFS + +- **Subscribe**: Subscribe to trusted peer's output maps with IPNS + +- **Remote Building**: Trustless remote builders can take requests from any client (optional) + +## Development Roadmap + +### Milestone 1: Data with IPFS + +**Estimate:** 160 Developer hours + +**Staffing:** 3 Developers, 1 PM, 1 QA + +**User Stories:** + +- *A user can deterministically fetch from git using no Nix-specific hashes, so that anything they fetch is ready to be shared over IPFS without manual effort.* + +- *A user of Nix can expect Nix to use IPFS to fetch any fixed output data they want in the IPFS network, so that they can efficiently download the sources they need with less risk of bit-rot.* + +- *A user can export sources they've already downloaded to share with IPFS, so that the data won't bit rot* + +- *A user can manually convert any (potentially non-content-addressed) store time into a content-addressed store item shareable with IPFS, so that they can use IPFS to deploy builds in creative ways.* + +#### Hash files with git tree hashes + +Nix currently either hashes a single file (flat mode), or files and directories in a format only it uses (NAR -- nix archives). + +Nix should instead use something standard. +IPFS has its UnixFS (https://docs.ipfs.io/guides/concepts/unixfs/) but it is evolving and currently allows metadata that Nix purposely does not. +Given that the overwhelming source for source code in Nixpkgs today is git, and the filesystem metadata support does align, git tree hashes are the safer option, and something IPLD also intends to support. + +#### Give `builtins.fetchgit` and friends git tree hash support + +Nix already has some special built-in retrieving support for Git, in addition to regular user-written arbitrary retrieval steps, newly factored out in a `libnixfetchers`. +We will give that library tree hash support too. + +#### Ensure git tree hashes with IPLD are implemented + +Git hashes can be turned into CID hashes, but we were unable to confirm how to get data from git into IPFS to be referenced with one of those hashes. + +If this is in fact unimplemented, we are happy to implement it in IPFS. +(Either just the Go implementation which we'll use, or both the Go and JS ones for sake ecosystem consistency). + +#### Milestone 1 Nix IPFS store implementation + +With the above improvements to Nix, we can, with relative ease, create a new implementation of Nix's Store interface which uses IPFS to obtain content-addressed data that uses git tree hashes from the network. +Nix just needs to download data for now—we can store it twice on both the IPFS and Nix sides to both easily reshare with the network and prevent leeching, keeping this first milestone as simple as possible. + +Beyond changing Nix itself, we will adjust all the relevant NixOS modules to ensure the Nix daemon can communicate with the IPFS daemon. + +#### Deliverable: Nix export to IPFS, with pinning support + +Until now, the IPFS store was something we could only "read from". +We will implement the other methods so we can "write to" IPFS. +Exporting may or may not pin on the IPFS side as the user chooses + +#### Deliverable: IPFS-compatible content-addressed store items with references + +Previously, we added git tree-hash support to Nix. +Git tree hashes, however, provide no way to deal with references to other store paths. +Nix currently does support content-addressed store paths with references but uses a variation of its bespoke NAR file format for this. + +We'll combine git tree hashes, the references to other store items, and a boolean for whether there is a self-reference in an IPLD wrapper. +We can reuse much of the existing implementation, with only the NAR components being replaced with the underlying file ingestion method (git tree hash, etc). + +### Milestone 2: Building with IPFS + +**Estimate:** 260 Developer hours + +**Staffing:** 3 Developers, 1 PM, 1 QA + +**User Stories:** + + - *A user can build a derivation and have its output be content addresses, so it is efficient to share and use as a dependency in downstream builds.* + + - *A user can use the IPFS network as a binary cache for non-fixed output builds.* + +#### Deliverable: Floating content-addressable derivations + +With this change, derivations (individual build steps in the build plan graph) can produce content-addressed data directly, without requiring a separate conversion step as before. + +This is currently being discussed in [Nix RFC #62](https://github.com/NixOS/rfcs/pull/62). +Some details will be further informed by actually writing an implementation, but this can be taken as evidence of the interest in this feature. + +For Nix + IPFS, this is required so that regular unknown-output build products can be content addressed just like fixed-output derivations, which will allow them to be shared on IPFS too. + +#### Deliverable: IPLD derivations + +With entirely new-style derivations (fixed and floating content-addressed derivations) the exact derivation format is less important as it is not used to calculate any paths containing build outputs—all data is content-addressed. +As such, we can freely make big changes without worrying about major backwards compatibility hazards. + +Taking advantage of this, we can make a new IPLD-based derivation format modeled after the json output that `nix show-derivation` uses. + +#### Deliverable: Publish resolved IPL derivation -> outputs table on IPFS + +We will publish the rows of the resolved derivation -> outputs table that use IPLD derivations- those rows themselves have an IPLD of a list of pairs (CID values)- or better a map if the restriction that keys are strings is ever lifted. + +This will likely make use of IPNS to manage the map's growth. + +#### Deliverable: Subscribe to trusted peer's output maps + +When looking up a non-content addressed key such as the output of a derivation, we will consult the output maps of trusted peers and use that to choose content addressed to download from IPFS. + +In general, when downloading a number of things that are interdependent, multiple choices for a build translate into decision trees as they constrain dependencies. +We have to be coherent so that the same `drv!output -> content address` choice is made for all dependencies. +No building against one version and then being substituted with another. + +Optimal choosing is quite difficult, as discussed in the Nix thesis, but we don't need to aim for optimality, It is sufficient to be strictly path dependent based on what was previously built/downloaded. +The user can evict entries in the store if there is unavoidable conflict and then try again to effect a human-in-the-loop backtracking search algorithm. + +#### Milestone 2.1: Trustless Remote Building (Optional) + +**Estimate:** 20 developer hours + +**User Stories:** + +- *A user should be able to use a remote build server without the server trusting the user's machine, so that build farms can take build requests from employees, customers from the general public, etc.* + +This step is strictly not necessary for IPFS. +However, it is also: + + 1. A useful intermediate milestone in what is otherwise the longest and highest-risk gap between deliverables + + 2. Very little marginal extra effort (roughly 3 days) + + +##### Deliverable: Trustless remote store build protocol + +A client should be able to use a remote build server without the server trusting the client's Nix cache. +Currently, it has to trust the client for data it cannot verify. +We will make the server compute the data for itself, and compute it using less client-provided data than was previously thought possible, maintaining equal performance. + +## Total Budget Requested + +| Milestone | Developer Hours | Hourly Rate | PM + QA Overhead | Total | +|-|-|-|-|-| +| Milestone 1 | 160 | $125 USD | 15% | $23,000 USD | +| Milestone 2 | 260 | $125 USD | 15% | $37,375 USD | +| Milestone 2.1 | 20 | $125 USD | 15% | $2,875 USD | +| **Total** | **440** | | | **$63,250 USD** | + +## Maintenance and Upgrade Plans + +All changes to Nix we will upstream, breaking changes into PRs and writing [RFCs](github.com/nixos/rfcs) as needed. + +Changes may be requested during the RFC process, in which case we will make those changes, but we do not expect outright rejection as we think these features will be extremely popular. + +Once everything is upstreamed we will continue, as a major industrial user of Nix, to help maintain Nix and the surrounding ecosystem—but the large and active community as a whole will ultimately be responsible for upstream stewardship. + +# Team + +Obsidian Systems will staff this project with 3 Developers, one Project Manager, and one Quality Assurance Engineer. + +## Team Members + +Obsidian Systems is a software consultancy with many skilled team members who will contribute to this project. + +Our efforts will be led by [John Ericson (@Ericson2314)](https://github.com/Ericson2314), a prominent member of the Nix community. +Other Nix and NixOS maintainers on our team who will be involved include [Ryan Trinkle (@ryantrinkle)](https://github.com/ryantrinkle) (who is also a co-founder of Obsidian Systems) and [Matthew Bauer (@matthewbauer)](https://github.com/matthewbauer). + +## Team Website + +https://obsidian.systems/ + +## Relevant Experience + +Obsidian Systems has been using Nix for both production systems and developer computing environments since it was founded in 2014. +We've been substantially involved in the Nix community, contributing hundreds of patches, maintaining or co-maintaining key codebases, and presenting at conferences such as NixCon. + +Our team lead, John Ericson, has been using and contributing to NixOS and Nixpkgs for the last 7 years, with almost 500 PRs merged to date. +He is also is a shepherd for [Nix RFC #62](https://github.com/NixOS/rfcs/pull/62), a proposal that has already built some consensus for the work contemplated in this proposal. +John is also the primary maintainer of Nixpkgs' cross-compilation infrastructure, which allows developers to easily port their code to a wide variety of computing systems, including embedded and IoT devices. + +## Team code repositories + + - https://github.com/nixos/nix/pulls/Ericson2314 + + @Ericson2314's existing pull requests, many of which are relevant to both milestones. + + - https://github.com/haskell-nix/hnix + + An interpreter and analysis tool for the Nix package description language with extensive contributions from Obsidian engineers. + +# Additional Information + +None at this time. From 2185fa7b2042ce1d7be757dd7e94d63478e4f251 Mon Sep 17 00:00:00 2001 From: Mark Robert Henderson Date: Fri, 17 Apr 2020 21:18:41 -0400 Subject: [PATCH 079/113] Rust IPFS Milestone Report, Phase 1.2 (#5) --- open-grants/ipfs-rust/reports/phase-1.2.md | 112 +++++++++++++++++++++ 1 file changed, 112 insertions(+) create mode 100644 open-grants/ipfs-rust/reports/phase-1.2.md diff --git a/open-grants/ipfs-rust/reports/phase-1.2.md b/open-grants/ipfs-rust/reports/phase-1.2.md new file mode 100644 index 00000000..49642f96 --- /dev/null +++ b/open-grants/ipfs-rust/reports/phase-1.2.md @@ -0,0 +1,112 @@ +

+
+ Rust IPFS: Phase 1.2 Milestone Report +

+ +The IPFS Rust team completed Phase 1.2 roughly one week after the estimated time, due both in part to residual governance issues as well as some unforseen complications. In spite of the delay, everything proposed in original grant is now delivered. + +The following activities were completed: + +- [HTTP endpoints](#http-endpoints). + - [`/block`](#block) + - [`/dag`](#dag) + - [`/refs/*`](#refs) + - [`/bitswap/*`](#bitswap) +- [Miscellaneous](#miscellaneous) bug fixes and small refactors +- [Interface Test Refactoring](#interface-test-refactoring), which was required for certain tests +- [Conformance testing](#conformance-testing) +- [Governance](#governance) discussions took place, and some decisions were made + +## HTTP Endpoints + +### /block + +The grant team successfully implemented the [`/block`](https://github.com/ipfs-rust/rust-ipfs/issues/90) endpoint suite. + +For now we treat all CIDs as V1 internally, [upgrading them on the way in](https://github.com/ipfs-rust/rust-ipfs/blob/master/src/repo/mod.rs#L119) and only performing the conversion back to V0 if requested or in special cases, e.g. [`refs/local`](https://github.com/ipfs-rust/rust-ipfs/pull/160). + +Relevant pull requests: +- [Foundational work](https://github.com/ipfs-rust/rust-ipfs/pull/137) +- [Implements V0 <--> V1 Conversion](https://github.com/ipfs-rust/rust-ipfs/pull/158) +- [`/block/rm`](https://github.com/ipfs-rust/rust-ipfs/pull/153) + +### /dag + +The grant team successfully implemented the [`/dag`](https://github.com/ipfs-rust/rust-ipfs/issues/91) endpoint suite. + +A large amount of knowlege has been gained specifically in the area of Ipld path walking, with a by-product of varying approaches in the codebase, each with different properties, features, and use cases. We'd like to narrow those down and would seek Protocol Lab's guidance in coming together with a cohesive approach. + +Relevant pull requests: +- [`/dag/put`](https://github.com/ipfs-rust/rust-ipfs/pull/137) and [fix](https://github.com/ipfs-rust/rust-ipfs/pull/157) +- [`dag/resolve`](https://github.com/ipfs-rust/rust-ipfs/pull/158) + +### /refs + +The grant team successfully implemented the [`/refs`](https://github.com/ipfs-rust/rust-ipfs/issues/92) endpoint suite. + +Please note the _necessary_ usage of [`unsafe`](https://github.com/ipfs-rust/rust-ipfs/blob/master/http/src/v0/support/unshared.rs#L36) here is due to a compiler bug. This well documented in the code with links to the [hyper](https://github.com/hyperium/hyper/issues/2159), [Rust internals](https://internals.rust-lang.org/t/what-shall-sync-mean-across-an-await/12020), and [async-trait](https://github.com/dtolnay/async-trait/issues/77) issues. Once the compiler bug is fixed, this issue should go away. The warp framework does not share mutable state in its responses. so a "real" problem arising here is very, very unlikely. + +Relevant pull requests: +- [`/refs`](https://github.com/ipfs-rust/rust-ipfs/pull/147) +- [`/refs/local`](https://github.com/ipfs-rust/rust-ipfs/pull/150) + +### /bitswap + +The grant team successfully implemented the [`/bitswap`](https://github.com/ipfs-rust/rust-ipfs/issues/93) endpoint suite. Overall this was straightforward. Also note that the bitswap crate is currently a refactoring candidate, with a [number of discussion issues](https://github.com/ipfs-rust/rust-ipfs/issues?q=is%3Aopen+is%3Aissue+label%3Abitswap+label%3Arefactoring) arising as to its purpose and approach. PL's guidance would be helpful here as well. + +Relevant pull requests: +- [`/bitswap`](https://github.com/ipfs-rust/rust-ipfs/pull/131) + +## Miscellaneous + +Relevant pull requests: +- [Subscription deadlocks](https://github.com/ipfs-rust/rust-ipfs/pull/130) were discovered and fixed +- [Flaky tests](https://github.com/ipfs-rust/rust-ipfs/pull/133) were fixed +- The [domain](https://github.com/ipfs-rust/rust-ipfs/pull/151) crate is slightly outdated, so it was pinned to a specific commit +- Small refactor to [remove some `&mut`s](https://github.com/ipfs-rust/rust-ipfs/pull/155) from the codebase +- [`clippy --workspace --tests --examples`](https://github.com/ipfs-rust/rust-ipfs/pull/156) was added to CI, and the resultant [clippy warnings](https://github.com/ipfs-rust/rust-ipfs/pull/159) were dealt with + +## Interface Test Refactoring + +It was discovered during this effort that many if the interface and interop tests use a diversity of APIs, not just the ones being tested, i.e. `ipfs.add` is used in the `refs.local` tests. With the philosophy that the tests should utilize "lower-level" APIs such as `ipfs.block.put`. + +With permission from PL, a number of PRs were made to js-ipfs, two of which have already been merged: +- [ipfs/js-ipfs#2980](https://github.com/ipfs/js-ipfs/pull/2980) +- [ipfs/js-ipfs#2983](https://github.com/ipfs/js-ipfs/pull/2983) +- [ipfs/js-ipfs#2972](https://github.com/ipfs/js-ipfs/pull/2972) +- [ipfs/js-ipfs#2982](https://github.com/ipfs/js-ipfs/pull/2982) + +## Conformance Testing + +### Interface + +The grant team is happy to report that **102 interface tests now pass** on the latest build of Rust IPFS. + +The roster of supported endpoints now includes: + +* `/pubsub/{ publish, subscribe, unsubscribe, peers, ls }` +* `/swarm/{connect, peers, addrs, localAddrs, disconnect }` +* `/id` +* `/version` +* `/stop` +* `/block{ get, add, rm, stat }` +* `/dag{ get, put, resolve }` +* `/refs` and `/refs/local` +* `/bitswap/{ stat, wantlist }` + +### Interop + +Interop tests also use APIs unsupported by Rust IPFS such as `ipfs.add`. However, now, given the progress made on the interface test refactoring, it seems possible to refactor interop in the same way and gain that much more coverage and compatibility between the different language implementations. + +## Governance + +Governance was challenging during the grant cycle, perhaps due to the project being somewhat in its infancy. Things have stabilized but there is still a risk of it threatening future productivity if [more interpersonal issues](https://github.com/ipfs-rust/rust-ipfs/issues/129) arise. At this time, nobody from the grant team or PL have "Owner" access of the organization. + +Despite this, some breakthroughs and decisions were made, primary in the form of productive discussions in the following issues: +- [Repo abstraction redesign](https://github.com/ipfs-rust/rust-ipfs/issues/142) +- [Error handling alternatives](https://github.com/ipfs-rust/rust-ipfs/issues/144) +- [Overall architecture discussion](https://github.com/ipfs-rust/rust-ipfs/issues/136) + +The repository has [424 stars](https://github.com/ipfs-rust/rust-ipfs/stargazers) at the time of this writing. + +Mark (@aphelionz) from the Rust IPFS team has attended four IPFS Core Implementation calls. From 335c6e4730011fcf14407da1dbb0d6afc3a37369 Mon Sep 17 00:00:00 2001 From: Mark Robert Henderson Date: Sat, 18 Apr 2020 06:57:08 -0400 Subject: [PATCH 080/113] Update open-grants/ipfs-rust/reports/phase-1.2.md Co-Authored-By: MollyM --- open-grants/ipfs-rust/reports/phase-1.2.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/open-grants/ipfs-rust/reports/phase-1.2.md b/open-grants/ipfs-rust/reports/phase-1.2.md index 49642f96..8f41d6ad 100644 --- a/open-grants/ipfs-rust/reports/phase-1.2.md +++ b/open-grants/ipfs-rust/reports/phase-1.2.md @@ -68,7 +68,7 @@ Relevant pull requests: ## Interface Test Refactoring -It was discovered during this effort that many if the interface and interop tests use a diversity of APIs, not just the ones being tested, i.e. `ipfs.add` is used in the `refs.local` tests. With the philosophy that the tests should utilize "lower-level" APIs such as `ipfs.block.put`. +It was discovered during this effort that many of the interface and interop tests use a diversity of APIs, not just the ones being tested, i.e. `ipfs.add` is used in the `refs.local` tests. With the philosophy that the tests should utilize "lower-level" APIs such as `ipfs.block.put`. With permission from PL, a number of PRs were made to js-ipfs, two of which have already been merged: - [ipfs/js-ipfs#2980](https://github.com/ipfs/js-ipfs/pull/2980) From 97aa6be4dd88177783b5cbb3ffc563eaedb4fc7c Mon Sep 17 00:00:00 2001 From: Mark Robert Henderson Date: Sat, 18 Apr 2020 06:57:20 -0400 Subject: [PATCH 081/113] Update open-grants/ipfs-rust/reports/phase-1.2.md Co-Authored-By: MollyM --- open-grants/ipfs-rust/reports/phase-1.2.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/open-grants/ipfs-rust/reports/phase-1.2.md b/open-grants/ipfs-rust/reports/phase-1.2.md index 8f41d6ad..cc58cc86 100644 --- a/open-grants/ipfs-rust/reports/phase-1.2.md +++ b/open-grants/ipfs-rust/reports/phase-1.2.md @@ -70,7 +70,7 @@ Relevant pull requests: It was discovered during this effort that many of the interface and interop tests use a diversity of APIs, not just the ones being tested, i.e. `ipfs.add` is used in the `refs.local` tests. With the philosophy that the tests should utilize "lower-level" APIs such as `ipfs.block.put`. -With permission from PL, a number of PRs were made to js-ipfs, two of which have already been merged: +As part of this work, a number of PRs were made to js-ipfs, two of which have already been merged: - [ipfs/js-ipfs#2980](https://github.com/ipfs/js-ipfs/pull/2980) - [ipfs/js-ipfs#2983](https://github.com/ipfs/js-ipfs/pull/2983) - [ipfs/js-ipfs#2972](https://github.com/ipfs/js-ipfs/pull/2972) From f6312aa8c3013fbef33e6431ce94049d276bd7f6 Mon Sep 17 00:00:00 2001 From: Mark Robert Henderson Date: Mon, 20 Apr 2020 08:34:41 -0400 Subject: [PATCH 082/113] Update phase-1.2.md --- open-grants/ipfs-rust/reports/phase-1.2.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/open-grants/ipfs-rust/reports/phase-1.2.md b/open-grants/ipfs-rust/reports/phase-1.2.md index cc58cc86..3496f898 100644 --- a/open-grants/ipfs-rust/reports/phase-1.2.md +++ b/open-grants/ipfs-rust/reports/phase-1.2.md @@ -100,7 +100,7 @@ Interop tests also use APIs unsupported by Rust IPFS such as `ipfs.add`. However ## Governance -Governance was challenging during the grant cycle, perhaps due to the project being somewhat in its infancy. Things have stabilized but there is still a risk of it threatening future productivity if [more interpersonal issues](https://github.com/ipfs-rust/rust-ipfs/issues/129) arise. At this time, nobody from the grant team or PL have "Owner" access of the organization. +Governance was challenging during the grant cycle, perhaps due to the project being somewhat in its infancy. Things have stabilized but there is still a risk of it threatening future productivity if [more interpersonal issues](https://github.com/ipfs-rust/rust-ipfs/issues/129) arise. Despite this, some breakthroughs and decisions were made, primary in the form of productive discussions in the following issues: - [Repo abstraction redesign](https://github.com/ipfs-rust/rust-ipfs/issues/142) From 82caba323b80105b0759cdbab322ca3508903874 Mon Sep 17 00:00:00 2001 From: Dimitris Apostolou Date: Tue, 21 Apr 2020 12:11:35 +0300 Subject: [PATCH 083/113] Fix typos --- FOCUS.md | 4 ++-- MICROGRANTS.md | 2 +- README.md | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/FOCUS.md b/FOCUS.md index 23d6cb3f..bfc95018 100644 --- a/FOCUS.md +++ b/FOCUS.md @@ -4,7 +4,7 @@ The COVID-19 pandemic and quarantine have created numerous challenges. We'll be giving special consideration to proposals using IPFS to combat the effects of the crisis, such as: * Direct relief efforts -* Epidemiological Data durability and dissemenation +* Epidemiological Data durability and dissemination * Supply chain reorganization * Remote work * Community support networks and resilience @@ -15,7 +15,7 @@ _(see also [COVID-19 Open Innovation Grants](https://research.protocol.ai/posts/ ## Previous ### Q1 2020: Hello World -For the soft launch of the Grants Plantform in early 2020 our focus was simple: listen to our community members, invite them to the table, and concentrate on the projects that address the biggest community needs. +For the soft launch of the Grants Platform in early 2020 our focus was simple: listen to our community members, invite them to the table, and concentrate on the projects that address the biggest community needs. #### Highlights: * [Rust IPFS](https://github.com/ipfs/devgrants/tree/master/open-grants/ipfs-rust) implementation addressing demand from embedded and web3 developers diff --git a/MICROGRANTS.md b/MICROGRANTS.md index 0f163a5e..650f2c59 100644 --- a/MICROGRANTS.md +++ b/MICROGRANTS.md @@ -33,4 +33,4 @@ The grants are currently awarded on a rolling basis, though we may switch to fix The grant fund is contributed by [Protocol Labs](https://protocol.ai/) on a quarterly basis. ## Note -Adoption migrogrants are just one aspect of the IPFS project's overall grant program. Check out the top level of the [IPFS Grant Platform repo](https://github.com/ipfs/devgrants) to see the big picture. +Adoption microgrants are just one aspect of the IPFS project's overall grant program. Check out the top level of the [IPFS Grant Platform repo](https://github.com/ipfs/devgrants) to see the big picture. diff --git a/README.md b/README.md index e8498d6a..4b27d6d9 100644 --- a/README.md +++ b/README.md @@ -43,7 +43,7 @@ To read more about Adoption Microgrants see [MICROGRANTS](MICROGRANTS.md). Adopt --- ### Targeted Grant -These are grants negotiated directly with a recepient, rather than going through the usual RFP/open grant process. Targeted Grants are currently made by Protocol Labs. +These are grants negotiated directly with a recipient, rather than going through the usual RFP/open grant process. Targeted Grants are currently made by Protocol Labs. [**See In-Progress Targeted Grants**](../../issues?utf8=%E2%9C%93&q=is%3Aissue+label%3Atype%3Atargeted-grant) • [**See Completed Targeted Grants**](targeted-grants/completed) From b962b3f3aa778e4dd0736df03002b0e1794c47ca Mon Sep 17 00:00:00 2001 From: Mark Henderson Date: Wed, 8 Apr 2020 17:46:02 -0400 Subject: [PATCH 084/113] proposal: IPFS Rust Phase 2 Adding phase 2 Phase 2 updates fix: formatting Update open-grants/ipfs-rust/phase-2/README.md Co-Authored-By: Joonas Koivunen Update open-grants/ipfs-rust/phase-2/README.md Co-Authored-By: Joonas Koivunen Update open-grants/ipfs-rust/phase-2/README.md Co-Authored-By: Joonas Koivunen chore: merging in remote Rough draft Added Lukasz, removed detritus Update README.md Update open-grants/ipfs-rust/phase-2/README.md Co-Authored-By: Joonas Koivunen Update open-grants/ipfs-rust/phase-2/README.md Co-Authored-By: Joonas Koivunen review updates Updates after reading out loud small styling update Quick edits Update open-grants/ipfs-rust/phase-2/README.md Co-Authored-By: Joonas Koivunen Update open-grants/ipfs-rust/phase-2/README.md Co-Authored-By: Joonas Koivunen Update open-grants/ipfs-rust/phase-2/README.md Co-Authored-By: Joonas Koivunen Update open-grants/ipfs-rust/phase-2/README.md Co-Authored-By: Joonas Koivunen removing guarantees to publication, adding orbitdb adding note about /key endpoint removing cargo install proposal: IPFS Rust Phase 2 Adding phase 2 Phase 2 updates fix: formatting Update open-grants/ipfs-rust/phase-2/README.md Co-Authored-By: Joonas Koivunen Update open-grants/ipfs-rust/phase-2/README.md Co-Authored-By: Joonas Koivunen Update open-grants/ipfs-rust/phase-2/README.md Co-Authored-By: Joonas Koivunen chore: merging in remote Rough draft Added Lukasz, removed detritus Update README.md Update open-grants/ipfs-rust/phase-2/README.md Co-Authored-By: Joonas Koivunen Update open-grants/ipfs-rust/phase-2/README.md Co-Authored-By: Joonas Koivunen review updates Updates after reading out loud small styling update Quick edits Update open-grants/ipfs-rust/phase-2/README.md Co-Authored-By: Joonas Koivunen Update open-grants/ipfs-rust/phase-2/README.md Co-Authored-By: Joonas Koivunen Update open-grants/ipfs-rust/phase-2/README.md Co-Authored-By: Joonas Koivunen Update open-grants/ipfs-rust/phase-2/README.md Co-Authored-By: Joonas Koivunen removing guarantees to publication, adding orbitdb adding note about /key endpoint removing cargo install fixing prices --- open-grants/ipfs-rust/{ => phase-1}/README.md | 0 .../media/fig1-ipfs-rust-risk-assessment.png | Bin ...fig2-ipfs-rust-implementation-schedule.png | Bin .../{ => phase-1}/media/phase-1-0-gantt.png | Bin .../{ => phase-1}/media/phase-1-1-gantt.png | Bin .../{ => phase-1}/media/phase-1-2-gantt.png | Bin .../{ => phase-1}/reports/phase-1.0.md | 0 .../{ => phase-1}/reports/phase-1.1.md | 0 open-grants/ipfs-rust/phase-2/README.md | 414 ++++++++++++++++++ 9 files changed, 414 insertions(+) rename open-grants/ipfs-rust/{ => phase-1}/README.md (100%) rename open-grants/ipfs-rust/{ => phase-1}/media/fig1-ipfs-rust-risk-assessment.png (100%) rename open-grants/ipfs-rust/{ => phase-1}/media/fig2-ipfs-rust-implementation-schedule.png (100%) rename open-grants/ipfs-rust/{ => phase-1}/media/phase-1-0-gantt.png (100%) rename open-grants/ipfs-rust/{ => phase-1}/media/phase-1-1-gantt.png (100%) rename open-grants/ipfs-rust/{ => phase-1}/media/phase-1-2-gantt.png (100%) rename open-grants/ipfs-rust/{ => phase-1}/reports/phase-1.0.md (100%) rename open-grants/ipfs-rust/{ => phase-1}/reports/phase-1.1.md (100%) create mode 100644 open-grants/ipfs-rust/phase-2/README.md diff --git a/open-grants/ipfs-rust/README.md b/open-grants/ipfs-rust/phase-1/README.md similarity index 100% rename from open-grants/ipfs-rust/README.md rename to open-grants/ipfs-rust/phase-1/README.md diff --git a/open-grants/ipfs-rust/media/fig1-ipfs-rust-risk-assessment.png b/open-grants/ipfs-rust/phase-1/media/fig1-ipfs-rust-risk-assessment.png similarity index 100% rename from open-grants/ipfs-rust/media/fig1-ipfs-rust-risk-assessment.png rename to open-grants/ipfs-rust/phase-1/media/fig1-ipfs-rust-risk-assessment.png diff --git a/open-grants/ipfs-rust/media/fig2-ipfs-rust-implementation-schedule.png b/open-grants/ipfs-rust/phase-1/media/fig2-ipfs-rust-implementation-schedule.png similarity index 100% rename from open-grants/ipfs-rust/media/fig2-ipfs-rust-implementation-schedule.png rename to open-grants/ipfs-rust/phase-1/media/fig2-ipfs-rust-implementation-schedule.png diff --git a/open-grants/ipfs-rust/media/phase-1-0-gantt.png b/open-grants/ipfs-rust/phase-1/media/phase-1-0-gantt.png similarity index 100% rename from open-grants/ipfs-rust/media/phase-1-0-gantt.png rename to open-grants/ipfs-rust/phase-1/media/phase-1-0-gantt.png diff --git a/open-grants/ipfs-rust/media/phase-1-1-gantt.png b/open-grants/ipfs-rust/phase-1/media/phase-1-1-gantt.png similarity index 100% rename from open-grants/ipfs-rust/media/phase-1-1-gantt.png rename to open-grants/ipfs-rust/phase-1/media/phase-1-1-gantt.png diff --git a/open-grants/ipfs-rust/media/phase-1-2-gantt.png b/open-grants/ipfs-rust/phase-1/media/phase-1-2-gantt.png similarity index 100% rename from open-grants/ipfs-rust/media/phase-1-2-gantt.png rename to open-grants/ipfs-rust/phase-1/media/phase-1-2-gantt.png diff --git a/open-grants/ipfs-rust/reports/phase-1.0.md b/open-grants/ipfs-rust/phase-1/reports/phase-1.0.md similarity index 100% rename from open-grants/ipfs-rust/reports/phase-1.0.md rename to open-grants/ipfs-rust/phase-1/reports/phase-1.0.md diff --git a/open-grants/ipfs-rust/reports/phase-1.1.md b/open-grants/ipfs-rust/phase-1/reports/phase-1.1.md similarity index 100% rename from open-grants/ipfs-rust/reports/phase-1.1.md rename to open-grants/ipfs-rust/phase-1/reports/phase-1.1.md diff --git a/open-grants/ipfs-rust/phase-2/README.md b/open-grants/ipfs-rust/phase-2/README.md new file mode 100644 index 00000000..c94de8f2 --- /dev/null +++ b/open-grants/ipfs-rust/phase-2/README.md @@ -0,0 +1,414 @@ +# Open Grant Proposal: Rust IPFS Phase 2 +> Category: core-dev | Proposed by: Mark Henderson and Joonas Koivunen of [Equilibrium](https://equilibrium.co) + +The goal of the [Rust IPFS Phase 1 devgrant](https://github.com/ipfs/devgrants/tree/master/open-grants/ipfs-rust) +was to allow developers to write IPLD applications. Since the approval and inception of the +grant work in Q1 2020, the grant team has delivered a Rust implementation with over a dozen HTTP +endpoints and over 100 passing conformance tests. + +As such, we believe that IPLD application developers have what they need to start creating apps +that leverage the flexibility and connectivity of IPLD, along with the performance and reliability +of Rust. + +However, without "battle testing" Rust IPFS in the wild, we will miss opportunities to +gather insight and benchmarks into how it truly performs. Luckily, there's an easy use case to +reach for: + +**Public gateways**, which serve permaweb content through a URL that includes a CID, are often +the end user's first encounter with the distributed web. Accessing a version of +[Wikipedia's home page](https://ipfs.io/ipfs/bafybeiemxf5abjwjbikoz4mc3a3dla6ual3jsgpdr4cjr3oz3evfyavhwq/wiki/) +via a public gateway provides a familiar interface to a new and exciting world, and get people +excited about our shared, distributed future. + +If funded this grant will deliver the _first Rust public gateway_, benchmark and test results from +the OrbitDB suite, as well as a handful of new endpoints and over 30 new passing conformance tests. + +## Project Description + +### Summary + +The Rust IPFS grant team successfully completed Phase 1 of the [Rust IPFS devgrant], and plans +to continue working towards a fully conformant Rust implementation of IPFS. Phase 2’s primary +goal and use case would be IPFS gateway support. + +We’d like to first start by hardening the project enough to publish to https://crates.io, the +official package repository for Rust. This would involve resolving our PRs in forked repositories, +ensuring that only released dependencies are used, and updating docs so they appear properly on +https://docs.rs. + +From there, we would implement the minimum-viable set of endpoints necessary for a public gateway, +which the grant team determined to be `/get`, and `/cat`. If time allows we may explore `/ls` as +well. + +From there, we would add `_dnslink` and basic config file support, as well as administrative +tooling like server monitoring and content reporting. Then we would add the `/ipfs` endpoint +for the gateway, and launch! + +For more information on how the grant process has been going so far, please read the grant +reports for more information: +* [Phase 1.0](https://github.com/ipfs/devgrants/blob/master/open-grants/ipfs-rust/reports/phase-1.0.md) +* [Phase 1.1](https://github.com/ipfs/devgrants/blob/master/open-grants/ipfs-rust/reports/phase-1.1.md) +* [Phase 1.2](https://github.com/ipfs/devgrants/blob/master/open-grants/ipfs-rust/reports/phase-1.2.md) + +### Value + +The grant team has already brought both technical and administrative value to Rust IPFS. Since the +beginning of Phase 1, the team has: + +* Implemented all planned endpoints +* Set up GitHub repositories according to both Github and PL community standards +* Applied continuous integration via GitHub Actions for tests, linting, and language idioms +* Published two blog posts, one on the +[IPFS blog](https://blog.ipfs.io/2020-03-18-announcing-rust-ipfs/) and the other on the +[Equilibrium blog](https://medium.com/equilibriumco/announcing-rust-ipfs-af8358f90beb) +leading to: + * The number of stars on the repo growing by over 400, as well as: + * Two separate community contributors lending their talents, unsolicited, to pull requests + +Overall, the grant team has shown that they can meet milestones and deliverables, +even throughout internal, community-wide, external, and of course global challenges. + +As for Phase 2, the value of a public IPFS gateway written in Rust is twofold: +1. It can serve as a reference implementation for others seeking to implement Rust IPFS +2. It can serve as a flagship for marketing and promotional purposes, something that both the +IPFS and the Rust communities can be proud of. + +### Risk Assessment + +Some of the risks from Phase 1 came to light, others did not. Still others that we +did not foresee occurred, making the progress challenging at times. + +The grant team was able to mitigate many risks, and are in the process of mitigating the rest. +The following headings are what we see as the current landscape of risks as we move forward, +along with some basic rankings of likelihood and impact. + +#### Reliance on rust-libp2p and its dependency chain + +**Likelihood**: Certain
**Impact**: Medium/Low + +Overall this risk was fairly mitigated, not causing too any practical issues over +the course of Phase 1. We made one required PR that was quickly merged. As we move through the list +of potential upstream features from `go-ipfs` 0.5.0 and beyond, this may require closer +collaboration with the `rust-libp2p` team. + +#### Community efforts can move and change very fast + +**Likelihood**: Medium/Low
**Impact**: Low + +In the end, this was not as much of a risk as we had anticipated. In fact, the community seemed to +coalesce around `rust-ipfs`. For example, `ipfs-rust/rust-ipld` became the ad-hoc "official" IPLD +repository in Rust. We were not notified about any other critical work in the ecosystem during +Phase 1. We will continue to keep our eyes and ears out for any other meaningful community projects +during Phase 2. + +#### The code could still “bit rot” even with community support + +**Likelihood**: Low
**Impact**: Medium/Low + +So far, so good. The code base and community are more active than ever. We plan on focusing more +heavily on community engagement and best practices around fostering a healthy open source project. + +#### New implementation == greater attack surface for exploits + +**Likelihood**: High
**Impact**: Medium + +Focus so far has been on implementation, so undivided attention to security concerns was +unfortunately not available. For the time being, more documentation, testing, and benchmarking +will invariably lead to insights about security. Additionally, the project is still marked at +`Pre-Alpha`, so expectations are set rather low in terms of security. + +#### Another implementation also means more known bugs + +**Likelihood**: High
**Impact**: Medium/High + +This risk can easily be turned into a benefit. While working towards the Phase 1 goals we've also +worked towards getting the known implementation differences fixed in ecosystem crates like +`aes-ctr`. Putting in the work to identify more of such issues through continued interoperability +testing (even if manual) will help the larger Rust ecosystem in future to interoperate with +Go and JS counterparts. + +#### Kademlia Unknown Unknowns + +**Likelihood**: High
**Impact**: High + +In phase 1 we didn't get to implementing `/api/v0/id?arg=other_peer_id` or +`Ipfs::identify_other(&self, peer: PeerId)`. As a result we know very little of how the +`libp2p_kad` implementation works together with `{go,js}-ipfs`. + +_This, coupled with the reliance on libp2p, poses the single largest risk to the project._ + +#### Open Source Governance + +**Likelihood**: Medium/High
**Impact**: High + +Open source governance is not easy, as it requires many “soft” skills outside of simple development +and engineering management. The grant team plans on working closely with Protocol Labs to ensure +that governance happens transparently, and that all interests can be represented fairly. + +### Project Team + +| Mark Henderson | Joonas Koivunen | Łukasz Jędrzejczyk | +| -------------- | --------------- | ------------------ | +| | | | +| Rust Developer, Project Manager | Rust Developer | Rust Developer | +| [+github](https://github.com/aphelionz) [+website](https://mrh.io) [+resume](https://ipfs.io/ipfs/QmcHxD94cvJgq5ZZxQkEi7SRMwD5dBnkhQ3zzaVFqNWFJb) | [+github](https://github.com/koivunej) [+linkedin](https://www.linkedin.com/in/joonas-koivunen-70273412/) | [+github](https://github.com/ljedrz) [+linkedin](https://www.linkedin.com/in/ljedrz/) [+stackoverflow](https://stackoverflow.com/users/1870153/ljedrz) | +| Core contributor, OrbitDB. Current rust-ipfs contributor. Implemented an [Ambients Protocol parser/compiler](https://github.com/aphelionz/ambients) in Rust | Current rust-ipfs contributor + Rust-lang tooling contributor + experience with database implementations in Rust | Rust compiler contributor. Active Rust mentor on Stack Overflow. Wrote the `lambda_calculus` crate | + +### Maintenance and Upgrade Plan + +We want to make a code base that will last into the future. Equilibrium and MRH.io, along with the +support of the community, pledge to continue to maintain the Rust IPFS to the best of their ability +and within any financial constraints that exist. + +Much like we will build upon community efforts, we will also enable and encourage others to build +upon our work. This will be a twofold effort that includes both permissive licensing and community +outreach: on-boarding as many new contributors as possible, mapping the work out into issues of +different levels of difficulty, and by providing mentoring. + +## Project Plan + +### Summary + +The grant team will continue our phased approach, with each deliverable continuing to build upon +the last, culminating in the launch of the first Rust IPFS public gateway. + +* **Phase 2.0** will be a time-boxed hardening phase, stabilizing the project to work towards +publishing to crates.io by adding tests, documentation, and performing necessary bug fixes and/or +refactoring to handle accumulated technical debt. +* **Phase 2.1** will begin work towards gateway support by adding the necessary UnixFS support in +`/cat`, and `/get` endpoints. `/ls` may be added if time allows. +* **Phase 2.2** will add basic configuration file support, `_dnslink` support, swarming with +bootstrap peers, and a denylist for reported content +* **Phase 2.3** will add the `/ipfs/` endpoint, and launch the server. + +#### Updates to Project Management Processes + +We had adopted and had success with the use of organization-wide GitHub projects, which allows us +a coordinated, high-level view of each grant phase. You can see the ipfs-rust projects here: +https://github.com/orgs/ipfs-rust/projects. + +Additionally, instead of a gantt chart, we are opting for more roughly estimated timeline with +careful research done for each set of endpoints to properly scope out the requirements ahead of +implementation. An example of this is the +[block endpoint issue](https://github.com/ipfs-rust/rust-ipfs/issues/90), which combined a number +of documentation sources, tests, and independent investigation to determine conformance +requirements. + +Finally, as mentioned above, we are trying out time-boxed phases for Phase 2.0 and 2.1, +prioritizing mission-critical deliverables and adding in more optional ones if we have the time. + +### Implementation Details + +#### Phase 2.0 + +The grant team has ownership of https://crates.io/crates/ipfs and plans on publishing there so +developers can use it in their Rust code, and so users can add `ipfs = "0.1.0"` to their Cargo.toml +file, or something similar. This will be a time-boxed phase of 2 weeks. + +However, a few things stand in the way of publishing successfully. +- Need all dependencies to be properly released versions: + - A forked versions `aes-ctr` crate need a PRs to be approved and merged + - Latest versions of `rust-libp2p` and `aes-ctr` libraries need to be published to crates.io + - `domain` could be replaced with `trust-dns` +- Activating the `interop` tests using the same refactoring techniques we applied for `interface` +- Documentation for the https://docs.rs website, then if time allows: +- Automated releases via the [`bors`](https://bors.tech/) GitHub bot +- Code Coverage via the `grcov` or `cargo-cov` tools +- Select benchmarks to set baselines for future refactoring. + +We'd like to suggest utilizing the [OrbitDB](https://github.com/orbitdb) library for the benchmarks +via the HTTP API. This is due to the team's familiarity, and the fact that a large number of tests +and benchmarks already exist within OrbitDB's code base. Note that this may require creating a +scaffold `/key` endpoint, but that will not be a full implementation of the `/key` APIs. + +#### Phase 2.1 + +UnixFSv1 support is necessary for gateway support. We will start with basic files (non-hamt +directories), supporting single-block directories and multi-block files with up to +[174 links](https://github.com/ipfs/specs/blob/master/UNIXFS.md#layout) per folder. +That will allow us to land `/get/` as well as `/cat`. + +This will also be a time-boxed phase of two weeks. If time allows we will also add support for +the `/ls` endpoint, and perhaps others as suggested by PL. + +#### Phase 2.2 + +The grant team will focus on three primary things during this phase, which will **not** be +time-boxed as all of the items here are mission-critical. + +1. The foundations of `config` file support, namely the `Addresses.API`, `Addresses.Swarm`, +and `Bootstrap` configuration directives, allowing for basic configuration of a node or gateway. +2. `_dnslink` support so that people can: + 1. Point their `A` and `TXT` dns records to the gateway and host their websites on our node. + 2. Resolve IPFS paths such as `/ipns/domain.com/something` +3. The ability to swarm with designated bootstrap peers. This depends on dnsaddr with rust-libp2p, +so we will likely need to coordinate with the authors on that, or make another fork and PR. + +Finally, since we will be hosting user content, we will need to support some sort of denylist +apparatus for reported content. + +#### Phase 2.3 + +During the final phase of this grant cycle, the team will enable the `/ipfs` endpoint for the +gateway, and come up with a basic system for garbage collection. Then, Equilibrium will +choose an appropriate hosting platform, and launch! + +### Success Metric +Previously we used +[HTTP endpoints](https://github.com/ipfs/devgrants/tree/master/open-grants/ipfs-rust#metric-number-of-http-endpoints-implemented) +implemented as the key performance indicator. Given the lessons learned from Phase 1, we’d like +to stick closely to this, but change the metric slightly to **passing conformance tests** +for endpoints. + +As of the writing of this proposal, the grant team's work passes 102 conformance tests. Analysis of +the conformance tests that cover Phase 2's endpoints suggest there could be well over 135 passing +tests by the end of this grant cycle. + +Additionally, we will define success of this grant cycle with a successful launch of a public +gateway that is capable of: + +1. Resolving `/ipfs/[cid]` +2. Serving custom domains with `_dnslink` +3. Resolving `/ipns/[domain name]` via `_dnslink` + +### Definition of Done +We had success with the definition of done used in Phase 1, and as such we will continue to use +it. Each command will be considered done when the following requirements are met: + +1. There is a working Rust implementation of the command’s functionality + 1. Code is “linted” i.e. code formatting via rustfmt and language idioms via clippy +2. There is an HTTP binding for said command exposed via the IPFS daemon +3. There are functional and/or unit tests written, and they are passing +4. There is suitable documentation. In our case, this means: + 1. Each command has a usage example and API specification + 2. Top-level commands with subcommands display usage instructions + 3. Rustdoc tests are passing on all code-level comments + 4. Differences between Rust’s implementation and Go or JS are explained +5. There are passing conformance tests, approved by Protocol Labs + +Note that we removed one item: +> *(Optional) There is a CLI command that utilizes either the Rust APIs or the HTTP APIs* + +### Out of Scope + +The following endpoints have been deemed out of scope for this proposal and will not be included in +Phase 2. The endpoints have been grouped by their respective reasonings for omission below. + +The following commands require on-the-fly config changes, though we could potentially implement +the read-only versions such as `/config/show`: + +- `/bootstrap` +- `/config` + +Finally, the following endpoints are simply not required by our use case: +- `/stats` +- `/cid` +- `/diag` +- `/mount` +- `/p2p` +- `/swarm/filters` +- `/files` (regular and mfs) + +The following endpoints are experimental: +- `/filestore` +- `/urlstore` + +The following endpoints are or will be deprecated: +- `/file` +- `/object` + +## Project Schedule + + +### Phase 2.0 + +Due to the fact that we can't _guarantee_ that the dependencies such as `libp2p` will be updated, +we cannot guarantee that we will publish to crates.io, but all of our effort will be focused on +that goal. + +#### Deliverables (in order of prioritization) +1. Priority on released dependencies, cleaning up outstanding PRs from forked libraries. +2. Documentation for docs.rs. +3. Activate interop tests +4. bors + release CI. +5. Code coverage +6. OrbitDB Tests and benchmarking +7. Project milestone report + 1. Updated interop test results + +#### Development Schedule +**This will be a time-boxed phase.** The work will be triaged and addressed by priority, getting +through as much work as we can in a two-week period. We can be flexible in terms of start dates, +however we would like to continue on the Rust IPFS work as soon as possible after Phase 1 is +completed to avoid any disruptions. + +#### Estimated Budget (Phase 2.0) +| | Number of Hours | Hourly Rate | Total (Euros) | Total (USD) | +| --- | ---- | ---- | ---- | --- | +| Software Development and Project Management | 140 hours | 120€ | 16,800€ | $18239.59 | + +### Phase 2.1 + +The focus of this phase is UnixFSv1 support and the `/get` and `/cat` endpoints. See the +[implementation details](#implementation-details) section for more information. + +#### Deliverables +1. UnixFSv1 support +2. `/get` +3. `/cat` +4. `/ls` if time allows +5. Project milestone report + 1. Interop and performance test results + +#### Development Schedule +**This will be a time-boxed phase.** This is to ensure we don't go too far down the "rabbit hole" +of implementing UnixFS and the endpoint details. For example - `/get` requires `tar` support. + +#### Estimated Budget +| | Number of Hours | Hourly Rate | Total (Euros) | Total (USD) | +| --- | ---- | ---- | ---- | --- | +| Software Development and Project Management | 140 hours | 120€ | 16,800€ | $18239.59 | + +### Phase 2.2 + +This phase continues gateway functionality development by adding basic configuration +directives as well as `_dnslink` support. + +#### Deliverables +1. Configuration directive support + 1. `Addresses.API` + 2. `Addresses.Swarm` + 3. `Bootstrap` +2. `_dnslink` support + 1. Domains + 2. IPFS paths i.e. `/ipns/domain.com/something` +3. Denylist for reported content +4. Swarming with Bootstrap peers +5. Project milestone report + +#### Development Schedule +This will not be a time-boxed phase, and we expect the work to take roughly 2-3 weeks. + +#### Estimated Budget +| | Number of Hours | Hourly Rate | Total (Euros) | Total (USD) | +| --- | ---- | ---- | ---- | --- | +| Software Development and Project Management | 170 hours | 120€ | 20,400€ | $22148.08 | + +### Phase 2.3 + +This phase completes the gateway by adding the `/ipfs` endpoint, and launching the node! + +#### Deliverables +1. `/ipfs/` endpoint +2. Stale Content Removal +3. Hosting Considerations (logging, monitoring, volume resizing, etc) +4. Public Gateway Launch +5. Project final report + +#### Development Schedule +This will not be a time-boxed phase, and we expect the work to take roughly 1-2 weeks. + +#### Estimated Budget +| | Number of Hours | Hourly Rate | Total (Euros) | Total (USD) | +| --- | ---- | ---- | ---- | --- | +| Software Development and Project Management | 80 hours | 120€ | 9,600€ | $10422.62 | From 1bbdcb7522896b87e7918022e0d5fb299213470a Mon Sep 17 00:00:00 2001 From: Arkadiy Kukarkin Date: Thu, 23 Apr 2020 16:07:06 -0700 Subject: [PATCH 085/113] Update -meta--grant-platform-improvement.md --- .github/ISSUE_TEMPLATE/-meta--grant-platform-improvement.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/ISSUE_TEMPLATE/-meta--grant-platform-improvement.md b/.github/ISSUE_TEMPLATE/-meta--grant-platform-improvement.md index 36d129df..22c10b51 100644 --- a/.github/ISSUE_TEMPLATE/-meta--grant-platform-improvement.md +++ b/.github/ISSUE_TEMPLATE/-meta--grant-platform-improvement.md @@ -2,7 +2,7 @@ name: "[META] Grant Platform Improvement" about: Suggest a change or improvement to the Grant Platform title: '' -labels: meta +labels: topic/meta assignees: parkan --- From 7e577b371ee82b3d15c9c6701a264c719d0eb1b4 Mon Sep 17 00:00:00 2001 From: John Ericson Date: Fri, 24 Apr 2020 12:44:27 -0400 Subject: [PATCH 086/113] =?UTF-8?q?Nix=20=C3=97=20IPFS:=20Copy=20proposal?= =?UTF-8?q?=20template?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- open-grants/open-proposal-nix-ipfs.md | 73 +++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 open-grants/open-proposal-nix-ipfs.md diff --git a/open-grants/open-proposal-nix-ipfs.md b/open-grants/open-proposal-nix-ipfs.md new file mode 100644 index 00000000..e9216283 --- /dev/null +++ b/open-grants/open-proposal-nix-ipfs.md @@ -0,0 +1,73 @@ +To submit a proposal, please create a PR adding a file to this folder filling out this template. Please title your file `open-proposal-title.md`, replacing `title` with the name of your project. + +# Open Grant Proposal: `Project Title` + +**Name of Project:** + +**Proposer:** `replace with your GitHub username` + +**Do you agree to open source all work you do on behalf of this RFP and dual-license under MIT and APACHE2 licenses?:** Please respond with either "Yes" or "No" + +# Project Description + +Please describe exactly what you are planning to build. Make sure to include the following: +- Start with the need or problem you are trying to solve with this project. +- Describe why your solution is going to adequately solve this problem. + +This section should be 2-3 paragraphs long. + +## Value + +Please describe in more detail why this proposal is valuable for the IPFS ecosystem. Answer the following questions: +- What are the benefits to getting this right? +- What are the risks if you don't get it right? +- What are the risks that will make executing on this project difficult? + +This section should be 1-3 paragraphs long. + +## Deliverables + +Please describe in details what your final deliverable for this project will be. Include a specification of the project and what functionality the software will deliver when it is finished. + +## Development Roadmap + +Please break up your development work into a clear set of milestones. This section needs to be very detailed (will vary on the project, but aim for around 2 pages for this section). + +For each milestone, please describe: +- The software functionality that we can expect after the completion of each milestone. This should be detailed enough that it can be used to ensure that the software meets the specification you outlined in the Deliverables. +- How many people will be working on each milestone and their roles +- The amount of funding required for each milestone +- How much time this milestone will take to achieve (using real dates) + +## Total Budget Requested + +Sum up the total requested budget across all milestones, and include that figure here. Also, please include a budget breakdown to specify how you are planning to spend these funds. + +## Maintenance and Upgrade Plans + +Specify your team's long-term plans to maintain this software and upgrade it over time. + +# Team + +## Team Members + +- Team Member 1 [profile] +- Team Member 2 [profile] +- Team Member 3 [profile] +- ... + +## Team Website + +Please link to your team's website here (make sure it's `https`) + +## Relevant Experience + +Please describe (in words) your team's relevant experience, and why you think you are the right team to build this project. You can cite your team's prior experience in similar domains, doing similar dev work, individual team members' backgrounds, etc. + +## Team code repositories + +Please provide links to your team's prior code repos for similar or related projects. + +# Additional Information + +Please include any additional information that you think would be useful in helping us to evaluate your proposal. From 7e61bef0b5000579b2cc8c1e7660572bb23f77f7 Mon Sep 17 00:00:00 2001 From: John Ericson Date: Fri, 24 Apr 2020 10:58:15 -0400 Subject: [PATCH 087/113] =?UTF-8?q?Nix=20=C3=97=20IPFS:=20Fix=20typos?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- open-grants/open-proposal-nix-ipfs.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/open-grants/open-proposal-nix-ipfs.md b/open-grants/open-proposal-nix-ipfs.md index a7d15489..a4e4d162 100644 --- a/open-grants/open-proposal-nix-ipfs.md +++ b/open-grants/open-proposal-nix-ipfs.md @@ -50,7 +50,7 @@ In return, Nix users will be able to easily ensure that sources will never disap #### Deployments and DevOps with IPFS -This milestone will make it possible to deploy finished builds via IPFS, with IPFS either being a means move the data to deployment systems or an IPFS FUSE layer being the backing filesystem for deployment systems itself. +This milestone will make it possible to deploy finished builds via IPFS, with IPFS either being a means to move the data to deployment systems or an IPFS FUSE layer being the backing filesystem for deployment systems itself. This will substantially improve the experience for deploying large clusters, due to IPFS's ability to do peer-to-peer (BitTorrent-style) transfers. @@ -156,7 +156,7 @@ Beyond changing Nix itself, we will adjust all the relevant NixOS modules to ens Until now, the IPFS store was something we could only "read from". We will implement the other methods so we can "write to" IPFS. -Exporting may or may not pin on the IPFS side as the user chooses +Exporting may or may not pin on the IPFS side as the user chooses. #### Deliverable: IPFS-compatible content-addressed store items with references @@ -197,7 +197,7 @@ Taking advantage of this, we can make a new IPLD-based derivation format modeled #### Deliverable: Publish resolved IPL derivation -> outputs table on IPFS -We will publish the rows of the resolved derivation -> outputs table that use IPLD derivations- those rows themselves have an IPLD of a list of pairs (CID values)- or better a map if the restriction that keys are strings is ever lifted. +We will publish the rows of the resolved derivation -> outputs table that use IPLD derivations- those rows themselves have an IPLD of a list of pairs (CID values)- or better, a map, if the restriction that keys are strings is ever lifted. This will likely make use of IPNS to manage the map's growth. @@ -245,7 +245,7 @@ We will make the server compute the data for itself, and compute it using less c ## Maintenance and Upgrade Plans -All changes to Nix we will upstream, breaking changes into PRs and writing [RFCs](github.com/nixos/rfcs) as needed. +We will upstream all changes to Nix, breaking out changes into PRs and writing [RFCs](github.com/nixos/rfcs) as needed. Changes may be requested during the RFC process, in which case we will make those changes, but we do not expect outright rejection as we think these features will be extremely popular. From 25c826c6de45b94fe67d697e194afa5364afa771 Mon Sep 17 00:00:00 2001 From: John Ericson Date: Fri, 24 Apr 2020 11:04:47 -0400 Subject: [PATCH 088/113] =?UTF-8?q?Nix=20=C3=97=20IPFS:=20Fix=20dashes?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- open-grants/open-proposal-nix-ipfs.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/open-grants/open-proposal-nix-ipfs.md b/open-grants/open-proposal-nix-ipfs.md index a4e4d162..adfea3e1 100644 --- a/open-grants/open-proposal-nix-ipfs.md +++ b/open-grants/open-proposal-nix-ipfs.md @@ -127,7 +127,7 @@ The entire sources -> build plans -> build products -> deployables lifecycle wil #### Hash files with git tree hashes -Nix currently either hashes a single file (flat mode), or files and directories in a format only it uses (NAR -- nix archives). +Nix currently either hashes a single file (flat mode), or files and directories in a format only it uses (NAR — nix archives). Nix should instead use something standard. IPFS has its UnixFS (https://docs.ipfs.io/guides/concepts/unixfs/) but it is evolving and currently allows metadata that Nix purposely does not. @@ -197,7 +197,7 @@ Taking advantage of this, we can make a new IPLD-based derivation format modeled #### Deliverable: Publish resolved IPL derivation -> outputs table on IPFS -We will publish the rows of the resolved derivation -> outputs table that use IPLD derivations- those rows themselves have an IPLD of a list of pairs (CID values)- or better, a map, if the restriction that keys are strings is ever lifted. +We will publish the rows of the resolved derivation -> outputs table that use IPLD derivations — those rows themselves have an IPLD of a list of pairs (CID values) — or better, a map, if the restriction that keys are strings is ever lifted. This will likely make use of IPNS to manage the map's growth. From 2180ee025d330c39ded93447a5c5a08d4f2b9380 Mon Sep 17 00:00:00 2001 From: John Ericson Date: Fri, 24 Apr 2020 18:24:05 -0400 Subject: [PATCH 089/113] =?UTF-8?q?Nix=20=C3=97=20IPFS:=20Update=20based?= =?UTF-8?q?=20on=20discussion?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- open-grants/open-proposal-nix-ipfs.md | 26 ++++++++++++++++++-------- 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/open-grants/open-proposal-nix-ipfs.md b/open-grants/open-proposal-nix-ipfs.md index adfea3e1..31ffea36 100644 --- a/open-grants/open-proposal-nix-ipfs.md +++ b/open-grants/open-proposal-nix-ipfs.md @@ -101,11 +101,13 @@ The entire sources -> build plans -> build products -> deployables lifecycle wil - **IPLD derivations**: Build steps are in an IPFS native format for easy consumption -- **Publishing**: Publish resolved IPLD derivation -> outputs table on IPFS +- **Publishing**: Publish resolved IPLD derivation -> outputs table on IPFS **(Stretch Goal)** -- **Subscribe**: Subscribe to trusted peer's output maps with IPNS +- **Subscribe**: Subscribe to trusted peer's output maps with IPNS **(Stretch Goal)** -- **Remote Building**: Trustless remote builders can take requests from any client (optional) +- **Remote Building**: Trustless remote builders can take requests from any client **(Stretch Goal)** + +***Stretch Goals represent 'nice-to-haves' that will be completed in sequence with any surplus capacity.** ## Development Roadmap @@ -195,13 +197,13 @@ As such, we can freely make big changes without worrying about major backwards c Taking advantage of this, we can make a new IPLD-based derivation format modeled after the json output that `nix show-derivation` uses. -#### Deliverable: Publish resolved IPL derivation -> outputs table on IPFS +#### Deliverable: Publish resolved IPL derivation -> outputs table on IPFS **(Stretch Goal)** We will publish the rows of the resolved derivation -> outputs table that use IPLD derivations — those rows themselves have an IPLD of a list of pairs (CID values) — or better, a map, if the restriction that keys are strings is ever lifted. This will likely make use of IPNS to manage the map's growth. -#### Deliverable: Subscribe to trusted peer's output maps +#### Deliverable: Subscribe to trusted peer's output maps **(Stretch Goal)** When looking up a non-content addressed key such as the output of a derivation, we will consult the output maps of trusted peers and use that to choose content addressed to download from IPFS. @@ -212,7 +214,7 @@ No building against one version and then being substituted with another. Optimal choosing is quite difficult, as discussed in the Nix thesis, but we don't need to aim for optimality, It is sufficient to be strictly path dependent based on what was previously built/downloaded. The user can evict entries in the store if there is unavoidable conflict and then try again to effect a human-in-the-loop backtracking search algorithm. -#### Milestone 2.1: Trustless Remote Building (Optional) +#### Deliverable: Trustless Remote Building **(Stretch Goal)** **Estimate:** 20 developer hours @@ -236,13 +238,21 @@ We will make the server compute the data for itself, and compute it using less c ## Total Budget Requested +### Total Budget + | Milestone | Developer Hours | Hourly Rate | PM + QA Overhead | Total | |-|-|-|-|-| | Milestone 1 | 160 | $125 USD | 15% | $23,000 USD | -| Milestone 2 | 260 | $125 USD | 15% | $37,375 USD | -| Milestone 2.1 | 20 | $125 USD | 15% | $2,875 USD | +| Milestone 2 | 280 | $125 USD | 15% | $40,250 USD | | **Total** | **440** | | | **$63,250 USD** | +### Obsidian Grant Funding +As an interested party, Obsidian Systems will contribute funding to this grant in the amount of **$10,000 USD**. + +### Total Requested + +**$53,250 USD** + ## Maintenance and Upgrade Plans We will upstream all changes to Nix, breaking out changes into PRs and writing [RFCs](github.com/nixos/rfcs) as needed. From 0b68946e978e6381faf254875e9ec43b088a9ee8 Mon Sep 17 00:00:00 2001 From: Mark Henderson Date: Mon, 27 Apr 2020 15:49:05 -0400 Subject: [PATCH 090/113] scoping down" --- open-grants/ipfs-rust/phase-2/README.md | 189 +++--------------------- 1 file changed, 19 insertions(+), 170 deletions(-) diff --git a/open-grants/ipfs-rust/phase-2/README.md b/open-grants/ipfs-rust/phase-2/README.md index c94de8f2..c6871de3 100644 --- a/open-grants/ipfs-rust/phase-2/README.md +++ b/open-grants/ipfs-rust/phase-2/README.md @@ -10,39 +10,20 @@ As such, we believe that IPLD application developers have what they need to star that leverage the flexibility and connectivity of IPLD, along with the performance and reliability of Rust. -However, without "battle testing" Rust IPFS in the wild, we will miss opportunities to +However, without battle testing" Rust IPFS in the wild, we will miss opportunities to gather insight and benchmarks into how it truly performs. Luckily, there's an easy use case to reach for: -**Public gateways**, which serve permaweb content through a URL that includes a CID, are often -the end user's first encounter with the distributed web. Accessing a version of -[Wikipedia's home page](https://ipfs.io/ipfs/bafybeiemxf5abjwjbikoz4mc3a3dla6ual3jsgpdr4cjr3oz3evfyavhwq/wiki/) -via a public gateway provides a familiar interface to a new and exciting world, and get people -excited about our shared, distributed future. - -If funded this grant will deliver the _first Rust public gateway_, benchmark and test results from -the OrbitDB suite, as well as a handful of new endpoints and over 30 new passing conformance tests. - ## Project Description ### Summary -The Rust IPFS grant team successfully completed Phase 1 of the [Rust IPFS devgrant], and plans -to continue working towards a fully conformant Rust implementation of IPFS. Phase 2’s primary -goal and use case would be IPFS gateway support. - -We’d like to first start by hardening the project enough to publish to https://crates.io, the -official package repository for Rust. This would involve resolving our PRs in forked repositories, -ensuring that only released dependencies are used, and updating docs so they appear properly on -https://docs.rs. +The Rust IPFS grant team successfully completed Phase 1 of the +[Rust IPFS devgrant](https://github.com/ipfs/devgrants/tree/master/open-grants/ipfs-rust), and +plans to continue working towards a fully conformant Rust implementation of IPFS. -From there, we would implement the minimum-viable set of endpoints necessary for a public gateway, -which the grant team determined to be `/get`, and `/cat`. If time allows we may explore `/ls` as -well. - -From there, we would add `_dnslink` and basic config file support, as well as administrative -tooling like server monitoring and content reporting. Then we would add the `/ipfs` endpoint -for the gateway, and launch! +Next, we would implement UnixFS and the minimum-viable set of endpoints, determined to be +`/get`, and `/cat`. If time allows we may explore `/ls` as well. For more information on how the grant process has been going so far, please read the grant reports for more information: @@ -68,10 +49,8 @@ leading to: Overall, the grant team has shown that they can meet milestones and deliverables, even throughout internal, community-wide, external, and of course global challenges. -As for Phase 2, the value of a public IPFS gateway written in Rust is twofold: -1. It can serve as a reference implementation for others seeking to implement Rust IPFS -2. It can serve as a flagship for marketing and promotional purposes, something that both the -IPFS and the Rust communities can be proud of. +As for Phase 2, the value of UnixFS would be the final pillar in the foundation allowing for use +cases such as low-resourced devices in IoT and embedded settings. ### Risk Assessment @@ -147,12 +126,12 @@ that governance happens transparently, and that all interests can be represented ### Project Team -| Mark Henderson | Joonas Koivunen | Łukasz Jędrzejczyk | -| -------------- | --------------- | ------------------ | -| | | | -| Rust Developer, Project Manager | Rust Developer | Rust Developer | -| [+github](https://github.com/aphelionz) [+website](https://mrh.io) [+resume](https://ipfs.io/ipfs/QmcHxD94cvJgq5ZZxQkEi7SRMwD5dBnkhQ3zzaVFqNWFJb) | [+github](https://github.com/koivunej) [+linkedin](https://www.linkedin.com/in/joonas-koivunen-70273412/) | [+github](https://github.com/ljedrz) [+linkedin](https://www.linkedin.com/in/ljedrz/) [+stackoverflow](https://stackoverflow.com/users/1870153/ljedrz) | -| Core contributor, OrbitDB. Current rust-ipfs contributor. Implemented an [Ambients Protocol parser/compiler](https://github.com/aphelionz/ambients) in Rust | Current rust-ipfs contributor + Rust-lang tooling contributor + experience with database implementations in Rust | Rust compiler contributor. Active Rust mentor on Stack Overflow. Wrote the `lambda_calculus` crate | +| Mark Henderson | Joonas Koivunen | +| -------------- | --------------- | +| | | +| Rust Developer, Project Manager | Rust Developer | +| [+github](https://github.com/aphelionz) [+website](https://mrh.io) [+resume](https://ipfs.io/ipfs/QmcHxD94cvJgq5ZZxQkEi7SRMwD5dBnkhQ3zzaVFqNWFJb) | [+github](https://github.com/koivunej) [+linkedin](https://www.linkedin.com/in/joonas-koivunen-70273412/) | +| Core contributor, OrbitDB. Current rust-ipfs contributor. Implemented an [Ambients Protocol parser/compiler](https://github.com/aphelionz/ambients) in Rust | Current rust-ipfs contributor + Rust-lang tooling contributor + experience with database implementations in Rust | ### Maintenance and Upgrade Plan @@ -170,16 +149,10 @@ different levels of difficulty, and by providing mentoring. ### Summary The grant team will continue our phased approach, with each deliverable continuing to build upon -the last, culminating in the launch of the first Rust IPFS public gateway. +the last. -* **Phase 2.0** will be a time-boxed hardening phase, stabilizing the project to work towards -publishing to crates.io by adding tests, documentation, and performing necessary bug fixes and/or -refactoring to handle accumulated technical debt. -* **Phase 2.1** will begin work towards gateway support by adding the necessary UnixFS support in +* **Phase 2.0** will be time-boxed to 2 weeks and will add the necessary UnixFS support for `/cat`, and `/get` endpoints. `/ls` may be added if time allows. -* **Phase 2.2** will add basic configuration file support, `_dnslink` support, swarming with -bootstrap peers, and a denylist for reported content -* **Phase 2.3** will add the `/ipfs/` endpoint, and launch the server. #### Updates to Project Management Processes @@ -194,36 +167,13 @@ implementation. An example of this is the of documentation sources, tests, and independent investigation to determine conformance requirements. -Finally, as mentioned above, we are trying out time-boxed phases for Phase 2.0 and 2.1, -prioritizing mission-critical deliverables and adding in more optional ones if we have the time. +Finally, as mentioned above, we are trying out time-boxing for Phase 2.0. ### Implementation Details #### Phase 2.0 -The grant team has ownership of https://crates.io/crates/ipfs and plans on publishing there so -developers can use it in their Rust code, and so users can add `ipfs = "0.1.0"` to their Cargo.toml -file, or something similar. This will be a time-boxed phase of 2 weeks. - -However, a few things stand in the way of publishing successfully. -- Need all dependencies to be properly released versions: - - A forked versions `aes-ctr` crate need a PRs to be approved and merged - - Latest versions of `rust-libp2p` and `aes-ctr` libraries need to be published to crates.io - - `domain` could be replaced with `trust-dns` -- Activating the `interop` tests using the same refactoring techniques we applied for `interface` -- Documentation for the https://docs.rs website, then if time allows: -- Automated releases via the [`bors`](https://bors.tech/) GitHub bot -- Code Coverage via the `grcov` or `cargo-cov` tools -- Select benchmarks to set baselines for future refactoring. - -We'd like to suggest utilizing the [OrbitDB](https://github.com/orbitdb) library for the benchmarks -via the HTTP API. This is due to the team's familiarity, and the fact that a large number of tests -and benchmarks already exist within OrbitDB's code base. Note that this may require creating a -scaffold `/key` endpoint, but that will not be a full implementation of the `/key` APIs. - -#### Phase 2.1 - -UnixFSv1 support is necessary for gateway support. We will start with basic files (non-hamt +UnixFSv1 support is necessary for many use cases. We will start with basic files (non-hamt directories), supporting single-block directories and multi-block files with up to [174 links](https://github.com/ipfs/specs/blob/master/UNIXFS.md#layout) per folder. That will allow us to land `/get/` as well as `/cat`. @@ -231,28 +181,6 @@ That will allow us to land `/get/` as well as `/cat`. This will also be a time-boxed phase of two weeks. If time allows we will also add support for the `/ls` endpoint, and perhaps others as suggested by PL. -#### Phase 2.2 - -The grant team will focus on three primary things during this phase, which will **not** be -time-boxed as all of the items here are mission-critical. - -1. The foundations of `config` file support, namely the `Addresses.API`, `Addresses.Swarm`, -and `Bootstrap` configuration directives, allowing for basic configuration of a node or gateway. -2. `_dnslink` support so that people can: - 1. Point their `A` and `TXT` dns records to the gateway and host their websites on our node. - 2. Resolve IPFS paths such as `/ipns/domain.com/something` -3. The ability to swarm with designated bootstrap peers. This depends on dnsaddr with rust-libp2p, -so we will likely need to coordinate with the authors on that, or make another fork and PR. - -Finally, since we will be hosting user content, we will need to support some sort of denylist -apparatus for reported content. - -#### Phase 2.3 - -During the final phase of this grant cycle, the team will enable the `/ipfs` endpoint for the -gateway, and come up with a basic system for garbage collection. Then, Equilibrium will -choose an appropriate hosting platform, and launch! - ### Success Metric Previously we used [HTTP endpoints](https://github.com/ipfs/devgrants/tree/master/open-grants/ipfs-rust#metric-number-of-http-endpoints-implemented) @@ -264,13 +192,6 @@ As of the writing of this proposal, the grant team's work passes 102 conformance the conformance tests that cover Phase 2's endpoints suggest there could be well over 135 passing tests by the end of this grant cycle. -Additionally, we will define success of this grant cycle with a successful launch of a public -gateway that is capable of: - -1. Resolving `/ipfs/[cid]` -2. Serving custom domains with `_dnslink` -3. Resolving `/ipns/[domain name]` via `_dnslink` - ### Definition of Done We had success with the definition of done used in Phase 1, and as such we will continue to use it. Each command will be considered done when the following requirements are met: @@ -319,36 +240,8 @@ The following endpoints are or will be deprecated: ## Project Schedule - ### Phase 2.0 -Due to the fact that we can't _guarantee_ that the dependencies such as `libp2p` will be updated, -we cannot guarantee that we will publish to crates.io, but all of our effort will be focused on -that goal. - -#### Deliverables (in order of prioritization) -1. Priority on released dependencies, cleaning up outstanding PRs from forked libraries. -2. Documentation for docs.rs. -3. Activate interop tests -4. bors + release CI. -5. Code coverage -6. OrbitDB Tests and benchmarking -7. Project milestone report - 1. Updated interop test results - -#### Development Schedule -**This will be a time-boxed phase.** The work will be triaged and addressed by priority, getting -through as much work as we can in a two-week period. We can be flexible in terms of start dates, -however we would like to continue on the Rust IPFS work as soon as possible after Phase 1 is -completed to avoid any disruptions. - -#### Estimated Budget (Phase 2.0) -| | Number of Hours | Hourly Rate | Total (Euros) | Total (USD) | -| --- | ---- | ---- | ---- | --- | -| Software Development and Project Management | 140 hours | 120€ | 16,800€ | $18239.59 | - -### Phase 2.1 - The focus of this phase is UnixFSv1 support and the `/get` and `/cat` endpoints. See the [implementation details](#implementation-details) section for more information. @@ -367,48 +260,4 @@ of implementing UnixFS and the endpoint details. For example - `/get` requires ` #### Estimated Budget | | Number of Hours | Hourly Rate | Total (Euros) | Total (USD) | | --- | ---- | ---- | ---- | --- | -| Software Development and Project Management | 140 hours | 120€ | 16,800€ | $18239.59 | - -### Phase 2.2 - -This phase continues gateway functionality development by adding basic configuration -directives as well as `_dnslink` support. - -#### Deliverables -1. Configuration directive support - 1. `Addresses.API` - 2. `Addresses.Swarm` - 3. `Bootstrap` -2. `_dnslink` support - 1. Domains - 2. IPFS paths i.e. `/ipns/domain.com/something` -3. Denylist for reported content -4. Swarming with Bootstrap peers -5. Project milestone report - -#### Development Schedule -This will not be a time-boxed phase, and we expect the work to take roughly 2-3 weeks. - -#### Estimated Budget -| | Number of Hours | Hourly Rate | Total (Euros) | Total (USD) | -| --- | ---- | ---- | ---- | --- | -| Software Development and Project Management | 170 hours | 120€ | 20,400€ | $22148.08 | - -### Phase 2.3 - -This phase completes the gateway by adding the `/ipfs` endpoint, and launching the node! - -#### Deliverables -1. `/ipfs/` endpoint -2. Stale Content Removal -3. Hosting Considerations (logging, monitoring, volume resizing, etc) -4. Public Gateway Launch -5. Project final report - -#### Development Schedule -This will not be a time-boxed phase, and we expect the work to take roughly 1-2 weeks. - -#### Estimated Budget -| | Number of Hours | Hourly Rate | Total (Euros) | Total (USD) | -| --- | ---- | ---- | ---- | --- | -| Software Development and Project Management | 80 hours | 120€ | 9,600€ | $10422.62 | +| Software Development and Project Management | 70 hours | 120€ | 8.400€ | $9096.11 | From 24e45ba9919f0a2065c7228a58f5f3b10f227c7e Mon Sep 17 00:00:00 2001 From: Mark Henderson Date: Mon, 27 Apr 2020 15:52:18 -0400 Subject: [PATCH 091/113] fix: scoping down --- open-grants/ipfs-rust/phase-2/README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/open-grants/ipfs-rust/phase-2/README.md b/open-grants/ipfs-rust/phase-2/README.md index c6871de3..a25bd69f 100644 --- a/open-grants/ipfs-rust/phase-2/README.md +++ b/open-grants/ipfs-rust/phase-2/README.md @@ -10,9 +10,9 @@ As such, we believe that IPLD application developers have what they need to star that leverage the flexibility and connectivity of IPLD, along with the performance and reliability of Rust. -However, without battle testing" Rust IPFS in the wild, we will miss opportunities to -gather insight and benchmarks into how it truly performs. Luckily, there's an easy use case to -reach for: +Two of the pillars for a ready-to-use implementation of IPFS are there now: peer-to-peer networking +and the blockstore. What remains is UnixFS. This proposal is a small fast-follow to Phase 1, which +completes the foundation and provides something that can be tested in the wild. ## Project Description From abaeead68cf390a74ba516190c08c38befeb2c55 Mon Sep 17 00:00:00 2001 From: Oliver Sauter Date: Mon, 4 May 2020 20:24:39 +0200 Subject: [PATCH 092/113] V0.1 of IPFS grant proposal --- ...en-proposal-memex+ipfs+filecoin+textile.md | 124 ++++++++++++++++++ 1 file changed, 124 insertions(+) create mode 100644 open-grants/open-proposal-memex+ipfs+filecoin+textile.md diff --git a/open-grants/open-proposal-memex+ipfs+filecoin+textile.md b/open-grants/open-proposal-memex+ipfs+filecoin+textile.md new file mode 100644 index 00000000..867da670 --- /dev/null +++ b/open-grants/open-proposal-memex+ipfs+filecoin+textile.md @@ -0,0 +1,124 @@ +# Open Grant Proposal: `Memex + IPFS/Filecoin + Textile` + +**Name of Project: `Memex + IPFS/Filecoin + Textile`** + +**Proposer:** @blackforestboi @shishkabab @andrewxhill + +**Do you agree to open source all work you do on behalf of this RFP and dual-license under MIT and APACHE2 licenses?:** +Yes + +**Potentially interesting for** +- Protocol Labs +- IPFS +- Filecoin + +# Project Description + +### Problems: + +1. WorldBrain's [Memex](https://getmemex.com) is a browser extension for full-text history search, annotations and web archiving. This data is valuable to store on IPFS or Filecoin, but an integration is missing. What can be shared: + - Collections (Curations of websites, annotations and (soon) web archives) + - Annotations + - Tagged pages + - Bookmarks + +2. For app developers there are frictions in experimenting with IPFS because the entire architecture needs to be built on top of it, or suitable abstraction layers need to be considered from the start. + +### Solutions + +1. At WorldBrain we developed StorexHub, [an offline-first Zapier](https://medium.com/@WorldBrain/storexhub-an-offline-first-open-source-zapier-f8841810fd9c). It's original purpose is to enable developers/users to integrate Memex with any app or technology flexibly. However it also allows to connect any app with each other and has a database abstraction layer allowing for flexible usage of database technologies and transport protocols like IPFS. +Adding a IPFS/Filecoin plugin gives users the ability to selectively store their data on IPFS/Filecoin + +Example use case: +A user curates a list of articles, annotations and web archives with the most useful articles about the COVID crisis. They set up the IPFS integration to automatically sync this collection, and also everything that is tagged with "IPFS". + +Developers can also experiment more flexibly with IPFS since they can start with more traditional databases and then gradually migrate to IPFS without rewriting their application logic or just use IPFS for some of their functionality. A gradual decentralisation- and infrastructure migration process becomes possible. +As an example: Memex's (or other apps) sharing functionality can be done with IPFS/Filecoin, while the rest of the system uses the browser internal database. +Migrating Memex entire application logic from IndexedDB (browser extension) to TypeORM (mobile) took 1 day. + + +## Value +- What are the benefits to getting this right? +Having an IPFS/Filecoin integration would lead to **increased adoption among developers** and **knowledge professionals**. Both are critical audiences to further IPFS's mission statement to *preserve and grow humanity’s knowledge* Memex can provide that because its main users are developers, (investigative) journalists, 2nd Brainers and overall knowledge workers. +It would also make important bits of knowledge available on the network, like (parts) of browsing histories, bookmarks, annotations, curated lists, tagged content & (soon) web archives. +Through StorexHub, a more risk free experimentation with IPFS/Filecoin may lead to higher adoption down the line. + + +- What are the risks if you don't get it right? + - Important knowledge will have one way less for being distributed + - IPFS/Filecoin will not be able to tap into the community of a mainstream user product + - Less adoption potential for IPFS/Filecoin + +- What are the risks that will make executing on this project difficult? + +Nothing major we can think of. The only thing is that we are working with Textile.io's stack for the first time. +With Andrew we have the right advisors on board to make the integration smooth. + + +## Deliverables +### Definition of done +- There is a StorexHub Plugin for IPFS/Filecoin powered by Textile's Threads that enables developers and users to store Memex data on IPFS. +- There is a database operations abstraction layer that allows any app to use Textile/IPFS/Filecoin APIs to store data +- There is a Developer & User focused documentation on how to setup the IPFS/Filecoin integration. + +## Development Roadmap + +**Milestone 1:** +Implemented IPFS/Filecoin plugin for StorexHub with Textile's Threads + +Lead: Vincent den Boer +Advisor: Andrew Hill +Time: 2 days á 600€/day = 900€ + +**Milestone 2:** +Added database abstraction to enable any app connected to StorexHub to use the IPFS integration. + +Lead: Vincent den Boer +Time: 2 days á 600€/day = 1200 + +**Milestone 3:** +Written documentation for developers and users on how to use IPFS integration + +Lead: Oliver Sauter +Advisor: Vincent den Boer +Time: 1 day á 600€/day = 600 + + +## Total Budget Requested + +2700€ + + +## Maintenance and Upgrade Plans + +This integration will be kept up-to-date with Textile's Threads latest versions. +The work provides a forkable reference implementation that can be maintained by the community. + +The next step after this proposal is to add an end-user-friendly, Wordpress-like interface to setup, configure and maintain this plugin. This is potentially part of another proposal though. +See for more: https://www.notion.so/worldbrain/StorexHub-Interface-3a6024e9538e404ab4df41771302de3f + +# Team + +## Team Members + +- Oliver Sauter @blackforestboi +- Vincent den Boer @shishkabab +- Andrew Hill @andrewxhill + + +## Team Website + +https://getmemex.com +https://textile.io + +## Relevant Experience + +We're the developers of Memex, StorexHub and Textile and offer all relevant product and technical experience to finish this project in a timely manner. + + +## Team code repositories + +https://github.com/WorldBrain +https://github.com/textileio + + From 8a6db1e572f6a6a243c8e586764dbe71a7722ae9 Mon Sep 17 00:00:00 2001 From: Karissa McKelvey <633012+okdistribute@users.noreply.github.com> Date: Mon, 4 May 2020 12:27:12 -0700 Subject: [PATCH 093/113] Update open-street-map-ipfs.md --- targeted-grants/open-street-map-ipfs.md | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/targeted-grants/open-street-map-ipfs.md b/targeted-grants/open-street-map-ipfs.md index dcbf2a34..484ff324 100644 --- a/targeted-grants/open-street-map-ipfs.md +++ b/targeted-grants/open-street-map-ipfs.md @@ -38,7 +38,7 @@ OpenStreetMap is an amazing example of public-interest technology and community- 2. Commandline tool using `peermaps/ingest` to diff .pbf files, convert to the Peermaps format, and pin both data formats on IPFS; 3. Commandline tool using `peermaps/ingest` .pbf files, convert to the Peermaps format, and pin both data formats on Filecoin 4. Post about the project for the IPFS blog -5. Demo page with example code for map view in an HTML page using the Peermaps data published from IPFS. +5. Demo page with example code for map view in the browser using js-ipfs to fetch data. 6. Report on feasability, usability, experience building on Filecoin/IPFS apis. ## Team @@ -69,10 +69,9 @@ Commandline tool to diff .pbf files, convert to the Peermaps format, and pin bot Also include any relevant constraints that the implementer should be aware of before beginning this project.--> -We plan to run the commandline tool to diff pbf files, convert to the -Peermaps format, and upload to IPFS. This will be run on a computer every week. -This is how often a new OSM diff file is published. Long-term goal of this -project (1+ years from now) is to make this downloading/packing/indexing be +We plan to run a node to process, diff, and host the data in the short term. This will be run on a computer every week. We can publish this on a collaborative cluster to make it easy for other folks to also host the subsequent data. If at some point we decide to shut off our node that processes & diffs, we will let Protocl Labs know -- and of course all the necessary tools will be open source. + +A long-term goal of this projectis to make this processing & indexing be done with distributed computation, rather than on a single machine. Ideally, other groups in maplandia would be interested in running the infra/CI and we could share the computation load. From 25eb4682b305189121b8ae35472bf86a06bf59e5 Mon Sep 17 00:00:00 2001 From: Karissa McKelvey <633012+okdistribute@users.noreply.github.com> Date: Mon, 4 May 2020 21:22:41 -0700 Subject: [PATCH 094/113] Update open-street-map-ipfs.md --- targeted-grants/open-street-map-ipfs.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/targeted-grants/open-street-map-ipfs.md b/targeted-grants/open-street-map-ipfs.md index 484ff324..74111782 100644 --- a/targeted-grants/open-street-map-ipfs.md +++ b/targeted-grants/open-street-map-ipfs.md @@ -69,9 +69,9 @@ Commandline tool to diff .pbf files, convert to the Peermaps format, and pin bot Also include any relevant constraints that the implementer should be aware of before beginning this project.--> -We plan to run a node to process, diff, and host the data in the short term. This will be run on a computer every week. We can publish this on a collaborative cluster to make it easy for other folks to also host the subsequent data. If at some point we decide to shut off our node that processes & diffs, we will let Protocl Labs know -- and of course all the necessary tools will be open source. +We plan to run a node to process, diff, and host the data in the short term. This will be run on a computer every week. We can publish this on a collaborative cluster to make it easy for other folks to also host the subsequent data. If at some point we decide to shut off our node that processes & diffs, we will let Protocol Labs know -- and of course all the necessary tools will be open source. -A long-term goal of this projectis to make this processing & indexing be +A long-term goal of this project is to make this processing & indexing be done with distributed computation, rather than on a single machine. Ideally, other groups in maplandia would be interested in running the infra/CI and we could share the computation load. From d8cc8775f5dc183fff734b120bb15132999b2614 Mon Sep 17 00:00:00 2001 From: Oliver Sauter Date: Tue, 5 May 2020 13:42:43 +0200 Subject: [PATCH 095/113] fixed typos from wrong copy over --- open-grants/open-proposal-memex+ipfs+filecoin+textile.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/open-grants/open-proposal-memex+ipfs+filecoin+textile.md b/open-grants/open-proposal-memex+ipfs+filecoin+textile.md index 867da670..7f2eaa78 100644 --- a/open-grants/open-proposal-memex+ipfs+filecoin+textile.md +++ b/open-grants/open-proposal-memex+ipfs+filecoin+textile.md @@ -68,7 +68,7 @@ Implemented IPFS/Filecoin plugin for StorexHub with Textile's Threads Lead: Vincent den Boer Advisor: Andrew Hill -Time: 2 days á 600€/day = 900€ +Time: 2 days á 600€/day = 1200€ **Milestone 2:** Added database abstraction to enable any app connected to StorexHub to use the IPFS integration. @@ -86,7 +86,7 @@ Time: 1 day á 600€/day = 600 ## Total Budget Requested -2700€ +3000€ ## Maintenance and Upgrade Plans From ca8b486c3b80bef492d90b36fe87f7a3398206ab Mon Sep 17 00:00:00 2001 From: Mark Robert Henderson Date: Tue, 5 May 2020 09:36:29 -0400 Subject: [PATCH 096/113] Update README.md --- open-grants/ipfs-rust/phase-2/README.md | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/open-grants/ipfs-rust/phase-2/README.md b/open-grants/ipfs-rust/phase-2/README.md index a25bd69f..8793c674 100644 --- a/open-grants/ipfs-rust/phase-2/README.md +++ b/open-grants/ipfs-rust/phase-2/README.md @@ -182,15 +182,11 @@ This will also be a time-boxed phase of two weeks. If time allows we will also a the `/ls` endpoint, and perhaps others as suggested by PL. ### Success Metric -Previously we used -[HTTP endpoints](https://github.com/ipfs/devgrants/tree/master/open-grants/ipfs-rust#metric-number-of-http-endpoints-implemented) -implemented as the key performance indicator. Given the lessons learned from Phase 1, we’d like -to stick closely to this, but change the metric slightly to **passing conformance tests** -for endpoints. - -As of the writing of this proposal, the grant team's work passes 102 conformance tests. Analysis of -the conformance tests that cover Phase 2's endpoints suggest there could be well over 135 passing -tests by the end of this grant cycle. +Previously we used [HTTP endpoints](https://github.com/ipfs/devgrants/tree/master/open-grants/ipfs-rust#metric-number-of-http-endpoints-implemented) implemented as the key performance indicator. Given the lessons learned from Phase 1, we’d like to stick closely to this, but change the metric slightly to **passing conformance tests** for endpoints. + +As of the writing of this proposal, the grant team's work passes 102 conformance tests. Analysis of the conformance tests that cover Phase 2's endpoints suggest there could be well over 135 passingtests by the end of this grant cycle. + +Additionally, we will track the test coverage (currently 56% according to `cargo-tarpaulin`) to ensure that it, at the very least, does not decrease. Increasing the test coverage will be a target for the grant team but will not be guaranteed during this particular grant cycle. ### Definition of Done We had success with the definition of done used in Phase 1, and as such we will continue to use From 4a8b56d09cd8f35e1dbd70a004584744baf9fd24 Mon Sep 17 00:00:00 2001 From: Dietrich Ayala Date: Wed, 6 May 2020 15:04:43 -0400 Subject: [PATCH 097/113] Remove beta flag, and post Q2 funding cutoff message --- README.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 4b27d6d9..ff39529d 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,10 @@ # ipfs-grants -|beta| -|---| Welcome to the IPFS Grant Platform! The Grant Platform connects grant makers with builders and researchers in the IPFS community. Whether you represent a foundation that wants to move the space forward, a company looking to accelerate development on the features your application needs, or a dev team itching to hack on IPFS tools, you've come to the right place. Take a look at the supported grant types and available funding + work opportunities below. +|:warning: The grants program has now [launched out of beta](https://blog.ipfs.io/2020-04-20-ipfs-grants-platform/) and has been a huge success. The IPFS team budget for grants in Q2 is now spent, and we are not funding any proposals not already in review until Q3 2020. This platform is still open for discussing grants for future funding, to submit proposals that could be funded from other interested parties, or to propose funding of your own for projects you'd like to see exist!| +|---| + ## Grant Types ### Bounty From 19a0ff1d71c8b82adc25a7f10927036f06a13c74 Mon Sep 17 00:00:00 2001 From: Joonas Koivunen Date: Thu, 14 May 2020 16:50:59 +0300 Subject: [PATCH 098/113] Grant2 easy updates (#3) * remove embedded settings having discussed this internally we would like to withdraw this word as it might allude to `no_std` for targets without an operating system. * fix links ipfs-rust => rs-ipfs following organization change. * remove references to /ls following feedback we decided not to pursue /ls endpoint. * Update open-grants/ipfs-rust/phase-2/README.md * add future roadmapping or planning * add explanation for leaving the importer side * Update README.md Co-authored-by: Mark Robert Henderson --- open-grants/ipfs-rust/phase-2/README.md | 32 +++++++++++++++---------- 1 file changed, 20 insertions(+), 12 deletions(-) diff --git a/open-grants/ipfs-rust/phase-2/README.md b/open-grants/ipfs-rust/phase-2/README.md index 8793c674..9cc4448e 100644 --- a/open-grants/ipfs-rust/phase-2/README.md +++ b/open-grants/ipfs-rust/phase-2/README.md @@ -14,7 +14,13 @@ Two of the pillars for a ready-to-use implementation of IPFS are there now: peer and the blockstore. What remains is UnixFS. This proposal is a small fast-follow to Phase 1, which completes the foundation and provides something that can be tested in the wild. -## Project Description +Implementing UnixFS will enable future work on persistence. Following this grant, our plans focus on +the creation of benchmarks using bitswap and UnixFS exporting. This will establish a baseline to +guide exploration of multihash keyed blockstore following the [ipfs/specs #242 resolution]. + +[ipfs/specs #242 resolution]: https://github.com/ipfs/specs/issues/242#issuecomment-627533056 + +# Project Description ### Summary @@ -23,7 +29,11 @@ The Rust IPFS grant team successfully completed Phase 1 of the plans to continue working towards a fully conformant Rust implementation of IPFS. Next, we would implement UnixFS and the minimum-viable set of endpoints, determined to be -`/get`, and `/cat`. If time allows we may explore `/ls` as well. +`/get`, and `/cat` or the UnixFS exporter side. + +Adding content as UnixFS or the importer side was left out of the scope to be +realistic on the timeframe but we expect to lay enough groundwork during this +grant that development of the importer could be provided by new contributors. For more information on how the grant process has been going so far, please read the grant reports for more information: @@ -50,7 +60,7 @@ Overall, the grant team has shown that they can meet milestones and deliverables even throughout internal, community-wide, external, and of course global challenges. As for Phase 2, the value of UnixFS would be the final pillar in the foundation allowing for use -cases such as low-resourced devices in IoT and embedded settings. +cases such as low-resourced devices in IoT settings. ### Risk Assessment @@ -152,18 +162,18 @@ The grant team will continue our phased approach, with each deliverable continui the last. * **Phase 2.0** will be time-boxed to 2 weeks and will add the necessary UnixFS support for -`/cat`, and `/get` endpoints. `/ls` may be added if time allows. +`/cat`, and `/get` endpoints. #### Updates to Project Management Processes We had adopted and had success with the use of organization-wide GitHub projects, which allows us -a coordinated, high-level view of each grant phase. You can see the ipfs-rust projects here: -https://github.com/orgs/ipfs-rust/projects. +a coordinated, high-level view of each grant phase. You can see the rs-ipfs projects here: +https://github.com/orgs/rs-ipfs/projects. Additionally, instead of a gantt chart, we are opting for more roughly estimated timeline with careful research done for each set of endpoints to properly scope out the requirements ahead of implementation. An example of this is the -[block endpoint issue](https://github.com/ipfs-rust/rust-ipfs/issues/90), which combined a number +[block endpoint issue](https://github.com/rs-ipfs/rust-ipfs/issues/90), which combined a number of documentation sources, tests, and independent investigation to determine conformance requirements. @@ -176,10 +186,9 @@ Finally, as mentioned above, we are trying out time-boxing for Phase 2.0. UnixFSv1 support is necessary for many use cases. We will start with basic files (non-hamt directories), supporting single-block directories and multi-block files with up to [174 links](https://github.com/ipfs/specs/blob/master/UNIXFS.md#layout) per folder. -That will allow us to land `/get/` as well as `/cat`. +That will allow us to land `/get` as well as `/cat`. -This will also be a time-boxed phase of two weeks. If time allows we will also add support for -the `/ls` endpoint, and perhaps others as suggested by PL. +This will be a time-boxed phase of two weeks. ### Success Metric Previously we used [HTTP endpoints](https://github.com/ipfs/devgrants/tree/master/open-grants/ipfs-rust#metric-number-of-http-endpoints-implemented) implemented as the key performance indicator. Given the lessons learned from Phase 1, we’d like to stick closely to this, but change the metric slightly to **passing conformance tests** for endpoints. @@ -245,8 +254,7 @@ The focus of this phase is UnixFSv1 support and the `/get` and `/cat` endpoints. 1. UnixFSv1 support 2. `/get` 3. `/cat` -4. `/ls` if time allows -5. Project milestone report +4. Project milestone report 1. Interop and performance test results #### Development Schedule From f624cebe170a3743cc9ed254c483dcc079e16bb6 Mon Sep 17 00:00:00 2001 From: Arkadiy Kukarkin Date: Wed, 20 May 2020 13:50:25 -0700 Subject: [PATCH 099/113] Archive Crystallizer --- open-grants/{ => archived}/crystalizer.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename open-grants/{ => archived}/crystalizer.md (100%) diff --git a/open-grants/crystalizer.md b/open-grants/archived/crystalizer.md similarity index 100% rename from open-grants/crystalizer.md rename to open-grants/archived/crystalizer.md From c2718228cf592bb21cad4c394de9702d625b6f15 Mon Sep 17 00:00:00 2001 From: Johnny Matthews Date: Thu, 21 May 2020 11:18:40 -0400 Subject: [PATCH 100/113] Updates docs link to non-beta site. --- targeted-grants/protocol-handler-api-for-browser-extensions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/targeted-grants/protocol-handler-api-for-browser-extensions.md b/targeted-grants/protocol-handler-api-for-browser-extensions.md index a5662bc0..854b2403 100644 --- a/targeted-grants/protocol-handler-api-for-browser-extensions.md +++ b/targeted-grants/protocol-handler-api-for-browser-extensions.md @@ -143,7 +143,7 @@ in other browsers if we empower extensions with capability to register custom protocol handlers. [Opera for Android 57]: https://blog.ipfs.io/2020-03-30-ipfs-in-opera-for-android/ -[subdomain gateway]: https://docs-beta.ipfs.io/how-to/address-ipfs-on-web/#subdomain-gateway +[subdomain gateway]: https://docs.ipfs.io/how-to/address-ipfs-on-web/#subdomain-gateway ### Next: native protocol handler API for browser extensions (this grant) From 36f24ec4d86ae585f7e51d6ee86d78d47a2ea8d1 Mon Sep 17 00:00:00 2001 From: Cole Helbling Date: Tue, 26 May 2020 16:03:01 -0700 Subject: [PATCH 101/113] Nix x IPFS: fix URL It's treated as a relative URL without the protocol, so add that. --- open-grants/open-proposal-nix-ipfs.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/open-grants/open-proposal-nix-ipfs.md b/open-grants/open-proposal-nix-ipfs.md index 31ffea36..1fba17a8 100644 --- a/open-grants/open-proposal-nix-ipfs.md +++ b/open-grants/open-proposal-nix-ipfs.md @@ -255,7 +255,7 @@ As an interested party, Obsidian Systems will contribute funding to this grant i ## Maintenance and Upgrade Plans -We will upstream all changes to Nix, breaking out changes into PRs and writing [RFCs](github.com/nixos/rfcs) as needed. +We will upstream all changes to Nix, breaking out changes into PRs and writing [RFCs](https://github.com/nixos/rfcs) as needed. Changes may be requested during the RFC process, in which case we will make those changes, but we do not expect outright rejection as we think these features will be extremely popular. From f0f30e2842ddfea01e2e8992a43d982adf83d8bc Mon Sep 17 00:00:00 2001 From: Mark Henderson Date: Wed, 17 Jun 2020 10:51:20 -0400 Subject: [PATCH 102/113] Phase 2 report Adding empty phase-2.md Update phase-2.md Update phase-2.md add: cat, get, ci, conf testing, automation add: about test coverage, documentation Update phase-2.md Update open-grants/ipfs-rust/phase-2/reports/phase-2.md Co-authored-by: Joonas Koivunen Update open-grants/ipfs-rust/phase-2/reports/phase-2.md Co-authored-by: Joonas Koivunen Update open-grants/ipfs-rust/phase-2/reports/phase-2.md Co-authored-by: Joonas Koivunen --- .../{ => phase-1}/reports/phase-1.2.md | 0 .../ipfs-rust/phase-2/reports/phase-2.md | 118 ++++++++++++++++++ 2 files changed, 118 insertions(+) rename open-grants/ipfs-rust/{ => phase-1}/reports/phase-1.2.md (100%) create mode 100644 open-grants/ipfs-rust/phase-2/reports/phase-2.md diff --git a/open-grants/ipfs-rust/reports/phase-1.2.md b/open-grants/ipfs-rust/phase-1/reports/phase-1.2.md similarity index 100% rename from open-grants/ipfs-rust/reports/phase-1.2.md rename to open-grants/ipfs-rust/phase-1/reports/phase-1.2.md diff --git a/open-grants/ipfs-rust/phase-2/reports/phase-2.md b/open-grants/ipfs-rust/phase-2/reports/phase-2.md new file mode 100644 index 00000000..f7e760c2 --- /dev/null +++ b/open-grants/ipfs-rust/phase-2/reports/phase-2.md @@ -0,0 +1,118 @@ +

+
+ Rust IPFS: Phase 2 Milestone Report +

+ +The IPFS Rust team completed Phase 2 roughly one week after the estimated time, simply due to inherent complexities in the large +feature set created. In spite of the delay, everything proposed in original grant is now delivered. + +The following activities were completed: + +- [ipfs_unixfs](#ipfs_unixfs-crate) crate +- [HTTP Endpoints](#http-endpoints). + - [`/cat`](#get) + - [`/get`](#cat) +- [Miscellaneous](#miscellaneous) bug fixes and upgrades +- [Interface Test Refactoring](#interface-test-refactoring), which was required for certain tests +- [Conformance Testing](#conformance-testing) +- [Test Coverage](#test-coverage) + +## ipfs_unixfs crate + +Following previous discussions on the repository issues, the grant team +started a new crate in the main repository called `ipfs_unixfs`, which was +designed so that it can be reused not only in `rust-ipfs` but in other +implementations as well. At the moment the implementation supports only the +work implemented in Phase 2 but we hope to grow its feature set in the coming months +to support `/add`, and more. + +## HTTP Endpoints + +### /cat + +The grant team completed the functionality for the `/cat` endpoint. Work started +by first implementing initial support for walking file trees in order for the +content in ipfs-unixfs PR [#176] followed by the endpoint implementation in PR +[#184]. + +[#176]: https://github.com/rs-ipfs/rust-ipfs/pull/176 +[#184]: https://github.com/rs-ipfs/rust-ipfs/pull/184 + +### /get + +The grant team completed the functionality for the `/get` endpoint in PR [#189]. +The pull request ended up large as a way to split the work between the +iterations could not be found. The pull request ended up addressing a number of +issues: + +* cleanup of overall `ipfs-unixfs` structure +* traversing over UnixFs directories (plain and HAMT Sharded), symlinks and + files (`/cat` feature) +* serving UnixFs content as `tar` at `/get` endpoint + +[#189]: https://github.com/rs-ipfs/rust-ipfs/pull/189 + +# Miscellaneous + +Relevant pull requests: + +* [Upgrade to rust-libp2p 0.19] +* [Cache dependencies on Windows builds] +* [Removal of `unsafe` code through dependency upgrade] + +[Upgrade to rust-libp2p 0.19]: https://github.com/rs-ipfs/rust-ipfs/pull/169 +[Cache dependencies on Windows builds]: https://github.com/rs-ipfs/rust-ipfs/pull/180 +[Removal of `unsafe` code through dependency upgrade]: https://github.com/rs-ipfs/rust-ipfs/pull/191 + +# Interface Test Refactoring + +Continuing the work started in previous phases, the `ipfs.add` API use was replaced +in the tests for `/cat` and `/get`. This resulted in two PRs, one of which has +already been merged: + +* https://github.com/ipfs/js-ipfs/pull/3078 +* https://github.com/ipfs/js-ipfs/pull/3093 + +# Conformance Testing + +## Interface + +The grant team is happy to report that *121 interface tests now pass* on the +latest build of Rust IPFS. + +The supported endpoints now includes: + +* `/pubsub/{publish,subscribe,peers,ls}` +* `/swarm/{connect,peers,addrs,addrs/local,disconnect}` +* `/id` +* `/version` +* `/stop` +* `/block/{get,add,rm,stat}` +* `/dag/{get,put,resolve}` +* `/refs` and `/refs/local` +* `/bitswap/{stat,wantlist}` +* `/cat` +* `/get` + +## Automation + +The grant team has been running conformance tests on CI since PR [#98] was merged +at near the beginning of Phase 2. Following testing PR [#24] we are now able to +maintain a patched version of the `interface-ipfs-core` package with our patches +to version we are currently basing the work on. + +[#98]: https://github.com/rs-ipfs/rust-ipfs/pull/98 +[#24]: https://github.com/rs-ipfs/ipfs-rust-conformance/pull/24 + +# Test Coverage + +Before Phase 2 the line coverage as reported by +`cargo-tarpaulin` (latest version, latest rust toolchain) was 54%, +1926/3542 lines covered. After Phase 2 the coverage report stands at 57% +coverage, 3232/5653 lines covered. Calculating from the coverage report, over +2000 lines were added but still the overall coverage was **increased.** + +The new crate, `ipfs-unixfs`, is compiled with different lint settings than +existing code, namely warnings on missing public element documentation has been +enabled. This has lead to the crate having at least minimal documentation and is +supported by two examples: `get` and `cat`, which demonstrate the crates use. From 0be8783d4f834aba867a696317231ad7c57bbefe Mon Sep 17 00:00:00 2001 From: Pierros Papadeas Date: Mon, 27 Jul 2020 19:20:55 +0300 Subject: [PATCH 103/113] Create open-proposal-embedded-ipfs.md --- open-grants/open-proposal-embedded-ipfs.md | 130 +++++++++++++++++++++ 1 file changed, 130 insertions(+) create mode 100644 open-grants/open-proposal-embedded-ipfs.md diff --git a/open-grants/open-proposal-embedded-ipfs.md b/open-grants/open-proposal-embedded-ipfs.md new file mode 100644 index 00000000..203a1b9b --- /dev/null +++ b/open-grants/open-proposal-embedded-ipfs.md @@ -0,0 +1,130 @@ +# Open Grant Proposal: `Simplified Lightweight IPFS for embedded systems` + + + +**Name of Project**: _Embedded IPFS_ + + + +**Proposer**: `GeorgeTsagk` - Libre Space Foundation + + + +**Do you agree to open source all work you do on behalf of this RFP and dual-license under MIT and APACHE2 licenses?:** + +"Yes" + +# Introduction + + +### About _Libre Space Foundation_: +Libre Space Foundation is a non-profit organization creating open source space technologies. LSF is active on several free software, open hardware and open data projects directly related to space applications and technologies while producing open-data and know how for all. + +One of the most active Libre Space projects is SatNOGS, the open global satellite ground-station network. It is designed as an open source participatory project based on the users operating a ground station that is accessed via a web page for all of the network users. + +Libre Space together with the University of Patras are also the makers of UPSat, the 1st free software, open-hardware cubesat. + +Libre Space Foundation is also implementing the European Space Agency activity SDR Maker Space working on several open-source Software Defined Radio sub-activities, to facilitate satellite communications. + + +### Project Goal: +The goal of this project is to provide a simplified, yet fully functional, IPFS implementation suitable for embedded systems, +allowing embedded system networks to interoperate with the existing IPFS networks. + + +# Project Description + +Applying the IPFS concept on embedded systems and success in exchanging information between them will show the wide field of applications that IPFS can cover and extend it even more by bootstrapping new opportunities. + +At greater scales, the content-addressed concept between systems exchanging data can prove very suitable in terms of code complexity for the end user, as well as data consistency in cases of sub-system failure, without over-stressing the hardware. Such examples could be multiple-subsystem satellites or any generic network of connected devices (e.g. IoT). + +The IPFS concept best serves flexible and modular decentralized networks, which is the new trend in embedded systems. + +This project aims to: +* investigate the optimal way of applying an IPFS PoC on embedded systems +* provide the design and an implementation of a simple and lightweight solution +* demonstrate embedded-to-embedded utilization +* explore ways of establishing full interoperation with existing IPFS implementations + + +# Value + +If the application of this concept proves functional, then not only is the IPFS application width extended, but it opens a lot of opportunities in integrating with existing networks. + +An integrating example could be the propagation of information by using an embedded system as a node able to dynamically join / seperate from IPFS networks. + +For example a literate inter-planetary exchange of information that treats the system as the moving node which serves as the information carriage (e.g. a futuristic concept where a device being a node on Earth travells and becomes a node on Mars). In such a case, the device could also internally utilize a simplified IPFS implementation for inter-system communications. + +Apart from the last example, a functional implementation of such a concept in embedded systems could be expanded in order to be used by device networks sharing data while serving many different roles (e.g. IoT). + +An unsuccessful execution of this project will give useful feedback on the simplified protocol's design. + +While conducting this program of work, main challenges would include issues regarding the respect on the lightweight approach of this implementation, as well as maintaining independence by any OS. + + +# Deliverables + +The deliverables would include (sorted by ascending order of delivery date): + +* Documentation about the specifications of a PoC version of IPFS on embedded systems +* Documentation and examples of various use cases +* Implementation of the simplified IPFS (in the form of a C++ library) +* Research results of effect on embedded system's resources +* Minimalistic example of the library's usage by 2 or more systems +* List of new features and optimizations to consider for a future version +* Interoperability & integration with existing IPFS research results + + +# Development Roadmap + + + +The following table describes the main checkpoints of this R&D procedure. + +| Milestone | Details | Hours | Assignees | Funding | +| :----------------------------------------------------------: | :----------------------------------------------------------: | :---: | :------------------------: | :-----: | +| Complete investigation of solution's approach | Full details on what the solution serves to the embedded systems. | 40 | `GeorgeTsagk` & `surligas` | 1400€ | +| Complete research around application's feature set | Documentation regarding the features that the library in its final form can support. | 40 | `GeorgeTsagk` | 1400€ | +| Complete Library Architecture | Layout of the library and its components, including documentation about its lifecycle. | 40 | `GeorgeTsagk` & `surligas` | 1400€ | +| Complete Software Design | Definition of the library's components & functions. Definition of the end user interface. | 40 | `GeorgeTsagk` | 1400€ | +| Implementation of PoC | Basic functional implementation of the library with a sub-set of features present. | 240 | `GeorgeTsagk` | 8400€ | +| Functional example on systems | Utilize the library by a network of systems, applying the IPFS over a common channel| 120 | `GeorgeTsagk` | 4200€ | +| Investigation about level of interoperation with existing IPFS | Report of compatibility with IPFS & interoperability with existing implementations | 60 | `GeorgeTsagk` & `surligas` | 2100€ | + + + +#### Total Budget Requested: + +The full completion of the upper roadmap would sum up a budget of _**24,000.00 USD**_ + +Expenses would include: + +- Engineers salary +- Administrative overhead +- Equipment procurement +- Lab expenses + + +# Team + + + +* **George Tsagkarelis** - Embedded Engineer - Libre Space Foundation (GitHub: [`GeorgeTsagk`](https://github.com/GeorgeTsagk) , GitLab: [`georgetsag`](https://gitlab.com/georgetsag)) +* **Manolis Surligas** - Systems Architect - Libre Space Foundation (GitLab: [`surligas`](https://gitlab.com/surligas)) + + +# Relevant Experience + +The group of LSF holds a significant amount of experience on embedded systems, showcased by a variety of previous projects. + +[AX5043 Transceiver Driver](https://gitlab.com/librespacefoundation/ax5043-driver) + +[HAB System](https://gitlab.com/librespacefoundation/hab) + +[Qubik](https://gitlab.com/librespacefoundation/qubik) + +[Rocketry Avionics](https://gitlab.com/librespacefoundation/rocketry) + +[UPSat](https://gitlab.com/librespacefoundation/upsat) + +[SatNOGS Rotator Firmware](https://gitlab.com/librespacefoundation/satnogs/satnogs-rotator-firmware) From 50ceb8fb4ce337d6099c630b2fb94872f19f923f Mon Sep 17 00:00:00 2001 From: Dietrich Ayala Date: Wed, 26 Aug 2020 11:01:09 -0600 Subject: [PATCH 104/113] typo fix --- open-grants/open-proposal-embedded-ipfs.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/open-grants/open-proposal-embedded-ipfs.md b/open-grants/open-proposal-embedded-ipfs.md index 203a1b9b..8cf83b9a 100644 --- a/open-grants/open-proposal-embedded-ipfs.md +++ b/open-grants/open-proposal-embedded-ipfs.md @@ -53,7 +53,7 @@ If the application of this concept proves functional, then not only is the IPFS An integrating example could be the propagation of information by using an embedded system as a node able to dynamically join / seperate from IPFS networks. -For example a literate inter-planetary exchange of information that treats the system as the moving node which serves as the information carriage (e.g. a futuristic concept where a device being a node on Earth travells and becomes a node on Mars). In such a case, the device could also internally utilize a simplified IPFS implementation for inter-system communications. +For example a literate inter-planetary exchange of information that treats the system as the moving node which serves as the information carriage (e.g. a futuristic concept where a device being a node on Earth travels and becomes a node on Mars). In such a case, the device could also internally utilize a simplified IPFS implementation for inter-system communications. Apart from the last example, a functional implementation of such a concept in embedded systems could be expanded in order to be used by device networks sharing data while serving many different roles (e.g. IoT). From 545c7929357594b4f894e4dd3eff9898a081b9d8 Mon Sep 17 00:00:00 2001 From: Dietrich Ayala Date: Sun, 6 Sep 2020 18:41:42 -0700 Subject: [PATCH 105/113] Update funding notice --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index ff39529d..7a3f83c4 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,10 @@ # ipfs-grants -Welcome to the IPFS Grant Platform! The Grant Platform connects grant makers with builders and researchers in the IPFS community. Whether you represent a foundation that wants to move the space forward, a company looking to accelerate development on the features your application needs, or a dev team itching to hack on IPFS tools, you've come to the right place. Take a look at the supported grant types and available funding + work opportunities below. - -|:warning: The grants program has now [launched out of beta](https://blog.ipfs.io/2020-04-20-ipfs-grants-platform/) and has been a huge success. The IPFS team budget for grants in Q2 is now spent, and we are not funding any proposals not already in review until Q3 2020. This platform is still open for discussing grants for future funding, to submit proposals that could be funded from other interested parties, or to propose funding of your own for projects you'd like to see exist!| +|:warning: The IPFS team are not funding any new proposals in this repo until Q1 2021. This platform is still open for discussing grants for future funding, to submit proposals that could be funded from other interested parties, or to propose funding of your own for projects you'd like to see exist!| |---| +Welcome to the IPFS Grant Platform! The Grant Platform connects grant makers with builders and researchers in the IPFS community. Whether you represent a foundation that wants to move the space forward, a company looking to accelerate development on the features your application needs, or a dev team itching to hack on IPFS tools, you've come to the right place. Take a look at the supported grant types and available funding + work opportunities below. + ## Grant Types ### Bounty From 790489a33c843d72a1c8253b0730b36fe0328583 Mon Sep 17 00:00:00 2001 From: Arkadiy Kukarkin Date: Tue, 22 Sep 2020 10:53:27 -0700 Subject: [PATCH 106/113] Update microgrant.md --- .github/ISSUE_TEMPLATE/microgrant.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/ISSUE_TEMPLATE/microgrant.md b/.github/ISSUE_TEMPLATE/microgrant.md index 1de57c62..727e6be4 100644 --- a/.github/ISSUE_TEMPLATE/microgrant.md +++ b/.github/ISSUE_TEMPLATE/microgrant.md @@ -1,5 +1,5 @@ --- -name: Microgrant Application +name: Microgrant Application :warning: on hold until Q1 2021 :warning: about: Adoption Microgrant Program title: 'Microgrant: ' labels: type:microgrant From 9eab0f8f0b7399460baec920fc32f6304fdfe9b2 Mon Sep 17 00:00:00 2001 From: Arkadiy Kukarkin Date: Tue, 22 Sep 2020 10:54:17 -0700 Subject: [PATCH 107/113] Update rfp-proposal.md --- .github/ISSUE_TEMPLATE/rfp-proposal.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/ISSUE_TEMPLATE/rfp-proposal.md b/.github/ISSUE_TEMPLATE/rfp-proposal.md index 321cc0b7..de4375be 100644 --- a/.github/ISSUE_TEMPLATE/rfp-proposal.md +++ b/.github/ISSUE_TEMPLATE/rfp-proposal.md @@ -1,5 +1,5 @@ --- -name: RFP Proposal +name: RFP Proposal :warning: on hold until Q1 2021 :warning: about: A proposal fulfilling an RFP title: 'RFP Proposal: ' labels: type:RFP From 4e632a71715bac14015e2fd5cab816264d257e85 Mon Sep 17 00:00:00 2001 From: Arkadiy Kukarkin Date: Tue, 22 Sep 2020 10:55:05 -0700 Subject: [PATCH 108/113] Update microgrant.md --- .github/ISSUE_TEMPLATE/microgrant.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/ISSUE_TEMPLATE/microgrant.md b/.github/ISSUE_TEMPLATE/microgrant.md index 727e6be4..7f0fa202 100644 --- a/.github/ISSUE_TEMPLATE/microgrant.md +++ b/.github/ISSUE_TEMPLATE/microgrant.md @@ -1,5 +1,5 @@ --- -name: Microgrant Application :warning: on hold until Q1 2021 :warning: +name: Microgrant Application ⚠️ on hold until Q1 2021 ⚠️ about: Adoption Microgrant Program title: 'Microgrant: ' labels: type:microgrant From 6c8d00fa1ae7ad95e2951ef68503f7b3d6894596 Mon Sep 17 00:00:00 2001 From: Arkadiy Kukarkin Date: Tue, 22 Sep 2020 10:55:39 -0700 Subject: [PATCH 109/113] Update microgrant.md --- .github/ISSUE_TEMPLATE/microgrant.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/microgrant.md b/.github/ISSUE_TEMPLATE/microgrant.md index 7f0fa202..6c7cee0c 100644 --- a/.github/ISSUE_TEMPLATE/microgrant.md +++ b/.github/ISSUE_TEMPLATE/microgrant.md @@ -1,6 +1,6 @@ --- -name: Microgrant Application ⚠️ on hold until Q1 2021 ⚠️ -about: Adoption Microgrant Program +name: Microgrant Application +about: Adoption Microgrant Program ⚠️ on hold until Q1 2021 ⚠️ title: 'Microgrant: ' labels: type:microgrant assignees: parkan From e5044450c1e4a1c518dd62803150284cf17ea66e Mon Sep 17 00:00:00 2001 From: Arkadiy Kukarkin Date: Tue, 22 Sep 2020 10:56:05 -0700 Subject: [PATCH 110/113] Update rfp-proposal.md --- .github/ISSUE_TEMPLATE/rfp-proposal.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/rfp-proposal.md b/.github/ISSUE_TEMPLATE/rfp-proposal.md index de4375be..26391531 100644 --- a/.github/ISSUE_TEMPLATE/rfp-proposal.md +++ b/.github/ISSUE_TEMPLATE/rfp-proposal.md @@ -1,6 +1,6 @@ --- -name: RFP Proposal :warning: on hold until Q1 2021 :warning: -about: A proposal fulfilling an RFP +name: RFP Proposal +about: A proposal fulfilling an RFP ⚠️ on hold until Q1 2021 ⚠️ title: 'RFP Proposal: ' labels: type:RFP assignees: '' From 3ccc3035f6ed318a7ae76758d19affce1852dd65 Mon Sep 17 00:00:00 2001 From: Arkadiy Kukarkin Date: Tue, 22 Sep 2020 10:57:56 -0700 Subject: [PATCH 111/113] Update README.md --- README.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/README.md b/README.md index 7a3f83c4..6b15268a 100644 --- a/README.md +++ b/README.md @@ -17,6 +17,10 @@ For a list of issues eligible for Bounties, award amounts, and more details see --- ### RFP + +|⚠️ on hold until Q1 2021 ⚠️| +|---| + Projects too large for a bounty are specified as RFPs and can range from more complex feature work on IPFS to entirely new tools and libraries. To see open RFPs and learn more about the proposal process see [RFPs](rfps). RFPs may be funded by Protocol Labs, other community members, or a consortium of interested parties. @@ -26,6 +30,10 @@ To see open RFPs and learn more about the proposal process see [RFPs](rfps). RFP --- ### Open Grant + +|⚠️ on hold until Q1 2021 ⚠️| +|---| + Do you have an idea for pushing the IPFS ecosystem forward not already covered by an RFP? Propose an open grant for consideration by the IPFS community. To read more about creating an Open Grant proposal, see [OPEN GRANTS](open-grants). @@ -35,6 +43,10 @@ To read more about creating an Open Grant proposal, see [OPEN GRANTS](open-grant --- ### Adoption Microgrant + +|⚠️ on hold until Q1 2021 ⚠️| +|---| + These are small grants intended to help stimulate experimentation with and adoption of IPFS across a wide range of fields. The application and reporting requirements are more relaxed, but the monetary awards are more limited ($1k). To read more about Adoption Microgrants see [MICROGRANTS](MICROGRANTS.md). Adoption Microgrants are funded by Protocol Labs. From 175f7a953bf5a3480e56c92426e09ba648eee761 Mon Sep 17 00:00:00 2001 From: Arkadiy Kukarkin Date: Tue, 22 Sep 2020 11:05:41 -0700 Subject: [PATCH 112/113] Update README.md --- open-grants/README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/open-grants/README.md b/open-grants/README.md index 43446c97..50309fb7 100644 --- a/open-grants/README.md +++ b/open-grants/README.md @@ -1,5 +1,8 @@ # Open Grants +|:warning: The IPFS team are not funding any new proposals in this repo until Q1 2021. This platform is still open for discussing grants for future funding, to submit proposals that could be funded from other interested parties, or to propose funding of your own for projects you'd like to see exist!| +|---| + ## About Open grants are for novel ideas that advance the IPFS ecosystem, bring significant new usage, or directly [advance the IPFS mission statemnent](https://github.com/ipfs/roadmap#ipfs-mission-statement). From 5fcf2ddcb294b911feb216d9b01d990af1654a56 Mon Sep 17 00:00:00 2001 From: Arkadiy Kukarkin Date: Tue, 22 Sep 2020 11:05:56 -0700 Subject: [PATCH 113/113] Update MICROGRANTS.md --- MICROGRANTS.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/MICROGRANTS.md b/MICROGRANTS.md index 650f2c59..73f5834a 100644 --- a/MICROGRANTS.md +++ b/MICROGRANTS.md @@ -1,5 +1,8 @@ # Adoption Microgrants +|:warning: The IPFS team are not funding any new proposals in this repo until Q1 2021. This platform is still open for discussing grants for future funding, to submit proposals that could be funded from other interested parties, or to propose funding of your own for projects you'd like to see exist!| +|---| + ## About The IPFS Adoption Microgrants are intended to encourage experimentation with, and adoption of IPFS across a range of fields. They are offered with the understanding that decentralized technologies are a rapidly developing field with many unknowns, and do not make complete technical success of the proposal a prerequisite for the award.