diff --git a/docs/cli/commands/files/delete.md b/docs/cli/commands/files/delete.md index 6040a43f..6755e31d 100644 --- a/docs/cli/commands/files/delete.md +++ b/docs/cli/commands/files/delete.md @@ -17,8 +17,6 @@ The resource JSON file is created as a result of the [`files upload`](/cli/comma [--help | -h] ``` -Read about the Super Protocol [command syntax](/cli/commands#command-syntax). - ## Arguments | **Name** | **Description** | @@ -34,8 +32,6 @@ Read about the Super Protocol [command syntax](/cli/commands#command-syntax). ## Example -The following command deletes a file in remote storage using the information in the `resource-old-data.json` file located in the SPCTL root directory: - ``` ./spctl files delete ./resource-old-data.json ``` \ No newline at end of file diff --git a/docs/cli/commands/files/download.md b/docs/cli/commands/files/download.md index 0c380c3f..cc331e9b 100644 --- a/docs/cli/commands/files/download.md +++ b/docs/cli/commands/files/download.md @@ -17,8 +17,6 @@ The resource JSON file is created as a result of the [`files upload`](/cli/comma [--help | -h] ``` -Read about the Super Protocol [command syntax](/cli/commands#command-syntax). - ## Arguments | **Name** | **Description** | @@ -35,8 +33,6 @@ Read about the Super Protocol [command syntax](/cli/commands#command-syntax). ## Example -The following command downloads and decrypts a file from remote storage using the information in the `resource-data.json` file located in the SPCTL root directory. The downloaded file will appear in the SPCTL root directory. - ``` ./spctl files download ./resource-data.json ./ ``` \ No newline at end of file diff --git a/docs/cli/commands/files/index.md b/docs/cli/commands/files/index.md index 51f7ac40..60f8a146 100644 --- a/docs/cli/commands/files/index.md +++ b/docs/cli/commands/files/index.md @@ -6,7 +6,7 @@ sidebar_position: 3 --- -This command group contains commands to manage files in third-party storage such as Storj. +This group contains commands to manage files in third-party storage such as Storj. Most of these commands require a Storj account and SPCTL configured to use it. Refer to the [Set up Storj](/cli/#set-up-storj-access-optional) section to create a bucket and access grants and set up SPCTL. @@ -16,4 +16,4 @@ Most of these commands require a Storj account and SPCTL configured to use it. R | :- | :- | | [files delete](/cli/commands/files/delete) | Deletes a file in remote storage. | | [files download](/cli/commands/files/download) | Downloads and decrypt a file from remote storage. | -| [files upload](/cli/commands/files/upload) | Uploads a file to remote storage or creates a storage order. | \ No newline at end of file +| [files upload](/cli/commands/files/upload) | Uploads a file to remote storage. | \ No newline at end of file diff --git a/docs/cli/commands/files/upload.md b/docs/cli/commands/files/upload.md index 5cc3906d..51a37435 100644 --- a/docs/cli/commands/files/upload.md +++ b/docs/cli/commands/files/upload.md @@ -9,7 +9,7 @@ Uploads a file to remote storage such as Storj. The primary purpose of this command is to make the uploading files available for download and execution. This is necessary in two cases: -- With the [`workflows create`](/cli/commands/workflows/create) command, **users** can add the uploaded solution or data to an order instead of a Marketplace offer. In this case, a short-term storage period is enough. +- With the [`workflows create`](/cli/commands/workflows/create) command, **users** can add the uploaded solution or data to an order instead of an offer. In this case, a short-term storage period is enough. - Solution and data **providers** can store the contents of their offers to make them available for customers' orders. This requires a long-term storage period. Depending on the options, the command provides two ways to upload and store the files. Choose one that suits you better: @@ -36,8 +36,6 @@ The output of the command is a resource JSON file with the information for a com [--help | -h] ``` -Read about the Super Protocol [command syntax](/cli/commands#command-syntax). - ## Arguments | **Name** | **Description** | @@ -51,24 +49,16 @@ Read about the Super Protocol [command syntax](/cli/commands#command-syntax). | `--filename ` | Desired name of the resulting file in storage. The default is a random string. | | `--output ` | Path to save the output resource JSON file. The default is `./resource.json`. | | `--skip-encryption` | Flag to skip file encryption before uploading. The default is `false`. | -| `--metadata ` | Path to a metadata file for adding fields to the resource JSON file. This file is generated by the [solutions prepare](/cli/commands/solutions/prepare) command. | +| `--metadata ` | Path to a metadata file for adding fields to the resource JSON file. This file is generated by the [`solutions prepare`](/cli/commands/solutions/prepare) command. | | `--max-concurrent ` | Maximum concurrent pieces to upload at once per transfer to limit the number of threads. Use only when dealing with a memory-constrained environment. | -| `--storage ` | Option to use a storage offer. State the storage offer ID and the requirement slot ID, separated by a comma. | +| `--storage ` | Option to use a storage offer. State the IDs of the offer and the requirement slot, separated by a comma. | | `--min-rent-minutes ` | Storage lease period in minutes. Use this option together with `--storage`. The default is `60`. | | `--config ` | Path to the SPCTL configuration file. The default is `./config.json`. | | `--help`, `-h` | Help for the command. | ## Examples -The following are three examples of using the `workflows create` command: - -- Uploading to remote storage -- Creating a storage order -- Using additional options. - -### Example 1. Upload to remote storage directly - -The following command uploads the `content.tar.gz` file located in the SPCTL root directory: +### Example 1. Upload to storage directly ``` ./spctl files upload content.tar.gz @@ -76,24 +66,20 @@ The following command uploads the `content.tar.gz` file located in the SPCTL roo To execute this command successfully, you need a Storj account and SPCTL configured to use it. Refer to the [Set up Storj](/cli#set-up-storj-access-optional) section to create a bucket and access grants and set up SPCTL. -### Example 2. Upload by creating a storage order - -The following command uploads the `content.tar.gz` located in the SPCTL root directory: +### Example 2. Upload and create a storage order ``` -./spctl files upload content.tar.gz --storage 25,33 --min-rent-minutes 120 +./spctl files upload content.tar.gz --storage 47,49 --min-rent-minutes 120 ``` Where: -- `--storage 25,33`: create a storage order using the [Storj DCS Offer](https://marketplace.superprotocol.com/storage?offer=offerId%3D25&tab=pricing) (offer ID: 25) and the requirement slot with ID 33. -- `--min-rent-minutes 120`: set the lease period for 120 minutes. +- `--storage 47,49`: Create a storage order using the [Storj DCS Offer](https://marketplace.superprotocol.com/storage?offer=offerId%3D47&tab=pricing) (offer ID: 47) and the requirement slot with ID 49. +- `--min-rent-minutes 120`: Set the lease period for 120 minutes. Since the `--storage` option is set, the command does not require a Storj account. However, when the lease period is over, the content will become unavailable unless you [replenish the order deposit](/cli/commands/orders/replenish-deposit). -### Example 3. Use additional options - -The following command uploads the `content.tar.gz` file located in the `data` directory in the SPCTL root directory: +### Example 3. Upload using additional options ``` ./spctl files upload ./data/content.tar.gz \ @@ -103,10 +89,3 @@ The following command uploads the `content.tar.gz` file located in the `data` di --storage 25,33 \ --min-rent-minutes 120 ``` - -Where: - -- `--filename data.tar.gz`: name the uploaded file `data.tar.gz` -- `--output ./data-resource.json`: name the output resource JSON file `data-resource.json` and save it to the SPCTL root directory -- `--metadata ./meta.json`: add the `meta.json` metadata file to the resource file during the upload -- Other options are explained in the previous example. diff --git a/docs/cli/commands/index.md b/docs/cli/commands/index.md index 6d5cce59..a7e8ff1c 100644 --- a/docs/cli/commands/index.md +++ b/docs/cli/commands/index.md @@ -5,21 +5,19 @@ slug: "/commands" sidebar_position: 2 --- -This section contains the list of commands for the Super Protocol CLI tool SPCTL. - -[Configure SPCTL](/cli) before using these commands. Also keep in mind [testnet limitations](/marketplace/limitations). +This section contains Super Protocol CLI commands. [Install and configure SPCTL](/cli) to access the CLI. ## Command groups | **Group** | **Description** | | :- | :- | | [tokens](/cli/commands/tokens) | Receive SPPI and BNB test tokens; **testnet only**. | -| [solutions](/cli/commands/solutions) | Prepare a solution for deployment. | +| [solutions](/cli/commands/solutions) | Prepare a solution for deployment. | | [files](/cli/commands/files) | Manage files in decentralized storage. | -| [workflows](/cli/commands/workflows) | Create a new order. | +| [workflows](/cli/commands/workflows) | Create a new order. | | [orders](/cli/commands/orders) | Manage your orders. | -| [offers](/cli/commands/offers) | View and manage Marketplace offers. | -| [providers](/cli/commands/providers) | View and manage offer providers. | +| [offers](/cli/commands/offers) | View and manage Marketplace offers. | +| [providers](/cli/commands/providers) | View and manage providers. | | [quotes](/cli/commands/quotes) | Verify the authenticity and integrity of a Trusted Execution Environment. | ## Command syntax @@ -35,14 +33,13 @@ _Command groups_ contain functionally related commands. Check the complete list _Commands_ perform a specific function, like placing an order or showing the list of providers. For example, the [`tokens`](/cli/commands/tokens) command group includes the following commands: -- [`balance`](/cli/commands/tokens/balance): checks the balance -- [`request`](/cli/commands/tokens/request): requests testnet tokens. -_Options_ modify the command behavior and are prefixed by double hyphen `--`. For example, `--help` is an option that displays help information for a command. +- [`balance`](/cli/commands/tokens/balance): Checks the balance. +- [`request`](/cli/commands/tokens/request): Requests testnet tokens. -_Arguments_ provide values for commands and options. Arguments that follow a command are always required by the command and mandatory to use. Arguments that follow an option can be mandatory—required by the option—or be optional. Angle brackets `< >` indicate argument placeholders in the command syntax. When executing a command, replace placeholders, including the brackets, with values. For example, replace `` with `5` for [Python Base Image](https://marketplace.superprotocol.com/?offer=offerId%3D5) (offer ID: 5). +_Options_ modify the command behavior and are prefixed by double hyphen `--`; for example, `--help`. Options can be mandatory or optional. -Options, too, can be mandatory—required by the command—or be optional. Note that most options require at least one argument, although exceptions exist. +_Arguments_ provide values for commands and options. Angle brackets `< >` indicate argument placeholders in the command syntax. When executing a command, replace placeholders, including the brackets, with values. For example, replace `` with `12` for [Python Base Image](https://marketplace.superprotocol.com/?offer=offerId%3D12). Command syntax may also contain the following special characters: @@ -61,13 +58,15 @@ The following is a mandatory option `--solution` of the [`workflows create`](/cl --solution {,[] | } ``` -The format `{,[] | }` requires you to choose either `,[]` or ``: -- `,[]` are a mandatory argument `` and an optional argument `` (note the square brackets `[ ]`), separated by a comma. -- `` is a mandatory argument. +The format `{,[] | }` requires you to choose one of the following: + +- `,[]`: a mandatory argument `` and an optional argument ``, separated by a comma. +- ``: a mandatory argument. So, the final format of this option must be one of the following: + - `--solution `. For example, `--solution 13`. - `--solution ,`. For example, `--solution 13,15`. - `--solution `. For example, `--solution ./python-solution.json`. -Read the descriptions of arguments and options and refer to the examples for more information. If you have any issues or questions, contact Super Protocol on [Discord](https://discord.gg/superprotocol). \ No newline at end of file +Read the descriptions of arguments and options and refer to the examples for more information. If you have any issues or questions, contact the Super Protocol team on [Discord](https://discord.gg/superprotocol) or via the [contact form](https://superprotocol.zendesk.com/hc/en-us/requests/new) for assistance. \ No newline at end of file diff --git a/docs/cli/commands/offers/add-slot.md b/docs/cli/commands/offers/add-slot.md index 2632b178..ec955107 100644 --- a/docs/cli/commands/offers/add-slot.md +++ b/docs/cli/commands/offers/add-slot.md @@ -6,92 +6,82 @@ sidebar_label: "add-slot" sidebar_position: 8 --- -Creates an additional [requirement slot](/fundamentals/slots#requirements) in an offer using the information in an offer slot JSON file. +Adds a slot to an offer. -Refer to the [Providers and Offers] guide to create the initial offer requirements. - -**Important:** This command requires SPCTL with the [provider configuration file](/cli/#configure-spctl-for-providers). +**Important:** This command requires SPCTL with a [provider configuration file](/cli/#configure-spctl-for-providers). ## Syntax ``` ./spctl offers add-slot --offer - [--path ] + [--path ] [--config ] [--help | -h] ``` -Read about the Super Protocol [command syntax](/cli/commands#command-syntax). - ## Arguments -| **Name** | **Description** | +| **Name** | **Description** | | :- | :- | | `` | Type of the offer: `tee` for a compute offer or `value` for a solution, data, or storage offer. | ## Options -| **Name** | **Description** | +| **Name** | **Description** | | :- | :- | -| `--offer ` | ID of the offer. | -| `--path ` | Path to the offer slot JSON file. The default is `./offerSlot.json`. | -| `--config ` | Path to the SPCTL configuration file. The default is `./config.json`. | -| `--help`, `-h` | Help for the command. | - -## Offer slot file - -The offer slot JSON file must contain the following objects and strings: - -- `info`: object with computing power configuration - + `cpuCores`: number of CPU cores required, a float value - + `gpuCores`: number of GPU cores required, a float value - + `diskUsage`: bytes - + `ram`: bytes -- `usage`: object with terms and conditions of usage - + `maxTimeMinutes`: minutes; `0` for no limit - + `minTimeMinutes`: minutes; `0` for no limit - + `price`: denominations of SPPI token - + `priceType`: `1` for fixed price, `0` for price per hour; learn more about [price types](/fundamentals/orders#cost-and-pricing) -- `option`: object with internet access configuration (only for value offers) - + `bandwidth`: bits per second - + `traffic`: bytes - + `externalPort`: `1` for yes, `0` for no - -Offer slot JSON file template with example values: - -```json title="offer-new-slot.json" +| `--offer ` | Offer ID. | +| `--path ` | Path to a slot-info JSON file. The default is `./slotInfo.json`. | +| `--config ` | Path to the SPCTL configuration file. The default is `./config.json`. | +| `--help`, `-h` | Help for the command. | + +## Slot info + +A slot-info JSON file must contain the following objects: + +- `info`: An object with requirements: + - `cpuCores`: The number of virtual CPU cores, a float value. + - `gpuCores`: The number of virtual GPU cores, a float value. + - `diskUsage`: Disk space in bytes. + - `ram`: RAM in bytes. + - `vram`: Video RAM in bytes. +- `usage`: An object with terms and conditions of usage: + - `maxTimeMinutes`: Maximum lease duration limits in minutes; `0` for no limit. + - `minTimeMinutes`: Minimum lease duration limits in minutes; `0` for no limit. + - `price`: Lease price in denominations of SPPI token (1018 = 1 SPPI). + - `priceType`: [Pricing type](/fundamentals/orders#cost-and-pricing): `1` for fixed price, `0` for price per hour. +- `option`: An object with internet access requirements (only for value offers): + - `bandwidth`: Data transfer rate in bits per second. + - `traffic`: Total required data transfer usage in bytes. + - `externalPort`: `1` for yes, `0` for no. + +A template with example values: + +```json title="slotInfo.json" { - "info": { - "cpuCores": 3, - "gpuCores": 0, - "diskUsage": 536870912, - "ram": 34359738368 + "info":{ + "cpuCores":3, + "gpuCores":0, + "diskUsage":16106127360, + "ram":34359738368, + "vram":0 }, - "usage": { - "maxTimeMinutes": 0, - "minTimeMinutes": 60, - "price": "400000000000000000", - "priceType": "1" + "usage":{ + "maxTimeMinutes":0, + "minTimeMinutes":60, + "price":"400000000000000000", + "priceType":"1" }, - "option": { - "bandwidth": 0, - "traffic": 0, - "externalPort": 0 + "option":{ + "bandwidth":0, + "traffic":0, + "externalPort":0 } } ``` -Note that some of the data is represented differently in the Marketplace GUI: -- `diskUsage` and `ram` values are converted to gibibytes (GiB) by the formula `initialValue / (1024 ^ 3)` -- `price` value is converted to SPPI tokens by the formula `initialValue / (10 ^ 18)` -- `bandwidth` value is converted to megabits per second (Mbps) by the formula `initialValue / (10 ^ 6)` -- `traffic` value is converted to gigabytes (GB) by the formula `initialValue / (10 ^ 9)` - ## Example -The following command adds a new requirement slot to a value offer with ID 39 using the `offer-new-slot.json` file located in the SPCTL directory: - ``` -./spctl offers add-slot value --offer 39 --path ./offer-new-slot.json +./spctl offers add-slot value --offer 39 --path ./new-slot.json ``` \ No newline at end of file diff --git a/docs/cli/commands/offers/delete-slot.md b/docs/cli/commands/offers/delete-slot.md index 1b1de4f2..a35bc860 100644 --- a/docs/cli/commands/offers/delete-slot.md +++ b/docs/cli/commands/offers/delete-slot.md @@ -6,9 +6,9 @@ sidebar_label: "delete-slot" sidebar_position: 10 --- -Deletes a [requirement slot](/fundamentals/slots#requirements) in an [offer](/fundamentals/offers). +Deletes a slot in an offer. -**Important:** This command requires SPCTL with the [provider configuration file](/cli/#configure-spctl-for-providers). +**Important:** This command requires SPCTL with a [provider configuration file](/cli/#configure-spctl-for-providers). Use the [`offers get`](/cli/commands/offers/get) command to get the IDs of all slots in an offer. Use the [`offers get-slot`](/cli/commands/offers/get-slot) command to get additional information on a slot. @@ -22,8 +22,6 @@ Use the [`offers get`](/cli/commands/offers/get) command to get the IDs of all s [--help | -h] ``` -Read about the Super Protocol [command syntax](/cli/commands#command-syntax). - ## Arguments | **Name** | **Description** | @@ -34,15 +32,13 @@ Read about the Super Protocol [command syntax](/cli/commands#command-syntax). | **Name** | **Description** | | :- | :- | -| `--offer ` | ID of the offer. | -| `--slot ` | ID of the slot. | +| `--offer ` | Offer ID. | +| `--slot ` | Slot ID. | | `--config ` | Path to the SPCTL configuration file. The default is `./config.json`. | | `--help`, `-h` | Help for the command. | ## Example -The following command deletes a requirement slot with ID 47 in a value offer with ID 39: - ``` ./spctl offers delete-slot value --offer 39 --slot 47 ``` \ No newline at end of file diff --git a/docs/cli/commands/offers/disable.md b/docs/cli/commands/offers/disable.md index 8070ebaf..b8e46329 100644 --- a/docs/cli/commands/offers/disable.md +++ b/docs/cli/commands/offers/disable.md @@ -6,9 +6,9 @@ sidebar_label: "disable" sidebar_position: 6 --- -Disables an existing enabled offer. +Disables an existing enabled offer. -**Important:** This command requires SPCTL with the [provider configuration file](/cli/#configure-spctl-for-providers). +**Important:** This command requires SPCTL with a [provider configuration file](/cli/#configure-spctl-for-providers). ## Syntax @@ -18,13 +18,11 @@ Disables an existing enabled offer. [--help | -h] ``` -Read about the Super Protocol [command syntax](/cli/commands#command-syntax). - ## Arguments | **Name** | **Description** | | :- | :- | -| `` | ID of the offer. | +| `` | Offer ID. | ## Option @@ -35,8 +33,6 @@ Read about the Super Protocol [command syntax](/cli/commands#command-syntax). ## Example -The following command disables the offer with ID 39: - ``` -./spctl offers enable 39 +./spctl offers disable 39 ``` \ No newline at end of file diff --git a/docs/cli/commands/offers/download-content.md b/docs/cli/commands/offers/download-content.md index 75798795..9dcf5a10 100644 --- a/docs/cli/commands/offers/download-content.md +++ b/docs/cli/commands/offers/download-content.md @@ -6,7 +6,7 @@ sidebar_label: "download-content" sidebar_position: 4 --- -Downloads the content of an offer. +Downloads the content of an offer. The command only works with offers that allow this operation. @@ -19,13 +19,11 @@ The command only works with offers that allow this operation. [--help | -h] ``` -Read about the Super Protocol [command syntax](/cli/commands#command-syntax). - ## Arguments | **Name** | **Description** | | :- | :- | -| `` | ID of the offer. | +| `` | Offer ID. | ## Options @@ -37,8 +35,6 @@ Read about the Super Protocol [command syntax](/cli/commands#command-syntax). ## Example -The following command downloads the content of the [Python Base Image](https://marketplace.superprotocol.com/?offer=offerId%3D5) (offer ID: 5): - ``` -./spctl offers download-content 5 +./spctl offers download-content 12 ``` \ No newline at end of file diff --git a/docs/cli/commands/offers/enable.md b/docs/cli/commands/offers/enable.md index 21c61ddc..37510cea 100644 --- a/docs/cli/commands/offers/enable.md +++ b/docs/cli/commands/offers/enable.md @@ -6,9 +6,9 @@ sidebar_label: "enable" sidebar_position: 7 --- -Enables an existing disabled offer. +Enables an existing disabled offer. -**Important:** This command requires SPCTL with the [provider configuration file](/cli/#configure-spctl-for-providers). +**Important:** This command requires SPCTL with a [provider configuration file](/cli/#configure-spctl-for-providers). ## Syntax @@ -18,13 +18,11 @@ Enables an existing disabled offer. [--help | -h] ``` -Read about the Super Protocol [command syntax](/cli/commands#command-syntax). - ## Arguments | **Name** | **Description** | | :- | :- | -| `` | ID of the offer. | +| `` | Offer ID. | ## Options @@ -35,8 +33,6 @@ Read about the Super Protocol [command syntax](/cli/commands#command-syntax). ## Example -The following command enables the offer with ID 39: - ``` ./spctl offers enable 39 ``` \ No newline at end of file diff --git a/docs/cli/commands/offers/get-info.md b/docs/cli/commands/offers/get-info.md index 688820ec..aa847180 100644 --- a/docs/cli/commands/offers/get-info.md +++ b/docs/cli/commands/offers/get-info.md @@ -6,7 +6,7 @@ sidebar_label: "get-info" sidebar_position: 3 --- -Displays the information on an offer as stored on the blockchain. +Displays the information on an offer as stored on the blockchain. ## Syntax @@ -17,33 +17,23 @@ Displays the information on an offer as stored on the blockchain. [--help | -h] ``` -Read about the Super Protocol [command syntax](/cli/commands#command-syntax). - ## Arguments -| **Name** | **Description** | +| **Name** | **Description** | | :- | :- | | `` | Type of the offer: `tee` for a compute offer or `value` for a solution, data, or storage offer. | -| `` | ID of the offer. | +| `` | Offer ID. | ## Option -| **Name** | **Description** +| **Name** | **Description** | :- | :- | | `--save-to ` | Path to save the output to a file. | -| `--config ` | Path to the SPCTL configuration file. The default is `./config.json`. | -| `--help`, `-h` | Help for the command. | +| `--config ` | Path to the SPCTL configuration file. The default is `./config.json`. | +| `--help`, `-h` | Help for the command. | ## Example -The following command displays information on the data offer [Image Classification Dataset #2](https://marketplace.superprotocol.com/data?offer=offerId%3D19) (offer ID: 19), as stored on the blockchain: - -``` -./spctl offers get-info value 19 --save-to ./offer-19.json ``` - -Where: - -- `value`: type of the offer -- `19`: offer ID -- `--save-to ./offer-19.json`: path to the file for the output. \ No newline at end of file +./spctl offers get-info value 30 --save-to ./offer-30.json +``` \ No newline at end of file diff --git a/docs/cli/commands/offers/get-option.md b/docs/cli/commands/offers/get-option.md index 207fd5ac..2097992b 100644 --- a/docs/cli/commands/offers/get-option.md +++ b/docs/cli/commands/offers/get-option.md @@ -6,7 +6,7 @@ sidebar_label: "get-option" sidebar_position: 12 --- -Displays the information on a [configuration option](/fundamentals/slots) of a compute offer. +Displays the information on a [configuration option](/fundamentals/slots) of a compute offer. ## Syntax @@ -18,21 +18,17 @@ Displays the information on a [configuration option](/fundamentals/slots) of a c [--help | -h] ``` -Read about the Super Protocol [command syntax](/cli/commands#command-syntax). - ## Options | **Name** | **Description** | | :- | :- | -| `--offer ` | ID of the offer. | -| `--option ` | ID of the configuration option. | +| `--offer ` | Offer ID. | +| `--option ` | Configuration option ID. | | `--config ` | Path to the SPCTL configuration file. The default is `./config.json`. | | `--help`, `-h` | Help for the command. | ## Example -The following command displays the information on the option with ID 3 of [TEE Offer #1](https://marketplace.superprotocol.com/compute?offerId=1) (offer ID: 1): - ``` ./spctl offers get-option --offer 1 --option 3 ``` \ No newline at end of file diff --git a/docs/cli/commands/offers/get-slot.md b/docs/cli/commands/offers/get-slot.md index ae745b61..dd9f6b84 100644 --- a/docs/cli/commands/offers/get-slot.md +++ b/docs/cli/commands/offers/get-slot.md @@ -6,9 +6,9 @@ sidebar_label: "get-slot" sidebar_position: 11 --- -Displays the information for a [requirement slot](/fundamentals/slots#requirements) in an offer. +Displays the information for a slot in an offer. -Use the [`offers get`](/cli/commands/offers/get) command to get the IDs of all slots in an offer. +Use the [`offers get`](/cli/commands/offers/get) command to get the IDs of all the offer's slots. ## Syntax @@ -21,8 +21,6 @@ Use the [`offers get`](/cli/commands/offers/get) command to get the IDs of all s [--help | -h] ``` -Read about the Super Protocol [command syntax](/cli/commands#command-syntax). - ## Arguments | **Name** | **Description** | @@ -33,16 +31,14 @@ Read about the Super Protocol [command syntax](/cli/commands#command-syntax). | **Name** | **Description** | | :- | :-| -| `--offer ` | ID of the offer. | -| `--slot ` | ID of the slot. | +| `--offer ` | Offer ID. | +| `--slot ` | Slot ID. | | `--save-to ` | Path to save the result file. The default is the SPCTL root directory. | | `--config ` | Path to the SPCTL configuration file. The default is `./config.json`. | | `--help`, `-h` | Help for the command. | ## Example -The following command displays the information on a requirement slot with ID 47 in a value offer with ID 39: - ``` -./spctl offers get-slot value --offer 39 --slot 47 +./spctl offers get-slot value --offer 39 --slot 38 ``` \ No newline at end of file diff --git a/docs/cli/commands/offers/get.md b/docs/cli/commands/offers/get.md index ffacbee7..de3d6239 100644 --- a/docs/cli/commands/offers/get.md +++ b/docs/cli/commands/offers/get.md @@ -6,7 +6,7 @@ sidebar_label: "get" sidebar_position: 2 --- -Displays information on an offer. +Displays information on an offer. ## Syntax @@ -17,33 +17,23 @@ Displays information on an offer. [--help | -h] ``` -Read about the Super Protocol [command syntax](/cli/commands#command-syntax). - ## Arguments -| **Name** | **Description** | +| **Name** | **Description** | | :- | :- | | `` | Type of the offer: `tee` for a compute offer or `value` for a solution, data, or storage offer. | -| `` | ID of the offer. | +| `` | Offer ID. | ## Option -| **Name** | **Description** | +| **Name** | **Description** | | :- | :- | | `--save-to ` | Path to save the output to a file. | -| `--config ` | Path to the SPCTL configuration file. The default is `./config.json`. | -| `--help`, `-h` | Help for the command. | +| `--config ` | Path to the SPCTL configuration file. The default is `./config.json`. | +| `--help`, `-h` | Help for the command. | ## Example -The following command displays information on the data offer [Image Classification Dataset #1](https://marketplace.superprotocol.com/data?offer=offerId%3D19) (offer ID: 18): - -``` -./spctl offers get value 18 --save-to ./offer-18.json ``` - -Where: - -- `value`: type of the offer -- `18`: offer ID -- `--save-to ./offer-19.json`: save the output to `offer-19.json` in the SPCTL root directory. \ No newline at end of file +./spctl offers get value 30 --save-to ./offer-30.json +``` \ No newline at end of file diff --git a/docs/cli/commands/offers/index.md b/docs/cli/commands/offers/index.md index 56280c70..97a626b0 100644 --- a/docs/cli/commands/offers/index.md +++ b/docs/cli/commands/offers/index.md @@ -6,7 +6,7 @@ sidebar_position: 6 --- -This command group contains commands to view and manage [offers](/fundamentals/offers). Note that [Marketplace web app](https://marketplace.superprotocol.com/marketplace) can be more convenient to use than most of these commands. +This group contains commands to view and manage offers. ## Commands diff --git a/docs/cli/commands/offers/list.md b/docs/cli/commands/offers/list.md index 70ffe0eb..95664b41 100644 --- a/docs/cli/commands/offers/list.md +++ b/docs/cli/commands/offers/list.md @@ -6,7 +6,7 @@ sidebar_label: "list" sidebar_position: 1 --- -Displays a list of available offers. +Displays a list of available offers. ## Syntax @@ -20,8 +20,6 @@ Displays a list of available offers. [--help | -h] ``` -Read about the Super Protocol [command syntax](/cli/commands#command-syntax). - ## Arguments | **Name** | **Description** | @@ -56,16 +54,12 @@ For both offer types: ### Example 1 -The following command displays the IDs, names, and types of the first 30 value offers: - ``` ./spctl offers list value --limit 30 ``` ### Example 2 -The following command displays the IDs, names, and descriptions of value offers with IDs 37, 39, and 40: - ``` -./spctl offers list value --ids 37 39 40 --fields id,name,description +./spctl offers list value --ids 30 31 32 33 --fields id,name,description ``` \ No newline at end of file diff --git a/docs/cli/commands/offers/update-slot.md b/docs/cli/commands/offers/update-slot.md index b16682f7..ccfe0643 100644 --- a/docs/cli/commands/offers/update-slot.md +++ b/docs/cli/commands/offers/update-slot.md @@ -6,13 +6,13 @@ sidebar_label: "update-slot" sidebar_position: 9 --- -Updates a [requirement slot](/fundamentals/slots#requirements) in an existing offer using the information in a JSON file. +Updates a slot in an offer. -**Important:** This command requires SPCTL with the [provider configuration file](/cli/#configure-spctl-for-providers). +**Important:** This command requires SPCTL with a [provider configuration file](/cli/#configure-spctl-for-providers). Use the [`offers get`](/cli/commands/offers/get) command to get the IDs of all slots in an offer. Use the [`offers get-slot`](/cli/commands/offers/get-slot) command to get additional information on a slot. -Refer to [Offer requirements] to create the initial offer requirements. Refer to the description of the [`offers add-slot`](/cli/commands/offers/add-slot) command for the JSON file format and object descriptions. +Refer to the description of the [`offers add-slot`](/cli/commands/offers/add-slot) command for the slotInfo JSON file format and object descriptions and to create the initial offer requirements. ## Syntax @@ -20,13 +20,11 @@ Refer to [Offer requirements] to create the initial offer requirements. Refer to ./spctl offers update-slot --offer --slot - [--path ] + [--path ] [--config ] [--help | -h] ``` -Read about the Super Protocol [command syntax](/cli/commands#command-syntax). - ## Arguments | **Name** | **Description** | @@ -37,16 +35,14 @@ Read about the Super Protocol [command syntax](/cli/commands#command-syntax). | **Name** |**Description** | | :- | :- | -| `--offer ` | ID of the offer. | -| `--slot ` | ID of the slot. | -| `--path ` | Path to the offer slot JSON file. The default is `./offerSlot.json`. | +| `--offer ` | Offer ID. | +| `--slot ` | Slot ID. | +| `--path ` | Path to the slotInfo JSON file. The default is `./slotInfo.json`. | | `--config ` | Path to the SPCTL configuration file. The default is `./config.json`. | | `--help`, `-h` | Help for the command. | ## Example -The following command updates a slot with ID 47 in a value offer with ID 39 using the information in the file `offer-slot.json` in the SPCTL directory: - ``` -./spctl offers update-slot value --offer 39 --slot 47 --path ./offer-slot.json +./spctl offers update-slot value --offer 46 --slot 45 --path ./new-slot.json ``` \ No newline at end of file diff --git a/docs/cli/commands/offers/update.md b/docs/cli/commands/offers/update.md index 14138212..13fb2bb4 100644 --- a/docs/cli/commands/offers/update.md +++ b/docs/cli/commands/offers/update.md @@ -6,90 +6,88 @@ sidebar_label: "update" sidebar_position: 5 --- -Updates information of an existing offer using an offer description JSON file. +Updates information about an offer. Refer to the [Providers and Offers] guide to create the initial offer description. -**Important:** This command requires SPCTL with the [provider configuration file](/cli/#configure-spctl-for-providers). +**Important:** This command requires SPCTL with a [provider configuration file](/cli/#configure-spctl-for-providers). ## Syntax ``` ./spctl offers update - [--path ] + [--path ] [--config ] [--help | -h] ``` -Read about the Super Protocol [command syntax](/cli/commands#command-syntax). - ## Arguments | **Name** | **Description** | | :- | :- | | `` | Type of the offer: `tee` for a compute offer or `value` for a solution, data, or storage offer. | -| `` | ID of the offer. | +| `` | Offer ID. | ## Options | **Name** | **Description** | | :- | :- | -| `--path ` | Path to the offer content file. The default is `./offerInfo.json`. | +| `--path ` | Path to the offerInfo JSON file. The default is `./offerInfo.json`. | | `--config ` | Path to the SPCTL configuration file. The default is `./config.json`. | | `--help`, `-h` | Help for the command. | ## Offer description file -The offer slot JSON file may contain the following objects, arrays, and strings: - -|**String, array,
or object**|**Description**|**Comments** | -|:-|:-|:-| -|`name`|Offer name || -|`group` |Offer group type| `0` for data and solution offers
`2` for storage offers (not implemented yet)| -|`offerType` |Offer type | `1` for storage offers (not implemented yet)
`2` for solution offers
`3` for data offers | -|`cancelable` |Flag indicating if the offer is cancelable | `true` or `false` | -|`description` |Offer description || -|`restrictions` |Object that specifies the offers that should be executed together with the current one|This object contains the `offers` and `types` arrays | -|`offers`|Array of IDs of required offers, including their dependencies|Put each ID in quotation marks and separate them with a comma| -|`types`|Array of types of the required offers, the same codes as in `offerType`|State the type for each offer in `offers`. Put each type in quotation marks and separate them with a comma| -| `metadata` |Any additional information | May be empty or contain information about whether or not the current offer is a grouping one. For example, `"{\"groupingOffers\":true}"` | -| `input` |Not implemented yet (metadata about permitted inputs) |Leave empty| -| `output` |Not implemented yet (metadata about permitted outputs)|Leave empty | -| `allowedArgs` |Will be deprecated |Leave empty | -| `allowedAccounts` |List of accounts allowed to use the current offer|Leave empty to allow all accounts| -| `argsPublicKey` |Encryption information in a string format:
`algo`—algorithm for encrypting arguments
`encoding`—encoding scheme
`key`—public key | Example:
`"argsPublicKey":`
`"{\"algo\":\"ECIES\",`
`\"encoding\":\"base64\",`
`\"key\":\"\"}"` | -| `resultResource` | Unencrypted content available for downloading, in a string format:
`type`, `storageType`, `credentials` to access content, including `token`, `storageId`, and `filepath` |Currently, only Storj is supported. Use `STORAGE_PROVIDER` for `type` and `STORJ` for `storageType`. `token` should be a Storj access grant with **Read** permission, `storageId` is the bucket name, and `filepath` is the path to the content file in the bucket.

It is mainly used for the base image solutions:
`"resultResource":`
`"{\"type\":\"STORAGE_PROVIDER\",`
`\"storageType\":\"STORJ\",`
`\"credentials\":`
`{\"token\":\"\",`
`\"storageId\":\"\"},`
`\"filepath\":\"\"}"` | -| `linkage` |Not implemented yet (verification of the solutions linked to the current offer)|Leave empty| -| `hash` |Not implemented yet (verification of the solutions linked to the current offer)|Leave empty| - -Offer JSON file template with example values for a solution identical to [Image Classification Dataset #1](https://marketplace.superprotocol.com/data?offer=offerId%3D18): - -```json title="offer.json" +The offerInfo JSON file may contain the following objects, arrays, and strings: + +| **String, array,
or object** | **Description** | **Comments** | +| :- |:- |:- | +| `name` | Offer name | | +| `group` | Offer group type | `0` for data and solution offers.
`2` for storage offers (not implemented yet). | +| `offerType` | Offer type | `1` for storage offers (not implemented yet).
`2` for solution offers.
`3` for data offers. | +| `cancelable` | Flag indicating if the offer is cancelable. | `true` or `false` | +| `description` | Offer description | | +| `restrictions` | Object that specifies the offers that should be executed together with the current one|This object contains the `offers` and `types` arrays | +| `offers` | Array of IDs of required offers, including their dependencies | Put each ID in quotation marks and separate them with a comma | +| `types` | Array of types of the required offers, the same codes as in `offerType` | State the type for each offer in `offers`. Put each type in quotation marks and separate them with a comma | +| `metadata` | Any additional information | May be empty or contain information about whether the current offer is a grouping one. For example, `"{\"groupingOffers\":true}"`. | +| `input` | Metadata about permitted inputs (not implemented yet) | Leave empty. | +| `output` | Metadata about permitted outputs (not implemented yet) | Leave empty. | +| `allowedArgs` | Deprecated | Leave empty. | +| `allowedAccounts` | List of accounts allowed to use the current offer | Leave empty to allow all accounts. | +| `argsPublicKey` | Encryption information in a string format:
`algo`: algorithm for encrypting arguments
`encoding`: encoding scheme
`key`: public key | Example:
`"argsPublicKey":`
`"{\"algo\":\"ECIES\",`
`\"encoding\":\"base64\",`
`\"key\":\"\"}"` | +| `resultResource` | Unencrypted content available for downloading, in a string format:
`type`, `storageType`, `credentials` to access content, including `token`, `storageId`, and `filepath` |Currently, only Storj is supported. Use `STORAGE_PROVIDER` for `type` and `STORJ` for `storageType`. `token` should be a Storj access grant with **Read** permission, `storageId` is the bucket name, and `filepath` is the path to the content file in the bucket.

It is mainly used for base image solutions:
`"resultResource":`
`"{\"type\":\"STORAGE_PROVIDER\",`
`\"storageType\":\"STORJ\",`
`\"credentials\":`
`{\"token\":\"\",`
`\"storageId\":\"\"},`
`\"filepath\":\"\"}"` | +| `linkage` | Verification of the solutions linked to the current offer (not implemented yet) | Leave empty. | +| `hash` | Verification of the solutions linked to the current offer (not implemented yet) | Leave empty. | + +An `offerInfo.json` file template with example values for a solution identical to [Image Classification Dataset #1](https://marketplace.superprotocol.com/marketplace?offer=offerId%3D30): + +```json title="offerInfo.json" { - "name": "Image Classification Dataset #1", - "group": "0", - "offerType": "3", - "cancelable": false, - "description": "Dataset with images of various breeds of dogs

This demo dataset is compatible with the Image Classification solution. Refer to the documentation for detailed instructions.", - "restrictions": { - "offers": [ + "name":"Image Classification Dataset #1", + "group":"0", + "offerType":"3", + "cancelable":false, + "description":"Dataset with images of various breeds of dogs

This demo dataset is compatible with the Image Classification solution. Refer to the documentation for detailed instructions.", + "restrictions":{ + "offers":[ "8", "5" ], - "types": [ + "types":[ "2", "2" ] }, - "metadata": "", - "input": "", - "output": "", - "allowedArgs": "", - "allowedAccounts": [], - "argsPublicKey": "", - "resultResource": "", - "linkage": "", - "hash": "" + "metadata":"", + "input":"", + "output":"", + "allowedArgs":"", + "allowedAccounts":[], + "argsPublicKey":"", + "resultResource":"", + "linkage":"", + "hash":"" } ``` @@ -97,15 +95,13 @@ The file may contain only the fields that need to be updated. For example, to on ```json { - "name": "New Image Classification", - "description": "New improved Image Classification solution" + "name":"New Image Classification", + "description":"New improved Image Classification solution" } ``` ## Example -The following command updates an existing value offer with ID 39 using the information in the `updated-offer-39.json` in the SPCTL root directory: - ``` -./spctl offers update value 39 --path ./updated-offer-39.json +./spctl offers update value 46 --path ./updated-offer-46.json ``` \ No newline at end of file diff --git a/docs/cli/commands/orders/cancel.md b/docs/cli/commands/orders/cancel.md index 35dda5d6..2ff5296e 100644 --- a/docs/cli/commands/orders/cancel.md +++ b/docs/cli/commands/orders/cancel.md @@ -5,7 +5,7 @@ slug: "/commands/orders/cancel" sidebar_label: "cancel" --- -Cancels an order. +Cancels an order. ## Syntax @@ -15,13 +15,11 @@ Cancels an order. [--help | -h] ``` -Read about the Super Protocol [command syntax](/cli/commands#command-syntax). - ## Arguments | **Name** | **Description** | | :- | :- | -| `` | ID of the order. | +| `` | Order ID. | ## Options @@ -32,8 +30,6 @@ Read about the Super Protocol [command syntax](/cli/commands#command-syntax). ## Example -The following command cancels the order with ID 1312: - ``` ./spctl orders cancel 1312 ``` \ No newline at end of file diff --git a/docs/cli/commands/orders/download-result.md b/docs/cli/commands/orders/download-result.md index 66c8fc31..a7f07528 100644 --- a/docs/cli/commands/orders/download-result.md +++ b/docs/cli/commands/orders/download-result.md @@ -5,12 +5,10 @@ slug: "/commands/orders/download-result" sidebar_label: "download-result" --- -Downloads the order result. +Downloads the order result—a TAR.GZ archive file containing: -This command downloads a TAR.GZ archive file containing: - -- Log file with any errors occured during the execution of the script -- Directory with the result. +- A log file with any errors occurred during the execution. +- A directory with the execution result. If the order status is `Error`, the result archive will contain a text file with the error message. @@ -23,13 +21,11 @@ If the order status is `Error`, the result archive will contain a text file with [--help | -h] ``` -Read about the Super Protocol [command syntax](/cli/commands#command-syntax). - ## Arguments | **Name** | **Description** | | :- | :- | -| `` | ID of the order. | +| `` | Order ID. | ## Options @@ -41,8 +37,6 @@ Read about the Super Protocol [command syntax](/cli/commands#command-syntax). ## Example -The following command downloads the result of the order 1312 and saves it to the `1312.tar.gz` file in the `results` directory: - ``` ./spctl orders download-result 1312 --save-to ./results/1312.tar.gz ``` \ No newline at end of file diff --git a/docs/cli/commands/orders/get.md b/docs/cli/commands/orders/get.md index 9750cb6c..4c20ea14 100644 --- a/docs/cli/commands/orders/get.md +++ b/docs/cli/commands/orders/get.md @@ -5,7 +5,7 @@ slug: "/commands/orders/get" sidebar_label: "get" --- -Displays the information on an order. +Displays the information on an order. This command allows you to check any order, not only yours. The information on all orders is openly available on the blockchain. @@ -20,13 +20,11 @@ This command allows you to check any order, not only yours. The information on a [--help | -h] ``` -Read about the Super Protocol [command syntax](/cli/commands#command-syntax). - ## Arguments | **Name** | **Description** | | :- | :- | -| `` | ID of the order. | +| `` | Order ID. | ## Options @@ -40,8 +38,6 @@ Read about the Super Protocol [command syntax](/cli/commands#command-syntax). ## Example -The following command display the information on the order with ID 3770, including the IDs and offer names of its suborders: - ``` ./spctl orders get 3770 \ --suborders true \ diff --git a/docs/cli/commands/orders/index.md b/docs/cli/commands/orders/index.md index 8e44c71b..5935bd68 100644 --- a/docs/cli/commands/orders/index.md +++ b/docs/cli/commands/orders/index.md @@ -6,7 +6,7 @@ sidebar_position: 5 --- -This command group contains commands to track and manage [orders](/fundamentals/orders). Note that [Marketplace web app](https://marketplace.superprotocol.com/marketplace) can be more convenient to use than most of the commands in this group. +This group contains commands to track and manage orders. Note that [Marketplace web app](https://marketplace.superprotocol.com/marketplace) can be more convenient to use than most of the commands in this group. ## Commands diff --git a/docs/cli/commands/orders/list.md b/docs/cli/commands/orders/list.md index 3a483ee6..edc0e4b3 100644 --- a/docs/cli/commands/orders/list.md +++ b/docs/cli/commands/orders/list.md @@ -5,7 +5,7 @@ slug: "/commands/orders/list" sidebar_label: "list" --- -Lists orders stored on the blockchain. +Lists orders stored on the blockchain. This command displays a list of all orders and suborders, unless the `--my-account true` option is specified. @@ -23,8 +23,6 @@ This command displays a list of all orders and suborders, unless the `--my-accou [--help | -h] ``` -Read about the Super Protocol [command syntax](/cli/commands#command-syntax). - ## Options |
**Name**
| **Description** | @@ -40,8 +38,6 @@ Read about the Super Protocol [command syntax](/cli/commands#command-syntax). ## Example -The following command displays the IDs, offer names, and offer descriptions of all the compute orders created by the current Testnet account: - ``` ./spctl orders list --fields id,offer_name,offer_description --my-account true --type tee ``` \ No newline at end of file diff --git a/docs/cli/commands/orders/replenish-deposit.md b/docs/cli/commands/orders/replenish-deposit.md index e4a4be2b..5276a445 100644 --- a/docs/cli/commands/orders/replenish-deposit.md +++ b/docs/cli/commands/orders/replenish-deposit.md @@ -7,7 +7,7 @@ sidebar_label: "replenish-deposit" Replenishes the order deposit. -Certain orders require a positive deposit balance to keep running. +Certain orders require a positive balance to keep running. ## Syntax @@ -17,13 +17,11 @@ Certain orders require a positive deposit balance to keep running. [--help | -h] ``` -Read about the Super Protocol [command syntax](/cli/commands#command-syntax). - ## Arguments | **Name** | **Description** | | :- | :- | -| `` | ID of the order. | +| `` | Order ID. | | `` | Amount of SPPI tokens to deposit. | ## Option @@ -35,8 +33,6 @@ Read about the Super Protocol [command syntax](/cli/commands#command-syntax). ## Example -The following command adds 3 SPPI tokens to the deposit of the order with ID 1312: - ``` ./spctl orders replenish-deposit 1312 3 ``` \ No newline at end of file diff --git a/docs/cli/commands/providers/get.md b/docs/cli/commands/providers/get.md index 538a4965..b77611ca 100644 --- a/docs/cli/commands/providers/get.md +++ b/docs/cli/commands/providers/get.md @@ -16,8 +16,6 @@ Displays the information on a provider using its authority account address. [--help | -h] ``` -Read about the Super Protocol [command syntax](/cli/commands#command-syntax). - ## Arguments | **Name** | **Description** | @@ -34,9 +32,6 @@ Read about the Super Protocol [command syntax](/cli/commands#command-syntax). ## Example -The following command displays the name, address, and description of the provider with the authority account 0xB9f0b77BDbAe9fBe3E60BdC567E453f503605BAa: - ``` -./spctl providers get 0xB9f0b77BDbAe9fBe3E60BdC567E453f503605BAa \ - --fields name,address,description +./spctl providers get 0xB9f0b77BDC567E453fbAe9fBe3E60Bd503605BAa --fields name,address,description ``` \ No newline at end of file diff --git a/docs/cli/commands/providers/index.md b/docs/cli/commands/providers/index.md index b3c7e5d1..28080280 100644 --- a/docs/cli/commands/providers/index.md +++ b/docs/cli/commands/providers/index.md @@ -6,7 +6,7 @@ sidebar_position: 7 --- -This command group contains commands to view and update [providers](/fundamentals/offers). +This group contains commands to view and update [providers](/fundamentals/offers). ## Commands diff --git a/docs/cli/commands/providers/list.md b/docs/cli/commands/providers/list.md index 406f9e9c..5a9320da 100644 --- a/docs/cli/commands/providers/list.md +++ b/docs/cli/commands/providers/list.md @@ -16,8 +16,6 @@ Lists all registered providers. [--help | -h] ``` -Read about the Super Protocol [command syntax](/cli/commands#command-syntax). - ## Options |
**Name**
| **Description** | @@ -30,8 +28,6 @@ Read about the Super Protocol [command syntax](/cli/commands#command-syntax). ## Example -The following command displays the names, descriptions, authority account addresses, and action account addresses of all registered providers: - ``` ./spctl providers list --fields name,description,authority_account,action_account ``` \ No newline at end of file diff --git a/docs/cli/commands/providers/update.md b/docs/cli/commands/providers/update.md index b6c559a1..5bfd6d50 100644 --- a/docs/cli/commands/providers/update.md +++ b/docs/cli/commands/providers/update.md @@ -5,11 +5,9 @@ slug: "/commands/providers/update" sidebar_label: "update" --- -Updates the current provider using a provider info JSON file. +Updates information about a provider. -Provider Tools creates a provider info JSON file in [Step 4 of the Providers and Offers] guide. - -**Important:** This command requires SPCTL with the [provider configuration file](/cli/#configure-spctl-for-providers). +**Important:** This command requires SPCTL with a [provider configuration file](/cli/#configure-spctl-for-providers). ## Syntax @@ -20,8 +18,6 @@ Provider Tools creates a provider info JSON file in [Step 4 of the Providers and [--help | -h] ``` -Read about the Super Protocol [command syntax](/cli/commands#command-syntax). - ## Options | **Name** | **Description** | @@ -32,9 +28,9 @@ Read about the Super Protocol [command syntax](/cli/commands#command-syntax). ## Provider info file -The provider info file must contain the following strings: +The provider info JSON file must contain the following keys: -| **Field** | **Description** | +| **Key** | **Description** | | :- | :- | | `name` | Provider name. | | `description` | Description of services provided by the provider. | @@ -42,14 +38,14 @@ The provider info file must contain the following strings: | `actionAccount` | Action account address. | | `metadata` | Additional information about the provider. | -The `description` and `metadata` strings may be empty. All other strings require values. +The `description` and `metadata` may be empty. All other strings require values. -Provider JSON file template with example values: +Template with example values: -```json title="provider.json" +```json title="providerInfo.json" { "name": "Data Provider", - "description": "It provides various datasets for modeling", + "description": "Various data for modeling", "tokenReceiver": "0xB9f0bB77DbeA9fBeC563E60Bd7E453f503605BAa", "actionAccount": "0xfe9CB4557639a3aB7892ab7F0A994Eed89477120", "metadata": "" @@ -58,8 +54,6 @@ Provider JSON file template with example values: ## Example -The following command updates the current provider using the `updated-provider.json` file located in the SPCTL root directory: - ``` ./spctl providers update --path ./updated-provider.json ``` \ No newline at end of file diff --git a/docs/cli/commands/quotes/index.md b/docs/cli/commands/quotes/index.md index 81840fb9..c34e22e7 100644 --- a/docs/cli/commands/quotes/index.md +++ b/docs/cli/commands/quotes/index.md @@ -6,7 +6,7 @@ sidebar_position: 9 --- -This command group contains a single command to verify the authenticity and integrity of a Trusted Execution Environment by examining the enclave quote. +This group contains a single command to verify the authenticity and integrity of a Trusted Execution Environment by examining its quote. ## Command diff --git a/docs/cli/commands/quotes/validate.md b/docs/cli/commands/quotes/validate.md index dec4a452..ac1e0f77 100644 --- a/docs/cli/commands/quotes/validate.md +++ b/docs/cli/commands/quotes/validate.md @@ -5,7 +5,7 @@ slug: "/commands/quotes/validate" sidebar_label: "validate" --- -Checks if the domain content runs in a confidential environment. The command also displays if the domain content is a Super Protocol offer. +Checks if the domain content runs in a Trusted Execution Environment. The command also displays if the domain content is an offer. ## Syntax @@ -15,8 +15,6 @@ Checks if the domain content runs in a confidential environment. The command als [--help | -h] ``` -Read about the Super Protocol [command syntax](/cli/commands#command-syntax). - ## Arguments | **Name** | **Description** | diff --git a/docs/cli/commands/solutions/generate-key.md b/docs/cli/commands/solutions/generate-key.md index 32474d8d..9213e53b 100644 --- a/docs/cli/commands/solutions/generate-key.md +++ b/docs/cli/commands/solutions/generate-key.md @@ -5,7 +5,7 @@ slug: "/commands/solutions/generate-key" sidebar_label: "generate-key" --- -Generates a signing key necessary to prepare a solution. +Generates a signing key necessary to prepare a solution. Docker needs this key to [pack a solution](/cli/commands/solutions/prepare) into a container. @@ -17,8 +17,6 @@ Docker needs this key to [pack a solution](/cli/commands/solutions/prepare) into [--help | -h] ``` -Read about the Super Protocol [command syntax](/cli/commands#command-syntax). - ## Arguments | **Name** | **Description** | @@ -34,8 +32,6 @@ Read about the Super Protocol [command syntax](/cli/commands#command-syntax). ## Example -The following command generates a signing key and saves it to the `new-key` file in the SPCTL root directory: - ``` ./spctl solutions generate-key ./new-key ``` \ No newline at end of file diff --git a/docs/cli/commands/solutions/index.md b/docs/cli/commands/solutions/index.md index 726c250c..5ab743d6 100644 --- a/docs/cli/commands/solutions/index.md +++ b/docs/cli/commands/solutions/index.md @@ -6,7 +6,7 @@ sidebar_position: 2 --- -This command group contains commands to prepare a solution for deployment on Super Protocol and generate a key for signing a Docker container with a solution. +This group contains commands to prepare a solution for deployment on Super Protocol and generate a key for signing a Docker container with a solution. ## Commands diff --git a/docs/cli/commands/solutions/prepare.md b/docs/cli/commands/solutions/prepare.md index 12479492..aea8efb3 100644 --- a/docs/cli/commands/solutions/prepare.md +++ b/docs/cli/commands/solutions/prepare.md @@ -5,24 +5,24 @@ slug: "/commands/solutions/prepare" sidebar_label: "prepare" --- -Packs and signs a solution with [Gramine](https://gramineproject.io/) and writes a [manifest](https://gramine.readthedocs.io/en/stable/manifest-syntax.html). +Packs and signs a solution with [Gramine](https://gramineproject.io/) and writes a [manifest](https://gramine.readthedocs.io/en/stable/manifest-syntax.html). -This allows the execution of the "graminized" solution code inside a Trusted Execution Environment. When the solution is prepared and packed, you can [upload](/cli/commands/files/upload) the resulting archive to a distributed storage to use the solution in orders. +This allows the execution of the "graminized" solution code inside a Trusted Execution Environment. When the solution is prepared and packed, you can [upload](/cli/commands/files/upload) the resulting archive to a distributed storage to use the solution in orders. The input of the command is the following: - Directory with the solution and all its dependencies - Signing key file generated by the [solutions generate-key](/cli/commands/solutions/generate-key) command -- Node.js or Python base image downloaded from their respective offers using the [offers download-content](/cli/commands/offers/download-content) command: - + Python Base Image: `./spctl offers download-content 5` - + Node.js Base Image: `./spctl offers download-content 6`. +- Node.js or Python base image downloaded from their respective offers using the [`offers download-content`](/cli/commands/offers/download-content) command: + - Python Base Image: `./spctl offers download-content 12` + - Node.js Base Image: `./spctl offers download-content 13` -The output of the command is the following: +The output of the command: -- TAR.GZ archive file with graminized solution and dependencies +- TAR.GZ archive file with graminized solution and dependencies. - JSON file with essential metadata. -Note that the base image is graminized but not included in the output archive file and must be added to the order separately. +Note that the base image is graminized but not included in the output archive file and must be added to the order separately. ## Syntax @@ -42,8 +42,6 @@ Note that the base image is graminized but not included in the output archive fi [--help | -h] ``` -Read about the Super Protocol [command syntax](/cli/commands#command-syntax). - ## Arguments | **Name** | **Description** | @@ -69,15 +67,7 @@ Read about the Super Protocol [command syntax](/cli/commands#command-syntax). ## Example -The following command prepares a solution: - ``` ./spctl solutions prepare ./my-solution/run ./my-solution/signing-key \ --base-image-path ./base-solution-image.tar.gz -``` - -Where: - -- `./my-solution/run`: solution directory -- `./my-solution/signing-key`: path to the signing key -- `--base-image-path ./base-solution-image.tar.gz`: path to the base image file `base-solution-image.tar.gz`. \ No newline at end of file +``` \ No newline at end of file diff --git a/docs/cli/commands/tokens/balance.md b/docs/cli/commands/tokens/balance.md index 6d5a4266..4181a48c 100644 --- a/docs/cli/commands/tokens/balance.md +++ b/docs/cli/commands/tokens/balance.md @@ -15,8 +15,6 @@ Displays the balance of SPPI and BNB tokens in your wallet. [--help | -h] ``` -Read about the Super Protocol [command syntax](/cli/commands#command-syntax). - ## Option | **Name** | **Description** | @@ -26,8 +24,6 @@ Read about the Super Protocol [command syntax](/cli/commands#command-syntax). ## Example -The following command checks the balance of the account specified in the `config-provider.json` file. - ``` ./spctl tokens balance --config ./config-provider.json ``` \ No newline at end of file diff --git a/docs/cli/commands/tokens/index.md b/docs/cli/commands/tokens/index.md index cb8e7a0a..803ecc4f 100644 --- a/docs/cli/commands/tokens/index.md +++ b/docs/cli/commands/tokens/index.md @@ -6,9 +6,9 @@ sidebar_position: 1 --- -This command group contains commands to manage SPPI and BNB tokens. +This group contains commands to manage SPPI and BNB tokens. -SPPI tokens are necessary to pay for orders in Super Protocol. BNB tokens are necessary for processing transactions on the opBNB blockchain. +SPPI tokens are necessary to pay for orders in Super Protocol. BNB tokens are necessary for processing transactions on the opBNB blockchain. ## Commands diff --git a/docs/cli/commands/tokens/request.md b/docs/cli/commands/tokens/request.md index 31d95979..aca53d74 100644 --- a/docs/cli/commands/tokens/request.md +++ b/docs/cli/commands/tokens/request.md @@ -19,8 +19,6 @@ This command is only available during the Testnet. Be mindful of [Testnet limita [--help | -h] ``` -Read about the Super Protocol [command syntax](/cli/commands#command-syntax). - ## Options | **Name** | **Description** | @@ -32,8 +30,6 @@ Read about the Super Protocol [command syntax](/cli/commands#command-syntax). ## Example -The following command requests SPPI tokens: - ``` ./spctl tokens request --tee ``` \ No newline at end of file diff --git a/docs/cli/commands/workflows/create.md b/docs/cli/commands/workflows/create.md index 02cd54a6..e3ccd4d9 100644 --- a/docs/cli/commands/workflows/create.md +++ b/docs/cli/commands/workflows/create.md @@ -5,11 +5,11 @@ slug: "/commands/workflows/create" sidebar_label: "create" --- -Creates a main compute order and necessary suborders: solution, data, and storage. +Creates a main compute order and necessary suborders: solution, data, and storage. The output of the command contains the order ID necessary to track and manage the order with the [`orders`](/cli/commands/orders) commands or in the [Marketplace web app](https://marketplace.superprotocol.com/marketplace). -For solutions and data, you can add to an order either Marketplace [offers](/fundamentals/offers) or [uploaded files](/cli/commands/files/upload). Refer to the [fundamentals](/fundamentals) to understand the logic of the Super Protocol order creation process. +For solutions and data, you can add to an order either a Marketplace offer or [uploaded files](/cli/commands/files/upload). Refer to the [fundamentals](/fundamentals) to understand the logic of the Super Protocol order creation process. ## Syntax @@ -18,30 +18,41 @@ For solutions and data, you can add to an order either Marketplace [offers](/fun --solution {,[] | } [--solution ...] --storage ,[] [--data {,[] | }] [--data ...] + [--solution-configuration ] [--tee ,[]] [--tee-slot-count ] [--tee-options [ ...]] [--tee-options-count [ ...]] - [--deposit ] + [--deposit ] [--min-rent-minutes ] [--config ] [--help | -h] ``` -Read about the Super Protocol [command syntax](/cli/commands#command-syntax). - ## Options |
**Name**
| **Description** | | :- | :- | -| `--solution {,[] │ }` | Solution you are adding to the order:

• For a Marketplace offer, state the solution offer ID and the solution [requirement slot](/fundamentals/slots#requirements) ID (optional), separated by a comma. If the requirement slot is not specified, it will be selected automatically.
• For an [uploaded](/cli/commands/files/upload) solution, state the path to the solution resource JSON file.

You can use this option multiple times. | +| `--solution {,[] │ }` | Solution you are adding to the order:

• For a Marketplace offer, state the solution offer ID and the solution requirement slot ID (optional), separated by a comma. If the slot is not specified, it will be selected automatically.
• For an [uploaded](/cli/commands/files/upload) solution, state the path to the solution resource JSON file.

You can use this option multiple times. | | `--storage ,[]` | Storage offer you are adding to the order. State the storage offer ID and the storage requirement slot ID (optional), separated by a comma. If the requirement slot is not specified, it will be selected automatically. | | `--data {,[] │ }` | Data you are adding to the order:

• For a Marketplace offer, state the data offer ID and the data requirement slot ID (optional), separated by a comma. If the requirement slot is not specified, it will be selected automatically.
• For [uploaded](/cli/commands/files/upload) data, state the path to the data resource JSON file.

You can use this option multiple times.

Although this option is technically not mandatory, most solutions require data. | +| `--solution-configuration ` | A solution configuration JSON file. | | `--tee ,[]` | Compute offer you are adding to the order. State the compute offer ID and, optionally, the [configuration slot](/fundamentals/slots#configuration) ID, separated by a comma. If the configuration slot is not specified, it will be selected automatically.

If you do not use this option, the compute offer and its configuration will be selected automatically. | | `--tee-slot-count ` | Configuration slot increments—how many times the selected slot is applied. Use this option together with `--tee`.

If you do not use this option, the increments will be calculated automatically. | | `--tee-options [ ...]` | IDs of [configuration options](/fundamentals/slots#configuration) separated by spaces. Use `--tee-options` together with `--tee`.

If you do not use `--tee-options`, configuration options will be selected automatically. | | `--tee-options-count [ ...]` | Increments for each configuration option separated by spaces. Use `--tee-options-count` together with `--tee` and `--tee-options`.

If you do not use `--tee-options-count`, increments will be calculated automatically. | -| `--deposit ` | [Deposit](/fundamentals/orders#lease-deposit-and-balance) in SPPI tokens. The default is the minimum required deposit. | -| `--min-rent-minutes ` | Compute [lease time](/fundamentals/orders#lease-deposit-and-balance) in minutes. Using this option will increase the required deposit. The default is the minimum required time. | +| `--deposit ` | [Deposit](/fundamentals/orders#usage-scenarios) in SPPI tokens. The default is the minimum required deposit. | +| `--min-rent-minutes ` | Compute [lease time](/fundamentals/orders#usage-scenarios) in minutes. Using this option will increase the required deposit. The default is the minimum required time. | | `--config ` | Path to the SPCTL configuration file. The default is `./config.json`. | | `--help`, `-h` | Help for the command. | + +## Example + +``` +./spctl workflows create \ + --tee 8 \ + --solution 25 \ + --solution-configuration ./engine-configuration.json \ + --data ./data-resource.json \ + --storage 47 +``` diff --git a/docs/cli/commands/workflows/generate-key.md b/docs/cli/commands/workflows/generate-key.md index 70a4dd17..f7d2cd93 100644 --- a/docs/cli/commands/workflows/generate-key.md +++ b/docs/cli/commands/workflows/generate-key.md @@ -17,8 +17,6 @@ SPCTL generates this key automatically during the [configuration](/cli). Use thi [--help | -h] ``` -Read about the Super Protocol [command syntax](/cli/commands#command-syntax). - ## Option | **Name** | **Description** | diff --git a/docs/cli/commands/workflows/index.md b/docs/cli/commands/workflows/index.md index 94d26806..3848feaa 100644 --- a/docs/cli/commands/workflows/index.md +++ b/docs/cli/commands/workflows/index.md @@ -6,7 +6,7 @@ sidebar_position: 4 --- -This command group contains commands to create an [order](/fundamentals/orders) and generate a private key to access order results. +This group contains commands to create an order and generate a private key to access order results. ## Commands diff --git a/docs/cli/index.md b/docs/cli/index.md index 36fa3994..2551403b 100644 --- a/docs/cli/index.md +++ b/docs/cli/index.md @@ -8,7 +8,7 @@ sidebar_position: 1 import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; -**SPCTL**—Super Protocol Control—is a versatile tool to access the Marketplace CLI. With this tool, you can create and manage orders, offers, providers, keys, files, and more. +**SPCTL**—Super Protocol Control—is a versatile tool to access the Marketplace CLI. With this tool, you can create and manage orders, offers, providers, keys, files, and more. ## Download SPCTL @@ -93,23 +93,23 @@ You can configure SPCTL using the `./spctl setup` command or by manually creatin 2. Do not change the preconfigured values and provide values to the following keys: - |**Key** |**Description**| - |:-|:-| - |`"accountPrivateKey"` | An EVM wallet private key. Super Protocol recommends creating a separate wallet for the testnet.| - |`"bucket"` | (optional) Name of a Storj bucket.| - |`"prefix"` | (optional) Path to a directory inside the bucket. It can be empty.| - |`"writeAccessToken"` | (optional) Storj access grant with **Full** permission (**Read**, **List**, **Write**, **Delete**) for this bucket.| - |`"readAccessToken"` | (optional) Storj access grant with **Read** permission for this bucket.| + | **Key** | *Description** | + | :- | :- | + | `"accountPrivateKey"` | An EVM wallet private key. Super Protocol recommends creating a separate wallet for the testnet. | + | `"bucket"` | (optional) Name of a Storj bucket. | + | `"prefix"` | (optional) Path to a directory inside the bucket. It can be empty. | + | `"writeAccessToken"` | (optional) Storj access grant with **Full** permission (**Read**, **List**, **Write**, **Delete**) for this bucket. | + | `"readAccessToken"` | (optional) Storj access grant with **Read** permission for this bucket. | - 3. Generate a private key for order result encryption using the [workflows generate-key](/cli/commands/workflows/generate-key) command. Set it in `"key"` (`workflow.resultEncryption.key`) in `config.json`. + 3. Generate a private key for order result encryption using the [`workflows generate-key`](/cli/commands/workflows/generate-key) command. Set it in `"key"` (`workflow.resultEncryption.key`) in `config.json`. ## Configure SPCTL for providers -This section is for offer providers only. Skip it if you are a regular user. +This section is for providers only. Skip it if you are a regular user. -Providers need another copy of SPCTL configured for their accounts to manage offers. +Providers need another copy of SPCTL configured to manage their offers. @@ -182,7 +182,7 @@ Providers need another copy of SPCTL configured for their accounts to manage off }, ``` - 3. Generate a private key for order result encryption using the [workflows generate-key](/cli/commands/workflows/generate-key) command. Set it in `"key"` (`workflow.resultEncryption.key`) in `config.json`. + 3. Generate a private key for order result encryption using the [`workflows generate-key`](/cli/commands/workflows/generate-key) command. Set it in `"key"` (`workflow.resultEncryption.key`) in `config.json`. @@ -198,17 +198,17 @@ If you use a free Storj account, your files will become unavailable after the en ::: -2. Create a bucket for your encrypted solutions and data. Refer to the [Storj documentation](https://docs.storj.io/dcs/getting-started/quickstart-objectbrowser/) for guidance. +2. Create a bucket for your encrypted solutions and data. Refer to the [Storj documentation](https://docs.storj.io/dcs/getting-started/quickstart-objectbrowser/) for guidance. 3. Create two access grants for this bucket. One should provide **Full** permission (**Read**, **List**, **Write**, **Delete**), and the other one **Read** permission. Refer to the [Storj guide](https://docs.storj.io/dcs/getting-started/quickstart-uplink-cli/uploading-your-first-object/create-first-access-grant/) to generate access grants. 4. Open SPCTL's `config.json` in a text editor and provide values to the following key: -|**Key** |**Description**| -|:-|:-| -|`"bucket"` | Name of a Storj bucket.| -|`"writeAccessToken"` | Storj access grant with **Full** permission (**Read**, **List**, **Write**, **Delete**) for this bucket.| -|`"readAccessToken"` | Storj access grant with **Read** permission for this bucket.| +| **Key** | **Description** | +| :- | :- | +| `"bucket"` | Name of a Storj bucket. | +| `"writeAccessToken"` | Storj access grant with **Full** permission (**Read**, **List**, **Write**, **Delete**) for this bucket. | +| `"readAccessToken"` | Storj access grant with **Read** permission for this bucket. | ## Support diff --git a/docs/developers/cli_guides/providers_offers.md b/docs/developers/cli_guides/providers_offers.md index e3757cb5..d981af3c 100644 --- a/docs/developers/cli_guides/providers_offers.md +++ b/docs/developers/cli_guides/providers_offers.md @@ -167,9 +167,9 @@ Offer providers need the following Super Protocol accounts: - _Testnet user account_. the Testnet account provided by Super Protocol - Three _provider accounts_: - + _Authority account_: can change provider's records; the main provider account - + _Action account_: executes actions on behalf of the authority account - + _Token receiver account_: receives rewards in SPPI tokens for providing offers on Super Protocol. + - _Authority account_: can change provider's records; the main provider account + - _Action account_: executes actions on behalf of the authority account + - _Token receiver account_: receives rewards in SPPI tokens for providing offers on Super Protocol. ### Create accounts @@ -280,7 +280,7 @@ Image Classification is a solution offer, hence `"offerType": "2"`. It depends o **Example 2** -For a data offer identical to [Image Classification Dataset #1](https://marketplace.superprotocol.com/data?offer=offerId%3D18), the part of `offer-info.json` that you have to fill out should look like this: +For a data offer identical to [Image Classification Dataset #1](https://marketplace.superprotocol.com/marketplace?offer=offerId%3D30), the part of `offer-info.json` that you have to fill out should look like this: ```json "name": "Image Classification Dataset #1", @@ -472,7 +472,7 @@ For example: ./provider-tools deploy data --path "/mnt/hdd/provider-tools/data-execution-controller" ``` -When the order is created, you will see the ID of the Offer Provisioner order in the terminal output. For example: +When the order is created, you will see its ID in the terminal output. For example: ``` {"Successfully created workflow with id: 3394. You can go to https://marketplace.superprotocol.com/order/3394 to track order status."} diff --git a/docs/developers/marketplace_gui/walkthrough.md b/docs/developers/marketplace_gui/walkthrough.md index b4b4d53a..60febcd1 100644 --- a/docs/developers/marketplace_gui/walkthrough.md +++ b/docs/developers/marketplace_gui/walkthrough.md @@ -25,7 +25,7 @@ Go to the `Solutions` tab and click on the `Tunnels Launcher` offer. It will ope ::: -Here you can pick the desired requirements for Tunnels Launcher. Learn more about [Requirements](/fundamentals/slots). In short: requirements specify how much computing and internet resources the solution or data offer needs to run. You can also read about [offers](/fundamentals/offers). +Here you can pick the desired requirements for Tunnels Launcher. Learn more about [Requirements](/fundamentals/slots). In short: requirements specify how many computing and internet resources the solution or data offer needs to run. You can also read about [offers](/fundamentals/offers). You can also see in the `Restricted` tab that this Solution requires another offer: a `NodeJS base image`. It is added to the order automatically. diff --git a/docs/fundamentals/certification.md b/docs/fundamentals/certification.md index e98d0b74..611d5375 100644 --- a/docs/fundamentals/certification.md +++ b/docs/fundamentals/certification.md @@ -5,13 +5,13 @@ slug: "/certification" sidebar_position: 6 --- -Super Protocol uses a certification system for signing data, verifying signatures, and ensuring applications operate within a trusted confidential computing environment. Verified data is published on the blockchain on behalf of confidential containers, allowing anyone to validate application integrity and ensure confidentiality. End users only interact with issued certificates and verify signatures, while the complexities of Remote Attestation are seamlessly managed in the background. +Super Protocol uses a certification system for signing data, verifying signatures, and ensuring applications operate within a trusted confidential computing environment. Verified data is published on the blockchain on behalf of confidential containers, allowing anyone to validate application integrity and ensure confidentiality. End users only interact with issued certificates and verify signatures, while the complexities of Remote Attestation are seamlessly managed in the background. All the system components are open-source, ensuring transparency and verifiability. ## Architecture -The backbone of the system is a hierarchical structure of Certification Authorities operating inside Trusted Execution Environments (TEE)—Intel SGX enclaves. +The backbone of the system is a hierarchical structure of Certification Authorities operating inside Trusted Execution Environments (TEE)—Intel SGX enclaves.
@@ -33,7 +33,7 @@ To receive an order certificate, the Trusted Loader sends a request to a SubRoot Orders in Super Protocol are created with necessary input data. This execution environment is referred to as *Workload Info*. -The Workload Info includes an array called `runtimeInfo[]` with metadata about solutions and datasets used in the order. Each such order component has an entry in this array, which includes: +The Workload Info includes an array called `runtimeInfo[]` with metadata about solutions and datasets used in the order. Each such order component has an entry in this array, which includes: - Type - Hash @@ -47,5 +47,5 @@ Trusted Loader generates and publishes a report in the blockchain, allowing anyo - The public components of all the certificates in the chain - Workload Info: - + Order creation date - + The `runtimeInfo[]` array \ No newline at end of file + - Order creation date + - The `runtimeInfo[]` array \ No newline at end of file diff --git a/docs/fundamentals/index.md b/docs/fundamentals/index.md index a958c35e..599cbc93 100644 --- a/docs/fundamentals/index.md +++ b/docs/fundamentals/index.md @@ -11,8 +11,8 @@ This section describes the most essential concepts of Super Protocol. Super Protocol Marketplace is a distributed blockchain-based ecosystem governed by smart contracts. It connects the sellers and buyers of digital products and services: -- Providers who offer solutions, data, and compute resources. -- Customers who lease the offers and pay for the usage. +- Providers who offer solutions, data, and compute resources. +- Customers who lease these offers and pay for the usage. Providers create offers to share and monetize their compute resources as well as solutions, scripts, datasets, AI models, libraries, frameworks, etc. Read more about [offers and providers](/fundamentals/offers). @@ -25,11 +25,11 @@ The Super Protocol Marketplace is accessible via one of the following: ## Trusted Execution Environment -A _Trusted Execution Environment_ is a secure area in memory, [CPU](https://www.intel.com/content/www/us/en/developer/tools/trust-domain-extensions/overview.html), and [GPU](https://www.nvidia.com/en-us/data-center/solutions/confidential-computing/). This area is protected from unauthorized access from the outside, so the data inside a Trusted Execution Environment cannot be read or edited without the authorized code. +A _Trusted Execution Environment_ (TEE) is a secure area in memory, [CPU](https://www.intel.com/content/www/us/en/developer/tools/trust-domain-extensions/overview.html), and [GPU](https://www.nvidia.com/en-us/data-center/solutions/confidential-computing/). This area is protected from unauthorized access from the outside, so the data inside a TEE cannot be read or edited without the authorized code. Confidentiality is an integral part of Super Protocol. All the user data in Super Protocol is encrypted and protected while stored, in transfer, and in use. -Trusted Execution Environment ensures confidentiality and protects both providers and customers. Only the customer can access their orders. Customers themselves cannot download, modify, or otherwise access the provider's offer content even if they use it in their orders. Neither the Super Protocol team nor the owner of the computing device have access to the order and offer content. +TEE ensures confidentiality and protects both providers and customers. Only the customer can access their orders. Customers themselves cannot download, modify, or otherwise access the provider's offer content even if they use it in their orders. Neither the Super Protocol team nor the owner of the computing device have access to the order and offer content. ## Providers diff --git a/docs/fundamentals/offers.md b/docs/fundamentals/offers.md index ca6b9e83..17293048 100644 --- a/docs/fundamentals/offers.md +++ b/docs/fundamentals/offers.md @@ -1,22 +1,22 @@ --- id: "offers" -title: "Offers and Providers" +title: "Providers and Offers" slug: "/offers" sidebar_position: 2 --- -_Offer_ is an open listing for a resource available on the Marketplace. To add an offer to an order, users must pay the price in SPPI tokens set by the offer provider. +_Offer_ is an open listing for a computing service, software product, or data available on the Marketplace. To add an offer to an order, users must pay the price in SPPI tokens set by the offer provider. -_Offer providers_ share and monetize their applications and datasets by creating and maintaining _community offers_ on the Super Protocol Marketplace. +_Providers_ share and monetize their applications and datasets by creating and maintaining _community offers_ on the Super Protocol Marketplace. ## Types of offers Offers are the basic building blocks of the Marketplace. Four types of offers exist in Super Protocol: -- _Compute offers_: confidential computing resources to execute solutions and data inside a Trusted Execution Environment. -- _Solution offers_: applications such as AI frameworks, base images, tunnels, oracles, etc. +- _Compute offers_: Confidential computing resources required to deploy models, launch confidential tunnels, and execute solutions inside a Trusted Execution Environment (TEE). +- _Solution offers_: Applications such as AI frameworks, base images, tunnels, oracles, etc. - _Data offers_: AI models, webpages, configs, datasets, databases, etc. -- _Storage offers_: decentralized storage, such as Storj, to keep the offer content, order results, and service files. +- _Storage offers_: Decentralized storage, such as Storj, to keep the offer content, order results, and service files. _Value offer_ is a collective term for solution, data, and storage offers. @@ -30,14 +30,14 @@ Every offer has an identification number—_offer ID_. It is incremental and uni ### Compute -Compute offer is the main component in any order. It provides the resources and a Trusted Execution Environment necessary to perform a secure execution of solutions. +Compute offer is the main component in any order. It provides the resources and a TEE necessary to perform a secure execution of solutions. A compute offer is a combination of two parts: -- A record on the blockchain containing the parameters that govern how to order the offer +- A record on the blockchain containing the parameters that govern how to order the offer. - A physical confidential computing device connected to Super Protocol. -To balance the load and set better prices for the users, the compute provider can divide the resources of the physical machine into smaller parts—configuration [slots and options](/fundamentals/slots#configuration). +To balance the load and set better prices for the users, the compute provider can divide the resources of the physical machine into smaller parts—configuration slots and options. ### Solution and data @@ -52,7 +52,7 @@ An order can include several solution and data offers. For example, a solution o ### Storage -Storage offers are necessary to store the order results. It is also possible to create independent [storage orders](/fundamentals/orders#storage) for encrypted solution and data files for respective community offers. +Storage offers are necessary to store the order results. It is also possible to create independent storage orders for encrypted solution and data files for respective community offers. A storage offer is a combination of two parts: @@ -106,17 +106,17 @@ Offers may be flagged as Inactive in the Marketplace GUI for two reasons: Every offer comes with the following descriptive parameters: - **Type**: - + Compute - + Solution - + Data - + Storage + - Compute + - Solution + - Data + - Storage - **Id**: unique identification number of the offer. - **Description**: text description of the offer. - **Provider**: name of the provider who created the offer. - **Published date**: the date when the offer was created. - **Updated date**: the date when changes were made to the offer. -- **MRENCLAVE**: value that represents the hash of the code and data inside a Trusted Execution Environment. -- **MRSIGNER**: value for identifying the signing entity of a Trusted Execution Environment. +- **MRENCLAVE**: value that represents the hash of the code and data inside a TEE. +- **MRSIGNER**: value for identifying the signing entity of a TEE. ## Rules @@ -137,7 +137,7 @@ _Configuration slots_ are sets of compute-related parameters of compute offers: - The number of CPU cores - RAM - Disk space -- Minimum and maximum [lease time](/fundamentals/orders#lease-deposit-and-balance) +- Minimum and maximum [lease time](/fundamentals/orders#usage-scenarios) _Configuration options_ are sets of network-related parameters of compute offers: @@ -145,6 +145,6 @@ _Configuration options_ are sets of network-related parameters of compute offers - Traffic - External port availability -Compute providers can create multiple configuration slots and options for every offer and price them differently. The customer must choose a compute configuration to meet the sum of all the solution, data, and storage requirements in the order. +Compute providers can create multiple configuration slots and options for every offer and price them differently. A compute configuration selected for an order must meet the sum of all the solution, data, and storage requirements in this order. Read more in [Slots and Options](/fundamentals/slots). \ No newline at end of file diff --git a/docs/fundamentals/orders.md b/docs/fundamentals/orders.md index 92992a14..5bd30508 100644 --- a/docs/fundamentals/orders.md +++ b/docs/fundamentals/orders.md @@ -7,43 +7,37 @@ sidebar_position: 3 _Orders_ and _suborders_ on Super Protocol are digital contracts between customers and providers for leasing computing services, software products, and data—collectively referred to as offers. -The term _order_ always implies the usage of a compute offer. Every additional offer added to the order creates a separate _suborder_ with the respective provider. If you add your uploaded solutions and data, they create no suborders. +The term _order_ always implies the usage of a compute offer. Every additional offer added to the order creates a separate _suborder_ with the respective provider. If you add your uploaded solutions and data, they create no suborders. Every order and suborder has a unique identification number—_order ID_. It is incremental and continuous for both orders and suborders.
-## Order composition +## Order creation Most orders consist of four building blocks: -- **Solution**: Applications, engines, scripts, base images, and other programs. -- **Data**: Any data required by solutions. AI models fall into this category. -- **Compute**: Confidential computing resources required to execute solutions. -- **Storage**: Decentralized storage used to keep order results after execution. - -Solutions and data may be either leased from the Marketplace or uploaded by users. - -Compute and storage can currently only be provided by Super Protocol. - -## Order creation +- **Solution**: Engines, applications, scripts, base images, and other programs intended to launch on Super Protocol. +- **Data**: AI models, webpages, configs, datasets, databases, and any other data that solutions may require. +- **Compute**: Confidential computing resources required to execute solutions and data inside a Trusted Execution Environment (TEE). +- **Storage**: Decentralized storage that keeps order results after execution. There are two ways to place an order: -- The [Marketplace web app](https://marketplace.superprotocol.com/) is user-friendly, but limited to deploying AI models using the engines available on the Marketplace. +- The [Marketplace web app](https://marketplace.superprotocol.com/) has a convenient graphical user interface, but limited to deploying AI models using the engines available on the Marketplace. - The [command-line interface (CLI)](/cli) allows the launch of any applications and provides additional functionality. -Orders exist on the blockchain and are visible to anyone. So, while the solutions and data inside a Trusted Execution Environment (TEE) remain confidential, the general information about any order is available using the CLI. +Orders exist on the blockchain and thus are visible to anyone. The general information about any order is readily available using the [`orders get`](/cli/commands/orders/get) command. However, the solutions and data inside a TEE remain confidential. -The order result is kept by the storage suborder for as long as the customer keeps paying for it. Only the customer who placed the order knows the private key necessary to decrypt the result. +The storage suborder keeps the encrypted order result for as long as the customer keeps paying for it. Only the customer who placed the order knows the private key necessary to decrypt the result. ## Usage scenarios Depending on the solution, there are two typical usage scenarios: - One-off orders perform a specific computation and produce a result, such as an order to fine-tune an AI model. -- Long-term orders keep running as long as the order has money in the balance. For example, an order to deploy an AI model using an engine with a web interface accessible through a confidential tunnel. +- Long-term orders keep running as long as the order has money in the balance. For example, an order to deploy an AI model using an engine with a web interface accessible through a confidential tunnel. _Lease time_ is the duration for which a customer rents the services of an offer. Solutions, data, and storage are suborders, so their lease time is tied to the compute lease time. diff --git a/docs/fundamentals/slots.md b/docs/fundamentals/slots.md index d97fc1b4..55db5a23 100644 --- a/docs/fundamentals/slots.md +++ b/docs/fundamentals/slots.md @@ -5,13 +5,13 @@ slug: "/slots" sidebar_position: 4 --- -_Requirements_ describe the parameters that a solution, data, or storage offer needs to run. +_Requirements_ specify how many computing resources an offer needs to run. -_Configurations_ provide flexibility in selecting computing resources and internet access for offer deployment. The compute offer configuration added to an order must meet all the value offer requirements in this order. +_Configurations_ provide flexibility in selecting computing resources and internet access for offer deployment. The compute offer configuration added to an order must meet all the requirements in this order. ## Requirements -Requirements specify how much computing resources a value offer needs to run. A _requirement slot_ is a specific set of requirements that may include the following: +Requirements specify how many computing resources a value offer needs to run. A _requirement slot_ is a specific set of requirements that may include the following: - Number of CPU cores - RAM @@ -31,7 +31,7 @@ Additionally, providers can make their offers available for a fixed price or per ## Configuration -_Configuration_ is a way to divide the resources of a physical confidential computing device into smaller parts. This division enables a better distribution of [compute offer](/fundamentals/offers#types-of-offers) resources between orders. Customers usually do not need the resources of the whole machine for their orders. +_Configuration_ is a way to divide the resources of a physical confidential computing device into smaller parts. This division enables a better distribution of compute offer resources between orders. Customers usually do not need the resources of the whole machine for their orders. Configuration is a combination of _configuration slots_ and _configuration options_. Configuration slots are responsible for compute resources: diff --git a/docs/fundamentals/tunnels.md b/docs/fundamentals/tunnels.md index 253dc16a..08e0953f 100644 --- a/docs/fundamentals/tunnels.md +++ b/docs/fundamentals/tunnels.md @@ -5,37 +5,26 @@ slug: "/tunnels" sidebar_position: 5 --- -_Tunneling_ is a communication method that wraps data within a different data format to transmit securely and efficiently across a network. This creates a virtual communication channel—a _tunnel_—within the network. Data passes through securely and appears to be traveling over a direct connection. +_Tunneling_ is a communication method that encapsulates data within a different format to enable secure, efficient transmission over a network. It creates a virtual communication channel—a _tunnel_—that allows data to travel as if over a direct secure connection. -Super Protocol has implemented tunnels to provide decentralized confidential computing as a web service. In Super Protocol, a tunnel consists of the Tunnel Server and Tunnel Client solutions with a confidential connection between them. Tunnel servers have an external public IP. They are accessible from the internet via HTTPS through a browser or another service through API. Tunnel clients run web servers and hide behind tunnel servers from malicious attacks. Both tunnel server and client run inside a Trusted Execution Environment on their respective machines. This ensures the confidentiality of the content and execution. +Super Protocol uses tunnels to provide decentralized confidential computing as a web service. A tunnel consists of two components with a confidential connection between them: -Super Protocol supports the deployment of multiple instances of clients and servers. Distributing tunnels over different cloud service providers increases decentralization and fault tolerance. +- A _tunnel server_ has a public IP address and is accessible over HTTPS via a browser or API. +- A _tunnel client_ hosts a web server; it remains hidden behind the tunnel server and protected from external threats. -A good practice when deploying tunnels through Super Protocol is to deploy multiple instances of clients and servers and distribute them over different CSPs, thus increasing decentralization and fault tolerance. +Both the tunnel server and tunnel client operate inside a Trusted Execution Environment (TEE) on separate compute machines, ensuring data confidentiality and secure execution. + +Multiple tunnel servers and clients can be deployed across different cloud service providers (CSPs), increasing decentralization and fault tolerance.
## Advantages -**Hide the internal network structure.** Tunneling conceals the structure of the internal network from the outside. This makes it difficult to launch attacks on internal resources since attackers will not know which services are within the network. - -**Enhance security.** Tunneling combined with encryption ensures the confidentiality and integrity of transmitted data. Encryption protocols such as HTTPS protect data during transmission and guard against man-in-the-middle attacks. - -**Reduce attacks on web servers.** Attackers cannot directly target a web server because it does not have a public IP address and is only accessible through a tunnel. Network-level attacks such as DDos are directed to the server with a public IP address. This helps to reduce the risk of impacting the web server. - -**Increase flexibility and scalability.** Tunneling allows flexible configuration of the network infrastructure and facilitates the scalability of the system. It is possible to add or remove tunnel servers and tunnel clients through DNS without affecting the whole system. Tunnel servers also act as load balancers by using a round-robin mechanism to evenly distribute requests among multiple client tunnels. - - - - - - - - - - - +**Hide the internal network structure:** Tunneling conceals internal services, making it difficult for attackers to identify or target them. +**Enhance security:** Tunneling combined with encryption protects data integrity and confidentiality, preventing man-in-the-middle and other attacks during transmission. +**Reduce exposure of web servers:** Web servers without public IPs are only reachable via tunnels. This limits exposure and deflects network-level attacks, such as DDoS, to the publicly accessible tunnel server. +**Increase flexibility and scalability:** Tunnel clients and tunnel servers can be added or removed via DNS without disrupting the system. Tunnel servers also distribute traffic evenly among tunnel clients using round-robin load balancing. \ No newline at end of file diff --git a/docs/marketplace/account/web2.md b/docs/marketplace/account/web2.md index 605e282b..5e2e2140 100644 --- a/docs/marketplace/account/web2.md +++ b/docs/marketplace/account/web2.md @@ -20,12 +20,12 @@ This window shows the settings of your [Web2 User account](/marketplace/account# Super Protocol supports two options of decentralized storage to upload files: - **Super Protocol cloud**: - + Does not require additional setup. - + Uses Super Protocol's Storj account and thus relies on Super Protocol as the storage provider. - + Costs SPPI tokens for additional storage beyond the basic free package. + - Does not require additional setup. + - Uses Super Protocol's Storj account and thus relies on Super Protocol as the storage provider. + - Costs SPPI tokens for additional storage beyond the basic free package. - **Your Storj account**: - + Available to Web3 users only. - + Requires creating and setting up a Storj account. - + Gives sole control over the uploaded content and storage account. + - Available to Web3 users only. + - Requires creating and setting up a Storj account. + - Gives sole control over the uploaded content and storage account. To enable uploading to your personal Storj account, [log in as a Web3 user](/marketplace/guides/log-in). \ No newline at end of file diff --git a/docs/marketplace/account/web3.md b/docs/marketplace/account/web3.md index 58b70e65..dd18bbb3 100644 --- a/docs/marketplace/account/web3.md +++ b/docs/marketplace/account/web3.md @@ -25,12 +25,12 @@ This window allows you to manage your [Web3 User account](/marketplace/account#w You have two options of decentralized storage to upload files: - **Super Protocol cloud**: - + Recommended for most users. - + Does not require additional setup. - + Uses Super Protocol's Storj account and thus relies on Super Protocol as the storage provider. + - Recommended for most users. + - Does not require additional setup. + - Uses Super Protocol's Storj account and thus relies on Super Protocol as the storage provider. - **Your Storj account**: - + Intended for advanced users. - + Requires creating and setting up a Storj account. - + Gives sole control over the uploaded content and storage account. + - Intended for advanced users. + - Requires creating and setting up a Storj account. + - Gives sole control over the uploaded content and storage account. Read [How to Set Up Storage](/marketplace/guides/storage) for step-by-step instructions. \ No newline at end of file diff --git a/docs/marketplace/all-orders/index.md b/docs/marketplace/all-orders/index.md index 753c406f..39ac649f 100644 --- a/docs/marketplace/all-orders/index.md +++ b/docs/marketplace/all-orders/index.md @@ -19,7 +19,7 @@ The table in the center of the screen provides essential information about your - **Status**: Current status of the order. Read about [statuses](/fundamentals/orders#order-status). - **Cost to Date**: The total amount of SPPI tokens spent on the order so far. - **Balance**: The remaining order balance. When it reaches zero, the order processing stops. To replenish the balance, open the **Order** screen and click the **Extend Lease** button. -- **Engine**: A solution necessary to deploy the model and provides a user interface. +- **Engine**: A solution that launches the model and provides an interface to interact with it. - **Model**: The main model used in the order. - **Datasets**: The main dataset used in the order. Support for datasets will be added in future releases. diff --git a/docs/marketplace/all-orders/order.md b/docs/marketplace/all-orders/order.md index 2bc346ea..b558e4df 100644 --- a/docs/marketplace/all-orders/order.md +++ b/docs/marketplace/all-orders/order.md @@ -5,7 +5,7 @@ slug: "/all-orders/order" sidebar_position: 1 --- -This screen provides detailed information about a particular order. Read about [Orders](/fundamentals/orders). +This screen provides detailed information about a particular order.
@@ -22,7 +22,7 @@ The contents of an order are encrypted and accessible only to the user who place - **In Queue**. The order is awaiting in the queue for the computing device to become available. - **Processing**. The machine is executing the order inside a Trusted Execution Environment. -Statuses specific for Deploy orders: +Statuses specific for deployment orders: - **Deployed**. The model is running and available via the **Access Link**. - **Done**. The model is no longer running. @@ -35,7 +35,7 @@ Additional possible statuses: Read about [statuses](/fundamentals/orders#order-status). -**Lease Remaining** indicates the remaining time until the order is completed and gets the Done status. It is calculated by dividing the remaining order balance by the total cost of all the offers priced per hour. For Deploy orders with the Deployed status, it is the duration the model will remain operational. +**Lease Remaining** indicates the remaining time until the order is completed and gets the Done status. It is calculated by dividing the remaining order balance by the total cost of all the offers priced per hour. For deployment orders with the Deployed status, it is the duration the model will remain operational. ## Financials @@ -47,12 +47,12 @@ The **Financials** section shows payment-related information about the order: ## Deployment -The **Deployment** section informs about the launched tunnel. Tunnels enable end users to securely access a model deployed on Super Protocol from the internet. Read about [Tunnels](/fundamentals/tunnels). +The **Deployment** section informs about the launched tunnel. **Status** indicates the current state of the tunnel: -- **Creating**: the tunnel order has been placed, but the tunnel or the model is not ready yet. The AI engine's web UI is not accessible. -- **Online**: the tunnel is operational, and the model is running. End users may access the AI engine's web UI via the **Access Link**. +- **Creating**: the tunnel order has been placed, but the tunnel or the model is not ready yet. The model interface is not accessible. +- **Online**: the tunnel is operational, and the model is running. End users may access the model interface via the **Access Link**. - **Offline**: the tunnel order is done, and the tunnel is no longer available. The model is inaccessible, but the expired **Access Link** remains visible. To get detailed information about the tunnel orders related to the main order, open the **Tunnels Orders** tab at the bottom of the screen. The **Tunnels** section and the **Tunnels Orders** tab only exist for orders that utilize tunnels and are only visible to the user who placed the order. @@ -69,7 +69,7 @@ These buttons are only visible to the user who placed the order. ### Cancel Order -The **Cancel Order** button lets you cancel the order and transfer the remaining balance back to your wallet. Clicking the button initiates the cancellation process by creating a transaction that Web3 users should **Confirm** in MetaMask. If you **Reject** the transaction, the cancellation process will not proceed. +The **Cancel Order** button lets you cancel the order and transfer the remaining balance back to your wallet. Clicking the button initiates the cancellation process by creating a transaction that Web3 users should **Confirm** in MetaMask.
@@ -79,7 +79,7 @@ The **Cancel Order** button lets you cancel the order and transfer the remaining The **Extend Lease** button opens the **Extend Lease** window that allows you to add SPPI tokens to the order balance: - For Fine-tune orders, it may be necessary to finish the computation. -- For Deploy orders, it increases the time the model will be running. +- For deployment orders, it increases the time the model will be running.
@@ -106,25 +106,23 @@ The **Providers** tab contains additional information about the order and its su Click the suborder's **ID** number to open its **Order** screen. Note that some suborders may not be available to view. -Read more about [order types](/fundamentals/orders). - ## Tunnel Orders tab -The **Tunnel Orders** tab contains information about tunnel orders related to the main order. The tab is visible only for orders that utilize tunnels. +The **Tunnel Orders** tab contains information about the tunnel orders related to the main order. The tab is visible only for orders that utilize tunnels.

-- **Date Created** (hidden by default): the date and time when the customer placed the order. -- **Date Modified**: the date and time of the latest change in the order status. -- **Order ID**: a unique offer identification number. It is incremental and continuous for all orders and suborders on Super Protocol. -- **Offer**: the solution used in the tunnel's order or suborder. Read about [orders](/fundamentals/orders) and [tunnels](/fundamentals/tunnels). -- **Status**: current status of the order. Read about [statuses](/fundamentals/orders#order-status). -- **Lease Remaining**: the remaining time until the order is complete and gets the Done status. -- **Cost to Date**: the total amount of SPPI tokens spent on the order so far. -- **Cost Per Hour** (hidden by default): the total cost of all the offers priced per hour. Every hour, the order balance decreases by this amount. -- **Balance**: the remaining order balance. When it reaches zero, the order gets the Done status. You can replenish the balance using the **Extend Lease** button. +- **Date Created** (hidden by default): The date and time when the customer placed the order. +- **Date Modified**: The date and time of the latest change in the order status. +- **Order ID**: A unique offer identification number. It is incremental and continuous for all orders and suborders on Super Protocol. +- **Offer**: The solution used in the tunnel order or suborder. +- **Status**: The current order status. +- **Lease Remaining**: The remaining time until the order is complete and gets the Done status. +- **Cost to Date**: The total amount of SPPI tokens spent on the order so far. +- **Cost Per Hour** (hidden by default): The total cost of all the offers priced per hour. Every hour, the order balance decreases by this amount. +- **Balance**: The remaining order balance. When it reaches zero, the order gets the Done status. You can replenish the balance using the **Extend Lease** button. ## Events tab @@ -142,11 +140,11 @@ The **Events** tab contains information on what is happening with the order. - **Name**: The name of the offer. - **Status**: The status of the order or suborder when the event occurred. - **Event**: The code of what happened. The main blockchain events: - + **OrderCreated**: The order or suborder is created on the blockchain. - + **OrderStarted**: The compute order has started. - + **OrderStatusUpdated**: The order or suborder status has changed without any new events. - + **OrderEncryptedResultUpdated**: The resource path to the order result was written to the blockchain. - + **OrderChangeWithdrawn**: The remaining token balance was returned to the customer. - + **OrderProfitWithdrawn**: The provider withdrew the offer payment from the order balance. + - **OrderCreated**: The order or suborder is created on the blockchain. + - **OrderStarted**: The compute order has started. + - **OrderStatusUpdated**: The order or suborder status has changed without any new events. + - **OrderEncryptedResultUpdated**: The resource path to the order result was written to the blockchain. + - **OrderChangeWithdrawn**: The remaining token balance was returned to the customer. + - **OrderProfitWithdrawn**: The provider withdrew the offer payment from the order balance. - **Value**: The transaction value in SPPI tokens, if applicable. - **Txn Hash**: The transaction hash. Clicking it opens the transaction in the [OKLink block explorer](https://www.oklink.com/). \ No newline at end of file diff --git a/docs/marketplace/confidentiality.md b/docs/marketplace/confidentiality.md index 75b7036e..2ace8bb6 100644 --- a/docs/marketplace/confidentiality.md +++ b/docs/marketplace/confidentiality.md @@ -5,32 +5,32 @@ slug: "/confidentiality" sidebar_position: 21 --- -*Check Confidentiality* is a service that verifies the authenticity of a domain deployed on Super Protocol and ensures its content is running in a valid Trusted Execution Environment (TEE). +*Check Confidentiality* is a service that verifies the authenticity of a domain deployed on Super Protocol and ensures its content is running in a valid Trusted Execution Environment (TEE).

-Super Protocol uses *SSL/TLS certificates* to encrypt the data exchange between the user's browser and the web server inside the Tunnel Client deployment. Besides, Super Protocol Certification Authorities issue certificates for every order—[*order certificates*](/fundamentals/certification). +Super Protocol uses *SSL/TLS certificates* to encrypt the data exchange between the user's browser and the web server inside a tunnel client deployment. Besides, Super Protocol Certification Authorities [issue certificates](/fundamentals/certification) for every order. The Check Confidentiality service performs the following: - Validates the order certificate chain to ensure the order is being processed in a correct TEE. -- Validates the integrity of the [Tunnel Client](/fundamentals/tunnels) deployment. -- Checks if the solution is a Marketplace offer (for instance, a specific [engine](/marketplace/order-builder#engine)). Otherwise, you will see a warning "Deployed solution is not an offer" meaning the solution cannot be verified. +- Validates the integrity of the tunnel client deployment. +- Checks if the solution is a Marketplace offer (for instance, a specific engine). Otherwise, you will see a warning "Deployed solution is not an offer" meaning the solution cannot be verified.

-To view the service report, paste the domain URL, for example, **Access Link** available on the [**Order**](/marketplace/all-orders/order) screen of a deployed model. +To view the service report, paste the domain URL, for example, **Access Link** available on the [**Order** screen](/marketplace/all-orders/order) of a deployed model. ## Validation -The Tunnel Client signs the fingerprint of the domain SSL/TLS certificate with the order certificate's private key. Then, it provides to the Check Confidentiality service: +The tunnel client signs the fingerprint of the domain SSL/TLS certificate with the order certificate's private key. Then, it provides to the Check Confidentiality service: - The SSL/TLS certificate fingerprint—the expected fingerprint. -- The fingerprint signature. A valid signature means the Tunnel Client has the private key to the order certificate. +- The fingerprint signature. A valid signature means the tunnel client has the private key to the order certificate. - The order certificate chain to check that all the certificates in the chain have not expired or been revoked. A valid certificate chain means the order is being processed in a correct TEE. ## Fingerprint comparison diff --git a/docs/marketplace/extras/.release-history.md b/docs/marketplace/extras/.release-history.md index 3e59877e..1971827a 100644 --- a/docs/marketplace/extras/.release-history.md +++ b/docs/marketplace/extras/.release-history.md @@ -7,20 +7,24 @@ sidebar_position: 22 Features coming up in the next phases: -- Publishing offers on the Marketplace from the uploaded files. - Fine-tuning—train new layers of the original models. - Support for datasets. - More models available on the Marketplace. - More AI engines and model categories. - A light UI theme. +_April 30, 2025:_ + +- Publishing offers on the Marketplace from the uploaded files. +- A few thousand models added to the Marketplace by various providers. + _March 10, 2025:_ - Marketplace moves to opBNB. _February 17, 2025:_ -- Marketplace moves from the Amoy testnet to Polygon. +- Marketplace moves from the Amoy testnet to the Polygon mainnet. _November 21, 2024:_ diff --git a/docs/marketplace/guides/deploy-model.md b/docs/marketplace/guides/deploy-model.md index 0ab8bdc5..ab55afae 100644 --- a/docs/marketplace/guides/deploy-model.md +++ b/docs/marketplace/guides/deploy-model.md @@ -13,15 +13,45 @@ Uploading models and creating o ::: -## 1. Upload +## 1. Prepare -1.1. In the **My Offers** screen, click the **New Offer** button. +Ensure your model meets the Super Protocol requirements: + +1.1. Your model must belong to a category supported by one of the engines. + +**Text Generation Web UI**: + +- Text Generation +- Text Classification +- Translation +- Text2Text Generation + +**ComfyUI**: + +- Image Classification +- Object Detection +- Image Segmentation +- Text-to-Image +- Image-to-Text +- Image-to-Image +- Image-to-Video +- Video Classification +- Text-to-Video +- Mask Generation + +If you plan to deploy a ComfyUI workflow with custom nodes, [prepare the files](/marketplace/guides/prepare-comfyui) before uploading. You cannot upload directly to the deployed ComfyUI for security reasons. + +1.2. Due to [testnet limitations](/marketplace/limitations), the total size of model files should not exceed 13 GB. Support for bigger models will be available in the future. + +## 2. Upload + +2.1. Open **My Offers** and click the **New Offer** button.

-1.2. Complete all fields in the appearing window. +2.2. Complete all fields in the appearing window.
@@ -29,40 +59,38 @@ Uploading models and creating o - **Name**: Type in the model name. Providing a meaningful name makes it easier to find the model later. - **Category**: Select the type of task that the model is designed to perform. -- **Engine**: Select compatible engines; it is recommended to select both variants: - + **GPU-only** engines require CPU+GPU compute offers. - + **CPU-only** engines can run on both CPU-only and CPU+GPU compute offers. However, models work much slower in this mode. +- **Engine**: Select compatible engines; it is recommended to select both variants: + - **GPU-only** engines require CPU+GPU compute offers. + - **CPU-only** engines can run on both CPU-only and CPU+GPU compute offers. However, models work much slower in this mode. - **Upload**: Click to upload files or a directory. The selected directory will become the root after upload. -:::note - -Due to [Testnet limitations](/marketplace/limitations), the total size of model files should not exceed 13 GB. Support for bigger models will be available in the future. - -::: - -1.3. Click the **Create Offer** button. Do not close the window until the upload is complete. This may take a few minutes. +2.3. Click **Create Offer**. Do not close the window until the upload is complete. This may take a few minutes. -1.4. When the upload is complete, close the New Offer window or click **Go to Offer** to open the offer in the [Offer Builder](/marketplace/my-offers/offer-builder). +2.4. When the upload is complete, close the window or click **Go to Offer** to open the offer in the [Offer Builder](/marketplace/my-offers/offer-builder).
-## 2. Deploy +## 3. Deploy -2.1. Click the **Deploy** button next to your offer in the My Offers screen or the bottom-right corner of the Offer Builder. You will be redirected to the [Order Builder](/marketplace/order-builder) with a preconfigured order for a quick deployment. +3.1. Click the **Deploy** button next to your offer in the My Offers screen or the bottom-right corner of the Offer Builder. You will be redirected to the [Order Builder](/marketplace/order-builder) with a preconfigured order for a quick deployment. -2.2. In the Order Builder, review and modify the order if necessary. Click **Pay Now** to place the order. +3.2. In the Order Builder, review and modify the order if necessary. Click **Pay Now** to place the order.

-2.3. When the order is created, you will be redirected to the [Order](/marketplace/all-orders/order) screen. Wait until the deployment is ready. It may take 15-45 minutes, depending on the model size and other factors. +3.3. When the order is created, you will be redirected to the [Order](/marketplace/all-orders/order) screen. Wait until the deployment is ready. It may take 15-45 minutes, depending on the model size and other factors.

-2.4. When your order is ready, you will see the Deployed status and an Access Link to your model's interface. +3.4. When your order is ready, you will see the **Deployed** status and an **Access Link** to your model's interface. + + + +## Contact Super Protocol - \ No newline at end of file +If you face any issues, do not hesitate to contact the Super Protocol team on [Discord](https://discord.gg/superprotocol) or via the [contact form](https://superprotocol.zendesk.com/hc/en-us/requests/new) for assistance. \ No newline at end of file diff --git a/docs/marketplace/guides/prepare-comfyui.md b/docs/marketplace/guides/prepare-comfyui.md new file mode 100644 index 00000000..a1650880 --- /dev/null +++ b/docs/marketplace/guides/prepare-comfyui.md @@ -0,0 +1,164 @@ +--- +id: "prepare-comfyui" +title: "Prepare a ComfyUI Workflow" +slug: "/guides/prepare-comfyui" +sidebar_position: 6 +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +This guide provides step-by-step instructions for preparing a **ComfyUI** workflow with custom nodes before uploading it . You cannot upload custom nodes directly to the deployed ComfyUI for security reasons. + +:::note + +Due to [testnet limitations](/marketplace/limitations), the total size of model files should not exceed 13 GB. Support for bigger models will be available in the future. + +::: + +You can prepare your model, workflow, and custom node files manually or using Docker and a script provided by Super Protocol. + + + + + Prerequisites: + + - Linux or MacOS. On Windows, use the [Windows Subsystem for Linux (WSL)](https://learn.microsoft.com/en-us/windows/wsl/install). + - [Docker](https://www.docker.com/) + + 1. Clone the [Super-Protocol/solutions](https://github.com/Super-Protocol/solutions/) GitHub repository to the location of your choosing: + + ``` + git clone https://github.com/Super-Protocol/solutions.git --depth 1 + ``` + + Alternatively, download and extract a [ZIP archive](https://github.com/Super-Protocol/solutions/archive/refs/heads/main.zip) with the repository. + + 2. Launch Docker Desktop or otherwise start the Docker daemon. + + 3. Go to the ComfyUI directory in the downloaded repository and run the script `start-dev-container.sh` to start a container with ComfyUI. If this is the first run, Docker will pull the image from the remote registry. This may take a few minutes. + + If you receive the error `bind source path does not exist`, add the repository directory to **File sharing** in the Docker's settings to make it available to the container. + + When the script is done, you will see the message `ComfyUI is running!` in the output. + + 4. Open http://localhost:8188/ in your browser to access the running ComfyUI if it has not opened automatically. + + 5. Load and customize the workflow. Use the following methods to add model files to the container: + + **Use a downloader** + + In ComfyUI, open **Custom Node Manager** and install a custom node to download model files. For example, [ComfyUI Model Downloader](https://github.com/ciri/comfyui-model-downloader) supports downloading models from Hugging Face and CivitAI. Download model files using the installed node. + + **Download directly to the container** + + Access the running container with the following command: + + ``` + docker exec -it comfyui bash + ``` + + Go to the `models` directory inside the container and download the model files to the corresponding subdirectories using the `wget` command. For example: + + ``` + wget https://huggingface.co/prompthero/openjourney/resolve/main/mdjrny-v4.safetensors + ``` + + **Copy from your computer** + + If you have the model on your computer, copy its files to the container using the following command: + + ``` + docker cp comfyui: + ``` + + - Replace `` with the path to a file on your computer. + - Replace `` with the path inside the container. + + For example: + + ``` + docker cp ~/Downloads/openjourney/mdjrny-v4.safetensors comfyui:/opt/ComfyUI/models/checkpoints/mdjrny-v4.safetensors + ``` + + 6. When the workflow is ready, save it (Ctrl+S). + + 7. Run the script `save-and-stop-dev-container.sh`. Wait until the script is finished; this may take a few minutes. When done, the script will create a TAR.GZ archive file with your workflow and model files in the `solutions/ComfyUI/changeset/` directory. + + 8. Unpack the archive using the following command: + + ``` + tar -xvzf snapshot.tar.gz -C + ``` + + - Replace `` with the name of the output directory. + + The output directory is ready for [upload](/marketplace/guides/deploy-model#2-upload) to Super Protocol. + + + + + 1. Create a directory for the model files—the _model directory_. + + 2. In this directory, create the following subdirectory structure: + + ``` + user/default/workflows/ + user/default/ComfyUI-Manager/snapshots/ + ``` + + Place your workflow JSON file to `user/default/workflows/` or leave the directory empty to use the ComfyUI's default text-to-image workflow. + + Leave `user/default/ComfyUI-Manager/snapshots/` empty. + + 3. If necessary, create additional subdirectories for the model files: + + ``` + models/checkpoints/ + models/clip/ + models/clip_vision/ + models/configs/ + models/controlnet/ + models/diffusers/ + models/diffusion_models/ + models/embeddings/ + models/gligen/ + models/hypernetworks/ + models/loras/ + models/photomaker/ + models/style_models/ + models/text_encoders/ + models/unet/ + models/upscale_models/ + models/vae/ + models/vae_approx/ + ``` + + 4. Create an additional subdirectory `custom_nodes` in the root of the model directory and place the node directories there. + + 5. Check if the subdirectory structure inside the model directory is correct. An example of a correct structure: + + ``` + . + ├── custom_nodes + │    └── comfyui-model-downloader + │   └── ... + ├── models + │   └── checkpoints + │   └── mdjrny-v4.safetensors + └── user + └── default + ├── ComfyUI-Manager + │   └── snapshots + └── workflows + └── my-openjourney-workflow.json + ``` + + The model directory is ready for [upload](/marketplace/guides/deploy-model#2-upload) to Super Protocol. + + + + +## Contact Super Protocol + +If you face any issues, do not hesitate to contact the Super Protocol team on [Discord](https://discord.gg/superprotocol) or via the [contact form](https://superprotocol.zendesk.com/hc/en-us/requests/new) for assistance. \ No newline at end of file diff --git a/docs/marketplace/guides/publish-offer.md b/docs/marketplace/guides/publish-offer.md index 686494ec..ee2ef767 100644 --- a/docs/marketplace/guides/publish-offer.md +++ b/docs/marketplace/guides/publish-offer.md @@ -45,9 +45,9 @@ Uploading models and creating o - **Name**: Type in the model name. Providing a meaningful name makes it easier to find the offer on the Marketplace. - **Category**: Select the type of task that the model is designed to perform. -- **Engine**: Select compatible engines; it is recommended to select both variants: - + **GPU-only** engines require CPU+GPU compute offers. - + **CPU-only** engines can run on both CPU-only and CPU+GPU compute offers. However, models work much slower in this mode. +- **Engine**: Select compatible engines; it is recommended to select both variants: + - **GPU-only** engines require CPU+GPU compute offers. + - **CPU-only** engines can run on both CPU-only and CPU+GPU compute offers. However, models work much slower in this mode. - **Upload**: Click to upload files or a directory. The selected directory will become the root after upload. :::note @@ -105,7 +105,7 @@ Fields required to publish the offer are marked with \*. ## 6. Create requirement slots -In the **Pricing** tab, click the **Add Slot** button to open an editable template for a requirement slot. +In the **Pricing** tab, click the **Add Slot** button to open an editable template for a requirement slot.
@@ -120,8 +120,8 @@ If the offer supports both GPU-only and CPU-only engines, create at least one sl Complete the following fieds: - **Price**: Set the price in SPPI tokens for leasing the model and select the pricing type: - + **Fixed**: A one-time payment for each order, regardless of the lease duration. - + **Per Hour**: Payment is based on the number of hours the offer is leased. + - **Fixed**: A one-time payment for each order, regardless of the lease duration. + - **Per Hour**: Payment is based on the number of hours the offer is leased. - **Disk**: Set the required disk space in gigabytes (GB). It should not be less than the sum of all model files. - **GPU RAM**: Set the required video RAM in gigabytes (GB). - **Min Time** and **Max Time**: Set the minimum and maximum lease duration limits, as defined by the provider. `0` means no limit. @@ -131,8 +131,8 @@ If the offer supports both GPU-only and CPU-only engines, create at least one sl Complete the following fieds: - **Price**: Set the price in SPPI tokens for leasing the model and select the pricing type: - + **Fixed**: A one-time payment for each order, regardless of the lease duration. - + **Per Hour**: Payment is based on the number of hours the offer is leased. + - **Fixed**: A one-time payment for each order, regardless of the lease duration. + - **Per Hour**: Payment is based on the number of hours the offer is leased. - **Disk**: Set the required disk space in gigabytes (GB). It should not be less than the sum of all model files. - **CPU RAM**: Set the required RAM in gigabytes (GB). - **Min Time** and **Max Time**: Set the minimum and maximum lease duration limits, as defined by the provider. `0` means no limit. @@ -148,4 +148,8 @@ If the uploaded model exists in several formats, create requirement slots for ea Click **Publish Offer** in the bottom-right corner to validate and publish the offer on the Marketplace. If validation is unsuccessful, you will see yellow indicators marking the fields that need to be configured before the offer can be published. -If you want to unpublish the offer, click the **[ ⋮ ]** button in the top-right corner of the screen. Note that offers cannot be completely deleted due to the blockchain immutability. However, unpublished offers do not appear on the Marketplace and cannot be used in orders. \ No newline at end of file +If you want to unpublish the offer, click the **[ ⋮ ]** button in the top-right corner of the screen. Note that offers cannot be completely deleted due to the blockchain immutability. However, unpublished offers do not appear on the Marketplace and cannot be used in orders. + +## Contact Super Protocol + +If you face any issues, do not hesitate to contact the Super Protocol team on [Discord](https://discord.gg/superprotocol) or via the [contact form](https://superprotocol.zendesk.com/hc/en-us/requests/new) for assistance. \ No newline at end of file diff --git a/docs/marketplace/guides/storage.md b/docs/marketplace/guides/storage.md index 86d39843..8d628376 100644 --- a/docs/marketplace/guides/storage.md +++ b/docs/marketplace/guides/storage.md @@ -2,7 +2,7 @@ id: "storage" title: "Set Up Personal Storage" slug: "/guides/storage" -sidebar_position: 6 +sidebar_position: 7 --- This guide provides step-by-step instructions on how to set up your personal Storj account. @@ -44,14 +44,14 @@ Open the [Marketplace web app](https://marketplace.superprotocol.com/). Log in a Select the **Your Storj account** radio button, fill in the fields, and click **Save**. -| **Field** | **Value** | +| **Field** | **Value** | | :- | :- | -| Bucket | Name of the Storj bucket | -| Path | Path to a directory inside the bucket; it can be empty | -| S3 Access Key (Full) | Access Key with **Full** permission | -| S3 Secret Key (Full) | Secret Key with **Full** permission | -| S3 Access Key (Read) | Access Key with **Read** permission | -| S3 Secret Key (Read) | Secret Key with **Read** permissions | +| Bucket | Name of the Storj bucket. | +| Path | Path to a directory inside the bucket; it can be empty. | +| S3 Access Key (Full) | Access Key with **Full** permission. | +| S3 Secret Key (Full) | Secret Key with **Full** permission. | +| S3 Access Key (Read) | Access Key with **Read** permission. | +| S3 Secret Key (Read) | Secret Key with **Read** permissions. |
diff --git a/docs/marketplace/guides/troubleshooting.md b/docs/marketplace/guides/troubleshooting.md index fb64b20d..1e1937cc 100644 --- a/docs/marketplace/guides/troubleshooting.md +++ b/docs/marketplace/guides/troubleshooting.md @@ -53,7 +53,7 @@ Solution: upload a variant of the model with a lower-bit quantization or choose Some models rely on scripts without which they will not run. If you deploy such a model with the default settings, the order will end with an error. An example of such a model is [cerebras/btlm-3b-8k-base](https://huggingface.co/cerebras/btlm-3b-8k-base). -Solution: allow executing remote code in the engine settings before placing the order: +Solution: allow executing remote code in the engine settings before placing the order: 1. In the Order Builder, open the engine settings. diff --git a/docs/marketplace/images/order-deployed-online.png b/docs/marketplace/images/order-deployed-online.png index 095ae5af..e0b2b336 100644 Binary files a/docs/marketplace/images/order-deployed-online.png and b/docs/marketplace/images/order-deployed-online.png differ diff --git a/docs/marketplace/index.md b/docs/marketplace/index.md index 7be956f5..98a12915 100644 --- a/docs/marketplace/index.md +++ b/docs/marketplace/index.md @@ -14,7 +14,7 @@ Super Protocol launched the first public release of Marketplace 2.0 on November - Demo account with OAuth2 login for a quick start. - Support for Intel TDX and NVIDIA GPU confidential computing. - Ability to upload model files to the Super Cloud or personal Storj accounts. -- AI model deployment in confidential tunnels using various AI engines and settings. +- AI model deployment using various engines and settings. - Redesigned UI/UX. Upcoming features in the future development phases: @@ -23,7 +23,7 @@ Upcoming features in the future development phases: - Fine-tuning models by creating new layers for base models. - Support for datasets. - Expanded model availability in the Marketplace. -- Additional AI engines and support for more model categories. +- Additional engines and support for more model categories. - A light UI theme. Any feedback would be very much appreciated—please join our [Discord](https://discord.gg/superprotocol) or use the [contact form](https://superprotocol.zendesk.com/hc/en-us/requests/new). diff --git a/docs/marketplace/limitations.md b/docs/marketplace/limitations.md index abc02763..ec5978af 100644 --- a/docs/marketplace/limitations.md +++ b/docs/marketplace/limitations.md @@ -13,7 +13,7 @@ During the testnet, you can deploy models using either Intel TDX CPUs or NVIDIA Super Protocol supports two types of machines: -- **TDX+H100 (CPU and GPU)** can run orders on GPU or CPU, depending on the selected engine type. +- **TDX+H100 (CPU and GPU)** can run orders on GPU or CPU, depending on the selected engine type. - **TDX (CPU only)** can only run orders on CPU. Note that CPUs are much slower. Super Protocol constantly adds more TDX+H100 machines and will soon begin onboarding machines from third-party providers. @@ -21,10 +21,10 @@ Super Protocol constantly adds more TDX+H100 machines and will soon begin onboar Pricing and restrictions: - Order lease time: minimum 2 hours. -- Compute costs 0.2126 SPPI tokens per hour in most cases. +- Compute costs 0.2126 SPPI tokens per hour in most cases. - Currently, models from the Marketplace cost 0 SPPI per order. - Engines cost 0 SPPI per order. -- Setting up a confidential tunnel costs 0.1-0.2 SPPI per order. +- Setting up a confidential tunnel costs 0.1-0.2 SPPI per order. For example, a two-hour GPU-order would cost: @@ -38,23 +38,23 @@ Web3 users can receive up to **1.5 SPPI** tokens and **0.0001 BNB** tokens daily ## Model limits -If you want to upload and deploy your model, its total size should not exceed 13 GB; otherwise, deployment may fail. More machines with larger slots to support bigger models will be available in the future. +If you want to upload and deploy your model, its total size should not exceed 13 GB; otherwise, deployment may fail. More machines with larger slots to support bigger models will be available in the future. -Also, deployed models must belong to a category supported by one of the AI engines: +Also, deployed models must belong to a category supported by one of the engines: - **Text Generation Web UI** supports text-based tasks: - + Text Generation - + Text Classification - + Translation - + Text2Text Generation + - Text Generation + - Text Classification + - Translation + - Text2Text Generation - **ComfyUI** supports various image- and video-related tasks: - + Image Classification - + Object Detection - + Image Segmentation - + Text-to-Image - + Image-to-Text - + Image-to-Image - + Image-to-Video - + Video Classification - + Text-to-Video - + Mask Generation + - Image Classification + - Object Detection + - Image Segmentation + - Text-to-Image + - Image-to-Text + - Image-to-Image + - Image-to-Video + - Video Classification + - Text-to-Video + - Mask Generation diff --git a/docs/marketplace/models/index.md b/docs/marketplace/models/index.md index b5d662ed..bbd2491b 100644 --- a/docs/marketplace/models/index.md +++ b/docs/marketplace/models/index.md @@ -34,7 +34,7 @@ In the table view, you can see the following columns: - **Price, hr**: the hourly rate for leasing the offer. - **Price, fix**: the fixed price for each use of the offer, regardless of the lease duration. -Clicking an offer opens the [**Offer**](/marketplace/models/offer) window, which provides further details such as descriptions, requirement slots, and pricing. +Clicking an offer opens the [**Offer** window](/marketplace/models/offer), which provides further details such as descriptions, requirement slots, and pricing. ## Filters and search diff --git a/docs/marketplace/models/offer.md b/docs/marketplace/models/offer.md index 2dd06268..2308900b 100644 --- a/docs/marketplace/models/offer.md +++ b/docs/marketplace/models/offer.md @@ -5,7 +5,7 @@ slug: "/models/offer" sidebar_position: 2 --- -This window provides information about a model available for lease on the Marketplace, including its pricing and requirements. +This window provides information about a model available for lease on the Marketplace, including its pricing and requirements.
@@ -16,10 +16,10 @@ On the right-hand side of the window, you can find metadata about the **Engine** + - **Compute**. - **Provider**: The name of the provider that created the offer. - **Category**: The tasks the model is intended for. - **Source**: A link to the resource from which the model was taken. @@ -55,9 +55,9 @@ Super Protocol supports two pricing types: Each slot includes the following requirements: -- **CPU vCores**: Number of virtual CPU cores; can be fractional. +- **CPU vCores**: The number of virtual CPU cores; can be fractional. - **CPU RAM**: RAM in gigabytes (GB). -- **GPU vCores**: Number of virtual GPU cores; can be fractional. +- **GPU vCores**: The number of virtual GPU cores; can be fractional. - **GPU RAM**: Video RAM in gigabytes (GB). - **Disk**: Disk space in gigabytes (GB). - **Bandwidth**: Data transfer rate in megabits per second (Mbps). diff --git a/docs/marketplace/my-offers/new-offer.md b/docs/marketplace/my-offers/new-offer.md index 0912b525..5aed1d7d 100644 --- a/docs/marketplace/my-offers/new-offer.md +++ b/docs/marketplace/my-offers/new-offer.md @@ -5,7 +5,7 @@ slug: "/my-offers/new-offer" sidebar_position: 1 --- -This window allows you to upload a model and create an offer. After uploading, you can deploy the model. Additionally, you can configure and publish the offer on the Marketplace to lease the uploaded model to other users. +This window allows you to upload a model and create an offer. After uploading, you can deploy the model. Additionally, you can configure and publish the offer on the Marketplace to lease the uploaded model to other users.
@@ -15,9 +15,9 @@ To upload a model, complete all the fields: - **Name**: A model name. Providing a meaningful name makes it easier to find the model later. - **Category**: Type of task that a model is designed to perform. -- **Engine**: A solution to deploy the model and provide a user interface. Each engine has two variants: - + **GPU-only** engines require CPU+GPU compute offers to run. - + **CPU-only** engines can run on both CPU-only and CPU+GPU compute offers. However, models work much slower in this mode. +- **Engine**: A solution designed to launch AI models, customize parameters, configure workflows, and provide an interface to interact with models. Each engine exists in two variants: + - **GPU-only** engines require CPU+GPU compute offers to run. + - **CPU-only** engines can run on both CPU-only and CPU+GPU compute offers. However, models work much slower in this mode. - **Upload**: A directory or files to upload. The uploaded model files are encrypted and accessible only to the Confidential Computing machine that deploys the model. You can modify all of this data later using the [Offer Builder](/marketplace/my-offers/offer-builder), including replacing or adding uploaded files. \ No newline at end of file diff --git a/docs/marketplace/my-offers/offer-builder.md b/docs/marketplace/my-offers/offer-builder.md index 0b6cb11c..1b7a7fe3 100644 --- a/docs/marketplace/my-offers/offer-builder.md +++ b/docs/marketplace/my-offers/offer-builder.md @@ -43,9 +43,9 @@ This tab contains general information about the offer. - **About\***: Offer description with Markdown support. If the model files contain a `README.md` file, the description will be taken from it. - **Name\***: The offer name. Providing a meaningful name makes it easier to find the model on the Marketplace. - **Category\***: The tasks for which the model is intended. -- **Engine\***: A solution that launches the model and provides a user interface. Each engine exists in two variants: - + GPU-only engines require CPU+GPU compute offers. - + CPU-only engines can run on both CPU-only and CPU+GPU compute offers. However, models work much slower in this mode. +- **Engine\***: A solution designed to launch AI models, customize parameters, configure workflows, and provide an interface to interact with models. Each engine exists in two variants: + - GPU-only engines require CPU+GPU compute offers. + - CPU-only engines can run on both CPU-only and CPU+GPU compute offers. However, models work much slower in this mode. - **Parameters**: Model parameters in millions or billions. - **License\***: The license under which the model is distributed. - **Source URL**: A link to the resource with the model files. @@ -56,7 +56,7 @@ Fields required to publish the offer are marked with \*. ## Pricing -This tab contains requirement slots and their prices. +This tab contains requirement slots and their prices.
@@ -71,8 +71,8 @@ To support both CPU-only and GPU-only engines, create separate requirement slots The **Add Slot** button opens an editable template for a slot that allows you to set the offer requirements: - **Price**: The price in SPPI tokens for leasing the model and the pricing type: - + **Fixed**: A one-time payment for each order, regardless of the lease duration. - + **Per Hour**: Payment is based on the number of hours the offer is leased. + - **Fixed**: A one-time payment for each order, regardless of the lease duration. + - **Per Hour**: Payment is based on the number of hours the offer is leased. - **CPU vCores**: Number of virtual CPU cores; can be fractional. Set to `0` to create a slot for GPU-only engines. - **CPU RAM**: RAM in gigabytes (GB). Set to `0` to create a slot for GPU-only engines. - **GPU vCores**: Number of virtual GPU cores; can be fractional. Set to `0` to create a slot for CPU-only engines. diff --git a/docs/marketplace/order-builder/checkout.md b/docs/marketplace/order-builder/checkout.md index 5dc80db4..7662c9a2 100644 --- a/docs/marketplace/order-builder/checkout.md +++ b/docs/marketplace/order-builder/checkout.md @@ -18,7 +18,7 @@ The confirmation process depends on the account type: - **Web3 users** must confirm transactions in MetaMask. If the MetaMask browser extension do not open automatically, open it manually, select the transaction in the **Activity** tab, and confirm it. - **Web2 users** do not need to confirm transactions, as they do not pay using decentralized wallets. Instead, payment relies on Super Protocol. The transactions are processed automatically. -Note that **Deploy** orders require confirmation of two transactions—one to pay for the Tunnels Launcher order and another for the main (Deploy) order. Tunnels Launcher creates a set of [confidential tunnels](/fundamentals/tunnels) necessary to access the running model from the internet. +Note that **Deploy** orders require confirmation of two transactions—one to pay for the Tunnels Launcher order and another for the main (Deploy) order. Tunnels Launcher creates a confidential tunnel necessary to access the running model from the internet. Once the order is placed successfully, you will be redirected to its [**Order**](/marketplace/all-orders/order) screen. diff --git a/docs/marketplace/order-builder/compatibiity.md b/docs/marketplace/order-builder/compatibility.md similarity index 81% rename from docs/marketplace/order-builder/compatibiity.md rename to docs/marketplace/order-builder/compatibility.md index 963a360a..3cf05f25 100644 --- a/docs/marketplace/order-builder/compatibiity.md +++ b/docs/marketplace/order-builder/compatibility.md @@ -16,14 +16,14 @@ This message appears when the selected model and a dataset do not belong to the ## Not compatible with the engine -This message appears when the selected engine does not support the model or dataset. An example of such a message: +This message appears when the selected engine does not support the model or dataset. An example of such a message:
## Compute configuration is not sufficient -This message appears when the selected compute configuration does not meet the combined requirements of the models, datasets, and engine added to the order. +This message appears when the selected compute configuration does not meet the combined requirements of the models, datasets, and engine added to the order.
diff --git a/docs/marketplace/order-builder/index.md b/docs/marketplace/order-builder/index.md index 0998edff..c31dc908 100644 --- a/docs/marketplace/order-builder/index.md +++ b/docs/marketplace/order-builder/index.md @@ -5,11 +5,11 @@ slug: "/order-builder" sidebar_position: 7 --- -_Order Builder_ is a tool to configure orders to deploy AI models. Deployment orders consist of three main components: +_Order Builder_ is a tool to configure orders to deploy AI models. A deployment order consists of three main components: -- **Model** -- **Engine** -- **Compute** +- **AI model** +- **Engine** +- **Compute**
@@ -18,9 +18,9 @@ _Order Builder_ is a tool to configure offers. -If the model offer has multiple [requirement slots](/fundamentals/slots), the **Deploy** button adds the first slot configured for GPU deployment. To deploy the model on CPU, click the model's name to open its [**Offer**](/marketplace/models/offer) window, go to the **Pricing** tab, and click the blue **[+]** button next to the desired slot. +If the model offer has multiple requirement slots, the **Deploy** button adds the first slot configured for GPU deployment. To deploy the model on CPU, click the model's name to open its [**Offer**](/marketplace/models/offer) window, go to the **Pricing** tab, and click the blue **[+]** button next to the desired slot. -To view the model's selected slot, expand the **Requirements**. If you add your uploaded model to the order, its requirements are not specified. The system does not include such models in the automatic calculation of the compute configuration. +To view the model's selected slot, expand the **Requirements**. If you add your uploaded model to the order, its requirements are not specified. The system does not include such models in the automatic calculation of the compute configuration. :::warning @@ -30,9 +30,9 @@ Ensure your uploaded model fits into the maximum compute configuration [allowed ## Engine -The term _engine_ refers to the software necessary to deploy models and provide a user interface. +_Engine_ is an application designed to launch AI models, execute model tasks, customize parameters, and provide an interface to interact with models. -Currently, Super Protocol supports two AI engines: +Currently, Super Protocol supports two engines: - **Text Generation Web UI** for text-to-text models. - **ComfyUI** for image- and video-related tasks. @@ -87,7 +87,7 @@ Refer to the [Text Generation Web UI API documentation](https://github.com/oobab ### Tunnels -Placing a deployment order also places an order for a [confidential tunnel](https://docs.superprotocol.com/fundamentals/tunnels) to access the engine's web UI via HTTPS. The engine settings include the **Tunnels** tab with **Domain Settings**: +Placing a deployment order also places an order for a confidential tunnel to access the engine's web UI via HTTPS. The engine settings include the **Tunnels** tab with **Domain Settings**: - **Temporary Domain** uses pre-configured settings to create a domain on `superprotocol.io` with a randomly generated name, for example, `mund-avys-kefs.superprotocol.io`. It is the recommended option that does not require additional setup. - **Manual Configuration** will allow advanced users to host a model on a custom domain. This feature is not yet available. @@ -102,7 +102,7 @@ The system automatically calculates a [compute configuration](/fundamentals/slot **In Queue** shows the number of orders waiting for an empty slot on this machine. If the number is greater than zero, your order may take longer to process. Consider choosing another compute offer. -Clicking the machine's name opens its [**Offer**](/marketplace/models/offer) window. +Clicking the machine's name opens its [**Offer** window](/marketplace/models/offer).
diff --git a/docusaurus.config.js b/docusaurus.config.js index f057a1aa..bf9e304c 100644 --- a/docusaurus.config.js +++ b/docusaurus.config.js @@ -8,13 +8,13 @@ const katex = require("rehype-katex"); /** @type {import('@docusaurus/types').Config} */ const config = { - title: "Super Protocol", + title: "Super Protocol Docs", url: "https://docs.superprotocol.com", baseUrl: "/", onBrokenLinks: "throw", onBrokenMarkdownLinks: "warn", - favicon: "favicon.ico", - organizationName: "Super Protocol", // Usually your GitHub org/user name. + favicon: "img/favicon.ico", + organizationName: "Super-Protocol", // Usually your GitHub org/user name. projectName: "docs", // Usually your repo name. i18n: { defaultLocale: 'en', @@ -153,6 +153,13 @@ const config = { minHeadingLevel: 2, maxHeadingLevel: 3, }, + metadata: [ + {name: 'description', content: 'Technical documentation for Super Protocol.'}, + {property: 'og:title', content: 'Super Protocol Docs'}, + {property: 'og:description', content: 'Technical documentation for Super Protocol.'}, + {property: 'og:image', content: 'https://docs.superprotocol.com/img/icon.png'}, + {property: 'og:url', content: 'https://docs.superprotocol.com'}, + ] }), stylesheets: [ { diff --git a/src/theme/Layout/index.js b/src/theme/Layout/index.js index b7488128..9fb33f93 100644 --- a/src/theme/Layout/index.js +++ b/src/theme/Layout/index.js @@ -8,29 +8,83 @@ export default function Layout(props) { - Trusted Execution Environment (TEE) is a secure area within a CPU and RAM
for executing code; it is isolated and protected from unauthorized access
from outside the environment. + Trusted Execution Environment (TEE) is a secure area within a CPU and RAM for executing code;
it is isolated and protected from unauthorized access from outside the environment.
- Certification Authority (CA) is an entity that signs and issues
digital certificates. + Certification Authority (CA) is an entity that signs and issues
digital certificates.
- Offers are computing services, software products, and data available on the Marketplace for lease and use in orders. They fall into four categories:
- ᐧ Solution offers: Applications, engines, scripts, base images, and other programs.
- ᐧ Data offers: Any data required by solutions. AI models fall into this category.
- ᐧ Compute offers: Confidential computing resources required to execute solutions.
- ᐧ Storage offers: Decentralized storage used to keep order results after execution. + Offer is a computing service, software product, or data available on the Marketplace for lease and use in orders.
+ Offers are divided into four categories:
+ ᐧ Compute offers: Confidential computing resources required to execute solutions and data inside a Trusted Execution Environment.
+ ᐧ Solution offers: Engines, applications, scripts, base images, and other software.
+ ᐧ Data offers: AI models, webpages, configs, datasets, databases, and any other data that solutions may require.
+ ᐧ Storage offers: Decentralized storage that keeps order results after execution. +
+ + + Offer is a computing service, software product, or data available on the Marketplace for lease and use in orders.
+ Offers are divided into four categories:
+ ᐧ Compute offers: Confidential computing resources required to execute solutions and data inside a Trusted Execution Environment.
+ ᐧ Solution offers: Engines, applications, scripts, base images, and other software.
+ ᐧ Data offers: AI models, webpages, configs, datasets, databases, and any other data that solutions may require.
+ ᐧ Storage offers: Decentralized storage that keeps order results after execution. +
+ + + Value offer is a collective term for solution, data, and storage offers. + + + + Slot is a set of computing resources that may include CPU, GPU, RAM, disk space, etc.

+ + Requirement slot specifies how much computing resources a value offer needs to run.

+ + Configuration slot represents a portion of a compute offer's resources available for lease. +
+ + + Requirements specify how much computing resources a value offer needs to run.
+ A requirement slot is a particular set of requirements that may include CPU, RAM, disk space, bandwidth, traffic, etc. +
+ + + Configuration slots and options divide the resources of a physical confidential computing machine into smaller parts for better distribution between orders:
+ ᐧ Configuration slots are responsible for computing resources, such as CPU, GPU, RAM, VRAM, and disk space.
+ ᐧ Configuration options are responsible for network-related resources, such as bandwidth, traffic, and external port availability.

+ Configuration is a combination of configuration slots and configuration options. +
+ + + Engine is an application designed to launch AI models, customize parameters, configure workflows,
and provide an interface to interact with models. +
+ + + Compute means confidential computing resources used to deploy models, launch confidential tunnels,
and execute solutions inside a Trusted Execution Environment. +
+ + + Solution is an application, engine, script, base image, or other software intended to run on Super Protocol. + + + + Data is an AI model, webpage, config, dataset, database, or other information that solutions may require. - Order is a digital contract between a customer and a provider to lease an offer.

- The term main order—or simply order—implies leasing a compute offer.

- The term suborder implies leasing a model, engine, or storage offer. + Orders and suborders are digital contracts between customers and providers to lease offers.

+ The term main order—or simply order—implies leasing a compute offer.

+ The term suborder implies leasing an AI model, engine, or any other offer besides a compute offer.
- - Value offer is a collective term for solution, data, and storage offers. + + Tunnel is a virtual communication channel that enables secure, efficient transmission over a network as if over a direct secure connection.

+ + In Super Protocol, a tunnel consists of two components with a confidential connection between them:
+ ᐧ A tunnel server has a public IP address and is accessible over HTTPS via a browser or API.
+ ᐧ A tunnel client hosts a web server; it remains hidden behind the tunnel server and protected from external threats.
); diff --git a/static/favicon.ico b/static/img/favicon.ico similarity index 100% rename from static/favicon.ico rename to static/img/favicon.ico diff --git a/static/img/icon.png b/static/img/icon.png new file mode 100644 index 00000000..2f95852b Binary files /dev/null and b/static/img/icon.png differ