def _test(): from crypt import signed from lib import packetid lg.set_debug_level(24) A("init") A().offline_mode = True A("start") coins = [] for _ in xrange(5): coin = coins_io.storage_contract_open("http://some.id-host.org/alice_customer.xml", 3600, 4096) if coins_io.verify_coin_signature(coin): coins.append(coin) else: print coin sys.exit() outpacket = signed.Packet( commands.Coin(), my_id.getLocalID(), my_id.getLocalID(), packetid.UniqueID(), json.dumps(coins), "http://server.com/id.xml", ) reactor.callLater(0.1, callback.run_inbox_callbacks, outpacket, None, "finished", "") # reactor.callLater(5.1, A, 'shutdown') reactor.run()
def _on_inbox_packet(self, newpacket, info, status, error_message): if status != "finished": return False if newpacket.Command == commands.Coin(): coins_list = coins_io.read_coins_from_packet(newpacket) if not coins_list: # p2p_service.SendFail(newpacket, 'failed to read coins from packet') return False new_coins = [] for acoin in coins_list: if not coins_io.verify_coin_signature(acoin): lg.warn("signature verification failed") continue if coins_io.validate_coin(acoin): continue new_coins.append(acoin) if not new_coins: # p2p_service.SendFail(newpacket, 'did not received any coins to mine') return False for coin in new_coins: self.automat("new-data-received", coin) return True return False