We’re piloting a biweekly sync between IPFS stewards and advocates. Let’s use this thread for meeting recaps and related conversations.
@adin @lidel @achingbrain @BigLep @mosh @dietrich @Jorropo
- Eg I want to create an efficient index
- Eg I want to traverse these blocks, how do I do that
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
- 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?
- For a lot of people, IPFS = gateways, = UnixFS, != IPLD… smush everything into a directory, or just let the gateways support these things.
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.
- Monthly Developers Report - 2022 March - Google Slides
- Fabric.ai needs and conversation: IPFS Data Indexing, Searching and Linking - HackMD
- April 15
- As a group, try to create the primer on IPFS for files vs. IPFS/IPLD for data structures.
- Input on 2 grant proposals for IPNS pinning service and emergent reputation
- Learn about IPLD / DAG-JSON support on gateways
- What IPFS means
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.
The definition of IPFS is blurry. Here are some things that various people think IPFS is:
- the ipfs.io gateway
- 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:
- Welcome @danieln
- IPFS camp
- Proposed “protocol & implementations” track, is that the right theme, what are important discussions, who should chair this track?
- What else?