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

[Oracles] Design, Discussion and Implementation #1272

Closed
belane opened this issue Nov 25, 2019 · 0 comments
Closed

[Oracles] Design, Discussion and Implementation #1272

belane opened this issue Nov 25, 2019 · 0 comments
Labels
discussion Initial issue state - proposed but not yet accepted oracles Oracle related issues

Comments

@belane
Copy link
Member

belane commented Nov 25, 2019

This issue describes the design of the oracles that has been discussed, their possible implementations, reference to the pending discussions and the division and assignment of the different tasks for their implementation.
The different tasks and sub-discussions will be moved to new issues for a better organization.

1. Design Goals

  1. Decentralize Oracle to avoid third-party trust issues.
  2. Synchronous Process. Only one transaction and one block confirmation needed, optimizing times, network traffic and chain storage space used.
  3. Ease of use. Makes developer’s work easier, only add a new system call SYSCALL (string data=Download(URL, FILTER); TBD
  4. Minimize the modification of existing code without affecting existing consensus logic.
  5. Prevent known attacks.

2. Intro

Oracle’s transactions will be treated in the same way with minor differences.
In order to move an unverified pool transaction to the verified one, this transaction will need to have some minimum number of authorized Oracles signatures. These signatures will determine results validity obtained from the oracles and will define the final oracles agreement on the state. Thus, even Oracle transactions with negative results agreed upon will enter into the block and will be charged a fee (returning Fault on its execution)
When the consensus (Primary) moves this transaction from the verified pool to the block, it removes all oracle’s signatures and will sign the oracle’s result with its own signature. This point is not absolutely necessary, but it helps to save space in the chain.
(Consensus proccess TBD)

3. Oracles Consensus/Agreement

#1273

4. Oracle Transactions

#1274

5. Syscall and ApplicationEngine

#1275

6. Memory pool and Transaction Broadcast Model

#1276

7. Oracle Policy

#1277

8. Node Election

#1278

9. Economic Model

#1279

@belane belane added the discussion Initial issue state - proposed but not yet accepted label Nov 25, 2019
@shargon shargon added this to the NEO 3.0 milestone Nov 25, 2019
@lock9 lock9 added the oracles Oracle related issues label Nov 25, 2019
@lock9 lock9 pinned this issue Nov 26, 2019
@shargon shargon mentioned this issue Apr 18, 2020
@erikzhang erikzhang removed this from the NEO 3.0 milestone Sep 3, 2020
@erikzhang erikzhang unpinned this issue Sep 3, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
discussion Initial issue state - proposed but not yet accepted oracles Oracle related issues
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants