]> Sergey Matveev's repositories - stargrave-blog.git/commitdiff
Деревья Меркле в NNCP
authorSergey Matveev <stargrave@stargrave.org>
Wed, 30 Jun 2021 12:32:40 +0000 (15:32 +0300)
committerSergey Matveev <stargrave@stargrave.org>
Wed, 30 Jun 2021 12:32:40 +0000 (15:32 +0300)
http://www.nncpgo.org/Reliz-7_002e0_002e0.html
В новом релизе NNCP я наконец-то стал использовать деревья Меркле для
проверки целостности шифрованных пакетов. Как минимум, польза от этого
в том, что если мы докачали половинку файла, то прежде мы не могли
посчитать хэш файла без его полного чтения, хотя ведь половина файла
"прошла" через программу и данные мы видели. В NNCP реализация MTH
(Merkle Tree Hashing) имеет метод PrependFrom, который прочитает
недостающие данные до уже нам известных и увиденных.

Но текущая реализация далека от оптимальной с точки зрения расходов. В
памяти находятся все хэши всех блоков, что означает потребление памяти
под полгигабайта для проверки терабайтного файла. Плюс никакого
распараллеливания вычисления самого дерева. Но терабайты я не думаю что
многие передают, и делают это на дохлых (с малым объёмом памяти)
машинах. А BLAKE3 жутко быстрый, так что всё значительно быстрее будет в
любом случае.


No differences found