From: Sergey Matveev Date: Wed, 30 Jun 2021 12:32:40 +0000 (+0300) Subject: Деревья Меркле в NNCP X-Git-Url: http://www.git.stargrave.org/?a=commitdiff_plain;h=26d0fad8f0c8e523ec77c70dec244afc2c0e86e3;p=stargrave-blog.git Деревья Меркле в NNCP http://www.nncpgo.org/Reliz-7_002e0_002e0.html В новом релизе NNCP я наконец-то стал использовать деревья Меркле для проверки целостности шифрованных пакетов. Как минимум, польза от этого в том, что если мы докачали половинку файла, то прежде мы не могли посчитать хэш файла без его полного чтения, хотя ведь половина файла "прошла" через программу и данные мы видели. В NNCP реализация MTH (Merkle Tree Hashing) имеет метод PrependFrom, который прочитает недостающие данные до уже нам известных и увиденных. Но текущая реализация далека от оптимальной с точки зрения расходов. В памяти находятся все хэши всех блоков, что означает потребление памяти под полгигабайта для проверки терабайтного файла. Плюс никакого распараллеливания вычисления самого дерева. Но терабайты я не думаю что многие передают, и делают это на дохлых (с малым объёмом памяти) машинах. А BLAKE3 жутко быстрый, так что всё значительно быстрее будет в любом случае. ---