Exemple #1
0
def main(prog_name=os.path.basename(sys.argv[0]), args=None,
         with_loggers=True):
    if args is None:
        args = sys.argv[1:]
    parser = create_parser(prog_name)
    args = parser.parse_args(args)

    arg_config = create_identity_config(args)
    identity_config = load_identity_config(arg_config)
    processor = TransactionProcessor(url=identity_config.connect)

    if with_loggers is True:
        if args.verbose is None:
            verbose_level = 0
        else:
            verbose_level = args.verbose
        setup_loggers(verbose_level=verbose_level, processor=processor)

    handler = IdentityTransactionHandler()

    processor.add_handler(handler)

    try:
        processor.start()
    except KeyboardInterrupt:
        pass
    finally:
        processor.stop()
Exemple #2
0
def main(args=None):
    if args is None:
        args = sys.argv[1:]
    opts = parse_args(args)
    processor = None
    try:
        processor = TransactionProcessor(url=opts.endpoint)
        log_config = get_log_config(filename="intkey_log_config.toml")
        if log_config is not None:
            log_configuration(log_config=log_config)
        else:
            log_dir = get_log_dir()
            # use the transaction processor zmq identity for filename
            log_configuration(
                log_dir=log_dir,
                name="intkey-" + str(processor.zmq_id)[2:-1])

        init_console_logging(verbose_level=opts.verbose)

        # The prefix should eventually be looked up from the
        # validator's namespace registry.
        handler = IntkeyTransactionHandler()

        processor.add_handler(handler)

        processor.start()
    except KeyboardInterrupt:
        pass
    except Exception as e:  # pylint: disable=broad-except
        print("Error: {}".format(e), file=sys.stderr)
    finally:
        if processor is not None:
            processor.stop()
Exemple #3
0
def main(prog_name=os.path.basename(sys.argv[0]), args=None,
         with_loggers=True):
    if args is None:
        args = sys.argv[1:]
    parser = create_parser(prog_name)
    args = parser.parse_args(args)

    if with_loggers is True:
        if args.verbose is None:
            verbose_level = 0
        else:
            verbose_level = args.verbose
        setup_loggers(verbose_level=verbose_level)

    processor = TransactionProcessor(url=args.endpoint)

    handler = SettingsTransactionHandler()

    processor.add_handler(handler)

    try:
        processor.start()
    except KeyboardInterrupt:
        pass
    finally:
        processor.stop()
Exemple #4
0
def main(args=None):
    if args is None:
        args = sys.argv[1:]
    opts = parse_args(args)

    init_console_logging(verbose_level=opts.verbose)

    processor = TransactionProcessor(url=opts.endpoint)

    handler = ValidatorRegistryTransactionHandler()

    processor.add_handler(handler)

    try:
        processor.start()
    except KeyboardInterrupt:
        pass
    finally:
        processor.stop()
Exemple #5
0
def main(args=sys.argv[1:]):
    opts = parse_args(args)

    init_console_logging(verbose_level=opts.verbose)

    processor = TransactionProcessor(url=opts.endpoint)

    # The prefix should eventually be looked up from the
    # validator's namespace registry.
    xo_prefix = hashlib.sha512('xo'.encode("utf-8")).hexdigest()[0:6]
    handler = XoTransactionHandler(namespace_prefix=xo_prefix)

    processor.add_handler(handler)

    try:
        processor.start()
    except KeyboardInterrupt:
        pass
    finally:
        processor.stop()
Exemple #6
0
def main(args=None):
    if args is None:
        args = sys.argv[1:]
    opts = parse_args(args)
    processor = None
    try:
        processor = TransactionProcessor(url=opts.connect)
        log_config = get_log_config(filename="battleship_log_config.toml")

        # If no toml, try loading yaml
        if log_config is None:
            log_config = get_log_config(filename="battleship_log_config.yaml")

        if log_config is not None:
            log_configuration(log_config=log_config)
        else:
            log_dir = get_log_dir()
            # use the transaction processor zmq identity for filename
            log_configuration(
                log_dir=log_dir,
                name="battleship-" + str(processor.zmq_id)[2:-1])

        init_console_logging(verbose_level=opts.verbose)

        # The prefix should eventually be looked up from the
        # validator's namespace registry.
        battle_ship_prefix = \
            hashlib.sha512('battleship'.encode("utf-8")).hexdigest()[0:6]
        handler = \
            BattleshipTransactionHandler(namespace_prefix=battle_ship_prefix)

        processor.add_handler(handler)

        processor.start()
    except KeyboardInterrupt:
        pass
    except Exception as e:  # pylint: disable=broad-except
        print("Error: {}".format(e))
    finally:
        if processor is not None:
            processor.stop()
Exemple #7
0
def main(args=None):
    if args is None:
        args = sys.argv[1:]
    opts = parse_args(args)
    processor = None
    try:
        processor = TransactionProcessor(url=opts.connect)

        init_console_logging(verbose_level=opts.verbose)

        handler = TunachainTransactionHandler()

        processor.add_handler(handler)

        processor.start()
    except KeyboardInterrupt:
        pass
    except Exception as err:  # pylint: disable=broad-except
        print("Error: {}".format(err))
    finally:
        if processor is not None:
            processor.stop()
Exemple #8
0
def main(args=None):
    if args is None:
        args = sys.argv[1:]
    opts = parse_args(args)
    processor = None
    try:
        arg_config = create_xo_config(opts)
        xo_config = load_xo_config(arg_config)
        processor = TransactionProcessor(url=xo_config.connect)
        log_config = get_log_config(filename="xo_log_config.toml")

        # If no toml, try loading yaml
        if log_config is None:
            log_config = get_log_config(filename="xo_log_config.yaml")

        if log_config is not None:
            log_configuration(log_config=log_config)
        else:
            log_dir = get_log_dir()
            # use the transaction processor zmq identity for filename
            log_configuration(
                log_dir=log_dir,
                name="xo-" + str(processor.zmq_id)[2:-1])

        init_console_logging(verbose_level=opts.verbose)

        handler = XoTransactionHandler()

        processor.add_handler(handler)

        processor.start()
    except KeyboardInterrupt:
        pass
    except Exception as e:  # pylint: disable=broad-except
        print("Error: {}".format(e))
    finally:
        if processor is not None:
            processor.stop()
class DistributedManager(DistributedManagerInterface):
    def __init__(self, conf: DistributedManagerConfig):
        super().__init__(conf)

        self.conf = conf

        # Set up transaction processor
        self.transaction_processor = TransactionProcessor(
            url=conf.VALIDATOR_URL)
        self.handler = CCellularHandler(conf)
        self.handler.set_apply_callback(self.report_update)
        self.transaction_processor.add_handler(self.handler)

        self.client = CCellularClient(conf)

        # Set loggers
        self.handler.logger = self.log
        self.client.logger = self.log

        self.trigger_callback_func = None

    # Blocking function that runs the transaction processor
    def run_main(self):
        print("Running dAuth Transaction Processor, Ctr-c to stop")
        self.transaction_processor.start()  # blocking
        print("\nStopping")
        self.transaction_processor.stop()  # make sure to close out connection

    # called on startup from central manager
    def _start(self):
        self.log("Connecting to validator at " + str(self.conf.VALIDATOR_URL))

        # send a thread to the transaction batcher
        self.client.start_batcher(self.is_running)

    # Get the entry from system state
    def get_entry(self, key):
        self.log("Getting entry for key: " + str(key))
        return self.client.get(key)

    # Update the entry in the system state
    def update_entry(self, entry: DatabaseEntry):
        self.log("Updating entry: " + str(entry.to_dict()))
        self.client.set_entry(entry)

    # Returns all key values from the system state
    def get_all_keys(self):
        self.log("Retrieving all keys")
        return self.client.get_all()

    # Sets a callback function called when new data is available
    # for a given key (the key is passed as an arg to the callback)
    def set_report_callback(self, callback_func):
        self.log("Report callback set")
        self.trigger_callback_func = callback_func

    # Called when new data is available for a key, and will pass
    # the key back through the callback function if it is set
    def report_update(self, key):
        self.log("New update reported: " + str(key))
        if self.trigger_callback_func:
            self.trigger_callback_func(key)

    # Returns the number of all keys available
    def count(self):
        return len(self.get_all_keys())

    def is_running(self):
        return self._running
Exemple #10
0
from sawtooth_sdk.processor.core import TransactionProcessor
from hw_transhand import HwTransHand
import argparse

#add a processor handler

parser = argparse.ArgumentParser()
parser.add_argument("url")
args = parser.parse_args()
processor = TransactionProcessor(url=args.url)
handler = HwTransHand()
processor.add_handler(handler)
processor.start()
def deployProcessor(Class,url):
	processor = TransactionProcessor(url)
	handler = Class()
	processor.add_handler(handler)
	processor.start()		
Exemple #12
0
def processor_main():
    print("VERBOSE : Processor Began")
    tp = TransactionProcessor(url='tcp://validator:4004')
    handler = tf_Digital_ID()
    tp.add_handler(handler)
    tp.start()
Exemple #13
0
TP_HANDLERS = [AccountHandler(), PubKeyHandler(), AtomicSwapHandler()]

if __name__ == '__main__':
    config = load_toml_with_defaults(
        '/config/remme-client-config.toml')['remme']['client']
    parser = argparse.ArgumentParser(description='Transaction processor.')
    parser.add_argument('-v', '--verbosity', type=int, default=2)
    parser.add_argument('--account', action='store_true')
    parser.add_argument('--atomic-swap', action='store_true')
    parser.add_argument('--pubkey', action='store_true')
    args = parser.parse_args()
    setup_logging('remme', args.verbosity)

    processor = TransactionProcessor(
        url=f'tcp://{ config["validator_ip"] }:{ config["validator_port"] }')

    if args.account:
        processor.add_handler(AccountHandler())
    if args.atomic_swap:
        processor.add_handler(AtomicSwapHandler())
    if args.pubkey:
        processor.add_handler(PubKeyHandler())

    try:
        processor.start()
    except KeyboardInterrupt:
        pass
    finally:
        processor.stop()
Exemple #14
0
import logging
_logger = logging.getLogger(__name__)
logging.basicConfig(level=logging.DEBUG) # TODO: The logger must be configured with sawthooth tools. Validator container has the correct configuration

if __name__ == '__main__':
    _logger.info('Initializing transactions families')
    
    tools = Tools(sys.argv[1:]) # TODO: This class implements methods to load configuration variables. Must be reemplaced with sawthooth tools
    try:
        validator_url = tools.config['validator_url'] if 'validator_url' in tools.config.keys() else os.environ['HOSTNAME']
        families_directories = tools.config['addons_path']
        if isinstance(tools.config['addons_path'], str):
            families_directories = [tools.config['addons_path']]
        for path in families_directories:
            _logger.info('Searching families in {}. Linking with validator_url {}'.format(path, validator_url))
            SCRIPT_DIR = os.path.dirname(os.path.abspath(__file__))
            plugins_directory_path = os.path.join(SCRIPT_DIR, path)
            families = tools.import_plugins(plugins_directory_path, path.replace(os.path.sep, '.'), TransactionHandlerBase)
            processor = TransactionProcessor(url=validator_url) # TODO: Sawthooth have configuration files, utilize it
            for family in families:
                _logger.info('Loading Transaction procesor for family {}'.format(family.family_name))
                processor.add_handler(family)
            processor.start()
    except KeyboardInterrupt:
        pass
    except SystemExit as err:
        raise err
    except BaseException as err:
        traceback.print_exc(file=sys.stderr)
        sys.exit(1)