mirror of
https://github.com/logos-storage/logos-storage-docs.git
synced 2026-01-02 13:23:07 +00:00
276 lines
18 KiB
Markdown
276 lines
18 KiB
Markdown
|
|
---
|
|||
|
|
outline: [2, 3]
|
|||
|
|
---
|
|||
|
|
# Использование Codex
|
|||
|
|
|
|||
|
|
Мы можем взаимодействовать с Codex, используя [REST API](/developers/api). В этом документе показаны несколько полезных примеров.
|
|||
|
|
|
|||
|
|
Также мы можем использовать [Пользовательский интерфейс приложения Codex](https://app.codex.storage).
|
|||
|
|
|
|||
|
|
Интерпретатор командной строки работает немного по-разному на [Linux/macOS](#linux-macos) и [Windows](#windows), поэтому используйте инструкции для вашей ОС.
|
|||
|
|
|
|||
|
|
## Linux/macOS
|
|||
|
|
|
|||
|
|
### Обзор
|
|||
|
|
1. [Отладка](#debug)
|
|||
|
|
2. [Загрузка файла](#upload-a-file)
|
|||
|
|
3. [Скачивание файла](#download-a-file)
|
|||
|
|
4. [Локальные данные](#local-data)
|
|||
|
|
5. [Создание доступности хранилища](#create-storage-availability)
|
|||
|
|
6. [Покупка хранилища](#purchase-storage)
|
|||
|
|
7. [Просмотр статуса покупки](#view-purchase-status)
|
|||
|
|
|
|||
|
|
### Отладка
|
|||
|
|
Простой способ проверить, что ваш узел запущен и работает:
|
|||
|
|
|
|||
|
|
```shell
|
|||
|
|
curl http://localhost:8080/api/codex/v1/debug/info \
|
|||
|
|
-w '\n'
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
Это вернет JSON-структуру с множеством информации о вашем локальном узле. Она содержит информацию о пирах, которая может быть полезна при устранении проблем с подключением.
|
|||
|
|
|
|||
|
|
### Загрузка файла
|
|||
|
|
> [!Warning]
|
|||
|
|
> После загрузки файла в Codex другие узлы в сети могут его скачать. Пожалуйста, не загружайте ничего, что вы не хотите, чтобы другие видели, или правильно зашифруйте ваши данные *перед загрузкой*.
|
|||
|
|
|
|||
|
|
```shell
|
|||
|
|
curl -X POST \
|
|||
|
|
http://localhost:8080/api/codex/v1/data \
|
|||
|
|
-H 'Content-Type: application/octet-stream' \
|
|||
|
|
-w '\n' \
|
|||
|
|
-T <FILE>
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
При успешной загрузке вы получите CID. Его можно использовать для скачивания файла с любого узла в сети.
|
|||
|
|
|
|||
|
|
> [!TIP]
|
|||
|
|
> Вы на [сервере Discord Codex](https://discord.gg/codex-storage)? Опубликуйте ваш CID в канале [# :wireless: | share-cids](https://discord.com/channels/895609329053474826/1278383098102284369), посмотрите, смогут ли другие его скачать. Codex пока не предоставляет метаданные файлов, поэтому если вы хотите, чтобы другие могли открыть ваш файл, скажите им, какое расширение ему дать.
|
|||
|
|
|
|||
|
|
### Скачивание файла
|
|||
|
|
Когда у вас есть CID данных, которые вы хотите скачать, вы можете использовать следующие команды:
|
|||
|
|
|
|||
|
|
```shell
|
|||
|
|
# вставьте ваш CID из предыдущего шага между кавычками
|
|||
|
|
CID="..."
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
```shell
|
|||
|
|
curl "http://localhost:8080/api/codex/v1/data/${CID}/network/stream" \
|
|||
|
|
-o "${CID}.png"
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
Пожалуйста, используйте правильное расширение для скачанного файла, потому что Codex пока не хранит информацию о типе содержимого или расширении.
|
|||
|
|
|
|||
|
|
### Локальные данные
|
|||
|
|
Вы можете просмотреть, какие наборы данных в настоящее время хранятся вашим узлом:
|
|||
|
|
|
|||
|
|
```shell
|
|||
|
|
curl http://localhost:8080/api/codex/v1/data \
|
|||
|
|
-w '\n'
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### Создание доступности хранилища
|
|||
|
|
> [!WARNING]
|
|||
|
|
> Этот шаг требует, чтобы Codex был запущен с опцией [`prover`](/learn/run#codex-storage-node).
|
|||
|
|
|
|||
|
|
Чтобы начать продавать пространство для хранения в сети, вы должны настроить ваш узел с помощью следующей команды. После настройки узел будет отслеживать запросы на хранение в блокчейне и автоматически вступать в контракты, соответствующие этим спецификациям. Для вступления и поддержания контрактов на хранение ваш узел должен предоставлять доказательства хранения с нулевым разглашением. Расчет этих доказательств увеличит использование CPU и RAM Codex.
|
|||
|
|
|
|||
|
|
```shell
|
|||
|
|
curl -X POST \
|
|||
|
|
http://localhost:8080/api/codex/v1/sales/availability \
|
|||
|
|
-H 'Content-Type: application/json' \
|
|||
|
|
-w '\n' \
|
|||
|
|
-d '{
|
|||
|
|
"totalSize": "8000000",
|
|||
|
|
"duration": "7200",
|
|||
|
|
"minPricePerBytePerSecond": "1000",
|
|||
|
|
"totalCollateral": "80000000"
|
|||
|
|
}'
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
Для описания каждого параметра, пожалуйста, просмотрите [спецификацию](https://api.codex.storage/#tag/Marketplace/operation/offerStorage).
|
|||
|
|
|
|||
|
|
### Покупка хранилища
|
|||
|
|
Чтобы купить пространство для хранения в сети, сначала вы должны загрузить ваши данные. После получения CID используйте следующее для создания запроса на хранение.
|
|||
|
|
|
|||
|
|
Установите ваш CID:
|
|||
|
|
|
|||
|
|
```shell
|
|||
|
|
# вставьте ваш CID из предыдущего шага между кавычками
|
|||
|
|
CID="..."
|
|||
|
|
echo "CID: ${CID}"
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
Затем вы можете выполнить:
|
|||
|
|
|
|||
|
|
```shell
|
|||
|
|
curl -X POST \
|
|||
|
|
"http://localhost:8080/api/codex/v1/storage/request/${CID}" \
|
|||
|
|
-w '\n' \
|
|||
|
|
-d '{
|
|||
|
|
"duration": "3600",
|
|||
|
|
"pricePerBytePerSecond": "2000",
|
|||
|
|
"proofProbability": "5",
|
|||
|
|
"expiry": "1200",
|
|||
|
|
"nodes": 5,
|
|||
|
|
"tolerance": 2,
|
|||
|
|
"collateralPerByte": "1"
|
|||
|
|
}'
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
Для описания каждого параметра, пожалуйста, просмотрите [спецификацию](https://api.codex.storage/#tag/Marketplace/operation/createStorageRequest).
|
|||
|
|
|
|||
|
|
При успешном выполнении этот запрос вернет Purchase-ID.
|
|||
|
|
|
|||
|
|
### Просмотр статуса покупки
|
|||
|
|
Используя Purchase-ID, вы можете проверить статус вашего контракта на хранение:
|
|||
|
|
|
|||
|
|
```shell
|
|||
|
|
# вставьте ваш PURCHASE_ID из предыдущего шага между кавычками
|
|||
|
|
PURCHASE_ID="..."
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
Затем:
|
|||
|
|
|
|||
|
|
```shell
|
|||
|
|
curl "http://localhost:8080/api/codex/v1/storage/purchases/${PURCHASE_ID}" \
|
|||
|
|
-w '\n'
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
Это отобразит информацию о состоянии и ошибках для вашей покупки.
|
|||
|
|
| Состояние | Описание |
|
|||
|
|
|------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
|||
|
|
| Pending | Запрос ожидает подтверждения в блокчейне. |
|
|||
|
|
| Submitted | Запрос находится в блокчейне. Хосты теперь могут попытаться скачать данные. |
|
|||
|
|
| Started | Хосты скачали данные и предоставили доказательство хранения. |
|
|||
|
|
| Failed | Запрос был начат, но (слишком много) хостов не смогли предоставить доказательство хранения вовремя. Хотя данные все еще могут быть доступны в сети, для целей покупки они считаются утерянными. |
|
|||
|
|
| Finished | Запрос был успешно начат, и срок действия истек. |
|
|||
|
|
| Expired | (Недостаточно) хостов предоставили доказательство хранения до истечения срока действия запроса. |
|
|||
|
|
| Errored | Неудачное состояние. Поле 'error' должно рассказать больше. |
|
|||
|
|
|
|||
|
|
## Windows
|
|||
|
|
|
|||
|
|
### Обзор {#overview-windows}
|
|||
|
|
1. [Отладка](#debug-windows)
|
|||
|
|
2. [Загрузка файла](#upload-a-file-windows)
|
|||
|
|
3. [Скачивание файла](#download-a-file-windows)
|
|||
|
|
4. [Локальные данные](#local-data-windows)
|
|||
|
|
5. [Создание доступности хранилища](#create-storage-availability-windows)
|
|||
|
|
6. [Покупка хранилища](#purchase-storage-windows)
|
|||
|
|
7. [Просмотр статуса покупки](#view-purchase-status-windows)
|
|||
|
|
|
|||
|
|
### Отладка {#debug-windows}
|
|||
|
|
Простой способ проверить, что ваш узел запущен и работает:
|
|||
|
|
|
|||
|
|
```batch
|
|||
|
|
curl http://localhost:8080/api/codex/v1/debug/info
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
Это вернет JSON-структуру с множеством информации о вашем локальном узле. Она содержит информацию о пирах, которая может быть полезна при устранении проблем с подключением.
|
|||
|
|
|
|||
|
|
### Загрузка файла {#upload-a-file-windows}
|
|||
|
|
> [!Warning]
|
|||
|
|
> После загрузки файла в Codex другие узлы в сети могут его скачать. Пожалуйста, не загружайте ничего, что вы не хотите, чтобы другие видели, или правильно зашифруйте ваши данные *перед загрузкой*.
|
|||
|
|
|
|||
|
|
```batch
|
|||
|
|
curl -X POST ^
|
|||
|
|
http://localhost:8080/api/codex/v1/data ^
|
|||
|
|
-H "Content-Type: application/octet-stream" ^
|
|||
|
|
-T <FILE>
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
При успешной загрузке вы получите CID. Его можно использовать для скачивания файла с любого узла в сети.
|
|||
|
|
|
|||
|
|
> [!TIP]
|
|||
|
|
> Вы на [сервере Discord Codex](https://discord.gg/codex-storage)? Опубликуйте ваш CID в канале [# :wireless: | share-cids](https://discord.com/channels/895609329053474826/1278383098102284369), посмотрите, смогут ли другие его скачать. Codex пока не предоставляет метаданные файлов, поэтому если вы хотите, чтобы другие могли открыть ваш файл, скажите им, какое расширение ему дать.
|
|||
|
|
|
|||
|
|
### Скачивание файла {#download-a-file-windows}
|
|||
|
|
Когда у вас есть CID данных, которые вы хотите скачать, вы можете использовать следующие команды:
|
|||
|
|
|
|||
|
|
```batch
|
|||
|
|
:: вставьте ваш CID из предыдущего шага между кавычками
|
|||
|
|
set CID="..."
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
```batch
|
|||
|
|
curl "http://localhost:8080/api/codex/v1/data/%CID%/network/stream" ^
|
|||
|
|
-o "%CID%.png"
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
Пожалуйста, используйте правильное расширение для скачанного файла, потому что Codex пока не хранит информацию о типе содержимого или расширении.
|
|||
|
|
|
|||
|
|
### Локальные данные {#local-data-windows}
|
|||
|
|
Вы можете просмотреть, какие наборы данных в настоящее время хранятся вашим узлом:
|
|||
|
|
|
|||
|
|
```batch
|
|||
|
|
curl http://localhost:8080/api/codex/v1/data
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### Создание доступности хранилища {#create-storage-availability-windows}
|
|||
|
|
> [!WARNING]
|
|||
|
|
> Этот шаг требует, чтобы Codex был запущен с опцией [`prover`](/learn/run#codex-storage-node).
|
|||
|
|
|
|||
|
|
Чтобы начать продавать пространство для хранения в сети, вы должны настроить ваш узел с помощью следующей команды. После настройки узел будет отслеживать запросы на хранение в блокчейне и автоматически вступать в контракты, соответствующие этим спецификациям. Для вступления и поддержания контрактов на хранение ваш узел должен предоставлять доказательства хранения с нулевым разглашением. Расчет этих доказательств увеличит использование CPU и RAM Codex.
|
|||
|
|
|
|||
|
|
```batch
|
|||
|
|
curl -X POST ^
|
|||
|
|
http://localhost:8080/api/codex/v1/sales/availability ^
|
|||
|
|
-H "Content-Type: application/json" ^
|
|||
|
|
-d "{""totalSize"": ""8000000"", ""duration"": ""7200"", ""minPricePerBytePerSecond"": ""1000"", ""totalCollateral"": ""80000000""}"
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
Для описания каждого параметра, пожалуйста, просмотрите [спецификацию](https://api.codex.storage/#tag/Marketplace/operation/offerStorage).
|
|||
|
|
|
|||
|
|
### Покупка хранилища {#purchase-storage-windows}
|
|||
|
|
Чтобы купить пространство для хранения в сети, сначала вы должны загрузить ваши данные. После получения CID используйте следующее для создания запроса на хранение.
|
|||
|
|
|
|||
|
|
Установите ваш CID:
|
|||
|
|
|
|||
|
|
```batch
|
|||
|
|
:: вставьте ваш CID из предыдущего шага между кавычками
|
|||
|
|
set CID="..."
|
|||
|
|
echo CID: %CID%
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
Затем вы можете выполнить:
|
|||
|
|
|
|||
|
|
```batch
|
|||
|
|
curl -X POST ^
|
|||
|
|
"http://localhost:8080/api/codex/v1/storage/request/%CID%" ^
|
|||
|
|
-H "Content-Type: application/json" ^
|
|||
|
|
-d "{""duration"": ""3600"",""pricePerBytePerSecond"": ""2000"", ""proofProbability"": ""5"", ""expiry"": ""1200"", ""nodes"": 5, ""tolerance"": 2, ""**collateralPerByte**"": ""1""}"
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
Для описания каждого параметра, пожалуйста, просмотрите [спецификацию](https://api.codex.storage/#tag/Marketplace/operation/createStorageRequest).
|
|||
|
|
|
|||
|
|
При успешном выполнении этот запрос вернет Purchase-ID.
|
|||
|
|
|
|||
|
|
### Просмотр статуса покупки {#view-purchase-status-windows}
|
|||
|
|
Используя Purchase-ID, вы можете проверить статус вашего контракта на хранение:
|
|||
|
|
|
|||
|
|
```batch
|
|||
|
|
:: вставьте ваш PURCHASE_ID из предыдущего шага между кавычками
|
|||
|
|
set PURCHASE_ID="..."
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
Затем:
|
|||
|
|
|
|||
|
|
```batch
|
|||
|
|
curl "http://localhost:8080/api/codex/v1/storage/purchases/%PURCHASE_ID%"
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
Это отобразит информацию о состоянии и ошибках для вашей покупки.
|
|||
|
|
| Состояние | Описание |
|
|||
|
|
|------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
|||
|
|
| Pending | Запрос ожидает подтверждения в блокчейне. |
|
|||
|
|
| Submitted | Запрос находится в блокчейне. Хосты теперь могут попытаться скачать данные. |
|
|||
|
|
| Started | Хосты скачали данные и предоставили доказательство хранения. |
|
|||
|
|
| Failed | Запрос был начат, но (слишком много) хостов не смогли предоставить доказательство хранения вовремя. Хотя данные все еще могут быть доступны в сети, для целей покупки они считаются утерянными. |
|
|||
|
|
| Finished | Запрос был успешно начат, и срок действия истек. |
|
|||
|
|
| Expired | (Недостаточно) хостов предоставили доказательство хранения до истечения срока действия запроса. |
|
|||
|
|
| Errored | Неудачное состояние. Поле 'error' должно рассказать больше. |
|
|||
|
|
|
|||
|
|
## Known issues
|
|||
|
|
1. We add a new line to the API calls to get more readable output, please check [[rest] Add line ending on responses #771](https://github.com/codex-storage/nim-codex/issues/771) for more details.
|