SHA256
back32hash 5591: готово к тестам
Вроде как всё готово к тестам.
This commit is contained in:
@@ -1,5 +1,7 @@
|
||||
# ANS-104 / Arweave transport для пользовательских блоков SHiNE
|
||||
|
||||
> **Текущий transport namespace:** `test5591`. Он намеренно хранится отдельно в трёх рабочих местах: сервер (`ShineProtocolTags.java`), UI (`js/services/protocol-tags.js`) и актуальный Viewer (`static-sites/arweave-viewer/index.html`). При смене тестовой эпохи эти три значения меняются синхронно. Имя канального индексного тега постоянно и не зависит от namespace: `c`.
|
||||
|
||||
## Цель
|
||||
|
||||
Каждый пользовательский блок SHiNE уже на клиенте является самостоятельным подписанным ANS-104 DataItem. Сервер проверяет и хранит **точно эти signed bytes** и может публиковать их одним из двух транспортов: через Turbo по одному DataItem либо через прямую Arweave L1-транзакцию в составе стандартного большого ANS-104 bundle.
|
||||
@@ -11,7 +13,7 @@
|
||||
Для тестового контура обязательно:
|
||||
|
||||
```text
|
||||
App=test5590
|
||||
App=test5591
|
||||
```
|
||||
|
||||
Для фиксированных потоков:
|
||||
@@ -25,10 +27,10 @@ t=prof # USER_PROFILE
|
||||
Для блоков конкретного канала дополнительно:
|
||||
|
||||
```text
|
||||
c_test5590=<canonical_channel_slug>
|
||||
c=<canonical_channel_slug>
|
||||
```
|
||||
|
||||
`TECH_CREATE_CHANNEL` несёт оба индекса: `t=tech` и `c_test5590=<slug>`. `STATUS_ACTION` не получает `t`-тег.
|
||||
`TECH_CREATE_CHANNEL` несёт оба индекса: `t=tech` и `c=<slug>`. `STATUS_ACTION` не получает `t`-тег.
|
||||
|
||||
Теги входят в ANS-104 подпись пользователя. Сервер проверяет соответствие `t` фактическому `msg_type` и отклоняет лишний/неверный `t`. Старый тестовый тег `c` новым кодом не создаётся и не принимается как channel tag.
|
||||
|
||||
@@ -92,7 +94,7 @@ Bundle-Version=2.0.0
|
||||
Content-Type=application/octet-stream
|
||||
```
|
||||
|
||||
Специальный `App=test5590-batch` больше не используется. Важны вложенные user DataItems, у которых уже есть `App=test5590`.
|
||||
Специальный `App=test5591-batch` больше не используется. Важны вложенные user DataItems, у которых уже есть `App=test5591`.
|
||||
|
||||
### `none`
|
||||
|
||||
@@ -112,7 +114,7 @@ Content-Type=application/octet-stream
|
||||
Importer всегда выполняет один discovery-запрос:
|
||||
|
||||
```text
|
||||
App=test5590
|
||||
App=test5591
|
||||
```
|
||||
|
||||
Он **не ищет root bundles** и не зависит от `publish.mode`.
|
||||
@@ -130,7 +132,7 @@ App=test5590
|
||||
|
||||
Поэтому importer:
|
||||
|
||||
1. получает `data_item_id` через GraphQL `App=test5590`;
|
||||
1. получает `data_item_id` через GraphQL `App=test5591`;
|
||||
2. запрашивает `GET /ar-io/offsets/{data_item_id}`;
|
||||
3. получает `rootTxId`, `rootOffset`, `size`;
|
||||
4. делает range-read `GET /raw/{rootTxId}` ровно по этому диапазону;
|
||||
|
||||
Reference in New Issue
Block a user