Skip to content

Commit 265cd27

Browse files
committed
docs: rework Oracle documentation for improved clarity and structure
2 parents d10581a + e548ceb commit 265cd27

File tree

2 files changed

+29
-30
lines changed

2 files changed

+29
-30
lines changed

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -273,3 +273,4 @@ for input parameters:
273273
- Give recap of Workerpool address fo chains
274274
- Talk about ENS on Bellecour(it's not supported on arbitrum)
275275
- Rework Advanced iApp building guides. (from "old" protocol doc)
276+
- Rework src\get-started\protocol\oracle.md (transfer to guide or rewrite)

src/get-started/protocol/oracle.md

Lines changed: 28 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -32,28 +32,26 @@ Oracles are systems designed to solve this problem: providing the blockchain
3232
with data from the real world in the most secure and robust way possible. It
3333
turns out we at iExec have been working on this problem for a long time. Indeed
3434
an update to an Oracle \(for example the price of a stock or the average
35-
temperature for a day\) can appear as the result of a specific type of
36-
off-chain computation, one that would involve calling an API and processing the
37-
response to return the final result. As a result the iExec infrastructure is
38-
perfectly suited to build an efficient and secure Oracle system: the iExec
39-
Oracle.
35+
temperature for a day\) can appear as the result of a specific type of off-chain
36+
computation, one that would involve calling an API and processing the response
37+
to return the final result. As a result the iExec infrastructure is perfectly
38+
suited to build an efficient and secure Oracle system: the iExec Oracle.
4039

4140
## The iExec solution: the Decentralized Oracle \(Oracle\)
4241

4342
For two years iExec has been working on the design of the
44-
[Proof of Contribution protocol](/get-started/key-concepts/proof-of-contribution.md),
43+
[Proof of Contribution protocol](/get-started/protocol/proof-of-contribution.md),
4544
which provides a flexible and highly robust solution to the problem of off-chain
4645
computation. At its core it is a simple Schelling game between off-chain
4746
computation providers \(Workers\): a given number of Workers are randomly chosen
48-
in a much bigger group, and receive the same computation. Each of them
49-
proposes a result, and the result that proposed by the biggest number of
50-
workers becomes the overall computation result \(see PoCo documentation for
51-
more details\).
47+
in a much bigger group, and receive the same computation. Each of them proposes
48+
a result, and the result that proposed by the biggest number of workers becomes
49+
the overall computation result \(see PoCo documentation for more details\).
5250

5351
The PoCo is both flexible and robust: the trust level for the computation \(e.g.
54-
for the Oracle update in the Oracle case\) can set arbitrarily, and
55-
determines the number of replications. It also includes a coherent on-chain
56-
incentive mechanism, that protects the whole system against any \(financially
52+
for the Oracle update in the Oracle case\) can set arbitrarily, and determines
53+
the number of replications. It also includes a coherent on-chain incentive
54+
mechanism, that protects the whole system against any \(financially
5755
sustainable\) attack. Last but not least, it is cheap and scalable: the more
5856
Workers join the iExec platform, the more secure and the cheaper running a
5957
Oracle will be. iExec Oracle relies on random sampling among all the Workers on
@@ -99,18 +97,18 @@ execute between the workers of the worker-pool they manage. Each side of the
9997
iExec platform \(worker-pool, computation requester\) create and sign orders
10098
that describe the kind of transaction they are willing to enter \(type of
10199
hardware, minimum price, etc…\). When several orders of different types are
102-
compatible they match together on the blockchain, to create a deal. Once a
103-
deal creates, the scheduler that is part of the deal will choose a set of
104-
workers in his workerpool to execute the task. Each worker will download the
105-
dApp \(a docker container\) and run it. Upon execution of the task, each worker
106-
sends back two values on the blockchain:
100+
compatible they match together on the blockchain, to create a deal. Once a deal
101+
creates, the scheduler that is part of the deal will choose a set of workers in
102+
his workerpool to execute the task. Each worker will download the dApp \(a
103+
docker container\) and run it. Upon execution of the task, each worker sends
104+
back two values on the blockchain:
107105

108106
- a hash of the result.
109107
- after consensus reaches, the corresponding result.
110108

111-
A normal execution ends when the deal finalizes; all the stakeholders are
112-
paid, and the computation requester is free to download the data pointed to by
113-
the results field of the `Deal` object on the blockchain.
109+
A normal execution ends when the deal finalizes; all the stakeholders are paid,
110+
and the computation requester is free to download the data pointed to by the
111+
results field of the `Deal` object on the blockchain.
114112

115113
### iExec d'Oracle: general architecture
116114

@@ -122,8 +120,8 @@ contract and a classical iExec dApp \(packaged in a docker container\).
122120

123121
**Off-chain component:**
124122

125-
The off-chain part of a Oracle is a classical iExec dApp, that will execute
126-
on the iExec platform and replicate on several workers as part of an iExec
123+
The off-chain part of a Oracle is a classical iExec dApp, that will execute on
124+
the iExec platform and replicate on several workers as part of an iExec
127125
computation deal. It contains the oracle logic, for example to query a web API
128126
and process the result. Whenever an operator wishes to update the Oracle, it
129127
requests a computation like in a normal iExec deal, specifying the Oracle app as
@@ -182,8 +180,8 @@ iExec will then achieve PoCo consensus on the hash of the `callback-data` value,
182180
and will then submit `callback-data` values on-chain, in the `Task` object on
183181
the `IexecProxy` smart contract.
184182
185-
Once your oracle dApp writes, you can build it into a Docker image and make
186-
it available on the iExec platform as explained here.
183+
Once your oracle dApp writes, you can build it into a Docker image and make it
184+
available on the iExec platform as explained here.
187185
188186
### The Oracle generic contract
189187
@@ -305,12 +303,12 @@ public
305303
}
306304
```
307305
308-
The PriceFeed Oracle also declares an event `ValueChange`, that fires
309-
whenever an update creates.
306+
The PriceFeed Oracle also declares an event `ValueChange`, that fires whenever
307+
an update creates.
310308
311-
- An `updateEnv` function, that can use by the owner of the Oracle to update
312-
its parameters. It simply calls the `_iexecDoracleUpdateSettings` function of
313-
its parent `IexecDoracle` contract.
309+
- An `updateEnv` function, that can use by the owner of the Oracle to update its
310+
parameters. It simply calls the `_iexecDoracleUpdateSettings` function of its
311+
parent `IexecDoracle` contract.
314312
315313
```text
316314
function updateEnv(

0 commit comments

Comments
 (0)