示例#1
0
    def __init__(self, data_handler, overlay_bridge, log = '', dnsindb = None):
    
        if DEBUG:
            print >> sys.stderr, "=================Initializing bartercast core"
    
        self.data_handler = data_handler
        self.dnsindb = dnsindb
        self.log = log
        self.overlay_bridge = overlay_bridge
        self.bartercastdb = BarterCastDBHandler.getInstance()
        
        self.network_delay = 30
        self.send_block_list = {}
        self.recv_block_list = {}
        self.block_interval = 1*60*60   # block interval for a peer to barter   cast

        self.topn = self.bartercastdb.getTopNPeers(NO_PEERS_IN_MSG, local_only = True)['top']
        self.overlay_bridge.add_task(self.refreshTopN, REFRESH_TOPN_INTERVAL)
        
        if self.log:
            self.overlay_log = OverlayLogger.getInstance(self.log)
            
        if LOG:
            self.logfile = '/Users/michel/packages/bartercast_dataset/bartercast42.log'
            if not os.path.exists(self.logfile):
                log = open(self.logfile, 'w')
                log.close()
示例#2
0
    def __init__(self, data_handler, overlay_bridge, log='', dnsindb=None):

        if DEBUG:
            print >> sys.stderr, "=================Initializing bartercast core"

        self.data_handler = data_handler
        self.dnsindb = dnsindb
        self.log = log
        self.overlay_bridge = overlay_bridge
        self.bartercastdb = BarterCastDBHandler.getInstance()

        self.network_delay = 30
        self.send_block_list = {}
        self.recv_block_list = {}
        self.block_interval = 1 * 60 * 60  # block interval for a peer to barter   cast

        self.topn = self.bartercastdb.getTopNPeers(NO_PEERS_IN_MSG,
                                                   local_only=True)['top']
        self.overlay_bridge.add_task(self.refreshTopN, REFRESH_TOPN_INTERVAL)

        if self.log:
            self.overlay_log = OverlayLogger.getInstance(self.log)

        if LOG:
            self.logfile = '/Users/michel/packages/bartercast_dataset/bartercast42.log'
            if not os.path.exists(self.logfile):
                log = open(self.logfile, 'w')
                log.close()
示例#3
0
def olthread_bartercast_conn_lost(ip, port, down_kb, up_kb):
    """ Called by OverlayThread to store information about the peer to
    whom the connection was just closed in the (slow) databases. """

    peerdb = PeerDBHandler.getInstance()
    bartercastdb = BarterCastDBHandler.getInstance()

    if bartercastdb:

        permid = peerdb.getPermIDByIP(ip)
        my_permid = bartercastdb.my_permid

        if DEBUG:
            print >> sys.stderr, "BARTERCAST (Connecter): Up %d down %d peer %s:%s (PermID = %s)" % (
                up_kb, down_kb, ip, port, permid)

        # Save exchanged KBs in BarterCastDB
        changed = False
        if permid is not None:
            name = bartercastdb.getName(permid)

            if down_kb > 0:
                new_value = bartercastdb.incrementItem((my_permid, permid),
                                                       'downloaded',
                                                       down_kb,
                                                       commit=False)
                changed = True

            if up_kb > 0:
                new_value = bartercastdb.incrementItem((my_permid, permid),
                                                       'uploaded',
                                                       up_kb,
                                                       commit=False)
                changed = True

        # For the record: save KBs exchanged with non-tribler peers
        else:
            if down_kb > 0:
                new_value = bartercastdb.incrementItem(
                    (my_permid, 'non-tribler'),
                    'downloaded',
                    down_kb,
                    commit=False)
                changed = True

            if up_kb > 0:
                new_value = bartercastdb.incrementItem(
                    (my_permid, 'non-tribler'),
                    'uploaded',
                    up_kb,
                    commit=False)
                changed = True

        if changed:
            bartercastdb.commit()

    else:
        if DEBUG:
            print >> sys.stderr, "BARTERCAST: No bartercastdb instance"
示例#4
0
    def olthread_bartercast_torrentexchange(self, permid, up_or_down):
        
        if up_or_down != 'uploaded' and up_or_down != 'downloaded':
            return
        
        bartercastdb = BarterCastDBHandler.getInstance()
        
        torrent_kb = float(self.avg_torrent_size) / 1024
        name = bartercastdb.getName(permid)
        my_permid = bartercastdb.my_permid

        if DEBUG:
            print >> sys.stderr, time.asctime(),'-', "bartercast: Torrent (%d KB) %s to/from peer %s" % (torrent_kb, up_or_down, `name`)

        if torrent_kb > 0:
            bartercastdb.incrementItem((my_permid, permid), up_or_down, torrent_kb)
示例#5
0
    def olthread_bartercast_torrentexchange(self, permid, up_or_down):

        if up_or_down != 'uploaded' and up_or_down != 'downloaded':
            return

        bartercastdb = BarterCastDBHandler.getInstance()

        torrent_kb = float(self.avg_torrent_size) / 1024
        name = bartercastdb.getName(permid)
        my_permid = bartercastdb.my_permid

        if DEBUG:
            print >> sys.stderr, "bartercast: Torrent (%d KB) %s to/from peer %s" % (
                torrent_kb, up_or_down, ` name `)

        if torrent_kb > 0:
            bartercastdb.incrementItem((my_permid, permid), up_or_down,
                                       torrent_kb)
示例#6
0
    def __init__(self, data_handler, secure_overlay, log='', dnsindb=None):

        if DEBUG:
            print >> sys.stderr, "=================Initializing bartercast core"

        self.data_handler = data_handler
        self.dnsindb = dnsindb
        self.log = log
        self.secure_overlay = secure_overlay
        self.bartercastdb = BarterCastDBHandler.getInstance()

        self.network_delay = 30
        self.send_block_list = {}
        self.recv_block_list = {}
        self.block_interval = 1 * 60 * 60  # block interval for a peer to barter   cast

        if self.log:
            self.overlay_log = OverlayLogger(self.log)
示例#7
0
def olthread_bartercast_conn_lost(ip,port,down_kb,up_kb):
    """ Called by OverlayThread to store information about the peer to
    whom the connection was just closed in the (slow) databases. """
    
    peerdb = PeerDBHandler.getInstance()
    bartercastdb = BarterCastDBHandler.getInstance()
    
    if bartercastdb:
    
        permid = peerdb.getPermIDByIP(ip)
        my_permid = bartercastdb.my_permid
    
        if DEBUG:
            print >> sys.stderr, "BARTERCAST (Connecter): Up %d down %d peer %s:%s (PermID = %s)" % (up_kb, down_kb, ip, port, permid)
    
        # Save exchanged KBs in BarterCastDB
        changed = False
        if permid is not None:
            name = bartercastdb.getName(permid)
            
            if down_kb > 0:
                new_value = bartercastdb.incrementItem((my_permid, permid), 'downloaded', down_kb, commit=False)
                changed = True
     
            if up_kb > 0:
                new_value = bartercastdb.incrementItem((my_permid, permid), 'uploaded', up_kb, commit=False)
                changed = True
     
        # For the record: save KBs exchanged with non-tribler peers
        else:
            if down_kb > 0:
                new_value = bartercastdb.incrementItem((my_permid, 'non-tribler'), 'downloaded', down_kb, commit=False)
                changed = True
     
            if up_kb > 0:
                new_value = bartercastdb.incrementItem((my_permid, 'non-tribler'), 'uploaded', up_kb, commit=False)
                changed = True
                
        if changed:
            bartercastdb.commit()

    else:
        if DEBUG:
            print >> sys.stderr, "BARTERCAST: No bartercastdb instance"