Skip to content
Merged
Show file tree
Hide file tree
Changes from 7 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 0 additions & 8 deletions .vitepress/sidebar.ts
Original file line number Diff line number Diff line change
Expand Up @@ -188,14 +188,6 @@ export function getSidebar() {
{
text: 'USE AN iAPP',
items: [
{
text: 'Introduction',
link: '/guides/use-iapp/introduction',
},
{
text: 'Getting Started',
link: '/guides/use-iapp/getting-started',
},
{
text: 'How to Pay the Executions',
link: '/guides/use-iapp/how-to-pay-executions',
Expand Down
Binary file added src/assets/overview/deal-lifecycle.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
103 changes: 0 additions & 103 deletions src/assets/use-iapp/iexec-actors-diagram.svg

This file was deleted.

42 changes: 22 additions & 20 deletions src/get-started/overview/what-is-iexec.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,35 +12,37 @@

## SpeedRun The Protocol

### Step 1: Protect Data
![iExec Deal Lifecycle](/assets/overview/deal-lifecycle.png)

Your sensitive data gets encrypted and stored online. Only you control who can
access it.
### Step 1: Prepare Resources

Check warning on line 17 in src/get-started/overview/what-is-iexec.md

View workflow job for this annotation

GitHub Actions / vale

[vale] src/get-started/overview/what-is-iexec.md#L17

[Google.Headings] 'Step 1: Prepare Resources' should use sentence-style capitalization.
Raw output
{"message": "[Google.Headings] 'Step 1: Prepare Resources' should use sentence-style capitalization.", "location": {"path": "src/get-started/overview/what-is-iexec.md", "range": {"start": {"line": 17, "column": 5}}}, "severity": "WARNING"}

→ **DevTool**: [DataProtector](/references/dataProtector) handles this for you
- **Data Provider** protects sensitive data with encryption and sets access
rules.
- → **DevTool**: [DataProtector](/references/dataProtector)
- **App Provider** deploys an iApp to process data securely.
- → **DevTool**: [iApp Generator](/references/iapp-generator)

### Step 2: Secure Computing (Workers)
### Step 2: Create a Deal

Code runs inside **secure enclaves** (Trusted Execution Environments - TEEs) on
iExec workers. The worker can access your data to process it, but only within
the privacy-safe TEE environment - your data never leaves the secure bubble.
**Requester** submits a computation request. The **PoCo smart contract**
automatically matches and brings together all required resources: the iApp,
protected data, and available workerpool.

Check failure on line 29 in src/get-started/overview/what-is-iexec.md

View workflow job for this annotation

GitHub Actions / vale

[vale] src/get-started/overview/what-is-iexec.md#L29

[Vale.Terms] Use 'Workerpool' instead of 'workerpool'.
Raw output
{"message": "[Vale.Terms] Use 'Workerpool' instead of 'workerpool'.", "location": {"path": "src/get-started/overview/what-is-iexec.md", "range": {"start": {"line": 29, "column": 31}}}, "severity": "ERROR"}

### Step 3: Run iApp
→ **Guides**:
[Run iApp with ProtectedData](/guides/use-iapp/run-iapp-with-ProtectedData),
[Run iApp without ProtectedData](/guides/use-iapp/run-iapp-without-ProtectedData)

Check failure on line 33 in src/get-started/overview/what-is-iexec.md

View workflow job for this annotation

GitHub Actions / vale

[vale] src/get-started/overview/what-is-iexec.md#L33

[Vale.Terms] Use 'protectedData' instead of 'ProtectedData'.
Raw output
{"message": "[Vale.Terms] Use 'protectedData' instead of 'ProtectedData'.", "location": {"path": "src/get-started/overview/what-is-iexec.md", "range": {"start": {"line": 33, "column": 19}}}, "severity": "ERROR"}

You submit a **Task** = "Run this iApp on this protected data". The protocol
finds available workers and executes everything confidentially.
### Step 3: Execute in TEE

→ **DevTool**: [iApp Generator](/references/iapp-generator) helps you create and
deploy iApp
**Workers** from the selected workerpool download the iApp and execute it inside

Check failure on line 37 in src/get-started/overview/what-is-iexec.md

View workflow job for this annotation

GitHub Actions / vale

[vale] src/get-started/overview/what-is-iexec.md#L37

[Vale.Terms] Use 'Workerpool' instead of 'workerpool'.
Raw output
{"message": "[Vale.Terms] Use 'Workerpool' instead of 'workerpool'.", "location": {"path": "src/get-started/overview/what-is-iexec.md", "range": {"start": {"line": 37, "column": 31}}}, "severity": "ERROR"}
**secure enclaves** (TEEs). Your data is processed confidentially - workers can

Check notice on line 38 in src/get-started/overview/what-is-iexec.md

View workflow job for this annotation

GitHub Actions / vale

[vale] src/get-started/overview/what-is-iexec.md#L38

[Google.Parens] Use parentheses judiciously.
Raw output
{"message": "[Google.Parens] Use parentheses judiciously.", "location": {"path": "src/get-started/overview/what-is-iexec.md", "range": {"start": {"line": 38, "column": 21}}}, "severity": "INFO"}

Check notice on line 38 in src/get-started/overview/what-is-iexec.md

View workflow job for this annotation

GitHub Actions / vale

[vale] src/get-started/overview/what-is-iexec.md#L38

[Google.Passive] In general, use active voice instead of passive voice ('is processed').
Raw output
{"message": "[Google.Passive] In general, use active voice instead of passive voice ('is processed').", "location": {"path": "src/get-started/overview/what-is-iexec.md", "range": {"start": {"line": 38, "column": 39}}}, "severity": "INFO"}
run computations but never access raw data outside the TEE.

### Step 4: Get Results
### Step 4: Deliver Results & Pay

Check warning on line 41 in src/get-started/overview/what-is-iexec.md

View workflow job for this annotation

GitHub Actions / vale

[vale] src/get-started/overview/what-is-iexec.md#L41

[Google.Headings] 'Step 4: Deliver Results & Pay' should use sentence-style capitalization.
Raw output
{"message": "[Google.Headings] 'Step 4: Deliver Results \u0026 Pay' should use sentence-style capitalization.", "location": {"path": "src/get-started/overview/what-is-iexec.md", "range": {"start": {"line": 41, "column": 5}}}, "severity": "WARNING"}

Results come back **encrypted to you**. Workers never see raw data, you never
lose control.

```
Protected Data + iApp + Worker = Task → Encrypted Result
```
Results are encrypted and delivered back to the requester. **RLC tokens** are

Check notice on line 43 in src/get-started/overview/what-is-iexec.md

View workflow job for this annotation

GitHub Actions / vale

[vale] src/get-started/overview/what-is-iexec.md#L43

[Google.Passive] In general, use active voice instead of passive voice ('are encrypted').
Raw output
{"message": "[Google.Passive] In general, use active voice instead of passive voice ('are encrypted').", "location": {"path": "src/get-started/overview/what-is-iexec.md", "range": {"start": {"line": 43, "column": 9}}}, "severity": "INFO"}
automatically distributed to all participants (app provider, data provider,
workerpool) based on their contribution.

Check failure on line 45 in src/get-started/overview/what-is-iexec.md

View workflow job for this annotation

GitHub Actions / vale

[vale] src/get-started/overview/what-is-iexec.md#L45

[Vale.Terms] Use 'Workerpool' instead of 'workerpool'.
Raw output
{"message": "[Vale.Terms] Use 'Workerpool' instead of 'workerpool'.", "location": {"path": "src/get-started/overview/what-is-iexec.md", "range": {"start": {"line": 45, "column": 1}}}, "severity": "ERROR"}

## What each piece does

Expand Down
3 changes: 3 additions & 0 deletions src/guides/build-iapp/advanced/quick-start.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,9 @@ test blockchain.

## Install the iExec SDK

For complete installation instructions and requirements, see the
[iExec SDK documentation](/references/sdk).

Requirements:
[![npm version](https://img.shields.io/badge/nodejs-%3E=18.0.0-brightgreen.svg)](https://nodejs.org/en/)

Expand Down
4 changes: 2 additions & 2 deletions src/guides/build-iapp/advanced/result-callback.md
Original file line number Diff line number Diff line change
Expand Up @@ -106,8 +106,8 @@
After completion, the protocol calls your contract, passing the `callback-data`
bytes.

First install the iExec SDK if you have not already (see
[Getting Started](/guides/use-iapp/getting-started)).
First install the iExec SDK if you have not already (see the

Check notice on line 109 in src/guides/build-iapp/advanced/result-callback.md

View workflow job for this annotation

GitHub Actions / vale

[vale] src/guides/build-iapp/advanced/result-callback.md#L109

[Google.Contractions] Use 'haven't' instead of 'have not'.
Raw output
{"message": "[Google.Contractions] Use 'haven't' instead of 'have not'.", "location": {"path": "src/guides/build-iapp/advanced/result-callback.md", "range": {"start": {"line": 109, "column": 36}}}, "severity": "INFO"}
[iExec SDK documentation](/references/sdk)).

```ts twoslash
import { IExec, utils } from 'iexec';
Expand Down
25 changes: 22 additions & 3 deletions src/guides/build-iapp/build-&-test.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,9 +29,28 @@ iApp Generator handles all the low-level complexity for you.

## Prerequisites

Before getting started, make sure you have the required tools installed. See the
[iApp Generator Getting Started guide](/references/iapp-generator/getting-started)
for detailed prerequisites and installation instructions.
First, install iApp Generator in your project (for more details see
[iApp Generator Getting Started](/references/iapp-generator/getting-started)):

::: code-group

```bash [npm]
npm install -g @iexec/iapp-generator
```

```bash [yarn]
yarn global add @iexec/iapp-generator
```

```bash [pnpm]
pnpm add -g @iexec/iapp-generator
```

```bash [bun]
bun add -g @iexec/iapp-generator
```

:::

## Quick Start

Expand Down
3 changes: 2 additions & 1 deletion src/guides/build-iapp/inputs.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,8 @@
::: tip

You can also execute iApp outside of DataProtector using other methods. See the
[Use an iApp guide](/guides/use-iapp/introduction) for more information.
[Run iApp without ProtectedData](/guides/use-iapp/run-iapp-without-ProtectedData)

Check failure on line 30 in src/guides/build-iapp/inputs.md

View workflow job for this annotation

GitHub Actions / vale

[vale] src/guides/build-iapp/inputs.md#L30

[Vale.Terms] Use 'protectedData' instead of 'ProtectedData'.
Raw output
{"message": "[Vale.Terms] Use 'protectedData' instead of 'ProtectedData'.", "location": {"path": "src/guides/build-iapp/inputs.md", "range": {"start": {"line": 30, "column": 19}}}, "severity": "ERROR"}
guide for more information.

:::

Expand Down
8 changes: 4 additions & 4 deletions src/guides/build-iapp/manage-access.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@
shows you how to use the iExec SDK CLI to create and manage your app orders.

For complete SDK documentation, check the
[iExec SDK GitHub repository](https://github.com/iExecBlockchainComputing/iexec-sdk).
[iExec SDK documentation](/references/sdk).

:::

Expand Down Expand Up @@ -67,7 +67,8 @@
### Step 1: Install the iExec SDK

Since iApp Generator doesn't handle orders yet, you need to use the iExec SDK
CLI:
CLI. For detailed installation instructions, see the

Check warning on line 70 in src/guides/build-iapp/manage-access.md

View workflow job for this annotation

GitHub Actions / vale

[vale] src/guides/build-iapp/manage-access.md#L70

[Google.WordList] Use 'command-line tool' instead of 'CLI'.
Raw output
{"message": "[Google.WordList] Use 'command-line tool' instead of 'CLI'.", "location": {"path": "src/guides/build-iapp/manage-access.md", "range": {"start": {"line": 70, "column": 1}}}, "severity": "WARNING"}
[iExec SDK documentation](/references/sdk).

::: code-group

Expand Down Expand Up @@ -304,8 +305,7 @@

### Technical deep dive

- **[iExec SDK Documentation](https://github.com/iExecBlockchainComputing/iexec-sdk)** -
Complete CLI reference
- **[iExec SDK Documentation](/references/sdk)** - Complete CLI reference

Check warning on line 308 in src/guides/build-iapp/manage-access.md

View workflow job for this annotation

GitHub Actions / vale

[vale] src/guides/build-iapp/manage-access.md#L308

[Google.WordList] Use 'command-line tool' instead of 'CLI'.
Raw output
{"message": "[Google.WordList] Use 'command-line tool' instead of 'CLI'.", "location": {"path": "src/guides/build-iapp/manage-access.md", "range": {"start": {"line": 308, "column": 61}}}, "severity": "WARNING"}

<script setup>
import { computed } from 'vue';
Expand Down
2 changes: 0 additions & 2 deletions src/guides/build-iapp/outputs.md
Original file line number Diff line number Diff line change
Expand Up @@ -145,5 +145,3 @@ Continue building with these guides:
Control who can use your iApp
- **[Debugging Your iApp](/guides/build-iapp/debugging)** - Troubleshoot
execution issues
- **[How to Get and Decrypt Results](/guides/use-iapp/getting-started)** -
User-side result handling
5 changes: 3 additions & 2 deletions src/guides/manage-data/manage-access.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,10 @@ DataProtector lets you encrypt data and control access through orders -
specifying who can use it, how many times, and at what price. Protected data is
only accessible in secure enclaves (TEEs) by authorized users and iApp.

## Installation
## Prerequisites

First, install DataProtector in your project:
First, install DataProtector in your project (for more details see
[DataProtector Getting Started](/references/dataProtector/getting-started)):

::: code-group

Expand Down
79 changes: 0 additions & 79 deletions src/guides/use-iapp/getting-started.md

This file was deleted.

84 changes: 0 additions & 84 deletions src/guides/use-iapp/introduction.md

This file was deleted.

25 changes: 25 additions & 0 deletions src/guides/use-iapp/run-iapp-with-ProtectedData.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,31 @@ inputs that come directly from you (the requester) and can change between each
execution: Arguments, Input Files, and Secrets. These non-persistent inputs are
perfect for customizing the iApp's behavior for each specific run.

## Prerequisites

First, install DataProtector in your project (for more details see
[DataProtector Getting Started](/references/dataProtector/getting-started)):

::: code-group

```bash [npm]
npm install @iexec/dataprotector
```

```bash [yarn]
yarn add @iexec/dataprotector
```

```bash [pnpm]
pnpm add @iexec/dataprotector
```

```bash [bun]
bun add @iexec/dataprotector
```

:::

## Adding Protected Data

When working with protected data that contains multiple files, you can specify
Expand Down
3 changes: 2 additions & 1 deletion src/guides/use-iapp/run-iapp-without-ProtectedData.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,8 @@ configuration to enable processing and customize functionality.

## Prerequisites

Before you begin, make sure you have the iExec SDK installed.
First, install iExec SDK in your project (for more details see
[iExec SDK documentation](/references/sdk)):

::: code-group

Expand Down
2 changes: 1 addition & 1 deletion src/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -134,7 +134,7 @@ features:
details:
Execute privacy-preserving apps like Web3Mail and Web3Telegram. Use what
others built, extend what you need.
link: /guides/use-iapp/introduction
link: /guides/use-iapp/run-iapp-with-ProtectedData
- icon:
<svg class="_fill" width="37" height="36" viewBox="0 0 37 36" fill="none"
xmlns="http://www.w3.org/2000/svg"> <path d="M35.2516 10.9932C34.345
Expand Down
Loading
Loading