diff --git a/src/cutecoin/core/account.py b/src/cutecoin/core/account.py index 062a0e728e8453e69874df76f2774c69d331ccca..b81b54052c72849063c99c031d658137a95e5973 100644 --- a/src/cutecoin/core/account.py +++ b/src/cutecoin/core/account.py @@ -130,7 +130,7 @@ class Account(object): 'self_': selfcert.signed_raw(), 'other': "{0}\n".format(certification.inline())} logging.debug("Posted data : {0}".format(data)) - community.post(bma.wot.Add, {}, data) + community.broadcast(bma.wot.Add, {}, data) def sources(self, community): sources = [] @@ -189,7 +189,7 @@ class Account(object): key = SigningKey(self.salt, password) selfcert.sign([key]) logging.debug("Key publish : {0}".format(selfcert.signed_raw())) - community.post(bma.wot.Add, {}, {'pubkey': self.pubkey, + community.broadcast(bma.wot.Add, {}, {'pubkey': self.pubkey, 'self_': selfcert.signed_raw(), 'other': []}) @@ -206,7 +206,7 @@ class Account(object): key = SigningKey(self.salt, password) membership.sign([key]) logging.debug("Membership : {0}".format(membership.signed_raw())) - community.post(bma.blockchain.Membership, {}, + community.broadcast(bma.blockchain.Membership, {}, {'membership': membership.signed_raw()}) def jsonify(self): diff --git a/src/cutecoin/core/community.py b/src/cutecoin/core/community.py index 43f50d1d1483e1f3af924594a6e54c86de2bf5a2..6686aa862931f45f7f3a2013d0dbe913ec7861f4 100644 --- a/src/cutecoin/core/community.py +++ b/src/cutecoin/core/community.py @@ -141,7 +141,6 @@ class Community(object): for d in data: cached_data.append(d) self.requests_cache[cache_key] = cached_data - logging.debug("Got a generator !") else: self.requests_cache[cache_key] = data return self.requests_cache[cache_key] @@ -159,6 +158,19 @@ class Community(object): pass return + def broadcast(self, request, req_args={}, post_args={}): + for peer in self.peers: + e = next(e for e in peer.endpoints if type(e) is BMAEndpoint) + logging.debug("Trying to connect to : " + peer.pubkey) + req = request(e.conn_handler(), **req_args) + try: + req.post(**post_args) + except ValueError as e: + if peer == self.peers[0]: + raise + except: + pass + def jsonify_peers_list(self): data = [] for peer in self.peers: diff --git a/src/cutecoin/core/wallet.py b/src/cutecoin/core/wallet.py index ad02a6efbb7bab35fc75e44a5010723cdb3c05f2..9fdc9aa068c1a5a238c11acc492fe6d8eb78ce82 100644 --- a/src/cutecoin/core/wallet.py +++ b/src/cutecoin/core/wallet.py @@ -216,7 +216,7 @@ class Wallet(object): tx.sign([key]) logging.debug("Transaction : {0}".format(tx.signed_raw())) try: - community.post(bma.tx.Process, + community.broadcast(bma.tx.Process, post_args={'transaction': tx.signed_raw()}) self.cache.awaiting_tx.append(tx) except: