Opened 15 years ago

Closed 13 years ago

#132 closed Enhancement (invalid)

Implement superseeding mode (BEP16)

Reported by: mechanic Owned by: tiennou
Priority: Low Milestone: None Set
Component: libtransmission Version:
Severity: Normal Keywords: patch protocol
Cc:

Attachments (3)

crash.log (22.7 KB) - added by iyttahmimsyafu 14 years ago.
crash.2.log (22.7 KB) - added by iyttahmimsyafu 14 years ago.
superseeding.diff (15.4 KB) - added by tiennou 13 years ago.
Updated patch for r6950

Download all attachments as: .zip

Change History (20)

comment:1 Changed 14 years ago by charles

  • Priority changed from Normal to Low

comment:2 Changed 14 years ago by tiennou

  • Component changed from Transmission to libtransmission
  • Milestone changed from Sometime to 0.90
  • Owner changed from somebody to tiennou
  • Version changed from 0.6 to 0.82+

I will handle this. Patch expected soon...

comment:3 Changed 14 years ago by charles

  • Milestone changed from 0.90 to Sometime

Bumped from the 0.90 checklist. Might get bumped back depending on the timing of the patch and the 0.90 release.

comment:4 Changed 14 years ago by aaroncorey

  • Owner changed from tiennou to aaroncorey
  • Status changed from new to assigned

I want to work on this. tiennou, have you made progress you'd like to share?

comment:5 Changed 14 years ago by aaroncorey

  • Owner changed from aaroncorey to tiennou
  • Status changed from assigned to new

Whoops, I didn't mean to reassign. I'm going to start looking at the code but I'll wait to reassign until I've made some limited progress.

comment:6 Changed 14 years ago by tiennou

  • Status changed from new to assigned
  • Version 0.82+ deleted

I almost got it, I'll submit a patch today for more thorough checking... I guess it won't happen before 0.9 though

comment:7 Changed 14 years ago by tiennou

Hmm, there is a problem with this right now, because my code end up sending a BT_HAVE for piece -1, which crashes T (or ultimately cause the client to mark you as crazy...). So it needs more work right now....

comment:8 Changed 14 years ago by iyttahmimsyafu

Just tried the patch with the latest source and Transmission crashed when tried to send data to a peer

Changed 14 years ago by iyttahmimsyafu

Changed 14 years ago by iyttahmimsyafu

comment:9 Changed 14 years ago by iyttahmimsyafu

sorry, double clicked the upload button

comment:10 Changed 14 years ago by charles

  • Milestone changed from Sometime to None Set

comment:12 Changed 13 years ago by wicktransmission

Perhaps a simplified method (relative to the spec) would be easier to implement initially:

Pretend to be a normal client having only the first chunk. Once that chunk is sent to another client, pretend to have only the second chunk. Repeat until every chunk has been sent. At that point, client acts like a normal seeder.

Chunk ordinality could be based on a hash of the actual chunk number if you wanted to get them out there in a "randomized" order. I'm not sure if that would actually add any value.

comment:14 Changed 13 years ago by tiennou

  • Summary changed from super (initial) seeding mode to Implement superseeding mode (BEP16)

Update (Untested) ! A quick question on this one though. I'm duplicating firePeerProgress with firePeerGotBlock, since I need the mgr to know which piece was just HAVE'd by this peer. I'll try to test it ASAP, but I want to check I'm not stomping on our favorite developer's feet first ;-).

Changed 13 years ago by tiennou

Updated patch for r6950

comment:15 Changed 13 years ago by charles

  • Keywords patch added

comment:16 Changed 13 years ago by charles

  • Keywords protocol added

comment:17 Changed 13 years ago by charles

  • Resolution set to invalid
  • Status changed from assigned to closed

The Fast Extensions BEP makes it clear that its "Suggest Piece" component is intended for to be a cleaner mechanism for super-seeding. The forum.bittorrent.org thread on Fast Extensions says much the same thing.

Note: See TracTickets for help on using tickets.