mirror of https://github.com/voidlizard/hbs2
devlog
This commit is contained in:
parent
1c8f6b978b
commit
c47c6dee87
|
@ -0,0 +1,59 @@
|
|||
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. Пишем файл в данный сокет - хоть неткатом
|
||||
|
||||
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue