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

Iris followup proposal #958

Merged
merged 1 commit into from
Jun 2, 2022
Merged

Iris followup proposal #958

merged 1 commit into from
Jun 2, 2022

Conversation

driemworks
Copy link
Contributor

Project Abstract

Please provide a brief description of your project here summarising key points (1-2 paragraphs).

The intention of this follow-up grant is to implement several features that enable Iris to be a secure, social, and highly-available storage network without compromising decentralization. In our system, data owners associate their data with any number of 'data spaces' which each have specific rule sets and inclusion policies. We also lay the foundations for our encryption scheme (we will use a threshold encryption mechanism, though the implementation of this is out of scope for this proposal) by introducing the concept of the proxy node which will act as the linchpin for re-encryption in the future, as well as allows data owners and data consumers to run light clients (as they no longer are required to run the full node and add data to the embedded IPFS node). We also introduce a game-theoretic framework for ensuring replication and availability of data within the storage layer of Iris. Additionally we introduce "composable access rules", which allow data owners to specify rules which are implicitly enforced when consumers access their data. Lastly, we will build a javascript SDK to allow user interfaces for dapps built on Iris to easily build applications and interface with Iris.

This proposal makes several improvements on top of the existing Iris blockchain, specifically in terms of security, extensibility, data organiziation, and data ingestion/ejection.

To summarize, in the following we propose:

  • the introduction of "data spaces"
  • the implementation of "composable access rules" to apply custom business logic to data
  • the introduction of "proxy nodes" that enable threshold encryption within the network
  • the implementation of an availability-encouraging storage system
  • a javascript SDK to allow dapp developers to easily build front ends for smart contracts on Iris

For further details, we direct the reader to view our whitepaper draft here: https://www.idealabs.network/docs

If your application is a follow-up to a previous grant, please mention which one in the first line of the abstract and include a link to previous pull requests if applicable.

This is a follow-up grant to Iris:

For which grant level are you applying?

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

Application Checklist

  • The application template has been copied, renamed ( project_name.md) and updated.
  • I have read and understood the FAQs, application guidelines and announcement guidelines.
  • A BTC or Ethereum (DAI/USDT) address for the payment of the milestones is provided inside the application.
  • I have read and acknowledge the terms and conditions.
  • 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.
  • I prefer the discussion of this application to be in a private Element/Matrix channel. My username is: ````

How Did You Hear About our grants program?

  • Social Media
  • Hackathon
  • Personal Recommendation
  • Substrate Builders Program
  • Investor/VC
  • Online Search
  • Other: _______

@Noc2 Noc2 requested a review from ashlink11 May 19, 2022 11:59
@ashlink11
Copy link
Contributor

Hi @Noc2 and grants team,

I read through this application abstract and evaluated their M2 and M3 for their previous Iris grant. I am requesting time to review their whitepaper. Or is there someone from W3F who is an expert on whitepapers? I’ve never read through an entire one, only parts. My math is not that advanced and they mention game theory for their existing substrate ipfs node (called Iris). Either way, happy to learn or happy to have help.

Hi @driemworks and Ideal Labs team,

Potential topics for your pitch call:
* Teach the white paper
* threshold encryption mechanism
* I would love on your pitch call if you would teach us about the Iris codebase and Rust architecture/coding style
* Would love to know if you’re using traits and making things generic
* Proper weight functions
* Proxy node
* The JavaScript SDK

For your SDK, I suggest to study Progressive Web App (PWA) ideals, the Web APIs on the Mozilla website, and try to have a CSS architecture that unlocks a lot of vanilla CSS features. Next.js Conf had a cool web3 tech stack video (on YouTube). For “rule sets”: implement content boundaries with G/PG/PG13 ratings like movies; this is something I recommend to tech companies in general, as would likely benefit TikTok, YouTube, Instagram, etc. As for what I learned from the PWAs, well, there’s so much, but especially harnessing the power of wasm and building a responsive web-app that runs on both laptop and mobile browsers really well.

@driemworks
Copy link
Contributor Author

@cruikshankss thanks for the reply and feedback! Can you share the full extent of expectation of the pitch call? Is it purely technical or should we expect to also expect to present the broader scope/intent?

For the whitepaper, the main sections that are applicable to the grant are sections 3, 4, and 6.2. We won't be implementing the threshold encryption mechanism as part of the grant and we do have some more research to do on that front, but I'd be happy to discuss the intentions behind it. As a disclaimer, the paper is very much a draft which we plan to expand on and some portions (that are outside the scope of the grant) are not final. If desired, I can try to provide some more visuals (specifically section 4 which lays out the approach for the storage system) to elucidate.

That's a really interesting point you made about defining a "content rating" similar to the MPAA ratings (especially because an analogy I like to use for Iris is a box-office + movie theater). I'll definitely take that into consideration moving forward. As for the CSS/PWA, we intend to provide something that is both visually appealing and also considers general accessibility, though we plan to leave most of those design decisions to dapp developers we will provide some basic styles that reflect this. The current user interface is a simple react app, however, after milestone 2 (proxy nodes), we'll begin migrating to a cross-environment/platform framework. My thoughts with the SDK is that we are building something (based on polkadotjs) that can communicate with a local node, a remote node, or an in-browser light client (i.e. substrate connect).

I have some documentation describing the codebase and architecture here: https://ideal-lab5.github.io/ . I am in the process of making some major upgrades and reorganizing it, but what's available should be able to provide some info/expectations before the call.

@ashlink11 ashlink11 self-assigned this May 20, 2022
@ashlink11 ashlink11 added the ready for review The project is ready to be reviewed by the committee members. label May 20, 2022
@ashlink11
Copy link
Contributor

Hi @driemworks,

Thank you so much for the thorough response. I was able to get your application "ready for review" today for the rest of the grants committee. We have a discrepancy in our docs and need to discuss as a team on Monday if your team is required to do a pitch call or not. If not, we could potentially accept your grant much more quickly. Please expect an update on Monday. Hope you have a nice weekend!

@ashlink11
Copy link
Contributor

ashlink11 commented May 24, 2022

@driemworks We discussed as a team and we think a pitch call adds value to both sides.

Pitch calls are part business plan and part technical. They're a great way for us to learn about the projects. All the ones I've been on so far have been really enjoyable.

We are in the process of scheduling. Thanks!

Edit: thank you for this link https://ideal-lab5.github.io/

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.

@driemworks thanks for the great pitch call! Feel free to make any changes based on our discussion, from my side I'm also happy to accept the proposal as it is.

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.

I’m also happy to support it.

@driemworks
Copy link
Contributor Author

Thanks for the call today everyone, it was a really great discussion. We discussed @hakan-w3f 's point regarding the storage system and have decided that we are going to pivot slightly to build a layer that can potentially allow for a configurable storage backend (i.e. leverage Crust), rather than building our own system and baking it into Iris. I'll be amending this proposal with the new approach once we have it completely fleshed out. With that said, the only impact that change will have on the proposal is milestone 3 (implementing the storage system), M1, 2, and 4 will remain as-is. Since we wouldn't intend to start milestone 3 until August based on the proposed timeline (and the change we are making is a reduction in scope of M3), I'm fine either way if the team wants to wait for the amendment or is fine to move ahead for the time being.

@alxs
Copy link
Contributor

alxs commented Jun 2, 2022

@driemworks a 'configurable storage backend' sounds great - just make sure you're able to implement access policies and other features on your roadmap on top of another such 'backend' and that this integration is possible in the first place. Also keep in mind this of course won't be a plug and play sort of thing and you'd need to implement each such integration, so likely you'll want to stick to one solution for the near future.

Other than that, I recommend you also take a look at Subspace's work. They too had a grant with us and it was a pleasure working with them.

Copy link
Contributor

@hakan-w3f hakan-w3f left a comment

Choose a reason for hiding this comment

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

@driemworks thanks for the very informative pitch call, adding my approval.

Copy link
Collaborator

@takahser takahser left a comment

Choose a reason for hiding this comment

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

@driemworks thanks to you and your team for yesterday's pitch call, which was quite insightful. I'd like to empathise that I tend to agree with @hakan-w3f's point in that it might make more sense to integrate an existing storage solution rather than coming up with your own one, since this would allow you to shorten time-to-market. Additionally, you'd probably benefit from network effects, since the barrier of entry would be lowered for their existing (dev) community and user base. Nevertheless, I'm willing to go ahead with the application as-is and I'm looking forward to your deliveries. Good luck! 👍

@takahser takahser merged commit 72ebfcc into w3f:master Jun 2, 2022
@github-actions
Copy link
Contributor

github-actions bot commented Jun 2, 2022

Congratulations and welcome to the Web3 Foundation Grants Program! Please refer to our Milestone Delivery repository for instructions on how to submit milestones and invoices, our FAQ for frequently asked questions and the support section of our README for more ways to find answers to your questions.

Before you start, take a moment to read through our announcement guidelines for all communications related to the grant or make them known to the right person in your organisation. In particular, please don't announce the grant publicly before at least the first milestone of your project has been approved. At that point or shortly before, you can get in touch with us at grantsPR@web3.foundation and we'll be happy to collaborate on an announcement about the work you’re doing.

Lastly, please remember to let us know in case you run into any delays or deviate from the deliverables in your application. You can either leave a comment here or directly request to amend your application via PR. We wish you luck with your project! 🚀

@alxs
Copy link
Contributor

alxs commented Nov 3, 2022

Hey @driemworks, any updates on the second milestone? Unless you plan to deliver soon, could you please submit an amendment with an updated timeline?

@driemworks
Copy link
Contributor Author

Hi @alxs . We had a bit of a delay, but we're gearing up to finish things up around the end of next week. I can make an amendment now if that's wanted, otherwise I can gauge progress on Wednesday next week and submit an amendment if we're not ready.

@alxs
Copy link
Contributor

alxs commented Nov 4, 2022

Thanks for the update. Of course, feel free to wait until next week.

@alxs
Copy link
Contributor

alxs commented Nov 24, 2022

@driemworks friendly reminder.

@driemworks
Copy link
Contributor Author

My apologies, I slipped on that. Thank you for the reminder. I'm seeing an error when trying to get the latest version of this repo today, seems that a path is invalid: error: invalid path 'applications/QSTN: Redefining data, De-Fi and NFTs on Substrate.md'. As soon as that's fixed I'll be ready to push an amendment with updated deadlines.

@alxs
Copy link
Contributor

alxs commented Nov 25, 2022

@driemworks I just renamed the file, try again.

@driemworks
Copy link
Contributor Author

Thanks @alxs ! An amendment has been submitted #1308

@driemworks
Copy link
Contributor Author

@alxs I submitted another amendment for this project. There was a lot of learning done as part of milestone two and as I was preparing the grant milestone submission document I realized that the work done deviated quite a bit from the original terms. I also stated in milestone two that we would setup a light client which requires a relay chain, but milestone 3 is where the relay chain setup tasks are specified.

The major difference is that rather than implementing a naive centralized encryption mechanism (which would have been unusable in a production scenario and would be thrown away eventually) I went ahead and used proxy reencryption instead. I also changed the scope of some of future milestones, as Tom won't be working with us on those.

#1365

@alxs alxs mentioned this pull request Dec 15, 2022
3 tasks
@alxs
Copy link
Contributor

alxs commented Dec 15, 2022

Thanks @driemworks. I replaced your first comment in the new PR with your comments, so everyone can see them when evaluating the amendment.

@semuelle semuelle mentioned this pull request Jun 1, 2023
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.

7 participants