IPFS stewards <> advocates sync

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:

Next time:

  • April 15
  • As a group, try to create the primer on IPFS for files vs. IPFS/IPLD for data structures.

April 29

Attendees: @lidel @adin @mosh

Proposed agenda:


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:

1 Like

May 13

Proposed agenda:

  • Welcome @danieln :slight_smile:
  • 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


1 Like

2022-06-10 Actions

  1. :white_check_mark: Archive the #ipfs-gateway-operators channel in IPFS Discord.
  2. :white_check_mark: 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-ipfskubo 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


Aug 5

Participants: @lidel @BigLep @danieln @Discordian @mosh @adin @Jorropo




@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.

Aug 19

(@mosh will be OOO. Who is game to facilitate?)