Struct merkle_tree::MerkleTree [] [src]

pub struct MerkleTree {
    pub layers: Vec<Vec<[u8; 32]>>,
    pub format: SerializationFormat,
    pub parallel: bool,
    pub builded: bool,
}

Структура хранящая и отвечающая за Merkle Tree.

Fields

Список слоёв дерева. Включая 0-ой слой с "листьями" (хэшами транзакций).

Формат сериализации транзакций перед тем как их хэшировать.

Флаг отвечающий за параллелизацию при построении новых слоёв дерева.

Флаг указывающий на состояние дерева. Было оно построено или нет.

Methods

impl MerkleTree
[src]

[src]

Производит построение дерева основываяся на 0-ом слое "листьев". Возвращает Merkle Root Hash.

Failures

В случае, если 0-ой слой "листьев" пуст возвращает Err - "No leaves in tree".

[src]

Возвращает merkle root hash в качестве 32-байтного массива.

[src]

Производит создание "основы" Merkle tree. Принимает входной слайс транзакций, сериализует их, хэширует и добавляет в нулевой уровень. Так же заранее выделяет слои для будущего заполнения дерева резервируя чуть больше места чем нужно.

[src]

Добавляет хэш сериализованной транзакции в слой "листьев" (0-ой слой). Если дерево было до этого построено - вызывает функцию пересчёта узлов дерева.

[src]

Простая функция, которая была использована для debug. Печатает дерево послойно.

[src]

Производит поиск хэша транзакции в слое "листьев" дерева и поднимаясь до корня рекурсивно проверяет корректность всех хэшей на пути для этого хэша транзакции. Возвращает так называемый proof path - т.е список хэшей, который подтверждает, что хэш транзакции был использован при построении дерева.

Failures

В случае, если дерево не было построено возвращается ошибка Tree not builded. В случае, если какой-либо из узлов на пути инвалидирован, т.е хэш актуальных в дереве значений не совпадает с вычисленным либо наоборот - возвращается ошибка Tree invalidate.

[src]

Поднимается до корня рекурсивно, проверяет корректность всех хэшей на пути для этого хэша транзакции. Возвращает так называемый proof path - т.е список хэшей, который подтверждает, что хэш транзакции был использован при построении дерева.

Failures

В случае, если какой-либо из узлов на пути инвалидирован, т.е хэш актуальных в дереве значений не совпадает с вычисленным либо наоборот - возвращается ошибка Tree invalidate.

Trait Implementations

impl Debug for MerkleTree
[src]

[src]

Formats the value using the given formatter. Read more

impl Eq for MerkleTree
[src]

impl PartialEq for MerkleTree
[src]

[src]

This method tests for self and other values to be equal, and is used by ==. Read more

[src]

This method tests for !=.

impl Default for MerkleTree
[src]

[src]

Returns the "default value" for a type. Read more

Auto Trait Implementations

impl Send for MerkleTree

impl Sync for MerkleTree