Prepared to work with load balancer

pull/511/head
kompotkot 2021-12-22 09:07:37 +00:00
rodzic 6a02719225
commit d46d028842
3 zmienionych plików z 11 dodań i 56 usunięć

Wyświetl plik

@ -12,10 +12,8 @@ export MOONSTREAM_MOONWORM_TASKS_JOURNAL="<Bugout journal with tasks for moonwor
export MOONSTREAM_DATA_JOURNAL_ID="<bugout_journal_id_to_store_blockchain_data>"
export HUMBUG_TXPOOL_CLIENT_ID="<Bugout_Humbug_client_id_for_txpool_transactions_in_journal>"
export MOONSTREAM_ETHEREUM_WEB3_PROVIDER_URI="https://<connection_path_uri_to_ethereum_node>"
export MOONSTREAM_NODE_ETHEREUM_IPC_PORT=8545
# Set following parameters if AWS node instance and S3 smartcontracts configured
export MOONSTREAM_INTERNAL_HOSTED_ZONE_ID="<moonstream_internal_hosted_zone_id>"
export MOONSTREAM_S3_SMARTCONTRACTS_BUCKET="<AWS_S3_bucket_to_store_smart_contracts>"
export MOONSTREAM_S3_SMARTCONTRACTS_ABI_BUCKET="<AWS_S3_bucket_to_store_smart_contracts_ABI>"
export MOONSTREAM_S3_SMARTCONTRACTS_ABI_PREFIX="<Previx_for_AWS_S3_bucket_(prod,dev,..)>"

Wyświetl plik

@ -48,25 +48,6 @@ ETHERSCAN_SMARTCONTRACTS_BUCKET = os.environ.get("MOONSTREAM_S3_SMARTCONTRACTS_B
if ETHERSCAN_SMARTCONTRACTS_BUCKET is None:
raise ValueError("MOONSTREAM_S3_SMARTCONTRACTS_BUCKET is not set")
MOONSTREAM_INTERNAL_HOSTED_ZONE_ID = os.environ.get(
"MOONSTREAM_INTERNAL_HOSTED_ZONE_ID", ""
)
if MOONSTREAM_INTERNAL_HOSTED_ZONE_ID == "":
raise ValueError(
"MOONSTREAM_INTERNAL_HOSTED_ZONE_ID environment variable must be set"
)
MOONSTREAM_ETHEREUM_WEB3_PROVIDER_URI = os.environ.get(
"MOONSTREAM_ETHEREUM_WEB3_PROVIDER_URI", ""
)
if MOONSTREAM_ETHEREUM_WEB3_PROVIDER_URI == "":
raise ValueError(
"MOONSTREAM_ETHEREUM_WEB3_PROVIDER_URI environment variable must be set"
)
MOONSTREAM_NODE_ETHEREUM_IPC_PORT = os.environ.get(
"MOONSTREAM_NODE_ETHEREUM_IPC_PORT", 8545
)
MOONSTREAM_S3_SMARTCONTRACTS_ABI_BUCKET = os.environ.get(
"MOONSTREAM_S3_SMARTCONTRACTS_ABI_BUCKET"
)
@ -92,3 +73,12 @@ if MOONSTREAM_MOONWORM_TASKS_JOURNAL == "":
raise ValueError(
"MOONSTREAM_MOONWORM_TASKS_JOURNAL environment variable must be set"
)
# Web3
MOONSTREAM_ETHEREUM_WEB3_PROVIDER_URI = os.environ.get(
"MOONSTREAM_ETHEREUM_WEB3_PROVIDER_URI", ""
)
if MOONSTREAM_ETHEREUM_WEB3_PROVIDER_URI == "":
raise ValueError(
"MOONSTREAM_ETHEREUM_WEB3_PROVIDER_URI environment variable must be set"
)

Wyświetl plik

@ -1,46 +1,13 @@
import logging
import boto3 # type: ignore
from web3 import Web3
from .settings import (
MOONSTREAM_ETHEREUM_WEB3_PROVIDER_URI,
MOONSTREAM_INTERNAL_HOSTED_ZONE_ID,
MOONSTREAM_NODE_ETHEREUM_IPC_PORT,
)
from .settings import MOONSTREAM_ETHEREUM_WEB3_PROVIDER_URI
logger = logging.getLogger(__name__)
def fetch_web3_provider_ip():
r53 = boto3.client("route53")
r53_response = r53.list_resource_record_sets(
HostedZoneId=MOONSTREAM_INTERNAL_HOSTED_ZONE_ID,
StartRecordName=f"{MOONSTREAM_ETHEREUM_WEB3_PROVIDER_URI}.",
StartRecordType="A",
)
try:
r53_records = r53_response["ResourceRecordSets"]
if r53_records[0]["Name"] != f"{MOONSTREAM_ETHEREUM_WEB3_PROVIDER_URI}.":
return None
record_value = r53_records[0]["ResourceRecords"][0]["Value"]
except Exception as e:
logger.error(e)
return None
return record_value
if not MOONSTREAM_ETHEREUM_WEB3_PROVIDER_URI.startswith("http"):
web3_provider_ip = fetch_web3_provider_ip()
if web3_provider_ip is None:
raise ValueError("Unable to extract web3 provider IP")
else:
web3_provider_ip = MOONSTREAM_ETHEREUM_WEB3_PROVIDER_URI
moonstream_web3_provider = Web3(
Web3.HTTPProvider(f"http://{web3_provider_ip}:{MOONSTREAM_NODE_ETHEREUM_IPC_PORT}")
Web3.HTTPProvider(MOONSTREAM_ETHEREUM_WEB3_PROVIDER_URI)
)