RPC API Reference¶
Справочник по RPC endpoints ComputeChain ноды.
Базовый URL¶
По умолчанию: http://localhost:8000
Изменить: Используйте параметр --port при запуске ноды
Endpoints¶
GET /status¶
Назначение: Получить статус ноды
Запрос:
Ответ:
{
"height": 15,
"last_hash": "0x1234567890abcdef...",
"network": "devnet",
"mempool_size": 2,
"epoch": 1
}
Поля:
height: Высота последнего блокаlast_hash: Хеш последнего блока (hex строка)network: ID сети ("devnet", "testnet", "mainnet")mempool_size: Количество транзакций в мемпулеepoch: Текущая эпоха
GET /block/{height}¶
Назначение: Получить блок по высоте
Запрос:
Ответ:
{
"header": {
"height": 10,
"prev_hash": "0x...",
"timestamp": 1700000000,
"proposer_address": "cpcvalcons1...",
"compute_root": "0x...",
"tx_root": "0x...",
"state_root": "0x...",
"pq_signature": "0x...",
"pq_pub_key": "02..."
},
"txs": [
{
"tx_type": "TRANSFER",
"from_address": "cpc1...",
"to_address": "cpc1...",
"amount": "100000000000000000000",
...
}
]
}
Ошибки:
404: Блок не найден503: Нода не инициализирована
GET /balance/{address}¶
Назначение: Получить баланс и nonce аккаунта
Запрос:
Ответ:
{
"address": "cpc1a2b3c4d5e6f7g8h9i0j1k2l3m4n5o6p7q8r9s0t",
"balance": "2000000000000000000000",
"nonce": 1
}
Поля:
address: Адрес аккаунтаbalance: Баланс в wei (строка)nonce: Номер следующей транзакции
Ошибки:
503: Нода не инициализирована
GET /validators¶
Назначение: Получить список валидаторов
Запрос:
Ответ:
{
"epoch": 1,
"validators": [
{
"address": "cpcvalcons1alice...",
"pq_pub_key": "02a1b2c3...",
"power": "1500000000000000000000",
"is_active": true,
"reward_address": "cpc1alice..."
},
{
"address": "cpcvalcons1bob...",
"pq_pub_key": "02b2c3d4...",
"power": "1200000000000000000000",
"is_active": true,
"reward_address": "cpc1bob..."
}
]
}
Поля:
epoch: Текущая эпохаvalidators: Список валидаторовaddress: Консенсус-адрес валидатора (cpcvalcons...)pq_pub_key: Публичный ключ валидатораpower: Стейк валидатора (в wei, строка)is_active: Активен ли валидаторreward_address: Адрес для получения наград (cpc1...)
Ошибки:
503: Нода не инициализирована
POST /tx/send¶
Назначение: Отправить транзакцию в мемпул
Запрос:
curl -X POST http://localhost:8000/tx/send \
-H "Content-Type: application/json" \
-d '{
"tx_type": "TRANSFER",
"from_address": "cpc1sender...",
"to_address": "cpc1recipient...",
"amount": "100000000000000000000",
"fee": "21000000",
"nonce": 1,
"gas_price": 1000,
"gas_limit": 21000,
"timestamp": 1700000000,
"pub_key": "02a1b2c3...",
"signature": "0xabcdef...",
"payload": {}
}'
Ответ (успех):
Ответ (отклонено):
Поля ответа:
tx_hash: Хеш транзакции (hex строка)status: Статус ("received" или "rejected")error: Сообщение об ошибке (если отклонено)
Ошибки:
400: Неверный формат транзакции503: Нода не инициализирована
Форматы данных¶
Адреса¶
Формат: Bech32 с префиксом
- Аккаунты:
cpc1... - Валидаторы:
cpcvalcons1...
Примеры:
Суммы¶
Формат: Строка с числом в wei
Примеры:
Хеши¶
Формат: Hex строка с префиксом "0x"
Примеры:
Публичные ключи¶
Формат: Hex строка без префикса
Примеры:
Коды ошибок¶
200 OK¶
Успешный запрос
400 Bad Request¶
Неверный формат запроса или данных
Пример:
404 Not Found¶
Ресурс не найден
Пример:
503 Service Unavailable¶
Нода не инициализирована
Пример:
Примеры использования¶
Пример 1: Проверка статуса¶
Пример 2: Получение баланса¶
ADDRESS="cpc1a2b3c4d5e6f7g8h9i0j1k2l3m4n5o6p7q8r9s0t"
curl http://localhost:8000/balance/$ADDRESS | jq
Пример 3: Получение блока¶
Пример 4: Получение валидаторов¶
Пример 5: Отправка транзакции (через CLI)¶
Следующие шаги¶
- Transaction Types — Типы транзакций
- Glossary — Терминология
- CLI Guide — Использование CLI