IRCaBot 2.1.0
GPLv3 © acetone, 2021-2022
#i2p-dev
/2025/05/09
@eyedeekay
&zzz
+R4SAS
+RN
+RN_
+StormyCloud
+T3s|4
+acetone
+altonen
+dr|z3d
+hagen
+hk
+orignal
+postman
+qend-irc2p
+snex
+wodencafe
Arch
BubbRubb
Dann
DeltaOreo
FreefallHeavens
HowardPlayzOfAdmin1
Irc2PGuest23402
Irc2PGuest31296
Irc2PGuest59134
Irc2PGuest85336
Onn4l7h
Onn4|7h
SigSegv
Sisyphus
Sleepy
T3s|4_
T3s|4__
b3t4f4c3___
bak83_
boonst_
cumlord
dr4wd3_
duck
elthommy
eyedeekay_bnc
mareki2p_
not_bob_afk
onon_
poriori_
profetikla
r3med1tz
rapidash
shiver_
solidx66
thetia
u5657
uop23ip
w8rabbit
weko_
x74a6
zzz the race is on, go ntcp2 vs rust ssu2, huge checkins overnight on both sides
eyedeekay Lot of progress over on go, not quite alive yet but big structural improvements
zzz hey altonen congrats on your big ssu2 revamp. Sorry for my comment on the tests, I think I misunderstood things
altonen thanks! i have to take a break from ssu2 for a while and work on something else for a while, and no worries
altonen but thanks for taking a look
zzz should have waited and asked you about it here
zzz maybe it was the one below it that threw me:
zzz // 3 is highest seen and 2 packets below 3 are also acked
zzz assert_eq!(
zzz manager.ack_info(),
zzz AckInfo {
zzz highest_seen: 3,
zzz num_acks: 3,
zzz ranges: None
zzz because that's acking 3 packets below 3
altonen true, i'll check
altonen yeah it acks 3-0
altonen the comment is wrong
zzz you're right that it also depends how you initialize things, like whether you start at 0 or -1, which depends on the direction
zzz in my code I always initialize to -1 and then explicitly increment to 0
altonen doesn't it always start at zero?
zzz yes but I have an internal state of -1 for 'nothing acked yet'
altonen ok fair enough
zzz just an implementation detail
altonen but i wanted to ask you, how do you handle simultaneous connections? router a and b dial each other at the same time
altonen both connections get accepted or only one of them?
zzz only one. things would get super messy in my code to do two at once
altonen for me as well but which do you accept?
altonen reject the inbound connection if your outbound is still pending? or accept the inbound and cancel pending outbound
zzz there's a termination reason code for the other one. REASON_REPLACED = 22
zzz let me look...
altonen somehow i've missed it lol
zzz ok, I don't do the check until the handshake completes; at that point, I keep the new one and terminate the old one
altonen ok thanks
zzz I think our NTCP2 strategy is similar, as is i2pd's.
zzz it's agnostic about inbound/outbound, or two inbound. last one wins, so if the other guy restarted and you missed the termination, you kill the old one
altonen sounds good, for ntcp2 it works fine but i had some issues with ssu2 that i need to debug at some point
zzz it was the same for us. once ntcp2 worked it just worked, but we had a long tail of ssu2 issues for quite a while, maybe a year or more
altonen luckily i have the luxury of testing against two working routers but still not looking forward to it
zzz I actually enjoyed debugging ssu2 but it is a lot to hold in your head at once, best to wait until you are in the right mood
zzz ratchet is the one that always makes me cranky ))
orignal yes SSU2 is not perfect
altonen i liked ratchet more than ssu2
altonen easier to test at least my codebase
zzz I don't think SSU2 can be perfect, it's forever tweakable
zzz yeah out in the real net once you start logging ssu2 stuff it's a firehose. ratchet is more controllable in that way
altonen i need to sync metrics with java, there were some good metrics there that'd help testing
altonen for ssu2 as a start
zzz maybe? a lot of ours are repurposed from ssu 1.
zzz I rarely use stats for debugging or finding problems
altonen ssu2 outputs so much logging that having a good grafana dashboard would be useful, need to make it first
altonen maybe it has dubious value, idk until i see it
zzz for starters on your testnet, just enable ssu2 on two routers, to keep the logging sane
zzz otherwise it's impossible
altonen the integration tests pass(ish) with ssu2 so it's not totally broken but yes, i'll try something like that
altonen once the motivation finds me