hbs2/docs/todo/hbs2-peer.txt

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