December 29, 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 | 31


NOTICE: This channel is no longer actively logged.

[00:00:25] <klapaucjusz> Perfection, as somebody once said, is achieved not when there's nothing to add, but when there's nothing to remove.
[00:00:33] <The_8472> but... given the attacks demonstrated with the mainline DHT i do not see any other defenses that wouldn't decrease efficiency
[00:00:35] <choykloun> the BEST complex systems are those with simple parts
[00:00:44] <choykloun> where the sum is bigger than them
[00:00:47] <choykloun> like dht :)
[00:00:56] <The_8472> the DHT is simple. it is very simple. the devil is in the details
[00:01:02] <choykloun> ya
[00:01:11] <choykloun> and i want cryptooo ! (yells)
[00:01:40] <choykloun> sure i have three nodes here happily exchanging keys at a rate high for use in any dht client
[00:01:48] <choykloun> but they are kinda lonely :/
[00:01:49] <The_8472> crypto would be interesting, but it's the thing where i doubt people would agree on that
[00:02:12] <choykloun> and i never got much feedback on my suggestions for how the actual encrypted/obfuscated packets should look
[00:02:28] <The_8472> that's because i would do packet design based on needs
[00:02:47] <The_8472> to do that everyone would have to agree on what we want to do first
[00:03:15] <choykloun> it will both provide secure cryptography and pure obfuscation
[00:03:31] <choykloun> and in all cases lessen traffic patterns
[00:04:07] <choykloun> actual contents of the packets would be 100% random to a sniffer even without exchanging keys
[00:04:08] <The_8472> klapaucjusz, are you versed in math and set theory?
[00:04:27] <klapaucjusz> Only studied math five years, and only taught set theory one semester, why?
[00:04:49] <The_8472> taught set theory? excellent. i'll write up a problem for you :)
[00:05:02] <The_8472> you are familiar with the inclusion-exclusion principle i assume?
[00:05:11] <klapaucjusz> If it doesn't involve the axiom of choice, I'm not interested.
[00:05:25] <klapaucjusz> No idea what that is.
[00:05:28] <The_8472> it involves the DHT ^^
[00:05:38] <The_8472> http://en.wikipedia.org/wiki/Inclusion_exclusion_principle
[00:05:52] 
[00:05:52] <choykloun> dont go academic on our poor high-school dropouts :
[00:05:53] <choykloun> (
[00:05:58] <klapaucjusz> That's combinatorics, not set theory.
[00:06:10] <choykloun> well ok
[00:06:20] <choykloun> i do resort to academia for data structure stuff
[00:06:47] <The_8472> hrrm... i thought it's called set theory in english
[00:07:10] <klapaucjusz> I've always been useless at combinatorics.  But what is your problem?
[00:07:20] <choykloun> isnt one a subset of the other
[00:07:36] <The_8472> combining bloom filters without doing a union.
[00:08:06] <The_8472> i got it implement and it works, the problem is that i have an |intersect(S1,S2)|, but no |intersect(S1,...,Sn)|
[00:08:10] *** htunk has quit IRC
[00:08:27] <The_8472> and cascading the 2-operand ones to many-operand ones just does horrible things to accuracy
[00:08:41] <klapaucjusz> Yep.
[00:08:52] <klapaucjusz> I'm not competent to solve it myself, but I know who to ask.
[00:08:57] <choykloun> its funny how someone got thatnamed after him
[00:09:06] <The_8472> i found formulas and simplified them but i fail to extend it to many-operand ones ^^
[00:09:12] <The_8472> anyway, i'll post what i have
[00:09:14] <klapaucjusz> If you write it down and send me an e-mail, I'll be glad to find a person to work with.
[00:09:25] <choykloun> considering that i had used it on my own and also seen it in other ppls src long before i heard the term bloom filter
[00:09:26] <klapaucjusz> No, e-mail please, so I can edit it and forward it.
[00:09:47] <The_8472> just asking, who would that someone be?
[00:09:56] *** K`Tetch has joined #bittorrent
[00:09:57] <choykloun> the_8472: hm, you have two sets that you want to turn into one?
[00:10:22] <The_8472> choykloun, no. i have N sets and want the cardinality of their union without actually unioning them
[00:10:23] <klapaucjusz> A colleague of mine, who's a combinatorics expert, who comes to all of my talks about BitTorrent because he's interested, and who owes me a favour.
[00:10:37] <choykloun> puh-leez
[00:10:44] <klapaucjusz> He'll probably enjoy getting involved in BitTorrent work.
[00:10:44] *** htunk has joined #bittorrent
[00:10:45] <choykloun> explain this to someone who optimizes ASM code
[00:10:55] <The_8472> i'll write it down. will take a while
[00:11:17] * choykloun checks mathworld :p
[00:11:21] <klapaucjusz> Take your time.  I'll put you in CC.
[00:11:41] <The_8472> i'll post it on the forum, then convert it to an email ^^
[00:11:50] <choykloun> OK lets explain it like this - what do you want to accomplish?
[00:12:31] <choykloun> you dont want to actually merge them, so you want to do...
[00:12:38] *** K`Tetch has quit IRC
[00:13:24] <klapaucjusz> choykloun: you met 100 people this morning, and 100 people this afternoon.  How many people did you meet today?
[00:13:25] <choykloun> you want to test in multiple bloom filters with the least complexity / expense ?
[00:14:06] <klapaucjusz> Assuming you are allowed to build two small bloom filters, but not to keep a O(n) list of all the people you meet.
[00:14:23] <choykloun> ah
[00:14:26] <choykloun> now we're talking
[00:14:47] <choykloun> i'm the guy who has compulsive needs to make all my software as near-O(1) as possible
[00:15:53] *** GTHK has joined #bittorrent
[00:16:09] <choykloun> so.. he wants to know the NUMBER of elements?
[00:16:29] <choykloun> not whether a particular element is a member?
[00:17:03] <klapaucjusz> No.  He wants to compute the number of elements of the union of n bloom filters with better accuracy then computing the cardinal of the union.
[00:17:40] <choykloun> check check
[00:18:25] <choykloun> lemme just read up on set theory on mathworld so i dont sound as stupid if i get a similar question again
[00:18:32] <choykloun> its an interesting problem actually
[00:18:41] *** Waldorf has quit IRC
[00:19:54] <choykloun> this sounds like something that does have a creative solution
[00:19:57] <choykloun> hm hm
[00:20:15] *** K`Tetch has joined #bittorrent
[00:20:23] <klapaucjusz> The_8472: what do I return to get_peers?
[00:20:26] <klapaucjusz> Just nodes, right?
[00:20:34] <choykloun> yes
[00:21:03] <The_8472> klapaucjusz, on the bootstrap node?
[00:21:07] <klapaucjusz> Aye.
[00:21:10] <choykloun> unless you want to be a tracker and not a bootstrap helper :)
[00:21:12] <The_8472> nothing, people shouldn't be asking you for get_peers
[00:21:24] <The_8472> drop the request
[00:21:39] <The_8472> same for announce
[00:21:55] <The_8472> only ping and find_nodes
[00:22:33] <klapaucjusz> What's wrong with replying with nodes to get_peers?
[00:22:38] <klapaucjusz> (Agree about announce.)
[00:23:53] <The_8472> nothing wrong. it's just that you don't have to, and not answering will count as failed request, making it more likely to be dropped form other's routing tables
[00:24:50] <choykloun> is there some reliable way to tell whether its coming from a client doing bootstrapping or not?
[00:24:58] <klapaucjusz> No.
[00:25:08] <choykloun> like, use split horizon and avoid ending up in the original clients routing tables at all
[00:26:29] <klapaucjusz> Split horizon?
[00:26:43] <klapaucjusz> What's the relation?
[00:27:05] <choykloun> split horizon as in your bootstrap clients see one addr:port but you talk to the rest of dht from another
[00:27:21] <choykloun> but the first one will also end up in routing tables.. so is there a way to prevent that...
[00:27:57] <klapaucjusz> That has nothing to do with what is usually called split horizon.
[00:28:15] <choykloun> never heard of split horizon DNS?
[00:28:52] <choykloun> oh well. at least you get what i mean now regardless of what particular background we happen to be from :)
[00:29:06] <klapaucjusz> In split horizon DNS, you use the same IP:port for all peers, just give different reply to different parts of the universe.
[00:29:13] <choykloun> yeah
[00:29:48] <choykloun> but its related enough that i expected it to be understood
[00:30:05] <klapaucjusz> The_8472: I obey want, right?
[00:30:13] <choykloun> and there are some other networking related cases where its used about different interface
[00:30:43] <choykloun> so what about doing your best to get the hell out of nodes routing tables once you've helped them ?
[00:32:19] <choykloun> like how do dht clients behave if you give them a nodes response with your nodeid + the other addr:port ?
[00:32:23] <choykloun> do they replace it ?
[00:33:36] <The_8472> klapaucjusz: http://forum.bittorrent.org/viewtopic.php?pid=895#p895
[00:33:48] <choykloun> so, once you've supplied nodes, you
[00:34:02] <The_8472> klapaucjusz, idk... shouldn't matter all that much i think.
[00:34:07] <choykloun> 1) tell that node that you now live at the other side
[00:34:20] <choykloun> 2) stop responding to [most] queries from it
[00:34:34] <choykloun> should get your bootstrap side the hell out of the routing table
[00:34:38] <choykloun> or no?
[00:35:21] <The_8472> you don't know... or rather don't want to keep track of who's new (bootstrapping) and who isn't
[00:35:37] <The_8472> you have no way distinguishing those nodes
[00:35:57] <choykloun> thats what im trying to find out if there is
[00:36:06] <The_8472> well, you could check if they're doing a lookup to their own node ID and only answer that... but i doubt that all implementations actually follow that principle
[00:36:22] <choykloun> let me explain my idea again
[00:36:27] <klapaucjusz> The_8472: Transmission doesn't.
[00:36:28] <choykloun> you use two different addr:port's
[00:36:37] <choykloun> one is where you come to get bootstrapped
[00:36:40] <The_8472> klapaucjusz, then you're violating the spec ^^
[00:36:47] <klapaucjusz> By one bit.
[00:36:53] <The_8472> it's important
[00:36:56] <klapaucjusz> (I randomly invert one of the low bits.)
[00:36:57] <choykloun> the other is the one you talk normal DHT on
[00:37:09] <choykloun> and you try to prevent the first from ending up in any routing table
[00:37:10] <The_8472> oh, well... ok
[00:37:11] <klapaucjusz> The_8472: go ahead, I'm curious.
[00:37:26] <The_8472> if you just flip low bits for the bootstrap lookup, ok
[00:37:35] <choykloun> or being querid excessively, etc.
[00:37:40] <The_8472> it's just important that you do complete discovery of your local buckets
[00:37:49] <choykloun> not talking about changing nodeIDs
[00:37:54] <The_8472> it's paramount that the local buckets are as accurate as possible
[00:37:55] <klapaucjusz> That's to avoid peers answering with just my IP.
[00:38:10] <choykloun> or wait
[00:38:10] <klapaucjusz> Yep, only insert randomness in the low-order 8 bits.
[00:38:13] <The_8472> why would they do that?
[00:38:14] <choykloun> that wasnt to me
[00:38:26] <choykloun> oh, now its jch's turn to get flamed!
[00:38:27] <choykloun> muahaha
[00:38:39] <choykloun> you should see the things jchgout has support for
[00:39:00] <choykloun> like listening to multiple addr:ports and using a differente nodeID on each .. :)
[00:39:05] <klapaucjusz> choykloun: what does that buy you?
[00:39:16] <choykloun> i like to play with stuff :)
[00:39:25] <choykloun> and it does have some uses
[00:39:35] <The_8472> <klapaucjusz> That's to avoid peers answering with just my IP. <- why would they do that?
[00:39:39] <choykloun> like if you want to passively monitor as much of the dht network as possible
[00:39:45] <klapaucjusz> The_8472: I seem to recall that one of the numerous incompatible Kademlia definitions suggests returning a singleton for a query for a node that's in your routing table.
[00:39:58] <klapaucjusz> choykloun: what does having different IPs buy you?
[00:40:01] <The_8472> hrrm, that would be stupid.
[00:40:09] <The_8472> i always return the closest K nodes
[00:40:15] <klapaucjusz> So do I.
[00:40:21] <The_8472> excellent
[00:40:34] <klapaucjusz> But then, randomising the low-order 8 bits in bootstrap queries doesn't do much harm, does it?
[00:40:41] <The_8472> no
[00:40:53] <choykloun> klapaucjusz: dont certain clients get kinda upset if you have tons of nodeIDs on one ip addr?
[00:41:13] <The_8472> mine only tolerates 1 entry per IP per bucket
[00:41:16] <choykloun> and in any case i have a /24 so ...
[00:41:33] <The_8472> and 1 query per IP per lookup
[00:41:35] <choykloun> and i originally wrote this part when i was first playing with utorrent
[00:41:42] <The_8472> and 1 peer peer IP per target key
[00:41:45] <choykloun> and then i needed to be sure different nodes were really different
[00:41:47] <The_8472> *per
[00:42:12] <choykloun> but what it'd be useful now is doing studies of dht
[00:43:24] <choykloun> btw
[00:43:41] <choykloun> wouldnt also returning peers be somewhat of a possible idea..
[00:43:44] <choykloun> DHT tracker!
[00:45:38] <choykloun> oh well, i need to head off to work to a conference call from hell (10+ ppl spread out all over the world) and managing 10 ppl coding boring PHP projects in a few min :(
[00:45:39] *** joraff has joined #bittorrent
[00:45:59] <choykloun> and when i have time for play again i'm gonna implement some actual real routing in jchgout
[00:45:59] <joraff> hey everyone. can anyone here help with diagnosing some BT problems I'm having? Trying to use BT to distribute software on our LAN, instead of multicast
[00:46:14] <joraff> using opentracker and transmission-daemon 1.76
[00:47:38] <The_8472> klapaucjusz, http://forum.bittorrent.org/viewtopic.php?pid=895#p895 <- updated the post with a rationale for the request
[00:48:21] <choykloun> but still my pet project is crypto shit
[00:48:23] <The_8472> joraff, just curious... what's wrong with using multicast? it should have better performance than BT
[00:49:00] <joraff> our brand of switches just don't play nice with multicast
[00:49:16] <joraff> I've gone down the road of tweaking settings with our network admins
[00:49:37] <joraff> but never got good results
[00:49:57] <The_8472> mhh, that sucks. mcast based p2p is one of my pipe dreams
[00:50:12] <The_8472> anyway, what's your issue with BT?
[00:50:14] <klapaucjusz> joraff: just state your problem.
[00:51:34] <joraff> seeder and downloaders are all showing up on the tracker and are aware of each other at the clients
[00:51:41] <choykloun> btw what data structures do the proper dht clients use for the hash/routing table?
[00:52:04] <joraff> this is all on a LAN, so port blocking is not an issue.. all ports are open between clients
[00:52:35] <joraff> no connections are made between seeders and downloaders
[00:52:56] <choykloun> i'd have figured ppl use somthing akin to the algorithms done by IP routers etc. by now
[00:52:59] <klapaucjusz> You're behind NAT?
[00:53:21] <joraff> no, same VLAN even
[00:54:21] <klapaucjusz> You're using global IP addresses, then?
[00:54:25] <The_8472> choykloun, you can use a tree of buckets based on the binary prefixes. or you can just use a flat array of bucket and calculate the bit prefix. the latter algorithm is slightly unclean though since the closest K entries won't actually end up in the same bucket thus a few other algorithms need adaption too
[00:54:53] <choykloun> ya but i figured there was something less obvious implemented by now
[00:55:19] <choykloun> like in IP routing
[00:55:41] <The_8472> not needed, there are 160 buckets at most, ~20-30 in reality
[00:55:56] <The_8472> even organizing them in an unbalanced tree has close to 0 performance impact
[00:56:17] <joraff> klapaucjusz, global IP addresses? you mean address in private blocks, like 192.x?
[00:56:26] <klapaucjusz> The opposite, but yes.
[00:56:39] <choykloun> but you know how i am ...
[00:57:02] <The_8472> choykloun for performance... a flat array of buckets is as fast as it gets
[00:57:09] <The_8472> O(1) access time
[00:57:14] <choykloun> ya ya ya
[00:57:19] <choykloun> like i said, that's obvious
[00:57:40] <The_8472> as i said, it needs a few adjustments to behave according to the spec
[00:57:40] <choykloun> but there are algorithms for IP FIB lookups that provide faster inserts etc
[00:57:57] <The_8472> not needed, at all
[00:58:12] <joraff> klapaucjusz, in fact yes.. but we are firewall'd. I was referencing the seeders and downloaders being on the same VLAN
[00:58:23] <The_8472> my buckets are based on linked lists
[00:58:50] <The_8472> joraff, what about PC level firewalls?
[00:58:56] <choykloun> and hey maybe i _want_ to have half of DHT in my routing table
[00:58:57] <choykloun> :p
[00:59:02] <The_8472> can you telnet to the ports of the clients?
[00:59:23] <choykloun> i have a nice log here of jchgout talking to 1.7M unique nodes in a few hours ...
[00:59:33] <The_8472> yes, but that's not a routing table
[00:59:45] <The_8472> that's an exhaustive set of IDs
[01:00:28] <joraff> firewall is off on the seeder, for sure. Clients are stripped down, most likely no firewall
[01:00:29] <choykloun> well it was used to build a routing table of sorts
[01:00:34] <choykloun> but not for general dht usage
[01:00:35] <The_8472> a routing table is n*K in size, or n*4*K at most if you use replacement buckets and bucket splitting.
[01:01:11] <The_8472> joraff, just check if you can actually reach the ports. use telnet, nmap, whatever
[01:01:49] <The_8472> and i'm not sure, but opentracker just might filter out LAN ips
[01:02:41] * The_8472 points at erdgeist, he might now
[01:02:43] <The_8472> *know
[01:03:13] <joraff> The_8472, just finished recreating the torrent file (from a 30GB source, started that before I connected), reloaded the seeders and leacher with this new file and it started
[01:03:22] <choykloun> so, buckets it is
[01:03:53] <joraff> So, ports are apparently open and opentracker does nothing with our IP address range
[01:03:57] <choykloun> i can still have the option of keeping everything :P
[01:04:04] <The_8472> klapaucjusz, -.- there was a mistake in my post. updated it again. that's why i love forums.. edit button ^^
[01:04:05] <joraff> but, why was it not working with the original torrent file
[01:04:27] <joraff> mysterious..
[01:04:47] <joraff> and, that last question was rhetorical..
[01:05:56] <The_8472> it's annoying though. i roughly understand what the equation does. i just fail to extend it to more operands -.-
[01:06:09] <choykloun> 8-node-per-bucket limitation makes the implementation kinda simple :p
[01:06:25] <joraff> Just compared the md5 hash on the original + new torrent files, and they are identical.
[01:06:28] <choykloun> otherwise it'd be some fun in finding the lowest deltas
[01:06:30] <The_8472> you keep them sorted by age
[01:06:56] <choykloun> ya
[01:07:09] <The_8472> joraff, very odd.
[01:07:13] <choykloun> or do timeout handing when you iterate them anyways
[01:07:36] <The_8472> choykloun, read http://infinite-source.de/az/whitepapers/kademlia_optimized.pdf
[01:08:10] <choykloun> ya ya read it long ago
[01:08:33] <joraff> well, sorry for being a bother. If can recreate it I'll have more information to bring to the table.
[01:08:34] <joraff> thanks
[01:10:33] <choykloun> im a big fan of hash tables though so i guess its what i'll start with
[01:10:35] <The_8472> choykloun, understanding the finer details is important ;)
[01:10:51] <choykloun> yeah but that comes from seeing reallife results :)
[01:11:48] <choykloun> is there any normal limit on number of nodes you would/should/could hold in your routing table
[01:12:43] <The_8472> well, 160*8 is the max
[01:13:11] <choykloun> i want to keep as much as possible static, always
[01:13:44] <choykloun> uhm dont you mean 2^160 ... ?
[01:14:37] <The_8472> right now (without replacement buckets) it's about 170-180 nodes over ~22 buckets. since i'm using the flat-array method the closest bucket is spread over about 3 bucket data structures
[01:14:53] <choykloun> k
[01:15:15] <The_8472> no, the max you can have in your routing table is 160 buckets with 8 nodes each. one bucket for each bit differeing bit.
[01:16:08] <choykloun> ah
[01:16:44] <The_8472> bucket 0 = distance(your_id,node id) = 1xxxxx, bucket 1 = distance(your_id,node id) = 01xxxxxx, bucket 2 = distance(your_id,node id) = 001xxxxx
[01:16:52] <choykloun> ya ya fully understand
[01:16:57] *** joraff has quit IRC
[01:16:59] <choykloun> i just forgt to think sometimes
[01:17:02] <choykloun> simple binary
[01:18:09] * choykloun bangs head at table
[01:18:41] <The_8472> that was a glass table...
[01:18:51] <choykloun> how come ive done the same thing in asm hundreds of times
[01:18:57] <choykloun> but it wasnt obviously apparent now
[01:20:07] <choykloun> i blame you and your academentia! :D
[01:22:29] *** ajaya_ has joined #bittorrent
[01:23:43] * klapaucjusz hates implementing circular buffers
[01:24:12] <choykloun> i kinda like them
[01:25:14] <choykloun> btw
[01:25:24] <choykloun> am i really weird for having this function
[01:25:28] <choykloun> void bt_add_torrent_or_node(torrent_entry *torrent, unsigned int node_only)
[01:26:06] <choykloun> coz when i wrote the first impl for a specific purpose i wanted to learn all nodes encountered
[01:26:27] <choykloun> so it became natural to use the same function like that
[01:26:38] <choykloun> is there any point in doing it in a sane implementation?
[01:28:56] <choykloun> and using the same data structure to store nodes and torrents makes some sense except you waste 20 bytes :p
[01:29:23] *** htunk has quit IRC
[01:29:33] *** htunk has joined #bittorrent
[01:30:23] <The_8472> well, circular buffers are nice. but most of the time a doubly linked list will do the job too
[01:32:35] <choykloun> fuck that reminds me of something i have been procrastinating for at least 3 years
[01:32:52] <choykloun> the esbuf_table* functions... making them sometihng better than flat linked lists :(
[01:38:36] *** The_8472 has quit IRC
[01:39:26] *** ajaya has quit IRC
[01:39:26] *** ajaya_ is now known as ajaya
[01:39:26] <choykloun> ever seen the solaris malloc implementation btw
[01:39:36] <choykloun> one of my favorite trees
[01:40:31] *** The_8472 has joined #bittorrent
[01:41:16] <choykloun> btw
[01:41:27] <choykloun> isn't the max 8 nodes per bucket a bit .. inefficient
[01:41:32] <choykloun> lookup-time-wise?
[01:41:49] <choykloun> i.e. traffic-wise for the network as a whole
[01:51:17] <The_8472> how so?
[01:51:36] <choykloun> only learning 8 routes at a time .. ?
[01:51:57] <The_8472> N != K
[01:52:36] <The_8472> you learn 8 closer nodes from each of the N nodes you're concurrently querying, maintaing a continuously updated set of closest-nodes
[01:52:46] <choykloun> ah ya
[01:52:48] <The_8472> thus you learn of up to N*K nodes at a time
[01:53:11] <choykloun> sorry, i'm too damaged by IP routing
[01:53:44] <choykloun> you dont get any hint about where to send traffic for 1.2.4.0/24 when you get a route for 1.2.3.0/24 :)
[01:54:37] <choykloun> maybe this is something for next generation internet routing... currently global bgp is like about to blow up
[01:54:57] <choykloun> each router holding all prefixes and as-paths \o o/
[01:57:22] <choykloun> really ,that would be something
[01:57:26] <choykloun> bgp based on dht
[01:58:17] <The_8472> i think internet routing is more suited to distance-based routing ^^
[01:59:08] <choykloun> yes but you'd use a combination
[01:59:36] <choykloun> besides you don't really need full as-path info anyways
[02:00:05] <choykloun> in fact you dont have it today if you dont support 32 bit ASNs
[02:00:47] <choykloun> fuck fuck really have to rush like mad
[02:01:06] <choykloun> will have my routing properly done as soon as i get some free time :p
[02:02:55] <choykloun> and i'll explain my routing idea.. it does make sense actually i think even after thinking about it twice
[02:03:00] <choykloun> for everyone but tier1's
[02:09:22] <klapaucjusz> choykloun: search for DHT-based OLSR.
[02:09:37] <klapaucjusz> I think it's a horrible idea, but that's just me.
[02:13:09] *** ajaya has quit IRC
[02:13:10] *** Andrius has quit IRC
[02:13:10] *** init0 has quit IRC
[02:13:10] *** BentMyWookie has quit IRC
[02:13:10] *** goussx has quit IRC
[02:16:09] *** init0 has joined #bittorrent
[02:18:43] *** bittwist has joined #BitTorrent
[02:22:34] *** ajaya has joined #bittorrent
[02:22:34] *** Andrius has joined #bittorrent
[02:22:34] *** goussx has joined #bittorrent
[02:22:34] *** BentMyWookie has joined #bittorrent
[02:26:41] *** choykloun has quit IRC
[02:28:06] *** Andrius has quit IRC
[02:36:22] *** BentMyWookie has quit IRC
[02:36:22] *** goussx has quit IRC
[02:36:23] *** ajaya has quit IRC
[02:40:31] *** bt42 has quit IRC
[02:44:02] *** htunk has quit IRC
[02:45:25] *** ajaya has joined #bittorrent
[02:45:25] *** goussx has joined #bittorrent
[02:45:25] *** BentMyWookie has joined #bittorrent
[03:16:33] *** bt42 has joined #BitTorrent
[03:22:56] *** aKH has joined #bittorrent
[03:24:48] *** bittwist has quit IRC
[03:24:52] <aKH> gah
[03:24:58] <aKH> phone conference from hell
[03:26:30] <The_8472> irc >> phone conference
[03:27:24] <The_8472> a) logs b) you can quote c) you can talk in private if necessary
[03:27:40] <The_8472> d) more than one person can speak at once
[03:30:08] *** colin__ has joined #bittorrent
[03:30:11] <aKH> interrupting my bt coding :(
[03:30:20] <aKH> although this is for 2 casinos so its quite interesting
[03:30:58] *** GTHKn has joined #bittorrent
[03:31:26] *** Switeck_ has joined #bittorrent
[03:32:13] *** void^_ has joined #bittorrent
[03:32:16] *** colin__ has left #bittorrent
[03:33:00] *** TheSHAD0W` has joined #bittorrent
[03:33:14] *** TheSHAD0W has quit IRC
[03:33:17] *** TheSHAD0W` is now known as TheSHAD0W
[03:33:25] *** GTHK has quit IRC
[03:33:25] *** Switeck has quit IRC
[03:33:25] *** spopp has quit IRC
[03:33:25] *** klapaucjusz has quit IRC
[03:33:25] *** Gottaname has quit IRC
[03:33:25] *** deltab has quit IRC
[03:33:26] *** andar has quit IRC
[03:33:26] *** cgreco has quit IRC
[03:33:26] *** void^ has quit IRC
[03:33:27] *** alienvenom has quit IRC
[03:33:36] *** Switeck_ is now known as Switeck
[03:34:45] *** alienvenom has joined #bittorrent
[03:38:03] *** spoop has joined #bittorrent
[03:39:23] *** cgreco has joined #bittorrent
[03:39:53] *** klapaucjusz has joined #bittorrent
[03:40:32] *** GTHK has joined #bittorrent
[03:40:32] *** spopp has joined #bittorrent
[03:40:32] *** Gottaname has joined #bittorrent
[03:40:32] *** deltab has joined #bittorrent
[03:40:32] *** andar has joined #bittorrent
[03:40:32] *** void^ has joined #bittorrent
[03:40:53] *** GTHK has quit IRC
[03:40:54] *** void^ has quit IRC
[03:40:56] *** spopp has quit IRC
[03:41:39] *** GTHKn is now known as GTHK
[03:42:17] *** klapaucjusz has quit IRC
[03:42:24] *** stalled has quit IRC
[03:56:51] *** stalled has joined #bittorrent
[03:57:25] *** The_8472 has quit IRC
[03:58:17] *** The_8472 has joined #bittorrent
[04:04:43] *** init0 has quit IRC
[04:06:40] *** init0 has joined #bittorrent
[04:14:17] *** andar has quit IRC
[04:14:17] *** Gottaname has quit IRC
[04:14:17] *** deltab has quit IRC
[04:17:45] *** BentMyWookie has quit IRC
[04:17:46] *** goussx has quit IRC
[04:17:46] *** ajaya has quit IRC
[04:19:59] *** ajaya has joined #bittorrent
[04:19:59] *** goussx has joined #bittorrent
[04:19:59] *** BentMyWookie has joined #bittorrent
[04:23:53] *** Gottaname has joined #bittorrent
[04:23:53] *** deltab has joined #bittorrent
[04:23:53] *** andar has joined #bittorrent
[04:31:39] *** kwinz2 has quit IRC
[04:32:39] *** BentMyWookie has quit IRC
[04:36:37] *** goussx has quit IRC
[04:36:37] *** ajaya has quit IRC
[04:37:03] *** BentMyWookie has joined #bittorrent
[04:37:38] *** andar has quit IRC
[04:37:39] *** Gottaname has quit IRC
[04:37:39] *** deltab has quit IRC
[04:39:20] *** K`Tetch has quit IRC
[04:41:59] *** ajaya has joined #bittorrent
[04:41:59] *** goussx has joined #bittorrent
[04:54:49] *** Gottaname has joined #bittorrent
[04:54:49] *** deltab has joined #bittorrent
[04:54:49] *** andar has joined #bittorrent
[04:55:23] *** K`Tetch has joined #bittorrent
[05:05:16] *** K`Tetch has quit IRC
[05:05:16] *** andar has quit IRC
[05:05:16] *** Gottaname has quit IRC
[05:05:16] *** deltab has quit IRC
[05:05:17] *** goussx has quit IRC
[05:05:17] *** ajaya has quit IRC
[05:05:17] *** K`Tetch_ has joined #bittorrent
[05:11:01] *** ajaya has joined #bittorrent
[05:11:01] *** goussx has joined #bittorrent
[05:12:51] *** K`Tetch has joined #bittorrent
[05:12:51] *** Gottaname has joined #bittorrent
[05:12:51] *** deltab has joined #bittorrent
[05:12:51] *** andar has joined #bittorrent
[05:21:59] *** K`Tetch has quit IRC
[05:29:36] *** Waldorf has joined #bittorrent
[06:06:25] <aKH> im teaching the web developers here how to build compilers :p
[06:06:36] * TheSHAD0W snorts
[06:07:00] <TheSHAD0W> WTF
[06:09:00] <aKH> well its a pretty simple template engine for html
[06:09:05] <aKH> that supports some simple conditions
[06:09:18] <aKH> and variables
[06:09:30] <aKH> but its build as a FSM
[06:09:42] <aKH> built*
[06:11:45] <aKH> one of the most educational thing to do is to design a languange and compiler to the point that it compiles itself
[06:12:00] <aKH> i havent done it with a real interpreted language though
[06:12:13] <TheSHAD0W> FSM?
[06:12:14] <aKH> only turing complete virtual machines
[06:12:18] <aKH> finite state machine
[06:12:20] <TheSHAD0W> Oh.
[06:12:29] * TheSHAD0W was thinking flying spaghetti monster
[06:12:33] <aKH> hahaha
[06:12:39] <aKH> damn
[06:12:40] <TheSHAD0W> ^__^
[06:12:44] <aKH> what have i done to this channel
[06:12:55] <aKH> developers thinking FSM means the parody religion and not the basic comp sci concept
[06:13:07] <TheSHAD0W> Well.
[06:13:15] <TheSHAD0W> I never completed a comp sci degree.
[06:13:18] <aKH> in one of my favorite exploits i developed something even better than a finite state machine
[06:13:21] <TheSHAD0W> So certain things will escape me.
[06:13:25] <aKH> a finite state mean machine!
[06:14:03] <TheSHAD0W> I came up with an idea once; never got it finished, but I thought it was neat...
[06:14:12] <TheSHAD0W> I was writing half a compiler.
[06:14:26] <aKH> oh ive written several turing complete languages
[06:14:36] <aKH> one wasnt even meant to be turing complete
[06:14:40] <TheSHAD0W> Well, this would've been turing complete.
[06:14:41] <aKH> it was just meant to be a ruleset
[06:14:55] <TheSHAD0W> Basically, it was going to be a universal script language.
[06:15:17] <TheSHAD0W> Structure only, you write your own built-ins, then compile it into your project.
[06:17:08] <aKH> wanna see the exploit btw
[06:17:13] <aKH> it was for samba
[06:17:18] <aKH>  * sambucca - samba (atleast <=2.2.6) smbd x86 remote root exploit
[06:17:19] <aKH>  * - discovered and coded Nov. 2002 by anakata <anakata at hack dot se>
[06:17:25] <aKH> and well not only x86, later added sparc
[06:17:33] <aKH> quite proud of the bruteforcing algorithm it uses :)
[06:17:35] <TheSHAD0W> Heh.
[06:18:06] <aKH> basically the bug allowed you to write data to buf+user_controlled_delta
[06:18:42] <aKH> so it does a binary search for the delta to a known addr, the top of the stack
[06:18:54] <aKH> as just past it samba crashes
[06:19:00] <aKH> just before it survives
[06:19:23] <aKH> then you know the addr to buf where you store the code to be executed
[06:19:38] <TheSHAD0W> *nod*
[06:19:40] <aKH> and then just overwrite the return address on the stack
[06:19:45] <aKH> kinda neat imho :)
[06:19:55] <aKH> exploit development can be extremely fun
[06:20:11] <aKH> (and time consuming)
[06:36:04] <swolchok> did you mention time consuming?
[06:36:25] <swolchok> I wrote a buffer overflow project and forgot to specify that things should be run under env -i
[06:36:28] <swolchok> very nearly a trainwreck
[06:37:42] <aKH> you know that trick to get the proper retaddr right
[06:38:13] <aKH> re-exec yourself with only env var with your code in the env
[06:40:25] <aKH> then the exact addr will be easy to calculate
[06:41:33] <aKH> no NOPs needed etc
[06:46:53] *** _rafi_ has joined #bittorrent
[06:57:55] *** MassaRoddel has quit IRC
[06:58:32] *** aKH_ has joined #bittorrent
[06:59:15] *** aKH has quit IRC
[07:08:47] *** ajaya has quit IRC
[07:14:28] *** GTHK has quit IRC
[08:19:03] *** dandon has joined #bittorrent
[08:41:08] *** MassaRoddel has joined #bittorrent
[08:49:00] *** Waldorf has quit IRC
[09:11:54] *** MassaRoddel has quit IRC
[09:32:46] *** Switeck has quit IRC
[09:37:10] *** PN has joined #bittorrent
[09:44:49] *** Andrius has joined #bittorrent
[09:45:31] *** ProperNoun has quit IRC
[10:10:48] *** [NiNjA]UK has left #bittorrent
[10:10:48] *** [NiNjA]UK has joined #bittorrent
[10:11:29] *** [NiNjA]UK has quit IRC
[10:13:06] *** bittwist has joined #BitTorrent
[10:20:11] *** bt42 has quit IRC
[10:38:25] *** MassaRoddel has joined #bittorrent
[10:52:35] *** Water_ has joined #bittorrent
[10:52:50] <Water_> !list
[10:52:50] <BitTorrentBot> Read the /topic. No file sharing allowed.
[11:12:05] *** burris has quit IRC
[11:27:42] *** Water_ has quit IRC
[11:33:14] *** HandheldPenguin` has quit IRC
[11:33:35] *** HandheldPenguin` has joined #bittorrent
[11:33:55] *** rrr has quit IRC
[12:09:25] *** rrr has joined #bittorrent
[12:27:57] *** Waldorf has joined #bittorrent
[12:28:35] *** kwinz2 has joined #bittorrent
[12:34:21] *** aKH_ has quit IRC
[12:48:24] *** rrr has quit IRC
[12:52:18] *** rrr has joined #bittorrent
[13:11:52] *** burris has joined #bittorrent
[13:37:01] *** choykloun has joined #bittorrent
[13:53:52] *** bt42 has joined #BitTorrent
[14:01:07] *** bittwist has quit IRC
[14:07:47] *** _rafi2_ has joined #bittorrent
[14:09:23] *** goussx has quit IRC
[14:09:33] *** burris has quit IRC
[14:09:33] *** PN has quit IRC
[14:09:33] *** _rafi_ has quit IRC
[14:09:34] *** andar has quit IRC
[14:09:34] *** Gottaname has quit IRC
[14:09:34] *** deltab has quit IRC
[14:12:02] *** ProperNoun has joined #bittorrent
[14:14:56] *** goussx has joined #bittorrent
[14:15:16] *** burris has joined #bittorrent
[14:19:13] *** _rafi_ has joined #bittorrent
[14:19:13] *** Gottaname has joined #bittorrent
[14:19:13] *** deltab has joined #bittorrent
[14:19:13] *** andar has joined #bittorrent
[14:20:56] *** medecau has joined #bittorrent
[14:25:42] *** _rafi_ has quit IRC
[14:36:00] *** goussx has quit IRC
[14:39:27] *** goussx has joined #bittorrent
[14:42:44] *** medecau has quit IRC
[14:42:44] *** andar has quit IRC
[14:42:45] *** Gottaname has quit IRC
[14:42:45] *** deltab has quit IRC
[14:50:05] *** medecau has joined #bittorrent
[14:50:05] *** Gottaname has joined #bittorrent
[14:50:05] *** deltab has joined #bittorrent
[14:50:05] *** andar has joined #bittorrent
[15:00:17] *** dandon has quit IRC
[15:17:29] *** rrr has quit IRC
[15:50:57] *** MassaRoddel has quit IRC
[16:04:58] *** bittwist has joined #BitTorrent
[16:11:40] *** bt42 has quit IRC
[16:37:50] *** MassaRoddel has joined #bittorrent
[16:43:23] *** MassaRoddel has quit IRC
[16:55:15] *** PN has joined #bittorrent
[17:02:48] *** bt42 has joined #BitTorrent
[17:09:26] *** codas has joined #bittorrent
[17:10:15] *** MassaRoddel has joined #bittorrent
[17:11:41] *** ProperNoun has quit IRC
[17:15:20] *** PN has quit IRC
[17:15:21] *** andar has quit IRC
[17:15:21] *** Gottaname has quit IRC
[17:15:21] *** deltab has quit IRC
[17:15:21] *** medecau has quit IRC
[17:15:29] *** goussx has quit IRC
[17:21:09] *** goussx has joined #bittorrent
[17:22:33] *** PN has joined #bittorrent
[17:22:33] *** medecau has joined #bittorrent
[17:22:33] *** Gottaname has joined #bittorrent
[17:22:33] *** deltab has joined #bittorrent
[17:22:33] *** andar has joined #bittorrent
[17:22:48] *** bittwist has quit IRC
[17:42:25] *** ivan` has quit IRC
[17:43:45] *** ivan` has joined #bittorrent
[17:52:15] *** goussx has quit IRC
[17:52:31] *** andar has quit IRC
[17:52:31] *** Gottaname has quit IRC
[17:52:31] *** deltab has quit IRC
[17:52:31] *** medecau has quit IRC
[17:52:31] *** PN has quit IRC
[17:57:51] *** goussx has joined #bittorrent
[18:00:45] *** GTHK has joined #bittorrent
[18:02:35] *** burris has quit IRC
[18:03:44] *** deltab has joined #bittorrent
[18:07:13] *** Gottaname has joined #bittorrent
[18:07:45] *** burris has joined #bittorrent
[18:07:45] *** andar has joined #bittorrent
[18:08:35] *** ProperNoun has joined #bittorrent
[18:11:53] *** goussx has quit IRC
[18:12:05] *** andar has quit IRC
[18:12:05] *** burris has quit IRC
[18:15:00] *** spoop has quit IRC
[18:15:10] *** Switeck has joined #bittorrent
[18:16:47] *** spoop has joined #bittorrent
[18:17:17] *** burris has joined #bittorrent
[18:17:17] *** andar has joined #bittorrent
[18:17:29] *** goussx has joined #bittorrent
[18:18:11] *** codas has quit IRC
[18:21:25] *** andar2 has joined #bittorrent
[18:25:45] *** MassaRoddel has quit IRC
[18:29:47] *** bittwist has joined #BitTorrent
[18:49:57] *** bt42 has quit IRC
[18:52:49] *** MassaRoddel has joined #bittorrent
[19:12:12] *** wolfric has joined #bittorrent
[19:13:35] *** MassaRoddel has quit IRC
[19:21:43] *** Snoopotic has quit IRC
[19:35:45] *** MassaRoddel has joined #bittorrent
[19:38:43] *** wolfric has quit IRC
[19:45:06] *** _rafi2_ is now known as _rafi_
[19:45:58] *** codas has joined #bittorrent
[19:48:09] <_rafi_> can you fix the F1-help to work on uT V2.0 ? it seems to not find the file in the local exe path , tried to DL it and fails :(
[19:50:25] *** rrr has joined #bittorrent
[20:02:38] <_rafi_> [20:58] <GTHK> [2009-12-29 12:48:16]  Help file not found in settings directory, attempting to download
[20:02:38] <_rafi_> [20:58] <GTHK> [2009-12-29 12:48:25]  Could not download help file. Error: HTTP Error 404
[20:40:22] *** codas has quit IRC
[21:00:39] *** alienvenom has quit IRC
[21:09:01] *** alienvenom has joined #bittorrent
[21:15:35] *** codas has joined #bittorrent
[21:32:03] *** Switeck has quit IRC
[21:42:43] *** codas has quit IRC
[22:13:28] *** K`Tetch_ has quit IRC
[22:23:46] *** dandon has joined #bittorrent
[22:26:05] *** _rafi_ has quit IRC
[22:44:35] *** sktrdie has joined #bittorrent
[22:44:37] <sktrdie> Hello
[22:44:46] <sktrdie> may i ask in what language was uTorrent written in?
[22:44:53] <sktrdie> *is
[22:45:43] *** rrr has quit IRC
[22:46:07] *** The_8472 has quit IRC
[22:46:27] *** The_8472 has joined #bittorrent
[22:47:04] <charles> sktrdie: this is secondhand knowledge, but iirc it's written in C++ with little-or-no STL
[22:50:07] <sktrdie> how did they manage all of that in 200 kb
[22:52:18] <The_8472> the binary is packed for starters
[22:52:55] <sktrdie> well the executable is 280kb
[22:52:59] <sktrdie> and that's all there is
[22:53:10] <charles> the executable is compressed and decompresses itself at runtime
[22:53:27] <sktrdie> oh, ok
[22:53:32] <sktrdie> didn't know that would be possible
[22:53:38] <sktrdie> or efficient
[22:57:03] <choykloun> i'm writing proper dht routing
[22:57:04] <choykloun> booooring
[23:02:39] <The_8472> you might want to have a look at https://azsmrc.svn.sourceforge.net/svnroot/azsmrc/azsmrcplugins/trunk/lbms/plugins/mldht/kad/NodeLookup.java
[23:02:46] <choykloun> nah
[23:02:53] <choykloun> i prefer to invent something crazy on my own
[23:07:52] <choykloun> btw wouldnt automatically saving keys  a la ssh actually work
[23:08:01] <choykloun> even with a million nodes its not much data
[23:08:17] <choykloun> and it could easily be stored in a format that can be accessd quickly enough
[23:12:08] *** spoop has quit IRC
[23:12:56] <choykloun> every cypherpunk in the world would almost end up in a coma because of how cool crypto on that scale would be
[23:15:54] *** spoop has joined #bittorrent

top