IRCaBot 2.1.0
GPLv3 © acetone, 2021-2022
#ls2
/2022/10/17
@eyedeekay
+R4SAS
+RN
+RN_
+Xeha
+orignal
FreeRider
Irc2PGuest22478
Irc2PGuest48042
Onn4l7h
Onn4|7h
T3s|4_
aargh3
acetone_
anon4
eyedeekay_bnc
not_bob_afk
profetikla
shiver_1
u5657
weko_
x74a6
zzz 0) Hi
zzz Meeting #200
zzz wave your party stuff
eyedeekay <throws confetti>
zzz probably 6 years including #ntcp2 which we didn't number I don't think
zzz anyway
zzz what's on the agenda for today?
zzz ok that will be 1)
zzz 2) orignal proposed going to every-other-week for a while
orignal nothing from my side
zzz ok then
zzz 1) go-i2p
eyedeekay So obviously I was struggling a little bit with Noise, about last Thursday I went ahead and tried something different
eyedeekay I started by taking the handshake functions from NoiseSocket which was an existing implementation of a noise tunnel and adapting them to the go-i2p transport interfaces
eyedeekay Which led to me figuring out the differences between the NoiseSocket handshake and the needs of my "hypothetical unmodded noise transport" thing that I've been doing
eyedeekay Which is that NoiseSocket is client-server and expects that, so what I actually had to do was to refactor it to decide based on whether we're connecting to somebody or somebody is connecting to us, so now I understand the difference between clients and servers and alices and bobs better
eyedeekay But the long and short of it is I think I'm pretty close to actually being able to send a message across it for real
eyedeekay It's still very messy but close to actually doing something
zzz yeah, for sure, you're either alice or bob, and those are very different
zzz and really have to be debugged independently
orignal but if you are Alice you must know Bob's RI
orignal meaning partial netdb implemnetation
eyedeekay I am using fake ones right now but yes I do have a partial netDb implementation already
zzz we've done this 4 times now. the important thing is looking at the state on each side: eph. and static keys, chaining key, hash, etc
eyedeekay I'm just constructing something that fills up the object
zzz bugs almost always result from some mismatch
eyedeekay Yeah there was a lot of locking elaboration in NoiseSocket that to be perfectly honest hadn't even occurred to me yet but it was very helpful to work from
zzz sure, it's a state machine, so you can only be processing one message at a time
zzz (per socket)
orignal you need to send it in SessionConfirmed
orignal with correct signature etc.
zzz good stuff
eyedeekay orignal you're talking about for when I try and start making connections instead of just defining the sequence of things that happen on a connection, right?
eyedeekay Right now what I've got is noise stuff(Handshake) happening on a socket implementation that almost works so I think I know what you mean
eyedeekay And I'll be trying it soon
zzz anything else on 1) ?
orignal I'm just telling you the scope
orignal if you are trying to connect to a real router
orignal including your own
eyedeekay Nothing else for me
orignal but guys hinestly
eyedeekay OK thanks orignal for your help
orignal SSU2 looks much more prospective than NTCP2
zzz what do you mean prospective?
orignal faster, less load
orignal more dpi resistant
zzz sure, but he's having enough trouble with NTCP2. SSU2 is 4x harder
zzz I think he's on the right path
orignal yes he is
orignal but he might want to think about common code for both
zzz we don't want him crying in the corner :)
orignal right now I have spgetti code
orignal becuase SSU is too different
eyedeekay That's a good point though, I'm not quite there yet but I think I'll have a better perspective on how to do the common code after I get done with this initial fake transport
orignal from NTCP2 and SSU2
zzz anything else on 1) ?
zzz 2) meeting schedule
orignal I suggest one in two week
orignal because not too much to discuss at this point
zzz that's fine by me, for now. Maybe through the end of the year?
zzz or does eyedeekay need every week for go-i2p motivation?
orignal maybe
eyedeekay I'm fine with that, I'll be doing about the same thing every meeting for the rest of the year
orignal up to him
eyedeekay I'm fine with every 2 weeks though, I'll have more to say per meeting is all
orignal me too
zzz of course, never need to wait for a meeting to discuss things.
zzz that's what the channel is here for
zzz ok, so next meeting halloween, oct. 31 ?
orignal yes, fine for me
eyedeekay Pacing might be better
zzz ok, let's try it, can always change back any time
zzz I have a quick 3)
zzz anything else on 2) ?
zzz 3) hole punch
zzz we discussed a few days ago, when I was answering orignal's question about proxy port
zzz I answered the wrong thing
zzz but got me thinking
zzz for symmetric NAT, charlie doesn't know his own port
zzz so port in the relay response block is probably wrong
zzz because each "session" has a different port
orignal Charlie knows it from Bob
orignal it's not neccesary however
zzz yeah but when alice gets the hole punch, it won't be from that port
zzz example:
zzz EstablishmentManager: Hole punch source mismatch on OES2 v-9prH [Hash: v-9prHa6MrUcuZN8BQwcJL0xjZm1ujxEQ9TKfn~2Ifw=] lifetime: 96ms Rcv ID: 3860917032206725661 Send ID: -7079722670705281909 OB_STATE_PENDING_INTRO Introducers: {[Hash: 1wSo0ri1tvuStLf-1gBbF-I0s5wvLargiFcFViFtHwM=]=INTRO_STATE_SUCCESS, [Hash: tPcd9GdprLXJWPWUyS-z~5x7Mhv3VZYs1v8jGuUCgPw=]=INTRO_STATE_INIT, [Hash: BpATV4o2-r6~pbHjtleL5Qgo7Wn-5f1N6oGROvxyiEg=
zzz ]=INTRO_STATE_INIT} resp. block: 163.182.172.114:19352 rcvd. from: 163.182.172.114:13226
zzz response block in the hole punch said port 19352
zzz but the hole punch came from port 13226
R4SAS orignal: Charlie will never be able to connect to Alice with proxy. There is the same thing like with NAT
R4SAS proxy will that NAT device
zzz yeah this is not the proxy case.
R4SAS will be *
orignal he will
zzz just regular symmetric NAT
orignal if no symmetric NAT
orignal and it works now
zzz (orignal's proxy question just got me thinking)
orignal both routers behind NAT can connect to each other
zzz SO, anyway, I'm Alice. I sent the Session Request to Charlie to port 13226 (where the hole punch came from)
zzz and it worked
R4SAS proxy server will make external mapping to different outgoing ports
zzz so, my recommendation is, if the hole punch comes from a differnt port, send the session request to that port instead
zzz (we may or may not have done that for SSU 1, I don't remember)
orignal but how do you know this port?
zzz it's the source port for the hole punch msg
R4SAS you'll wouldn't know
orignal yes but different from relay response
zzz yes you do
zzz right, different from relay response
orignal it you don't check ports wouldn't be a room for an attack?
zzz I still check if the from-IP matches the relay response block IP
zzz and I still check if the port is a valid port
orignal I mean why do we even need a relay response then?
orignal ok. IP only
orignal fine than
orignal think you for hint
orignal I will take port from HolePunch
zzz so this will allow routers behind symmetric NAT to get incoming connections
orignal great
orignal now, what if Alice is behind stymmetric nat?
orignal trying to connect to a router through introducer
zzz alice only? or both alice and charlie?
orignal alice is symmetric nat
orignal bob is just nat
orignal not syttemtric
zzz should work fine, right?
orignal sorry not bob
orignal charlie
orignal alice sends her ennpoint with wrong port
zzz so alice doesn't get the hole punch, it's blocked by her symmetric nat
zzz alice gets the relay response from bob
zzz and sends session request to charlie as usual
orignal charlie send HolePunch to that worng port
zzz doesn't matter, it still opened the port on charlies' firewall
orignal agree
zzz pKWyqn is one router that seems very confused
orignal what's that?
zzz for 89.187.163.198:39261 via 89.187.163.218:39261
zzz sometimes has wrong IP
zzz sometimes wrong port
zzz for 156.146.56.138:39261 via 89.187.163.213:38774
orignal java or i2pd?
zzz might be behind VPN
orignal because I don't update port yet
zzz java
orignal SSU2 through proxy will look more funny
zzz anyway, that's all I have on 3)
orignal great
zzz also, I copied most of prop. 159 to the spec section
orignal I will change the code according to your logic
zzz minus all the QUIC copy-paste and some other stuff
orignal will check
zzz and got the blog post out (finally)
zzz so any more updates I will change in both places, prop. 159 and the spec
zzz that's it from me
zzz anything else for the meeting?
orignal we need more SSU2 routers as usual
zzz we'll have all you need in 5 weeks :)
zzz start planning what costume you will be wearing
zzz thanks everybody