IPFS Nodes for Pinning .eth Websites

Summary

It seems that most .eth websites are pinned to IPFS via commercial pinning services. These services are fantastic for uploading to IPFS, but we should not rely on them as the primary host of .eth websites. Otherwise, we’re back at step 1 (centralized website hosts). To further decentralize the stack, the ENS DAO should have its own IPFS nodes that are dedicated to pinning .eth website content.

Background

During the last .eth Websites Subgroup meeting, we heard from several community members who are working on apps that allow ENS users to easily create a decentralized website and attach it to their ENS name.

Apologies if I’m missing any, but we heard from:

In our conversations, we realized that all of these services use Pinata’s API to upload/pin files to IPFS. This works perfectly as an on-ramp, but feels like a loss for decentralization. Content on IPFS is only accessible for as long it is pinned, so relying on a single commercial service to be the sole pinner of all .eth websites is not ideal in the long term.

How to further decentralize .eth websites

To reduce our reliance on commercial pinning services, I propose that the DAO should host IPFS nodes dedicated to pinning .eth websites. It does not have to be as complicated as Pinata by any means, and I actually think this works best if it operates in the background without any need to opt-in.

At least to start, there is no need to build alternative solutions to uploading to IPFS. The current solutions for that are sufficient. My concern is more about long-term content availability.

In practice, this looks like ENS hosting a few lightweight servers around the world that will be IPFS nodes. The esteroids team has already built a solution that listens to the ENS Public Resolver contract for setContenthash function calls, which @neiman confirmed we would be able to use for this pinning service as well. There are currently some limitations to this, namely added complexity with IPNS since that doesn’t require a new contract call to update website content, but that’s also being worked on.

The average size of a dWebsite from the aforementioned projects is less than 20kb, which means an IPFS node with a 100GB disk size could pin millions of websites. Clearly, the files generated by these projects are smaller than most websites as it’s a single page with minimal content, but the point is that we don’t need super powerful servers to support this initiative.

Next steps

This post is mostly a temp check to see if the DAO would be interested in supporting the effort to further decentralize .eth websites. If there is interest, the next steps would be to regroup with members of the subgroup who would like to contribute to this proposal so we can sort out logistics (how many servers should we have, who manages them, where are they located, how do we limit abuse with large file sizes, etc.), then come back to the DAO with a request for funding.

Would love to hear any feedback!

21 Likes

15 likes so far, not bad at all.

I, of course, think it’s about time we had such a proposal.

There are two kinds of services I can think of.

  1. The simple one that Greg described.

    In this service:

    • users create a CID alone (either with a service or on their private machine/server).
    • They make sure it’s available in the IPFS network even for a short time (you can even do it from your laptop, I did that often).
    • They set the ‘contenthash’ of their ENS name to this CID.
    • The service will pick it up automatically from the ENS record and pin it.

    In this case, we should also have a GUI where people can check if their content is pinned already.

  2. A pinning service where people can Sign-In with Ethereum, and if they got an ENS name, they can pin content to it.

There are plenty of other nuances. Should we pin only HTML content? What’s the max size? etc. But that’s something for the SG to discsus if the proposal gets good feedback.

6 Likes

I didn’t see any mention of IPNS pinning. There is already expertise there from dWebServices.xyz. Any particular reason to not include it?

Saw it :stuck_out_tongue:

lol.

dwebservices.xyz is an invitation-based IPNS service that we run for the Esteroids community. It’s a bit different than what’s proposed here, though could be extended to it.

3 Likes

I think it is a very useful addition. It takes the whole thing to another level with IPNS

2 Likes

At first glance I thought this would be a cool idea. However I don’t think the ENS DAO running IPFS nodes is smart long term. Inevitably someone is going to post some vulgar stuff, IP/brand content, or even malicious websites. We assume everyone will be good actors, but as we’ve learned in web3, there are bad actors too.

The alternative to IPFS is Arweave. Don’t need to worry about pinning there, and the content records for ENS names support Arweave already. Just my two cents. I like the end goal, just don’t think it’s something the ENS DAO should offer or take on for a variety of reasons.

4 Likes

Totally valid points and I appreciate your reply!

I have no experience with Arweave so can’t comment much on the feasibility of that. In terms of impact, this Dune Analytics query shows that 17k+ ENS names use IPFS in the contenthash record while less than 50 use Arweave. Naturally, it feels like an Arweave solution would be somewhat less impactful, at least in the short term.

Out of curiosity, is your hesitation on the legal front (the DAO can get in trouble for hosting other brands’ IP) or more ethical (the DAO should not be supporting the distribution of malicious content)?

If on the legal front: I’m certainly not a lawyer by any means, but feel pretty confident that there’s some sketchy content on Pinata’s servers, for example, which they seem to get around by including notices such as the following in their Terms & Conditions:

“Our Service allows you to post, link, store, share and otherwise make available certain information, text, graphics, videos, or other material (“Content”). You are responsible for the Content that you post on or through the Service, including its legality, reliability, and appropriateness.”

2 Likes

I like the idea of the ENS DAO facilitating pinning of content - but I don’t think the DAO should operate it itself. How about an RFP for service providers to run something for ENS users, similar to the way the SIWE IdP is being handled?

9 Likes

I was going to mention Arweave too. IPNS and Arweave should both be included in the RFP.

3 Likes

This makes sense. I’ll take another look at posts around the SIWE IdP project and aim for something similar after regrouping with the .eth Website Subgroup on the next bi-weekly call. Thanks!

5 Likes

Great idea.

What can be done regarding Arweave? As @zadok7 said, you “don’t need to worry about pinning there [Arweave]”

2 Likes

Love this @gregskril.

A little service to keep IPNS hash table up do date / entries alive would be incredibly helpful although i’m not sure whether that requires the private keys of the records.

Maybe sth along those lines could be added to whatever this would end up being, as on paper IPNS is vastly superior for the simple man who wants to update their personal site without paying gas every time.

At the same time, it could track historical updates to it and even host old IPFS entries published via the IPNS hash.

1 Like

You simply pay once and the data stays online forever unless you delete it. It is like a simple upload, which makes it so easy to use. In time, Arweave may leave IPFS redundant, in my subjective opinion.

Indeed! Summon the RFP draftooor

we already got such a thing: dwebservices.xyz.

3 Likes

Update: I talked to @neiman from the esteroids team today, and we’re aiming to schedule a call with the .eth Website Subgroup next week. I will post the details for that call here once it’s figured out. In the meantime, we’re gathering some more details for the RFP. I’ll also aim to share a working document with that info before the call next week.

3 Likes

Agree, in the interest of decentralization we should include any viable asset serving protocols, which include IPFS, Arweave, and hopefully others in the future. Competition for ENS market share will hopefully lead to the parent orgs contributing development resources to browser & OS level resolution for .eth websites.

It would be amazing if we could develop a convention to pay for hosting 100% on chain. I think hosting may be the last remaining piece for full stack decentralization. Having to coordinate with some organization off chain for hosting, I think is a big point of weakness.

We’ve been using eth.limo for pinning, and they’ve been great.

1 Like

Well, IPFS/Arweave is not on-chain. But you can set your avatar record to a straight data URI though I think. If it’s SVG then hopefully won’t be huge, but certainly that will cost more gas to set

2 Likes

Do you mean literally on-chain? As in pay-once, it’s stored forever? Or more something like Filecoin/Sia – only for Ethereum? Blockchains that use cryptography to make a proof-of-storage, but the storage is limited in time/bandwidth?

I think Swarm tried to do that in the past but I haven’t heard about them for at least two years now.

There is going to be a .eth websites SG call to discuss the IPFS Pinning service this Tuesday.

What:.eth websites SG call, ENS DAO sponsored IPFS pinning services
When: Tuesday, 24 May 2022, 16:00 UTC
Link: Video call link: https://meet.google.com/hqv-jeuw-odb

Everyone is invited!