Skip to content
Merged
Show file tree
Hide file tree
Changes from all 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