SHA256
2.1 KiB
2.1 KiB
AddBlock API
Назначение
Добавляет один готовый подписанный пользовательский SHiNE Frame v1 / ANS-104 DataItem в blockchain.
Request
{
"op": "AddBlock",
"requestId": "...",
"payload": {
"blockchainName": "alice-...",
"blockNumber": 42,
"prevBlockHash": "64 hex chars",
"blockBytesB64": "..."
}
}
blockchainName— целевая пользовательская chain;blockNumber— должен совпадать с номером внутри Frame v1 и бытьserverLast + 1;prevBlockHash— 32-byte SHiNE hash предыдущего Frame в hex; должен совпадать сprevHash32внутри Frame и серверной вершиной;blockBytesB64— полный serialized ANS-104 DataItem в Base64.
Старый формат preimage + sigMarker + signature не поддерживается.
Требования к DataItem
- generic Ed25519 signature type
2; - Ed25519 signature 64 bytes;
- owner 32 bytes и равен текущему blockchain public key;
- обязательный тестовый tag
App=test5590; - для channel block —
c=<canonical_channel_slug>; dataсодержит SHiNE Frame v1 (frameCode=1).
Основные ошибки
bad_app_tag— отсутствует/неверенApp=test5590;bad_channel_tag—cотсутствует, лишний или не совпадает с canonical slug;bad_signature/signature_verify_failed— DataItem не подписан текущим blockchain key;bad_block_number— нарушена последовательность;bad_prev_hash— нарушена SHiNE hash chain;bad_block_bytes— DataItem/Frame не парсится.
Storage/publish
После успешного локального AddBlock полный DataItem хранится в PostgreSQL и ставится в Arweave publish queue. Импорт из Arweave использует ту же проверку, но не ставит блок на повторную публикацию.