added fixme for tcp-pex-bug

This commit is contained in:
Dmitry Zuikov 2023-06-22 07:27:48 +03:00
parent 28c960458a
commit 456cdd9e01
2 changed files with 23 additions and 9 deletions

View File

@ -1,9 +0,0 @@
(fixme-set "workflow" "test" "5Ga1tJnn4x")
(fixme-set "assigned" "voidlizard" "5Ga1tJnn4x")
(fixme-set "workflow" "test" "FhcmCfM2at")
(fixme-set "assigned" "voidlizard" "FhcmCfM2at")
(fixme-set "workflow" "test" "6qvPmyw5mS")
(fixme-set "assigned" "voidlizard" "6qvPmyw5mS")
(fixme-set "workflow" "test" "7KJArHHyUK")
(fixme-set "assigned" "voidlizard" "7KJArHHyUK")

23
docs/todo/tcp-pex-bug.txt Normal file
View File

@ -0,0 +1,23 @@
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.