├── README.md └── meeting-notes ├── 20181113.md ├── 20181127.md ├── 20181211.md ├── 20190108.md ├── 20190115.md ├── 20190122.md ├── 20190129.md └── 20190205.md /README.md: -------------------------------------------------------------------------------- 1 | ## This repository has been archived! 2 | 3 | *This IPFS-related repository has been archived, and all issues are therefore frozen*. If you want to ask a question or open/continue a discussion related to this repo, please visit the [official IPFS forums](https://discuss.ipfs.io). 4 | 5 | We archive repos for one or more of the following reasons: 6 | 7 | - Code or content is unmaintained, and therefore might be broken 8 | - Content is outdated, and therefore may mislead readers 9 | - Code or content evolved into something else and/or has lived on in a different place 10 | - The repository or project is not active in general 11 | 12 | Please note that in order to keep the primary IPFS GitHub org tidy, most archived repos are moved into the [ipfs-inactive](https://github.com/ipfs-inactive) org. 13 | 14 | If you feel this repo should **not** be archived (or portions of it should be moved to a non-archived repo), please [reach out](https://ipfs.io/help) and let us know. Archiving can always be reversed if needed. 15 | 16 | --- 17 | 18 | # Dynamic Data and Capabilities in IPFS Special Interest Group 19 | 20 | [![#ipfs-dynamic-data](https://img.shields.io/badge/irc-%23ipfs--dynamic--data-brightgreen.svg)](https://webchat.freenode.net/?channels=ipfs-dynamic-data) 21 | 22 | > Research and development of building blocks that enable collaborative applications, providing solutions for security, identity, access control, concurrency, synchronization, offline and near-real-time collaboration on top of IPFS. 23 | 24 | ## Responsibilities include 25 | 26 | - Research and implement CRDTs on top of IPFS, creating building blocks that can be used by other applications. 27 | - Research Cryptographic ACLs (Capabilities Systems) and create building blocks that implement. 28 | - Apply this research and implementation to products like PeerPad, validating the solutions and defining new problems to be solved. 29 | 30 | ## Weekly Sync 31 | 32 | Join us on our calls. For that, check out [the global IPFS community calendar](https://calendar.google.com/calendar/embed?src=ipfs.io_eal36ugu5e75s207gfjcu0ae84@group.calendar.google.com&ctz=UTC). [Issue describing next meeting](https://github.com/ipfs/dynamic-data-and-capabilities/issues/36). 33 | 34 | ## Current Status 35 | 36 | [![Waffle.io - Columns and their card count](https://badge.waffle.io/ipfs/dynamic-data-and-capabilities.svg?columns=all)](https://waffle.io/ipfs/dynamic-data-and-capabilities) 37 | 38 | ## Accomplishments and current endeavours 39 | 40 | - [Peer-Base](https://github.com/peer-base/peer-base): a library to help create DApps on top of IPFS. 41 | - [Peer-Pad](https://peerpad.net): a decentralized editor that allows concurrent writing of text. Besides making live changes to a given document, it allows read-only nodes to follow the changes in real-time. It also allows you to publish a self-contained snapshot of the document to IPFS. 42 | - [delta-crdts](https://github.com/ipfs-shipyard/js-delta-crdts#delta-crdts): delta-state-based CRDTs in JavaScript. 43 | - 2 research RFPs: 44 | - [Optimize storage and convergence time in causal CmRDTs](https://github.com/protocol/research/issues/9) 45 | - [Decentralised Access Control in CRDTs](https://github.com/protocol/research/issues/8) 46 | - [Identity RFC](https://github.com/ipfs-shipyard/peer-star/blob/c249510b4873a9a4b58b245bf97dbe48513a2689/docs/rfc-identity.md): an identity 47 | - [Identity Manager](https://github.com/ipfs-shipyard/pm-idm): Identity Manager reference implementation 48 | - [Discussify](https://github.com/ipfs-shipyard/discussify/): Fully decentralized platform for discussing anything on the web. 49 | 50 | ## Chronology 51 | 52 | - **Apr 2019:** DDC became a [Special Interest Group](https://github.com/ipfs/team-mgmt/blob/master/TEAMS_ROLES_STRUCTURES.md#team-structures) 53 | - **Jul 2018:** [PeerPad](https://peerpad.net/) now uses [peer-star-app](https://github.com/ipfs-shipyard/peer-star-app). 54 | - **Jun 2018:** created [peer-star-app](https://github.com/ipfs-shipyard/peer-star-app). 55 | - Peer-Star App support for real-time collaborative DApps built on top of IPFS. 56 | - **Jun 2018:** published [Identity RFC](https://github.com/ipfs-shipyard/peer-star/blob/c249510b4873a9a4b58b245bf97dbe48513a2689/docs/rfc-identity.md). 57 | - Identity management system for DApps. 58 | - **May 2018:** Published [delta-crdts](https://github.com/ipfs-shipyard/js-delta-crdts). 59 | - Delta state-based CRDTs in Javascript NPM package. 60 | - **Apr 2018:** Launched 2 CRDT research RFPs. 61 | - [Optimize storage and convergence time in causal CmRDTs](https://github.com/protocol/research/issues/9). 62 | - [Decentralised Access Control in CRDTs](https://github.com/protocol/research/issues/8). 63 | - **Apr 2018, 📍 Lisbon:** Held CRDT research day mini-conf. 64 | - **Apr 2018:** started Working Group bi-weekly call. 65 | - **Mar 2018:** created [peer-star](https://github.com/ipfs-shipyard/peer-star). 66 | - Distributed Applications and their internal building blocks exposed as reusable components that can be used for all kinds of p2p use-cases. 67 | - **Mar 2018:** [Dynamic Data and Capabilities Working Group](https://github.com/ipfs/dynamic-data-and-capabilities) was born. 68 | - Research and development of building blocks that enable collaborative applications, providing solutions for security, identity, access control, concurrency, synchronization, offline and near-real-time collaboration on top of IPFS. 69 | - **Oct 2017:** [PeerPad](https://peerpad.net/) MozFest 2017 demo. 70 | - Fully decentralised private collaborative text editor. 71 | - **Jun 2017, 📍 Rome:** 2017 IIIF conference demo. 72 | - Two different products implementing IIIF were demoed using [ipfs-iiif-db](https://github.com/ipfs-shipyard/ipfs-iiif-db) to sync annotation data between them. 73 | - **Jun 2017:** created [ipfs-iiif-db](https://github.com/ipfs-shipyard/ipfs-iiif-db). 74 | - Allowing syncing [IIIF](http://iiif.io/) annotation data in a truly server-less and conflict-free way. 75 | - **May 2017:** first version of [y-ipfs-connector](https://github.com/ipfs-shipyard/y-ipfs-connector#readme). 76 | - A connector that allows Y.js, the CRDT library, to use the IPFS network. 77 | - **Mar 2017:** created [Research CRDT](https://github.com/ipfs/research-CRDT). 78 | - Gathering research papers and discussions. 79 | 80 | ## Contributing 81 | 82 | There are several ways you can get involved: 83 | 84 | * Join our [#ipfs-dynamic-data IRC Channel](https://webchat.freenode.net/?channels=ipfs-dynamic-data) 85 | * Join us on our regular calls. For that, check out [the global IPFS community calendar](https://calendar.google.com/calendar/embed?src=ipfs.io_eal36ugu5e75s207gfjcu0ae84@group.calendar.google.com&ctz=UTC). [Issue describing next meeting](https://github.com/ipfs/dynamic-data-and-capabilities/issues/36). 86 | * Check out [the Special Interest Group challenges](https://github.com/ipfs/dynamic-data-and-capabilities/issues) and see how you can help contribute. 87 | -------------------------------------------------------------------------------- /meeting-notes/20181113.md: -------------------------------------------------------------------------------- 1 | # Dynamic Data and Capabilities WG — November 13th, 2018 2 | 3 | - **Lead:** Pedro (@pgte) 4 | - **Notetaker:** @pgte 5 | - **Attendees:** 6 | - @satazor 7 | - @victorbjelkholm 8 | - @aschmahmann 9 | - @pgte 10 | - @andreforsousa 11 | - @jimpick 12 | - @gritzko 13 | - @daviddahl 14 | 15 | - [**Zoom.us meeting URL**](https://protocol.zoom.us/j/586782711) 16 | - [**Recording**](https://youtu.be/KOa2rBlcj18) 17 | 18 | ## Agenda 19 | 20 | 1. Start recording 21 | 1. Ask everyone to put their name into the list of attendees 22 | 1. Ask for a volunteer to take notes 23 | 1. Everyone can add items to this agenda for things they would like to discuss 24 | 1. Round of intros and updates 25 | - Introduce yourself and your interest in this subject 26 | - What have you accomplished since the last meeting? 27 | - Were there any blockers? If so, which ones? Is it still blocked? Why? 28 | - What is the next important thing you should focus on? 29 | 1. Steps to have production Pinner (deployed for peerpad.net) (@victor) 30 | - Arkadiy will schedule a meeting this week to draft requirements for Pinner V0 for PeerPad 31 | 1. Demos 32 | - "replicated" and "pinned" events (@pgte) 33 | 1. Questions 34 | 35 | ### 2 Week Updates: 36 | 37 | (please copy this and add your update here :) 38 | 39 | 40 | #### @ 41 | - Concluded: 42 | - In progress: 43 | - Blocked: 44 | - Next: 45 | 46 | #### @pgte 47 | - Concluded: 48 | - working group 2019 roadmap, 1st iteration 49 | - peer-star-app: 50 | - fix: DiasSet break points: https://github.com/ipfs-shipyard/peer-star-app/pull/101 51 | - fix: deduplicates membeship addresses: https://github.com/ipfs-shipyard/peer-star-app/pull/102 52 | - pinner should only get state: https://github.com/ipfs-shipyard/peer-star-app/pull/106 53 | - test pinner: https://github.com/ipfs-shipyard/peer-star-app/pull/108 54 | - membership heuristic sampling function should be synchronous: https://github.com/ipfs-shipyard/peer-star-app/pull/110 55 | - chore: using aegir lint and fixes linting errors: https://github.com/ipfs-shipyard/peer-star-app/pull/116 56 | - In progress: 57 | - expose collaboration replication events: https://github.com/ipfs-shipyard/peer-star-app/pull/111 58 | - Blocked: 59 | - Next: 60 | - continue on exposing collaboration replication events: https://github.com/ipfs-shipyard/peer-star-app/pull/111 61 | - support different strategies for local store: https://github.com/ipfs-shipyard/peer-star-app/issues/117 62 | 63 | #### @satazor 64 | - Concluded: 65 | - working group 2019 roadmap, 1st iteration 66 | - discussify: 67 | - UI level QA: https://github.com/ipfs-shipyard/pm-discussify/issues/58 68 | - Standardized styleguide comment names with @andreforsousa 69 | - In progress: 70 | - Replies 71 | - Lazy load of comments and replies (view more) 72 | - Next: 73 | - Implement "show history" in the UI 74 | - Add persistance of the data (pinner + sync UI language) 75 | 76 | Note: Ask pedro about granularity of Discussify v1 milestones on the roadmap 77 | 78 | #### @andreforsousa 79 | - Concluded: 80 | - Discussify: 81 | - Style-guide updates with all scenarios and states (hover, focus, error feedback) for "comment-component" 82 | - Comment 83 | - Comment (ownership) 84 | - Comment Actions 85 | - Comment Edited 86 | - Comment Edited History 87 | - Comment Placeholder 88 | - Comment Removed 89 | - Comment Input (new reply) 90 | - Comment Input (editing) 91 | - QA & style-guide updates for the pre-alpha version 92 | - FAB Shadow fix 93 | - PeerPad UX/UI fixes: 94 | - Grid width for 80columns accommodation (desktop) 95 | - Dismissible notifications (desktop) 96 | - Empty state illustration 97 | - History revision 98 | 99 | - Blocked: 100 | - PeerPad mobile: 101 | - Hi-Fi prototype to start looking for: 102 | - Transitions between elements 103 | - Start defining values for the eases 104 | - This will be in the backlog until desktop version is properly defined and polished, following David’s feedback. 105 | 106 | - In progress: 107 | - Discussify Brand & Web Guidelines (manual) 108 | - Look at new features for PeerPad (sync with Victor) 109 | 110 | 111 | #### @VictorBjelkholm 112 | - Concluded: 113 | - Error reporting on peerpad.net 114 | - In Progress: 115 | - UX review 116 | - Pinner review 117 | - Blocked: 118 | - Next: 119 | - Pinner deployment 120 | - Metrics 121 | 122 | #### @aschmahmann 123 | - Concluded: 124 | - Roadmapping round #1 125 | - Basic graph sync + updating working 126 | - In progress: 127 | - Looking into using existing CRDT tools like y.js to talk to the local Go graph syncing client 128 | - Any advice would be appreciated 129 | - Blocked: 130 | - Not sure how much work to put into improving graph syncing vs wait for IPLD selectors/GraphSync 131 | - A little blocked by the lack of the Wallet and Friends components of the Sharing API 132 | - Next: 133 | - More progress towards a causal chat application 134 | - Which avenue to explore next somewhat depends on our file sharing API priorities 135 | - Could also focus on writing proposals for this 136 | 137 | #### @jimpick 138 | - Concluded: 139 | - working group 2019 roadmap, 1st iteration (participant) 140 | - fixes to ORMap CRDT 141 | - Pedro's editor binding fixes 142 | - real-life testing of peer-pad-nano with PL staff 143 | - zombie gossip messages and hacks to filter them out 144 | - React.js binding fixes (didn't work on Android!) 145 | - Trying out the peer-pad e2e load tests 146 | - Wildcard DNS / more PL staff testing 147 | - In progress: 148 | - Moving changes to production version (too diverged right now!) 149 | - Pinner for production version? 150 | - Product management for production version 151 | - Review pinner work by Pedro 152 | - Review pinner work by Dirk 153 | - Characterize indexeddb perf issues 154 | - Characterize zombie gossip issue 155 | - Fix e2e smoke test 156 | - Tokyo Nodefest next week! 157 | - Blocked: 158 | - Meetings - Roadmapping vs. PeerPad PM 159 | - Dogfooding / testing 160 | - Next: 161 | 162 | 163 | #### @daviddahl 164 | - Concluded: 165 | - see: https://github.com/IBM/ipfs-social-proof 166 | - Version 0.0.2 of ipfs-social-proof 167 | - Generates an ad-hoc IPFS-based "identity" based on main peer keypair 168 | - User can create proofs (signed ad-hoc JSON) and post to github gist or reddit post 169 | - `Autonomica` client (included) fetches the advertised proof Urls and verifies them with peer public key 170 | - In progress: 171 | - More tests 172 | - crypto "primitives" API to support all of the requirements of IPFS Identity Manager application 173 | - ASCII armoring of signatures 174 | - ASCII armoring of public keys that actually work 175 | - Blocked: Not really. reading all of the IPFS Identity Manager docs / requirements and W3C VC WG specs, etc. 176 | - Next: 177 | - Want to support proofs and DID methods / DID formats as spec'd 178 | - Extremely interested in collaboration with IPFS teams 179 | 180 | #### Victor Grishchenko @gritzko 181 | 182 | https://github.com/gritzko/ron Replicated Object Notation (2.0,the old version) - CRDT friendly data format 183 | 184 | https://youtu.be/HpZYqUmK3_M CRDT revision control talk by Nikita (our planned demo) 185 | 186 | 187 | 188 | ------------- 189 | 190 | ## Notes: 191 | 192 | - Schedule a deep dive session around Identity 193 | - @satazor - André Cruz 194 | - @jimpick - Jim Pick 195 | - @aschmahmann - Adin Schmahmann 196 | - @daviddahl David Dahl (ddahl on irc) 197 | - perhaps mention this in slack so that other people interested in this topic may join? 198 | 199 | - Arkadiy will schedule a meeting this week to draft requirements for Pinner V0 for PeerPad 200 | - Discuss the how we identify/authenticate pinners, probably adopting the identity solution 201 | 202 | 203 | 204 | -------------------------------------------------------------------------------- /meeting-notes/20181127.md: -------------------------------------------------------------------------------- 1 | # Dynamic Data and Capabilities WG — November 27th, 2018 2 | 3 | - **Lead:** @pgte 4 | - **Notetaker:** @jimpick 5 | - **Attendees:** 6 | - @pgte 7 | - @jimpick 8 | - @andreforsousa 9 | - @daviddahl 10 | - @arkadiy 11 | - @aschmahmann 12 | - @marcooliveira 13 | - @satazor 14 | 15 | - [**Zoom.us meeting URL**](https://protocol.zoom.us/j/586782711) 16 | - [**Recording**](https://www.youtube.com/watch?v=CY_cVPEATc8&feature=youtu.be) 17 | 18 | ## Agenda 19 | 20 | 1. Start recording 21 | 1. Ask everyone to put their name into the list of attendees 22 | 1. Ask for a volunteer to take notes 23 | 1. Everyone can add items to this agenda for things they would like to discuss 24 | 1. Round of intros and updates 25 | - Introduce yourself and your interest in this subject 26 | - What have you accomplished since the last meeting? 27 | - Were there any blockers? If so, which ones? Is it still blocked? Why? 28 | - What is the next important thing you should focus on? 29 | 1. Demos 30 | - peer-pad E2E load tests 31 | - discussify replies 32 | 1. Questions 33 | 34 | ### 2 Week Updates: 35 | 36 | (please copy this and add your update here :) 37 | 38 | #### @ 39 | - Concluded: 40 | - In progress: 41 | - Blocked: 42 | - Next: 43 | 44 | #### @satazor 45 | - Concluded: 46 | - Replies 47 | - Lazy load of comments and replies (view more) 48 | - In progress: 49 | - versidag + ipfs-versidag modules 50 | - https://github.com/ipfs/dynamic-data-and-capabilities/issues/50 51 | - Blocked: 52 | - Add persistance of the data (pinner + sync UI language) 53 | - Infrastructure 54 | - Sync UI language being done for peerpad; will later borrow the same UI language 55 | - Next: 56 | - Integrate ipfs-versidag into discussify so that we have history 57 | - This will require a small refactor since some of stuff currently in the CRDT is no longer necessary 58 | - Either launch discussify in chrome/firefox store 59 | - Prepare manifest.json for Firefox so that it's compatible 60 | - Add versioning + TTL to the data model 61 | - Implement new header (smaller and prettier) 62 | - Publish on store: logo + copy + public key? 63 | - ...or kickstart Identity/IDM 64 | - Prepare talk about DApps + IPFS + peer-star-app for OPO.js 65 | - Notes: 66 | - 67 | 68 | 69 | #### @aschmahmann 70 | - Concluded: 71 | - Decided to push off more sophisticated synchronization of version graphs for now 72 | - IPLD also interested in this problem (may start talking in the https://github.com/ipld/replication repo) 73 | - Starting sharing and version graph synchronization in https://github.com/aschmahmann/ipshare 74 | - MultiWriter IPNS Draft Interface Specs (in the IPShare repo) 75 | - In Progress: 76 | - Version Graph Syncing specs 77 | - Sharing specs 78 | - Scaffolding for causal chat application (it will likely be Yjs + HTTP Go daemon). 79 | - Blocked: 80 | - Next: 81 | - Start using ipshare repo to track tasks and next steps 82 | - Finish writing and publishing above specs to the repos listed 83 | - Continue MW-IPNS implementation 84 | - Managing multiple simultaneous names (currently just does one) 85 | - MW-IPNS basic pinner 86 | - Notes: 87 | - different use cases... 88 | - thoughts on pubsub and topology 89 | 90 | #### @pgte 91 | - Concluded: 92 | - Started special-interest group Identity, lead by @satazor 93 | - Created IRC channel #ipfs-identity 94 | - Created IDM PM Github repo: https://github.com/ipfs-shipyard/pm-idm 95 | - released delta-crdts v0.6.0 96 | - better collision-free UUID (was only happening in tests, but...) 97 | - more and better RGA tests 98 | - peer-star-app 99 | - speed-up tests: https://github.com/ipfs-shipyard/peer-star-app/pull/120 100 | - released peer-star-app v0.10.0 101 | - many fixes and improvements in replication 102 | - is backwards-incompatible 103 | - In progress: 104 | - Blocked: 105 | - Next: 106 | - Notes: 107 | - 108 | 109 | #### @marcooliveira 110 | 111 | - In progress 112 | - Sync with what the Design WG did while I was away 113 | - Update design file structure based in discussions with Design WG 114 | - Define where design assets will be stored and shared 115 | - Define how DDC WG (and others) should interact and request from Design WG 116 | - Create table of possible statuses, intervenients and message for each one 117 | - Once we have a solution, will present to DDC to gather feedback, then it should become recommended UX for all peer-star apps (Peerpad, Discussify, IDM) 118 | - Might require information on peer-star that is not yet available for dev 119 | - Discuss how to launch "more public BETA" of Discussify 120 | - Why? 121 | - Not a real launch, we just want to make it easier to get beta testers on board, gather feedback and release updates 122 | - Where 123 | - Chrome Web Store 124 | - Add-ons for Firefox 125 | - To improve 126 | - Extension banner will likely change: https://github.com/ipfs-shipyard/pm-discussify/issues/64 127 | - Peers/Pinning connectivity/consistency status; review with Sousa 128 | 129 | - Blocked 130 | - Launch public BETA of Discussify 131 | - Finish versidag and integrate it into discussify 132 | - Pinner integration 133 | - Versioning + TTL of data (to enable quick iterations) 134 | - Need to ping Victor about this 135 | - Who owns the key to publish? 136 | - For Firefox Add-ons, need to generate slightly different manifest 137 | 138 | - Next 139 | - Discussify: Copy & image for stores. Brand manual will be useful 140 | - Find solutions for gathering feedback and metrics from BETA testers 141 | - Find influencers & mediums where to announce effort and gather interest 142 | - Discussify: Launch public BETA 143 | 144 | - Notes 145 | 146 | - Discuss with Pedro (open issue) 147 | - All the pending issues/decisions to be done for launching Discussify 148 | - Influencers we could use, who could write about us? 149 | - GUI WG is discussing set of components that could be integrated into apps, might be interested in the UX for syncing status. 150 | 151 | 152 | #### @jimpick 153 | - Concluded: 154 | - New maintainer of peer-pad repo on GitHub 155 | - experimentation with e2e:load tests 156 | - trip to Tokyo, talk at Tokyo Nodefest (currently in Sapporo!) 157 | - suppress peer-star-app linter warnings (discuss) 158 | - extended contract! 159 | - In progress: 160 | - investigating and cleaning up warnings in tests 161 | - establish performance budgets for several test cases 162 | - try to stabilize e2e:load even further 163 | - investigate new persistence work from @pgte 164 | - investigate connection speedups from @dirkmc 165 | - simplify UI on production PeerPad (for internal use) 166 | - production deploy of latest PeerPad / peer-star-app / pinner 167 | - meet with Google in Tokyo - signed HTTP exchanges (lidel) 168 | - write up Japan trip notes 169 | - travel back to Canada 170 | - Blocked: 171 | - Next: 172 | 173 | 174 | #### @arkadiy 175 | - Concluded: 176 | - surgery/thanksgiving! 177 | - In progress: 178 | - streamlining PeerPad for dogfooding (please see https://github.com/protocol/pm-peer-pad/issues/35) 179 | - Notes: 180 | - David Dias - do we make PM public? Arkadiy is ok with it 181 | 182 | #### @andreforsousa 183 | - Concluded: 184 | - Discussify: 185 | - Open a new issue with Q&A for the UI level 186 | - https://github.com/ipfs-shipyard/pm-discussify/issues/64 187 | - Left everything on the repo - Updated user journey and style guide 188 | - PeerPad read-only mobile version is ready following the discussion on GH 189 | In Progress: 190 | - Discussify Brand Manual - kick off 191 | - UX for Current Pinning status: 192 | - Still Offline and connecting; 193 | - Online and syncing; 194 | - Online and synced; 195 | - Online and failed; 196 | - Synced and offline; 197 | - Online and only me; 198 | Next: 199 | - Discuss all pinning status/persistency and advance with different UI approaches 200 | - Provide a list with all scenarios (persistency) and the UI approaches by Nov 28th 201 | - Upload updated PeerPad read-only mobile version on GH 202 | 203 | 204 | Notes: 205 | - 206 | 207 | 208 | 209 | #### @daviddahl 210 | - Concluded: 211 | - more tests added to ipfs-social-proof 212 | - proper ascii-armoring of keys and signatures 213 | - In Progress: 214 | - adding actual W3C claims format for all 'proofs' 215 | - updating tests validation and verification for new claims format 216 | - Next: 217 | - Examine apis for modularization for use in other systems 218 | - Find out why Firefox is broken 219 | - Notes: 220 | - 221 | 222 | 223 | ------------- 224 | 225 | ## Notes: 226 | 227 | 228 | -------------------------------------------------------------------------------- /meeting-notes/20181211.md: -------------------------------------------------------------------------------- 1 | # Dynamic Data and Capabilities WG — December 11th, 2018 2 | 3 | - **Lead:** 4 | - **Notetaker:* 5 | - **Attendees:** 6 | - @pgte 7 | - @arkadiy 8 | - @jimpick 9 | - @satazor 10 | - [**Zoom.us meeting URL**](https://protocol.zoom.us/j/586782711) 11 | - [**Recording**](https://youtu.be/P05l8QuHY0M) 12 | 13 | ## Agenda 14 | 15 | 1. Start recording 16 | 1. Ask everyone to put their name into the list of attendees 17 | 1. Ask for a volunteer to take notes 18 | 1. Everyone can add items to this agenda for things they would like to discuss 19 | 1. Round of intros and updates 20 | - Introduce yourself and your interest in this subject 21 | - What have you accomplished since the last meeting? 22 | - Were there any blockers? If so, which ones? Is it still blocked? Why? 23 | - What is the next important thing you should focus on? 24 | 1. Demos 25 | - ipfs-versidag 26 | 1. Questions 27 | 28 | ### 2 Week Updates: 29 | 30 | (please copy this and add your update here :) 31 | 32 | #### @ 33 | - Concluded: 34 | - In progress: 35 | - Blocked: 36 | - Next: 37 | 38 | #### @pgte 39 | - Concluded: 40 | - released peer-star-app/peer-base v0.10.6 41 | - In progress: 42 | - migration of peer-star-app to github.com/peer-base/peer-base: https://github.com/peer-base/peer-base/issues/203 43 | - js-delta-crdts: Progressively compute view value: https://github.com/ipfs-shipyard/js-delta-crdts/issues/28 44 | - helping @dirkmc in simplifying discovery: https://github.com/peer-base/peer-base/pull/200 45 | - peer-base: extract components (RFC): https://github.com/peer-base/peer-base/issues/205 46 | - Blocked: 47 | - Next: 48 | 49 | #### @arakdiy 50 | - Concluded: 51 | - stripping down peer-pad for dev.peerpad.net internal use version (thanks victor) 52 | - In progress: 53 | - Blocked: 54 | - discussing cryptpad collaboration 55 | - Next: 56 | 57 | #### @satazor 58 | - Concluded: 59 | - [versidag](https://github.com/ipfs-shipyard/js-versidag) + [ipfs-versidag](https://github.com/ipfs-shipyard/js-ipfs-versidag) modules 60 | - Prepared and gave a talk at OPO.js: [True Serverless](https://drive.google.com/open?id=1qs6zJuYv9uq92oAY-BsXFoOe5zNhs6kO) 61 | - Demo didn't workout as planned because the internet was really flacky 62 | - I really would like to give this talk in other conferences, ideas? 63 | - In progress: 64 | - Helping Pedro Santos with the tasks required to launch Dicussify in Chrome/Firefox extension stores 65 | - Blocked: 66 | - Most of the stuff I was blocked were moved to Pedro Santos 67 | - Next: 68 | - Fully dedicate my time to kickstart Identity/IDM 69 | - Discuss how `ipfs-log` and `versidag` could converge. We will chat in person, anyone interested please fill the [Doodle](https://doodle.com/poll/n7rpk36cy7x9wthk#table) 70 | - Notes: 71 | - Till Friday, I will be intermitent as I will be going to a conference; will be working mostly offline 72 | 73 | 74 | #### @PedroMiguelSS 75 | - Concluded: 76 | - Discussify 77 | - Different manifest files for Chrome and Firefox on build process (https://github.com/ipfs-shipyard/discussify-browser-extension/pull/6); 78 | - Data versioning - discussions are reset everytime data structure changes (https://github.com/ipfs-shipyard/discussify-browser-extension/pull/4) 79 | - Published first version on Chrome store. Accepted yesterday ��(check it here https://chrome.google.com/webstore/search/Discussify) 80 | - In progress: 81 | - Discussify: 82 | - All actions triggered get a fade-in: 83 | - After clicking “REPLY” 84 | - After “CANCEL” a new reply 85 | - Blocked: 86 | - Discussify 87 | 88 | - Firefox publish (https://github.com/ipfs-shipyard/pm-discussify/issues/68) 89 | - Privacy Policy - it also need to be linked to chrome store when ready 90 | - Add persistance of the data (pinner + sync UI language) 91 | - Ability to ask the pinner to pin cids of comments 92 | - Sync UI language being done for peerpad; will later borrow the same UI language 93 | - Next: 94 | - Discussify: 95 | - Polish UI animations (https://github.com/ipfs-shipyard/pm-discussify/issues/66): 96 | - Add transition with opacity once user clicks “EDIT” comment 97 | - Animate “placeholder comment” content bars 98 | - Comments “skew” 99 | - Add scale and subtle bounce to the FAB when opening the extension in the browsers 100 | - Scale down and fade-out the FAB once the extension is closed 101 | - Tween between FAB and sidebar as previously mentioned in https://github.com/ipfs-shipyard/pm-discussify/issues/52. 102 | - After closing modal add Fade-out on modal and overlay 103 | 104 | 105 | #### @aschmahmann 106 | - Concluded: 107 | - Versioned graph synchronization proposal 108 | https://github.com/ipld/replication/pull/3 109 | - Versioned graph synchronization implementation supports multiple named graphs 110 | - Required for reasonable pinner functionality 111 | - 112 | - In progress: 113 | - Blocked: 114 | - Next: 115 | 116 | #### @marcooliveira 117 | 118 | - Concluded: 119 | - Discussify 120 | - Research about the publishing parameters 121 | - Update README (main and extension repos), currently under https://github.com/ipfs-shipyard/discussify-browser-extension/tree/improve-readme 122 | - Include dev install, for collaborating; 123 | - Normal install, for regular users/testers; 124 | - Define which UI aspects need polishing 125 | - Create copy & imagery for publishing in stores 126 | - Released on Chrome Web Store ������������: https://chrome.google.com/webstore/detail/discussify/bfmnjjkobeboejeocbompgljbiafbgcc 127 | - Create list of influencers who could help us with raising awareness about Discussify and peer-star/peer-base: 128 | - Pedro Teixeira 129 | - Jim Pick 130 | - David Dias 131 | - Pedro Gomes (linkedin.com/in/pedrouid) 132 | - Mark Boas 133 | - Textile guys 134 | - Should also look into twitter #ipfs, Medium and Youtube 135 | 136 | - In progress: 137 | - "Collaboration lifecycle" workshop, to create UX guidelines for peer-star/peer-base apps 138 | - Fix problems with André's talk on OPO.js 139 | 140 | - Blocked: 141 | - Discussify 142 | - Addons for Firefox: Privacy Policy is required 143 | 144 | - Next: 145 | - Finalise "Collaboration lifecycle" 146 | - Put list of "decentralised influencers" in issue, and share with DDC so that team can help out as well 147 | - Check what type of feedback & insights we'd like to gather from Discussify, and how we can gather it 148 | - Start discussing new iteration on IDM UX & UI with André Cruz & Sousa 149 | 150 | 151 | #### @jimpick 152 | - Concluded: 153 | - Japan Trip! 154 | - Tokyo Nodefest 155 | - Google 156 | - PeerPad PRs + merging 157 | - In progress: 158 | - PeerPad bugs / f fixing 159 | - Blocked: 160 | - Next: 161 | 162 | 163 | 164 | #### @ 165 | - Concluded: 166 | - In progress: 167 | - 168 | - Blocked: 169 | - Next: 170 | 171 | 172 | ------------- 173 | 174 | ## Notes: 175 | 176 | - https://github.com/vvscode/js--nightwatch-recorder 177 | - daviddias: a true offline demo would be really cool 178 | - https://vimeo.com/147968322 179 | - aschmahmann: try to align separate projects 180 | - daviddias: borrow stuff from dat? 181 | - jimpick: has a hypercore on ipld partially written 182 | - satazor / daviddias: blocked on legal 183 | 184 | David Dias: 185 | - not competing with Google Docs, etc. 186 | - product for users to get feedback 187 | - building a full product is a lot work 188 | - can we build a framework? 189 | - perhaps we can work with partners, eg. CryptPad 190 | - PeerPad and Discussify 191 | - PeerBase 192 | - focus is more developers 193 | - dweb primitives for DApps 194 | - Adin: data should be portable 195 | 196 | Satazor demo 197 | ? 198 | - arkadiy: better session replay for debugging? e.g. https://github.com/vvscode/js--nightwatch-recorder 199 | -------------------------------------------------------------------------------- /meeting-notes/20190108.md: -------------------------------------------------------------------------------- 1 | # Dynamic Data and Capabilities WG — January 8th, 2019 2 | 3 | - **Lead:** @pgte 4 | - **Notetaker:** @satazor 5 | - **Attendees:** 6 | - @jimpick 7 | - @satazor 8 | - @dirkmc 9 | - @aschmahmann 10 | - @pgte 11 | - @andreforsousa 12 | - @marcooliveira 13 | - @pedromiguelss 14 | - (please add your handle here) 15 | - [**Zoom.us meeting URL**](https://protocol.zoom.us/j/586782711) 16 | - [**Recording**](https://youtu.be/2JcPcTRv_fM) 17 | 18 | ## Agenda 19 | 20 | 1. Start recording 21 | 1. Ask everyone to put their name into the list of attendees 22 | 1. Proposal: New format: https://github.com/ipfs/dynamic-data-and-capabilities/issues/58 23 | 1. Proposal: New schedule: weekly 24 | 1. Ask for a volunteer to take notes 25 | 1. Everyone can add items to this agenda for things they would like to discuss 26 | 1. Round of intros and updates 27 | - Introduce yourself and your interest in this subject 28 | - What have you accomplished since the last meeting? 29 | - Were there any blockers? If so, which ones? Is it still blocked? Why? 30 | - What is the next important thing you should focus on? 31 | 1. Cross-WG dependencies: attend meetings (@pgte) 32 | 1. Demos 33 | - Super quick demo of "sketch-style" terminal app (uses XState) - @jimpick 34 | 1. Questions 35 | 36 | ### 3 Week Updates: 37 | 38 | #### @ 39 | - Concluded: 40 | - In progress: 41 | - Blocked: 42 | - Next: 43 | 44 | #### @pgte 45 | - Concluded: 46 | - created peer-base/specs 47 | - peer-base: dependency update storm 48 | - peer-base: delta batches 49 | - In progress: 50 | - Blocked: 51 | - Next: 52 | - peer-base: speed-up tests with pre-baked peer-ids 53 | - versidag / ipfs-log -> create chat app 54 | - peer-base renaming 55 | - connection management in peer-base 56 | 57 | #### @jimpick 58 | - Concluded: 59 | - lots of experimentation with making small example apps 60 | - diffy + xstate demo 61 | - browsers wg meeting (talked about Tokyo + Google meeting) 62 | - community wg meeting 63 | - In progress: 64 | - some PeerPad react front-end work, update deps 65 | - Blocked: 66 | - rename peer-base? 67 | - Next: 68 | - figure out community outreach plans for Q1 69 | - (added after: collaboration lifecycle!) 70 | 71 | #### @pedromiguelss 72 | - Concluded: 73 | - Discussify 74 | - Actions triggered get a fade-in: 75 | - After clicking “REPLY” 76 | - After “CANCEL” a new reply 77 | - In progress: 78 | - Discussify 79 | - Finishing 'CommentPlacer' component 80 | - Add transition with opacity once user clicks “EDIT” comment 81 | - Animate “placeholder comment” content bars 82 | - Blocked: 83 | - Firefox publish (https://github.com/ipfs-shipyard/pm-discussify/issues/68) 84 | - Privacy Policy - it also need to be linked to chrome store when ready 85 | - Next: 86 | - Polish UI animations (https://github.com/ipfs-shipyard/pm-discussify/issues/66): 87 | - Add transition with opacity once user clicks “EDIT” comment 88 | - Add scale and subtle bounce to the FAB when opening the extension in the browsers 89 | - Scale down and fade-out the FAB once the extension is closed 90 | - Tween between FAB and sidebar as previously mentioned in https://github.com/ipfs-shipyard/pm-discussify/issues/52. 91 | - After closing modal add Fade-out on modal and overlay 92 | 93 | #### @aschmahmann 94 | - Concluded: 95 | - MW-IPNS API improvements 96 | - Also switched from Protobufs to go-ipld-cbor for message passing 97 | - Added some MW-IPNS content resolvers: 98 | - Set CRDTs 99 | - Single writer IPNS with conflicts (only using preset communication channels though) 100 | - In progress: 101 | - Started listing peer-base concepts 102 | - Collecting initial thoughts on Message Queueing proposal 103 | - Blocked: 104 | - Next: 105 | - Working on peer-base specs for a while, coming up with a priority order/strategy 106 | - Investigate MW-IPNS over public channel 107 | - OOO Jan 16-25 (limited availability and missing next meeting) 108 | - Justin Cormack from Docker, and involved with Noise Protocol Framework is planning on joining the meeting next week 109 | 110 | #### @satazor 111 | - Concluded: 112 | - Helped Pedro Santos with changes to the build process in order to publish Discussify into Chrome & Firefox 113 | - Publishing on Firefox is blocked because of the privacy policy 114 | - Initial draft of "Identity" breakdown: https://github.com/ipfs-shipyard/pm-idm/issues/2#issuecomment-452345916 115 | - Started contributing to ipfs-log: 116 | - Use IPLD: https://github.com/orbitdb/ipfs-log/pull/213 117 | - Helped review other PRs related to improvements we discussed with ipfs-log developers 118 | - In progress: 119 | - Add timeouts to ipfs-log read & write functions: https://github.com/orbitdb/ipfs-log/issues/199 120 | - Discussing the "Collaboration Lifecycle" with Marco Oliveira and Pedro Santos: https://github.com/peer-base/peer-base/issues/227 121 | - Next: 122 | - Keep working on the Identity breakdown, assign people to high-level points outlined there and start working! 123 | 124 | #### @andreforsousa 125 | - Concluded: 126 | - Draft proposal for IDM sitemap with the priorities regarding user-journeys & pages 127 | - Helped @satazor with the gist for IDM breakdown 128 | - In progress: 129 | - Peer-base: Collaboration Lifecycle and UI/UX guidelines with @satazor and @marcooliveira (already uploaded to GitHub) 130 | - Kickstart (yesterday) new concept for "IDM" 131 | - Follow the current implementation on Discussify animations 132 | - Blocked: 133 | - Next: 134 | - Multiple approaches/concepts for "IDM" UI 135 | 136 | #### @dirkmc 137 | - Concluded: 138 | - In progress: 139 | - Fixes in libp2p-switch 140 | - Blocked: 141 | - Next: 142 | - Some changes to how connection management works 143 | 144 | #### @marcooliveira 145 | - Concluded: 146 | - Breakdown of peer-base plan (mainly Strategic Product Management Activities and Outbound Activities) 147 | - 2019 OKRs 148 | - In progress: 149 | - Porto ProtoSchool chapter 150 | - Collaboration Lifecycle draft (current status at https://gist.github.com/marcooliveira/fa5c31aded5b69c9c7deff5b73351729) 151 | - Need to discuss with @satazor 152 | - Need to discuss with @pgte 153 | - Start discussing new iteration on IDM UX & UI with André Cruz & Sousa 154 | - Blocked: 155 | - Next: 156 | - Events dapp pitch 157 | - Define more specific plan for peer-base 158 | - resources 159 | - milestones 160 | - Get approval for: 161 | - peer-base plan 162 | - Event dapp 163 | - Get clarity on what's going to happen with Porto ProtoSchool 164 | - Talk to Teri 165 | - Talk to Jim Pick 166 | 167 | ------------- 168 | 169 | ## Notes: 170 | - Jim demoed a peer-base RGA CRDT working in a terminal using nodejs. XState was used as state machine to change between starting, sending, saved, receiving, etc.. 171 | - Pedro mentioned we must rename peer-base because the owner of the peerbase name declined to give it to us. He will make a pool with a few suggestions so that we can decide on the new name. 172 | - Pedro showed a PR about the WG roadmap in which we all participated in response to Dirk. 173 | - Arkady tried to reach a 3rd party to adopt our tech but it's too soon. We need to make the stack more stable and reliable first. 174 | - Adin and Pedro mentioned that we should learn from what textile and bring that knowledge to peer-base. Later on, and if textile agrees, they can replace parts that they built with parts from peer-base. 175 | 176 | -------------------------------------------------------------------------------- /meeting-notes/20190115.md: -------------------------------------------------------------------------------- 1 | # Dynamic Data and Capabilities WG — January 15th, 2019 2 | 3 | - **Lead:** @pgte 4 | - **Notetaker:** @olizilla 5 | - **Attendees:** 6 | - (please add your handle here) 7 | - @pgte 8 | - @andreforsousa 9 | - @pedromiguelss 10 | - @jimpick 11 | - @aschmahmann 12 | - @satazor 13 | - @gritzko 14 | - @olizilla 15 | - [**Zoom.us meeting URL**](https://protocol.zoom.us/j/586782711) 16 | - [**Recording**](https://www.youtube.com/watch?v=WQahNREs4hE) 17 | 18 | ## Agenda 19 | 20 | 1. Start recording 21 | 1. Ask everyone to put their name into the list of attendees 22 | 1. Ask for a volunteer to take notes 23 | 1. Everyone can add items to this agenda for things they would like to discuss 24 | 1. Round of intros and updates 25 | - Introduce yourself and your interest in this subject 26 | - What have you accomplished since the last meeting? 27 | - Were there any blockers? If so, which ones? Is it still blocked? Why? 28 | - What is the next important thing you should focus on? 29 | 1. Questions 30 | - When will we discuss the new name of peer-base? 31 | - "Really soon" - let's not bikeshed it in public forums 32 | - Prioritize https://github.com/peer-base/peer-base/issues/146 (Allowing pinner to pin content from within a collaboration ) ? 33 | - becoming a blocker! 34 | - Dx and infra issues to discuss. (we dont want to recreate core IPFS infrastructure for pinning) 35 | - its a missing feature that developers will need (let's lay out the options and pick one) 36 | - how about peer-base pinner that calls out to an ipfs pinner? A strategy / facade so we can switch out which service we use behind the scenes... in mem vs ipfs gateway vs 3rd party pinning service. 37 | - Pinner for Peer-Pad 38 | - Mesure the benefit and how hard it would be to use any kind of CRDT for peer-base, op-based, state-based, delta-crdt, ron-based crdts, ...? 39 | - if we can see any use-case that would benefit from using other types of CRDT, we should look at abstracting the CRDT implementation details from peer-base 40 | - the basic primitive could be a causal tree. we could map that to any library for pure op-based crdts 41 | - imagine an ecosystem of adapters, e.g peer-base-crdt-automerge, peer-base-crdt-ron, etc.. 42 | - the replication strategy may be coupled to the crdt impl choice. 43 | - connection management is unique, we should factor that out... but it should be pushed to libp2p 44 | - automerge gives a json/object like api, swarm.js has uses graphql.. 45 | - main goal is an easy to use api, not a unified api across all existing crdt libraries 46 | - There's a GraphSync (how to perform replication and queries on DAGs) discussion tomorrow. Are there any use cases we really want supported? 47 | - what about sparse sub-graph requests (get record 500 from a huge dataset) 48 | - optimised transmission of an entire graph of blocks... (i think that is all graphsync is aiming for) 49 | - streamable (and cancellable? observable and informative, renderable in a UI) 50 | 51 | 1. Actions 52 | - Please review https://github.com/orbitdb/ipfs-log/issues/211#issuecomment-454012202 (how to handle breaking changes on data-structures and public API on ipfs-log) 53 | - @pgte @satazor Make time to Prioritize https://github.com/peer-base/peer-base/issues/146 54 | 55 | 56 | ### 1 Week Updates: 57 | 58 | #### @ 59 | - Concluded: 60 | - In progress: 61 | - Blocked: 62 | - Next: 63 | 64 | #### @pgte 65 | - Concluded: 66 | - Not much, occupied with internal PL stuff 67 | - In progress: 68 | - Blocked: 69 | - Next: 70 | - peer-base: speed-up tests with pre-baked peer-ids 71 | - versidag / ipfs-log -> create chat app 72 | - peer-base renaming 73 | - connection management in peer-base 74 | 75 | #### @andreforsousa 76 | Concluded: 77 | - Drafted IDM concepts 78 | - Currently with 4 UI approaches 79 | - Homepage/Dashboard 80 | - Profile page 81 | - Revision for Discussify animations 82 | - Comments Skew 83 | - Placeholder (Content bars) 84 | - Discussify: Prototype with example for FAB button morph to sidebar 85 | 86 | Next: 87 | - Revision for animations: 88 | - Comment Edit mode 89 | - FAB animations (Entry & Exit) 90 | - Continue IDM concepts 91 | - Revise with MOXY team 92 | - Apply new look and feel to other pages 93 | 94 | 95 | 96 | #### @pedromiguelss 97 | - Concluded: 98 | - Placeholder (Content bars) 99 | - Comments skew 100 | - In progress: 101 | - Component that handles and synchronyzes scroll, focus and animation 102 | - Animation on comment edit mode 103 | - Privacy policy to lauch discussify on Firefox 104 | - Next: 105 | - FAB animations (Entry & Exit) 106 | - Add modal animation on exit 107 | 108 | #### @satazor 109 | - Concluded: 110 | - IPLD support for ipfs-log was merged after it being reviewed and approved: https://github.com/orbitdb/ipfs-log/pull/213 (a total of 98 comments were made!) 111 | - Made a formal proposal on how to handle breaking changes on data-structures and public API on ipfs-log: https://github.com/orbitdb/ipfs-log/issues/211#issuecomment-454012202 112 | - Reviewing PRs on ipfs-log 113 | - Add timeout support for reading operations on ipfs-log: https://github.com/orbitdb/ipfs-log/pull/221 114 | - Propose going to the RWOT8 on 29 Feb to 3 March, a decentralized identity workshop 115 | - In progress: 116 | - Iterating on the identity breakdown doc 117 | - Blocked: 118 | - Next: 119 | - Create issues for each section on the identity breakdown doc 120 | - Schedule brainstorm sessions on a few topics of the identity breakdown doc 121 | - Hang out with Pedro, Oli, David and people attending libp2p week 122 | 123 | #### @aschmahmann 124 | - Concluded: 125 | - In progress: 126 | - Chiming in on the identity and peer-base UI/UX proposal 127 | - Continuing progress on peer-base concepts, trying to make sure we can model multiple approaches beyond what we already have implemented 128 | - Continuing research on how to make synchronizing append-only DAGs work over public distributed channels (e.g. like pubsub) 129 | - Blocked: 130 | - Next: 131 | - OOO until Jan 25 132 | 133 | #### @jimpick 134 | - Concluded: 135 | - Several "sketches" 136 | - peer-base - 2 peers (last week) 137 | - https://github.com/jimpick/peer-base-xstate-playground 138 | - peer-base - 26 peers! 139 | - https://github.com/jimpick/peer-sketch-many 140 | - peer-base - control (last release) vs. test sample (master) 141 | - https://github.com/jimpick/peer-sketch-compare-connect-speed 142 | - swarm.js 143 | - https://github.com/gritzko/swarm 144 | - https://github.com/jimpick/peer-sketch-swarmjs-mice 145 | - regression in peer-base that affected peer-base 146 | - Browsers and Community WG 147 | - In progress: 148 | - Blocked: 149 | - Jenkins server (Victor B.) 150 | - Next: 151 | - pinner work? 152 | - more sketches? peerpad e2e:load? mininet? libp2p (rendezvous/stardust)? todo sample? discussify? 153 | 154 | ### @gritzko 155 | - Concluded: 156 | - RON 2.1 chain-based storage (rocksdb based) - http://replicated.cc/ 157 | - RON 2.1 chain-friendly RGA/CT CRDT 158 | - In progress: 159 | - Mappers (conversions RON <-> external formats, such as txt, csv, json...) 160 | - Relevant links: 161 | - https://github.com/gritzko/ron-cxx RON2.1 C++ (unreleased, ping me for access) 162 | - http://replicated.cc/ - RON 2.1 specification (Replicated Object Notation) 163 | - http://archagon.net/blog/2018/03/24/data-laced-with-history/ - an essay on convergent/causal/"operational" CRDTs 164 | 165 | ------------- 166 | 167 | ## Notes: 168 | 169 | -------------------------------------------------------------------------------- /meeting-notes/20190122.md: -------------------------------------------------------------------------------- 1 | # Dynamic Data and Capabilities WG — January 22nd, 2019 2 | 3 | - **Lead:** 4 | - **Notetaker:** arkadiy 5 | - **Attendees:** 6 | - @satazor 7 | - @andreforsousa 8 | - @pedromiguelss 9 | - @arkadiy 10 | - @pgte 11 | - @jimpick 12 | - @dirkmc 13 | - @gritzko 14 | - (please add your handle here) 15 | - [**Zoom.us meeting URL**](https://protocol.zoom.us/j/586782711) 16 | - [**Recording**](https://youtu.be/Mya8dB4CGKs) 17 | 18 | ## Agenda 19 | 20 | 1. Start recording 21 | 1. Ask everyone to put their name into the list of attendees 22 | 1. Ask for a volunteer to take notes 23 | 1. Everyone can add items to this agenda for things they would like to discuss 24 | 1. Round of intros and updates 25 | - Introduce yourself and your interest in this subject 26 | - What have you accomplished since the last meeting? 27 | - Were there any blockers? If so, which ones? Is it still blocked? Why? 28 | - What is the next important thing you should focus on? 29 | 1. Questions 30 | 1. Actions 31 | - Jim: Scaling demo 32 | 33 | ### 1 Week Updates: 34 | 35 | #### @satazor 36 | - Concluded: 37 | - Schedule brainstorm sessions on a few topics of the identity breakdown doc 38 | - Discuss "First DID method: IPID" - https://github.com/ipfs-shipyard/pm-idm/issues/4 39 | - Discuss "Identity profile" - https://github.com/ipfs-shipyard/pm-idm/issues/5 40 | - Hang out with Pedro, Oli, David and people attending libp2p week 41 | - In progress: 42 | - Coordinating the brainstorm sessions, we will be discussing the "First DID method" after the DDC call 43 | - Blocked: 44 | - Next: 45 | - Workplan for the IDM, it will be based on this document: https://docs.google.com/document/u/1/d/1g0TjSPjEM4pryPwJTGhIeE4DBsj-VJpz_JqbfllJUgA 46 | 47 | #### @andreforsousa 48 | - Concluded: 49 | - Discussify: Animation with morph using a mask from Fab to circle 50 | - Revised FAB scale and morph animations with Pedro Santos 51 | - Accomplishment on IDM: Kickstarted multiple approaches (10 to be specific) last week and one was chosen 52 | - Draft styleguide with: 53 | - Colors 54 | - Typography (Fonts and text-styles) 55 | - Buttons: 56 | - Primary; Secondary and Terceary (if needed for dark backgrounds) 57 | - Default; Hover; Selected (focus) and Disable states 58 | - Define key User journeys with help of André Cruz 59 | 60 | - In Progress / Next: 61 | - Start sketching and looking at the information architecture for profile/identity page 62 | - Analysis of Keybase comparing with Blockstack 63 | - Understand what they’ve achieved the best, learn from multiple journeys and adapt for our proposal 64 | 65 | 66 | #### @pedromiguelss 67 | - Concluded 68 | - Animation on comment edit mode 69 | - In progress 70 | - Component that handles and synchronyzes scroll, focus and animation 71 | - FAB scale animations (Entry & Exit) - [codepen here](https://codepen.io/pedromssantos/pen/pGzpNV) 72 | - Sidebar entry/exit animations - [codepen here](https://codepen.io/pedromssantos/pen/MLgLyN?editors=0110) - not finished yet 73 | - Next 74 | - Implement: 75 | - FAB animations on the app itself 76 | - Sidebar animations on the app itself 77 | 78 | #### @pgte 79 | - Concluded: 80 | - libp2p (+ some ipfs) team week in Porto 81 | - reviewed and merged (awesome!) contributions to peer-base 82 | - In progress: 83 | - offline js-ipfs in peer-base and peer-pad 84 | - peer-base: upgrade to latest js-ipfs 85 | - delta-crdts: test dependents 86 | - Blocked: 87 | - Next: 88 | - versidag / ipfs-log chat app 89 | - peer-base: push -> prevent flooding / resending messages by implementing sliding window 90 | 91 | #### @jimpick 92 | - Concluded: 93 | - Investigate scrambled peer-base (rga) results that Dirk was experiencing in CI in collaboration-random test 94 | - CRDT bugs! (id comparison related) 95 | - only happened in high concurrency scenarios 96 | - was able to reproduce consistently with 15+ peers 97 | - captured trace, and manually reconstructed chain of events 98 | - test fixes to js-delta-crdts have eliminated the problem 99 | - learn React hooks and suspense 100 | - zoom chats: Community WG, IPFS All Hands 101 | - name ideas 102 | - In progress: 103 | - tests for js-delta-crdts fixes 104 | - Blocked: 105 | - Next: 106 | - offline demo 107 | - new learning demos ... 108 | - Zoom chats: Community WG, Offline (Wednesday) 109 | 110 | 111 | #### @arkadiy 112 | - Concoluded: 113 | - unblocked ws-star-multi in js-ipfs 0.34.2 (can now boot node offline, doesn't suicide on bad ws-star server, multiple server support) 114 | - discussed deployment issues w/infra, have credentials + plan of action 115 | - In Progress: 116 | - more offline! 117 | - collaboration UX 118 | - looking into memex 119 | - deploy pipeline 120 | 121 | #### @dirkmc 122 | - Concluded: 123 | - reduce number of messages sent in push / pull protocols 124 | - In progress: 125 | - reduce time to establish membership 126 | - Blocked: 127 | - Next: 128 | 129 | ### @gritzko 130 | - Concluded: 131 | - revisited delete/undelete (undo/redo) in the Causal Tree CRDT (4 days went there :/ ) 132 | - In progress: 133 | - RON black-box tests for the db 134 | 135 | ------------- 136 | 137 | ## Notes: -------------------------------------------------------------------------------- /meeting-notes/20190129.md: -------------------------------------------------------------------------------- 1 | # Dynamic Data and Capabilities WG — January 29th, 2019 2 | 3 | - **Lead:** @pgte 4 | - **Notetaker:** 5 | - **Attendees:** 6 | - @satazor 7 | - @aschmahmann 8 | - @pgte 9 | - @jimpick 10 | - @andreforsousa 11 | - @pedromiguelss 12 | - @dirkmc 13 | - @arkadiy 14 | - (please add your handle here) 15 | - [**Zoom.us meeting URL**](https://protocol.zoom.us/j/586782711) 16 | - [**Recording**](https://youtu.be/gOGEvOWWIAM) 17 | 18 | ## Agenda 19 | 20 | 1. Start recording 21 | 1. Ask everyone to put their name into the list of attendees 22 | 1. Ask for a volunteer to take notes 23 | 1. Everyone can add items to this agenda for things they would like to discuss 24 | 1. Round of intros and updates 25 | - Introduce yourself and your interest in this subject 26 | - What have you accomplished since the last meeting? 27 | - Were there any blockers? If so, which ones? Is it still blocked? Why? 28 | - What is the next important thing you should focus on? 29 | 1. Ask for volunteer to lead the DDC meetings during February (@pgte) 30 | - zoom account delegation 31 | - schedule rotation 32 | 1. Demos 33 | - Jim: show peer-base trace/reconstruction technique 34 | 1. Questions 35 | 1. Actions 36 | 37 | @aschmahmann clarify https://github.com/ipfs-shipyard/pm-idm/issues/2#issuecomment-451032749 from the identity discussion. 38 | 39 | ### 1 Week Updates: 40 | 41 | (Copy, paste and fill in the following block) 42 | 43 | #### @ 44 | - Concluded: 45 | - In progress: 46 | - Blocked: 47 | - Next: 48 | 49 | #### @pgte 50 | - Concluded: 51 | - delta-crdts: make RGA independent of causal delivery 52 | - ipfs-pubsub-room: support js-ipfs v0.34.4 `ipfs.libp2p` API 53 | - In progress: 54 | - peer-base: upgrade to js-ipfs v0.34.4 - support `ipfs.libp2p` API 55 | - Blocked: 56 | - libp2p transport reconnect: https://github.com/libp2p/js-libp2p/issues/312 57 | - Next: 58 | - FOSDEM 2019 59 | 60 | #### @satazor 61 | - Concluded: 62 | - Workplan for the IDM: https://docs.google.com/spreadsheets/d/1Venqgkcao2Lcje0mkCxr9u0H037aC3H5IxMfsoaeMoE 63 | - Refactored IDM breakdown: https://docs.google.com/document/d/1g0TjSPjEM4pryPwJTGhIeE4DBsj-VJpz_JqbfllJUgA 64 | - Coordinate two brainstorm sessions on identity topics 65 | - In progress: 66 | - IDM concept paper: https://cryptpad.fr/code/#/2/code/view/6fFZbHI1Zj1i2Xja8DpJ867URyFR2b-aiLpxwKErWdo/ 67 | - IDM spec paper: https://cryptpad.fr/code/#/2/code/view/x6emT-0hXpN4eg-9wZEHaKsmgOEU+jdcyBx9-pG6nQQ/ 68 | - Blocked: 69 | - Next: 70 | - Create a small presentation about the IDM project for people, including the team, to better understand what it is 71 | 72 | #### @aschmahmann 73 | - Concluded: 74 | - OOO/Married! 75 | - In progress: 76 | - Blocked: 77 | - Next (same as 1/15): 78 | - Catch up on emails/meetings 79 | - Comment on any identity documents I'm needed for 80 | - Continuing progress on peer-base concepts, trying to make sure we can model multiple approaches beyond what we already have implemented 81 | - Continuing research on how to make synchronizing append-only DAGs work over public distributed channels (e.g. like pubsub) 82 | 83 | #### @pedromiguelss 84 | - Concluded: 85 | - js.ipfs.io new version release with new languages 86 | - In progress: 87 | - Fixing a bug - comment hides itself when users are replying to an existing reply 88 | - Opening PR for CommentPlacer Component 89 | - Discussify's Privacy policy 90 | - Next: 91 | - implement FAB scale animation on the app itself 92 | - implement morph animation on the app itself 93 | 94 | #### @jimpick 95 | - Concluded: 96 | - Community WG, Web Browsers WG, Offline WG, Identity Profile Meeting 97 | - In progress: 98 | - Collaboration random load testing - problem with not finishing 99 | - https://github.com/peer-base/peer-base/issues/246 100 | - https://github.com/peer-base/peer-base/pull/249 101 | - Developed some techniques for tracing and reconstructing peer-pad activity 102 | - Needs more attention 103 | - Blocked: 104 | - Next: 105 | - Offline? 106 | 107 | #### @andreforsousa 108 | - Concluded: 109 | - Meeting “Discuss Identity Profile” 110 | - IDM Concept (GH Issue): https://github.com/ipfs-shipyard/pm-idm/issues/6 111 | - Homepage; 112 | - Profile page; 113 | - Add new feature “Activity Feed” 114 | - Keybase & Blockstack analysis 115 | - Styleguide Atoms (Atomic Design) 116 | - Add new (missing) text-styles 117 | - IDM Information Architecture (GH Issue): https://github.com/ipfs-shipyard/pm-idm/issues/7 118 | - In progress/ Next: 119 | - Start wireframing and designing other pages after the IA decisions and approved concept 120 | - Collaborate with @satazor about the IDM presentation 121 | 122 | #### @arkadiy 123 | - Concluded: 124 | - focused on collaborations work last week 125 | - Locol (sic) WG (offline) established 126 | - In progress: 127 | - API for reconnects/offline status 128 | - re-sync with jim + pedro on peerpad/peerbase layer separation 129 | - trying not to freeze to death in Chicago 130 | 131 | #### @dirkmc 132 | - Concluded: 133 | - Improvement to membership convergence speed 134 | - In progress: 135 | - Use a protocol specifically for establishing membership: 136 | - https://github.com/peer-base/peer-base/issues/243 137 | - Blocked: 138 | - Next: 139 | 140 | 141 | ------------- 142 | 143 | ## Notes: 144 | - next meetings leader: 145 | - arkadiy and satazor 146 | - (also adin and dirk) 147 | - zoom account permissions needed 148 | - Adin on IDM / blockchain 149 | - IPFS/IPNS built on top of DHT with validators 150 | - tweek for IPID? 151 | - possible to make exception for IPID 152 | - alternative to consensus 153 | - key revocation? 154 | - only IPNS request is needed in general case except when compromised 155 | - group encryption scheme 156 | - multiwriter IPNS = some type of CRDT thing (to track heads) 157 | - https://www.youtube.com/watch?v=ip2XhudTEGE&t=0s&list=PLuhRWgmPaHtTVkko1ZTn-qcGb-n6EqHff&index=6 158 | 159 | 160 | -------------------------------------------------------------------------------- /meeting-notes/20190205.md: -------------------------------------------------------------------------------- 1 | # Dynamic Data and Capabilities WG — February 5th, 2019 2 | 3 | - **Lead:** @satazor 4 | - **Notetaker:** @dirkmc 5 | - **Attendees:** 6 | - @satazor 7 | - @andreforsousa 8 | - @pedromiguelss 9 | - @dirkmc 10 | - @gritzko 11 | - @jonnycrunch 12 | - @jimpick 13 | - @aschmahman 14 | - @jonnycrunch 15 | - @momack2 16 | - (please add your handle here) 17 | - [**Zoom.us meeting URL**](https://zoom.us/j/896298813) 18 | - [**Recording**](https://youtu.be/IbtMmns7sQ0) 19 | 20 | ## Agenda 21 | 22 | 1. Start recording 23 | 1. Ask everyone to put their name into the list of attendees 24 | 1. Ask for a volunteer to take notes 25 | 1. Everyone can add items to this agenda for things they would like to discuss 26 | 1. Round of intros and updates 27 | - Introduce yourself and your interest in this subject 28 | - What have you accomplished since the last meeting? 29 | - Were there any blockers? If so, which ones? Is it still blocked? Why? 30 | - What is the next important thing you should focus on? 31 | 1. Demos 32 | - Distributed tracing of peer-base with OpenCensus / Jaeger 33 | - https://github.com/jimpick/peer-base/tree/trace-opencensus-jaeger 34 | - https://opencensus.io/ 35 | - https://www.jaegertracing.io/ 36 | - Alternative to OpenCensus: https://opentracing.io/ 37 | 1. Questions 38 | - How to report progress on IDM? As part of the DDC WG meetings or outside of it? 39 | 1. Actions 40 | 41 | ### 1 Week Updates: 42 | 43 | ### @satazor 44 | - Concluded: 45 | - Submited two drafts papers for the RWOT8 conf 46 | - Kickstarted the IDM project: https://github.com/ipfs-shipyard/pm-idm/projects/1 47 | - Scrum, two weeks sprint 48 | - Tweaks to the IDM Information Architecture diagram 49 | - In progress: 50 | - IDM concept paper: https://cryptpad.fr/code/#/2/code/view/6fFZbHI1Zj1i2Xja8DpJ867URyFR2b-aiLpxwKErWdo/ 51 | - IDM spec paper: https://cryptpad.fr/code/#/2/code/view/x6emT-0hXpN4eg-9wZEHaKsmgOEU+jdcyBx9-pG6nQQ/ 52 | - Blocked: 53 | - Next: 54 | - Setup `pm-idm` repository README 55 | - `ipid` module to manage DID documents based on IPID 56 | 57 | ### @aschmahman 58 | - Concluded: 59 | - A number of large changes pushed to github.com/aschmahmann/ipshare. Main wins are better documentation and some example content resolvers. For those who are interested, take a look at the resolvers folders to see both a G-Set CRDT and a multiwriter IPNS that supports conflicts/simultaneous updates. 60 | - @bigs and I took a look at some issues I was experiencing bootstrapping from the local IPFS daemon node. Switched integration tests to be more self contained and bootstrap from a test created node. 61 | 62 | - In Progress: 63 | - Talking with @dirkmc and @bigs on suggested ways to make synchronizing append only DAGs work in public channels. This may include extracting parts of PubSub and peer-bases membership into new interfaces 64 | 65 | ### @pedromiguelss 66 | - Concluded: 67 | - comment hides itself when users are replying to an existing reply - bug fixed 68 | - animations PR opened (https://github.com/ipfs-shipyard/discussify-browser-extension/pull/12) and (https://github.com/ipfs-shipyard/discussify-styleguide/pull/5) 69 | - In progress: 70 | - Kickstart the IDM UIKit repo (https://github.com/ipfs-shipyard/idm-styleguide) 71 | - Blocked: 72 | - Discussify privacy policy 73 | - Next: 74 | - Implement the initial components present in the IDM UI styleguide 75 | 76 | 77 | ### @andreforsousa 78 | - Concluded: 79 | - IDM: 80 | - Commit with the Initial styleguide version specs (html file) 81 | - Commit with the Fonts webkit 82 | - Updates on Information architecture diagram 83 | - Finished and presented"What is IDM?" presentation for MOXY team 84 | - User-stories/tasks and scrum board for the IDM sprints 85 | 86 | - Next: 87 | - IDM: 88 | - Design the "Setup Locker" user-journey 89 | - Design the "Lock Screen" user-journey 90 | 91 | ### @dirkmc 92 | - Concluded: 93 | - In progress: 94 | - Reducing number of messages sent while establishing membership 95 | - Making membership more scalable 96 | https://github.com/peer-base/peer-base/issues/243 97 | - Blocked: 98 | - Next: 99 | 100 | ### @gritzko 101 | - Concluded: 102 | - an "industrial-grrade" (i.e. dumb enough) algorithm for the RGA/CT<->plain text mapping (the 2.1 version has chained deletes, that is a bit different from the classic version) 103 | - In progress: 104 | - debugging the thing 105 | - Next 106 | - start fuzz testing the thing 107 | 108 | ### @jimpick 109 | - Concluded: 110 | - mostly worked on tracing and building test case from tracing 111 | - attempted to manually reconstruct older failure scenario (failed) 112 | - more tests for new changes, collaboration-random test ... really good (still fails rarely) 113 | - OpenCensus / Jaeger distributed tracing 114 | - peer-base serverless experiment on Zeit Now https://github.com/jimpick/peerpad-serverless-now 115 | - In progress: 116 | - more distributed tracing 117 | - capture trace from rare random failure 118 | - Blocked: 119 | - Next: 120 | - pinner work 121 | 122 | ### @jonnycrunch 123 | - Concluded: https://github.com/WebOfTrustInfo/rwot7-toronto/blob/master/draft-documents/ipld_did_documents.md 124 | - In progress: Finalizing proofs for anchor in ethereum 125 | - Blocked: W3C approach is old-school 126 | - Next: Now chair of IEEE working group on Identity 127 | 128 | ------------- 129 | 130 | ## Notes: 131 | - Jim has been working on making fuzz testing reproducible by capturing tracing and converting it into deterministic tests (using OpenCensus / Jaeger). Will need a mock networking layer 132 | 133 | ##### Adin has been working on 134 | - ipshare: https://github.com/aschmahmann/ipshare 135 | - CRDTs (grow only set, CID based register with conflict resolution) 136 | - Looking at sync protocol and what can be shared with peer-base 137 | - Graph sync is being actively worked on elsewhere so Adin is focusing on API 138 | - Test-specific bootstrapper (for libp2p) 139 | Satazor sees synergies with IPID in terms of being able to sync the DAG 140 | 141 | ##### Jim demoed tracing work 142 | - Dirk asked about using events more in the codebase, so that we don't have so many dependencies on stats, replication, tracing etc 143 | - Jim said that doing the tracing work has involved refactoring and cleaning up a lot of code 144 | - Satazor asked about doing tracing inside a module that you don't own, eg a crypto module 145 | - Jim says you can use proxy javascript objects, hooks etc. Chrome itself has a tracing framework 146 | 147 | #### Separate meeting for IDM updates 148 | - Satazor asked the group if there should be a separate meeting for IDM updates 149 | - Molly has been working with other groups to spend less time on updates and more time on discussion. Suggested a few options. 150 | - Satazor would like to have a separate IDM call where one of the people in the IDM meeting would also update the DDWG group with the "headlines" from the IDM meeting 151 | - Molly suggests to make sure that notes are taken at the IDM meeting and that there's a zoom link 152 | - Discussed when to schedule IDM meeting, could be good to schedule it before the DDWG meeting so that DDWG can be informed of progress 153 | 154 | ##### jonnycrunch talked about DID 155 | - jonnycrunch raised issue of using non-deterministic format for DID documents with W3C, pushing to use CBOR 156 | - W3C tends to be web 2.0 focused 157 | - Some complications around DID authentication as different parties use different crypto-systems (RSA vs EC etc) 158 | - IPNS is getting better. The DID implementation waits for a response from 3 peers (instead of 16) and then gets updates over pubsub which is fast enough for this use case 159 | 160 | --------------------------------------------------------------------------------