Ejemplo n.º 1
0
    def __init__(self, transport):
        transport.log("[market] Initializing")

        # for now we have the id in the transport
        self._myself = transport._myself
        self._peers = transport._peers
        self._transport = transport
        self.query_ident = None

        self.reputation = Reputation(self._transport)
        self.orders = Orders(self._transport)


        # if something comes in, store it:
        self.nicks = {}
        self.pages = {}

        # register callbacks for incoming events
        transport.add_callback('peer', self.on_peer)
        transport.add_callback('query_page', self.on_query_page)
        transport.add_callback('page', self.on_page)
        transport.add_callback('negotiate_pubkey', self.on_negotiate_pubkey)
        transport.add_callback('response_pubkey', self.on_response_pubkey)

        self.load_page()

        # send something
        transport.send(shout({'text': 'xxxxx'}))
Ejemplo n.º 2
0
    def __init__(self, transport):
        
        transport.log("[Market] Initializing")

        # for now we have the id in the transport
        self._myself = transport._myself
        self._peers = transport._peers
        self._transport = transport
        self.query_ident = None

        self.reputation = Reputation(self._transport)
        self.orders = Orders(self._transport)
        

        # TODO: Persistent storage of nicknames and pages
        self.nicks = {}
        self.pages = {}

        # Register callbacks for incoming events
        transport.add_callback('peer', self.on_peer)
        transport.add_callback('query_page', self.on_query_page)
        transport.add_callback('page', self.on_page)
        transport.add_callback('negotiate_pubkey', self.on_negotiate_pubkey)
        transport.add_callback('proto_response_pubkey', self.on_response_pubkey)

        self.load_page()

        # Send Market Shout
        transport.send(shout({'text': 'Market Initialized'}))
Ejemplo n.º 3
0
    def __init__(self, transport, node, store_file):

        self._log = logging.getLogger(self.__class__.__name__)
        self._log.info("Initializing")

        # for now we have the id in the transport
        self._myself = transport._myself
        self._peers = transport._peers
        self._transport = transport
        self.query_ident = None

        self.reputation = Reputation(self._transport)
        self.orders = Orders(self._transport)
        self.order_entries = self.orders._orders

        # TODO: Persistent storage of nicknames and pages
        self.nicks = {}
        self.pages = {}

        # store file
        self.store_file = store_file
        # assign Entangled Node to global
        self.node = node

        # Connect to database
        MONGODB_URI = 'mongodb://localhost:27017'
        _dbclient = MongoClient()
        self._db = _dbclient.openbazaar
        print type(self._db)
        self.settings = self._db.settings.find_one()

        welcome = True

        if self.settings:
            if 'welcome' in self.settings.keys() and self.settings['welcome']:
                welcome = False
        else:
            # creates the settings collection if it does not already exist
            # self.settings = self._db.create_collection('settings')
            pass

        # Register callbacks for incoming events
        transport.add_callback('query_myorders', self.on_query_myorders)
        transport.add_callback('peer', self.on_peer)
        transport.add_callback('query_page', self.on_query_page)
        transport.add_callback('page', self.on_page)
        transport.add_callback('negotiate_pubkey', self.on_negotiate_pubkey)
        transport.add_callback('proto_response_pubkey',
                               self.on_response_pubkey)

        # loads the page in from memory
        self.load_page(welcome)
        # stored the page in the DHT once the reactor has been given time to startup and the entangled node has refreshed
        delay = 1.0
        reactor.callLater(delay, self.store_page)
Ejemplo n.º 4
0
    def __init__(self, transport):

        # Current
        self._transport = transport
        self._dht = transport._dht
        self._market_id = self._transport._market_id
        self._myself = self._transport._myself
        self._peers = self._dht._activePeers

        # Legacy for now
        self.query_ident = None
        self.reputation = Reputation(self._transport)
        self.orders = Orders(self._transport)
        self.order_entries = self.orders._orders
        self.nicks = {}
        self.pages = {}

        self._log = logging.getLogger(
            '[%s] %s' % (self._market_id, self.__class__.__name__))
        self._log.info("Loading Market %s" % self._market_id)

        MONGODB_URI = 'mongodb://localhost:27017'
        _dbclient = MongoClient()
        self._db = _dbclient.openbazaar

        self.settings = self._transport.settings

        welcome = True

        if self.settings:
            if 'welcome' in self.settings.keys() and self.settings['welcome']:
                welcome = False

        # Register callbacks for incoming events
        self._transport.add_callback('query_myorders', self.on_query_myorders)
        self._transport.add_callback('peer', self.on_peer)
        self._transport.add_callback('query_page', self.on_query_page)
        self._transport.add_callback('page', self.on_page)
        self._transport.add_callback('negotiate_pubkey',
                                     self.on_negotiate_pubkey)
        self._transport.add_callback('proto_response_pubkey',
                                     self.on_response_pubkey)

        self.load_page(welcome)
Ejemplo n.º 5
0
    def __init__(self, transport):

        self._log = logging.getLogger(self.__class__.__name__)
        self._log.info("Initializing")

        # for now we have the id in the transport
        self._myself = transport._myself
        self._peers = transport._peers
        self._transport = transport
        self.query_ident = None

        self.reputation = Reputation(self._transport)
        self.orders = Orders(self._transport)
        self.order_entries = self.orders._orders

        # TODO: Persistent storage of nicknames and pages
        self.nicks = {}
        self.pages = {}

        # Connect to database
        MONGODB_URI = 'mongodb://localhost:27017'
        _dbclient = MongoClient()
        self._db = _dbclient.openbazaar

        self.settings = self._db.settings.find_one()

        welcome = True

        if self.settings:
            if 'welcome' in self.settings.keys() and self.settings['welcome']:
                welcome = False

        # Register callbacks for incoming events
        transport.add_callback('query_myorders', self.on_query_myorders)
        transport.add_callback('peer', self.on_peer)
        transport.add_callback('query_page', self.on_query_page)
        transport.add_callback('page', self.on_page)
        transport.add_callback('negotiate_pubkey', self.on_negotiate_pubkey)
        transport.add_callback('proto_response_pubkey',
                               self.on_response_pubkey)

        self.load_page(welcome)
Ejemplo n.º 6
0
    def __init__(self, transport):

        self._log = logging.getLogger(self.__class__.__name__)
        self._log.info("Initializing")

        # for now we have the id in the transport
        self._myself = transport._myself
        self._peers = transport._peers
        self._transport = transport
        self.query_ident = None

        self.reputation = Reputation(self._transport)
        self.orders = Orders(self._transport)
        self.order_entries = self.orders._orders

        # TODO: Persistent storage of nicknames and pages
        self.nicks = {}
        self.pages = {}

        # Connect to database
        MONGODB_URI = 'mongodb://localhost:27017'
        _dbclient = MongoClient()
        self._db = _dbclient.openbazaar

        # Register callbacks for incoming events
        transport.add_callback('query_myorders', self.on_query_myorders)
        transport.add_callback('peer', self.on_peer)
        transport.add_callback('query_page', self.on_query_page)
        transport.add_callback('page', self.on_page)
        transport.add_callback('negotiate_pubkey', self.on_negotiate_pubkey)
        transport.add_callback('proto_response_pubkey',
                               self.on_response_pubkey)

        self.load_page()

        # Send Market Shout
        transport.send(shout({'text': 'Market Initialized'}))
Ejemplo n.º 7
0
import numpy as np
from image.image import Drawer
from pd import Game, Player, SIZE, NSWAPS, DO_REP
from reputation import Reputation
import random

drawer = Drawer(magnify=3)
rep = Reputation(DO_REP)


def swap(players, p1, p2, x1, y1, x2, y2):
    players[x1][y1] = p2
    players[x2][y2] = p1
    return players


if __name__ == "__main__":
    players = np.random.rand(SIZE, SIZE)
    players = [[Player(random.random()) for _ in range(SIZE)]
               for _ in range(SIZE)]

    game = Game(rep=rep)
    N = 0
    while True:
        ### Reporting and drawing ###
        N += 1
        # reports iteration number and average strategy (degree of cooperation)
        print(
            "step: ", N, "Total Cooperation: ",
            sum(map(sum, [[p.strat for p in _row]
                          for _row in players])) / (SIZE**2))