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