kopia lustrzana https://github.com/bugout-dev/moonstream
Prepared to work with load balancer
rodzic
6a02719225
commit
d46d028842
|
@ -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,..)>"
|
||||
|
|
|
@ -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"
|
||||
)
|
||||
|
|
|
@ -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)
|
||||
)
|
||||
|
||||
|
||||
|
|
Ładowanie…
Reference in New Issue