I2P dev meeting, August 19, 2003

Quick recap

  • Present:

cohesion, hezekiah, jrand0m, mihi, nop, thecrypto,

Full IRC Log

--- Log opened Tue Aug 19 16:56:12 2003
17:00 -!- logger [logger@anon.iip] has joined #iip-dev
17:00 -!- Topic for #iip-dev: Weekly IIP development meetings, and other
	 conversations among developers are held here.
17:00 [Users #iip-dev]
17:00 [ cohesion] [ leenookx  ] [ mihi] [ shardy_  ] [ UserXClone]
17:00 [ Ehud    ] [ logger    ] [ nop ] [ thecrypto] [ velour    ]
17:00 [ hezekiah] [ lonelynerd] [ Rain] [ UserX    ] [ WinBear   ]
17:00 -!- Irssi: #iip-dev: Total of 15 nicks [0 ops, 0 halfops, 0 voices,
15 normal]
17:00 -!- Irssi: Join to #iip-dev was synced in 7 secs
17:00 < hezekiah> Alright! :)
17:00 < hezekiah> Both loggers are in place. :)
17:01 < thecrypto> yah!
17:03 < hezekiah> Hmmm ...
17:03 < hezekiah> This meeting was supposed to start 3 minutes ago.
17:03 < hezekiah> I wonder what's up.
17:04 < thecrypto> well, whose idle
17:04 < hezekiah> jrand0m's not even online.
17:04 < hezekiah> nop's been idle 15 minutes.
17:05 < nop> hi
17:05 < nop> sorry
17:05 < nop> I'm super busy at work
17:05 < mihi> [22:36] * jrand0m is off to dinner but i'll be back within
	 the half hour for the meeting
17:05 -!- jrand0m [~jrandom@anon.iip] has joined #iip-dev
17:05 < hezekiah> Hi, jrand0m.
17:05 < nop> hi
17:05 < nop> ok, here's the thing
17:05 < nop> I can't be seen on IIP at work right now
17:05 < nop> so I'll check in with yall later
17:05 < nop> got slack about it yesterday
17:05 < nop> so
17:05 < hezekiah> Bye, nop.
17:05 < thecrypto> bye
17:06 < nop> I'll hang in the channel
17:06 < nop> just won't be obvious :)
17:06 < hezekiah> jrand0m? Since you do the most talking these days, is
	 there anything you want on the agenda for this meeting?
17:07 < jrand0m> back
17:08 < jrand0m> ok, the pesto pasta was good.
17:08 < jrand0m> lemmie pull up the agenda-ish stuff
17:09 -!- Lookaround [~chatzilla@anon.iip] has joined #iip-dev
17:09 < jrand0m> x.1) i2cp sdk mods x.2) i2np review x.3) polling http
	 transport x.4) dev status x.5) todo x.6) plan for next two weeks
17:09 < jrand0m> (place x at whatever # in the agenda it fits)
17:10 < thecrypto> you are the agencda
17:10 < hezekiah> jrand0m: I don't have anything to say, and nop can
17:10 < hezekiah> can't talk.
17:10 < jrand0m> lol
17:10 < hezekiah> UserX most likely won't be adding anything (he usually
	 doesn't), so as far as I'm concerned it's all yours. :0
17:10 < hezekiah> :)
17:10 < jrand0m> 'k.  we logging?
17:10 < jrand0m> heh
17:10 < hezekiah> I'm logging everything.
17:10 < jrand0m> cool.  ok.  0.1) welcome.
17:10 < jrand0m> hi.
17:11 < jrand0m> 0.2) mailing list
17:11 < jrand0m> the list is down atm, back asap.  you'll know when it is :)
17:11 < jrand0m> for the meantime, wiki or use iip to convo.
17:11 < jrand0m> 1.1) i2cp sdk mods
17:12 < jrand0m> the SDK has been updated with some bugfixes, plus some new
	 things in the spec have been introduced.
17:12 < jrand0m> I posted to the list yesterday with the info.
17:13 < jrand0m> hezekiah/thecrypto/jeremiah> any questions on what I posted,
	 or thoughts on a plan to implement the changes?  (or other alternatives I
	 haven't considered?)
17:13 < hezekiah> I've been running around like the chicken with my head
	 cut off getting ready for college.
17:13 < jrand0m> word, understood.
17:13 < hezekiah> I had a cursory look at what you wrote, but haven't actually
	 looked at the changes to the spec.
17:13 < jrand0m> we barely have any more of your time left, do we...
17:13 < hezekiah> Not until I get to college.
17:14 < hezekiah> Once I do, then I will probably be unheard from for at
	 least a week while I adjust.
17:14 < jrand0m> and once you get there you'll have a lot of settling in to do
	 (iirc from when i went to school ;)
17:14 < jrand0m> heh word.
17:14 < hezekiah> Then by then, I should be a bit more efficient and have
	 more time so I can code.
17:14 < jrand0m> cool
17:14 < thecrypto> i'm just doing crypto, so the data structures are my real
	 worry, once i have the CTS mode done, i'll go work on that prolly
17:14 < hezekiah> Anyway, that's my guess.
17:14 < jrand0m> awesome thecrypto
17:15 < jrand0m> ok, the good thing is the SDK works perfectly fine (with
	 the bugs mihi found being fixed [yay mihi!]) without the update to the spec.
17:15 -!- arsenic [~none@anon.iip] has joined #iip-dev
17:16 < jrand0m> ok, on to 1.2) i2np review
17:16 < jrand0m> anyone read the doc?
17:16 < jrand0m> ;)
17:16 < hezekiah> Not I, yet.
17:16 < hezekiah> As I said, I'm currently a chicken with its head cut off.
17:17 < hezekiah> BTW jrand0m, it appears you like sending PDF's.
17:17 < jrand0m> can everyone read openoffice .swx?
17:17 < hezekiah> I can.
17:17 < jrand0m> [if so, I'll send swx]
17:17 -!- abesimpson [~k@anon.iip] has joined #iip-dev
17:17 < thecrypto> i can
17:17 < hezekiah> I can't search for text in a PDF with KGhostView.
17:17 < hezekiah> So that really hurts.
17:17 < jrand0m> that sucks hezekiah
17:17 -!- mrflibble [mrflibble@anon.iip] has joined #iip-dev
17:17 < hezekiah> The linux version of Adobe Acrobat isn't very friendly eiter.
17:18 < jrand0m> ok, openoffice format it is instead of pdf.
17:18 < hezekiah> Cool.
17:18 < jrand0m> um, ok.  i2np has a few minor changes to the LeaseSet
	 structure (reflecting the i2cp change posted earlier), but other than that,
	 largely in place.
17:19 < hezekiah> jrand0m: Are all these docs in cathedral's CVS?
17:19 < nop> oh
17:19 < nop> can I interject
17:19 < hezekiah> i.e. copies of the PDF files you've been sending to the
	 list, etc.
17:19 < hezekiah> nop: Go ahead.
17:19 < nop> this is offtopic but important
17:19 -!- ChZEROHag [hag@anon.iip] has joined #iip-dev
17:19 < nop> IIP-dev and the mail are kind of screwy right now
17:19 < hezekiah> I noticed.
17:19 < nop> so bear with us for a bit
17:20 < nop> we're trying to get it up and going
17:20 < nop> but it has spam assassin built in
17:20 < nop> which is the good news
17:20 < nop> :)
17:20 < nop> and a lot of other features
17:20 < jrand0m> any eta nop for the list?
17:20  * ChZEROHag pokes his nose in
17:20 < jrand0m> (i know you're busy, not nagging, just wondering)
17:20 < nop> hopefully by tomorrow
17:20 < jrand0m> cool
17:20 < nop> the mail admin is working on it
17:21  * hezekiah notes that jrand0m _really_ likes the iip-dev list. ;-)
17:21 < nop> haha
17:21 < hezekiah> Go delta407!
17:21 < nop> anyway
17:21 < jrand0m> its best to document decisions publicly hezekiah ;)
17:21 < nop> back to our regularly scheduled meeting
17:21 < jrand0m> heh
17:21 -!- nop is now known as nop_afk
17:21 < hezekiah> jrand0m: So where were we?
17:21 < jrand0m> ok, to your equestion hezekiah> some are, but the latest
	 aren't.  I'll switch to placing in the openoffice format.
17:21 < jrand0m> rather than the pdfs
17:22 < hezekiah> OK.
17:22 < hezekiah> It'd be really cool if all the docs were in CVS.
17:22 < jrand0m> definitely, and they will be
17:22 < hezekiah> Then I can just update, and I know I have the latest edition.
17:22 < jrand0m> (there are the three drafts that aren't so far)
17:22 < hezekiah> (BTW, a little off topic, but is anonymous access to
	 cathedral up yet?)
17:23 < jrand0m> not yet.
17:23 < jrand0m> ok, by friday, I hope to have another draft of I2NP in
	 full form [aka no more ... for the kademlia explanation sections, and sample
	 implementation details]
17:24 < jrand0m> there are no significant changes.  just more filling
	 clarifying things.
17:24 < hezekiah> Sweet.
17:24 < hezekiah> Will there be byte layout for data structures avalible in it?
17:24 < jrand0m> 1.3) I2P Polling HTTP Transport spec.
17:24 < jrand0m> no, byte layouts go in the data structures spec, which
	 should be converted to the standard format instead of html
17:25 < jrand0m> (though I2NP already has all the necessary byte layouts)
17:25 < jrand0m> ((if you read it *cough* ;)
17:25 < hezekiah> Good.
17:25 < hezekiah> lol
17:25 < hezekiah> Sorry about that.
17:25 < hezekiah> As I said, I've been really busy.
17:25 < jrand0m> heh no worry, you're heading off to college shortly, you're
	 supposed to be partying :)
17:25 < hezekiah> Partying?
17:25 < jrand0m> ok, 1.3) I2NP Polling HTTP Transport spec
17:25 < hezekiah> Hmmm ... I guess I'm just odd.
17:25 < jrand0m> heh
17:26 < jrand0m> ok, I tried sending this out earlier, but I'll commit
	 it shortly.  its a quick and dirty transport protocol fitting in with I2NP
	 to allow routers to send data back and forth without direct connections
	 (e.g. firewalls, proxies, etc)
17:27 < jrand0m> I'm *hoping* someone can see how this works and build
	 similar transports (e.g. bidirectional TCP, UDP, direct HTTP, etc)
17:27 -!- mihi [none@anon.iip] has quit [Ping timeout]
17:27 < hezekiah> Hmmm, well I don
17:27 < jrand0m> before putting I2NP out for review, we need to include
	 sample transports so people can see the full picture
17:27 < hezekiah> don't think _I'll_ be building any transports soon. ;-)
17:27 -!- WinBear_ [~WinBear@anon.iip] has joined #iip-dev
17:27 < hezekiah> TCP is working for Java and Python.
17:27 < hezekiah> (At least client-to-router is.)
17:27 < jrand0m> no worry, I'm just putting it out there as a todo for people
	 who want to contribute
17:28 < hezekiah> Right.
17:28 < jrand0m> right, client-router has different requirements than the
	 router-router.
17:28 < jrand0m> ok, anyway, 1.4) dev status
17:28 < jrand0m> how we doing with CBC thecrypto?
17:28 < thecrypto> CBC is committed
17:28 < jrand0m> w00000t
17:28 < thecrypto> CTS is almost done
17:28 < hezekiah> thecrypto: What's CTS?
17:29 < thecrypto> i just have to figure out how to implement i nicely
17:29 < jrand0m> cts being cyphertext stealing :)
17:29 < hezekiah> Ah!
17:29 < thecrypto> CipherText Stealing
17:29 -!- WinBear [WinBear@anon.iip] has quit [EOF From client]
17:29 < jrand0m> did you pull nop's reference on that?
17:29 < hezekiah> OK. We're using CBC with CTS instead of padding.
17:29 < hezekiah> Hmm.
17:29 < thecrypto> basically, it makes the message exaclty right length
17:29 < jrand0m> is that workable for the python side hezekiah?
17:29 < hezekiah> I might need to slap the Python crypto lib I'm using upside
	 the head to make it us CTS properly.
17:30 < hezekiah> I've always prefered CTS over padding, but I don't know
	 what PyCrypt does.
17:30 < jrand0m> what can python do out of the box to allow exact message
	 size recovery?
17:30 < thecrypto> all you need to do is change how you process the last
	 two blocks
17:30 < hezekiah> I have a feeling that library is going to get some serious
	 rewritting.
17:30 < hezekiah> jrand0m: The CBC stuff in python is transparent. You just
	 send the buffer to the AES objects encrypt function.
17:31 < hezekiah> It spits out cipher text.

17:31 < hezekiah> End of story.
17:31 < jrand0m> does D(E(data,key),key) == data, byte for byte, exact
	 same size?
17:31 < hezekiah> So if it has the wacky idea of using padding instead of CTS,
	 then I might need to get in its guts and fix it.
17:31 < jrand0m> (regardless of input size?)
17:31 -!- mihi [~none@anon.iip] has joined #iip-dev
17:31 < hezekiah> jrand0m: Yes. It should.
17:31 < jrand0m> hezekiah> if you could look into exactly what algorithm it
	 uses to do the padding, that'd be great
17:32 < hezekiah> Right.
17:32  * jrand0m is hesitant at requiring a mod to a python crypto lib if
	 the lib already uses a standard and useful mechanism
17:32 < hezekiah> One way or another, CBC with CTS sounds good.
17:32 < hezekiah> jrand0m: This python crypto lib stinks.
17:32 < jrand0m> heh 'k
17:33 < thecrypto> i just have to calculate how to mess with the two blocks
17:33 < hezekiah> jrand0m: ElGamal will need to be completely rewritten in
	 C just to make it fast enough to use.
17:33 < jrand0m> hezekiah> whats the benchmark for python elg of 256bytes?
	 its only done once per dest-dest comm...
17:34 < jrand0m> (if you know offhand, that is)
17:34 < hezekiah> I'd have to test it.
17:34 < hezekiah> Encryption is only a second or two I think
17:34 < jrand0m> < 5 sec, < 2 sec, > 10 sec, > 30 sec?
17:34 < thecrypto> i'll prolly do some work with it
17:34 < hezekiah> Decrypton might be some place between 5 or 10 seconds.
17:34 < jrand0m> cool.
17:35 < jrand0m> hezekiah> have you spoken with jeremiah or do you have any
	 news about the status of the python client api?
17:35 < hezekiah> thecrypto: All you should need to do is write a C module
	 that works with Python.
17:35 < hezekiah> I have no clue what he's been up to.
17:35 < hezekiah> I haven't spoken to him since I got back.
17:35 < jrand0m> 'k
17:35 < jrand0m> any other dev status thoughts?
17:36 < hezekiah> Um, not really from me.
17:36 < hezekiah> I've already explained my current free time status.
17:36 < jrand0m> word.  understood
17:36 < hezekiah> My only plans are to get the C API up and the python router
	 back up to spec.
17:37 < jrand0m> 'k
17:37 < hezekiah> Oh my goodness!
17:37 < jrand0m> 1.4) todo
17:37 < jrand0m> si sr?
17:37 < hezekiah> The Python crypto lib doesn't implement CTS or padding!
17:37 < hezekiah> I'll have to do that manually.
17:37 < jrand0m> hmm?  it requires data to be mod 16 bytes?
17:37 < hezekiah> Yup.
17:38 < jrand0m> heh
17:38 < jrand0m> oh well.
17:38 < hezekiah> Currently the Python router uses padding.
17:38 < jrand0m> ok.  here are some oustanding items that need to get done.
17:38 < hezekiah> I remember that now.
17:38 < hezekiah> Well, let
17:38 < hezekiah> let's be frank about one thing.
17:38 < hezekiah> The Python router is never really meant to be used.
17:39 < hezekiah> It's primarily meant for me to be very familiar with the
	 spec and it also accomplishes something else:
17:39 < hezekiah> It forces the Java router to comply _exactly_ with the spec.
17:39 < jrand0m> both very important goals.
17:39 < hezekiah> Sometimes the Java router doesn't quite comply, and then
	 the Python router screams bloody murder.
17:39 < hezekiah> So it doesn't really need to be fast or stable.
17:39 < jrand0m> plus I'm not sure it won't ever be used in the sdk
17:39 < jrand0m> right.  exactly.
17:39 < jrand0m> the python client api is a different thing though
17:39 < hezekiah> The Python client API on the other hand needs to be decent.
17:40 < jrand0m> exactly.
17:40 < hezekiah> But that's jeremiah's problem. :)
17:40 < hezekiah> I've left that to him.
17:40 < jrand0m> the SDK local only routers are client dev use only
17:40 < jrand0m> lol
17:40 < jrand0m> ok, as I was saying... ;)
17:40 < hezekiah> ;-)
17:41 < jrand0m> - we need someone to start working on a small web page
	 for i2p that will be used for putting out the various I2P related specs for
	 peer review.
17:41 < jrand0m> I'd like this to be ready before 9/1.
17:41 < hezekiah> OK. I am stating right now that you don't want me to do that.
17:41 < hezekiah> I'm not a good webpage designer. :)
17:41 < jrand0m> nor I, if anyone here has seen my flog ;)
17:41 < jrand0m> cohesion?  ;)
17:41 < hezekiah> lol
17:42 < hezekiah> Poor cohesion, always stuck with the dirty work. :-)
17:42  * cohesion reads the back log
17:42 < hezekiah> ;)
17:42 < jrand0m> heh
17:42 < cohesion> jrand0m: I will do it
17:42 < cohesion> me@jasonclinton.com
17:42 < cohesion> send me the specs
17:42 < jrand0m> 'k, gracias.
17:42 < jrand0m> the specs aren't all done yet.
17:43 < jrand0m> but the contents that will need to be there are:
17:43 < cohesion> well, what you have an what you would like to have put up
17:43 < jrand0m> -I2CP spec, I2NP spec, Polling HTTP Transport spec, TCP
	 Transport spec, Security analysis, Performance analysis, Data structure spec,
	 and a readme/intro
17:44 < jrand0m> (those 7 documents will be in pdf and/or text format)
17:44 < cohesion> k
17:44 < jrand0m> barring the readme/intro
17:45 < jrand0m> I'm hoping that all of those docs will be ready by next week
	 (8/26).  will that give you enough time to get together a small page for a
9/1 release?
17:46 < jrand0m> ok.  another thing that will need to come down the pipe is
	 an I2P network simulator.
17:46 < jrand0m> do we have anyone looking for a CS project?  ;)
17:46 < hezekiah> lol
17:46 < cohesion> jrand0m: yea, that's doable
17:47 < hezekiah> I'm not for another few years. ;-)
17:47 < jrand0m> cool cohesion
17:47 < thecrypto> not for a year
17:47  * cohesion goes back to work
17:47 < jrand0m> tnx cohesion
17:48 < jrand0m> ok, 1.6) next two weeks.  on my plate is getting these specs,
	 docs, and analysis up.  I'll post &amp; commit as soon as I can.
17:48 < jrand0m> PLEASE READ THE SPECS AND COMMENT
17:48 < jrand0m> :)
17:48 < hezekiah> jrand0m: Right. Once I get time, I will start reading. :)
17:48 < jrand0m> I'd prefer people to post comments to the list, but if
	 people want to be anon, send me comments privately and I'll post replies to
	 the list anonymously.
17:49 < hezekiah> (What do you think the eta for OpenOffice files for the
	 docs being on CVS is?)
17:49 < jrand0m> I can commit the latest revs within 10 minutes of this
	 meeting being over.
17:49 < hezekiah> Awesome. :)
17:50 < jrand0m> ok, thats it for 1.*.
17:50 < jrand0m> 2.x) comments/questions/concerns/rants?
17:50 < jrand0m> how's the sdk mod working out mihi?
17:51 < jrand0m> or anyone else?  :)
17:51 < hezekiah> jrand0m: What is this sdk mod you're talking about?
17:52 < jrand0m> hezekiah> two bugfixes to the sdk, commited (&amp; posted)
	 the other day
17:52 < hezekiah> Ah
17:52 < hezekiah> Neato.
17:52 < jrand0m> (rotate the message IDs, synchronize writes)
17:52 < hezekiah> Just the java side, or the python side too?
17:52 < jrand0m> yo no hablo python.
17:53 < hezekiah> lol
17:53 < jrand0m> not sure if the bugs exist there.  do you rotate message
	 ids every 255 messages, and synchronize your writes?
17:54 < hezekiah> I think the Python router does both
17:54 < jrand0m> cool.
17:54 < jrand0m> we'll let you know if it doesn't ;)
17:54 < hezekiah> What exactly do you mean by "synchronize your writes"?
17:55 < jrand0m> aka make sure multiple messages aren't written to a client
	 at the same time if there are multiple clients trying to send messages to
	 it at the same time.
17:55 < hezekiah> All the data sent over the TCP connection gets sent in
	 the order it originated.
17:56 < hezekiah> So you won't be 1/2 of message A and then 1/3 of message B.
17:56 < jrand0m> 'k
17:56 < hezekiah> You'll get message A and then message B.
17:56 < hezekiah> OK ... if no one else is going to talk, I suggest we
	 adjurne the meeting.
17:56 < mihi> my simple TCP/IP over I2p seems to work...
17:56 < jrand0m> niiiiice!!
17:56  * mihi was idling a bit sorry
17:57 < hezekiah> Anyone else have anything to say?
17:57 < jrand0m> mihi> so we'll be able to run pserver over that?
17:57 < mihi> as long as you do not try to create lotas connections at once.
17:57 < mihi> jrand0m: i guess so - i could ge tgoogle through it
17:57 < jrand0m> niiiice
17:57 < jrand0m> mihi++
17:57 < mihi> jrand0m-ava
17:57 < jrand0m> so you have an outproxy and an inproxy?
17:58 < mihi> exactly.
17:58 < jrand0m> cool
17:58 < mihi> the destination needs keys, the source generates them on demand
17:58  * hezekiah hands jrand0m the *baf*er. Smash the thing when you're
	 done, man.
17:58 < jrand0m> right.  hopefully co's naming service could help with that
	 once its ready.
17:59 < jrand0m> ok cool.  mihi, let me or anyone else know if there's
	 anything we can do to help :)
17:59 < mihi> fix that thing with the 128 msgids or build a better GUARANTEED
	 support
17:59  * jrand0m *baf*s nop_afk over the head for having a real job
18:00 < mihi> jrand0m: baf abuse costs 20 yodels
18:00 < jrand0m> lol
18:00 < jrand0m> better guaranteed support?
18:00 < jrand0m> (aka better performance than the one described?  we'll fix
	 that in impl)
18:00 < mihi> did you test my test case with start_thread=end_thread=300?
18:01 < mihi> it generates lots of messages in one direction, and that causes
	 all msgids to be eaten...
18:01 < jrand0m> hmm, no, hadn't seen that message
18:01 < hezekiah> jrand0m: Would it be reasonable to make msgid 2 bytes?
18:01  * jrand0m tried the 200 / 201, but thats fixed with the latest
18:01 -!- cohesion [cohesion@anon.iip] has quit [off to the lug meeting]
18:01 < mihi> which latest?
18:01 < hezekiah> Then they would have 65535 msgids (if you don't could
	 msgid 0)
18:01 < hezekiah> .
18:02 < jrand0m> 2 byte message ids wouldn't hurt.  I'm comfortable with
	 that change.
18:02 < jrand0m> mihi> the one I mailed you
18:02 < mihi> if you have a more latest than the one you sent me, send it
	 (or give me cvs access)
18:03 < mihi> hmm, that one fails for me with 200/201 (as well as with 300)
18:03 < jrand0m> hmm.  I'll do some more testing and debugging and mail you
	 what I come up with.
18:03 < mihi> thx.
18:04 < jrand0m> ok.
18:04  * jrand0m declares the meeting
18:04 < jrand0m> *baf*'ed
18:04  * hezekiah hangs the *baf*er reverantly on its special rack.
18:05  * hezekiah then spins around walks out the door, slamming it behind
	 him. The baffer falls off the rack.
18:05 < hezekiah> ;-)
--- Log closed Tue Aug 19 18:05:36 2003