We’re piloting a biweekly sync between IPFS stewards and advocates. Let’s use this thread for meeting recaps and related conversations.
April 1
Attendees: @adin @lidel @achingbrain @BigLep @mosh @dietrich @Jorropo
People need more conceptual toolboxes
- Eg I want to create an efficient index
- Eg I want to traverse these blocks, how do I do that
We need a place to drop semi-official knowledge
Examples like Adin’s IPNS writeup and other docs that aren’t fully baked enough to go into Docs, but having it will be 100x better than nothing. After exploring many options (blog, discord, hackmd, notion), we decided to try using the wiki feature on this forum (it allows posts to be editable by many people).
There are also stub pages in Docs like Best practices for IPFS builders | IPFS Docs
“Getting Started” content could be better tuned to learning & introduction
- People think of js-ipfs as a monolith, but it’s more modular by far and you most likely want to use them independently. We have some people who want to build on our stack who aren’t interested in decentralized transfer of data, eg someone is going to host servers with all the data using IPFS content addressing.
- In browser land, users getting started are probably more interested in a daemon already running somewhere and just using some JS IPLD libraries.
- Jorropo: Telling people to use go-ipfs as a library is a really big beast with complicated plumbing. You only need a few features provided in all the packages: DHT, bitswap, blockstore. @hector has an IPFS lite package, use that content instead as intro. Imports only the things you need and learn IPFS from the ground up in only 300-500 lines of code, plus better config options. ipfslite package - github.com/hsanjuan/ipfs-lite - pkg.go.dev.
- Mosh: I"m hearing people looking for the IPFS way to do standard software things, like databases. Do we need better middleware?
- Lidel: This will get way better when we support IPLD on gateways, namely DAG-JSON. When we remove the need for middleware, devs can just talk javascript and store JSON somewhere.
- For a lot of people, IPFS = gateways, = UnixFS, != IPLD… smush everything into a directory, or just let the gateways support these things.
There’s an early and important fork in the road when choosing to use IPFS: files vs. data.
We call the whole thing IPFS but if you want dags all the way down, you’re going to need IPLD. This is an important concept for new users to understand but it’s missing an explanation.
Links mentioned:
- Monthly Developers Report - 2022 March - Google Slides
- Fabric.ai needs and conversation: IPFS Data Indexing, Searching and Linking - HackMD
Next time:
- April 15
- As a group, try to create the primer on IPFS for files vs. IPFS/IPLD for data structures.
April 29
Proposed agenda:
- Input on 2 grant proposals for IPNS pinning service and emergent reputation
- Learn about IPLD / DAG-JSON support on gateways
- What IPFS means
Notes
IPLD/DAG-JSON support on gateways
In go-ipfs 0.13 we introduced the concept of asking for a specific response from gateway. This will be used in the next release to support asking for dag-json and dag-cbor, and therefore any IPLD codec (represented as json/cbor).
It’s useful if people are using IPFS as a backend service for internal usage. In the future you might want a concept of a verifiable-only / trustless gateway.
What is and isn’t IPFS?
The definition of IPFS is blurry. Here are some things that various people think IPFS is:
- the ipfs.io gateway
- go-ipfs
- anything that supports bitswap and the dht
- anything that supports libp2p — but do you have to support ipld? what if you use http to transport the files?
- do you have to implement all the codecs?
- what if i just implement the bittorrent codec?
Where do you draw the line that makes something IPFS or not? How do we choose who gets to make choices? What’s the line between being permissive and gatekeeping?
- If we are going to insist that IPFS is everything in the universe that’s content addressing, we might want to define a subsystem that has requirements for an X-compatible implementation.
- For every AND on the client, you have an OR on the server. for every OR on the client, you have an AND on the server.
- Example: You have a protocol named pandora. If every pandora server must implement bitswap AND graphsync, then every pandora client may implement bitswap OR graphsync to ensure any client can talk to any server.
- Content routing systems and other things around the edges get more complicated. e.g. if i say you may use DHT on the client OR indexers. Then you have to support both… or have a bridging system.
- Need to decide if the indexers are a real system or not (multiple entities that you can treat the same way). Most companies would want to only index their own stuff, so if you assume all indexers are indexing everything, you’ll end up not being able to find stuff.
This topic came up because go-ipfs can’t solve every problem. Neither can js-ipfs. Or any monolithic design. We need to redefine the IPFS project & protocol to explicitly make space for new implementations to emerge.
Example: Brave mobile can’t run a full node, battery would die. So they’re taking a new approach, list of public gateways, fetching data and verify locally. Basically a lite ipfs client without libp2p. They may start libp2p amongst a local network.
You could say there are at least 5 IPFS implementations already:
- go-ipfs
- js-ipfs
- estuary
- ipfs elastic provider, which is ipfs optimized for cloud infrastructure
- agregore mobile
May 13
Proposed agenda:
- Welcome @danieln
- IPFS camp
- Proposed “protocol & implementations” track, is that the right theme, what are important discussions, who should chair this track?
- What else?
June 10
Attendees: @mosh @danieln @lidel @discordian @BigLep @adin @Jorropo
Agenda:
- New blog post: Gateways Part 1 is live. Part 2 coming soon.
- IPFS operators manuals
- New Docker example from @tommyhall: go-ipfs-docker-examples/gateway-copilot-backend-service at main · ipfs-shipyard/go-ipfs-docker-examples · GitHub. Essentially one-click deployment of a gateway as a “backend service” (autoscaling at Fargate Spot pricing, each node has a port open so is a full participant in libp2p, 200G ssd for the datastore, 4cores and up to 30G RAM, no LB though - dns based discovery for client-side load balancing).
- Customizing Docker image docs
- PR with initial IPFS Gateway Specs – in review, looking for feedback from stakeholders
- Stewards will be introducing light RFC process for ipfs/specs, initial notes here – good ideas / prior art of pleasant processes welcome
2022-06-10 Actions
-
Archive the #ipfs-gateway-operators channel in IPFS Discord.
-
Add a “Operators” to discuss.ipfs.io: Communities - discuss.ipfs.io that we can point people to: Gateway Operators - discuss.ipfs.io
The basic reason, what I think for this is the name/word ‘IPFS’ which is being used by the further mentioned tools with just minor/no change.
June 24th
- @danieln’s auspinner – a stateless CLI tool to easily pin CAR files to IPFS pinning services. It’s essentially a client for the IPFS Pinning Service API that speaks HTTP and Bitswap.
-
go-ipfs
→kubo
rename in progress - reframe (pluggable routing) pieces are landing in kubo, we will need “DIY content routing” tutorials and examples in near future
July 22
- IPFS Thing followups
- Overall wrapup blog post
- Optional track leader wrapup blog post
- ipfs.io website reorienting
- How to resource?
- Emojibase!
- IPIPs (IPFS Spec/Improvement proposals) looking for more
- IPIP: format for denylists for IPFS Nodes and Gateways proposed by Cloudflare
- docs.ipfs.io: initial changes landed to reflect Kubo rename and push for more implementations
Aug 5
Participants: @lidel @BigLep @danieln @Discordian @mosh @adin @Jorropo
Agenda:
- js-ipfs release & making circuitrelay work (@Discordian)
- Case studies (@mosh @danieln)
- open source program manager - let’s list some example responsibilities (@mosh)
- Ecosystem, awesome-ipfs, and community/projects at master · ipfs/community · GitHub (@danieln)
- (all are welcome to add other items here)
Notes:
-
@BigLep : determine if we need to move the meeting time to accommodate US Pacific.
-
We have moved ipfs.io to ipfs.tech! This means ipfs.io is reserved for gateway usage, and any DNS issues don’t affect the main websites.
-
js-ipfs and circuitrelay:
- the fix is already in via fix: support dns and dnsaddr by achingbrain · Pull Request #253 · multiformats/js-multiaddr · GitHub, just waiting for next release
- next release might be end of next week, @BigLep will confirm and keep us posted
- @BigLep get estimated date for js-ipfs release for getting fix: support dns and dnsaddr by achingbrain · Pull Request #253 · multiformats/js-multiaddr · GitHub out. (Also, find the js-ipfs tracking release.)
-
- IPFS user, @danieln is interviewing them for a case study and also user feedback
- They’re very happy using IPFS as the main storage layer for votes and metadata
- IPNS doesn’t work for them because pinning services mostly don’t support it. Can make it work if you look into the nooks and crannies.
- In parallel with the case study, @danieln will pull together practical tips for IPNS into a guide (eg translating the tradeoffs, publishing into docs, etc.)
-
IPNS
- Adin’s latest thoughts on IPNS - overview and FAQ
- https://routing.delegate.ipfs.io/
- web3.storage has a w3name service they’re rolling out to try and do IPNS pinning… they have to deal with tradeoffs but they have a service here which is both easy to use and nobody has bothered with it. IIRC, they just set all record lifetimes to one year by default and call it a day.
- Proposal: IPNS pinning · Issue #85 · ipfs/pinning-services-api-spec · GitHub
- specs/REFRAME_KNOWN_METHODS.md at main · ipfs/specs · GitHub
- kubo/config.md at master · ipfs/kubo · GitHub
-
Docs are getting a lot of use, let’s invest in them
@mosh : I got feedback that 8am Pacific (15UTC) would make the meeting more Pacific accommodating. Are you ok to update? I can shuffle any EngRes Stewards meetings around to accomodate.
That works, and is still reasonable for European timezones. Just moved the invite.
2022-08-19
(@mosh will be OOO. Who is game to facilitate?)
Participants:
Agenda:
- IPNS Docs
- Redirects
- Integration story?
3.1 Lite client for IPFS - IPFS Event
Notes:
IPNS Docs
- This is an area that @danieln will be focusing on week of 2022-08-22.
- What does it mean to be using DHT, PubSub
- High level stuff has been in launchpad PR: Mar ipns curriculum by mrodriguez3313 · Pull Request #188 · protocol/launchpad · GitHub
- Plan is to copy and expand to docs.ipfs.tech
- Discussion around *.storage’s naming solution (w3name). Our docs should cover the kind of details that w3name is glossing over. We don’t want to hide over the security details/implications.
Meta: launchpad docs.
- Sometimes what is copied is going to be out of date. Ideally should be linked to canonical source and remove from launchpad docs.
Redirects
- Lidel: I would add ongoing bikeshed about _redirects: IPIP: Gateway _redirects File by justincjohnson · Pull Request #290 · ipfs/specs · GitHub (link Web Gateway support for _redirects file - already public)
- There is concern about how this translates to native implementations (e.g., Brave Mobile and how it won’t use Kubo)
- Will let marinate while Lidel is out
- Positive here is that we have real users and usecases on this
Integrations
- Needing more input on languages, hardware, sandboxing of network requests
- Want a doc that says “this is what the Chrome peopleare willing to tolerate, this is what the curl people are willing to tolerate”
- ONe thing have learned: there won’t be one language or implementation that will rule them all. There isn’t a world of write in C and use everywhere
- Have success when folks in Ecosystem go and talk with the communities, ask what they want, etc. Wanting to understand their workflows, if there are internal champions, how they do testing, etc. This is a slow very-attentive approach.
- Usecase: Gateway range request. Input: car, path, and range request and returns bytes.
- It may be useful for Mark to report back on who he’s spoken with, what he’s hearing, etc.
- UnixFS
- EngRes focus on specs
- Outercore understands the needs and the mechanisms for working with parties
- We then meet as an IPFS community on how to get this delivered.
2022-09-02
Participants:
Agenda:
- Snapshot case study is live on Docs (h/t @danieln)
- IPFS Camp (@mosh)
- Ops updates
- Content planning
- Tell me all your other hopes & dreams for Camp
- Facilitating this sync (@mosh)
- Proposal to rotate every month or quarter (alternating between Stewards and Outercore)
- Jourdan, virtual events producer at PL, is proposing bringing back a regular quarterly virtual community event. May have already spoken with some people here already.
- IPNS docs PR Improve IPNS docs by 2color · Pull Request #1258 · ipfs/ipfs-docs · GitHub @danieln
- Community calendar (Community Calendar - options other than Google Cal?) @danieln
- Clarify DHT in js-ipfs PR docs: clarify state of DHT in js-ipfs by 2color · Pull Request #4181 · ipfs/js-ipfs · GitHub
- Other?
Notes:
- Meta
- Next time use something like hackmd to do collaborative editing
- @BigLep Invite Reid to this sync
- Usecases: please share if there are other interesting IPFS usecases like snapshot
- IPNS Docs
- @lidel will look at this while also doing IPNS specs work, thinking about this holistically (Update IPNS specification · Issue #314 · ipfs/specs · GitHub)
- @lidel thought: probably don’t need to over-document all the configuration options and flags.
- State of js-ipfs union documentation
- Community Calendar
- Community Calendar - options other than Google Cal? - #2 by BigLep
- It’s not easy to just opt into single a specific event
- Currently, there’s too much clutter when subscribing
- https://lu.ma/ is already being adopted by Fission
- Ideally we’d show all the different events and let users choose
- @danieln will reach out to Yuni,Andrew Woo and even Luma to ask about better Google Calendar integration. Specifically, if we can have Luma export and update events to the shared Google Calendar.
- IPFS Camp
- It is happening Oct 28-30
- There are lots of tracks
- Things we hope to see happen
- Wish there was less FOMO - missing out on the shared experience.
- there will be an everyone-togrther kickoff session, 2-3 hours on the first day
- Want to go deeper into the use cases and apps built on top of IPFS
- Specs
-
@lidel have them in better shape
- UnixFS
- IPNS
- Should be part of the implementer’s track
- This will take stewards’ time
-
@lidel have them in better shape
- Education tracks
- 101 - Maybe @discordian?
- 201 - @dnorman: designing decentralized applications
- 4xx - Optimize in production for performance/scale - ideally someone who is operating IPFS in production at scale. Mosh will check with Dietrich.
- Virtual
- Some options to dial in and give virtual talks
Quick update on the community calendar and Luma:
2022-09-16
Participants
@mosh @lidel @BigLep @Jorropo @reid @taylor @danieln
Agenda
- IPFS Camp
- js-ipfs examples repo
- Luma for the community calendar
- See Boris’ reply Community Calendar - options other than Google Cal? - #7 by boris
- Will require a shared account
- Plausible analytics experiment
- docs are public: Plausible · docs.ipfs.tech
- blog is private; Daniel can give access
- Verifying GitHub Org
Notes
-
IPFS Camp
- Goals:
- Greatly increase the number of people who can significantly contribute to the project. We want folks who can help with content routing, CID versions, etc. so they can build great dev tools, etc.
- Build a community that is inspired to build on IPFS (DeSci)
- Fun (memorable, relationship building)
- Scaling our efforts through better specs and documentation.
- Lidel would be open to give a revised version of the IPIP talk.
- How could to Stewards help given that we have about a month?
- Is it more about content creation? better specs?
- Mosh: The community is more blocked by knowledge than software
- Daniel: if you’re building applications, what do you need to know,
- Goals:
-
- Why is it in a separate github org?
- There is a monorepo but also repo for each example and this prevents pollution.
- example-per-repo is fork-and-go pattern → low friction dx for both usage and contribution. Fork-n-Go
- Good thing: there is a CI in js-ipfs to ensure examples pass
- Ownership:
- js-ipfs maintainer area of responsibility: make sure not breaking examples or updating them if do break
- for triaging incoming examples, need someone who is deciding whether it’s relevant/useful
- Decision: devrel will own it
- Practicalities
- Org readme
- Ask #ipdx to setup github-mgmt
- Example utility:
- Not all of them are useful
- Makes sense to go through them one by one
- Problem:
- many don’t know they exist
- We need to get more links.
- many don’t know they exist
- Steve: Meta: should we get Alex to this meeting?
- Why is it in a separate github org?
-
IPNS Spec
- feat: update IPNS specification by lidel · Pull Request #319 · ipfs/specs · GitHub
- More eyes on the above are welcome. We actually have docs specifying how it works.
- Libraries
- js-ipns is used in js-ipfs
- go-ipns is used in kubo
- Both can be used as standalone library.
-
Verify domains for IPFS GitHub org!
Action items
- @Jorropo : think about applied UnixFS talk
- Engres folks planning on attending should RSVP to the event so that we could get a head count
- @daniel ask #ipdx to set up the Github management (similar to GitHub - ipfs/github-mgmt) for ipfs-examples
- @danieln Ask Russel, Lidel, Alex to help with the cleaning of the examples.
2022-09-29
Participants
- Reid
- Mosh
- Lidel
- Jorropo
- Daniel
- Tmo
IPFS Stewards <> Advocates sync notes 30.9.2022
Notes
-
Docs new topics requests
- Indexers: [Content Request] Add indexing pointer/documentation to IPFS website under peer-to-peer-sharing · Issue #1296 · ipfs/ipfs-docs · GitHub
- WebTransport to connect browser nodes & kubo nodes: Document how to connect browser nodes with Kubo nodes using WebTransport · Issue #1286 · ipfs/ipfs-docs · GitHub
- Priorities for docs team
- getting organised as a team
-
Redirects!
- The first example of an IPIP ratified, implemented, and now documented
- Redirects and custom 404s | IPFS Docs
-
IPNS
- Added backwards compatibility to the IPNS spec
- In practice, it’s been true so far - but this ensures for the future
- Latest Kubo and JS-IPFS nodes only look at the v2 signature
-
Kubo releases happening in “tick-tock” pattern
- Alternate user-facing features & bugfixes/refinements
- Kubo 0.16.0-rc1 ready for testing
-
Outreachly
- We’ve been accepted to the program.
-
IPFS Camp
- We have 16 tracks including two new ones on DeSci and a second operator track focused on gateways
-
ipfs-docs: Lidel published some notes for browser vendors: /how-to/detect-ipfs-on-web
-
Jorropo’s UnixFS talk
- They’re working on UnixFS light
- Being able to decouple UnixFS from the transport layer.
-
docs.ipfs.tech:
2022-10-14
Participants
- Reid
- Mosh
- Lidel
- Jorropo
- Daniel
- Discordian
- Steve
- Elliot
Discussion topics
-
@discordian How to advance Issues connecting from IPFS nodes over WSS · Issue #18 · libp2p/go-libp2p-relay-daemon · GitHub
- For “Create a Simple Chat App” we heavily utilize CircuitRelayV1, since it was removed from Kubo, we looked at using libp2p-relay-daemon, but haven’t been able to connect to it from the JS side in browser (or desktop).
- It sees we have a bug related to Secure websockets in go-libp2p that touches TLS termination
- One bug related to WS that is present in Kubo 0.16 fix: websocket transport should send host header by thibmeu · Pull Request #1829 · libp2p/go-libp2p · GitHub
- WebTransport is now available in js-ipfs. It will likely be released as part of the upcoming js-libp2p release this coming monday. Example (GitHub - libp2p/js-libp2p-webtransport: WebTranport module that libp2p uses and that implements the interface-transport spec)
-
@biglep: figure out what we need to do get proper regression tests in place for go-libp2p and Kubo so that CI breaks when we’re broken like this.
- For “Create a Simple Chat App” we heavily utilize CircuitRelayV1, since it was removed from Kubo, we looked at using libp2p-relay-daemon, but haven’t been able to connect to it from the JS side in browser (or desktop).
-
@danieln IPFS Roadmap & Advocates plan for Q4
- Additional notes from Mosh based on conversations with Daniel, Biglep, Lidel, Dietrich, Reid, JB, Molly
- Reposition IPFS as a production-grade solution for key problems with building on today’s web, vs. a cool thing for hackers to try. Improve our internal understanding, & then communication, of what 2-4 use cases IPFS is great at solving, then double down on features, messaging, and devrel for those.
- Most devs want end-to-end example apps that showcase the power & capabilities of IPFS (docs & blogs today often focus on 1 feature at a time, which is harder to translate into practice). 2 examples are coming soon
- Accelerator & seed-stage teams need stronger & more personal technical guidance for making tradeoffs & decisions.
- On-ramps for learning & contributing are hard to navigate
- Everything should be slightly uncomfortably open (example: roadmap docs themselves)
- Specs feel abandoned. IPIP is a good first step.
- Docs has accumulated a lot of duplicate material
- Smaller-contributions: lacking contributor guides, good first issues, etc.
- “Even if we invite people to the restaurant, there are no chairs.”
- Traffic on our owned properties is very, very low – a good IPFS blog post gets 300 views. Need to take this show on the road, to conferences beyond Web3, popular programming podcasts, etc.
- What are they key quesitons we want to answer?
- Getting insight on IPFS reposition around production scale / converge on 2-4 killer use cases
- Pull out what the details are and what are the gaps
- Understanding others experience contributing to the project
- Personas
- Contributors
- Operators
- Consumers / app builders on top
- Altruists - fans of the protocol
- Another option: going to the other tracks and listening what users are saying like “DeSci”
- Getting insight on IPFS reposition around production scale / converge on 2-4 killer use cases
- Analytics
-
@Jorropo unixfs talk at IPFS Camp
- Looking for a track to speak at
- Planning to discuss light IPFS clients & UnixFS
- Would need about a 15 minute talk duration
2022-11-18
Attendees
Notes
- (Mosh) Prelim dates for 2023 events
- IPFS Thing likely March 27-31 - working on details with 4 venue options
- IPFS Camp co-scheduled with Lab Week, last week of September
- (Steve) Congrats on IPFS Camp!
- Lots of wins! IPFS 201 track, libp2p day, community call, etc. Great team effort!
- (Daniel) | IPFS Website overhaul
- (Lidel suggestion) add a section like https://user-images.githubusercontent.com/3689720/122604033-4e4d3100-d043-11eb-83ab-524760d5acc6.png (seems its mostly implemented, but we dont embedd yet? Externally embeddable view · Issue #38 · ipfs/ecosystem-directory · GitHub)
- (Daniel) | demo ecosystem page automation improvements
- Steve ideas:
- Awesome - thank you!
- ok to add a readme to GitHub - ipfs-shipyard/ecosystem-dashboard: A dashboard for monitoring the ecosystem around an open source project. about the relationship with IPFS Awesome List?
- Maybe update Rebooting the IPFS Awesome List ?
- Steve ideas:
- (Daniel) | demo ipfs.fyi shortlinks
- (Daniel) | IPFS Tweet suggestions form IPFS Twitter Calendar - content suggestion · NotionForms
- This is for IPFS Twitter account tweets for now (not blog posts, youtube)
- (Daniel) | IPFS Advocates Q4 goals
- (Steve) Surfacing working groups that are propping up
- Move the Bytes WG
- Content Routing WG
- (Mosh) Spoke with Iryna from Bacalhau earlier this week, she will also add seeds/pointers to Bacalhau in Forum and Docs.
- (Steve) FYI: changes likely coming to Hydras (dialing them down) and defaulting CID contact integration into Kubo
- (Steve) Any blog entries need help with getting over the line?
- ipfs.io and ipfs.tech decoupling
- Spam/maleware on IPFS
- Attackers Using IPFS for Distributed, Bulletproof Malware Hosting | SecurityWeek.Com
- Revert "feat: add ipfs.pinksheep.whizzzkid.dev" by whizzzkid · Pull Request #331 · ipfs/public-gateway-checker · GitHub
- Relevant for anyone running a gateway
- In the long run, we want to have some mechanism
- Both organisational challenge and technical one
- The technical challenge will be addressed by the spec
IPFS Stewards <> Advocates sync 25.11.2022
Participants
Discussion topics
- new IPFS examples & connectivity challenges
- Two avenues of exploration:
- native app with less constraints (Ryan’s work with Tauri)
- Browser apps utilising IPFS (Daniel)
- Adapting GitHub - olizilla/ipfs-get: Get and verify a file by CID from an IPFS gateway over http to work with the CAR gateway spec
- OrbitDB example - how it mutability achieved
- GitHub - peer-base/peer-pad: 📝 Online editor providing collaborative editing in really real-time using CRDTs and IPFS.
- CRDTs and append only logs
- Two avenues of exploration:
- js-ipfs communication
- Discussion
- Update docs and Github repo