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

Tellor grant application #1532

Merged
merged 7 commits into from
Mar 2, 2023
Merged

Tellor grant application #1532

merged 7 commits into from
Mar 2, 2023

Conversation

brendaloya
Copy link
Contributor

@brendaloya brendaloya commented Feb 10, 2023

  • added Tellor's application

  • chore: clarify proposal

  • updated reporter repo

  • updated tellor.md


Co-authored-by: Frank Bell [email protected]

Project Abstract

Oracles are a key piece of infrastructure for any blockchain ecosystem. Tellor proposes a crypto economically incentivized oracle that is completely flexible for the needs of any data type or frequency. For this Tellor will implement an oracle pallet along with a deployment of controller smart contracts on a to-be-selected EVM parachain that will handle the reporter staking staking, governance (for disputing data validity), and reporter reward system. This will enable parachains across the ecosystem to read, and/or request a push of oracle data. Once the network of reporters is bootstrapped, there is minimal team intervention needed. Anyone can become a reporter by staking, anyone can dispute the validity of the data for a fee, and the user can incentivize reporters to quickly add or replace the data they need by posting a reward. The system is permissionless, as well as sybil and censorship resistant.

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 (USDC/DAI) or Polkadot/Kusama (aUSD/USDT) address for the payment of the milestones is provided in 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)

* added Tellor's application

* chore: clarify proposal

* updated reporter repo

* updated tellor.md

---------

Co-authored-by: Frank Bell <[email protected]>
@CLAassistant
Copy link

CLAassistant commented Feb 10, 2023

CLA assistant check
All committers have signed the CLA.

@brendaloya brendaloya changed the title Brenda (#2) Tellor grant application Feb 10, 2023
@keeganquigley
Copy link
Contributor

Thanks for the interesting application @brendaloya. As far as I'm aware, neither the Chainlink oracle pallet nor the Chainlink price feed pallet are maintained anymore, which makes your application intriguing. Couple of questions/comments:

  • Please note that we only fund the development of software that doesn't exist yet. Since you mentioned that most of the EVM smart contracts have already been built, perhaps you could remove that part from the milestones and reduce the price/scope accordingly. If you reduced it to 30k it would become a level 2 grant, and would only need 3 approvals from the committee.
  • Each milestone should have its own table that breaks down the work into smaller concrete deliverables that can be evaluated/tested. The way you have it formatted currently would equate to 2 milestones. Could you update it to either remove the extra milestones and stick with 2, or add tables for each of them?
  • Since you are a new team for us, you may want to reduce the scope to 2 or 3 milestones, and then apply for a follow-up grant after the committee has had a chance to see some of your work. The application might have better chances of approval this way.
  • Have you heard of the Acurast pallet? I wonder how similar your project is, and whether they could be useful for you in helping define off-chain data and computation requirements for substrate.
  • Not that you mentioned one, but in any case please take note of our policy when it comes to token sales.
  • Has the reporter incentivisation scheme been working successfully on other chains?

@keeganquigley keeganquigley added the changes requested The team needs to clarify a few things first. label Feb 10, 2023
brendaloya and others added 2 commits February 13, 2023 15:25
* added Tellor's application

* chore: clarify proposal

* updated reporter repo

* updated tellor.md

* updated milestones

---------

Co-authored-by: Frank Bell <[email protected]>
@brendaloya
Copy link
Contributor Author

brendaloya commented Feb 13, 2023

Thanks for the feedback @keeganquigley. I've added comments below and made some updates (changed the application to two milestones).

Thanks for the interesting application @brendaloya. As far as I'm aware, neither the Chainlink oracle pallet nor the Chainlink price feed pallet are maintained anymore, which makes your application intriguing. Couple of questions/comments:

-Response: Once implemented our proposed solution could function with zero team interaction because anyone can become a reporter as long as they stake, reporters are incentivized by consumers to provide data through payments, the data validation is open to anyone that pays the fee to dispute and everyone is incentivized to dispute because you get the reporter stake if the dispute is successful otherwise the reporter is compensated with the fee for reward/consumer payment losses. I can't speak for another project but truly decentralized and crypto-economically incentivized systems do not stop working because the team does not maintain them. However, we do plan to help with the reporter bootstrapping and future projects' integrations as demand and usage of Parity/Polkadot ecosystem increases.

Please note that we only fund the development of software that doesn't exist yet. Since you mentioned that most of the EVM smart contracts have already been built, perhaps you could remove that part from the milestones and reduce the price/scope accordingly. If you reduced it to 30k it would become a level 2 grant, and would only need 3 approvals from the committee.

-Response: Some of the EVM contracts exist, however, some have to be developed and there will be some updates to ensure these work with the Parity/Polkadot ecosystem and tested.

Each milestone should have its own table that breaks down the work into smaller concrete deliverables that can be evaluated/tested. The way you have it formatted currently would equate to 2 milestones. Could you update it to either remove the extra milestones and stick with 2, or add tables for each of them?

-Response: I changed these to be two milestones now.

Since you are a new team for us, you may want to reduce the scope to 2 or 3 milestones, and then apply for a follow-up grant after the committee has had a chance to see some of your work. The application might have better chances of approval this way.

-Response: If this is approved we will do a follow-up grant for mainnet. Tellor has been live since August 2019, all of our code is open source https://github.com/tellor-io/ and happy to walk the committee through any of our work.

Have you heard of the Acurast pallet? I wonder how similar your project is, and whether they could be useful for you in helping define off-chain data and computation requirements for substrate.

-Response: We'll look into it but at first glance I can't easily find how becoming a data transmitter is open to anyone or if the process of becoming one is decentralized. They also don't seem to have any penalties for these providing bad data or a live dispute process. Our system is crypto-economically secured and has a dispute process in place.

Not that you mentioned one, but in any case please take note of our policy when it comes to token sales.

-Response: Will do. However, we don't plan to launch a new token and TRB is currently available at Coinbase and Binance. Our proposed solution would rely on bridged TRB or the consumer chain's token.

Has the reporter incentivization scheme been working successfully on other chains?

-Response: Yes, since August 2019.

@keeganquigley keeganquigley 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 Feb 13, 2023
keeganquigley
keeganquigley previously approved these changes Feb 13, 2023
Copy link
Contributor

@keeganquigley keeganquigley 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 changes @brendaloya I have marked your application as ready for review and will share it with the rest of the committee.

Seeing as this is an interesting XCM use case, and we need more work done on oracles, I'm personally happy to support it.

Copy link
Contributor

@dsm-w3f dsm-w3f left a comment

Choose a reason for hiding this comment

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

Thank you for your application. It is a very interesting one. I notice that in milestone 1, deliverable 3, there is no specification in this item. Could you please add it? Please notice that we usually perform system tests on deliverables as part of the Milestone evaluation process which requires a tutorial for manual testing or automated e2e tests.

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 a lot for the application. I have a couple of questions/comments:

  • Currently, the headline for milestone 2 is missing. Could you please add this?
  • Your first milestone focuses on solidity smart contracts. We usually prefer to support the development of ink! Smart contracts or other solutions that are native to our ecosystem. Would you be willing to integrate this (at least initial PoCs) into the application? I saw that you mentioned that you plan on working on WASM smart contracts.
  • Could you remove the Tellor Tributes (TRB) Token from the application? See our guidelines: https://github.com/w3f/Grants-Program#guidelines
  • Could you also add a reference to the definition that is listed above in the document for the integration contract ("with the functionality described above")? In general, feel free to add more details to the milestone tables also for the pallet since these are the requirements of our contracts.
  • Finally, do you have plans to integrate off-chain works into your oracle solution?

Copy link
Member

@semuelle semuelle left a comment

Choose a reason for hiding this comment

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

@dsm-w3f and @Noc2 already pointed out the issues I found. Other than that, this is a good proposal and I'd be happy to support it.

| **0d.** | Docker | We will provide a Dockerfile(s) that can be used to test all the functionality delivered with this milestone. |
| 1 | Develop Controller contracts | We will provide a set of solidity smart contracts with the functionality described above |
| 2 | Develop Parachain integration contract| We will provide an integration contract |
| 3 | Local testing| |
Copy link
Member

Choose a reason for hiding this comment

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

As @dsm-w3f said, this still requires a specification.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

You are correct deliverable 0c should cover the testing so I’ve removed deliverable 3 from milestone 1.

| **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 | Substrate Oracle pallet design and integration | We will provide the Substrate oracle pallet |
| 2 | Testing the pallet and testing integration with projects and selected parachains| We will test full functionality of the system for interactions between the consumer chain and oracle pallet |
Copy link
Member

Choose a reason for hiding this comment

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

What exactly is being delivered here? A test report? There is already a Testing and Testing Guide deliverable above, how is this different?

Copy link
Contributor Author

@brendaloya brendaloya Feb 24, 2023

Choose a reason for hiding this comment

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

Hi @semuelle , Milestone 2 deliverable 2 could be part of deliverable *0c but I just wanted to spell out that we have to test milestone 1 and 2 interoperability, happy to remove it though.

@keeganquigley keeganquigley added changes requested The team needs to clarify a few things first. and removed ready for review The project is ready to be reviewed by the committee members. labels Feb 20, 2023
@semuelle
Copy link
Member

pinging @brendaloya

brendaloya and others added 2 commits February 24, 2023 11:27
…tin deliverable on milestone 1 deliverable 3, expanded on milestone 2 delivarable 2
@brendaloya
Copy link
Contributor Author

thanks for the changes @brendaloya I have marked your application as ready for review and will share it with the rest of the committee.

Seeing as this is an interesting XCM use case, and we need more work done on oracles, I'm personally happy to support it.

Response:
Thank you for the feedback @dsm-w3f. You are correct deliverable 0c should cover the testing so I’ve removed deliverable 3 from milestone 1.

@brendaloya
Copy link
Contributor Author

brendaloya commented Feb 24, 2023

Hi @Noc2 ,

Thanks a lot for the application. I have a couple of questions/comments:

  • Currently, the headline for milestone 2 is missing. Could you please add this?

-Response: Done

  • Your first milestone focuses on solidity smart contracts. We usually prefer to support the development of ink! Smart contracts or other solutions that are native to our ecosystem. Would you be willing to integrate this (at least initial PoCs) into the application? I saw that you mentioned that you plan on working on WASM smart contracts.

-Response: We would love to explore it but I currently don’t have anyone in the team that is fluent in ink! and the proposal right now tries to minimize costs. Currently we plan on creating contracts enable interaction with the XCM and making changes to fit Parity’s parachains ecosystem. Rewriting the existing contracts on a different language and getting an audit on that language would make this iteration very expensive. We would love to see some usage and if users begin demanding the change to ink! for integrations, we would be happy to explore it.

-Response: Done

  • Could you also add a reference to the definition that is listed above in the document for the integration contract ("with the functionality described above")? In general, feel free to add more details to the milestone tables also for the pallet since these are the requirements of our contracts.

-Response: Added the reference and some clarification but let me know if more details are needed. We will have a full spec.

  • Finally, do you have plans to integrate off-chain works into your oracle solution?

-Response: not currently but happy to explore and brainstorm if it would be a good fit.

| **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 | Substrate Oracle pallet design and integration | We will provide the Substrate oracle pallet |
| 2 | Testing functionallity of the the pallet and testing integration with a mock project and selected parachains| We will test full functionality of the system for interactions between the consumer chain and oracle pallet (meaning test the functinallity between milestone 1 and 2 - solidity contracts, pallet, XCM)|
Copy link
Member

Choose a reason for hiding this comment

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

Please specify what is being delivered here. A testing guide? Test report? Article?

Copy link
Contributor Author

@brendaloya brendaloya Feb 28, 2023

Choose a reason for hiding this comment

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

Hi @semuelle , thanks for the feedback.

Please specify what is being delivered here. A testing guide? Test report? Article?

-Response: On deliverable 2, what is being delivered is just more testing. I read deliverable 0c as being more specific to the pallet testing (deliverable 1) so in deliverable 2 it would just be more tests delivered/included that test the interoperability between milestone 1 and milestone 2 deliverable 1. I could remove it if you think that is covered by deliverable 0c.

Copy link
Member

Choose a reason for hiding this comment

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

No, that's fine given the architecture. It just needs to be clear from the specification of the deliverable what exactly will be delivered, so that we know what to expect. You could add, for example, "we will provide a tutorial how to replicate these tests locally."

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Hi @semuelle , I've added clarification on milestone 2 deliverable 1 since we'll definitely provide a guide on running the additional tests.

@semuelle
Copy link
Member

Just for transparency: I have updated your comment above for readability. Github was interpreting everything as one large quote.

@brendaloya
Copy link
Contributor Author

Just for transparency: I have updated your comment above for readability. Github was interpreting everything as one large quote.

Thanks @semuelle

Copy link
Member

@semuelle semuelle left a comment

Choose a reason for hiding this comment

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

LGTM.

@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 Mar 2, 2023
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.

This sounds interesting, especially since the Chainlink Substrate oracle pallet hasn't been updated in a while and doesn't seem to be actively maintained anymore. Happy to approve.

@takahser takahser merged commit 3c80164 into w3f:master Mar 2, 2023
@github-actions
Copy link
Contributor

github-actions bot commented Mar 2, 2023

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 [email protected] 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! 🚀

@keeganquigley
Copy link
Contributor

Hi @brendaloya how is milestone 2 coming along?

@keeganquigley
Copy link
Contributor

pinging @brendaloya

@keeganquigley
Copy link
Contributor

Hi @brendaloya are you still working on this grant? Please note that if we don't hear back from you after two weeks we will file a PR to close the grant due to inactivity. Thank you for understanding.

@keeganquigley keeganquigley mentioned this pull request Nov 9, 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