hbs2/docs/todo/tcp-pex-bug.txt

24 lines
1.5 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.

FIXME: ASAP-wrong-ports-in-pex
В PEX попадают TCP порты, которых там быть не должно ---
это автоматически назначаемые порты второй стороны, либо
приходящие еще откуда.
В PEX должны попадать **только** те порты, которые
1. Пришли из Peer Meta
2. К которым есть/было успешное TCP соединение, даже если
оно было впоследствии дропнуто
Предлагаемая схема работы:
- Протаскиваем везде Brains либо заводим новый класс (аспект), который
фиксирует *факты* про пиров и реализуем его для Brains
- Получаем meta, фиксируем TCP порт из meta, ключ - ip адрес пира
- Пробуем открыть TCP соединение, после прохождения handshake -- фиксируем
факт прохождения handshake
- Фиксируем факт наличия пинга к данному пиру по протоколу TCP
- Время от времени выбираем пиров, которые есть в этих фактах, но отсутствуют
в PEX
- Если существуют пиры, для которых есть эти 3 факта и которых нет в PEX --- добавляем
их в PEX.