Example #1
0
def start_as_score(args):
    # apply default configure values
    channel = args.channel or conf.LOOPCHAIN_DEFAULT_CHANNEL
    score_package = args.score_package or conf.DEFAULT_SCORE_PACKAGE
    amqp_target = args.amqp_target or conf.AMQP_TARGET
    amqp_key = args.amqp_key or conf.AMQP_KEY
    channel_use_icx = conf.CHANNEL_OPTION[channel][
        'send_tx_type'] == conf.SendTxType.icx

    if channel_use_icx and conf.USE_EXTERNAL_SCORE:
        if conf.EXTERNAL_SCORE_RUN_IN_LAUNCHER:
            from iconservice.icon_service import IconService
            from iconservice.icon_config import default_icon_config
            from iconcommons.icon_config import IconConfig
            from iconcommons.logger import Logger

            additional_conf = {
                "scoreRootPath": f".storage/.score{amqp_key}",
                "stateDbRootPath": f".storage/.statedb{amqp_key}",
                "channel": channel,
                "amqpKey": amqp_key,
            }

            icon_conf = IconConfig("", default_icon_config)
            icon_conf.load()
            icon_conf.update(additional_conf)
            Logger.load_config(icon_conf)

            icon_service = IconService()
            icon_service.serve(config=icon_conf)
            Logger.info(f'==========IconService Done==========',
                        'IconServiceStandAlone')
    else:
        ScoreService(channel, score_package, amqp_target, amqp_key).serve()
Example #2
0
def start_as_score(args):
    # apply default configure values
    channel = args.channel or conf.LOOPCHAIN_DEFAULT_CHANNEL
    score_package = args.score_package or conf.DEFAULT_SCORE_PACKAGE
    amqp_target = args.amqp_target or conf.AMQP_TARGET
    amqp_key = args.amqp_key or conf.AMQP_KEY
    conf_path = conf.CONF_PATH_ICONSERVICE_DEV

    if args.radio_station_target:
        if args.radio_station_target == conf.URL_CITIZEN_TESTNET:
            conf_path = conf.CONF_PATH_ICONSERVICE_TESTNET
        elif args.radio_station_target == conf.URL_CITIZEN_MAINNET:
            conf_path = conf.CONF_PATH_ICONSERVICE_MAINNET

    if conf.USE_EXTERNAL_SCORE:
        if conf.EXTERNAL_SCORE_RUN_IN_LAUNCHER:
            from iconservice.icon_service import IconService
            from iconservice.icon_config import default_icon_config
            from iconcommons.icon_config import IconConfig
            from iconcommons.logger import Logger

            with open(conf_path) as file:
                load_conf = json.load(file)

            additional_conf = {
                "log": load_conf.get("log"),
                "scoreRootPath":
                load_conf.get("scoreRootPath") + f"{amqp_key}_{channel}",
                "stateDbRootPath":
                load_conf.get("stateDbRootPath") + f"{amqp_key}_{channel}",
                "channel": channel,
                "amqpKey": amqp_key,
                "builtinScoreOwner": load_conf.get("builtinScoreOwner"),
                "service": load_conf.get("service")
            }

            icon_conf = IconConfig("", default_icon_config)
            icon_conf.load()
            icon_conf.update(additional_conf)
            Logger.load_config(icon_conf)

            icon_service = IconService()
            icon_service.serve(config=icon_conf)
            Logger.info(f'==========IconService Done==========',
                        'IconServiceStandAlone')
    else:
        ScoreService(channel, score_package, amqp_target, amqp_key).serve()
Example #3
0
def start_as_score(args):
    from iconservice.icon_service import IconService
    from iconservice.icon_config import default_icon_config
    from iconcommons.icon_config import IconConfig
    from iconcommons.logger import Logger

    port = args.port or conf.PORT_PEER
    channel = args.channel or conf.LOOPCHAIN_DEFAULT_CHANNEL
    amqp_target = args.amqp_target or conf.AMQP_TARGET
    amqp_key = args.amqp_key or conf.AMQP_KEY
    conf_path = conf.CONF_PATH_ICONSERVICE_DEV

    if args.develop:
        db_suffix = f"{port}_{channel}"
    else:
        db_suffix = channel

    if args.radio_station_target == conf.URL_CITIZEN_TESTNET:
        conf_path = conf.CONF_PATH_ICONSERVICE_TESTNET
    elif args.radio_station_target == conf.URL_CITIZEN_MAINNET:
        conf_path = conf.CONF_PATH_ICONSERVICE_MAINNET

    network_type = conf_path.split('/')[-2]
    with open(conf_path) as file:
        load_conf = json.load(file)

    additional_conf = {
        "log": {
            "filePath": f"./log/{network_type}/{db_suffix}/iconservice.log"
        },
        "scoreRootPath": conf.DEFAULT_STORAGE_PATH + f"/.score_{db_suffix}",
        "stateDbRootPath":
        conf.DEFAULT_STORAGE_PATH + f"/.statedb_{db_suffix}",
        "channel": channel,
        "amqpKey": amqp_key,
        "amqpTarget": amqp_target
    }

    icon_conf: IconConfig = IconConfig("", default_icon_config)
    icon_conf.load()
    icon_conf.update_conf(load_conf)
    icon_conf.update_conf(additional_conf)
    Logger.load_config(icon_conf)

    icon_service = IconService()
    icon_service.serve(config=icon_conf)
Example #4
0
def start_as_score(args):
    # apply default configure values
    channel = args.channel or conf.LOOPCHAIN_DEFAULT_CHANNEL
    score_package = args.score_package or conf.DEFAULT_SCORE_PACKAGE
    amqp_target = args.amqp_target or conf.AMQP_TARGET
    amqp_key = args.amqp_key or conf.AMQP_KEY

    if util.channel_use_icx(channel) and conf.USE_EXTERNAL_SCORE:
        if conf.EXTERNAL_SCORE_RUN_IN_LAUNCHER:
            from iconservice.icon_service import IconService
            from iconservice.icon_config import default_icon_config
            from iconcommons.icon_config import IconConfig
            from iconcommons.logger import Logger

            additional_conf = {
                "log": {
                    "logger": "iconservice",
                    "colorLog": True,
                    "level": "info",
                    "filePath": f"./log/icon_service_{channel}.log",
                    "outputType": "console|file"
                },
                "scoreRootPath": f".storage/.score{amqp_key}_{channel}",
                "stateDbRootPath": f".storage/.statedb{amqp_key}_{channel}",
                "channel": channel,
                "amqpKey": amqp_key,
                "service": {
                    "fee": True,
                    "audit": True,
                    "deployerWhiteList": False,
                    "scorePackageValidator": False
                }
            }

            icon_conf = IconConfig("", default_icon_config)
            icon_conf.load()
            icon_conf.update(additional_conf)
            Logger.load_config(icon_conf)

            icon_service = IconService()
            icon_service.serve(config=icon_conf)
            Logger.info(f'==========IconService Done==========',
                        'IconServiceStandAlone')
    else:
        ScoreService(channel, score_package, amqp_target, amqp_key).serve()
Example #5
0
def start_as_score(args):
    # apply default configure values
    channel = args.channel or conf.LOOPCHAIN_DEFAULT_CHANNEL
    score_package = args.score_package or conf.DEFAULT_SCORE_PACKAGE
    amqp_target = args.amqp_target or conf.AMQP_TARGET
    amqp_key = args.amqp_key or conf.AMQP_KEY

    if util.channel_use_icx(channel) and conf.USE_EXTERNAL_SCORE:
        if conf.EXTERNAL_SCORE_RUN_IN_LAUNCHER:
            from iconservice.icon_service import IconService
            from iconservice.icon_config import default_icon_config
            from iconcommons.icon_config import IconConfig
            from iconcommons.logger import Logger

            with open(conf.DEFAULT_SCORE_CONF_PATH) as file:
                load_conf = json.load(file)

            additional_conf = {
                "log": load_conf.get("log"),
                "scoreRootPath": f".storage/.score{amqp_key}_{channel}",
                "stateDbRootPath": f".storage/.statedb{amqp_key}_{channel}",
                "channel": channel,
                "amqpKey": amqp_key,
                "builtinScoreOwner": load_conf.get("builtinScoreOwner"),
                "service": load_conf.get("service")
            }

            icon_conf = IconConfig("", default_icon_config)
            icon_conf.load()
            icon_conf.update(additional_conf)
            Logger.load_config(icon_conf)

            icon_service = IconService()
            icon_service.serve(config=icon_conf)
            Logger.info(f'==========IconService Done==========', 'IconServiceStandAlone')
    else:
        ScoreService(channel, score_package, amqp_target, amqp_key).serve()