Quick recap
Present: beefbroth, CCD, ChZEROHag, co, dcat, dm, godmode0, jrand0m, mihi, mihi_backup, mrflibble, Myself248, myself248, nop, pitu, Ryan_Singer, shardy, thecrypto, UserX, yodel
Meeting Log
[22:56] ok ok
[22:56] agenda
[22:56] 0.0) welcome
[22:56] 1.0) dev status
[22:56] 1.1) router
[22:56] *** Myself248 (~ident@anon.iip) has joined channel #iip-dev
[22:56] 1.2) DH precalc
[22:56] 2.0) microroadmap
[22:56] 3.0) apps / usage
[22:56] 4.0) ns
[22:56] 5.0) IM
[22:56] 6.0) administravia (cvs, bugzilla, cvs list, cvs web)
[22:56] 7.0) questions
[22:57] (yes, 7 points today. w00t)
[22:57] 0.0) welcome
[22:57] hi.
[22:57] hey
[22:57] 17 users today. neat
[22:57] *** Ryan_Singer (chatzilla@anon.iip) has joined channel #iip-dev
[22:57] and counting
[22:57] ok
[22:57] 1~hi
[22:57] 1.1) dev status for router
[22:58] the java reference impl router is doing very well
[22:58] *** ChZEROHag (hag@anon.iip) has joined channel #iip-dev
[22:58] we can now run applications on different routers and send messages ot each other
[22:59] Sorry to interrupt, but hopefully it'll just be once
[22:59] taking an iterative and incremental approach, the current state is secure, not anonymous, not scalable, and harvestable
[22:59] Is anyone else working on a C api?
[22:59] 'lo ChZEROHag, whats shakin?
[22:59] Because I am, but very slowly
[22:59] *** dcat (dirtycat@anon.iip) has joined channel #iip-dev
[22:59] oh cool
[22:59] shardy will be working on one after toorcon is finished
[22:59] perhaps you two could work together on that?
[23:00] jrand0m: Can you input a destination to send messages to by hand?
[23:00] Better said, is there an ASCII representation of a destination?
[23:00] yes co, to both
[23:00] Excellent.
[23:00] destinations, and all I2P structures, are loadable and serializable in (an alternate alphabet) base 64
[23:01] so it won't be easy to remember, but it will be ascii?
[23:01] (e.g. in the netDb for one of my routers, I have leaseSet-enD4jtE-orMwFD0QGog9GAyC5MvLvnPzhVD8cDYvSI8.dat which contains the lease set for destination enD4jtE-orMwFD0QGog9GAyC5MvLvnPzhVD8cDYvSI8)
[23:02] [though that is H(destination).toBase64()
[23:03] ChZEROHag> if there's anything we can do to help you with that, just say the word
[23:03] ok thats 1.1. 1.2) DH precalc
[23:03] You could do it for me? :-)
[23:04] last night I wrote up a precalc optimization for DH exchanges to save ~1s off 1.5s session negotiations. I'd love if someone who knows crypto could make sure I'm not nuts ;)
[23:04] lol ChZEROHag
[23:04] aah I know what I needed
[23:04] A netdb implementation
[23:04] is it in cvs?
[23:04] the dh
[23:04] yes thecrypto
[23:05] C:\dev\i2p\code\core\java\src\net\invisiblenet\i2p\crypto\DHSessionKeyBuilder.java
[23:05] Well I'm going to be up for a good 3/4 hours yet, maybe it'll give me something to do
[23:05] er, s/C:\\dev/g; s/\\/\//g
[23:05] *** wax_off (~nomail@anon.iip) has joined channel #iip-dev
[23:06] word. what do you need a netdb impl for?
[23:06] I don't remember
[23:06] we currently have a non-scalable netdb in cvs
[23:06] heh
[23:06] Haven't touched it in at least a week
[23:06] you're working on a C I2CP api, right? not I2NP?
[23:07] I was just going to do everything
[23:07] *** wax_off has left #iip-dev
[23:07] I2NP is really, really, really significantly more work than I2CP
[23:07] Once I actually get properly started, it'll just roll out
[23:07] but if you impl an I2NP in C that'd rule
[23:07] is there a I2NP in anything right now?
[23:07] (I2CP:I2NP::FCP:FNP)
[23:07] yes dm
[23:08] * ChZEROHag deminimizes emacs
[23:08] the java impl i'm working on has I2NP functioning
[23:08] alrighty...
[23:08] jrand0m: url? I could do with a reference, even if it's in a horrible language.
[23:08] heh
[23:08] erm, actually thats 6.0 administravia: aka where the fuck is our anon cvs access ;)
[23:09] i'm getting the DH stuff
[23:09] coo'
[23:09] Oh right
[23:09] jrand0m, back to schedule, the microroadmap?
[23:09] * thecrypto hides his face
[23:09] well I'll wait :)
[23:09] heh 'k
[23:09] microroadmap
[23:09] I have 0.1 through 0.5 mapped out
[23:09] followed freenet's roadmap then?
[23:10] *** mrflibble (mrflibble@anon.iip) has joined channel #iip-dev
[23:10] 0.1) functional, secure, not anonymous, not scalable, harvestable
[23:10] development slows down and freezes during 0.5...
[23:10] we are now at 0.1.
[23:10] heh I noticed that dm, flinks hosed off at 0.5.2 as well ;)
[23:10] What are you calling the whole package?
[23:10] (strange coincidence)
[23:10] i.e. version 0.1 of?
[23:10] the whole package? i2p router reference implementation
[23:10] co: Wonga
[23:10] * beefbroth joins the meeting
[23:11] buenos noches beefbroth
[23:11] All right. That explains it.
[23:11] Actually maybe I will call it that. Certainly sounds more interesting than 'i2pd'
[23:11] 0.1 has bugs. thats a given. and it has no optimizations of note (though the DH precalc helps).
[23:11] heh
[23:11] jrand0m, what's 0.2) then?
[23:11] invisible internet police department
[23:11] ok, 0.2
[23:12] 0.2 is functional, secure, anonymous, not scalable, harvestable
[23:12] 0.2 adds support for non-zero-length tunnels
[23:12] I actually implemented most of that last night, but not thoroughly tested
[23:12] I think 0.2 will be ready by end of week
[23:12] how far away are we from that from a dev perspective?
[23:13] great
[23:13] 0.3) is functional, secure, anonymous, scalable, harvestable
[23:13] * thecrypto gets bochs so he can simulate a network to help with this
[23:13] 0.3 adds a kademliaDatabaseManager
[23:13] right now we use a BroadcastDatabaseManager
[23:13] (aka gnunet ;)
[23:14] trivial to implement and functional for small networks, but we need the kademlia to scale
[23:14] 0.4) is functional, secure, anonymous, scalable, non-harvestable
[23:14] that adds trusted links
[23:14] jrand0m, and how much of a dev challenge is it to implement kademlia?
[23:14] I have two ideas for trusted links.. one is more easily implementable and usable
[23:15] kademlia will probably take a full week
[23:15] (to get right)
[23:15] note that all of this has lots of room for refactoring and tuning. I'm aiming functional first, then we tune.
[23:16] Are you certain you will be able to develop and test that quickly?
[23:16] I am certain of nothing
[23:16] thats just my estimate
[23:16] co, hegets functional, we test
[23:16] Are you sure?
[23:16] (sorry)
[23:16] Ryan_Singer: I see.
[23:17] * jrand0m <3 people who test :)
[23:17] When you say "we" test. Is there any place for non-coders to help with the testing?
[23:17] Myself248> probably not until 0.4
[23:17] lets just hope it never gets to the point where it's functional, but nobody knows what the fuck is going on inside the network to make it work well (i.e. freenet)
[23:18] once 0.4 is ready, thats pre-alpha. once its 0.4 I'll tune and refactor and fill in the blanks to get ready for 0.5 (alpha)
[23:18] Document, document, document.
[23:18] is there any though being put into active monitoring of network internals, or is it straightforward?
[23:18] yes dm, absolutely
[23:18] one of the key pieces of i2np is the inclusion of stats in the routerInfo strutures published
[23:18] jrand0m: do a s/0./0.0./ ;)
[23:18] the initial revs will publish real stats so we can tune
[23:19] later revs will either not publish any stats or publish fake ones
[23:19] * jrand0m does not do 0.0
[23:19] ok, I'm here
[23:19] wb shardy
[23:19] sorry for being late, forgot about this window being open, heh
[23:19] cool.
[23:19] is there a higher level document describing the archetecture for the network under .4?
[23:19] off with your head
[23:20] Ryan_Singer> hmm, I had some overview docs a few months back that mids and nop mirrored, and there's the i2p overview doc
[23:20] 0.4 is full i2np as described in the spec, just not optimally implemented
[23:20] oh and jrand0m, I'll check out the DH optimization for you
[23:20] word, gracias
[23:20] can I get those docs?
[23:21] the overview is at (Link: http://www.invisiblenet.net/i2p/i2p_philosophy.pdf)http://www.invisiblenet.net/i2p/i2p_philosophy.pdf
[23:21] they're on the wiki I think?
[23:21] hte old overview docs... hmm
[23:21] (i2p specs are at (Link: http://wiki.invisiblenet.net/iip-wiki?I2PProtocolSpecs)http://wiki.invisiblenet.net/iip-wiki?I2PProtocolSpecs)
[23:21] They are on (Link: www.invisiblenet.net/i2p/.)www.invisiblenet.net/i2p/.
[23:21] right beefbroth
[23:22] though there are old docs in html format w/ ugly ms paint pictures from before showing how tunnels work...
[23:22] I should know, I've read them enough
[23:22] hehe
[23:22] Unless those are older versions or mirrors.
[23:22] those files on the wiki are 0.9 (0.9.1 is out for I2NP and datastructures, but they only include minor changes)
[23:23] jrand0m: the precalc looks good
[23:23] cool
[23:24] *** pitu (~pitu@anon.iip) has joined channel #iip-dev
[23:24] * jrand0m runs the router w/ java -Dcrypto.dh.precalc.min=3 -Dcrypto.dh.precalc.max=10 -Dcrypto.dh.precalc.delay=5000 -jar C:\dev\i2p\code\router\java\src\router.jar
[23:25] ok, thats the microroadmap
[23:25] as you can see, I'm accepting that alpha won't be ready for end of month. 0.4 will probably be first week of october
[23:26] that's okay, even that would be the fastest ever implementation of a network of this type ;)
[23:26] lol
[23:26] when reading jrand0m's time estimates here, please remember that he has been drinking whiskey for the last 4 hours :-P
[23:26] heh
[23:26] ok...apps/usage?
[23:26] good whiskey at that ;)
[23:26] ok, apps/usage
[23:27] 0.7 in 4 seconds....3...2...1..!!
[23:27] I'm aiming for low hanging fruit here - these are things that we can do with 0 or minimal new code.
[23:27] How are you supposed to code properly if you're stone sober?
[23:27] all of these make significant use of mihi's kickass i2ptunnel
[23:27] ChZEROHag: Easily.
[23:27] *** mihi has changed the topic on channel #iip-dev to 0.7 in 4 seconds....3...2...1..!!
[23:28] using the i2ptunnel, we can do the following without writing any new code:
[23:28] public ww proxy (using i2ptunnel + squid)
[23:28] * dm tips his hat to mihi.
[23:28] JAP (using i2ptunnel + JAP)
[23:28] you cannot kick asses though i2p (not through a tunnel either...)
[23:28] browse www anon (i2ptunnel + web browser)
[23:28] run an i2p web server (i2ptunnel + httpd)
[23:29] Very nice. Bravo, mihi.
[23:29] cvs outproxy (i2ptunnel) [e.g. cvs outproxy to sourceforge for anon freenet dev]
[23:29] cvs client, cvs server
[23:29] IM app, pop3 server, imap server, opennap
[23:29] those are all really low hanging fruit
[23:29] okay, now all we need is i2p :)
[23:30] right ;)
[23:30] wouldn't i2p webserver kinda supplant freenet? :)
[23:30] * jrand0m thinks that qualifies as a faq I should answer
[23:30] jrand0m, but they are also very valuable
[23:30] From that list, I'd consider cvs more important/useful
[23:30] Partly because I wish to remain anonymous, but also because if anonymous www is provided you'll get lusers
[23:30] i2p + web doesn't supplant freenet - freenet adds significant value on top of an anon comm framework - content distribution
[23:31] And at the moment the idea of anonymous email is scary :)
[23:31] * dm writes down: "no lusers"
[23:31] cvs definitely is in the top 3
[23:31] i think if i2p webserving works well, you have to consider merging the DHT/storage parts of freenet on top of i2p and then you have the best of both worlds.
[23:31] ChZEROHag, if it's scalable thats a goodthing
[23:31] dm: lusers are only a problem during the early stages, but they tend not to use cvs
[23:31] okay, add lots of hashcash to any anon email thing.
[23:31] Or, for that matter, even know what (or that) it is
[23:31] I think one of the tests that needs to be done is a test attack on the network.
[23:31] yes beefbroth, once i2p does what we aim at, freenet will most likely adjust to make use of it
[23:32] Sorry if that is offtopic.
[23:32] Myself248: just add a redirector to an anon remailer.
[23:32] no, thats definitely on topic co - attacking this network is key
[23:32] Myself248: hashcash is primarily to stop flooding while we're forced to use the ancient protocol that is 'irc'
[23:32] Not to stop what could be termed 'abuse'
[23:32] right mihi. though perhaps mixminion run over i2p would be useful
[23:33] right, hashcash is even built into i2p itself to keep messages from being delivered a single hop unless they "pay up"
[23:33] jrand0m, we could run imap over this easily?
[23:33] absolutely
[23:33] impressive
[23:33] imapd with an i2ptunnel pointing at it, with i2ptunnel on the client pointing at that tunnel's destination
[23:34] and freenet search engines :)
[23:34] ftp or several non-jabber instant messengers will make problems...
[23:34] right, things that require two connections are more complex
[23:34] jrand0m: hashcash in i2p?
[23:34] I shall bug you about that when this is over.
[23:34] hashcash in i2p? nice.
[23:34] we're getting ahead of ourselves! oh alright, who cares.. QUAKE + IIP!!!!!!
[23:34] sorry, I2p :)
[23:34] lol dm
[23:35] Those of us with little CPUs get nervous when someone says hashcash, but as an anti-spamming measure I understand it.
[23:35] dm: That is *reallY* getting ahead of ourselves.
[23:35] * mihi is jabber:schierlm@a-message.de ;)
[23:35] yes ChZEROHag - Destination == public signing key (DSA) + public encryption key (ElGamal) + certificate (either null or hashcash(keys))
[23:35] is the i2p tunnel static or dynamic on the client end?
[23:35] beefbroth: atm it is all static. but you could use a socks proxy as dest. ;)
[23:35] Myself248> I'm getting a bitching sun ultra1 in the mail in a few weeks. if a 160Mhz box can do it, everyone can
[23:35] well. hashcash shouldn't be something that is terrible even to small cpus. only if you want to do something eleventy billion times, should you notice it.
[23:36] beefbroth: It can be dynamic.
[23:36] the potential applications of the "low-hanging fruit" here are very impressive
[23:36] right mihi
[23:36] "eleventy". heh
[23:36] the low hanging fruit is essentially 'normal' internet apps, but anonymously
[23:36] right?
[23:36] right
[23:36] yes
[23:36] (quake)
[23:37] 0.1 runs them securely, 0.2 runs them anonymously, 0.3 runs them scalably, 0.4 runs them non-harvestably
[23:37] (we're @ 0.1 now)
[23:37] what do you mean by non-harvestably?
[23:37] Sorry, what is harvestable again?
[23:37] dm: Unfortunately we've ben held back enough that realtime is after more than 30 years still not 'normal'
[23:37] Phew. I was hoping someone would ask that. ;)
[23:37] loggable
[23:37] harvesting means an active attacker can run a router, find out about lots of other routers ("harvest" them), and send the goons to kick in their doors
[23:38] oh, like you can do with gnutella. :)
[23:38] secret-servicy like goons
[23:38] right
[23:39] ah, gotcha.
[23:39] ok, but yeah, thats the microroadmap.
[23:40] now, am I being stupid calling these 0.x instead of 0.0.x? should 1.0 be "perfect" or should 1.0 be functional and safe?
[23:40] jrand0m, and we will see .4 when?
[23:40] 0.4 is probably 2 weeks out
[23:40] * jrand0m is taking a week off (ish) in mid october as I have people coming to visit
[23:40] *** Signoff: dm (EOF From client)
[23:40]