November 21, 2009  
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30


NOTICE: This channel is no longer actively logged.

[00:17:12] *** gringochapin has quit IRC
[00:17:33] *** gilles has quit IRC
[00:34:00] *** Andrius has quit IRC
[00:52:07] *** _rafi_ has joined #bittorrent
[00:57:19] *** _rafi2_ has quit IRC
[01:00:44] *** mxs has quit IRC
[01:01:56] *** mxs has joined #bittorrent
[01:08:33] *** gilles has joined #bittorrent
[01:22:34] *** mxs has quit IRC
[01:23:00] *** mxs has joined #bittorrent
[01:26:45] *** mxs has quit IRC
[01:26:49] *** chelz has joined #bittorrent
[01:28:21] *** mxs has joined #bittorrent
[01:34:24] *** mxs has quit IRC
[01:34:25] *** mxs_ has joined #bittorrent
[01:37:39] *** MassaRoddel has quit IRC
[01:37:42] *** mxs_ has quit IRC
[01:39:35] *** mxs has joined #bittorrent
[01:45:57] *** init0_ has joined #bittorrent
[01:56:54] <burris> magnet links on tpb are just a temporary measure until they are ready to deploy eXeem...
[01:57:12] *** init0 has quit IRC
[01:57:46] <Nolar> :)
[01:58:52] <DHE> what's tha?
[01:58:56] <DHE> man I'm out of it...
[02:02:45] <The_8472> hahaha
[02:17:14] *** FAB_ has joined #bittorrent
[02:20:35] *** Miller` has joined #bittorrent
[02:33:19] <chelz> lol wow that would be so crazy
[02:33:38] <chelz> there certainly has been enough time to finally finish that
[02:36:45] *** JaVaSan has quit IRC
[02:38:50] *** mxs has quit IRC
[02:42:02] *** Nolar has quit IRC
[02:42:10] *** Nolar has joined #bittorrent
[02:43:17] *** mxs has joined #bittorrent
[02:43:39] *** FAB_ has quit IRC
[02:44:16] *** FAB_ has joined #bittorrent
[02:45:35] *** FAB_ has quit IRC
[02:46:54] <ivan`> I'm switching back to suprnova
[02:47:56] <The_8472> that's owned by tpb
[02:48:36] <ivan`> oh, I didn't even realize it was relaunched
[02:48:44] <ivan`> joke fail
[02:49:04] *** andar has quit IRC
[02:55:24] *** therma has joined #bittorrent
[03:03:41] <uriel> haha
[03:04:16] *** Snoopotic6367 has joined #bittorrent
[03:05:47] *** Miller` has quit IRC
[03:05:47] *** init0_ has quit IRC
[03:05:47] *** chelz has quit IRC
[03:05:47] *** Snoopotic has quit IRC
[03:05:47] *** thermal has quit IRC
[03:08:03] *** init0 has joined #bittorrent
[03:08:43] *** Miller` has joined #bittorrent
[03:08:43] *** init0_ has joined #bittorrent
[03:08:43] *** chelz has joined #bittorrent
[03:08:43] *** Snoopotic has joined #bittorrent
[03:08:49] *** init0_ has quit IRC
[03:21:16] *** andar has joined #bittorrent
[03:21:40] *** Miller` has quit IRC
[03:22:46] *** Snoopotic has quit IRC
[03:23:16] *** thermal has joined #bittorrent
[03:32:25] *** Miller` has joined #bittorrent
[03:34:26] *** therma has quit IRC
[03:43:35] <K`Tetch> burris - exeem's long gone, slon's busy doing TFtv for us
[04:07:47] *** gilles has quit IRC
[04:07:50] *** The_8472 has quit IRC
[04:08:11] *** wadim has joined #bittorrent
[04:08:13] *** wadim is now known as The_8472
[04:10:12] *** mxs has quit IRC
[04:14:53] *** mxs has joined #bittorrent
[04:31:17] *** The_8472 has quit IRC
[04:31:18] *** chelz has quit IRC
[04:32:20] *** goussx has quit IRC
[04:35:32] *** The_8472 has joined #bittorrent
[04:35:32] *** chelz has joined #bittorrent
[05:01:10] *** goussx has joined #bittorrent
[06:24:17] *** bittwist has quit IRC
[06:24:43] *** _rafi_ has quit IRC
[06:29:48] *** gilles has joined #bittorrent
[06:51:56] *** goussx has quit IRC
[06:51:56] *** chelz has quit IRC
[06:51:56] *** The_8472 has quit IRC
[06:57:11] *** The_8472 has joined #bittorrent
[06:57:48] *** goussx has joined #bittorrent
[07:04:15] *** bittwist has joined #bittorrent
[07:05:23] *** chelz has joined #bittorrent
[07:06:28] *** chelz has quit IRC
[07:06:54] *** chelz1 has joined #bittorrent
[07:12:00] *** spoop has quit IRC
[07:22:04] *** spoop has joined #bittorrent
[07:30:21] *** thermal has quit IRC
[08:19:19] *** Miller` has quit IRC
[08:25:41] *** MassaRoddel has joined #bittorrent
[08:29:05] *** Andrius has joined #bittorrent
[08:32:48] *** mxs has quit IRC
[08:33:07] *** mxs has joined #bittorrent
[08:42:46] *** gilles has quit IRC
[08:46:54] *** Miller` has joined #bittorrent
[09:08:10] *** Switeck has quit IRC
[09:08:17] *** GTHK has quit IRC
[09:28:27] *** Andrius has quit IRC
[09:44:17] *** rdjong has joined #bittorrent
[09:49:48] *** bittwist has quit IRC
[09:50:08] *** bittwist has joined #bittorrent
[10:10:16] *** rdjong has quit IRC
[10:10:50] *** rdjong has joined #bittorrent
[10:45:42] *** rdjong_ has joined #bittorrent
[10:50:48] *** rdjong has quit IRC
[11:05:32] *** rdjong has joined #bittorrent
[11:06:10] *** mxs has quit IRC
[11:08:22] *** waldorf_ has joined #bittorrent
[11:08:22] *** mxs has joined #bittorrent
[11:11:16] *** goussx_ has joined #bittorrent
[11:12:18] *** rdjong has quit IRC
[11:14:08] *** rdjong_ has quit IRC
[11:16:13] *** rdjong has joined #bittorrent
[11:26:11] *** rdjong has quit IRC
[11:27:45] *** goussx has quit IRC
[11:27:45] *** goussx_ is now known as goussx
[11:29:50] *** rdjong has joined #bittorrent
[11:36:09] *** bt42 has joined #bittorrent
[11:38:35] *** bittwist has quit IRC
[11:44:55] *** rdjong has quit IRC
[11:58:58] *** The_8472 has quit IRC
[11:59:18] *** wadim has joined #bittorrent
[11:59:20] *** wadim is now known as The_8472
[12:39:50] *** ivan` has quit IRC
[12:40:08] *** ivan` has joined #bittorrent
[12:52:07] *** waldorf_ has quit IRC
[13:09:02] *** chelz1 has quit IRC
[15:22:00] *** rdjong has joined #bittorrent
[15:59:10] *** burris has quit IRC
[15:59:22] *** burris has joined #bittorrent
[16:02:31] *** rdjong_ has joined #bittorrent
[16:07:47] *** rdjong__ has joined #bittorrent
[16:12:57] *** rdjong___ has joined #bittorrent
[16:15:37] *** rdjong_ has quit IRC
[16:17:01] *** HandheldPenguin` is now known as HandheldPenguin
[16:17:03] *** burris has quit IRC
[16:18:21] *** rdjong_ has joined #bittorrent
[16:20:49] *** burris has joined #bittorrent
[16:23:02] *** rdjong has quit IRC
[16:23:32] *** rdjong has joined #bittorrent
[16:28:51] *** rdjong____ has joined #bittorrent
[16:35:14] *** rdjong__ has quit IRC
[16:35:34] *** rdjong__ has joined #bittorrent
[16:39:53] *** rdjong_____ has joined #bittorrent
[16:41:30] *** rdjong___ has quit IRC
[16:43:58] *** rdjong____ has quit IRC
[16:44:30] *** BentMyWookie has quit IRC
[16:44:38] *** BentMyWookie_ has joined #bittorrent
[16:45:15] *** rdjong___ has joined #bittorrent
[16:45:38] *** rdjong_ has quit IRC
[16:45:56] *** mxs has quit IRC
[16:49:52] *** rdjong has quit IRC
[16:49:54] *** rdjong___ is now known as rdjong
[16:50:39] *** rdjong_ has joined #bittorrent
[16:51:52] *** mxs has joined #bittorrent
[16:54:31] *** mxs has quit IRC
[16:56:06] *** rdjong___ has joined #bittorrent
[16:56:08] *** BentMyWookie_ has quit IRC
[16:56:34] *** BentMyWookie has joined #bittorrent
[17:01:21] *** rdjong____ has joined #bittorrent
[17:02:11] *** mxs has joined #bittorrent
[17:02:17] *** rdjong__ has quit IRC
[17:06:33] *** rdjong__ has joined #bittorrent
[17:08:08] *** rdjong__ has quit IRC
[17:08:14] *** rdjong_____ has quit IRC
[17:09:00] <BentMyWookie> another peer id question: -OS0670-
[17:09:31] <BentMyWookie> and -PC261A-
[17:13:00] *** rdjong has quit IRC
[17:14:31] *** Switeck has joined #bittorrent
[17:15:21] *** rdjong____ has quit IRC
[17:15:37] *** mxs has quit IRC
[17:18:06] *** rdjong_ has quit IRC
[17:22:30] *** bbelt16ag has quit IRC
[17:24:01] *** rdjong___ has quit IRC
[17:26:26] *** mxs has joined #bittorrent
[17:40:07] *** mxs has quit IRC
[17:46:13] <TheSHAD0W> BentMyWookie: From the tracker?  Or a peer?
[17:47:01] <BentMyWookie> peer
[17:48:34] <TheSHAD0W> Mmm.
[17:48:45] <TheSHAD0W> From a tracker, the user agent string might help...
[17:48:53] <BentMyWookie> ya
[17:49:01] <BentMyWookie> afaict it's from the peer
[17:51:13] <TheSHAD0W> No, no, I mean, if a tracker is being contacted by that peer, the peer may also send a user-agent in the metadata with a full name.
[17:51:52] <BentMyWookie> unfortunately the peer id is all the info i have
[17:55:01] <The_8472> PC is possibly a CacheLogic peer (some p2p caching solution) and OS is OneSwarm
[17:56:45] *** mxs has joined #bittorrent
[17:57:56] *** BentMyWookie has quit IRC
[18:00:10] *** BentMyWookie has joined #bittorrent
[18:01:22] *** mxs has quit IRC
[18:07:51] *** mxs has joined #bittorrent
[18:10:58] *** mxs has quit IRC
[18:21:45] *** SundanceKid has joined #bittorrent
[18:29:17] *** mxs has joined #bittorrent
[18:49:27] *** DWKnight has quit IRC
[18:58:04] *** DWKnight has joined #bittorrent
[19:01:24] *** bbelt16ag has joined #bittorrent
[19:08:42] *** erdgeist has joined #bittorrent
[19:08:44] <erdgeist> Helloe
[19:09:10] <erdgeist> I've heard there's two implementations of a DHT proto right now. Anyone has a link to the other on besides http://www.bittorrent.org/beps/bep_0005.html
[19:11:11] <The_8472> there is no complete specification of the other one, atm only packet formats are documented: http://azureuswiki.com/index.php/DHT#Packet_format
[19:11:39] <erdgeist> The_8472: thanks. Do you know WHO supports what?
[19:12:54] <The_8472> azureus supports its own dht (+ bep5 via a plugin), everyone else does bep5
[19:13:04] <The_8472> and the rest does neither
[19:13:11] <erdgeist> The_8472: So I go with bep5
[19:13:26] <BentMyWookie> why doesn't azureus switch to bep5?
[19:13:26] <The_8472> you go with bep32+bep5
[19:13:40] <The_8472> BentMyWookie, because bep5 lacks a significant amount of features
[19:13:50] <BentMyWookie> ya?
[19:13:54] <The_8472> yes
[19:14:41] <BentMyWookie> can you ellaborate?
[19:14:44] <The_8472> not to mention that we were the first and mainline then did a "not invented here" and rolled their own.... just like they did with LTEP. just like they did with PEX
[19:15:02] <erdgeist> The_8472: who's "we" in that context?
[19:15:12] * The_8472 points at his hostname
[19:16:32] <erdgeist> The_8472: Ahh, the client that now sounds like a vulgar word for "vagina" in german
[19:16:52] <The_8472> depends how you pronounce it
[19:17:09] <erdgeist> The_8472: depends on how someone NOT in the know reads it :)
[19:17:29] <The_8472> BentMyWookie, sure. we have various security features that make it harder to poison the DHT. e.g. fixed node IDs to prevent nodes from inserting them near specific IDs
[19:17:43] <erdgeist> The_8472: okay to PM you?
[19:18:02] <The_8472> it also has replication, large-value transfers, etc.
[19:18:06] <The_8472> is it necessary?
[19:18:32] <erdgeist> The_8472: depends. I'm not sure.
[19:19:04] <The_8472> well, if it concerns bittorrent it usually can be discussed here
[19:21:04] <Astro> erdgeist: what are you up to with DHTs?
[19:22:18] * The_8472 prods the earth spirit
[19:23:03] <Astro> ETOOMANYGERMANS
[19:23:13] <erdgeist> Astro: well, I'm not too familiar with the guys hanging out here
[19:23:52] <Astro> me neither, I just joined after TPB announced shutdown of their trackers
[19:23:58] <The_8472> basically a bunch of bittorrent devs, tracker admins and power users here
[19:24:16] <erdgeist> Thing is, tpb is thinking about distributing super-dht-nodes
[19:24:33] <The_8472> what would their purpose be?
[19:24:35] <erdgeist> That can be deployed on any 5$-virtual-box
[19:25:00] <Astro> how would they be "super" compared to all the other nodes?
[19:25:09] <erdgeist> The_8472: bring together nodes not talking DHT and the built in tracker
[19:25:21] <erdgeist> The_8472: for torrents server from tpb
[19:25:29] <The_8472> so, more like a tracker-dht-bridge?
[19:25:59] <The_8472> we just discussed that yesterday ^^
[19:26:04] <erdgeist> Ohh
[19:26:12] <Astro> like http://trackhub.appspot.com/ ?
[19:26:18] <The_8472> no, that's something else
[19:26:44] <erdgeist> Well, there's some issues about trackers. You know single point of failure. Privacy concerns
[19:27:07] <The_8472> yes, but i'm still not sure what you mean by <erdgeist> The_8472: bring together nodes not talking DHT and the built in tracker
[19:27:19] <The_8472> is it supposed to be a tracker protocol to dht bridge?
[19:29:02] <The_8472> btw, considering privacy concerns... the DHT is public, anyone can gather data from it... the only difference is that it's not under the control by any specific group of people.
[19:29:07] <erdgeist> The_8472: I am not completely sure. Just gathering data. Is it true that without trackers dht currently could not stem the load?
[19:29:12] <The_8472> but it does not really improve anyone's privacy
[19:29:59] <The_8472> erdgeist, the DHT is pretty scaleable. some implementations might need to be optimized by i think it could handle the load (unless many people do really stupid things like announcing 200 torrents at once)
[19:30:16] <The_8472> *but i think
[19:30:46] <The_8472> but there are other concerns
[19:31:14] <The_8472> the mainline DHT lacks scrapes and security features that prevent someone taking over the keyspace responsible for a particular torrent
[19:31:48] <TheSHAD0W> Yeah.
[19:31:54] <erdgeist> so you could randomly send requestors to non-valid peers?
[19:32:12] <TheSHAD0W> It's unfortunate that mainline can't switch to a different and already established DHT system that has such features.
[19:32:13] <The_8472> or just return empty peer lists, yes
[19:32:22] <TheSHAD0W> Oh wait, I forgot.  They can't, because it's NOT DOCUMENTED!
[19:32:26] * TheSHAD0W runs away!
[19:33:07] <The_8472> TheSHAD0W, well, if someone would officially request documentation from parg... nobody seriously asked so far
[19:33:45] <TheSHAD0W> Mmm.
[19:34:04] <TheSHAD0W> I can't truly, seriously do it, because I haven't been able to do any development lately.
[19:34:42] <TheSHAD0W> Oh alus...  o/^
[19:35:36] <erdgeist> The_8472: But there's no way to trust some nodes more than others?
[19:35:45] <erdgeist> The_8472: like signatures or something?
[19:38:11] <erdgeist> The_8472: What exactly is wrong with announcing 200 torrents at once?
[19:39:20] <The_8472> no, there is no trust hiererchy among nodes. everyone is a potential hostile
[19:39:34] <The_8472> all you can do is make sure that they operate according to the protocol
[19:39:43] <erdgeist> Hmm
[19:40:19] <The_8472> and... the DHT is inefficient for individual nodes. what makes it efficient on the global scale is that you don't have a central point that it behing hammered by the many packets generated
[19:40:49] <The_8472> an announce can easily generate 100 requests + 100 replies
[19:40:56] <The_8472> i.e. UDP packets
[19:41:02] <erdgeist> The_8472: Well, I LOVE udp
[19:41:19] <erdgeist> The_8472: tpb also has some capacities to handle 100 requests + 100 replies
[19:41:38] <The_8472> one UDP announce is 3 packets vs. 200
[19:42:12] <erdgeist> The_8472: Yeah, it's a pity that tracker udp announce does not support announcing multiple torrents in one packez
[19:42:13] <The_8472> so doing 200 announces could create 40k packets traveling through the intarwebs
[19:42:23] <The_8472> via DHT
[19:43:03] <erdgeist> The_8472: who'm exactly do you send those announces to? I.e. how do you discover your first neighbours?
[19:43:04] <The_8472> so it could take 20-30 minutes or so just to do the announces. And if many people would do it then the DHT traffic would rise from ~1kB/s to... more.
[19:43:19] <The_8472> those are 2 very different questions
[19:44:01] <The_8472> lookups are iterative, so the packets get spread all over teh DHT. but the final steps are the nodes where it'll be stored.
[19:44:02] <erdgeist> The_8472: I don't get it. You're just saying that DHT can _not_ replace tracker announces?
[19:44:11] <The_8472> no, i'm not
[19:44:17] <erdgeist> The_8472: okay
[19:45:01] <The_8472> as for how to discover your neighbors... any DHT node will do. either via some bootstrap node(s), from peers, from a cached table on your harddisk... anything works
[19:45:44] <erdgeist> The_8472: and if I'm a node, can I decide to store all announces that are sent my way?
[19:46:03] <The_8472> erdgeist, i don't understand your question
[19:46:38] <The_8472> i assume you don't know how DHTs, especially how Kademlia works?
[19:46:49] <erdgeist> The_8472: If I understand the DHT idea correctly, there's several nodes holding the information. All others just do know, which of their neighbourghs know a more specific prefix.
[19:48:12] <The_8472> hrrm, yes, those are the basics
[19:48:50] *** anakh has joined #bittorrent
[19:48:52] <erdgeist> So what exactly stops me from saying that I want to store all 160bits
[19:49:03] <erdgeist> store+provide
[19:49:42] <The_8472> every node has an ID. you are only responsible for and will only asked to take care of values that are "near" your ID
[19:50:19] <The_8472> but with the mainline DHT that ID can be chosen freely, thus you could insert a bunch of nodes near a specific key (e.g. a torrent hash you want to DoS) and thus absorb all traffic for that particular key
[19:50:36] <The_8472> to take over the entire keyspace you'd have to do a lot more than you have to do for a single key
[19:50:42] *** gilles has joined #bittorrent
[19:52:15] <erdgeist> The_8472: Hmmm. If I _know_ all the info_hashes, cant I simply generate IDs that make me the best match?
[19:53:49] <The_8472> things are done redundantly. so being the best match alone does no good
[19:54:14] <The_8472> things are stored on the 8 closest nodes to the key +- some noise
[19:54:46] <The_8472> so if you want to hijack 1 million torrents you basically have to run 8 million nodes
[19:55:02] <erdgeist> The_8472: well, I don't want to do harm but provide additional storage to make up for nodes behind firewalls/NAT
[19:55:05] <The_8472> and if you want to run that many nodes there are more efficient attacks on the DHT
[19:55:13] <anakh> well, one piece of code could masquerade as 8 million different IDs..
[19:55:31] <anakh> but we aren't out to do harm heh
[19:55:34] <The_8472> anakh, things are usually filtered by IP
[19:55:43] <The_8472> so you'd need that many IPs too
[19:55:51] <anakh> IPv6 support ... ?
[19:55:59] <The_8472> brand new, barely supported
[19:56:10] <The_8472> but yes, IPv6 causes even more security headaches
[19:56:13] <anakh> per ip:port or just per ip ?
[19:56:18] <anakh> (im working on a similar project as erd)
[19:56:27] <The_8472> depends on the implementation, really
[19:56:42] <erdgeist> The_8472: So _is_ there a way to start multiple requests?
[19:56:54] <erdgeist> The_8472: Or do you do that, anyway?
[19:57:22] <anakh> erdgeist: grab all udp traffic to your port for the /24 and you have 256 addrs.. good start :)
[19:57:30] <anakh> (yes, .0 and .255 would be usable)
[19:57:59] <erdgeist> anakh: I'd want to make it very tiny, deployable everywhere
[19:58:10] <The_8472> you lost me again
[19:58:26] <anakh> ah, i dont care about deployability really
[19:58:48] <anakh> btw, next week im gonna play with BT accelerating @ my isp
[19:58:59] <The_8472> <erdgeist> The_8472: well, I don't want to do harm but provide additional storage to make up for nodes behind firewalls/NAT <- while that's not really necesary for now it would be better to just randomly scatter long-lived nodes throughout the DHT at random IDs
[19:59:20] <anakh> since here global transit == expensive and sparse, internal traffic == cheap fiber
[19:59:35] <erdgeist> The_8472: okay
[19:59:41] <The_8472> anakh, you're assuming that there is more than 1 or 2 people downloading the torrent at the same time?
[20:00:05] <anakh> the_8472: uhm which conversation did you ask that question in.. dht or acceleration :)
[20:00:28] <erdgeist> The_8472: and the protocol does not allow multiple IDs on the same IP to be secure agains spoofing attacks...
[20:00:31] <The_8472> erdgeist, the DHT relies on uniform distribution of nodes. having nodes cluster around particular IDs has not been studied and thus could have negative effects
[20:00:57] <anakh> lets try and see then :)
[20:01:07] <anakh> and get a paper published if it leads to total meltdown!
[20:01:32] <The_8472> erdgeist, the protocol is mute on that aspect. it's up to implementations to handle that... but it's strongly discouraged behavior
[20:01:45] <anakh> actually i think it'd be pretty easy to bring much of global dht down for a determined attacker
[20:01:51] <The_8472> anakh, about acceleration
[20:02:01] <anakh> the_8472: ah..
[20:02:04] <anakh> well
[20:02:22] <anakh> ill only have it kick in once a certain number of local clienst are announcing the same infohash
[20:02:35] <anakh> the isp transproxies http so its easy to proxy tracker requests
[20:02:54] <DWKnight> bep23?
[20:03:04] <DWKnight> no
[20:03:06] <DWKnight> wrong one
[20:03:08] <anakh> when > magicnr is reached, the accelerator kicks in and starts leeching from the present local nodes
[20:03:10] <DWKnight> bep 22
[20:03:16] <DWKnight> http://bittorrent.org/beps/bep_0022.html
[20:03:57] <anakh> + local nodes gets added to the peers from the tracker(s)
[20:04:22] <The_8472> regarding running multiple nodes on 1 IP. you could probably get away with running them with vastly different IDs. but running multiple nodes with very similar IDs on 1 IP is a big no-no
[20:04:28] <anakh> and accelerator is nailed as part of all responses for torrents it accels
[20:04:32] <erdgeist> The_8472: I'd not do that
[20:04:47] <anakh> thats ok.. i have a /24 at home :)
[20:05:15] <The_8472> <anakh> the isp transproxies http so its easy to proxy tracker requests <- urgh. great. you do know that trackers need to know the proper external IP of a peer? proxying is a horrible thing to do
[20:05:39] <The_8472> not to mention that private trackers won't like that... not that i care
[20:05:43] <anakh> the_8472: well isp is gonna trans proxy regardless of what we do .. :)
[20:05:55] <DWKnight> anakh: israeli ISPs tried that
[20:05:57] <anakh> like i said, global transit is very expensive here ..
[20:06:00] <erdgeist> The_8472: opentbittorrent now is able the use X-Forwarded-For: Header
[20:06:06] <erdgeist> The_8472: still it's very spoofable
[20:06:08] <DWKnight> and failed in a HORRIDLY broken manner
[20:06:20] <anakh> dwknight: so lets see if we fail in a similar broken manner then :)
[20:06:43] <The_8472> did someone just say "let's reinvent the squared wheel"?
[20:06:49] <DWKnight> yes
[20:07:02] <anakh> this isp has kinda special circumstances like i said
[20:07:04] <DWKnight> except they're going to try for 3-sides
[20:07:34] <erdgeist> Well, there IS a way to just be a tracker proxy. If you're the ISP, anyway, you can then also deploy the proxy-bittorrent-client and be good
[20:07:37] <anakh> 1. transparent http proxy isnt going anywhere 2. high speed within network but not outside
[20:07:40] <The_8472> heh, polygonal wheels work better with increased numbers of edges, not decreased ones
[20:07:56] <anakh> the_8472: hahaha thats gonna be my new motto
[20:07:59] <erdgeist> The_8472: if the amount of edges is 1, youre best off ;)
[20:08:15] <The_8472> a circle is not a polygon
[20:08:27] <anakh> <weird project #4711> - improving the square wheel, because polygonal wheels work better with more edges!
[20:08:38] <The_8472> so, what you want is a regular polygon with an infinite number of edges
[20:08:44] <DWKnight> the closest you get to a circle in logo, you have 360 edges
[20:08:48] <erdgeist> The_8472: it is. Its a polygon with infinite number of edges
[20:09:24] <The_8472> yes, but you said 1 instead of ?
[20:09:27] <anakh> http://mathworld.wolfram.com/Circle.html :P
[20:09:54] <anakh> A circle can also be viewed as the limiting case of a regular polygon with inradius r and circumradius R as the number of sides n approaches infinity (a figure technically known as an apeirogon).
[20:10:16] <erdgeist> The_8472: That'd be a very funny wheel
[20:11:01] <The_8472> anyway, back to the issue... what are you actually trying to achieve?
[20:11:47] <erdgeist> Prepare a bailout strategy. To remove the single point of failure that a tracker is while promoting DHT
[20:13:18] <The_8472> getting more users to use clients with DHT support or get client devs who haven't done it yet to include DHT into their client would be good
[20:13:41] <anakh> the_8472: think of what he/we are trying to do as providing supernodes a bit like trackers are provided today
[20:14:10] <The_8472> the DHT is not designed for such things. it assumes a smooth distribution of nodes throughout the keyspace
[20:14:19] *** gilles has quit IRC
[20:14:34] <DWKnight> dht is more decentralized than supernode-style networks like gnutella
[20:15:10] <The_8472> the only nodes that experience more load than average are those that are the closest ones to highly popular keys.
[20:15:40] <The_8472> and even that does not require supernodes. in the azureus DHT we have key diversification to cover that issue
[20:16:08] <The_8472> in the mainline DHT it would require some trickery... but i think it would be possible to spread the load over more nodes too
[20:17:17] <The_8472> the only nodes that are really of more importance than others are the boostrap nodes. but they're exchangeable. you just need to plug them into the clients
[20:17:23] <The_8472> so anyone could run them
[20:17:53] <The_8472> really, right now there are other - more important - things to fix on the mainline DHT than load issues
[20:18:51] <erdgeist> The_8472: problems I can contribute to?
[20:18:53] <alus> such as?
[20:19:29] <anakh> what about fixing the fact that DHT nodes can be used as DoS amplifiers .. ? :)
[20:19:35] <The_8472> well, lack of scrapes is the most important functional shortcoming when it comes to replacing trackers
[20:19:55] <The_8472> everything else are mostly DoS/security issues
[20:19:59] <erdgeist> The_8472: what do you need scrapes for?
[20:20:22] <The_8472> a) indexing sites (so that users can assess the liveness of a torrent) b) queues within clients
[20:20:28] <erdgeist> The_8472: tracker responds with everything you need in its announce replies
[20:20:51] <The_8472> <The_8472> well, lack of scrapes is the most important functional shortcoming when it comes to replacing trackers
[20:20:55] <DWKnight> except when the torrent isn't in an active state
[20:21:05] <The_8472> and yes, that too
[20:22:53] <erdgeist> The_8472: btw: does azureus use the downloaded-key in announce replies?
[20:23:29] <The_8472> yes
[20:23:40] <The_8472> we display it as "Completed: ..."
[20:24:08] <erdgeist> The_8472: Well, we included it when we noticed, that clients sent announce/scrape-pairs
[20:24:34] <erdgeist> The_8472: For the only reason for scrapeing was getting downloaded count
[20:25:34] *** goussx has quit IRC
[20:25:50] <DWKnight> biggest bandwidth-saver I ever implemented on the scrape side was the support for having multiple torrent-specific scrapes in a single request
[20:25:55] *** goussx has joined #bittorrent
[20:26:22] <erdgeist> DWKnight: multiscrapes you mean?
[20:26:52] <The_8472> that's even more of an issue with the DHT. implementing scrapes is one thing, doing scrapes for 100s of torrents in parallel... ugh
[20:26:53] <erdgeist> DWKnight: charles@Transmission would like to see multi-announces, to save time when shutting down
[20:27:23] <The_8472> how about just using HTTP pipelining instead...
[20:27:36] <erdgeist> The_8472: I've implemented HTTP keep alive
[20:27:39] <The_8472> even UDP announces can be pipelined to some extent by reusing the token
[20:27:49] <anakh> scrape info can be stored distributed..
[20:27:51] <erdgeist> The_8472: but still, HTTP headers waste a lot of bw
[20:28:12] <erdgeist> The_8472: does Azureus support keep-alive?
[20:28:19] <The_8472> erdgeist, bandwidth is probably not the issue on shutdown, TCP connection setup and teardown is probably slower
[20:28:29] <The_8472> we could support it, it's off though i think
[20:28:30] <erdgeist> The_8472: yes
[20:28:38] <anakh> as we both know the primary bottleneck on a BT tracker is the damn TCP stack :-)
[20:28:53] <erdgeist> The_8472: Hmmm, I've implemented it and want to switch it on, soonish
[20:29:09] <erdgeist> The_8472: but not without keeping an eye on the impact it has
[20:29:22] <DWKnight> [3:28:44pm] <anakh> as we both know the primary bottleneck on a BT tracker is the damn TCP stack :-) <-- network card drivers are next
[20:29:28] <erdgeist> DWKnight: no
[20:29:40] <DWKnight> other way around?
[20:29:41] <erdgeist> DWKnight: tcp stack is the single most disturbing factor
[20:29:42] <The_8472> well, we just close the connection right now, so it shouldn't cause (much) additional costs if the server supports it but goes unused
[20:29:43] <anakh> nope
[20:29:56] <DWKnight> I know we haven't really hit any cpu-bound systems yet on the tracker side of things
[20:29:58] <anakh> if you use good nics with good drivers then drivers certainly wont be a problem
[20:30:09] <erdgeist> The_8472: It's a tradeoff. It would be nice to only keep alive, if you plan on sending multiple requests
[20:30:14] <anakh> i mean ive routed 200-300Kpps and several Gbps with Intel NICs
[20:30:19] <anakh> why would announces be any different
[20:30:26] <erdgeist> The_8472: We shut down the socket as soon as our answer is out
[20:30:35] <anakh> (in a not-that-highend box)
[20:30:40] <anakh> (3 years ago)
[20:30:44] <erdgeist> The_8472: to save file descriptors and get socket states removes asap
[20:31:07] <erdgeist> The_8472: in the moment we switch on keep-alive, those sockets stay open
[20:31:12] <The_8472> hrrm, then we can't easily make use of it. only scrapes are bunched together. announces don't share common timing or anything like that
[20:31:17] <erdgeist> The_8472: which is a lot of wood with 20k connections/s
[20:31:27] <anakh> i experimented with writing my own userland tcp stack because of the TCP stack bottlenecks but the problem ended up being packet losses when doing kernel<>userland IO
[20:31:27] <erdgeist> The_8472: on shutdown they do
[20:31:30] <anakh> even with zerocopy
[20:31:34] <erdgeist> The_8472: and on startup, too
[20:31:37] <The_8472> well, if the client closes the connection then you can close the socket too ^^
[20:32:01] <anakh> => phonecall from isp at 3 am "what the hell are you doing that's crashing our cisco 124xx?"
[20:32:15] <erdgeist> The_8472: it's easier to just close it than to wait for the client to start the teardown
[20:32:20] <The_8472> erdgeist, i'm talking about code. the announces don't know about each other on the code side
[20:32:28] <erdgeist> The_8472: why not?
[20:32:35] <erdgeist> The_8472: It is one client, isn't it
[20:32:36] <The_8472> because there is no need
[20:32:39] <anakh> which is one of the reasons i wanna do this with dht, 1 "supernode" could handle a lot more than 1 tracker
[20:32:40] <erdgeist> The_8472: transmission can do it
[20:32:46] <anakh> because the protocol is a tad more efficient
[20:32:49] <The_8472> i didn't say it's impossible
[20:32:58] <The_8472> i'm just saying things aren't implemented like that
[20:33:07] <erdgeist> The_8472: Do you do a clean event=stopped when quitting azureus?
[20:33:16] <The_8472> yes
[20:33:33] <erdgeist> The_8472: so you're waiting for _all_ responses, too before finally shutting down?
[20:33:58] <erdgeist> The_8472: maybe you should then queue and sort all startup and shutdown announces
[20:34:56] <The_8472> yes, maybe. but turning on keepalive is just changing 1 line of code. actually coordinating the announces just doesn't happen. they _might_ reuse the connection by coincidence
[20:35:13] <erdgeist> The_8472: you outsource that to curl?
[20:35:32] <The_8472> to java's http url connection class
[20:35:49] <The_8472> which caches keep-alive connections
[20:36:15] <erdgeist> The_8472: so on shutdowns it would bundle them, by itself?
[20:36:21] <The_8472> possibly
[20:36:36] *** mxs has quit IRC
[20:36:40] *** mxs_ has joined #bittorrent
[20:37:21] <The_8472> the thing is, if you close the connection your end as soon as the answer is sent then idk if they're sent in a timely manner
[20:37:32] <The_8472> and how the re-use behavior is
[20:37:55] <The_8472> pipelining and keepalive are not the same after all
[20:38:06] <erdgeist> The_8472: well, I would stop closing the connection, if the client says keep-alive
[20:38:10] <erdgeist> The_8472: yes and no
[20:38:12] <burris> The_8472, mainline DHT was in private beta when az announced theirs...  pretty funny that you blame bram and the mainline people for NIH and rolling their own
[20:38:23] <erdgeist> The_8472: you cant use pipelining without keep-alive
[20:38:54] <The_8472> burris, we were first to market. what is done in private beta... cannot be divined by those outside those private circles
[20:39:04] <The_8472> not to mention that ours was public... nightly builds and all
[20:39:16] <The_8472> erdgeist, you can use keep-alive without pipelining
[20:39:23] <The_8472> which is exactly the point which i was making
[20:39:24] <erdgeist> The_8472: yes
[20:39:43] <erdgeist> The_8472: and the _still_ would be better
[20:39:52] <erdgeist> The_8472: s/the/that/
[20:39:59] <The_8472> well, keep-alive is easier then
[20:40:52] <erdgeist> I'll try it and if openbittorrent crashes, I'll roll it back :)
[20:40:59] <The_8472> burris, not to mention that NIH does absolutely apply to the extended messaging protocols or pex.
[20:41:10] <The_8472> hahaha
[20:43:03] <alus> what? mainline followed with extended messaging and pex after uT and LT already supported it
[20:43:12] <alus> also see: protocol encryption
[20:43:29] <The_8472> yes, protocol encryption is how it should be done.
[20:43:31] <alus> AZ is the odd-man out with an extension protocol
[20:43:37] <The_8472> huh?
[20:43:46] <The_8472> we had the az messaging protocol long before LTEP was invented
[20:44:07] <The_8472> it was introduced the same time we added the az DHT
[20:45:22] <The_8472> pex came 1 or 2 releases later i think
[20:46:34] <burris> sounds like you're jealous that BT mostly ignores az's aspirations to control the protocol
[20:46:58] <The_8472> 2005.05.02 | Azureus 2.3.0.0
[20:46:59] <The_8472> FEATURE: Core | Inter-client peer exchange [Nolar]
[20:47:01] <erdgeist> Ouhm, what have I gotten myself into here?
[20:47:30] <The_8472> burris, huh?
[20:48:18] <erdgeist> Does anyone out there still use brams python client, at all?
[20:48:48] <The_8472> no, if they use a python client they use bittornado i think
[20:49:28] <erdgeist> The_8472: and what exactly does Bram sell, now?
[20:49:35] <The_8472> burris, how is the fact that we invent a custom extension (az messaging + pex) different from libtorrent inventing it too, later... and incompatibilty
[20:49:46] <TheSHAD0W> Well, BitTornado doesn't have DHT, and given TPB's latest move it may be seriously deprecated pretty soon.
[20:49:48] 
[20:50:07] <erdgeist> TheSHAD0W: What exactly is TPB's latest move?
[20:50:25] <TheSHAD0W> They're dropping their trackers and relying entirely on DHT.
[20:50:39] <TheSHAD0W> As well as going with magnet-type links.
[20:50:41] <erdgeist> TheSHAD0W: no, they don't
[20:50:51] <TheSHAD0W> No?
[20:51:00] <The_8472> then they don't believe their own propaganda ^^
[20:51:06] <erdgeist> TheSHAD0W: No.
[20:51:24] <erdgeist> TheSHAD0W: There is this community-funded openbittorrent.com project
[20:51:53] <TheSHAD0W> http://torrentfreak.com/the-pirate-bay-tracker-shuts-down-for-good-091117/
[20:53:12] <The_8472> though i must say that torrentfreak is not the best source of news... it tends to be sensationalistic
[20:54:10] <TheSHAD0W> I first went looking for a press release on the TPB site, couldn't quickly find one.
[20:54:29] <The_8472> it's always on their blog
[20:54:46] <TheSHAD0W> I don't read Swedish.  :-P
[20:55:14] <The_8472> it's mostly english
[20:55:19] <erdgeist> Ernesto is not a very good journalist, no
[20:55:23] <TheSHAD0W> Oh, where is it?
[20:55:30] <burris> erdgeist, people now use bram's BitTorrent/uTorrent clients in very great numbers
[20:55:32] <TheSHAD0W> Ah, there.
[20:55:33] <The_8472> http://thepiratebay.org/blog
[20:55:55] <erdgeist> burris: they bought uTorrent?
[20:56:06] <burris> erdgeist, three years ago
[20:56:10] <TheSHAD0W> ...
[20:56:15] <TheSHAD0W> Can't read it.
[20:56:16] <erdgeist> burris: Hopefully they improved that client
[20:56:16] * DWKnight digs erdgeist out of his cave
[20:56:21] <anakh> hm
[20:56:21] <TheSHAD0W> It's not coming up on my browser.
[20:56:23] *** anakh is now known as anakata
[20:56:27] <anakata> guess im more well known this way :)
[20:56:36] <TheSHAD0W> Ooo.
[20:56:49] <The_8472> ah yes ^^
[20:56:49] <erdgeist> The blog is empty
[20:56:55] <TheSHAD0W> You're the author of hypercube?
[20:56:58] <burris> erdgeist, BT is just rebadged uT now
[20:57:02] <anakata> theshadow: yeah
[20:57:08] <TheSHAD0W> Nice...
[20:57:10] <anakata> didnt have time to keep supporting it though
[20:57:22] <TheSHAD0W> I went looking for you once, trying to find out how you'd licensed it...
[20:57:27] <erdgeist> burris: uT is the only client we'd ever had to patch our HTTP parser for
[20:57:28] <TheSHAD0W> You have some very protective friends.  ^__^
[20:57:28] <anakata> oh
[20:57:32] <anakata> i now i have a license!
[20:57:46] <erdgeist> opentracker has a very simple licence ;)
[20:57:47] <anakata>  * This is free to use in any product, commercial or non-commercial, closed or open source, as long as
[20:57:51] <anakata>  * the following conditions are met:
[20:57:53] <anakata>  * a)
[20:57:56] <anakata>  *   You are NOT affiliated with the RIAA, MPAA, MPA, IFPI, or any similar organization in any way.
[20:57:59] <anakata>  * b)
[20:58:02] <anakata>  *   You are NOT affiliated with any of the following Swedish government entities in any way:
[20:58:02] <The_8472> pastebin...
[20:58:05] <anakata>  *   - Skatteverket / Riksskatteverket / Skattemyndigheten / Kronofogdemyndigheten / Kronofogden
[20:58:09] <anakata>  *   - Polisen / Polismyndigheten / Rikskriminalpolisen / Lanskriminalpolisen
[20:58:10] <erdgeist> Too late :/
[20:58:12] <anakata>  *   - Aklagarmyndigheten / Domstolsverket
[20:58:16] <anakata>  * c)
[20:58:18] <anakata>  *   Credit is given to "Estoy Ltd. Seychelles IBC <http://www.estoykh.com>"
[20:58:19] <erdgeist> *scroll*
[20:58:21] <anakata> (sorry for long paste :))
[20:58:45] <TheSHAD0W> Hehe.
[20:58:48] <burris> you don't need a license to use software, since using an authorized copy of software isn't an exclusive right of copyright holders
[21:00:44] <erdgeist> burris: What's your point here?
[21:00:58] <erdgeist> burris: you're not really buying the legales aspects of the license?
[21:01:40] <anakata> well if you belong to any of the groups prohibited according to it i you do per definition believe in a strict copyright regime for digital media :)
[21:02:40] <erdgeist> anakata: no, you don't. you just prented to in whichever circumstances make you the most money
[21:02:51] <anakata> ah right
[21:03:54] <The_8472> they believe in fair use too, if they can include it in their own productions after all
[21:04:27] <burris> reminds me of those "welcome to my krad bbs, if you're a cop or journalist please disconnect now"
[21:04:36] <anakata> i'd definitely sue if it was violated though!
[21:05:18] <anakata> demand a civil-party search warrant, IPRED information judgement, temporary injunction, etc
[21:05:47] <The_8472> and face hordes of overpaid lawyers?
[21:05:49] <erdgeist> anakata: eheh. which would -- of course -- be totally successful
[21:06:27] <anakata> no, but which would cost them a lot of time and money
[21:06:34] <anakata> and be funny as hell
[21:06:56] <The_8472> which they then just include in their calculations for their next extortion campaign
[21:08:12] <anakata> consiering how pissed off mr danowsky got over my little "DDo$" hack i came up with when i was drunk on a satellite connetion at the edge of civilization i can't really imagine how pissed they would be at orchestrated lega flooding..
[21:08:26] <anakata> legal*
[21:08:38] <anakata> oh well
[21:08:42] <anakata> more tech, less legalese!
[21:09:24] <The_8472> <anakata> more tech, less legalese! <- excellent approach
[21:09:49] <erdgeist> The_8472: *nod*
[21:09:59] <anakata> whats a good low-weight linux bt client that does DHT well ?
[21:10:09] <anakata> funnily enough i rarely use bt myself :p
[21:10:21] <TheSHAD0W> For *nix?  Or Windows?
[21:10:30] <anakata> *nix
[21:10:41] <TheSHAD0W> ...
[21:10:46] <TheSHAD0W> None.  :-P
[21:10:58] <erdgeist> anakata: transmission, soonish
[21:11:00] <TheSHAD0W> Well, maybe there's a libtorrent derivative out there.
[21:11:04] <anakata> im not gonna fucking start vmware to do bt!
[21:11:17] <anakata> besides vmware eats more memory than physically available about half the times i start it :PP
[21:11:20] <TheSHAD0W> utorrent will run in wine...
[21:11:35] <TheSHAD0W> vuze will run in Linux, but calling it low-weight would be an error...
[21:11:37] <anakata> could setup rdesktop to some win box at the office on monday
[21:12:10] <The_8472> well, you could make a standalone version of the mainline dht plugin for vuze, it's fairly independent code
[21:12:19] <TheSHAD0W> Even BitTornado has some "weight" issues.
[21:12:26] <anakata> i want a known reference client for testing :p
[21:12:37] <anakata> im not gonna develop dht stuff with my code at both ends of the communication
[21:12:53] <TheSHAD0W> utorrent is "the" reference client ATM, and it'll run in wine.
[21:12:57] <anakata> cool
[21:13:04] <erdgeist> burris: are you involved with uT-development?
[21:13:07] <anakata> yeah i know utorrent is kinda reference for win
[21:13:15] <anakata> and ludde is a nice guy :)
[21:13:37] <anakata> spotify launch party couldve had more booze though ..
[21:13:52] <DWKnight> EVERY launch party can have more booze
[21:14:00] <burris> DWKnight++
[21:14:07] <DWKnight> either by volume
[21:14:09] <DWKnight> or by quality
[21:14:11] <burris> erdgeist, nope
[21:14:27] <anakata> actually there is a limit
[21:14:39] <anakata> i once was at a party that ended up with me arrested for attempted murder... :p
[21:15:01] <anakata> ok wtf
[21:15:02] <TheSHAD0W> o__O
[21:15:15] <anakata> i hit 'Install' in the installer and nothing happens except i get this error
[21:15:19] <The_8472> there even is a physical limit. too much booze and the schwarzschild radius would exceed it's own volume (if contained in any compact body such as a sphere)
[21:15:21] <anakata> fixme:actctx:parse_depend_manifests Could not find dependent assembly L"Microsoft.Windows.Common-Controls"
[21:16:04] * TheSHAD0W has a copy of an early utorrent beta
[21:16:09] <TheSHAD0W> Dated 2004...
[21:16:32] <anakata> hm maybe vmware wont eat my soul if i add like 8gb swap..
[21:16:47] <TheSHAD0W> Why won't you use wine?
[21:17:02] <TheSHAD0W> It's bloaty but nowhere like vmware...
[21:18:23] <anakata> i just tried and it didnt work :(
[21:18:47] <TheSHAD0W> Really?
[21:18:48] <TheSHAD0W> Hm.
[21:18:52] <DWKnight> what ut/wine versions?
[21:19:05] <anakata> latest ut
[21:19:12] <anakata> wine says wine-1.0
[21:19:16] <anakata> probably ancient as fuck
[21:19:23] <anakata> i only upgrade if actually neccessary
[21:20:14] <anakata> and oh regarding not upgrading, there doesnt happen to be any BT client for IBM OS/360? :P
[21:20:39] <TheSHAD0W> Got a Python interpreter for it?  ^__^
[21:20:48] <anakata> is COBOL close enough? :PP
[21:20:57] <anakata> this aint *ix :)
[21:21:13] <anakata> the architecture/design is quite exactly 100% upside down
[21:21:22] <anakata> for example, out of the box the system doesnt have multitasking
[21:21:35] <anakata> or any multiuser capabilities
[21:21:54] <anakata> you have to run the Time Sharing Option module to get that
[21:22:14] <anakata> and it doesnt exactly have 'sockets'..
[21:22:20] <The_8472> what does it do when it sees more than 1 CPU? ^^
[21:22:48] <anakata> well when you boot os/360 it enters batch mode
[21:23:03] <anakata> think mid-70's, university, students feeding punched cards to a mainframe
[21:23:27] <The_8472> ah yes, i have read about that in history books
[21:23:37] <The_8472> i think 1 or 2 chapters after hand-axes
[21:23:58] <anakata> im currently trying to get os/360 compilation (well, assembly) going in an emulator
[21:24:13] <anakata> there's something about 1.9 million lines of archaic ASM...
[21:31:18] <anakata> by the way, for the next version of BT, can someone please please replace benc :)
[21:34:03] <alus> with ebencode? :D
[21:34:03] <TheSHAD0W> Bencode?
[21:34:07] <alus> or json
[21:34:13] <alus> but json sucks - it requires escaping
[21:34:16] <anakata> with something i design based on esbuf_serialize()!
[21:34:30] <alus> anakata: what is that
[21:34:41] <anakata> my serializing/unserializing functions :p
[21:34:49] <alus> are they length-prefixed?
[21:35:02] <anakata> generally yes
[21:35:07] <alus> well that would be fine then
[21:35:09] <anakata> unless for fixed len datatypes
[21:35:13] <alus> sure
[21:35:14] <TheSHAD0W> http://estoykh.com/opensource/esbuf/
[21:35:17] <anakata> they currently dont have built-in nesting though
[21:35:31] <DHE> is bencoding really that bad?
[21:35:33] <anakata> but its easy to do with an external layer
[21:35:42] <The_8472> <anakata> by the way, for the next version of BT, can someone please please replace benc :) <- why? bencoding only lacks a few data types imo
[21:35:53] <The_8472> parsing it is pretty straightforward and can be done single-pass
[21:36:02] <anakata> dhe: it just doesnt feel like its meant to 1) be decoded as effectively as possible and 2) be decoded in a language that doesnt have built-in associative arrays
[21:36:45] <TheSHAD0W> If the language doesn't have associative arrays, then it's going to be a pain whatever you do.
[21:36:50] <The_8472> indeed
[21:37:05] <alus> anakata: what do you mean by effective decoding?
[21:37:08] <The_8472> and decoding is actually pretty fast with bdecoding if you optimize your implementation a bit
[21:37:40] <DHE> I made something pretty decent in PHP. It was my teach-myself-PHP project and it worked out perfectly. It couldn't have been that bad.
[21:37:45] <The_8472> unless you insist on zero-copy behavior
[21:37:52] <erdgeist> Ahh, I still like it
[21:38:02] <anakata> alus: performance?
[21:38:06] <anakata> code size?
[21:38:11] <erdgeist> I have abstracted it away in C, without copying
[21:38:18] <anakata> ya its definitely doable
[21:38:26] <anakata> thats not the problem
[21:38:51] <erdgeist> and it's got very fast caching accessors
[21:38:53] <anakata> writing an XML parser was just several hours of intense agony
[21:38:56] <anakata> benc cant be any worse
[21:39:16] <The_8472> bencoding is way simpler than XML parsing
[21:39:19] <alus> anakata: http://barnesc.blogspot.com/2006/01/rencode-reduced-length-encodings.html
[21:39:33] <erdgeist> well, it's sorted alphabetically.
[21:39:40] <anakata> for one- or two-byte keys you can do some nice integer tricks atleast
[21:39:45] <alus> anakata: btw no way did you write a fully compliant XML parser ;)
[21:39:53] <TheSHAD0W> anakata: I know you're a great coder, but don't reinvent the wheel; there are several C codecs out there.
[21:40:12] <anakata> when you now what data to expect
[21:40:16] <anakata> alus: heh no
[21:40:33] <anakata> theshadow: i need them to use my buffer/memory mgmt
[21:40:43] <anakata> thats one of the primary reasons i wrote my own xml lib
[21:40:54] <The_8472> wrap malloc?
[21:41:08] <anakata> it doesnt exactly work that way :)
[21:41:19] <anakata> besides i generally dont trust other peoples stuff
[21:41:27] <The_8472> people even implemented garbage collection for C by replacing malloc and free...
[21:41:35] <anakata> thats related to what i do
[21:41:56] <anakata> it uses a concept called 'contexts'
[21:42:02] <anakata> all allocated buffers belong to a context
[21:42:04] <The_8472> anyway, bencoding is not really bad. maybe a bit unflexible... but we have tons of maps (associative arrays) to throw around in bittorrent
[21:42:12] <The_8472> so it's quite appropriate for that use
[21:42:15] <anakata> one context can be for example one program module, one connection, one function, etc
[21:42:35] <The_8472> 2 words: garbage collector
[21:42:46] <anakata> i want full manual control though
[21:43:11] <The_8472> well, D provides garbage collection + manual memory management
[21:43:35] <anakata> i don't code C because i want stuff to happen by magic :p
[21:43:56] <alus> yeah manual memory control is nice, even if there is a GC
[21:44:02] <erdgeist> I only code C because I don't want stuff magically happen
[21:44:31] <TheSHAD0W> C is great because of its low level.
[21:44:44] <The_8472> well, i prefer stuff to happen magically, if it's in a well-specified way. like the convention-over-configuration stuff in grails
[21:44:50] <TheSHAD0W> Gives you the best possible efficiency and predictability.
[21:44:52] <anakata> i code either c, asm or shellscript
[21:44:55] <anakata> thats the 3 levels i need :)
[21:44:59] <TheSHAD0W> But I prefer Python because I'm damn lazy.  :-P
[21:45:11] <The_8472> C is just beautified asm imo
[21:45:18] <The_8472> way too unproductive
[21:45:53] <The_8472> good for high-performance stuff... but you have to do way too much manually where it's not necessary
[21:45:55] <anakata> asm is pretty productive on its own .. ? :P
[21:46:24] <erdgeist> The_8472: Depends on the level of abstraction you can provide through libraries
[21:47:40] <The_8472> another thing that always perplexed me about C is that it claims to be low-level... and yet has not a single function to let me check overflows after arithmetic operations
[21:48:41] <anakata> yeah, that and bitwise rotation
[21:48:52] <anakata> though overflow handling isnt entirely platform independent
[21:49:15] <The_8472> well, compilers optimize rotation if you do a << x | a >> n-x
[21:49:25] <erdgeist> It's a macro assembler and can only abstract what processors provide
[21:49:30] <alus> anakata: have you looked at Go?
[21:49:50] <anakata> Go?
[21:50:03] <alus> http://golang.org/
[21:56:23] *** GTHK has joined #bittorrent
[21:57:50] <anakata> thanks but no thanks
[21:58:04] <alus> haha
[21:58:19] <alus> the type system is neat though
[21:58:24] <alus> and uh, coroutines are good
[21:58:35] *** nGTHK has joined #bittorrent
[22:06:47] *** The_8472 has quit IRC
[22:06:58] <anakata> heh me and erdgeist had a discussion on formats for serializing earlier, and he said that even with an entirely binary format you'll still have overhead because of big/little endian... so of course i had to check if gcc -O3 doesnt properly use BSWAP on x86/64 so endianness conversions only means a few cycles extra :)
[22:07:17] *** The_8472 has joined #bittorrent
[22:07:19] <anakata> i think i still havent gotten over my youth of doing gfx for 486 and early pentium :P
[22:08:51] <alus> aren't you optimizing a bit beyond the speed of transfering the data over the network anyway?
[22:09:06] <anakata> back then network meant 28k8 dialup!
[22:09:07] <anakata> :D
[22:10:05] <anakata> oh the nostalgia... timing with the horizontal retrace and doing various tricks with the gfx card between each line
[22:11:14] <anakata> any interrupts enabled such as normal 18.2Hz timer == instant fail :)
[22:13:02] <anakata> though you could get enough spare cpu time to do a round of PIO adlib/soundblaster music playing in the mainloop provided that you werent doing raster tricks with the entire monitor.. i remember that i used this to do effects in textmode apps
[22:13:06] <anakata> nostalgiaaaaaa :(
[22:13:25] <alus> anakata: do we need to put you back in your rockingchair?
[22:13:36] <anakata> kids of today blah blah blah blah !
[22:13:38] <anakata> young whippersnapper !
[22:14:02] * The_8472 grins and enables double buffering
[22:14:33] <anakata> did a fun version of double buffering when doing effects in 80x25 textmode
[22:14:48] <anakata> changed it to 160x25 (with 80x25 visible)
[22:15:53] *** GTHK has quit IRC
[22:16:16] <anakata> ok, how do you change the damn tmp dir of vmware ?!
[22:16:34] <alus> rm -rf
[22:23:14] *** gilles has joined #bittorrent
[22:25:21] <anakata> so, what would happen if you manually created/edited torrents so that your dht host:port would be included in nodes?
[22:26:02] <The_8472> nothing special, dht implementations may use those nodes to bootstrap their DHT if they couldn't bootstrap so far
[22:26:03] <anakata> couldnt you make sure you actually get included in all lookups?
[22:26:10] <The_8472> no
[22:26:32] <The_8472> wouldn't be necessary anyway
[22:28:33] <anakata> oh well will see what i can accomplish
[22:28:57] <anakata> if global dht has a meltdown a la mabell 1990 then you know who caused it :p
[22:50:52] *** bt42 has quit IRC
[23:18:41] *** gilles has quit IRC
[23:24:11] *** MassaRoddel has quit IRC
[23:27:25] *** anakata has quit IRC
[23:44:35] *** nGTHK is now known as GTHK
[23:54:19] *** HandheldPenguin is now known as HandheldPenguin`
[23:54:39] *** HandheldPenguin` is now known as HandheldPenguin
[23:55:07] *** HandheldPenguin is now known as HandheldPenguin`

top