@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
}
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
lol
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