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.