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→kuborename 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