dr|z3d
ok, latest + dev build up, various fixes / enhancements for i2psnark, please test robustly and report any issues.
dr|z3d
the copy-magnet-to-clipboard function should be now more consistent.
dr|z3d
uop23ip, mesh: new graphs.js, should fix both your issues.
dr|z3d
ok, more updates to graphs.
dr|z3d
lazy loading for graphs outside the viewport, with a staggered load, async loading so the ui remains accessible while graphs are refreshing, and throttling of refresh if it takes longer than your configured interval to update.
dr|z3d
and infinite refresh shouldn't happen anymore.
uop23ip
update fixed it. thanks dr|z3d
uop23ip
i tried to find a graph for udp/tcp connection at the moment. The 2 from stats (Transport ntcp/udp InboundConn) only shows 1 or 0, is this correct behaviour?
T3s|4
dr|z3d: AFAICT all is fine on the latest nine; graphs look great, snark magnets are working correctly :D
dr|z3d
thanks for the feedback, uop23ip and T3s|4!
dr|z3d
uop23ip: re graph stats, dunno.
dr|z3d
new + dev build being built with functional in/out active tunnel count / hops indicators in the main table footer.
dr|z3d
if you're in the mood for testing, T3s|4, /configadvanced is new, shiny if you're in console adv. mode.
dr|z3d
you can add fake keys to test add/delete, a.foo etc, so they appear at the top.
dr|z3d
delete will remove the key from the UI, but you'll still need to save to persist the change. <return> and <escape> work.
dr|z3d
<return> and escape also work for the snark confirmation dialogs.
dr|z3d
Blinded message
T3s|4
dr|z3d: I took out the language key with 'pencil eraser' if that's delete. Without saving, I tried return then esc. Neither worked, and the key is gone, even post re-start
dr|z3d
be sure you hard refresh on that page.
dr|z3d
wprks for me.
dr|z3d
and obviously the window needs focus, but you know that :)
dr|z3d
just removing the key with the eraser won't do anything other than remove it from the UI, so you must have done something else.
T3s|4
Nope; this time I deleted router share %, then return, then escape, then hard refresh; and the key remains gone
T3s|4
no saving
dr|z3d
right.
dr|z3d
that's what I told you.
dr|z3d
*laughs*
dr|z3d
if you hit <return> then you're saving the updates.
dr|z3d
it's the same as hitting the save button.
dr|z3d
if you hit escape having deleted a key but before a save, then it will revert it in the UI.
dr|z3d
so hitting return and then escape is epic fail.
dr|z3d
*** chuckles. ***
dr|z3d
in crayons, ESCAPE KEY == CANCEL, RETURN KEY = SAVE. CHOOSE 1.
T3s|4
ah, I did not get that from your message at 12:28, particularly your second sentence
dr|z3d
I should have said escape and return are stand ins for cancel and save. my bad :)
T3s|4
np, should be able to recreate the keys from my other laptop
dr|z3d
neither key is important enough to worry about.
dr|z3d
> /confg for share, /configui for lang.
dr|z3d
creating arbitrary keys works fine for test. eg. a.foo values are optional.
dr|z3d
it should also tell you if you enter a duplicate key.
dr|z3d
and of course you also have a filter that will filter based on keys or values in realtime if you want to zone in.
zzz
back from the insanity
zzz
however i2p is its own type of insanity
zzz
speaking of, a tip for dr|z3d
dr|z3d
here we go...
dr|z3d
:)
zzz
your NetDbRenderer.java line 155, you're doing a netdb lookup for no reason? you aren't using the result
zzz
anyway, if anybody needs anything from me, now is a good time
dr|z3d
the lookup is for the requested RI, buy maybe I don't need to lookup after a remote lookup? dunno. if that's your definition of insanity, I'm guilty :)
hk
zzz: i2p is insanity indeed, but a good kind of insanity. I know the bittorrent spec on i2p says that UDP announces/requests are not supported, but is there any utility in them if they were implemented or would it be a moot pursuit?
zzz
well you should only do a lookup if you want the result ))
zzz
it looks like a bad merge or unfinished code in progress?
dr|z3d
if you're looking at NetDbRenderer, line 779 onwards could do with your help.
orignal
zzz, back to my question
orignal
I'm asking because it was the vector of last attack
dr|z3d
hk: zzz's got UDP torrenting in his sights.
hk
ooo gotcha
orignal
about data block with SYN and LeaseSet in ECIES
hk
good to know
zzz
well that code from 144-155 is still a little shaky drz
dr|z3d
ok, zzz, thanks, I'll review it and see if I can make it zzz-friendly.
zzz
lookup locally - if null, lookup remotely and hang --- then lookup locally and throw away the result... then ri is still null and you fail
zzz
orignal, I did skim through the scrollback but please ask the whole question again so I'm sure I understand
dr|z3d
not sure where we're throwing away the result, what about this? if (ri != null) {renderRouterInfo(buf, ri, false, true);}
orignal
the question is
zzz
drz perpaps you meant ri = netdb.lookupLocally() ??? you just have netdb.lookupLocally() with no assignment of the result of the call
orignal
1. is there a requeirement and LS block must be before data block with SYN packet for a new stream?
orignal
2. if you receive a SYN packet and don't have a LS for did you do?
dr|z3d
zzz, ah. yeah. :)
orignal
zzz, if so you also vumerable to that attack
orignal
what they did they kept opening new incoming streams without LS and force to lookup remoretly for each
zzz
please briefly explain the attack? again I saw some stuff in the scrollback, but what's your understanding as of now
zzz
ok
orignal
every time you do remote lookup of LS
orignal
you encrypt it to a floodfill with x25519
orignal
and it takes all your CPU quickly
zzz
thanks orignal, I'll do some research and come back with some answers in a while
orignal
what I do now
orignal
if I received a new stream and don't have an LS I close it
orignal
assuming that LS block must come first
orignal
that might not be true
orignal
that's my question
zzz
ok
zzz
is each SYN from the same destination or each one is different?
orignal
every SYN was from different
zzz
ok. I understand the questions, I'll go do some research
zzz
but you know one of the answers will be 'everything needs limits' )))))
orignal
that's what I did
orignal
however it's not an answer
orignal
becuase even if you had this limit to incoming streams
orignal
legitimate users couldn't connect
zzz
right.
zzz
should have answers later today
zzz
hk, re: udp announces - not only is there utility, but there is a plan and proposals, the effort is stalled but I'm about to un-stall it
hk
awesome :D
zzz
the plan is first: datagram 2 proposal 163; then the bittorrent part which is proposal 160
hk
hm hm
zzz
163 is almost ready for review; 160 needs a big rewrite before it's ready
hk
nice
zzz
the work is a couple years old and I made some good decisions and then some bad ones that I need to undo
zzz
I will be calling for a review of prop. 163 Real Soon Now (don't believe me)
hk
hahah, no problem. sounds like healthy development to me
hk
with anything big, rewrites seem inevitable
zzz
nobody _needs_ UDP announces so it keeps falling to the bottom of the list. We try to focus our work on things that will have immediate users/consumers but this one doesn't
zzz
even if the two props are implemented, then it would fall on clients/trackers to get implemented there, so that's stage 3, don't hold breath
hk
understood, I was just curious to see where it was on the totem pole. Will read those proposals you mentioned though.
hk
re: falling on clients/trackers, makes sense
zzz
hk and eyedeekay, how's the go-i2p work? if you're really guns blazing I'd expect 100x more questions. Let the community participate and help, and others can learn with you
hk
oh yeah right now it's all about fixing the router info generation
zzz
sure sometimes RTFM is best but others we can save you a day of research in 10 seconds
hk
we're having difficulty right now getting the right bytes set in place, serializing and deserializing tests are failing for router info
hk
re: RTFM, haha yeah that's kind of my thought process, I presume to do my own research but if I really hit a brick wall then I ask questions
hk
We have a draft PR in the works right now, i'll link it to you
hk
eyedeekay is tidying it up now, I deferred it to him to fix up the mess ))
zzz
ok, baby steps
hk
yep yep, it's a bit of a hassle but we are making progress, once that is done
zzz
don't ever spend time looking for java code that does X, that's always a 10 second answer
hk
we'll be able to generate router info
hk
hm hm
hk
understood, I did get inspiration to implement sntp from the java implementation however, was able to mimic it; except implementing sntp, that was just a library I imported
hk
sorry, the ntp client*
zzz
for the last two years eyedeekay has been stuck at the NTCP2 handshake and you're still there, but the last few months has been a side quest on a big refactor which is almost complete? and you're almost in a place to return to NTCP2? is that correct?
hk
If I understand correfctly, the big refactor you mention must be noise? in that case, I believe eyedeekay would concur that the noise subsystem is considered complete (I dont know if feature complete however, but it functions), and we've set up the foundations for NTCP2. But in order to do that we have to be able to test it, and right now we don't want to harm the network by testing in
hk
production so I've been tasked to create a testnet
hk
right now that is in the works
hk
however as of now, it does not funciton unfortunately, the router infos are syncing to the netDb by force
hk
(placed in rX, rY, rZ and so on)
hk
yet they do not find each other
zzz
well
hk
so it's a bit puzzling
orignal
you need to make them floodfiils
hk
oh
zzz
sounds like there's a plan but more focus on goals might help. SNTP is fun but a pointless side quest at this point
zzz
NTCP2 handshake should probably be done first as a unit test.
hk
zzz: agreed completely, I was new and was eager to "just write code" at the time, and was still ingesting the code but understood ntp enough to do that, but yeah it was a side quest
zzz
I wrote NTCP2 4 different times before it went onto the network
hk
orignal: ill see towards making them floodfills and see if they work, thanks
hk
wow I see
hk
got it, unit test first
zzz
hk I can't review the substance of your MR #23 but that looks exactly like the type of work that is absolutely necessary and this is the right time to do it
hk
awesome awesome alright
zzz
if you guys are doing unit tests for everything then you can toil away and should be able to rapidly iterate and implement
dr|z3d
aside: you remember me mentioning self-invoking js scripts as a way to not pollute your global namespace, zzz?
zzz
yup
dr|z3d
there an even easier way, if that's all you want.
hk
zzz: yup that's the modus operandi now, just plementing and verifying the process and it has helped us make sure we dont rabbithole ourselves into things that dont work and end up being a headache later on. speaking of which, now that you mention it, crypto could use some unit tests as well
dr|z3d
not that wrapping scripts with ( ... )(); is particularly hard.
zzz
noted. After that burst of revelations and fixes a while back, I think I have things internalized, but I don't think I have any js stuff on my todo list at all right now
dr|z3d
<script type=module ...> is the even easier method.
dr|z3d
easier in the sense it's just a search and replace.
zzz
it was like problem -> revelation -> solution -> refactor -> done for now. Always happy to get smarter, but don't have any place to apply it right now ))
dr|z3d
if you missed the missive, it's js month, at least in + land.
zzz
don't live there but I do visit occastionally
hk
haha
dr|z3d
we also briefly discussed a while back around the time you submitted the /configadvanced mods having something similar for adv. mode.
dr|z3d
a few months later, and tada. it's done. inline editing for adv. mode
dr|z3d
tabulated configs, per line edits.
zzz
nice
dr|z3d
key/value separation.
dr|z3d
just don't hit enter after you've edited a key and then escape and wonder where your key went :)
zzz
won't look at soon, but good to know, If/when I do return to the topic
zzz
hk, so you're doing low-level data structures and primitives and tests, and eyedeekay is over on planning and refactoring, and transports and netdb and noise I guess?
hk
I am the de facto unit test guy at this point indeed, and dabbling in the low-level structures that I am understanding more as time goes on. eyedeekay is 100% doing the planning and guiding where efforts should go. The NTCP2 transport is in our crosshairs and what we're doing now is to the play the ball in the court (whatever we're doing) into the hoop (NTCP2)
zzz
perfect, that sounds like an excellent plan and split of responsibilities. Should be perfect for you because it allows you to rapidly code/test/iterate without needing to know everything about everything
hk
thanks, yeah it was a very natural move, doing these tests taught me a lot of the code. I wont say I know it like the back of my hand, but I can draw that hand now
hk
the next steps after ntcp2
hk
I would personally predict would have to do with netdb
zzz
I assume your unit tests are testing against yourself, where you generate something, serialize it, then deserialize/parse and see if you're back where you started?
hk
zzz: im curious to hear from you, what would be the best step after ntcp2?
hk
zzz: yup, that's exactly it
zzz
great
hk
or with crypto, encrypting and decrypting and verifying that the original info matches etc
hk
the usual stuff, with obfuscation that's what was done; just seeing if it matches the original info :). I hear people dont like doing unit tests, but I find them satisfying
zzz
don't ask the 'next step' question at all, because the current step is where eyedeekay has been for 2+ years, and you may have a long way to go. just stay focused
hk
understood, thank you :D
zzz
that's awesome because I am not a unit test guy at all.
hk
hahahah
zzz
but I have always had the luxury of a working router, so when things break it's super-obvious
zzz
it's a discipline I respect but don't have
hk
very true, ideally we want to get to that point. but right now things had been opaque, that's why I added debugging info
hk
right right
hk
whats why I added debugging messages*
hk
a bulk of the code I contibuted so far actually has just been pure debugging messages, nothing special
zzz
I assume that when available, after your tests work then you also test against java or i2pd-generated data if you can? I know for RIs that's easy as they're stored in files
hk
yup
hk
thats the plan
hk
actually, I know 100% that readRouterInfo works at the very least
hk
just one part but the reading of information appears correct more or less, I was not involved in that; those were past contributors
zzz
yeah of course every router comes with a corpus of thousands of RIs you can test against
hk
true true
zzz
I do have some leaseset files back from our LS2 development days if you need them.
hk
'd love to see em, I think they would be valuable
hk
I'd*
zzz
for other things like I2NP messages, a little hack of java router or unit test code may be sufficient to write some things out to disk for later testing
zzz
but that's for after you're done with your tests against yourself
hk
hm ok ok
zzz
here's my leaseset files: stats.i2p/docs grab the online-* and offline-* files, they should be correct but can't promise, this was from back in the middle of development
zzz
it's a grab bag from January 2019 believe it or not
hk
nice nice thanks :D
zzz
are you guys working on leasesets yet?
hk
hmm I dont believe so
hk
not yet
hk
wait uh
hk
we have
hk
im sorry I was wrong, there has been previous work done by Hayden Parker, thulium and others that have
hk
primitives for leasesets
zzz
yeah, strictly speaking it's not in the critical path to get NTCP2 working at all, however it's all pretty similar to RIs so it may be worth working on now anyway
orignal
LeaseSet2?
hk
primitives/data structures*, but otherwise getting them to "work" not yet
orignal
or LeaseSet1?
zzz
I believe the hkparker work may be pre-2019, pre-LS2? maybe LS1 only?
orignal
that's what I sspect
hk
orignal: lease set 1
orignal
LS2 is completely different
hk
it's lease set 1
hk
yeah I just confirmed
orignal
zzz, while you are here. maybe it's time to discontinue LS1 completely?
zzz
yeah so adding tests and LS2 support may be pretty easy for you while your head is in it, even if not really needed now
zzz
orignal, state your case why
hk
zzz: alright gotcha
orignal
to not maintain this code
orignal
and the final goal is get rid of ElGamal
zzz
if that's the only reason that's not much of one, imho. My philosophy over here is to maintain backward compatibility as long as possible
orignal
LS1/ElGmala is too risky and possible attack vector
zzz
if you want to make a case, please analyze what % of leases are LS1, what router versions would be required, what % of routers those are
orignal
even the % is zero it's even worse
orignal
because you still have th code processing it
zzz
I'm not even sure if we always send LS2 now. Java may still make LS1 now if it's ElG only in some cases? not sure, would have to research
orignal
and an adversary can find a hole
orignal
why do you even need to send Elg?
zzz
we'd have to have a deprecation schedule and a plan, can't just flip a switch today on it, it's not even marked as deprecated in the docs right now
zzz
ppl may have a dest configured as ElG only. I don't know
orignal
I don't say today
zzz
sure
orignal
but it modern network always being under verious attacks ElGamal is a huge risk
zzz
point is it would have to be researched and done carefully, and I don't have the answers
orignal
because an advesary can put ElGmal dest down easily.
zzz
maybe. so first step, please gather some stats on LS1, how often, what %, both published and unpublished, what version, what's the impact of discontinuation
orignal
will do
orignal
and LS1 is ElGmal-only
zzz
right. thanks, decisions are easier when we have data ))
orignal
i2pd server use ECIES only by defult
dr|z3d
we're all mostly on the same page for configs, http proxy is the only thing that really needs both.
zzz
yeah it's complicated because we have old routers, old configs on upgraded routers, most things we've auto-migrated the configs but some we haven't? it would take some effort to figure out
zzz
of course LS2 supports ElG+25519 and ElG only so removing LS1 doesn't really have much impact on mitigating any theoretical attacks on ElG
orignal
no, my proposal is to remove both ElGmala and LS1
orignal
LS1 first because it can't work withou ElGamal
orignal
so I want to exalude ElGamal from LS2 too
zzz
that would take a couple years, I think ElG+25519 is still the default for us for some types of tunnels.
zzz
I think notbob may collect some data on encryption types for servers, that may help the analysis
zzz
ooh looks like hk and eyedeekay just got a new person to help! github.com/go-i2p/go-i2p/pull/24
orignal
ElG+25519 is fine, Elg only is not
orignal
let them make NTCP2 work first )))
zzz
sure, we can head that direction, just don't know how quickly. we haven't done any long-term planning in a while
zzz
maybe we should just stop work for 5 years so go-i2p can catch up? )))
orignal
NTCP2 was not chamged since 2018
orignal
we can stop working but adversaries wouldn't
hk
zzz: haha yeah I saw that, exciting times
hk
5 years is quite the timeline
hk
hopefully it wont take that long
hk
))
zzz
yeah. but if your main concern is resource exhaustion attacks, of course that must be addressed at a high level. Removing support for the slowest thing is a mitigation but not a solution, there's always some other thing
orignal
ElGamal is not just slowest thing
orignal
it's too CPU greedy
hk
orignal: interesting
orignal
and you know how you can put any ElGmala address down easily
orignal
that's why i2pd has ECIES only for servers by default
orignal
my main concern is not resuorces
zzz
perhaps the ElG issue could be part of our plans for migration to PQ or hybrid crypto (and PQ might be slower than ElG, I have no idea)
orignal
just some cases that are not covered in LS1 processign for example
zzz
whats your main concern again?
orignal
LS1 was implemented in the days when nobody tried to attack the netwrok seriously
orignal
and this code just old
orignal
nobody pays attantion to it
orignal
Blinded message
orignal
while LS2 is used all the time now and all potential issues was discovered and addresses
zzz
sure, but I don't know if old stuff is more vulnerable than new stuff. You're right that I don't spend a lot of time thinking of possible ElG or LS1 attacks
orignal
ElGamal issue it not just ElGmal itself but the nature of than protocol
zzz
yup
orignal
remeber what you usually do for ElGmala
orignal
you try to calculate shared secret then derypt block and after that you see tha chekcsum mistmatches
orignal
while an advesary can send any random data
orignal
e.g. it costs nothing
orignal
for them
zzz
agreed it's worth putting on the list, but no idea what the priority or timeline should be.
zzz
I think I did a post on how SSU2 marked the end of our 8-year-long crypto upgrade program that took an enormous amount of planning, proposals, coding, testing. We haven't started a new plan at all, you're right that it may be time to start
zzz
that's why hk and eyedeekay need to hurry and catch up soon!
orignal
start what?
orignal
PQ?
zzz
a new crypto migration plan which includes deprecating ElG and supporting PQ or hybrid
zzz
and maybe fixing other things now that we're smarter than we were 10 years ago
orignal
agree
hk
zzz: we're working on it. honestly moving fast and breaking things then fixing them fast is not a bad way if it works. do you think NTCP2 by EOY is too fast though?
hk
well now that I think about it, maybe there is no such thing as too fast ))
zzz
I don't have any insight for you, I don't know Go and am just an outside observer. You're in the middle of a 2-year-old restart of a 10-year-old stalled project
zzz
it will take how long it takes, but have no illusions, you are still at the beginning
hk
fair enough :)
hk
yeah my goals are too revive it from being vapoware, give it programmatic CPR
hk
to*
hk
vaporware*
zzz
the more organized you are and the more you _look_ organized, the more help you will get
hk
right.... thats how I got into it, the stars aligned just right for it to happen though. I was learning go and was already interested in i2p and I saw this project being revived by eyedeekay and decided I could feasibly help and have a symbiotic gain from it as I learn go
zzz
I have no idea how to measure your speed of development the last month and how it compares to the last year or last 10.
hk
any I digress
hk
yup right right
hk
theres not much to gauge from yet
zzz
but objectively, say over the last 2 years, I'd say the progress is probably 10x to 100x slower than necessary to ever 'catch up', not that that should be the goal
hk
honestly that sounds very motivating to work harder at it
zzz
not only are you at the beginning, you're also on the easy part
hk
oh man...
hk
))
hk
where does the slope get steeper?
zzz
not a criticism of yours or eyedeekay;s skills; neither of you have been coding for 40 years and you're not full time on this project
zzz
when it starts to kindof work
hk
true
hk
ahh
zzz
what happens when something breaks talking to another router but you don't control that router or have logs for that side or even know if it's java or i2pd or what version
hk
damn so when it's in prod, i see
hk
that's what I hope a comprehensive test network would solve, we can implement different router configs and router versions and whatnot and see how they interact AND have the logs
zzz
test nets have their place but not sure how helpful it is for you at this stage, it's too complex and too noisy
zzz
unit tests and simple local connections (two routers) are far more useful.
hk
hm I see
hk
yeah but it's going to be necessary to test out sam unless we have some sort of mock sam connector
zzz
you don't need a 'test net' to have router A talk to router B on your machine.
hk
mock sam connection*
hk
hm
zzz
SAM is used to create clients. Step 1 is for your router to talk to routers.
zzz
Clients is about step 99.
hk
ahaha right
hk
fair fair
zzz
have you looked at str4d's ire rust router?
hk
hmm I have not, I saw it on his github though
zzz
take a look at what it does and doesn't do. He did it pre-LS2, pre-x25519, pre-SSU2.
hk
nice alright will do
zzz
This will really depress you, but he didn't know Rust, he did it as a learning experience. He did it from scratch in about 6 months iirc, as a side project (((
zzz
he's a brilliant and incredibly fast coder, and he knew i2p backward and forward, so not apples/apples. But it used to participate in the network just fine, until he stopped work on it and now it's too far behind
hk
That's not depressing, that's actaully encouraging to hear. He is very obviously a talented programmer given his experience, and even if it was done by scratch; it was aided by documentation and community resources I imagine
zzz
he was in the community for years at that point, yes
hk
it's good work and we can learn from it, it's good
zzz
just an example of what's possible with knowledge and focus and time and and and...
hk
yeah it's just persistence really
hk
personally with me, focus is not at the best but it may improve in the future. but I realize with the little experience I have, persistence and hammering down on something and not "giving up and doing something else" makes a tremendous difference
zzz
btw you guys are the sole 'testers' of our specs right now so be sure to feed doc fixes or clarifications to eyedeekay or me, they aren't perfect and you're the only ones that will find errors
hk
I think there's healthy disengagement, like you do a different project or something, that's fine. but man, if you just... go back to it tomorrow, or the next 8 hours or the next hour; it makes a difference
hk
very interesting
zzz
ok. stick with it
hk
will do for sure
hk
thanks zzz
zzz
I gotta run because I have things to do and promised some answers for i2pd's questions too.
zzz
later
hk
take care :)
orignal
zzz you can compare his speed with mine 10 years ago ))
hk
maybe we could get a prediction from that ))
dr|z3d
zzz: snark tunnels, we don't scale tunnels to clients independently for in/out?
dr|z3d
if so, could be something to look into.. no point allocating inbound tunnels relative to outbound client connections, or vice versa.
zzz
ok but I asked if anybody needs help, not if anybody had any wild ideas to add to my todo list )))
dr|z3d
*** laughs ***
dr|z3d
did you take a look at the partial partial match for leasesets in my NetDbRenderer.java ? I got stuck, so left it for now.
hk
hey dr|z3d, I was on #i2p and granDolf mentioned that he had a recommendation for i2psnark so I referred him here
dr|z3d
thanks, hk, maybe he'll find his way here.
hk
dr|z3d: yeah yeah he just joined, np
dr|z3d
he'll want to register his nick if he comes here, maybe you can help him with that.
dr|z3d
welcome, granDolf
dr|z3d
I must have been blind, hk, never saw him alight here :)
hk
haha no problem man
granDolf
Oh great, I was going to come back later. Thanks for the voice
granDolf
I have an proposal for i2psnark
dr|z3d
sure, let's hear it, both zzz and I are here :)
granDolf
basically I would like torrent files to act like websites in apache, with all torrents in an 'torrents-available' folder but then there is a 'torrents-enabled' folder that i can use to only have the 20 torrents that i want to share in that session
dr|z3d
sounds like this is more a UI thing, fundamentally?
granDolf
they would be separate from the content, those folders are just for the '.torrent' file.
granDolf
Yes is UI and is a functional thing too.
granDolf
Because the available torrents are not wiped from the system completely
dr|z3d
let me explain.. you have a bunch of torrents you want to share on a per session basis, and you only want to see those, in essence?
granDolf
The way it is now if I remove the torrent files, then i2psnark completely forgets about them.
dr|z3d
sure, they're just stoppd.
granDolf
Then when I add the torrent file back it scans the torrent all over again.
granDolf
Big waste of time, energy etc.
dr|z3d
the reason I'm suggesting UI is that we have something in I2P+ snark that may more or less suit your purpose - torrent display filters.
granDolf
I haven't considered I2P+ it might be a good option. What is meant by filters?
granDolf
Can I have the same torrent in multiple filters?
dr|z3d
if you delete or move a .torrent file, you'll also lose your metadata, which is also sub-optimal.
dr|z3d
a filter is a query parameter that's enabled in the UI via buttons that determine what you want to display in the UI, torrent-wise.
dr|z3d
some torrents will be matched by different filters, sure.
dr|z3d
complete / incomplete, connected, seeding, downloading, active / inactive..
zzz
I'm not a fan of .torrents and data in same dir, but it's Always Been That Way and never bothered me enough to do anything about it
granDolf
can i make make my own filters?
zzz
ditto with separate dirs for complete and incomplete data (which people also ask for occasionally)
dr|z3d
no, filters are presets, but they should cover most if not all of the conditions you expect.
dr|z3d
that said, the inline search is effectively a filter, so you can filter by name.
dr|z3d
if we were going to look at folders and the like, zzz, multiple dests based on content folders would be interesting. the stolen-from-routerinfos folder arrangement for metadata is nasty, also, re folders.
dr|z3d
specify content folder(s) for torrents, each folder, separate dest.
dr|z3d
could work for incomplete downloads, too.
granDolf
That is not easy to search for every torrent. I think it would be easier if I just have the torrent files in a folder, then select All. Copy and Paste them in the "enabled" folder.
granDolf
Are you saying that inside the "enabled" folder, if one has multiple folders, then the torrents in those folders would have different addresses to the tracker then yes, that would be MINDBLOWINGLY GOOD
dr|z3d
the problem with that, as it stands, is that the torrent metadata (file integrity, upload totals etc) is hardcoded to wherever the torrent is created, so move the torrent you lose all that.
dr|z3d
that's what I'm mooting, granDolf :)
dr|z3d
re selections, what *might* be worth considering is an option/modification that permits only torrents displayed in the UI to be stopped/started in bulk.
zzz
yeah of course we've had a lot of feature creep in 20 years, but my generic response is that snark is a medium-feature application, for all the bells+whistles please try Vuze, because snark features rarely rise to the top of our todo lists
granDolf
hang on, if i stop all torrents, and then start a torrent do i send the tracker my history of how much I've uploaded that torrent to others?
dr|z3d
no.
dr|z3d
metadata is for local use only.
dr|z3d
for display in the snark UI.
granDolf
ok cool
granDolf
zzz this is for saving time and energy
dr|z3d
I hope you're _not_ suggesting people try Vuze these days, zzz :)
dr|z3d
itym BiglyBT.
granDolf
if the torrent is in the available folder then we don't wipe away all the history
dr|z3d
that's it.
zzz
not sure that's true drz, announces contain uploaded/downloaded stats, check the bittorrent specs and/or postman details pages
orignal
snark is slooow
dr|z3d
zzz: maybe per dest/session.. not from local metadata which is session/dest persistent.
orignal
at least individaul peers
zzz
oh sorry biglybt
zzz
don't know if it's reset across stops/starts or not
dr|z3d
pretty sure it's per dest.
dr|z3d
and per session, in respect of trackers.
cumlord
that sounds right
granDolf
announces in i2psnark shouldn't send history across stops/starts, that would make it impossible to share torrents in different combinations across stop/starts it basically would nullify being issued a different destination
zzz
granDolf, not saying it's a bad idea, maybe it's even a good idea, that's not the same as saying we'll do it, The separate incomplete/complete dirs have been asked for many times but haven't done it yet either
zzz
I lost count of how many ideas dr|z3d threw at me already today ))
granDolf
:)
dr|z3d
if ideas were chocolate, zzz will be Willy Wonka by now.
dr|z3d
*would
dr|z3d
oh, today? TODAY?
dr|z3d
behave, zzz :P
dr|z3d
if you can't keep track of two or three ideas, time for pipe and slippers :)
granDolf
Well it would be very, very, very, very helpful to me. and i think its not hard to test whether a i2psnark has migrated to this format, so if someone is against migrating maybe they can tick a button that says don't migrate to the new format when/if it arrives.
dr|z3d
I think what zzz is saying, granDolf, is "don't hold your breath" :)
granDolf
Then we can track how many people DONT like the idea
dr|z3d
multiple configured data folders, one dest per each. that's a winner, but I don't think it's happening any time soon :)
granDolf
If everyone ticks the Don't migrate my torrents to available and enabled then you don't do the feature.
dr|z3d
if the button's in the UI, that kind of suggests you've added the feature.
granDolf
Not necessarily, its a voting system. :P
dr|z3d
we don't do telemetry, probably never will, at least not in the console/webapps, asside from limited floodfill stats.
granDolf
Anyway I'm not even saying we need multiple data folders, one folder is fine... I'm saying two folders ONLY for the '.torrent' files. One for 'torrents-available', the other for 'torrents-enabled'.
zzz
thanks for the comments granDolf, we love ideas and feedback, we're doing what we can around here
granDolf
Np thanks zzz. I best dash myself.
granDolf
And thanks dr|zed for that INCREDIBLE idea wrt folders inside a possible 'torrents-enabled' folder that would streamline my idea even more... NO NEED TO ENTER THE FOLDER AND HIT 'SELECT ALL'!!! GENIUS
zzz
if you're looking for ideas, dr|z3d is your guy, come back any time
dr|z3d
:)
granDolf
One more thing...does anyone know Richard Stallman's stance on i2p?
granDolf
I know he likes Tor.
granDolf
But I don't know whether he has ever mentioned i2p
zzz
incoming answers for orignal:
zzz
<orignal> 1. is there a requeirement and LS block must be before data block with SYN packet for a new stream?
zzz
<orignal> assuming that LS block must come first
zzz
<orignal> that might not be true
zzz
- I don't think it is true in theory, but it may be in practice:
zzz
- I can't find anything in the specs that requires a particular order for cloves (but we do put LS before data now)
zzz
- The only thing I found was pictures and info in "this is how it works" pages but they aren't official specs
zzz
and even there they don't say any order is required
zzz
- I can't find anything in the specs that requires the LS be bundled at all with the first SYN...
zzz
- I can't find anything in the specs that requires the LS be bundled at all with the first SYN...
zzz
- some possible scenarios, we don't do any of these, they may not make sense, but they're all legal:
zzz
Blinded message
zzz
Blinded message
zzz
Blinded message
zzz
Blinded message
zzz
- For us, the LS will still be handled before the data is replied to, even if out-of-order, because data is queued to a separate thread
zzz
<orignal> if I received a new stream and don't have an LS I close it
zzz
- If that's working for you I guess it's fine, but you may wish to gather data on how often it happens, maybe it does happen some times?
zzz
<orignal> 2. if you receive a SYN packet and don't have a LS for did you do?
zzz
- We will queue the reply, lookup the LS, and timeout if we don't get it
zzz
- This is the same as for an outgoing SYN, because our layer that bundles the LS doesn't "know" if the data is a SYN or SYN ACK
zzz
Attack defenses we support:
zzz
- We have a limit on number of outstanding lookups which should mitigate a DoS in your attack scenario;
zzz
- We also have configurable limits on number of new conns per minute and hour which should prevent a DoS in your attack scenario;
zzz
- We also track pending lookups so we don't send twice, and have a negative lookup cache, both may help
zzz
in some cases, but not in your scenario where every SYN is from a different dest
zzz
EOT
zzz
ooh that was more than it looked like when I was typing it over here, sorry if too much ))
granDolf
anyway I'll return sometime to find out about where I can confirm what i2psnark sends to the trackers in the 'announce', as I said earlier I hope it doesn't send too much info like the amount of data uploaded to others, that would be TMI, IMO.
granDolf
ttys