Экзотические ячейки
Эта страница переведена сообществом на русский язык, но нуждается в улучшениях. Если вы хотите принять участие в переводе свяжитесь с @alexgton.
Каждая ячейка имеет свой собственный тип, закодированный целым числом от -1 до 255.
Ячейка с типом -1 является ordinary
ячейкой, а все остальные ячейки называются exotic
или special
.
Тип экзотической ячейки хранится в виде первых восьми бит ее данных. Если экзотическая ячейка имеет менее восьми бит данных, она недействительна.
В настоящее время существует 4 типа экзотических ячеек:
{
Prunned Branch: 1,
Library Reference: 2,
Merkle Proof: 3,
Merkle Update: 4
}
Обрезанная ветвь
Обрезанные ветви - это ячейки, которые представляют удаленные поддеревья ячеек.
Они могут иметь уровень 1 <= l <= 3
и содержать ровно 8 + 8 + 256 * l + 16 * l
бит.
Первый байт всегда 01
— тип ячейки. Второй — маска уровня обрезанной ветви. Затем идут l * 32
байта хэшей удаленных поддеревьев, а затем l * 2
байта глубины удаленных поддеревьев.
Уровень l
ячейки обрезанной ветви можно назвать ее индексом Де Брейна, поскольку он определяет внешнее доказательство Меркла или обновление Меркла, во время построения которого ветвь была обрезана.
Более высокие хеши обрезанных ветвей хранятся в их данных и могут быть получены следующим образом:
Hash_i = CellData[2 + (i * 32) : 2 + ((i + 1) * 32)]