GwConfig

Settings for the GNodeFactory, readable from environment and/or from env files.

class gridworks.gw_config.GNodeSettings(_env_file='<object object>', _env_file_encoding=None, _env_nested_delimiter=None, _secrets_dir=None, *, public=Public(gnf_api_root='http://localhost:8000', dev_market_maker_api_root='http://localhost:7997', dev_ta_validator_api_root='http://localhost:8001', gnf_admin_addr='RNMHG32VTIHTC7W3LZOEPTDGREL5IQGK46HKD3KBLZHYQUCAKLMT4G5ALI', gnr_addr='X2ASUAUPK5ICMGDXQZQKBPSXWEJLBA4KKQ2TXW2KWO2JQTLY3J2Q4S33WE', dev_market_maker_addr='JMEUH2AXM6UGRJO2DBZXDOA2OMIWQFNQZ54LCVC4GQX6QDOX5Z6JRGMWFA', dev_ta_validator_addr='7QQT4GN3ZPAQEFCNWF5BMF7NULVK3CWICZVT4GM3BQRISD52YEDLWJ4MII', dev_ta_validator_multi_addr="Y5TRQXIJHWJ4OHCZSWP4PZTCES5VWOF2KDTNYSMU5HLAUXBFQQDX6IR5KM'", ta_validator_funding_threshold_algos=100, ta_deed_consideration_algos=50, universe='dev', gnf_graveyard_addr='COA6SYUOBE33F5JDYEGC5XAD43QRG3VGHNNQXLYWFSSQEHDQ5HJ52NDNPI', algod_address='http://localhost:4001', kmd_address='http://localhost:4002', gen_kmd_wallet_name='unencrypted-default-wallet'), algo_api_secrets=AlgoApiSecrets(algod_token=SecretStr('**********'), kmd_token=SecretStr('**********'), gen_kmd_wallet_password=SecretStr('')), rabbit=RabbitBrokerClient(url=SecretStr('**********')), redis_endpoint='localhost', g_node_alias='d1.isone.unknown.gnode', g_node_id='e23eb2ec-4064-4921-89d4-b006edc81216', g_node_instance_id='00000000-0000-0000-0000-000000000000', g_node_role_value='GNode', sk=SecretStr('**********'), universe_type_value='Dev', my_super_alias='d1.super1', my_time_coordinator_alias='d1.time', initial_time_unix_s=1577852400, log_level='INFO', minute_cron_file='cron_last_minute.txt', hour_cron_file='cron_last_hour.txt', day_cron_file='cron_last_day.txt')

Template settings for a GNode.

Parameters:
  • _env_file (str | PathLike | List[str | PathLike] | Tuple[str | PathLike, ...] | None) –

  • _env_file_encoding (str | None) –

  • _env_nested_delimiter (str | None) –

  • _secrets_dir (str | PathLike | None) –

  • public (Public) –

  • algo_api_secrets (AlgoApiSecrets) –

  • rabbit (RabbitBrokerClient) –

  • redis_endpoint (str) –

  • g_node_alias (str) –

  • g_node_id (str) –

  • g_node_instance_id (str) –

  • g_node_role_value (str) –

  • sk (SecretStr) –

  • universe_type_value (str) –

  • my_super_alias (str) –

  • my_time_coordinator_alias (str) –

  • initial_time_unix_s (int) –

  • log_level (str) –

  • minute_cron_file (str) –

  • hour_cron_file (str) –

  • day_cron_file (str) –

classmethod validate_setting_axioms(values)
Validates the following:
  • universe_type_value belongs to the GridWorks UniverseType enum

  • g_node_role_value belongs to the GridWOrks GNodeRole enum

  • All GNodeAliases (self, my time coordinator, my super) have the correct

LeftRightDot format and match the alias pattern for the universe type - sk.get_secret_value() has the format of an Algorand secret key - initial_time_unix_s is a reasonable unix time in ms

class gridworks.gw_config.Public(*, gnf_api_root='http://localhost:8000', dev_market_maker_api_root='http://localhost:7997', dev_ta_validator_api_root='http://localhost:8001', gnf_admin_addr='RNMHG32VTIHTC7W3LZOEPTDGREL5IQGK46HKD3KBLZHYQUCAKLMT4G5ALI', gnr_addr='X2ASUAUPK5ICMGDXQZQKBPSXWEJLBA4KKQ2TXW2KWO2JQTLY3J2Q4S33WE', dev_market_maker_addr='JMEUH2AXM6UGRJO2DBZXDOA2OMIWQFNQZ54LCVC4GQX6QDOX5Z6JRGMWFA', dev_ta_validator_addr='7QQT4GN3ZPAQEFCNWF5BMF7NULVK3CWICZVT4GM3BQRISD52YEDLWJ4MII', dev_ta_validator_multi_addr="Y5TRQXIJHWJ4OHCZSWP4PZTCES5VWOF2KDTNYSMU5HLAUXBFQQDX6IR5KM'", ta_validator_funding_threshold_algos=100, ta_deed_consideration_algos=50, universe='dev', gnf_graveyard_addr='COA6SYUOBE33F5JDYEGC5XAD43QRG3VGHNNQXLYWFSSQEHDQ5HJ52NDNPI', algod_address='http://localhost:4001', kmd_address='http://localhost:4002', gen_kmd_wallet_name='unencrypted-default-wallet')
Publicly available information about the GNodeFactory, including:
  • GnfAdminAddr

  • GnfApiRoot

  • TaValidatorFundingThresholdAlgos

  • TaDeedConsiderationAlgos

Also includes useful information shartcuts for running the simulated Millinocket demo. In this demo there is only one MarketMaker, and one TaValidator. Public Algorand addresses and ApiRoots are included for both.

Parameters:
  • gnf_api_root (str) –

  • dev_market_maker_api_root (str) –

  • dev_ta_validator_api_root (str) –

  • gnf_admin_addr (str) –

  • gnr_addr (str) –

  • dev_market_maker_addr (str) –

  • dev_ta_validator_addr (str) –

  • dev_ta_validator_multi_addr (str) –

  • ta_validator_funding_threshold_algos (int) –

  • ta_deed_consideration_algos (int) –

  • universe (str) –

  • gnf_graveyard_addr (str) –

  • algod_address (str) –

  • kmd_address (str) –

  • gen_kmd_wallet_name (str) –

class gridworks.gw_config.RabbitBrokerClient(*, url=SecretStr('**********'))

Settings for connecting to a Rabbit Broker

Parameters:

url (SecretStr) –

class gridworks.gw_config.SupervisorSettings(_env_file='<object object>', _env_file_encoding=None, _env_nested_delimiter=None, _secrets_dir=None, *, g_node_alias='d1.isone.ver.keene.super1', g_node_id='664a3250-ce51-4fe3-9ce9-a4b6416451fb', g_node_instance_id='20e7edec-05e5-4152-bfec-ec21ddd2e3dd', supervisor_container_id='995b0334-9940-424f-8fb1-4745e52ba295', g_node_role_value='Supervisor', log_level='INFO', universe_type_value='Dev', world_instance_name='d1__1', rabbit=RabbitBrokerClient(url=SecretStr('**********')), my_time_coordinator_alias='d1.time')
Parameters:
  • _env_file (str | PathLike | List[str | PathLike] | Tuple[str | PathLike, ...] | None) –

  • _env_file_encoding (str | None) –

  • _env_nested_delimiter (str | None) –

  • _secrets_dir (str | PathLike | None) –

  • g_node_alias (str) –

  • g_node_id (str) –

  • g_node_instance_id (str) –

  • supervisor_container_id (str) –

  • g_node_role_value (str) –

  • log_level (str) –

  • universe_type_value (str) –

  • world_instance_name (str) –

  • rabbit (RabbitBrokerClient) –

  • my_time_coordinator_alias (str) –

class gridworks.gw_config.VanillaSettings(_env_file='<object object>', _env_file_encoding=None, _env_nested_delimiter=None, _secrets_dir=None, *, algo_api_secrets=AlgoApiSecrets(algod_token=SecretStr('**********'), kmd_token=SecretStr('**********'), gen_kmd_wallet_password=SecretStr('')), public=Public(gnf_api_root='http://localhost:8000', dev_market_maker_api_root='http://localhost:7997', dev_ta_validator_api_root='http://localhost:8001', gnf_admin_addr='RNMHG32VTIHTC7W3LZOEPTDGREL5IQGK46HKD3KBLZHYQUCAKLMT4G5ALI', gnr_addr='X2ASUAUPK5ICMGDXQZQKBPSXWEJLBA4KKQ2TXW2KWO2JQTLY3J2Q4S33WE', dev_market_maker_addr='JMEUH2AXM6UGRJO2DBZXDOA2OMIWQFNQZ54LCVC4GQX6QDOX5Z6JRGMWFA', dev_ta_validator_addr='7QQT4GN3ZPAQEFCNWF5BMF7NULVK3CWICZVT4GM3BQRISD52YEDLWJ4MII', dev_ta_validator_multi_addr="Y5TRQXIJHWJ4OHCZSWP4PZTCES5VWOF2KDTNYSMU5HLAUXBFQQDX6IR5KM'", ta_validator_funding_threshold_algos=100, ta_deed_consideration_algos=50, universe='dev', gnf_graveyard_addr='COA6SYUOBE33F5JDYEGC5XAD43QRG3VGHNNQXLYWFSSQEHDQ5HJ52NDNPI', algod_address='http://localhost:4001', kmd_address='http://localhost:4002', gen_kmd_wallet_name='unencrypted-default-wallet'))
Parameters:
  • _env_file (str | PathLike | List[str | PathLike] | Tuple[str | PathLike, ...] | None) –

  • _env_file_encoding (str | None) –

  • _env_nested_delimiter (str | None) –

  • _secrets_dir (str | PathLike | None) –

  • algo_api_secrets (AlgoApiSecrets) –

  • public (Public) –

gridworks.gw_config.check_is_left_right_dot(v)

LeftRightDot format: Lowercase alphanumeric words separated by periods, most significant word (on the left) starting with an alphabet character.

Raises:

ValueError – if not LeftRightDot format

Parameters:

v (str) –

Return type:

None

gridworks.gw_config.check_is_reasonable_unix_time_s(v)

ReasonableUnixTimeS format: time in unix seconds between Jan 1 2000 and Jan 1 3000

Raises:

ValueError – if not ReasonableUnixTimeS format

Parameters:

v (int) –

Return type:

None