Commit Graph

40 Commits

Author SHA1 Message Date
zzz
9bbcdadd0e propagate from branch 'i2p.i2p' (head 915df7d6afddd7473a7db7fd1f499d350611db62)
to branch 'i2p.i2p.zzz.dhtsnark' (head 4c10a9396745b20a517c9822cf1454aca752ea94)
2011-01-05 21:49:13 +00:00
zzz
e826ce723a * i2psnark: Refactor request tracking to prevent possible deadlocks 2011-01-05 20:21:29 +00:00
zzz
71043c41f1 - Hide I2CP settings when in router context
- Better BEValue.toString()

(most of the following got missed in the last checkin)
- Fix about 9 NPEs
- Fix numwant in magnet mode
- Send metadata size in extension handshake
- Open trackers are primary if we don't have primary trackers
- Add missing break in port message handling
- Increase max msg size to account for metadata msg
- Remember magnets across restarts
- Drop peers w/o extensions if we need metainfo
- Fix DATA messages
- Fix tracker transition to non-magnet
- Fix infohash for non-magnet
- Fix up peer transition to non-magnet
- More logging
2010-12-27 17:13:24 +00:00
zzz
690aea255b - Rework traffic counters
- Record the metadata bandwidth
- More null announce handling
- Callbacks for got MetaInfo event
- Cleanups
2010-12-21 23:43:13 +00:00
zzz
8e40b35210 metadata handling - untested, still some stubs 2010-12-21 03:04:10 +00:00
zzz
7602999274 more prep and stubs for no metainfo 2010-12-20 00:05:03 +00:00
zzz
afe57512ab PORT msg support; port and extension listener stubs 2010-12-19 15:37:11 +00:00
zzz
3d6a5bd9e7 fix extension messages 2010-12-02 16:17:28 +00:00
zzz
a86fef2a21 * i2psnark: Don't timeout queued piece messages 2010-11-29 13:08:03 +00:00
zzz
a52fb65c64 * i2psnark:
- Fix NPE and other partials bugs
      - More extension message stubbing
      - Log tweaks
2010-11-28 04:01:20 +00:00
zzz
3c45b038c6 * i2psnark:
- Drop queued outbound requests when choked
      - Redo some data structures and locking to hopefully prevent deadlock
      - Memory reduction part 3: Return partial pieces to PeerCoordinator when choked
2010-11-27 14:34:08 +00:00
zzz
7f1ace4dbe * i2psnark: Clean up and enhance the PeerCoordinator's partial piece handling,
in preparation for more improvements
2010-11-26 00:44:00 +00:00
zzz
0b59af6551 * i2psnark:
- Prevent dup requests during end game
        (ticket 331 - thanks sponge and Oct!)
2010-11-24 15:04:52 +00:00
zzz
6c19e7e399 * i2psnark:
- Defer piece loading until required
      - Stub out Extension message support
2010-11-21 21:19:12 +00:00
zzz
3678aa157e * i2psnark:
- Limit number of parallel requests of a single piece when in the end game
      - Shorten and weight the speed tracker so the display is more
        reflective of current speed
2010-11-01 14:35:01 +00:00
zzz
643687472a - Only add wanted pieces to wanted list at startup
- Make sure lastRequest is null when it should be
- Logging tweaks
2010-10-30 15:28:29 +00:00
zzz
9baa6e7bc8 update requests after changing priorities 2010-10-29 20:31:07 +00:00
zzz
983e7683fd * i2psnark:
- Don't stay interested if we run out of pieces
        to request (thanks sponge)
      - Enhance debug mode to show requests
2010-10-27 13:29:27 +00:00
zzz
29bc53d618 * i2psnark: Fix transition to end game 2010-07-05 14:20:34 +00:00
zzz
a916f970b1 * i2psnark: - Concurrent, limit, display, log tweaks 2010-04-12 19:07:53 +00:00
zzz
89d0d7b266 Disconnect seeds that connect to a seed 2010-04-10 15:26:23 +00:00
zzz
0bcbe6ae05 * i2psnark: (http://forum.i2p/viewtopic.php?t=3317)
- Change file limit to 512 (was 256)
      - Change size limit to 10GB (was 5GB)
      - Change request size to 16KB (was 32KB)
      - Change pipeline to 5 (was 3)
2009-04-22 13:54:59 +00:00
zzz
951f082884 * i2psnark: Increase tunnels and pipeline to 3 2009-01-31 14:23:33 +00:00
zzz
49af13a3ca * i2psnark: Fix OOM vulnerability by checking incoming message length
(thanks devzero!)
2008-08-13 15:59:16 +00:00
5782c42d25 Cleaned up all 'imports' in all applications, core and router. 2008-07-16 13:42:54 +00:00
zzz
9b8772a470 * Throttle: Reject tunnels for first 20m uptime (was 10m)
* TunnelPeerSelectors:
       - Re-enable strict ordering of peers,
         based on XOR distance from a random hash
       - Restrict peers with uptime < 90m from tunnels (was 2h),
         which is really 60m due to rounding in netDb publishing.
    * i2psnark:
       - Limit max pipelined requests from a single peer to 128KB
         (was unlimited; i2p-bt default is 5 * 64KB)
       - Increase max uploaders per torrent to 6 (was 4)
       - Reduce max connections per torrent to 16 (was 24) to increase
         unchoke time and reduce memory consumption
       - Strictly enforce max connections per torrent
       - Choke more gradually when over BW limit
    * help.jsp: Add a link to the FAQ
    * peers.jsp: Fix UDP direction indicators
    * hosts.txt: Add update.postman.i2p
2008-05-18 21:45:54 +00:00
zzz
8e2849b7e5 2007-03-08 zzz
* i2psnark changes to improve upload performance:
    *  Implement total uploader limit (10)
    *  Don't timeout non-piece messages out
    *  Change chunk size to 32K (was 64K)
    *  Change request limit to 64K (was 256K)
    * i2psnark: Disconnect from seeds when complete
2007-03-08 18:55:17 +00:00
zzz
e6e6d6f4ee 2007-01-20 zzz
* Improve performance by not reading in the whole
      piece from disk for each request. A huge memory savings
      on 1MB torrents with many peers.
2007-01-21 01:43:31 +00:00
zzz
53ba6c2a64 2007-01-14 zzz
* i2psnark: Improvements for torrents with > 4 leechers:
      choke based on upload rate when seeding, and
      be smarter and fairer about rotating choked peers.
    * Handle two common i2psnark OOM situations rather
      than shutting down the whole thing.
    * Fix reporting to tracker of remaining bytes for
      torrents > 4GB (but ByteMonsoon still has a bug)
2007-01-14 19:49:33 +00:00
zzz
5cf85c1d7b (zzz)
* i2psnark: Second try at synchronization fix - synch addRequest()
      completely rather than just portions of it and requestNextPiece()
2006-09-29 23:54:17 +00:00
zzz
373934c6e0 (zzz)
* i2psnark: Add some synchronization to prevent rare problem
      after restoring orphan piece
2006-09-24 18:30:22 +00:00
zzz
23e8a558c2 (zzz)
* i2psnark: Implement retransmission of requests. This
      eliminates one cause of complete stalls with a peer.
      This problem is common on torrents with a small number of
      active peers where there are no choke/unchokes to kickstart things.
2006-09-16 21:07:28 +00:00
zzz
2329439034 (zzz)
* i2psnark: Fix restoral of partial pieces broken by last patch
2006-09-14 02:37:32 +00:00
zzz
26c13b40fe (zzz)
* i2psnark: Mark a peer's requests as unrequested on disconnect,
      preventing premature end game
    * i2psnark: Randomize selection of next piece during end game
    * i2psnark: Don't restore a partial piece to a peer that is already working on it
    * i2psnark: strip ".torrent" on web page
    * i2psnark: Limit piece size in generated torrent to 1MB max
2006-09-13 23:02:07 +00:00
zzz
61a6a29bec cCVS: ---------------------------------------------------------------------- 2006-09-07 23:03:18 +00:00
zzz
678f7d8f72 (zzz)
* i2psnark: Implement basic partial-piece saves across connections
    * i2psnark: Implement keep-alive sending. This will keep non-i2psnark clients
      from dropping us for inactivity but also renders the 2-minute transmit-inactivity
      code in i2psnark ineffective. Will have to research why there is transmit but
      not receive inactivity code. With the current connection limit of 24 peers
      we aren't in any danger of keeping out new peers by keeping inactive ones.
    * i2psnark: Increase CHECK_PERIOD from 20 to 40 since nothing happens in 20 seconds
    * i2psnark: Fix dropped chunk handling
    * i2psnark: Web rate report cleanup
2006-09-06 06:32:53 +00:00
zzz
aef19fcd38 (zzz) i2psnark: enable pipelining, set tunnel length default to 1 + 0-1 2006-09-04 06:01:53 +00:00
8e87ae08fb 2005-12-30 jrandom
* Small streaming lib bugfixes for the modified timeouts
    * Minor Syndie/Sucker RSS html fix
    * Small synchronization fix in I2PSnark (thanks fsm!)
2005-12-30 20:57:53 +00:00
4a65fd4f46 2005-12-19 jrandom
* I2PSnark logging, disconnect old inactive peers rather than new ones,
      memory usage reduction, better OOM handling, and a shared connection
      acceptor.
    * Cleaned up the Syndie blog page and the resulting filters (viewing a
      blog from the blog page shows threads started by the selected author,
      not those that they merely participate in)
2005-12-19 13:34:52 +00:00
138f7d3b8d This is an I2P port of snark [http://klomp.org/snark], a GPL'ed bittorrent client
The build in tracker has been removed for simplicity.

Example usage:
  java -jar lib/i2psnark.jar myFile.torrent

or, a more verbose setting:
  java -jar lib/i2psnark.jar --eepproxy 127.0.0.1 4444 \
       --i2cp 127.0.0.1 7654 "inbound.length=2 outbound.length=2" \
       --debug 6 myFile.torrent
2005-10-19 22:02:37 +00:00