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 Utilities application #1127

Closed
wants to merge 4 commits into from

Conversation

dobschal
Copy link
Contributor

Project Abstract

This application is about the utilities of Substrate within IPFS.

Main part of the project is the implementation of a pallet to integrate IPFS into Substrate.

Grant level

  • Level 1: Up to $10,000, 2 approvals
  • Level 2: Up to $30,000, 3 approvals
  • Level 3: Unlimited, 5 approvals (for >$100k: Web3 Foundation Council approval)

Application Checklist

  • The application template has been copied and aptly renamed (project_name.md).
  • I have read the application guidelines.
  • A BTC, Ethereum (USDT/USDC/DAI) or Polkadot/Kusama (aUSD) address for the payment of the milestones is provided inside the application.
  • The software delivered for this grant will be released under an open-source license specified in the application.
  • The initial PR contains only one commit (squash and force-push if needed).
  • The grant will only be announced once the first milestone has been accepted (see the announcement guidelines).
  • I prefer the discussion of this application to take place in a private Element/Matrix channel. My username is: @_______:matrix.org (change the homeserver if you use a different one)

@Noc2 Noc2 self-assigned this Aug 18, 2022
Copy link
Collaborator

@Noc2 Noc2 left a comment

Choose a reason for hiding this comment

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

Thanks for the application. Are you also aware of the following project that worked/work on this?:

And do you have an incentive to maintain it? I would still be happy to jump on a call. See my email.

@Noc2 Noc2 added the changes requested The team needs to clarify a few things first. label Aug 18, 2022
@Noc2
Copy link
Collaborator

Noc2 commented Aug 26, 2022

Thanks again for the nice call. Feel free to ping me here, once you updated the application.

@dobschal
Copy link
Contributor Author

Hey @Noc2,
thanks for the call. I updated the application. Could you please have a look?

@dobschal dobschal requested a review from Noc2 August 28, 2022 16:30
Noc2
Noc2 previously approved these changes Aug 29, 2022
Copy link
Collaborator

@Noc2 Noc2 left a comment

Choose a reason for hiding this comment

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

Thanks for the update. I’m generally happy to go ahead with it and mark it as ready for review. But maybe you can also add a little bit more technical details to the specification of the deliveries, like the programming language. Also, a medium article or something similar as an additional delivery of milestone 2 would be nice.

@Noc2 Noc2 added ready for review The project is ready to be reviewed by the committee members. and removed changes requested The team needs to clarify a few things first. labels Aug 29, 2022
Copy link
Contributor

@alxs alxs left a comment

Choose a reason for hiding this comment

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

Hey @dobschal. Thank you for the application. It's true that offchain::ipfs is no longer maintained and I'm not sure there's a fork that currently is. However, your application currently lacks significant details and it's unclear what functionality you will implement. In milestone 1 you describe a "pallet implementation, that allow bytes to uploads"? I suppose you don't mean uploading the files on-chain, so what's the purpose of this pallet? You mention in the overview that "it will need much more affairs to the validation process on the chain side, if the developer wants to make sure and trust the input CID will point to the corresponding file on the chain", but then you don't describe any such functionality. I would ask you to please be much more explicit with the specification, i.e. please describe what API the pallet and OCW will provide, what IPFS functionality the latter will support and any additional features. Here's the original offchain::ipfs grant, for comparison: https://github.com/w3f/General-Grants-Program/blob/master/grants/speculative/offchain_ipfs.md

I'm also concerned by your labelling of this as a POC. For the amount you're requesting, I would certainly expect a feature-complete implementation. Besides, I'm curious to hear why you don't want to base your project on Equilibrium's original offchain::ipfs work. They did great work and the only problem with it that you mention is that it is unmaintained. Substrate has changed a lot since then, so this is probably still a decent amount of effort, but I don't see why you wouldn't want to reuse it or update it rather than starting from scratch.

Lastly, could you add deliverables 0d-e back to the application? These are mandatory as per the application template.

@dobschal
Copy link
Contributor Author

dobschal commented Sep 6, 2022

Hey @alxs,
thanks for your feedback. We updated the application to contain more details about the features we want to implement. Also added the deliverables 0d-e section. As we need that implementation in other projects, it absolutely makes sense to not call it PoC, so removed that too.

I hope everything looks fine now, if not please let me know :)

Looking forward to your answer.

@dobschal dobschal requested review from Noc2 and alxs and removed request for alxs and Noc2 September 6, 2022 09:22
@alxs
Copy link
Contributor

alxs commented Sep 9, 2022

Thank you for the changes @dobschal. At this point, I'm afraid I won't accept the proposal. You have only made minimal changes to it after my comment and have left practically all of my questions unanswered or unaddressed.

In my opinion, the price is far too high for the specification provided, and even though you've made a significant change in scope deciding to "reuse as much as possible the existing developed approach from offchain::ipfs", you didn't change the price at all. Furthermore, you haven't provided any justification for either not planning to reuse said project at first, or for doing so now.

The specification you provide for the deliverables also contains a number of inconsistencies, such as:

Accepting bytes as an input parameter of extrinsic

In this case, the file will be stored in the block, which would be prohibitively expensive. Nevertheless I think this was also the case in the existing implementation.

| 2. | Implement client | The web3 client app can read data from file, call extrinsic and upload the content in bytes. |

If I'm not mistaken, this can be just a plain website that can read a file and submit the extrinsic, which would take a few minutes to implement.

| 3. | Verification | Verify the file uploaded and store the CID on chain. |

This is not a deliverable in itself, but just a detail of the logic in the pallet.

| 0d. | Code | We will provide the whole code in a public GitHub repository. |

This is a requirement for all deliverables. The actual deliverable 0d. you replaced, the Dockerfile, is mandatory as I pointed out.

| 2. | Implement Cache | Implement a file cache, that returns the file if upload to IPFS is still in progress. |

"Uploading to IPFS" should be near-instantaneous, since there isn't really an "IPFS network" you can upload to. IPFS is a peer-to-peer network, not a cloud storage system. All you can basically do is require validators to run an IPFS node along Substrate and pin every file request they process from e.g. an extrinsic. They might as well add it to IPFS instead of caching it.


You also only mention the offchain worker on one occasion and never describe its functionality, whereas it is where the bulk of the work would take place and hence the main deliverable. All in all, I would be comfortable approving a level 2 grant for the current scope, since you seem motivated. However, if you want to apply at the current price level, I would ask you to please spend more time researching the project and then rework the application from the ground up. At that point, I will be happy to take another look at it.

@alxs
Copy link
Contributor

alxs commented Sep 23, 2022

@dobschal since your proposal has now been in the review state for 2 weeks without any comments from other members of the committee, I'll go ahead and close it. This application may not have succeeded in swaying the committee, but don't be discouraged—you're always welcome to apply again with a revised application or for a different project. Alternatively, you may want to check out other sources of funding in the ecosystem.

@alxs alxs closed this Sep 23, 2022
@dobschal dobschal mentioned this pull request Sep 27, 2022
9 tasks
@dobschal
Copy link
Contributor Author

Hey @alxs,
thanks for your messages.
We took some more time to check the existing offchain::ipfs project and adjusted our application accordingly:
#1187

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
ready for review The project is ready to be reviewed by the committee members.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants