def stop(self): from coins import contract_chain_consumer contract_chain_consumer.A().removeStateChangedCallback( self._on_contract_chain_state_changed) contract_chain_consumer.A('stop') contract_chain_consumer.A('shutdown') return True
def start(self): from twisted.internet.defer import Deferred from coins import contract_chain_consumer self.starting_deferred = Deferred() contract_chain_consumer.A('init') contract_chain_consumer.A().addStateChangedCallback(self._on_contract_chain_state_changed) contract_chain_consumer.A('start') return self.starting_deferred
def is_connected(): """ """ if contract_chain_consumer.A() is None: lg.warn('contract_chain_consumer() not exist') return False if contract_chain_consumer.A().state != 'CONNECTED': if _Debug: lg.out(_DebugLevel, 'contract_chain_node._connected OFFLINE, nodes connection is not ready: %s' % contract_chain_consumer.A()) return False return True
def send_to_miner(coins): """ """ if not is_connected(): return succeed(None) result = Deferred() p2p_service.SendCoin( contract_chain_consumer.A().connected_miner, coins, callbacks={ commands.Ack(): lambda response, info: result.callback(response), commands.Fail(): lambda response, info: result.errback(Exception(response)), } ) return result
def __init__(self, query_dict): """ """ self.result = Deferred() self.out_packets = {} for idurl in contract_chain_consumer.A().connected_accountants: single_accountant = Deferred() outpacket = p2p_service.SendRetrieveCoin(idurl, query_dict, callbacks={ commands.Coin(): self._on_coin_received, commands.Fail(): self._on_coin_failed, }) assert outpacket.PacketID not in self.out_packets self.out_packets[outpacket.PacketID] = single_accountant DeferredList(list(self.out_packets.values())).addBoth(self._on_results_collected) if _Debug: lg.out(_DebugLevel, 'contract_chain_node.Query created to request from %d accountants' % len(self.out_packets))
def reconnect(): """ """ contract_chain_consumer.A('start')
def health_check(self): from coins import contract_chain_consumer return contract_chain_consumer.A().state in [ 'CONNECTED', ]