SHiNE-server/DOC/libs/shine-server-blockchain/Общая структура блока.md
AidarKC f17d077f25 31 12 25
Сделал что бы запускалось. Поправил мелкие ошибки
2025-12-31 21:10:05 +03:00

2.0 KiB
Raw Blame History

Общая структура блока

Блок — это бинарная запись фиксированного формата:

[ RAW ][ signature64 ][ hash32 ]

RAW — данные блока (участвуют в хэшировании и подписи) signature64 — Ed25519-подпись над hash32 hash32 — SHA-256 от preimage (привязан к цепочке и владельцу)

RAW-часть (BigEndian) recordSize int32 — размер RAW (без signature+hash) recordNumber int32 — глобальный номер блока timestamp int64 — unix time (seconds) lineIndex int16 — индекс линии lineNumber int32 — номер блока внутри линии bodyBytes bytes — тело блока (type+version+payload)

Общая структура блокчейна

Блокчейн — это: линейная цепочка блоков (по recordNumber) внутри неё — параллельные логические линии (lineIndex) каждая линия имеет собственную нумерацию (lineNumber) и prevLineHash вся цепочка связана ещё и prevGlobalHash

👉 Таким образом, каждый блок: связан с предыдущим глобальным блоком и с предыдущим блоком своей линии

Это даёт: строгий порядок всей истории и независимую валидацию логических потоков

Криптографический смысл блока

Хэш блока считается от: "SHiNE" + login + prevGlobalHash32 + prevLineHash32 + RAW

Это означает: блок жёстко привязан к владельцу (login) блок невозможно перенести в другую цепочку подмена предыдущего блока ломает всю цепь Подпись Ed25519 делается над этим хэшем.