Skip to content
This repository has been archived by the owner on Feb 12, 2024. It is now read-only.

OKR 2018 Q2 #1281

Merged
merged 9 commits into from
Apr 14, 2018
Merged
Changes from 8 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
60 changes: 60 additions & 0 deletions OKR.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
# Quarterly Objectives and Key Results

We try to frame our ongoing work using a process based on quarterly Objectives and Key Results (OKRs). Objectives reflect outcomes that are challenging, but realistic. Results are tangible and measurable.

## 2018 Q2

> Work in Progress

### The daemon is stable and so core is reliable

- `PX` - OWNER - The uncaught errors and memory usage are under control and a daemon can run for a week non stop.
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Needs an Owner.

Copy link
Member Author

@daviddias daviddias Apr 12, 2018

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Any takers? @fsdiogo how do you feel about it?

- `PX` - VictorBjelkholm - One or more js-ipfs daemons are part of the IPFS infrastructure (Bootstraper nodes).
- `PX` - VictorBjelkholm - js.ipfs.io exposes an IPFS Gateway provided by a js-ipfs daemon.

### The core can handle vast amounts of data

- `PX` - achingbrain - The MFS is implemented in js-ipfs.
- `PX` - achingbrain - npm on IPFS is used as a test vector of js-ipfs capabilities.
- `PX` - hugomrdias - js-ipfs in the browser can fetch a dataset of at least 100Gb (and create archives.js.ipfs.io).
- `PX` - OWNER - js-ipfs in Node.js can add and transfer a dataset of at least 1TB.
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Needs an Owner.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@hugomrdias wanna take this one (related to the one above)?

- `PX` - jacobheun - A S3 IPFS Repo backend exists and it is easily pluggable on `new IPFS`.
- `PX` - JonKrone - The PIN API is finished and merged.
- `PX` - vasco-stantos - js-ipfs Service Worker gateway.

### The APIs are more ergonomic and developer productivity is off the charts

- `PX` - vmx - Complete the first milestone of the Awesome Endeavour - Flow.
- `PX` - vmx - Roadmap and Kickstart the second milestone for the Awesome Endeavour - Flow.
- `PX` - fsdiogo - Make js-ipfs uglify friendly again.
- `PX` - fsdiogo - A repo migration utility exists and migration is a good experience for js-ipfs users.
- `PX` - VictorBjelkholm - Every env (i.e Linux, Windows, Mac OS X, Firefox, Chrome, Safari, Edge) test run is parallelized in CI.
- `PX` - VictorBjelkholm - CLI, HTTP-API and Core Tests of js-ipfs are parallelized in CI.
- `PX` - wraithgar - Achieve CLI and HTTP-API feature parity with go-ipfs for all the commands and endpoints planned (see https://github.com/ipfs/ipfs/blob/master/IMPLEMENTATION_STATUS.md)
- `PX` - wraithgar - Bring code coverage up to 100% everywhere!
- `PX` - diasdavid - Every js-ipfs/js-libp2p/js-ipld and js-multiformats module has an assigned maintainer with clear responsibilities.

### libp2p levels up, learns new superpowers and a dedicated team is formed

- `PX` - hugomrdias - libp2p has primitives to keep connections under control.
- `PX` - dryajov - Readable Streams no more! Reduce the overhead of Readable -> Pull in libp2p-mplex.
- `PX` - dryajov - NAT Traversal for the TCP Transport.
- `PX` - diasdavid - The libp2p.next() refactor is complete.
- `PX` - diasdavid - Delegated Peer Routing and Content Routing modules are created.
- `PX` - diasdavid - Browsers no longer rely on static rendezvous points for Discovery.
- `PX` - diasdavid - js-libp2p gets its own OKR spreadsheet for next Q3.
- `PX` - jacobheun - js-libp2p gets its Private Networks implementation.
- `PX` - vasco-stantos - The name system (IPNS) works locally.
- `PX` - vasco-stantos - IPNS over PubSub.
- `PX` - vasco-stantos - IPNS over the DHT.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can I propose the libp2p dissector for wireshark and libp2p-nodetrust as an OKR?
https://github.com/mkg20001/libp2p-dissector https://github.com/mkg20001/libp2p-nodetrust

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

that be super helpful, not sure if it fits the js OKR tho, maybe it has a better place? In any case, would be rad to have it 👍

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@mkg20001 what would be the specific key result and would you be the owner of it?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Libp2p dissector: A libp2p dissector for wireshark exists and implements all protocols used in IPFS as well as secio decryption
Libp2p nodetrust: The libp2p nodetrust module is deployed (possibly audited?) and being used in production services

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, I want to be owner of both OKRs

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes. Although I would probably need some help with the C stuff as I'm still learning the language.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@diasdavid Are they going to get added to the list?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@mkg20001 if you need help with the Wireshark dissector for libp2p, I'm happy to collaborate! I just finished working on a dissector for the Ethereum discovery protocol – which hopefully we'll publish soon ;-)

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@raulk Thanks! I'd really need your help. Currently I'm stuck at reassembling data from yamux packets.

Copy link
Member

@raulk raulk May 22, 2018

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@mkg20001 Is there a branch with the WIP you can point me to? Not sure if you've come across the Wireshark API facilities for reassembling PDUs over TCP, I guess yes (section 2.7 here).

I read the yamux spec and I guess another complexity you've identified is how to follow and register individual streams separately within a session. Since all Yamux packets contain the stream ID, we can set it on the proto tree and attach a filter to it.

Then I think we can use the register_follow_stream function to register a new follower on a statistics tap, that relies on the stream ID. This function is somewhat hidden, as I wasn't able to find documentation about this facility, but the tcp dissector uses it here

Perhaps sooner or later, we'll need to store the streams identified within a session inside the WS conversation data. We can either use a simple linked list of stream IDs, or a map if we want to store info about each stream (e.g. statistics).

Happy to continue discussing, here or elsewhere ;-)

### The Community is pumped by having a selection of example applications, blog posts and video tutorials on how to build DApps with IPFS

- `PX` - OWNER - Blog post on PeerPad Architecture with focus on its Read/Write Capability System.
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Needs an Owner.

- `PX` - fsdiogo - The Exchange Files example gets a new face and becomes a fully usable app for exchange files (e.g files.js.ipfs.io).
- `PX` - Mr0grog - Identify the top 3 examples that would help the majority of the developers to understand how to use IPFS.
- `PX` - diasdavid - js.ipfs.io design gets finalized, implemented and published.

## 2018 Q1

Find the OKRs for 2018 Q1 at the [IPFS OKRs Spreadsheet](https://docs.google.com/spreadsheets/u/1/d/1clB-W489rJpbOEs2Q7Q2Jf1WMXHQxXgccBcUJS9QTiI/edit#gid=2079514081)