IRCaBot 2.1.0
GPLv3 © acetone, 2021-2022
#ls2
/2022/06/02
dr|z3d […Handler 2/4] …dp.PeerTestEvent: PeerTestEvent setLastTested() - v6? [✘]
dr|z3d java.lang.Exception
dr|z3d at net.i2p.router.transport.udp.PeerTestEvent.setLastTested(PeerTestEvent.java:168)
dr|z3d at net.i2p.router.transport.udp.UDPTransport.locked_setReachabilityStatus(UDPTransport.java:3658)
dr|z3d at net.i2p.router.transport.udp.UDPTransport.setReachabilityStatus(UDPTransport.java:3647)
dr|z3d at net.i2p.router.transport.udp.PeerTestManager.honorStatus(PeerTestManager.java:606)
dr|z3d at net.i2p.router.transport.udp.PeerTestManager.receiveTestReply(PeerTestManager.java:486)
dr|z3d at net.i2p.router.transport.udp.PeerTestManager.receiveTest(PeerTestManager.java:671)
dr|z3d at net.i2p.router.transport.udp.PacketHandler$Handler.handlePacket(PacketHandler.java:731)
dr|z3d at net.i2p.router.transport.udp.PacketHandler$Handler.receivePacket(PacketHandler.java:336)
dr|z3d at net.i2p.router.transport.udp.PacketHandler$Handler.handlePacket(PacketHandler.java:285)
dr|z3d at net.i2p.router.transport.udp.PacketHandler$Handler.run(PacketHandler.java:219)
dr|z3d at java.base/java.lang.Thread.run(Thread.java:833)
dr|z3d at net.i2p.util.I2PThread.run(I2PThread.java:103)
dr|z3d 2 concurrent .iso downloads from different locations, 0 hop, SSU2, ~4MB/s
dr|z3d 5MB/s sustained for 3 concurrent .isos
zzz faster than my results on testnet, what's the ping time between the boxes?
zzz orignal, you have the relay tag request / relay tag blocks implemented, so if Charlie sends a request Bob will send a tag?
zzz I have bob and charlie sides mostly done, untested
zzz obscuratus, you have any test results from my patch?
obscuratus zzz: It seems like it's working well. I added some debugging to make sure it's not sending out RI too often. It's spaced out well, and I'm not seeing any tunnels to unreachable peers.
zzz super, thanks for testing
dr|z3d ping time, over i2p or standard ping?
zzz standard
dr|z3d let's see..
zzz my testnet tests were with 25 ms added delay (50 ms RTT)
dr|z3d 9 packets transmitted, 9 received, 0% packet loss, time 8013ms
dr|z3d rtt min/avg/max/mdev = 6.655/6.764/6.939/0.083 ms
zzz and with that I had 1.4 MBps SSU2, 2.4 MBps SSU1
zzz thanks
zzz so only a modest improvement with 1/8th the latency
dr|z3d I guess that's not a bad thing
zzz plenty of room for improvement
dr|z3d I mean latency not impacting overall throughput, as one would hope.
dr|z3d well, not hugely.
dr|z3d 1/4th latency I think you meant :)
dr|z3d oh, unless 50ms RTT is the ping time, in which case nevermind.
zzz yup
zzz the qdisc adder is one-way
dr|z3d speaking of qdiscs, default kernel codels have a max number of packets they can handle before they start dropping everything it appears. configurable, but can hurt i2p performance if you're routing a lot of tunnels.
dr|z3d at least, that's the impression I got when I was seeing router traffic bouncing around for no apparent reason.
zzz yeah we're too bursty, we should be more round-robin but it's hard
dr|z3d default limit is 10K packets for fq-codel, and probably other qdiscs, so bumping the limit up is worth doing if you're hitting that limit.. htop's network IO gives you a good idea of pps.
dr|z3d and yeah, I can't imagine round robining packets is anything but a serious challenge.
dr|z3d just reading qdisc docs makes my head hurt :|
zzz man tc
dr|z3d oh, I'm familiar with tc, thanks. I get the basics, just the theory in depth kinda loses me :)
zzz given that we have a max window size, bw should be inv. prop. to RTT. That's why I say there's more todo
zzz * in a very-low-loss environment
dr|z3d > /usr/sbin/tc qdisc replace dev eth0 root fq_pie limit 500000 target 30ms memory_limit 1024MB
dr|z3d rather you than me :)
zzz I presume your tests are java/java. You have any java/i2pd or i2pd/i2pd results?
zzz I don't recall if orignal did any
dr|z3d no, nothing on the i2pd front, sorry.
dr|z3d R4SAS perhaps..
zzz or stormy
dr|z3d unlikely
zzz fyi I got a exit.stormycloud.i2p registration yesterday
dr|z3d yeah, I helped stormy register the sub.
dr|z3d we've also got a competent looking website now. exit will be the outproxy proper, top level is the website.
dr|z3d switched the keys around.
zzz is my feature/test list helping at all?
dr|z3d I guess, it was a good reference point of what you think's needed, though I think we've got it all pretty much covered.
dr|z3d it's by and large the same setup as purokishi with some notable differences, so it's already road tested.
zzz ok guess we're on the same page then
dr|z3d yeah, I think we're good. I don't think there's anything outstanding on your list tbh, from what I recall. error handling it what it is, and for the most part, over the browser takes over.
zzz does server side i2ptunnel add the x-i2p headers to CONNECT ?
dr|z3d I don't believe so, should it?
zzz dunno, I assume if it didn't and you needed it for logging you would ask
dr|z3d oh, wait, hang on.
dr|z3d you're asking if we can see the dest of the client connecting at the router end of the deal?
zzz I'm fuzzy on the CONNECT stuff
zzz at the external proxy software
zzz is i2ptunnel adding x-i2p headers for https CONNECT like it does for http GET
dr|z3d i2ptunnel, sure.
dr|z3d proxy, we're not logging, not much need there.
dr|z3d and i2ptunnel logging is temporary.
dr|z3d the intention is no logging.
dr|z3d in my experience, if i2ptunnel's inserting x-i2p headers, then assuming the backend server supports viewing those headers, they're visible.
dr|z3d in nginx, for example, you just add custom headers to your logging config and you've got the b32 or whatever you want.
zzz how can stormy do any admin without logging?
dr|z3d what did you have in mind, admin-wise?
zzz to detect and combat any ddos or abuse you'd need logs
zzz I get the intention but is it practical?
dr|z3d well, throttle and access filters should cover most angle.
dr|z3d that's yet to be determined :)
dr|z3d for the most part I haven't had an issue on purokishi, well, not many. not enough to warrant logging.
dr|z3d admittedly I'm probably running a slightly tighter ship than stormy given the dns-level blocking, but still.
zzz so you do have logging on the dns?
dr|z3d 24hr logging, sure.
dr|z3d as indicated on outproxy.purokishi.i2p :)
zzz I'm just saying 'zero logging' might be an overpromise, although 'after public beta' is an out
dr|z3d gives me enough time to notice false positives on the blocking front.
dr|z3d sure, valid point. I guess stormy's working on the same basis he runs his tor exits.
dr|z3d there, suitable qualifier added.
dr|z3d did you catch the lang exception I posted earlier, zzz?
dr|z3d debug level, so nothing concerning?
zzz yes that's generic, 1 or 2
dr|z3d ok, thought so, just thought I'd paste just in case.
zzz I haven't even started looking for results yet
zzz java.lang.NullPointerException: Null arguments for HMAC <-- ever seen that?
dr|z3d not to my recollection, but I may have :)
zzz holler if you do
dr|z3d will do
orignal zzz I have tried to send peer test to you
orignal to you router from ipv6
orignal do you see it?
orignal zzz all relays are supposed to work
orignal not sure if it works properly
orignal oh wait?
orignal what is relay tag?
orignal I only have relay request, relay response and relay intro
orignal will check
zzz orignal, stand by, I got the peer test but it crapped out
zzz re: relay tag request block, yes that's how it's set up to get a tag back
orignal yes I know it's crapped out
orignal just wondering what exactly
zzz crapped out on my side, investigating now
orignal I will implement tag request
orignal no problem
orignal was busy with peer test
zzz Caused by: net.i2p.data.DataFormatException: Bad PEERTEST number: 0
zzz should be 1-7
orignal oops ))
orignal I forgot you start from 1 not from 0 ))
zzz yeah because we already had SSU 1 documents numbering them 1-7 so it was easier on my brain :)
orignal unfortually niether C no C++ support ranges
zzz you're a smart guy, I have faith you'll find a way ))
orignal even old Pascal had them ))
orignal btw, afaik Go doesn't have it either
zzz I did some Pascal in college
orignal rememebe it's like "type msg=1..7";
orignal and you cann't assign 0 to varibale of that type
zzz good memory for you. I don't remember a thing
orignal maybe not exacly but something like this
zzz turning on peer test debug logging so I'll be ready for next time
zzz just use an enum starting at 1
orignal С++ doesn't check even type compatibuiility
orignal well it does but it's a new keyword added since probably C++17
orignal same problem as with C
orignal you can define enum but you can assign anything
orignal next run of peer test
orignal sent and nothing back
zzz stand by
zzz 06-02 21:47:49.928 WARN [ handler 1/1] .transport.udp.PeerTestManager: Bad version 113 from [2001:
zzz should be 2
zzz spec says
zzz ver :: 1 byte SSU version to be used for messages 5-7:
zzz but I'm checking it for all messages
zzz it's not worded very well
orignal I set it to 2
orignal signedData[0] = 2; // ver
zzz but the idea is that it's in all messages
orignal anyway I will check
orignal maybe wrong layout
zzz msg, code, flag, 32 byte hash, ver
zzz I'll double check also
orignal have to run for 2 hours
orignal will continue tonight
zzz ok, have fun
orignal msg, code, flag, hash, ver
orignal nonce, ts
zzz wait
zzz hash is only in messages 2 and 4
orignal thanks
orignal that's why
orignal will fix it
orignal *** ask ***
zzz I'll fix the picture
zzz later
orignal an yes I handle relay tag request on Bob's side