SHA256
3.2 KiB
3.2 KiB
TECH блоки (type=0, version=1)
TECH-тип покрывает системные записи цепочки.
Подтипы
-
subType=0—HEADER_COMPAT- стартовый блок цепочки;
- payload: tag
SHiNE+ login владельца.
-
subType=1—TECH_CREATE_CHANNEL- создание нового канала;
- хранит line-поля +
channelName+channelDescription+channelType+channelTypeVersion.
-
subType=2—TECH_FORK- первый новый блок после точной перепубликации выбранного префикса предыдущего fork новым blockchain key;
- связывает новую активную цепочку с предыдущей и фиксирует точку rollback/продолжения.
TECH_FORK body (version=1)
Big-endian:
parentBlockchainKey[32]— public key предыдущего fork;forkPointBlockNumber[4]— последний блок старой цепочки, сохранённый в новом fork;forkPointBlockHash32[32];forkPointTimestampMs[8];parentTipBlockNumber[4]— tip старой цепочки на момент начала ротации;parentTipBlockHash32[32];parentTipTimestampMs[8];discardedBlocksCount[4]—parentTipBlockNumber - forkPointBlockNumber;reasonCode[1];commentUtf8Length[2];comment[N]— произвольный комментарий пользователя, максимум 1024 UTF-8 байт.
reasonCode:
1—ROUTINE_ROTATION: обычная смена пароля/ключей, компрометация не предполагается;2—POSSIBLE_COMPROMISE: возможная компрометация, неизвестные записи не подтверждены;3—CONFIRMED_COMPROMISE_ROLLBACK: обнаружены нежелательные/чужие записи и выполнен rollback;4—RECOVERY: восстановление доступа recovery-механизмом.
Правила:
- блоки
0..forkPointBlockNumberв новом fork должны быть точными Frame-копиями выбранного префикса предыдущей цепочки; TECH_FORKидёт сразу после этого префикса и является первым действительно новым Frame нового fork;- если история сохранена полностью,
forkPointBlockNumber == parentTipBlockNumberиdiscardedBlocksCount == 0; - если сохраняется только genesis, новый fork содержит прежний
block 0, аblock 1являетсяTECH_FORK; - новый blockchain key в body не дублируется: он определяется owner/signature нового ANS-104 DataItem.
Назначение
- инициализация блокчейна;
- управление набором каналов пользователя;
- фиксация происхождения нового fork и причины ротации/rollback.