NOTICE: This channel is no longer actively logged.
[00:07:57] <alus> jordan: if you'd like to start sending it, it's seconds since you saw the entire torrent complete. this includes distributed copies == 1[00:08:21] <alus> jordan: the goal was to eventually start propagating it, but we don't do that (yet)[00:08:23] <jch> alus: how do you use it?[00:08:42] <alus> jch: we don't yet, afaik, but the goal was just to display it to the user[00:09:15] <jch> Hmm. We don't even display the number of potential peer addresses we know about.[00:09:45] <jch> But yeah, giving the user a way to find out if a torrent is healthy is a Good Thing (TM).[00:15:30] *** Gottaname has joined #bittorrent[00:19:51] *** Gottaname has quit IRC[00:38:09] *** aristidesfl has joined #bittorrent[00:38:32] <jordan> I'm not sure how much a client should trust secondhand knowledge from peers[00:38:53] <jordan> this is a pretty minor field, so it couldn't do much harm, I suppose[00:39:41] *** Gottaname has joined #bittorrent[00:39:51] <jch> alus: majority vote?[00:40:52] *** aristidesfl has quit IRC[00:41:17] <jch> alus: on a different topic... what's the largest DHT transaction-id that you will accept?[00:41:31] *** aristidesfl has joined #bittorrent[00:41:32] <jch> (I'm thinking of putting a cryptographic nonce in the tid.)[00:47:46] *** aristidesfl has left #bittorrent[01:00:06] <jch> The_8472: permission to PM?[01:06:51] <The_8472> yes[01:08:10] *** goussx has joined #bittorrent[01:12:24] * The_8472 throws the pointy stick of +2 to highlight at jch[01:37:25] <alus> jordan: the worst someone could do is say they just saw it complete when it has not been complete in a long time. but, they can also claim to be a seed and not be a seed[01:38:38] <alus> jordan: if they did the opposite and lied that they hadn't seen it complete in a long time but other peers had, then their lying wouldn't even count[01:40:56] <alus> so I think it's pretty safe to pass around[01:41:55] <alus> the incentive for lying is odd anyway. usually torrent poisoners want to make the torrent not be complete, not seem complete. fake torrents want to give you a virus, not lie about whether the virus is available at all[01:52:39] *** Gallomimia has quit IRC[01:57:09] <alus> jch: uint[01:58:00] <jch> You mean I'm limited to 4 octets?[02:02:23] <alus> jch: I believe so[02:03:49] <alus> jch: wait[02:04:30] *** Switeck has joined #bittorrent[02:07:16] <The_8472> i don't think you're correct. i just sent... idk... 100k requests with 12byte tids and i think i got responses for about 50% of those[02:07:31] <jch> Ah, excellent.[02:07:48] <jch> Could you please run the test again with 8 octets?[02:08:10] <The_8472> why would that make a difference? most of those losses are due to NATed nodes[02:08:23] <The_8472> my measurements are not entirely scientific :P[02:08:23] <jch> What are your figures at 4 octets?[02:08:59] <alus> jch: we use 4. you may use up to 16[02:09:28] <The_8472> regular losses are around 40-50% too.[02:09:36] <The_8472> so yeah, nothing unusual[02:09:45] <jch> Ah, ok.[02:09:47] <jch> Excellent news.[02:09:55] <jch> Thanks to both of you.[02:10:59] <alus> jch: why are you noncing? 32bits is a lot of bits to guess[02:11:02] * The_8472 ponders adding a negative cache to his lookup cache.[02:11:28] * alus ponders adding negative cash to The_8472[02:11:46] <The_8472> you need a credit?[02:12:48] <alus> credit implies reimbursement[02:12:51] *** multi-d has joined #bittorrent[02:12:55] <jch> alus: I'm currently doing stateful announces, but completely stateless routing-table maintenance.[02:12:58] <The_8472> your kidney will do[02:13:11] <alus> my kidney is very expensive[02:13:20] <The_8472> so are my loans[02:14:34] <alus> jch: funny[02:14:53] <jch> We use 32-bit tids, with 2 bytes of message type and two bytes of seqno...[02:15:02] <The_8472> what?[02:15:03] <jch> but never actually check the seqno...[02:15:11] <jch> which would be easily guessed anyway.[02:15:16] <The_8472> why is the message type in the... oh... stateless[02:15:36] <jch> Should not be a big deal, since the prefer-oldest policy should kick out any liars.[02:16:12] <jch> But I'm thinking of reducing the message type to just 1 byte, and using either 3 or 7 bytes for a nonce.[02:16:46] <The_8472> isn't your routing table maintenance bounded?[02:16:57] <jch> Huh?[02:16:57] <The_8472> like... scan for old stuff every 2 minutes or something[02:17:01] *** Kitsoran has quit IRC[02:17:09] <The_8472> i mean why keep it stateless[02:17:15] <jch> No, it happens lazily.[02:17:43] <jch> Why not?[02:17:51] <jch> The more state you have, the more state that can get out of sync.[02:18:10] <The_8472> maybe we have to start at an earlier point[02:18:16] <The_8472> what does routing table maintenance do for you?[02:18:29] <jch> It maintains the routing table?[02:18:57] <jch> (It periodically picks a bucket, pics a node, and sends find_nodes to repopulate the bucket.)[02:19:47] <The_8472> ok. and you can't keep a hashtable of tid -> outstanding request + timeout?[02:20:00] <jch> I can.[02:20:02] <jch> I don't want to.[02:20:14] <The_8472> but you already have to do that anyway for peer lookups, no?[02:20:22] <jch> No.[02:20:41] <The_8472> then... how do you keep track of the pending responses?[02:20:45] <jch> Er, yes.[02:20:58] <The_8472> see. just do it for *all* outgoing requests.[02:21:03] <The_8472> simplifies things[02:21:05] <jch> No.[02:21:13] <jch> This data is held in the per-announce data structure.[02:21:26] <jch> I'm not putting in an extra data structure.[02:21:38] <The_8472> then extract it and make it shared?[02:22:00] <jch> Every problem can be solved by adding a new layer of indirection?[02:22:10] <jch> (Except the problem of too many layers of indirection.)[02:22:17] <The_8472> you should see my code[02:22:39] *** goussx has quit IRC[02:22:39] <jch> Look, The_8472, I'm not going to add a data structure to keep track of pending requests. I *like* stateless stuff.[02:23:29] <The_8472> stateless stuff is neat. but that tid usage seems brittle.[02:23:37] <jch> Yourself.[02:23:50] <The_8472> mhh?[02:23:57] <jch> Brittle yourself.[02:24:00] *** Gallomimia has joined #bittorrent[02:24:02] <The_8472> oO[02:24:15] * jch is offended, takes his toys and goes back home.[02:24:24] * The_8472 pats jch[02:24:35] <The_8472> i'm just not trusting other nodes with my local state[02:25:08] <jch> Whence the nonce.[02:25:14] <The_8472> if i do some outgoing request i want to know if it suceeded or timed out. or if i got an error... or...[02:26:12] <The_8472> also, your lazy routing table maintenance is a bit questionable. you are asking a node for information around it?[02:26:24] <jch> ?[02:26:49] <The_8472> you ask a node in bucket X about nodes in bucket X?[02:27:19] <jch> Usually, yes.[02:27:27] <jch> Except when bucket X is empty, of course.[02:27:46] <jch> And once in a while I randomly make a completely outlandish request.[02:27:52] <The_8472> then they might have equally incomplete information as you have. i do a full lookup from a node as far away as possible from X[02:28:11] <jch> That's what the random outlandish request is for.[02:28:18] <The_8472> that's an iterative lookup?[02:28:20] <jch> Stiching back the DHT.[02:28:22] <jch> No.[02:28:34] <jch> It's a random request. Look, ma, no state.[02:28:59] <The_8472> mhmm... i guess that works, just with slower convergence times than mine.[02:29:17] * The_8472 is more like. OMG. THERE IS A GAP IN THE BUCKET. FILL FILL FILL FILL FILL![02:29:32] <The_8472> (every few minutes of course. not all the time)[02:30:35] <The_8472> since most buckets and their replacements should be full anyway it only affects the local bucket(s) anyway[02:31:06] <The_8472> and if they aren't... they'll be very soon (which is the idea)[02:38:09] <jch> The_8472: I'm removing my test node from the DNS.[02:38:24] <The_8472> nothing exploded[02:38:33] * The_8472 is disappointed[02:39:40] <jch> No, and I never managed to get over 2 kB/s traffic.[02:40:13] <The_8472> like i said... if you want i can send traffic your way[02:41:32] <jch> No, I've seen what I wanted to see.[02:41:37] <The_8472> kk[02:50:16] *** jch has quit IRC[03:03:26] *** multi-d has quit IRC[03:07:58] *** Gottaname|Mobili has joined #bittorrent[03:13:40] *** multi-d has joined #bittorrent[04:04:53] *** The_8472 has quit IRC[04:07:44] *** goussx has joined #bittorrent[04:10:58] *** The_8472 has joined #bittorrent[04:21:31] *** The_8472 has quit IRC[04:43:34] *** goussx has quit IRC[04:43:55] *** goussx has joined #bittorrent[05:18:20] *** hydri has joined #bittorrent[05:25:13] *** multi-d has quit IRC[05:51:58] *** Gallomimia has quit IRC[05:52:18] *** Gallomimia has joined #bittorrent[06:23:57] *** goussx has quit IRC[06:24:20] *** goussx has joined #bittorrent[06:29:36] *** MassaRoddel has quit IRC[06:39:10] *** Switeck has quit IRC[07:04:42] *** Guest4310 has joined #bittorrent[07:29:38] *** Guest4310 has quit IRC[07:52:11] *** `rafi1_ has joined #bittorrent[07:52:57] *** `rafi_ has quit IRC[08:35:50] *** Gottaname has quit IRC[08:36:38] *** Gottaname has joined #bittorrent[08:45:43] *** MassaRoddel has joined #bittorrent[08:48:54] *** hlindhe has quit IRC[08:49:05] *** hlindhe has joined #bittorrent[09:13:29] *** hlindhe has quit IRC[09:13:34] *** hlindhe has joined #bittorrent[09:41:40] *** TheSHAD0W has quit IRC[10:18:55] *** swinokur has quit IRC[11:21:26] *** Gottaname|Mobili has quit IRC[11:24:39] *** Gottaname|Mobili has joined #bittorrent[11:49:41] *** goussx has quit IRC[11:56:17] *** Gottaname|Mobili has quit IRC[12:16:10] *** swinokur has joined #bittorrent[12:33:12] *** init0_ has joined #bittorrent[12:36:32] *** init0 has quit IRC[12:54:53] *** init0_ is now known as init0[13:08:29] *** f[x] has joined #bittorrent[13:09:13] *** f[x] has quit IRC[13:13:53] *** f[x] has joined #bittorrent[13:17:43] *** f[x] has quit IRC[13:19:10] *** f[x] has joined #bittorrent[13:20:46] *** f[x] has quit IRC[13:21:16] *** f[x] has joined #bittorrent[13:23:40] *** f[x] has quit IRC[13:28:37] *** f[x] has joined #bittorrent[14:52:14] *** jch has joined #bittorrent[15:04:11] *** f[x] has quit IRC[16:03:52] *** mxs has quit IRC[16:06:44] *** mxs has joined #bittorrent[16:06:44] *** mxs has joined #bittorrent[16:22:31] *** f[x] has joined #bittorrent[16:29:43] *** TheSHAD0W has joined #bittorrent[16:32:27] *** f[x] has quit IRC[16:33:25] *** f[x] has joined #bittorrent[16:40:07] *** Gottaname has quit IRC[16:43:33] *** multi-d has joined #bittorrent[16:57:57] *** Gottaname has joined #bittorrent[17:13:33] *** f[x] has quit IRC[17:20:01] *** Guest4310 has joined #bittorrent[17:20:13] *** Guest4310 is now known as Kitsoran[17:36:20] *** goussx has joined #bittorrent[17:56:18] *** erk has joined #bittorrent[18:00:51] *** goussx has quit IRC[18:01:08] *** erk has quit IRC[18:01:21] *** goussx has joined #bittorrent[18:04:04] *** erk has joined #bittorrent[18:09:23] *** erk has quit IRC[18:11:22] *** erk has joined #bittorrent[18:16:14] *** erk has quit IRC[18:18:36] *** erk has joined #bittorrent[18:24:21] *** erk has quit IRC[19:26:28] *** multi-d has quit IRC[19:29:27] *** f[x] has joined #bittorrent[19:38:55] *** f[x] has quit IRC[19:52:21] *** goussx_ has joined #bittorrent[19:52:21] *** goussx_ has joined #bittorrent[19:52:41] *** f[x] has joined #bittorrent[19:53:39] *** goussx has quit IRC[19:53:40] *** goussx_ is now known as goussx[20:03:59] *** Gallomimia has quit IRC[20:15:21] *** sungji has joined #bittorrent[20:17:46] *** sungji has left #bittorrent[20:17:59] *** sungji has joined #bittorrent[20:18:02] *** sungji has left #bittorrent[20:21:25] *** The_8472 has joined #bittorrent[20:22:01] *** ygrek has joined #bittorrent[21:44:23] <The_8472> mhhh. i guess a negative lookup cache won't be worth it. too many nodes in the v4 one to get the repeat-failures from the noise floor[21:44:40] <The_8472> there are plenty on the v6 DHT, but that's because i have near-complete knowledge of it anyway[22:01:21] <MassaRoddel> what is your negative lookup cache?[22:11:25] <The_8472> remembering addresses that timed out and not using them again for a while if another node suggests them[22:13:26] *** `rafi1_ has quit IRC[22:58:07] *** ygrek has quit IRC