IRCaBot 2.1.0
GPLv3 © acetone, 2021-2022
#saltr
/2024/07/27
~dr|z3d
@RN
@RN_
@StormyCloud
@T3s|4
@T3s|4_
@eyedeekay
@orignal
@postman
@zzz
%Liorar
+FreefallHeavens
+Over
+Xeha
+bak83
+cumlord
+hk
+onon_
+poriori
+profetikla
+r00tobo
+uop23ip
+weko
An0nm0n
Arch
Danny
DeltaOreo
Irc2PGuest4235
Irc2PGuest53061
Irc2PGuest57148
Irc2PGuest60340
Irc2PGuest99578
Meow
Nausicaa
Onn4l7h
Onn4|7h
acetone_
anon3
anu3
boonst
carried6590
mareki2pb
not_bob_afk
plap
shiver_
simprelay
solidx66
u5657
orignal gents, how can I move snark's conent and setting to another box?
orignal I want to try seeding 24/7 and see what would hapen
snex You can but you have to be very careful
snex It seems very finicky
snex Basically shut down all torrents then copy over the i2pconfig.d folder to the new one and make sure all the .torrent files and data are in the same place
snex i2psnark.config.d is the folder*
dr|z3d close snark, copy the i2psnarl folder, start snark on new box.
dr|z3d and what snex said re location.
dr|z3d location including the username you're running snark from.
orignal but I don't want to copy snark folder I need to build it there I guess
orignal username is the same
snex As long as the config.d and the data all match up you should be good
dr|z3d just pull the torrents again, orignal
dr|z3d then you don't have to worry about location or anything else. just unpack the standalone wherever you want it.
dr|z3d copy over the existing .torrent files and away you go.
dr|z3d feel free to try Snark+ if you haven't already.
orignal I don't want to pull
orignal I want unly seed
dr|z3d have you got the content on the new host?
dr|z3d if so, and you don't want to migrate settings, delete the existing .torrent files and recreate them.
dr|z3d (on the new host)
orignal I want to keep seeding from another box like before
dr|z3d sure, as long as you have the content on the new host, just create the torrents and you're seeding as soon as they start.
dr|z3d if you do try Snark+, be sure to enable the filter bar in the configs.
dr|z3d also enjoy the 127.0.0.1:8002 interstitial.
dr|z3d I bet you never noticed that, snex...
dr|z3d 1.7MB/s down peak, testing standalone.
snex Is that on snark or what
snex What is an interstitial
dr|z3d there are some very fast hosts handling the + torrent seeding.
dr|z3d check the url, you'll see what an interstitial is.
dr|z3d (it won't interrupt snark)
snex I only see the chimp gif as always. I haven’t updated
dr|z3d that's your interstitial.
dr|z3d not a gif, hell no. :)
snex Also I can’t even reach snark via that url I have everything on different hosts lol
dr|z3d well, :8002/ then from wherever you access it. that's your interstitial which is essentially a "please wait" style banner.
snex That was there as long as I remember
dr|z3d it serves to preload the default theme's resources.
dr|z3d ok, then you did see it. my bad.
dr|z3d an appropriate mascot, though some may disagree.
RN I don't forward port 8002, no wonder I never see the monkey
snex So then how do you manage snark at all
RN aside from the little one in the progress windown
RN 127.0.0.1:[forwarded version of 7657]/i2psnark/
RN are you just talking about the standalone one?
RN (yes this is an I2P+ router)
snex Yes but even the built in one has the management page
RN is there some place to click to bring that up?
RN I think one of the stable diffusions I was playing with ran on port 8000 by default
snex i2phost:8002
RN port 7657 (7667) are ssh forwarded, port 8002 is not
snex Right so how can you use snark at all
RN and there is a Canon I2P running on this local host, so I'd a port conflict if Canon uses 8002
RN I go to 127.0.0.1:[forwarded 7657]/snark
RN where [forwarded 7657] is replaced by the local end of the ssh port forward to that machine's port 7657
RN or I can just open the (forwarded) router console and click 'torrents' link in the side bar
RN when you say management page, you mean the main snark web interface? where it lists the torrents, has buttons for pasting magnet,etc
RN I have never used a port number 8002 to bring up that interface
RN just the links from the console, or the url from the history in the url bar
dr|z3d cheeky monkey interstitial is standalone only.
RN thanks for stopping me from goning down some rabit hole looking for 8002
dr|z3d 8002 is standalone default port.
RN and thanks for the attempt to confuse me snax
RN that's what I suspected. snax was helpfully reading from a completely different book trolling me to thinking we were on the same page
dr|z3d watch him, he's dangerous.
RN yup
RN he likes the abuse
RN ;)
snex I could have sworn embedded snark also ran on 8002
dr|z3d snark in the console runs on the console port.
cumlord Any idea why so finicky? Changing the file names to what it wants seems to work most of the time
dr|z3d torrents are linked to the location they're saved to.
dr|z3d i2psnark.config.d per-torrent files can be edited.
cumlord Ah ok I didn’t know about that
cumlord I think I have 2-3 multi file torrents ran through renamer, that work in embedded but not in standalone, maybe that’s why
dr|z3d if the directories in there were less random, would be easier. but it is what it is.
dr|z3d there's another side project for you snex..
dr|z3d when a torrent is stopped, ui option to permit relocation of the storage location per torrent.
dr|z3d and perhaps a button/feature to globally reassign the location of torrents.
dr|z3d another 25% or so shaved off the svg graphs in the dark theme in the latest + dev update.
dr|z3d maybe there's some useful optimizations for svg graphs you can glean from this, zzz: cake.i2p/file/C9Yw6ulyis_LsdLtI2D79TuowI2msVQMEbtcBRrkq_iOAplTalUv/bw.combined.svg
dr|z3d 4 days worth of data + legend @ 387x233: cost: ~7.3KB
zzz thx, but whatever hacks you're doing to jfree probably aren't applicable to the puker, and aggressive output minimization really isn't a design goal over here
dr|z3d it's up to you of course, but I'm sure there are various optimizations to puker you can make to output smaller files. mostly it's just grouping, removing inline styles and clip-paths, and migrating those to css classes.
dr|z3d switching from rgb[a] to #hex also helps, losing [stroke-]opacity values and encoding those into the hex values instead.
zzz sure but I have to keep rrd4j optimizations in rrd4j code and svg optimizations in svg code to maintain the svg code as a general-purpose maintainable lib and put it up on github with a straight face
dr|z3d downsampling in rrd4j also probably helps for longer timeframes.
zzz already did the former
dr|z3d "with a straight face" haha
zzz whats the encoding for 4 byte hex, is it argb or rgba?
dr|z3d latter.
dr|z3d black at 50 opacity = #0008 for example.
zzz thx, that's worth doing
zzz but there's no easy way in a general-purpose lib to gather common styles, define them in css at the front, and reference them later, that's misery
orignal another question
orignal if people start torrenting seriosly would postman be able to handle this
dr|z3d sure he would.
orignal people from EU are seriously interested in it
dr|z3d postman runs fat stacks.
orignal thier only concern that lack of shares there
orignal can his tracker handle 10x more?
dr|z3d probably. if it starts to creak under the load, he'll upgrade it.
orignal say most popular from rutracker
dr|z3d it's already multi-homed, so there's plenty of slack.
orignal people from EU say that copyrigister send treating letters just for using torrent
orignal doesn't matter what you download
orignal even ubuntu iso
dr|z3d copyright trolls.
orignal so torrenting in EU countries seems very prospective for I2P
orignal especailly with today's speed that's not too bad
orignal ofc I'm talking to Russian speaking people
dr|z3d well, that's the thing with bittorrent, the more people using it, the faster it gets.
orignal people a German sheeple would say "it's illegal"
orignal few mbs per second for a popuular file is enought for everybody
dr|z3d what about uTP. didn't zzz mention he was waiting for some sort of code review / proposal from you?
orignal yes about Datagarm2
orignal but I'm talking about what I2P can offer now
dr|z3d sooner we get that happening, the sooner bittorrent over i2p will look even more attractive, no?
zzz orignal, if postman can't handle announce load he can easily increase INTERVAL. Web load is another story.
orignal I'm just asking in genral
dr|z3d knowing postman, his response to more announces would be "bring it" :)
orignal if postman can be as big as rutracker
zzz UDP announces might help, might not, but would have to do some custom i2ptunnel to support it. Much easier in zzzot
zzz UDP announces != uTP. Two different things
orignal yes, torrents over I2P is the future of torrenting in my opinion
orignal datagrams traffic might be faster
zzz a little less bandwidth maybe, and definitely less RAM
orignal looking at modern trends
dr|z3d as for web, 10* current usage isn't a huge stretch, given average tracked usage is around 50-200 reqs/hour.
zzz hard to think of bittorrent as "modern" or "trending up", but what do I know...
orignal say I have 1.5Gbs and agree tp share my shole NAS
orignal *share
orignal torrenting over I2P because copurighsters
orignal I would proplaly have to implement multiple I2CP instances
orignal my point is people still like torrenting abut afraid to use
zzz postman really needs an upload API to make seeding lots of stuff easier
orignal for exaple where else you can obtain windows11 installable on a PC with BIOS?
dr|z3d from ms.
dr|z3d they provide freely downloadable images.
orignal dude you can't install it even on PC without TPM )))
orignal but I'm talking about BIOS not UEFI
orignal see the difference?
orignal and yes I was able to install win11 on core duo
orignal 2010 laptop with bios
dr|z3d yeah, sure, I hear you. there are probably iso customizers out there that do the same thing, if you *really* want to install windows11 on an older system.
orignal I download one from torrents. that's all ))
dr|z3d if you're running on an older system, however, you're better served with windows 10 (for now).
orignal my point is
orignal thgat you can find many things on torrent
orignal IF you live in right country
dr|z3d I know what you're saying. i2p torrents provide a lot of "value" :)
orignal and use right serach engine(yandex in Russian)
zzz snark's been around for 20 years, orignal tries it for the first time this week and gets excited? )))
dr|z3d for some definition of value that probably doesn't excite everyone in quite the same way.
orignal zzz I tried snark first time when you came with snark-standalone
orignal but it was slow
orignal the reason I'm back to it is speed
orignal since we have servere speed improvemnt for streams
orignal time to do it for I2CP
zzz we spent about 5 years working on streaming, that's the main reason, yes
orignal aslo I use Robert before
orignal but everything was slow vs. clearnet
orignal but it's not the case anymore
zzz still is. clearnet a lot faster than 20 years ago also
orignal that's why
dr|z3d when you can download a gigabyte or 2 of data in an hour or so, low vs fast becomes less of an issue.
dr|z3d *slow
dr|z3d when slow = come back in 3 days, then issue.
orignal that was 10 years ago
orignal I downloaded few gigs file more than a day
orignal that's exatly my point
zzz orignal, I lost track of your I2CP investigations. Did you find any bugs with Message Status, or are you only finding ways to make I2CP faster?
zzz dr|z3d, changed to alpha hex output as you suggested. Note that you still have some "fill:rgb(); fill-opacity:xx" output in your <rect>s
dr|z3d yeah, you're right, zzz, single elements, might tweak those later.
dr|z3d stroke/stroke-opacity combos in css have been fixed.
dr|z3d those rects correspond to the leading color squares on the legend.
orignal no I don't see any bugs
orignal it seems I handle message infficeintly
orignal btw why does it contain full dest in eevery message>?
zzz orignal, that's the original jrandom I2CP design, everything is destinations, not hashes
zzz nice to hear you're not finding any bugs ))
orignal my point is
orignal why can't we add some numeric id
orignal that gurantees that same id geos to same destination
orignal using say streamid
orignal to make things faster
orignal well I found few buys in my code
orignal like race conditions
zzz sure, it's possible, but messy. would you cache IDs forever? would they expire?
zzz I doubt full dests slows things down much
orignal you put streamid on snark sizde and that's it
orignal in my code
zzz yeah but on router side you have to manage the id cache
orignal I have to calculate sha256 the lookup leaseset in local table
orignal that lookup rachet session
orignal and it's for each fucking message
orignal yes, id->session
orignal say expires in 30 seconds of incativity
zzz if parsing the destinations is slowing you down, you could do a router-side cache deststring->hash or deststring->session, we don't need to change the I2CP protocol
orignal if not found start from dest
orignal 32 bytes is slow hash
orignal you know what I'm doing
zzz sure
orignal I use signgin key from dest as lookup key
zzz just do a LRU cache
orignal in this case I don't need to calculate sha256 for each message
orignal what is LRU?
zzz least recently used
zzz fixed size, oldest ones get removed
zzz much easier than doing expirations
zzz we use them all over the place
cumlord 100% on postman needing an upload api, it is a major bottleneck
orignal but what you do with latest?
zzz in case lost:
zzz any new entry goes at the front of the list, and the oldest one gets dropped off the end. Any re-accessed entry moves to the front of the list.
orignal yes, but you always have latesrt one
orignal that might last forever
orignal if you don't cleanup by timeout
zzz correct. it's simple, but does not track times or have any timeout/expiration function.
zzz we keep our LRU caches relatively small, usually between 32-512 entries, depending on application and available memory
zzz I count about 30 different LRU caches in our code, all over
orignal what do you use for key? ident hash?
zzz I'm speaking generally. We don't have a I2CP destination cache specifically, we usually use full dest internally
zzz but we have a general destination cache to prevent object proliferation, we use signing key -> full dest
zzz synchronized(_cache) {
zzz rv = _cache.get(sk);
zzz if (rv != null && rv.getPublicKey().equals(pk) && rv.getCertificate().equals(c) &&
zzz DataHelper.eq(rv.getPadding(), padding)) {
zzz return rv;
orignal I'm asking aboyt I2CP
zzz and the desthash is cached in the dest, so it won't be recacluated if found in the dest cache
orignal seems it's only place that has such weird situation
zzz right
orignal wait. you get new packet
orignal how do you know if it's cached one?
orignal do you compare all 391 bytes?
zzz we use the dest cache anywhere we have to go from destination byte array to destination object
orignal what does it mean practically?
zzz yes, we read all 391 bytes, get the signing key, lookup the dest object in the dest cache, compare the enc key, padding, cert, and if it all matches, throw away the byte array and use the cached object
orignal but why so much?
zzz practically, it prevents java object proliferation, we have the same object everywhere in the JVM for the same destination, rather than a zillion 500-byte objects that are all the same
orignal why can't you just compare 32 bytes signing key?
zzz just a double check of the whole thing to make sure
zzz don't want people spoofing things
zzz and also practically, it prevents re-hashing the destination on every packet, since the hash is cached in the cached destination
orignal yes I undesstand
zzz so we check the destcache for every I2CP and I2NP message we read that has a destination in it
orignal but it means you do this comprison for every signle packet
zzz correct
orignal inefficient in my opinion
zzz true, but it greatly reduces java memory usage. I don't know how C++ objects work, if you have a zillion destination objects on your heap or not
orignal we use memory pools ))
dr|z3d zzz: any idea what/why invalid b32s (http client)? e.g. this one I'm seeing: ccppethemljn3utvklhyis4oja5l2cp4wzd7vqoeqvvd6yqriva.b32.i2p
dr|z3d I'm tempted to blanket block them in the http server tunnel.
snex What makes it invalid?
dr|z3d more characters than a standard b32 should contain.
dr|z3d or maybe 1 less than required. either way, wrong length.
dr|z3d > more characters than a standard b32 should contain.
dr|z3d > or maybe 1 less than required. either way, wrong length.
zzz where are you seeing them?
dr|z3d via your newly minted filter patch
dr|z3d Invalid access list entry "ccppethemljn3utvklhyis4oja5l2cp4wzd7vqoeqvvd6yqriva.b32.i2p" in .../blocklist.txt
dr|z3d net.i2p.i2ptunnel.access.InvalidDefinitionException: Invalid b32 ccppethemljn3utvklhyis4oja5l2cp4wzd7vqoeqvvd6yqriva.b32.i2p
dr|z3d at net.i2p.i2ptunnel.access.FilterDefinitionElement.fromBase32(FilterDefinitionElement.java:37)
dr|z3d at net.i2p.i2ptunnel.access.FileFilterDefinitionElement.update(FileFilterDefinitionElement.java:62)
dr|z3d at net.i2p.i2ptunnel.access.AccessFilter.reload(AccessFilter.java:120)
dr|z3d at net.i2p.i2ptunnel.access.AccessFilter.<init>(AccessFilter.java:79)
zzz well, a hash is always 32 bytes, so a b32 is always 52 chars ending in a or q.
zzz if it's short, there's a bug in base32 encode. If it happens one time in 32, or one time in 256, perhaps it's not dealing with a leading 0
dr|z3d leading 0 theory sounds plausible.
dr|z3d it's the second time I've seen invalid b32s in the last couple of weeks.
zzz haven't seen anything like that here, looked in my block file, don't see any, nor in the logs
dr|z3d before that, I don't think I've seen anything.
StormyCloud Hey boo how did your translation session go
StormyCloud mt but #YOLO
dr|z3d good thanks, StormyCloud. 100% all over the shop.
dr|z3d if you're running a recent + dev build, 127.0.0.1:7657/debug?d=6
dr|z3d we also now have a full hindi translation. bring on India.