def run(options, design): options = parser.parse_args() logger.from_argparse(logger, options) logger.set_level(logging.FATAL, 'http') logger.set_level(logging.FATAL, 'transport') filename = options.design if not pathlib.Path(filename).exists(): parser.error('file, `%s` does not exists.' % filename) if not pathlib.Path(filename).is_file(): parser.error('file, `%s` is not valid file.' % filename) design = load_design(filename) log = logger.get_logger(__name__) log_state = logger.get_logger('consensus.state') log.info('design loaded:\n%s', pprint.pformat(convert_namedtuple_to_dict(design), width=1)) log.debug('trying to run %d / %d (faulty nodes / all nodes)', len(design.faulties), len(design.nodes)) run_func = run_default if options.case is not None: try: os.chdir(pathlib.Path(options.case).absolute()) sys.path.insert(0, '.') run_func = getattr(get_module('main'), 'run', None) except (FileNotFoundError, AttributeError): log.debug('failed to load case, %s', options.case) else: log.debug('loaded case from %s', options.case) blockchains = run_func(options, design) prev = None while True: time.sleep(1) now = set( map(lambda x: (x.consensus.node.name, x.consensus), blockchains)) if now == prev: continue prev = now log_current_state(now, design, log_state) return
import sys import logging import pathlib sys.path.insert(0, str(pathlib.Path('.').resolve() / 'src')) from bos_consensus.util import logger, LOG_LEVEL_METRIC # noqa logger.set_level(logging.FATAL, 'http') logger.set_level(LOG_LEVEL_METRIC, 'consensus') logging.getLogger('urllib3').setLevel(logging.FATAL)
consensus = consensus_module.IsaacConsensus( node, config.threshold, tuple(map(lambda x: Node(x.extras['name'], x), config.validators)), ) log.metric(node=node.name, data=node.to_dict()) transport = NETWORK_MODULE.Transport(bind=('0.0.0.0', config.port)) blockchain = Blockchain(consensus, transport) base_server = BaseServer(blockchain) base_server.start() return if __name__ == '__main__': options = parser.parse_args() logger.from_argparse(logger, options) log = logger.get_logger(__name__) logger.set_level(logging.FATAL, 'http') logger.set_level(logging.FATAL, 'ping') log.debug('options: %s', options) log.debug('log settings: %s', logger.info) main(options)
PRINTER.colored('Yes' if can_pass else 'No', color='green' if can_pass else 'red'), fmt='%15s | %s', print=True, ) PRINTER.line('=') PRINTER.print() return if __name__ == '__main__': options = parser.parse_args() logger.from_argparse(logger, options) logger.set_level(logging.FATAL, 'http') logger.set_level(logging.FATAL, 'transport') if not pathlib.Path(options.design).exists(): parser.error('file, `%s` does not exists.' % options.design) if not pathlib.Path(options.design).is_file(): parser.error('file, `%s` is not valid file.' % options.design) design = load_design(options.design) log = logger.get_logger(__name__) log_state = logger.get_logger('consensus.state') log.debug('options: %s', options)
return def log_nodes_state(blockchains, design, log_state): now = set(map(lambda x: (x.consensus.node.name, x.consensus), blockchains)) log_current_state(now, design, log_state) return if __name__ == '__main__': options = parser.parse_args() logger.from_argparse(logger, options) logger.set_level(logging.FATAL, 'local') logger.set_level(logging.FATAL, 'transport') design = load_design(options.design) log = logger.get_logger(__name__) log_state = logger.get_logger('consensus.state') log.info('design loaded:\n%s', pprint.pformat(convert_namedtuple_to_dict(design), width=1)) log.debug('trying to run %d / %d (faulty nodes / all nodes)', len(design.faulties), len(design.nodes)) run_func = run if options.case is not None: