Skip to content

Использование Codex

Мы можем взаимодействовать с Codex, используя REST API. В этом документе показаны несколько полезных примеров.

Также мы можем использовать Пользовательский интерфейс приложения Codex.

Интерпретатор командной строки работает немного по-разному на Linux/macOS и Windows, поэтому используйте инструкции для вашей ОС.

Linux/macOS

Обзор

  1. Отладка
  2. Загрузка файла
  3. Скачивание файла
  4. Локальные данные
  5. Создание доступности хранилища
  6. Покупка хранилища
  7. Просмотр статуса покупки

Отладка

Простой способ проверить, что ваш узел запущен и работает:

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? Опубликуйте ваш CID в канале # 🛜 | share-cids, посмотрите, смогут ли другие его скачать. 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.

Чтобы начать продавать пространство для хранения в сети, вы должны настроить ваш узел с помощью следующей команды. После настройки узел будет отслеживать запросы на хранение в блокчейне и автоматически вступать в контракты, соответствующие этим спецификациям. Для вступления и поддержания контрактов на хранение ваш узел должен предоставлять доказательства хранения с нулевым разглашением. Расчет этих доказательств увеличит использование 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"
  }'

Для описания каждого параметра, пожалуйста, просмотрите спецификацию.

Покупка хранилища

Чтобы купить пространство для хранения в сети, сначала вы должны загрузить ваши данные. После получения 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"
  }'

Для описания каждого параметра, пожалуйста, просмотрите спецификацию.

При успешном выполнении этот запрос вернет 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

Обзор

  1. Отладка
  2. Загрузка файла
  3. Скачивание файла
  4. Локальные данные
  5. Создание доступности хранилища
  6. Покупка хранилища
  7. Просмотр статуса покупки

Отладка

Простой способ проверить, что ваш узел запущен и работает:

batch
curl http://localhost:8080/api/codex/v1/debug/info

Это вернет JSON-структуру с множеством информации о вашем локальном узле. Она содержит информацию о пирах, которая может быть полезна при устранении проблем с подключением.

Загрузка файла

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? Опубликуйте ваш CID в канале # 🛜 | share-cids, посмотрите, смогут ли другие его скачать. Codex пока не предоставляет метаданные файлов, поэтому если вы хотите, чтобы другие могли открыть ваш файл, скажите им, какое расширение ему дать.

Скачивание файла

Когда у вас есть CID данных, которые вы хотите скачать, вы можете использовать следующие команды:

batch
:: вставьте ваш CID из предыдущего шага между кавычками
set CID="..."
batch
curl "http://localhost:8080/api/codex/v1/data/%CID%/network/stream" ^
  -o "%CID%.png"

Пожалуйста, используйте правильное расширение для скачанного файла, потому что Codex пока не хранит информацию о типе содержимого или расширении.

Локальные данные

Вы можете просмотреть, какие наборы данных в настоящее время хранятся вашим узлом:

batch
curl http://localhost:8080/api/codex/v1/data

Создание доступности хранилища

WARNING

Этот шаг требует, чтобы Codex был запущен с опцией prover.

Чтобы начать продавать пространство для хранения в сети, вы должны настроить ваш узел с помощью следующей команды. После настройки узел будет отслеживать запросы на хранение в блокчейне и автоматически вступать в контракты, соответствующие этим спецификациям. Для вступления и поддержания контрактов на хранение ваш узел должен предоставлять доказательства хранения с нулевым разглашением. Расчет этих доказательств увеличит использование 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""}"

Для описания каждого параметра, пожалуйста, просмотрите спецификацию.

Покупка хранилища

Чтобы купить пространство для хранения в сети, сначала вы должны загрузить ваши данные. После получения 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""}"

Для описания каждого параметра, пожалуйста, просмотрите спецификацию.

При успешном выполнении этот запрос вернет Purchase-ID.

Просмотр статуса покупки

Используя 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 for more details.