def initialize(server, package, info_hash, trackers, dlratelim=nil, ulratelim=nil, http_proxy=ENV["http_proxy"])
@server = server
@info_hash = info_hash
@package = package
@trackers = trackers
@http_proxy = http_proxy
@dlratelim = dlratelim
@ulratelim = ulratelim
@peers = [].extend(ArrayShuffle)
@peers_m = Mutex.new
@thread = nil
@tracker = nil
@last_tracker_attempt = nil
@tracker_delay = DEAD_TRACKER_INITIAL_INTERVAL
@num_friends = 0
@num_optunchokes = 0
@num_snubbed = 0
@piece_order = PieceOrder.new @package
@running = false
end