Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add IPFS "Mainnet" to the glossary #1910

Merged
merged 4 commits into from
Aug 19, 2024
Merged

Add IPFS "Mainnet" to the glossary #1910

merged 4 commits into from
Aug 19, 2024

Conversation

2color
Copy link
Member

@2color 2color commented Aug 16, 2024

In this PR

  • feat: add Mainnet to the glossary
  • feat: add simpler explanation for CAR

What issue(s) does this address?

  • IPFS Mainnet is a useful meme evident by the organic adoption of the term
  • It's very useful for distinguishing between Iroh, experimental implementations and "Mainnet"

Checklist before merging

  • Passing all required checks (The beta Check Markdown links for modified files check is not required)

@@ -298,6 +298,10 @@ In IPFS and [IPLD](#ipld), a _link_ usually means a pointer to some [CID](#cid).

## M

### IPFS Mainnet

IPFS Mainnet is a term used to describe the default or "main" network that many IPFS implementations connect to. Mainnet is a subset of all the [IPFS implementations](https://specs.ipfs.tech/architecture/principles/#ipfs-implementation-requirements) and typically includes implementations that connect to the [Amino DHT](#amino) and support [Bitswap](#bitswap), [UnixFS](#unixfs), and the [IPFS Gateway](#gateway). This has mostly been assumed for the IPFS network and is not emphasized for anyone other than protocol experts. Nonetheless, IPFS Mainnet is a useful distinction in a world of many [IPFS implementations](../concepts/implementations.md) with varying degrees of interoperability.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For me, "mainnet" is less about implementations than configs, i.e. a private-network kubo is not on mainnet, but a default-config kubo puts everything it ipfs adds onto mainnet, if you catch my drift. I could be wrong, tho!

Suggested change
IPFS Mainnet is a term used to describe the default or "main" network that many IPFS implementations connect to. Mainnet is a subset of all the [IPFS implementations](https://specs.ipfs.tech/architecture/principles/#ipfs-implementation-requirements) and typically includes implementations that connect to the [Amino DHT](#amino) and support [Bitswap](#bitswap), [UnixFS](#unixfs), and the [IPFS Gateway](#gateway). This has mostly been assumed for the IPFS network and is not emphasized for anyone other than protocol experts. Nonetheless, IPFS Mainnet is a useful distinction in a world of many [IPFS implementations](../concepts/implementations.md) with varying degrees of interoperability.
IPFS Mainnet is a term used to describe the default or "main" network that most IPFS implementations connect to by default configuration.
Most [IPFS implementations](https://specs.ipfs.tech/architecture/principles/#ipfs-implementation-requirements) were designed to work with mainnet, but many can be configured instead to use private networks (i.e. only sync with manually allowlisted peers) or only serve content generated locally.
Mainnet as a network and data substrate refers to the [Amino DHT](#amino). comprised of nodes that synchronize their contents using the [Bitswap](#bitswap) sync protocol;
as all data is, by default, converted to [UnixFS](#unixfs) at ingress by these implementations, and [IPFS Gateways](#gateway) are configured to assume [UnixFS](#unixfs)-only data, other encodings are sometimes considered incompatible with or problematic for use with bitswap, and as such, not "Mainnet-compatible".
Most IPFS documentation is written assuming all Mainnet-compatible configurations and network topology, because straying from these defaults can break many assumptions of the system and is recommended only for advanced applications.
For this reason, compatibility with IPFS Mainnet is often referred to as "full IPFS compatibility", and many [IPFS implementations](../concepts/implementations.md) require additional care to interoperate at the bitswap-sync, DHT-advertising, or CID-fetching layers.

(totally just winging it, feel free to take or leave any of that, but this would be my "interop maxi"/"roast my docs" take on the full meaning of Mainnet!)

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've integrated some of the information from your suggestion. For consistency with other glossary terms, I'm keeping this brief. If you feel it's necessary to add all the additional information, I would create a new page dedicated to this topic. But I'd consider that out of scope for this PR.

Copy link
Collaborator

@bumblefudge bumblefudge left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approving because as-is it's better than status quo, but also left some additional content if you have appetite for further wordsmithing and politicizing 😄

@bumblefudge
Copy link
Collaborator

bumblefudge commented Aug 16, 2024

also I feel like @bmann deserves coining credit at least in the git-trail, if not on the actual docs website? Or we could add a little introductory clause like, `First introduced by Boris Mann on the Fission blog, the term Mainnet"...

@2color 2color merged commit 965ef30 into main Aug 19, 2024
5 checks passed
@2color 2color deleted the add-mainnet branch August 19, 2024 13:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants