# B, P & S planning 2023
Agenda
* (20m) Vision / mission review and framing
* (10m) Divergence: Pain points and gaps list
* (15m) Convergence: Speed prioritization
* (10m) Themes from list
* (30m) Objectives - what we want to be true
* (15m) KRs - facts if the objectives were true
* (30m) Roadmap 2023 - 2025
* (10m) Hiring -
* (2m) Team name bikeshedding :banana:
## Vision / mission review
https://hackmd.io/kPj-PqO2RzSZbFkdnIhPxw
Vision notes
* missing: we make modular things to pick and choose, not tightly coupling things - things remain composable, for the long term view in making them useful
* missing: web technology in non-http contexts to achieve some outcomes
* missing: the why - user agency , anchor vision into the why
Mission notes
## Divergence: Current pain points and gaps
- Implementation complexity + lack of good mental models = adoption barrier 4,4, 4
- Trust / Threat Modeling not being explicit part of specs process, design process → do not end up in end user docs and specs 5,5 5
- Privacy does not exist, but could (DHT, Delegated Routing / Indexers [double hashing](https://pl-strflt.notion.site/Double-Hashing-for-Privacy-ff44e3156ce040579289996fec9af609)) 5, 5
- Existing libraries do not fit into all of the places we want them to 5 5
- Specs are scattered all over the place 3 4 5
- Explaining IPFS to FOSS entities who don't know IPFS at all yet. 4 5
- Difficult for even devs to understand why "IPFS" would be useful for them. 4 4
- Unclarity of use cases to a wider audience limits conversations 4 4
- Lack of a unified testing implementation across the board (à la WPT) 5
- no privacy model means our stuff is still "crazy" 4
- no developer environment or debugging tool 4
- super slow and complex to bring ipfs to other environments (need to be present and embedded) 3
- Need more small, reusable components in order to integrate in other places quicker
- we have way too many fucking projects, i haven't told you about half of them
- team structure and communications need an upgrade - how/where/when should we meet and communicate
- Unclear integration into the Web stack (origin, meaning of verbs like POST, mapping of SRI to CIDs)
- No one outside of IPFSland has heard of IPLD, etc. (slight exaggeration, but still)
- duplicated effort across org
## Convergence: Themes
- privacy, security, trust-model
- UX
- explaining, educating, mental models
- obscurity
- complexity
- bridges, integration, interoperability
- DX
- complexity
(meta)
- team scope/time
## 2023 Objectives and Key Results
Objectives: what we want to be true at the end of 2023
Key results: facts if those objectives were true
### O: We have regular presence and participation in relevant standards/governance/policy arenas, easing adoption choice of content-addressing and IPFS
* KR: We've identified key standards and policy participation fora required for adoption at scale
* KR: We're members and actively participating in the relevant fora, demonstrated by at least one draft proposal or key decision we influenced in each
* KR: At least one piece of the interplanetary stack has been proposed at W3C, IETF, DIF or CASA
Initiatives/milestones:
* Strategy document - published, feedback'd
* Multi* at IETF
* Dapp manifests proposed at CASA
* CID at IETF
* Addressing roadmap defined and published (schemes, urn namespace, etc)
* IPID vs Key for DID schemes - determine strategy and stakeholders (eg web3/nft.storage folks)
### O: Interoperable IPFS is implementable using specifications without reading Kubo source code (shared with Stewards)
* KR: Specifications one-stop-shop exists for builders and implementers
* KR: Implementers use a unified test suite and testing infrastructure as they implement (eg. WPT)
* KR: Implementers use canonical end-to-end test(s) to understand the level of conformance and interoperability (eg ACID)
Initiatives/milestones
* look up
### O: IPFS client integrations default to verifiable retrieval and are not reliant on a single HTTP endpoint :vhs: :floppy_disk:
* KR: The IPFS verifiable retrieval racing client spec is defined and published
* KR: There is at least one implementation of IPFS verifiable retrieval client in production use
* KR: Developers use IPFS without being dependent on PL-run infrastructure
* KR: Developers use IPFS without having to rely on single hardcoded, centralized HTTP endpoints
Notes
* (examples: KIO/GVFS/GDAL, etc.. [more](https://github.com/ipfs/integrations/issues))
* Ok to have centralized services to improve performance, but there should always be a decentralized/robust way of doing things that is not tied to infra maintained by a single company.
Initiatives/milestones:
* IPFS client IPIP published and finalized
* Demonstrate this pattern in Durin
* Curl
* FFmpeg
Dependencies
* Content routing work by stewards to not hardcode cid.contact
### O: An IPFS device-to-device connectivity pattern is specified, implemented and used by mobile apps
* KR: PoC Application-level pattern implemented and demonstrated in Durin
* KR: Pattern formalized in a specification
* KR: Two other integrations or applications have implemented or shipped the pattern
Initiatives/milestones:
- Phase 1 of this is defined for Durin
### O: The values, use cases, and model of the interplanetary Web are findable and usable
* KR: Core use cases which illustrate trade-offs that are different from those made by browsers are catalogued in a single document
* KR: A threat model exists which addresses privacy, security, trust/verifiability, developed against the use-cases document for at least one runtime context
* KR: We've published reference materials for what the interplanetary stack unlocks, both inside and outside browsers, and our position on user agency
* KR: We've documented and published a review of existing efforts towards IPFS privacy and other parts of the threat model
* KR: We have explainers and educational material which articulate the mental-model of the distributed web to point at as a reference to quickly onboard new and interested deciders
Notes:
- key strategic work blocking adoption at scale
- See DID Core use cases for a good approach to the "whys"
- Contrast with what can and can't be done with:
- https://www.w3.org/2001/tag/doc/ethical-web-principles/
- https://www.rfc-editor.org/rfc/rfc8890
- https://www.w3.org/TR/design-principles/
- https://w3ctag.github.io/privacy-principles/
- list of "red flags" - dns dependent, hardcoded http endpoints
- explaining upgrading the web - clearly, what to expect, what it looks like, roadmap
- see also decentralization rubric from DID-Core
- see notes in https://hackmd.io/@robin-berjon/trust
Initiatives/milestones:
### O: Content addressing is present, understood and has demonstrated value in the web platform
* KR: IPFS native protocol support is in at least one browser engine
* KR: NFT health, pinning, detection, other use-cases are ready to be implemented when browsers add NFT features
* KR: Web platform consideration of CIDs in integrity features like SRI
Notes
* native protocol support
- LBL building verifiable racing client in Chromium
* SRI
- Can specify CIDs instead of explicit hash function
- Fallback content loading
- https://discuss.ipfs.tech/t/supporting-large-ipld-blocks/15093
Initiatives/milestones:
* Igalia/LBL Chromium implementation
* Brave NFT pinning
* Igalia SRI collaboration
* DNSLink integrity guarantees
* Demonstrating content-addressing alternative approaches to SXG
### O: We've refined and demonstrated core use cases for applications in alternative environments, verticals and specific communities through integrations and collaborations
* KR: We've built out use cases or experiments with at least three verticals to showcase the ecosystem in ways that carry within specific communities of practice
* KR: We've built out uses cases or experiments in collaboration with at least three groups to meet critical marginalized user needs, such as internet shutdowns
Initiatives/milestones
* ShutDAOn - internet shutdown
* Flaki on video for RustConf
* OmniLingo
* XR/metaverse - collab w/ OMI, Igalia
* Pin-tweet -
Notes:
* use-case verticals
* Identify and collaborate with partners who could work with us towards this goal
* eg video, IoT, browser "reinventers", folks looking for browser business models
* http://la3.org/~kilburn/blog/catalan-government-bypass-ipfs/
### FIXME: O: IPFS is reasonably usable and chooseable by developers in environments where running a node is not an option, with examples demonstrating usage
* KR: A simple pattern for using IPFS in browser extensions is developed and published
* KR: IPFS can be used in native mobile applications
* KR: IPFS can be used in cloud-native environments
* KR: Web Developers can choose IPFS and get value and consistent DX across UAs w/o needing browser support
Initiatives/milestones
* IPIP for racing verifiable http client
* Durin
* Extensions
* Curl
* FFmpeg
*
* a lot wrapped up:
* self hosting on your own http app deployment
* ipfs as a fallback
* verifiable client adoption
* web and SW:
- ServiceWorker polyfills for loading content-addressed data
- see Saturn sw work
- see DagHouse racing gateway sw
- moves verification to client
### O: We have published a recommended architecture for IPFS integrations which is implemented in multiple keystone collaborations
* KR: `Q1` We've published an IPIP for an architectural approach to integrate IPFS into stateless libraries/tools, OS file explorers
* KR: `Q2` We've identified and prioritized keystone integrations which unlock broad scale adoption of IPFS
* KR: `Q3` We have two explorations and collaborations for desktop OS integrations of IPFS
* KR: `Q3` Three keystone open source libraries and tools have IPFS integrations
* KR: `Q4` IPFS integrations exist in key web frameworks and libraries which unlock more/easier adoption of IPFS addresses
Initiatives/milestones
* IPIP published
* integration strategy and targets identified
*
Notes
- Desktop related integrations (libipfsclient requirement)
- KDE/Gnome in their IO layers (KIO/GVFS)
- Windows and macOS too though those need more research
- libraries/tooling
- Tooling like (potentially) wget, pip, brew, vstudio, KODI and VLC
- Library integration like libcloud and GDAL
- web frameworks
- Examples are markdown libraries, forum software (discourse), chat applications (slack/matrix) and video/media libraries in js
- Media player frameworks to support IPFS playback (Eg. video.js, hls.js)
- Communication software like Matrix and Discourse
- And other web frameworks like markdown libraries
## O: We've implemented key opportunities to improve the web2 platform in ways that enable value-aligned technology upgrades
* KR: Ed25519 is implemented in the WebCrypto API
* KR: "immutable" is a valid cache control header value
* KR: Local discovery and P2P opportunities are explored via the Web-RTC and Second Screen WGs
* KR: As IPFS improves its privacy, loading resources off of IPFS can become more privacy-preserving than loading over HTTP. This could make it an attractive option for some parts of the reformed ad stack (FLEDGE, IPA).
### O: Presence and participation in decentralized identity governance, standardization and implementation activity
- KR: We have a document explaining each of the relevant decentralized identify efforts
- [new WebId](https://github.com/mfosterio/WebID), Trust Tokens, Filecoin in wallets, IPID (DID+IPLD), [UCAN](https://github.com/ucan-wg/spec) (DID+delegation), Blue Sky's [AT Protocol](https://atproto.com/)
- KR: We've identified where we have strategic needs, and participate in those communities
- KR: We are guiding/participating in browser or web standards related to managing keys on behalf of user
## References
- integration verticals: space, metaverse, phones, embedded/iot, science, games, audio, video, photo, 3d, art, search (eg. CommonCrawl), civic/govt
## Parking lot
- KR: specifying a form of "dumb loading" for browsers that could get content-addressed data inside of the origin if it can make the right guarantees
- IPFS integration in an IDE (vscode?) or at least researching/documenting how to make such an integration. (potentially hire external party)
- ODU lifetime of a web page research
## Things we we're doing now
* Explaining IPFS over and over again in very specific details (like how to get content from it, that there is no URL spec, etc...)
* Adjusting to the community contributing rules/guidelines to get a patch acceptable in their standards (think curl)
* providing IPFS Stewards and other stakeholders with real world use cases and constraints
* Sometimes trying to manage a dumpster fire (like curl influencing ffmpeg)
* Durin mobile development (IPFS light client~ish )
* Coordinating with trigram on development on certain projects (been a big time saver so far)
* Developing Web extensions targeted to "end users" to educate about IPFS, webrecorder, and web3.storage (ie: pin-tweet-to-ipfs)
* https://chrome.google.com/webstore/detail/pin-tweet-to-ipfs/bkbejdaeamaehgpodkjdbkhkofpijagn?hl=en&authuser=0
* Design and discussions for the IPFS Client API
* Working on next steps for companion after getting UR results
* mv3 companion
* coordinating with gui team to try and solve dx problems
* identifying gaps in documentation and tooling
* efforts around improving public gateway checker
* consolidating IPFS tooling into diagnostic view)
* blogging about everything we do
* discussing mv3 issues with companion #666
* Chromium integration
* Igalia
* Little Bear Labs
* Ed25519
* Igalia
* Space
* Lockheed Martin
* Little Bear Labs
* Libre Space Foundation
* CryptoSat
* Metaverse
*
* Gecko
* Capyloon
* Smartphone OS
* Capyloon
* Lifetime of a web page w/ ODU
## Roadmap 2023 - 2025
Key milestones:
## Roles
* Dietrich Ayala - figurehead
* David Justice - browser extension, mobile app development
* Mark Gaiser - OS and library integrations
* Robin Berjon - standards and governance lead
* TBH - technical project manager
* TBH - browser engineer
* TBH - open source emissary / CX designer
* TBH - DX / tools / integration developer
## Team Name
* browsers / web
* platforms
* standards
* alternative
* interplanetary
* integrations
* user agency
* Outer Planets
* Outer Planets Alliance
* INTEGRAL
INTergrating
Eternally
GRateful
AppLications
* OMEGA
Open to
Massively
Enhanced and
Grateful
Applications
## Notes on threat model
- Topology definitions - single http, * http, device to device, device to n devices, DHT, non-DHT
- party visibility topologies
- device to device
- client to local subnet
- client to gateway
- client to dht
TODO:
- We should have a list of companies where we have leads/contacts, and have they been contacted yet (like… a CRM system?)