hbs2/docs/todo/hbs2-merkle-export.txt

60 lines
1.7 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

TODO: hbs2-merkle-export
Нужен быстрый импорт/экспорт больших merkle-деревьев.
Делается таким образом:
Экспорт
~~~~~~~
1. Обходим дерево как обычно
2. Пишем блоки в бинарный файл в формате обхода:
|size|data|size|data|...|size|data
3. Первым элементом является корень дерева
(обсуждаемо, возможно, последним)
Импорт
~~~~~~
1. Читаем размер
2. Читаем блок
3. Считаем хэш
4. Пишем блок в сторейдж
5. Возвращаем хэш головы
Быстрая заливка через сокет
~~~~~~~~~~~~~~~~~~~~~~~~~~~
Пир держит специальный локальный сокет
(возможно, MessagingTCP / возможно UNIX)
Клиент заливает этот поток -- пир читает размер,
читает данные, считает хэш, пишет в сторейдж
Всё это даст возможность быстро заливать данные
в сторейдж / ускорит экспорт-импорт больших
репозиториев.
Заливка через hbs2 (через пайп)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
hbs2 export [hash] > ...
cat file | hbs2 import
```
Заливка через hbs2-peer
~~~~~~~~~~~~~~~~~~~~~~~
1. В настройке разрешаем сокет для импорта
2. в hbs2-peer poke hbs2-peer говорит нам этот сокет
3. Пишем файл в данный сокет - хоть неткатом