-
Notifications
You must be signed in to change notification settings - Fork 2.1k
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
DINFRA Application #1622
DINFRA Application #1622
Conversation
DINFRA, decentralized infrastructure, is substrate orchestrated infrastructure, a decentralized alternative to public clouds.
There was a problem hiding this 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. I have a couple of initial questions:
- Are you planning to release your own token? If so, it might make sense to apply for the SBP. If not, did you consider applying for treasury funding with this? With our grants program, we focus more and more on teams that are unfamiliar with our ecosystem and ask teams that are familiar with the treasury to apply there for funding.
- Could you add more technical details to the milestones? For example, the programming language and functionality of the Reactor
- We usually don’t fund the deployment-related deliveries because they are not useful for others, e.g., regarding “DINFRA Test Parachain” or “ACS Test Resources”
- In general, 75k for three months and 1 FTE seems really expensive to me.
I am happy to follow your advise and/or incorporate your feedback, but I will share how I have thought this application through first:
I can see you also in Polkadot Direction channel, I will also ping you there. |
Added specific technologies to deliverables in the plan.
As discussed, we are estimating 4-6 months in total. The development of the milestones will be forward by pitching ecosystem players and helping test and prof-concept DINFRA with their own infrastructure. We are assuming that there may be some kind of iteration of the deliverables along the process.
| **0c.** | Testing and Testing Guide | Core functions will be fully covered by comprehensive unit tests to ensure functionality and robustness. In the guide, we will describe how to run these tests. | | ||
| **0d.** | Docker | We will provide a Dockerfile(s) that can be used to test all the functionality delivered with this milestone. | | ||
| 1. | DINFRA Provider Pallet | It will allow for Accounts to register as providers, Providers to declare supported Deployment types and avilable capacity. Will Assign Deployments to Providers by simple means such as Round Robin, Random or Capacity Based. Implemented with Substrate/Rust.| | ||
| 2. | DINFRA Subscription Pallet | It will represent a simple Subscription to pay for a deployment. Cost will be fixed per block. Deployments will be teared down when allocated Balance is consumed. Consumers will be able to cancel Subscriptions and any time, tearing down the deployment. Implemented with Substrate/Rust. | |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Wouldn't providers have their own signup/subscribe flow based on their jurisdiction and legal requirements? Also, I imagine it might be rather complicated to map all the possible complexities of payment plans.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
These are interesting points that we would address on subsequent phases. But we are certainly considering related functionality. For the MVP we will focus on end-to-end concept proving functionality.
If DINFRA can sing-up infrastructure consumer with one click away payment method already setup, this is tremendous value for Providers, just like an AppStore is for a mobile platform.
Down the road We have considered the possibility that Consumers and Providers can be matched for example by Regional Preferences, availability and budget.
For example consider a Contract of Type: Substrate Node (with a know preimage). A consumer could issue on-chain request for 4 instances each with regional preferences and max (fixed) budget. And the Network match to the best available providers matching the criteria.
Of course we could introduce consumption based variable pricing, but I think we can go a long way with fixed pricing and contract upgrades/downgrades, this simplifies a lot. Most providers in our community work with fixed contracts or tiers by usage.
I don't think DINFRA should get involved in legal requirements, but perhaps implement on-chain terms and conditions acceptance for Providers to become eligible, without understanding what the documents actually contain necessarily.
We have been thinking on things like Topology Oracles, that would put on chain regional and network characteristics of Providers (or their declared availability zones) and attestations that would put on chain service disruptions for implementation of penalties, or automated multiprovider migration of contracts... as similar advanced use cases.
There are Lots of possibilities once we start arranging deployments on chain. But it will be key to add features in the right order. 20% of functionality will surely provide 80% of the benefit....
In our opinion the MVP must be used to show the community that infrastructure can follow what the chain commands, that it is quite doable, feasible, and that it opens tones of possibilities.
In the second phase we should go for the 20% of functionality that delivers the 80% of value that our community actually needs and will use.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sorry for the late reply here. I have a few follow-up questions:
- Could you explain the following: “We believe we would benefit for SBP, and there will be a token created in next phase, however, we think of DINFRA as a common good parachain. I think it would be difficult have acceptance if DINFRA was an independent venture.”? Usually, common good parachains don’t have their own token.
- As I said before, I would at least remove the last milestone: “Integration Testing and Test Chain”, since it’s not something that we support. Also, the registration on Rococo is up to parity and not something that we can control
- The first milestone currently doesn’t have any polkadot/substrate-specific deliveries as part of the milestone. Could you add these?
- In general, my recommendation would be to significantly reduce the grant amount to a level 2 grant for an initial PoC (stamp of approval) and apply for the SBP program at the same time.
I think I understand your point:
I will come back to you with changes... |
There was a problem hiding this 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. LGTM.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sorry for the delay here. I'm happy to go ahead with it and will share the application with the rest of the team.
There was a problem hiding this 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 @rvalle and for answering all questions. I think this is a good use case for common good, non-opinionated use for substrate and with your previous track record I am happy to approve as well.
@rvalle Thank you for this application, very interesting use case! |
Thanks for your support @randombishop. With regards to the use case, I agree with you it is interesting. Orchestrating multiple players using substrate for the goal of decentralization could be a killer use case for our community, in particular for industries that already enjoy certain degree of automation. Substrate could essentially offer alternatives to Uber or Airbnb, for example. Substrate could trigger a rebirth of the good and old cooperatives in a decentralized self governed fashion. With regards to pricing (talking in general, not just this MVP), substrate would have the responsibility to award deployment contracts to providers. Pricing could be one of the factors for selection (i.e. max price allowed), among others such as geographical preferences (i.e. non EU) or network topology preferences. (i.e. banned networks AWS and Google Cloud), and even a list of preferred providers. Ultimately, It must be possible to use on-chain consensus in the award process so that participants understand the process is fair. It could also be possible to resort to other more generic parameters such as available capacity, reputation metrics or participation in governance. At the same time the weight of those metrics in the award process should be subject of governance. Ensuring contracts are funded, in case of fix rate deployment contracts would work as follows:
This would provide a very simple implementation of on-chain, variable-length, pay per use of services at fixed cost. And it can easily be complemented with minimum deployment period, minimum cancellation notice period, etc. It can be also complemented with more complex functionality such as witnesses (availability witness) and oracles (topology oracles), slashes, dispute handling, reputation, etc. From fix pricing we could go to top-ups, as a way to limit price dynamics. For example it is already an industry practice to apply a surcharge for network traffic outside an "included" limit. We believe we could go a long with simple pricing strategies and almost avoid dynamic pricing altogether, perhaps the exception is elastic deployments where infrastructure would be scaled according to demand. The MVP will implement the fix cost and award process in its most simple possible form, while leaving the door open to enhancements and contributions. |
@rvalle thanks for your additional notes, good luck with your implementation and looking forward to seeing the results. imo, elastic pay-per-use based on actual after-the-fact consumption is one of the most powerful features of cloud computing, and is particularly handy to onboard new projects. It's way more convenient to start at zero and pay as it scales than commit to servers constantly running at fixed costs. Would highly recommend designing for elastic pay-per-use in your first version rather than later... Could be done in similar ways you're proposing already by adding a layer of escrow and some kind of "trust but verify" the billing. Anyways, just my 2 cents... |
@randombishop Thanks for the feedback, we will raise priority to pay per use. |
@randombishop I have been thinking a bit more about this, and I believe you are right. In fact, re-setting a new price for a deployment while running is quite easy... this is consistent, for example with updating VM settings in a cloud UI. That is simple enough. In a fixed contract the consumer has to sign (explicit agreement) to pricing change. In a dynamic contract, the provider is granted capability to do it unilaterally.... without requiring consumer signature, thus opening the possibility to auto-scaling. Furthermore, it would be possible to allow for dynamic changes within boundaries, and in future implementations witnesses could be involved in the auto scaling process. We definitely should be able to plan for this feature early. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you for the application. The proposal seems to be very interesting and useful. The experience of the team also gives confidence that will be delivered. I'm happy to support it.
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. |
@Noc2 @semuelle @keeganquigley @randombishop @dsm-w3f Many thanks for your support and feedback! |
Hi @rvalle just checking in to see how milestone 1 is coming along? |
Hi @keeganquigley, making progress. Expecting to post soon. Got delayed by external to the project events, and earlier than usual holidays in the team. Nothing inherent to the project itself. Should be fine going forward. Thanks for following up. |
@keeganquigley polishing now, hoping to file before end of week. |
Thanks for the update @rvalle sounds good! |
Hi everybody, @keeganquigley ... we are making good progress. We are targeting to deliver over the next 2 weeks. Experiencing delays in time related to sub0, confusion over new SDK distribution, and our own learning curve. Effort invested in the project is in line with the planing. We are enjoying the project and Substrate's potential and the results we are getting. Will keep you posted. |
Hi Again, @keeganquigley , @Noc2... now starting to wrap up the delivery, Yes, substrate/rust has a steep learning curve many mention, but we perceive the benefit as a game changer. Will keep you posted. |
Project Abstract
DINFRA, decentralized infrastructure, is substrate orchestrated infrastructure, a decentralized alternative to public clouds.
Grant level
Application Checklist
project_name.md
).@_______:matrix.org
(change the homeserver if you use a different one)