mirror of https://github.com/voidlizard/hbs2
40 lines
1.9 KiB
Plaintext
40 lines
1.9 KiB
Plaintext
TODO: ASAP-bloom-filter-of-blocks
|
||
|
||
Каждый пир поддерживает фильтр Блума для блоков и раздаёт этот фильтр по
|
||
протоколу.
|
||
|
||
Протокол подразумевает как отдачу всего фильтра целиком ( тут подходит
|
||
держать его в LWWRef)
|
||
|
||
Так и просто запросы к нему.
|
||
|
||
Запрос должен пролезать в UDP, таким образом, выглядит так, что это
|
||
список чисел с номерами бит, т.е в худшем случае (8 байт на число)
|
||
один запрос это проверка 128 блоков за раз. Поскольку CBOR у нас
|
||
кодирует числа с переменной длиной, можно ожидать, что в среднем
|
||
будет получше.
|
||
|
||
Это ускорит, возможно, на порядок поиск блоков, который тем хуже,
|
||
чем больше в системе пиров.
|
||
|
||
Открытые вопросы:
|
||
|
||
- Параметры фильтра Блума? Зашитые в систему, или зависящие от
|
||
пира (и тогда мы пересчитываем их)
|
||
|
||
- Надо ли качать фильтры целиком (кажется, что нет, но можно
|
||
запоминать/обновлять для каждого пира, и время от времени
|
||
чистить)
|
||
|
||
- Если параметры фильтра могут меняться для пира, как
|
||
согласовывать хэш функции? Если их зашивать и менять только
|
||
коэффициенты, то не слишком ли плохие будут хэш функции?
|
||
|
||
- Какие атаки может вызвать?
|
||
|
||
- Как эффективно хранить?
|
||
|
||
|
||
|
||
|