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 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 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_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
|
# 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_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_BUCKET="<AWS_S3_bucket_to_store_smart_contracts_ABI>"
|
||||||
export MOONSTREAM_S3_SMARTCONTRACTS_ABI_PREFIX="<Previx_for_AWS_S3_bucket_(prod,dev,..)>"
|
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:
|
if ETHERSCAN_SMARTCONTRACTS_BUCKET is None:
|
||||||
raise ValueError("MOONSTREAM_S3_SMARTCONTRACTS_BUCKET is not set")
|
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 = os.environ.get(
|
||||||
"MOONSTREAM_S3_SMARTCONTRACTS_ABI_BUCKET"
|
"MOONSTREAM_S3_SMARTCONTRACTS_ABI_BUCKET"
|
||||||
)
|
)
|
||||||
|
|
@ -92,3 +73,12 @@ if MOONSTREAM_MOONWORM_TASKS_JOURNAL == "":
|
||||||
raise ValueError(
|
raise ValueError(
|
||||||
"MOONSTREAM_MOONWORM_TASKS_JOURNAL environment variable must be set"
|
"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 logging
|
||||||
|
|
||||||
import boto3 # type: ignore
|
|
||||||
from web3 import Web3
|
from web3 import Web3
|
||||||
|
|
||||||
from .settings import (
|
from .settings import MOONSTREAM_ETHEREUM_WEB3_PROVIDER_URI
|
||||||
MOONSTREAM_ETHEREUM_WEB3_PROVIDER_URI,
|
|
||||||
MOONSTREAM_INTERNAL_HOSTED_ZONE_ID,
|
|
||||||
MOONSTREAM_NODE_ETHEREUM_IPC_PORT,
|
|
||||||
)
|
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
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(
|
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