IRCaBot 2.1.0
GPLv3 © acetone, 2021-2022
#i2p-dev
/2025/05/09
&zzz
+R4SAS
+RN_
+T3s|4
+eche|off
+nilbog
+orignal
+postman
+qend-irc2p
+sourceress
Arch
Birdy
Danny
Irc2PGuest30010
Irc2PGuest36077
Irc2PGuest49364
Irc2PGuest51117
Irc2PGuest6564
Irc2PGuest65656
Irc2PGuest67278
Irc2PGuest74235
Irc2PGuest83482
MatrixBot
Onn4l7h
Over
Sleepy
Teeed
Yotsu
__bob_
aargh3
ac9f
acetone_
ahiru
anontor
b3t4f4c3__
cims
dr4wd3_
dr|z3d
duanin2
hababam
hagen_
leopold
makoto
marek
marek22k
n2
noidea
not_bob_afk2
nyaa2pguy
o3d3_
poriori
profetikla
r00tobo
rapidash
solidx66
stormycloud[m]
test7363673
uop23ip
urist_
user_
w8rabbit
zelgomer
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