xray api vpnbot-audit-users отдавал оба прохода через creflect.MarshalToJson:
рефлексия по каждому аккаунту и JSON с отступами — ~400 байт на пользователя.
27.09.2026 на tinor (15 088 клиентов) это 11,9 МБ и 0,41 с CPU на вызов, а
узловой помощник строит аудит при каждом создании и удалении ключа и в
фоновой проверке раз в ~25 с.
Теперь каждый пользователь пишется как email и точная идентичность аккаунта:
VLESS — {"_TypedMessage_", "id"} (те же значения, что давал рефлективный
кодировщик), любой другой тип аккаунта — в прежнем рефлективном виде.
Контракт vpnbot-live-user-audit-v1 и два прохода не меняются.
Проверено:
- go test на v26.7.28 и v26.9.9 (test-patches.sh, включая сценарии с
настоящим процессом); новые тесты сверяют прямой вывод с рефлективным для
vless/vmess/trojan/shadowsocks, VLESS без id и пользователя без аккаунта.
- Живой Xray с 3002 пользователями: ответ 2,4 → 0,8 МБ; строгий аудит
узлового помощника (_build_live_user_registry_audit) на ответах старого и
нового бинарника дал идентичный результат, 66 → 40 мс.
- Бенчмарк 15 080 пользователей × 2 прохода: кодирование 158 → 16 мс,
13,6 → 4,0 МБ.
3 lines
369 B
Text
3 lines
369 B
Text
cff026a11a5684c1c1a82d24c822106533e79996ec6044c399d96bb271f7f677 0001-Interrupt-active-VLESS-sessions-on-user-removal.patch
|
|
9da5d7b2209c7f62023b23c69501afcc362805b4c41d9e3f966a9f3e72ace30f 0002-Interrupt-active-Trojan-sessions-on-user-removal.patch
|
|
42f8e1994817d96d19b2ee76a1a0af1c7f54733b55f1381f91e1421de1ed0835 0003-Interrupt-all-managed-Xray-user-sessions.patch
|