Closed julienbrg closed 4 years ago
Issue Status: 1. Open 2. Started 3. Submitted 4. Done
This issue now has a funding of 300.0 RLC attached to it as part of the iExecBlockchainComputing fund.
Issue Status: 1. Open 2. Cancelled
Work has been started.
These users each claimed they can complete the work by 1 year, 8 months ago. Please review their action plans below:
1) erazhu31 has been approved to start work.
Hi i would like to complete it. i worked on others bounties. thanks
Learn more on the Gitcoin Issue Details page.
Hi @erazhu31,
Thank you for your interest in learning how to build a Decentralized Oracle.
Congrats, we just approved your application.
Let's start!
Don't forget to push your code as a PR in this repo so we can review it.
As soon as your DOracle is working, the RLC are yours!
Reminder: That's is part of the Learn iExec & Earn RLC program.
@erazhu31 Hello from Gitcoin Core - are you still working on this issue? Please submit a WIP PR or comment back within the next 3 days or you will be removed from this ticket and it will be returned to an ‘Open’ status. Please let us know if you have questions!
Funders only: Snooze warnings for 1 day | 3 days | 5 days | 10 days | 100 days
hi still working on it thanks
Ok, no problem. Let us know when your PR is ready! Good luck @erazhu31 :)
Issue Status: 1. Open 2. Started 3. Submitted 4. Done
@erazhu31 due to inactivity, we have escalated this issue to Gitcoin's moderation team. Let us know if you believe this has been done in error!
Funders only: Snooze warnings for 1 day | 3 days | 5 days | 10 days | 100 days
hi i will provide a pr soon thanks
@erazhu31 Hello from Gitcoin Core - are you still working on this issue? Please submit a WIP PR or comment back within the next 3 days or you will be removed from this ticket and it will be returned to an ‘Open’ status. Please let us know if you have questions!
Funders only: Snooze warnings for 1 day | 3 days | 5 days | 10 days | 100 days
Issue Status: 1. Open 2. Started 3. Submitted 4. Done
@erazhu31 due to inactivity, we have escalated this issue to Gitcoin's moderation team. Let us know if you believe this has been done in error!
Funders only: Snooze warnings for 1 day | 3 days | 5 days | 10 days | 100 days
Hi i did a PR
App is deployed here ✔ Deployed new app at address 0x812da479c0fc3DEDAe6d81F733468cF5b90201b8 contract is here TlsNotaryOracle deployed at address: 0xC6e7243F736Ab79592a3b2Be80D43D6DF502A604
Thanks
Thanks for the tips
@sulliwane @julienbrg If this bounty is still open, I want to work on it. I implement the Bank Card Payment validator. I can submit a PR for this in the next 2 days. Thank you!
Hi @emmaodia, Yes the bounty is still open. But TLS Notary is a special beast :) It's probably a bit more complicated than other bounties (you can have a look at this existing PR and the review: https://github.com/iExecBlockchainComputing/iexec-apps/pull/27). You are welcome to give it a try!
SWEET! I'm up for the challenge! Thanks.
Hi @sulliwane I have submitted a PR here: https://github.com/iExecBlockchainComputing/iexec-apps/pull/42
Hello @julienbrg @sulliwane Kindly review my PR. Thank you.
@sulliwane @julienbrg Please can I get feedback on my PR. Thanks. :+1:
Hi @emmaodia, I'm very sorry for the delay! The tech team being back from holiday since less than a week, they are still very busy. As soon as @Amxx has some time, he'll review your PR. Don't worry, the bounty is locked in Gitcoin and if the review is OK, the RLC will be yours ;) Thanks a lot for your patience!
Great! That is fine @sulliwane. I'm even more excited to hear from you! Thank you for taking the time. Okay. Patiently waiting for @Amxx. Thanks.
Issue Status: 1. Open 2. Cancelled
The funding of 300.0 RLC (200.34 USD @ $0.67/RLC) attached to this issue has been cancelled by the bounty submitter
Hi @emmaodia, sorry to let you know that we finally decided to cancel the TLS Notary issue, as it was not understood correctly by most of the contributors. Thanks anyway for your contribution, and stay tuned as more bounties are to come :) Cheers!
What you will learn
Prerequisite
App requirements
What I need to do?
An iExec DOracle needs two parts: Off-chain dockerized application, and on-chain smart contract.
1. Dockerized application (off-chain) You need to write a logic that does the following steps:
Then, push you docker image on Dockerhub, and deploy it on iExec using the SDK.
2. Smart contract (on-chain)
Going further: About Decentralized Oracles (optional read)
Programmable blockchains and smart contracts are a big deal, but they live in siloed environments and as such have very limited access to the outside world (i.e. the Internet). The iExec V3 makes it trivial for anyone to deploy his own decentralized oracle, hence allowing developers to leverage the terabytes of data available on the Web 2.0 to build a whole new range of useful and impactful dapps without compromising on the security.
The iExec DOracle uses iExec to execute the oracle logic off-chain and return certified results to the blockchain. Certification can be achieved using a combination of hardware security (TEE - Trusted Execution Environment) and on-chain consensus (iExec’s PoCo). These two mechanism provides tools to ensure results of a DOracle execution can be trusted for the on-chain settlement of off-chain events.
Documentation of the iExec platform, including details about de PoCo protocol can be found at https://docs.iex.ec.
Components of an iExec DOracle.
In order to run, an iExec DOracle needs three essential components:
The app & the output
The dockerized oracle app contains the logic that will be executed and verified by the iExec platform when a call is requested. This logic can be implemented in any language and access any data as long as it can be dockerized and it follows below simple guidelines:
The iExec middleware will perform the consensus on the determinism.iexec file, and will store the callback.iexec file on Ethereum.
The receiving smart contract
The receiving smart contract will be the on-chain receiver that will consume the output. This contract can contain any logic, but it should inherit from the IexecDoracle (available on Github) which provides a routine to retrieve and verify the result of an oracle execution. The PriceOracle shows a good example of such contract.
Security considerations
The iExec framework proposes all the tools to build a secure decentralized oracle. However, simply using the iExec framework won’t prevent issues in the oracle design from threatening the security and the decentralization of the oracle. Here are some points that should be considered:
External resources (such as Web 2.0 APIs) are centralized point of failure. DOracles can forward data from such APIs to the blockchain in a trustless manner, but the data reported on-chain is still subject to manipulation by the API administrator.
If trying to report random values from an off-chain source to the blockchain, be aware that the requester of the call might be able to control the seed. You may want to use additional proof of origin or use commit reveal pattern that only accept oracle calls for which the request has been registered on-chain before the actual value was predictable. In general, providing cryptographically secure randomness to a blockchain is difficult, so don’t try it unless you really understand the different attack vectors.
Design your receiver smart contract to be trustless and censorship resistant. If only a single actor can update it then your oracle might not be properly designed. Anyone with an interest on updating a value must be able to pay for an oracle call that will provided an updated value to the blockchain which nobody can argue against.
Need help?
Again, the documentation is here: https://docs.iex.ec. Feel free to ask for more information on our Slack.