~AreEnn
~R4SAS
~orignal
~villain
&N00B
+Xeha
+relaybot
DUHOVKIN
Guest29533
HackerMan
Most2
Nausicaa
Ruskoye_911
Trusishka
Vort
`
acetone_
anon3
b3t4f4c3
flumental
nemiga
not_bob_afk
plap
poriori_
profetikla
segfault
soos
teeth
un
weko_
whothefuckami
WayBest
Ты им не подсказывай ;D
WayBest
А то ведь наплодят роутеров
orignal
рестарт илиты через 10 минут
segfault
orignal: пофиксили SSU2?
orignal
чего?
segfault
orignal: ну про багу в протоколе SSU2 тогда говорили. ты хотел ключом роутера шифровать.
orignal
а про ту старую проблему
orignal
все в стадии разговоров
onon1
(rand () & 1)
onon1
Это как работает?
orignal
четное или нечетное
onon1
Когда мы соединяемся с другим роутером, мы всегда обмениваемся своими RI?
orignal
да. вторая часть SessionConfirmed
onon
Я вижу когда у нас входящий коннект мы профиль обновляем
onon
if (r) r->GetProfile ()->Connected ();
onon
А RI в NetDb обновляется?
orignal
естественно
onon
В профиле там
onon
void RouterProfile::Connected ()
onon
{
onon
m_HasConnected = true;
onon
UpdateTime ();
onon
}
onon
Просто таймстемп обновляет
onon
Или там дальше логика какая-то
orignal
посмотри ProcessSessionConfirmed
orignal
i2p::data::netdb.PostI2NPMsg (CreateI2NPMessage (eI2NPDummyMsg, buf.data () + 3, size)); // TODO: should insert ri and not parse it twice
orignal
в NTCP2.cpp
orignal
/ update RouterInfo in netdb
orignal
ri = i2p::data::netdb.AddRouterInfo (ri->GetBuffer (), ri->GetBufferLen ()); // ri points to one from netdb now
orignal
а в SSU2.cpp уже иначе
orignal
и да NTCP2 надо тоже переделать
orignal
в SSU2 так сделано потому что разные пир тесты
onon
А что значит // TODO: add ri
orignal
так написано же
orignal
короче надо сделать как в SSU2 счас
onon
Значит не приоритетно
onon
Погоди, так это в SSU2Session.cpp
orignal
есть в NTCP2.cpp есть в SSU2Session.cpp
onon
SSU2Session::HandlePayload
onon
А, ну ладно.
orignal
нет
orignal
в bool SSU2Session::ProcessSessionConfirmed (uint8_t * buf, size_t len)
onon
Не совсем понятно как это работает
onon
if (r->IsUnreachable () ||
onon
i2p::util::GetMillisecondsSinceEpoch () + NETDB_EXPIRATION_TIMEOUT_THRESHOLD*1000LL < r->GetTimestamp ())
onon
Мы добавили RI и сразу проверяем его на свежесть.
onon
Или доступность
onon
Или это для других случаев
orignal
unreachable это неправильное название метода
orignal
это если вставка завершилась ошибкой
onon
А EXPIRATION?
orignal
и вставяоем мы его вообще то после всех проверок
onon
На сдвиг времени
onon
на 2 мин
orignal
я не знаю где ты это смотришь
onon
NetDb.cpp
onon
NetDb::AddRouterInfo
orignal
а ну там все сложно
orignal
мы снчала его распарсиваем а потом проверяем на ошибки
onon
Не понятно, если мы только что обновили RI, почему IsUnreachable
orignal
потому что IsUnreachable это неправильное название
orignal
там должно быть типа IsValid
orignal
но мне лень переимновывать
onon
Нужен список случаев когда m_IsUnreachable
onon
Кто его выставляет
orignal
парсер при ошибках
onon
Я смотрю NetDb при экспирации ставит
onon
Транспорты вроде ещё
orignal
смотри RouterInfo.cpp
orignal
там сильно длинный код
orignal
ну это тоже инвалдация
orignal
а трапспорты реально ставят когда недостижим
orignal
короче путаница там
orignal
которую надо по уму переделать
onon
Просто у тебя на этом m_IsUnreachable много чего завязано
orignal
угу
orignal
и это неправильно
onon
Теоретически не может возникнуть такой ситуации? Если у меня в нетдб есть хороший RI XXX
onon
Злоумышленник делает копию этого RI, меняет там что-нибудь и присылает нам. Мы его пытаемся заменить, криптография не сходится, и мы удаляем наш хороший RI XXX
orignal
нет
orignal
такая ситуация проверяется
onon
Ну по коду я вижу, что удаляется RI
orignal
если у нового подпись не сходится мы его игнорируем
onon
m_RouterInfos.erase (ident);
orignal
if (!r->Update (buf, len))
orignal
{
orignal
updated = false;
orignal
m_Requests->RequestComplete (ident, r);
orignal
return r;
orignal
}
orignal
там проверка снчала идет
orignal
в тот код не попадет если подпись фейлится
onon
А , он раньше отвалится
onon
Ты уже все айсберги покорил?
orignal
нет конечно там много
onon
Тогда извини что отвлекаю.
`
Летом по айсбергам, зимой по яхтам..
WayBest
успех тоннелей уже вырос до 33%, фикс пашет)
WayBest
о, 34%
WayBest
природа очищается :D
joojoo
How can I increase the transit bandwidth I am routing?
WayBest
It's better not to touch it
joojoo
Router stats:
joojoo
Uptime: 1 day, 1 hour, 55 minutes, 11 seconds
joojoo
Network status: OK
joojoo
Tunnel creation success rate: 13%
joojoo
Received: 97.70 GiB (886.43 KiB/s)
joojoo
Sent: 94.94 GiB (858.48 KiB/s)
joojoo
Transit: 92.12 GiB (833.59 KiB/s)
joojoo
Routers: 12219 Floodfills: 899 LeaseSets: 231
joojoo
Client Tunnels: 86 Transit Tunnels: 15222
WayBest
Because java routers are slow
joojoo
I'm on i2pd
WayBest
It's ok
joojoo
[limits]
joojoo
## Maximum active transit sessions (default: 5000)
joojoo
## This value is doubled if floodfill mode is enabled!
joojoo
transittunnels = 50000
joojoo
I have lots of bandwidth, and I'm not routing more than ~ 1 - 1.4 MB/s
joojoo
It's a pity
WayBest
from personal experience, I will say that any attempts to increase the speed lead to the opposite
WayBest
because java is SLOW
joojoo
I'm on the C++ version (i2pd)
WayBest
Лось, объясни ему почему он не сможет сделать, то, что я хотел сделать)
WayBest
Your c++ router connecting to java
WayBest
joojoo: can you scroll chat's history?
joojoo
Yes
WayBest
scroll to my and orignal messages about java routers restrictions
joojoo
I don't have those. I may have joined afterwards.
orignal
are you a floodfill?
orignal
do you publish IP?
WayBest
судя по лизсетам он флудфилл
WayBest
и по циферкам