- u_async.c: process immediate_queue BEFORE epoll_wait in uasync_poll - stcp_link.c: defensive NULL etcp_conn/etcp_link in stcp_link_close - utun_instance.c: move stcp_server_list_destroy_all to Phase J (before ETCP), add deferred drain in both Phase J and L - stcp.h/c: STCP_HS_ENC_CLIENT 6→38, STCP_HS_ENC_SERVER 7→39, exchange ed25519_pubkey in both handshake directions - etcp_connections.c: copy peer_ed25519 from STCP to ETCP_CONN in etcp_link_enter_ready_tcp; guard link->etcp in tcp_link_close_cb - chat_sync.c: fix lk->conn NULL dereference for TCP links - test_stcp.c: update stcp_server_create/stcp_client_connect callsites - tools/chat_tcp_test: change transport udp→tcp
36 lines
2.2 KiB
Plaintext
36 lines
2.2 KiB
Plaintext
План доработок
|
||
[ ] продумать архитектуру репликации таблицы узлов группы
|
||
[ ] добавить узлы хелперы (для проксирования трафика)
|
||
|
||
|
||
Категории узлов:
|
||
- узлы без нат []
|
||
- узлы с nat [restricted]
|
||
|
||
Узлы за nat сами подключаются к прямым
|
||
|
||
Узлы за eim nat сами подключаются и сообщают обновление адреса.
|
||
|
||
Прямые узлы должны сами должны объединиться в сеть следующим образом:
|
||
|
||
Инит: база содержит RTT по узлам.
|
||
выбираем n=16 узлов с минимальным rtt. запускаем подключение к ним.
|
||
синхронизируем роутинг таблицу с ними (обмен маршрутами должен инициироваться сразу после подключения).
|
||
при потере связи узлы через nat должны найти альтернативы.
|
||
|
||
в таблице обновляется
|
||
|
||
как обмен завершен
|
||
|
||
Нужно собирать и обновлять информацию о том
|
||
- к каким публичным нодам подключены nat узлы.
|
||
|
||
- метрика доступности узла - как давно не менялся ip:port - собираем с клиентов. вместе с рейтигном (каждый клиент по узлу фолрмирует свой рейтинг кандидата в суперузлы и отправляет подписанный рейтинг узлу)
|
||
рейтинг включает:
|
||
- число разных часов фигурирует в замерах
|
||
- число разных дат фигурирует в замерах
|
||
- гистограмма rtt: 0-2ms, 2-4ms, 4-6ms, 6-10ms, 10-13ms, 14-18ms, 18-25ms, 25-35ms, 35-50ms, 50-75ms, 75-100ms, 100-130ms, 130-160ms, 160+ms
|
||
- гистограмма потерь: 0-1% 1-2% 2-4% 4-8% >8% (обновляется каждый час)
|
||
|
||
Сделать подключение к группе
|