Skip to content
Merged
Show file tree
Hide file tree
Changes from 11 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
25 changes: 6 additions & 19 deletions src/guides/build-iapp/advanced/build-your-first-tdx-iapp.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,11 +11,13 @@
application with Intel TDX technology using both traditional deployment and the
iApp Generator.

:::danger ⚠️ EXPERIMENTAL FEATURE
::: info **Experimental Feature**

**TDX support is currently experimental and should NOT be used in production.**
This feature is provided for testing and development purposes only. Expect
instabilities, limited compatibility, and potential outages.
TDX support is currently in experimental phase:

- Stability and confidentiality features are still being tested and refined.

Check notice on line 18 in src/guides/build-iapp/advanced/build-your-first-tdx-iapp.md

View workflow job for this annotation

GitHub Actions / vale

[vale] src/guides/build-iapp/advanced/build-your-first-tdx-iapp.md#L18

[Google.Passive] In general, use active voice instead of passive voice ('being tested').
Raw output
{"message": "[Google.Passive] In general, use active voice instead of passive voice ('being tested').", "location": {"path": "src/guides/build-iapp/advanced/build-your-first-tdx-iapp.md", "range": {"start": {"line": 18, "column": 52}}}, "severity": "INFO"}
- Features may evolve based on user feedback, please share your experience on
[Discord](https://discord.com/invite/pbt9m98wnU).

:::

Expand All @@ -24,21 +26,6 @@
**[Intel TDX Technology](/protocol/tee/intel-tdx)** guide for comprehensive
explanations of TDX technology and its benefits.

::: info

**Request access to the experimental feature**

- The TDX-powered workerpool is currently in a development environment and not
intended for production use.
- Expect occasional instability or incomplete features. Service is subject to
change or discontinuation
- Development environment only - do not share sensitive data or secrets.
- Please share any bug reports, suggestions for improvement, or general feedback
on your experience.
- To request early access, please [contact us](https://discord.gg/9h25DQFSCU)

:::

## Prerequisites

- [Docker](https://docs.docker.com/install/) 17.05 or higher on the daemon and
Expand Down
56 changes: 32 additions & 24 deletions src/protocol/pay-per-task.md
Original file line number Diff line number Diff line change
@@ -1,34 +1,42 @@
---
title: Pay Per Task Model
description:
Pricing model and task categories for iExec protocol, including computing and
deal time limits.
---
# Task size: pay-per-task

Check warning on line 1 in src/protocol/pay-per-task.md

View workflow job for this annotation

GitHub Actions / vale

[vale] src/protocol/pay-per-task.md#L1

[Google.Headings] 'Task size: pay-per-task' should use sentence-style capitalization.
Raw output
{"message": "[Google.Headings] 'Task size: pay-per-task' should use sentence-style capitalization.", "location": {"path": "src/protocol/pay-per-task.md", "range": {"start": {"line": 1, "column": 3}}}, "severity": "WARNING"}

# Pay per task model
Pay-per-task categories, time limits, and claim rules.

We are introducing a new method for pricing and we have defined several task
categories that describe the execution boundaries. We'll setup a test
infrastructure so that application developers can evaluate the category of their
submissions. Conversely, worker pools will be able to benchmark their
infrastructures against the reference machine.
## Pay-per-task model

In the future, we'll redefine the categories, and provide more advanced tools
for helping developers to maximize the usage of the infrastructure
We base the pay-per-task model on task size categories. Each category defines

Check warning on line 7 in src/protocol/pay-per-task.md

View workflow job for this annotation

GitHub Actions / vale

[vale] src/protocol/pay-per-task.md#L7

[Google.We] Try to avoid using first-person plural like 'We'.
Raw output
{"message": "[Google.We] Try to avoid using first-person plural like 'We'.", "location": {"path": "src/protocol/pay-per-task.md", "range": {"start": {"line": 7, "column": 1}}}, "severity": "WARNING"}
two limits:

- Maximum Computing Time (C): per-task execution time on the worker. If the task

Check notice on line 10 in src/protocol/pay-per-task.md

View workflow job for this annotation

GitHub Actions / vale

[vale] src/protocol/pay-per-task.md#L10

[Google.Parens] Use parentheses judiciously.
Raw output
{"message": "[Google.Parens] Use parentheses judiciously.", "location": {"path": "src/protocol/pay-per-task.md", "range": {"start": {"line": 10, "column": 26}}}, "severity": "INFO"}
exceeds C, the worker stops the task and marks it as failed.
- Maximum Deal Time (D): overall time window for a task in the deal. If the task

Check notice on line 12 in src/protocol/pay-per-task.md

View workflow job for this annotation

GitHub Actions / vale

[vale] src/protocol/pay-per-task.md#L12

[Google.Parens] Use parentheses judiciously.
Raw output
{"message": "[Google.Parens] Use parentheses judiciously.", "location": {"path": "src/protocol/pay-per-task.md", "range": {"start": {"line": 12, "column": 21}}}, "severity": "INFO"}
isn’t completed within D, the requester can claim the task. On claim, the
requester can recover the RLC engaged for this task.

**Categories Description:**

| **Category** | **Maximum Computing Time (C)** | **Maximum Deal Time (D)** |
| ------------ | ------------------------------ | ------------------------- |
| 0 – XS | 5 min | 50 min |
| 1 – S | 20 min | 200 min (3h20m) |
| 1 – S | 20 min | 200 min |

Check failure on line 21 in src/protocol/pay-per-task.md

View workflow job for this annotation

GitHub Actions / vale

[vale] src/protocol/pay-per-task.md#L21

[Google.EmDash] Don't put a space before or after a dash.
Raw output
{"message": "[Google.EmDash] Don't put a space before or after a dash.", "location": {"path": "src/protocol/pay-per-task.md", "range": {"start": {"line": 21, "column": 4}}}, "severity": "ERROR"}
| 2 – M | 1 hour | 10h |
| 3 – L | 3 hour | 30h (1d6h) |
| 4 – XL | 10 hour | 100h (4d4h) |

- Each worker will allocate **C** minutes to compute the application. If the
computation is not completed within this **Maximum Computing Time**, the
running application will be stopped.
- From a buyer perspective, a requester will be able to claim a task of a deal
after **D** minutes if the task is not completed within the **Maximum Deal
Time**.
| 3 – L | 3 hours | 30h |

Check failure on line 23 in src/protocol/pay-per-task.md

View workflow job for this annotation

GitHub Actions / vale

[vale] src/protocol/pay-per-task.md#L23

[Google.EmDash] Don't put a space before or after a dash.
Raw output
{"message": "[Google.EmDash] Don't put a space before or after a dash.", "location": {"path": "src/protocol/pay-per-task.md", "range": {"start": {"line": 23, "column": 4}}}, "severity": "ERROR"}

Check failure on line 23 in src/protocol/pay-per-task.md

View workflow job for this annotation

GitHub Actions / vale

[vale] src/protocol/pay-per-task.md#L23

[Google.Units] Put a nonbreaking space between the number and the unit in '30h'.
Raw output
{"message": "[Google.Units] Put a nonbreaking space between the number and the unit in '30h'.", "location": {"path": "src/protocol/pay-per-task.md", "range": {"start": {"line": 23, "column": 51}}}, "severity": "ERROR"}
| 4 – XL | 10 hours | 100h |

Check failure on line 24 in src/protocol/pay-per-task.md

View workflow job for this annotation

GitHub Actions / vale

[vale] src/protocol/pay-per-task.md#L24

[Google.EmDash] Don't put a space before or after a dash.
Raw output
{"message": "[Google.EmDash] Don't put a space before or after a dash.", "location": {"path": "src/protocol/pay-per-task.md", "range": {"start": {"line": 24, "column": 4}}}, "severity": "ERROR"}

Check failure on line 24 in src/protocol/pay-per-task.md

View workflow job for this annotation

GitHub Actions / vale

[vale] src/protocol/pay-per-task.md#L24

[Google.Units] Put a nonbreaking space between the number and the unit in '100h'.
Raw output
{"message": "[Google.Units] Put a nonbreaking space between the number and the unit in '100h'.", "location": {"path": "src/protocol/pay-per-task.md", "range": {"start": {"line": 24, "column": 51}}}, "severity": "ERROR"}

- Worker allocates up to C per task. Beyond C, the worker stops the task.
- Requesters can claim the task after D if the task isn’t completed.

Check failure on line 27 in src/protocol/pay-per-task.md

View workflow job for this annotation

GitHub Actions / vale

[vale] src/protocol/pay-per-task.md#L27

[Vale.Terms] Use 'requesters' instead of 'Requesters'.
Raw output
{"message": "[Vale.Terms] Use 'requesters' instead of 'Requesters'.", "location": {"path": "src/protocol/pay-per-task.md", "range": {"start": {"line": 27, "column": 3}}}, "severity": "ERROR"}

## How to pick a category: quick guide

Use this decision table to choose a safe category for your workload.

| **Typical workload** | **Suggested category** |
| ------------------------------------- | ---------------------- |
| Short scripts / small data processing | Cat 0–1 |
| Medium data processing / 10-15min | Cat 2 |

Check failure on line 36 in src/protocol/pay-per-task.md

View workflow job for this annotation

GitHub Actions / vale

[vale] src/protocol/pay-per-task.md#L36

[Google.Units] Put a nonbreaking space between the number and the unit in '15min'.
Raw output
{"message": "[Google.Units] Put a nonbreaking space between the number and the unit in '15min'.", "location": {"path": "src/protocol/pay-per-task.md", "range": {"start": {"line": 36, "column": 31}}}, "severity": "ERROR"}
| Heavy ML inference / long simulations | Cat 3–4 |

Use the iExec SDK to **set the category** in app, request, or workerpool

Check failure on line 39 in src/protocol/pay-per-task.md

View workflow job for this annotation

GitHub Actions / vale

[vale] src/protocol/pay-per-task.md#L39

[Vale.Terms] Use 'Workerpool' instead of 'workerpool'.
Raw output
{"message": "[Vale.Terms] Use 'Workerpool' instead of 'workerpool'.", "location": {"path": "src/protocol/pay-per-task.md", "range": {"start": {"line": 39, "column": 63}}}, "severity": "ERROR"}
orders.
For commands and examples, see the
[iExec SDK Github repository](https://github.com/iExecBlockchainComputing/iexec-sdk/blob/master/docs/README.md).