Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: bump package versions #451

Merged
merged 1 commit into from
Jan 4, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
185 changes: 115 additions & 70 deletions config.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,11 +20,19 @@
import os
import configparser

# Global Config
SERVER_NAME = 'ibet-Prime'
APP_ENV = os.environ.get('APP_ENV') or 'local'

####################################################
# Basic settings
####################################################
# System timezone for REST API
TZ = os.environ.get("TZ") or "Asia/Tokyo"

# Blockchain network
NETWORK = os.environ.get("NETWORK") or "IBET" # IBET or IBETFIN

# Environment-specific settings
APP_ENV = os.environ.get('APP_ENV') or 'local'
if APP_ENV != "live":
INI_FILE = os.path.join(os.path.dirname(os.path.realpath(__file__)), f"conf/{APP_ENV}.ini")
else:
Expand All @@ -35,10 +43,10 @@
CONFIG = configparser.ConfigParser()
CONFIG.read(INI_FILE)

# Logging
LOG_LEVEL = CONFIG['logging']['level']
AUTH_LOGFILE = os.environ.get('AUTH_LOGFILE') or '/dev/stdout'
ACCESS_LOGFILE = os.environ.get('ACCESS_LOGFILE') or '/dev/stdout'

####################################################
# Server settings
####################################################

# Database
if 'pytest' in sys.modules: # for unit test
Expand All @@ -50,29 +58,116 @@
DATABASE_SCHEMA = os.environ.get('DATABASE_SCHEMA')
DB_ECHO = True if CONFIG['database']['echo'] == 'yes' else False

# Blockchain
# Logging
LOG_LEVEL = CONFIG['logging']['level']
AUTH_LOGFILE = os.environ.get('AUTH_LOGFILE') or '/dev/stdout'
ACCESS_LOGFILE = os.environ.get('ACCESS_LOGFILE') or '/dev/stdout'


####################################################
# Blockchain monitoring settings
####################################################
# Block synchronization monitoring interval [sec]
BLOCK_SYNC_STATUS_SLEEP_INTERVAL = int(os.environ.get("BLOCK_SYNC_STATUS_SLEEP_INTERVAL")) \
if os.environ.get("BLOCK_SYNC_STATUS_SLEEP_INTERVAL") else 3
# Number of monitoring data period
BLOCK_SYNC_STATUS_CALC_PERIOD = int(os.environ.get("BLOCK_SYNC_STATUS_CALC_PERIOD")) \
if os.environ.get("BLOCK_SYNC_STATUS_CALC_PERIOD") else 3
# Threshold for remaining block synchronization
# - Threshold for difference between highestBlock and currentBlock
BLOCK_SYNC_REMAINING_THRESHOLD = int(os.environ.get("BLOCK_SYNC_REMAINING_THRESHOLD", 2))
# Threshold of block generation speed for judging synchronous stop [%]
if APP_ENV == "local":
BLOCK_GENERATION_SPEED_THRESHOLD = int(os.environ.get("BLOCK_GENERATION_SPEED_THRESHOLD")) \
if os.environ.get("BLOCK_GENERATION_SPEED_THRESHOLD") else 0
else:
BLOCK_GENERATION_SPEED_THRESHOLD = int(os.environ.get("BLOCK_GENERATION_SPEED_THRESHOLD")) \
if os.environ.get("BLOCK_GENERATION_SPEED_THRESHOLD") else 20


####################################################
# Web3 settings
####################################################
# Provider
WEB3_HTTP_PROVIDER = os.environ.get('WEB3_HTTP_PROVIDER') or 'http://localhost:8545'
WEB3_HTTP_PROVIDER_STANDBY = [node.strip() for node in os.environ.get("WEB3_HTTP_PROVIDER_STANDBY").split(",")] \
if os.environ.get("WEB3_HTTP_PROVIDER_STANDBY") else []

# Chain ID
CHAIN_ID = int(os.environ.get("CHAIN_ID")) if os.environ.get("CHAIN_ID") else 2017

# Gas limit
TX_GAS_LIMIT = int(os.environ.get("TX_GAS_LIMIT")) if os.environ.get("TX_GAS_LIMIT") else 6000000

WEB3_REQUEST_RETRY_COUNT = int(os.environ.get("WEB3_REQUEST_RETRY_COUNT")) if os.environ.get(
"WEB3_REQUEST_RETRY_COUNT") else 3
WEB3_REQUEST_WAIT_TIME = int(os.environ.get("WEB3_REQUEST_WAIT_TIME")) \
if os.environ.get("WEB3_REQUEST_WAIT_TIME") else BLOCK_SYNC_STATUS_SLEEP_INTERVAL # Same batch interval


####################################################
# Token settings
####################################################
# Default addresses
ZERO_ADDRESS = "0x0000000000000000000000000000000000000000"

TOKEN_LIST_CONTRACT_ADDRESS = os.environ.get('TOKEN_LIST_CONTRACT_ADDRESS')
E2E_MESSAGING_CONTRACT_ADDRESS = os.environ.get('E2E_MESSAGING_CONTRACT_ADDRESS')

# Token data cache
TOKEN_CACHE = False if os.environ.get("TOKEN_CACHE") == "0" else True
TOKEN_CACHE_TTL = int(os.environ.get("TOKEN_CACHE_TTL")) if os.environ.get("TOKEN_CACHE_TTL") else 43200


####################################################
# Batch settings
####################################################
# Indexer
INDEXER_SYNC_INTERVAL = 10
INDEXER_BLOCK_LOT_MAX_SIZE = int(os.environ.get("INDEXER_BLOCK_LOT_MAX_SIZE")) \
if os.environ.get("INDEXER_BLOCK_LOT_MAX_SIZE") else 1000000

# AWS Region
AWS_REGION_NAME = os.environ.get("AWS_REGION_NAME") or "ap-northeast-1"
# Processor
# Bulk Transfer
BULK_TRANSFER_INTERVAL = int(os.environ.get("BULK_TRANSFER_INTERVAL")) \
if os.environ.get("BULK_TRANSFER_INTERVAL") else 10
BULK_TRANSFER_WORKER_COUNT = int(os.environ.get("BULK_TRANSFER_WORKER_COUNT")) \
if os.environ.get("BULK_TRANSFER_WORKER_COUNT") else 5
BULK_TRANSFER_WORKER_LOT_SIZE = int(os.environ.get("BULK_TRANSFER_WORKER_LOT_SIZE")) \
if os.environ.get("BULK_TRANSFER_WORKER_LOT_SIZE") else 5

# Password Policy
# Batch Register Personal Info
BATCH_REGISTER_PERSONAL_INFO_INTERVAL = int(os.environ.get("BATCH_REGISTER_PERSONAL_INFO_INTERVAL")) \
if os.environ.get("BATCH_REGISTER_PERSONAL_INFO_INTERVAL") else 60
BATCH_REGISTER_PERSONAL_INFO_WORKER_COUNT = int(os.environ.get("BATCH_REGISTER_PERSONAL_INFO_WORKER_COUNT")) \
if os.environ.get("BATCH_REGISTER_PERSONAL_INFO_WORKER_COUNT") else 1
BATCH_REGISTER_PERSONAL_INFO_WORKER_LOT_SIZE = int(os.environ.get("BATCH_REGISTER_PERSONAL_INFO_WORKER_LOT_SIZE")) \
if os.environ.get("BATCH_REGISTER_PERSONAL_INFO_WORKER_LOT_SIZE") else 2

# Scheduled Events
SCHEDULED_EVENTS_INTERVAL = int(os.environ.get("SCHEDULED_EVENTS_INTERVAL")) \
if os.environ.get("SCHEDULED_EVENTS_INTERVAL") else 60
SCHEDULED_EVENTS_WORKER_COUNT = int(os.environ.get("SCHEDULED_EVENTS_WORKER_COUNT")) \
if os.environ.get("SCHEDULED_EVENTS_WORKER_COUNT") else 5

# Update Token
UPDATE_TOKEN_INTERVAL = int(os.environ.get("UPDATE_TOKEN_INTERVAL")) \
if os.environ.get("UPDATE_TOKEN_INTERVAL") else 10

# Create UTXO
CREATE_UTXO_INTERVAL = int(os.environ.get("CREATE_UTXO_INTERVAL")) \
if os.environ.get("CREATE_UTXO_INTERVAL") else 600
CREATE_UTXO_BLOCK_LOT_MAX_SIZE = int(os.environ.get("CREATE_UTXO_BLOCK_LOT_MAX_SIZE")) \
if os.environ.get("CREATE_UTXO_BLOCK_LOT_MAX_SIZE") else 10000

# Rotate E2E Messaging RSA Key
ROTATE_E2E_MESSAGING_RSA_KEY_INTERVAL = int(os.environ.get("ROTATE_E2E_MESSAGING_RSA_KEY_INTERVAL")) \
if os.environ.get("ROTATE_E2E_MESSAGING_RSA_KEY_INTERVAL") else 10


####################################################
# Password settings
####################################################
# NOTE:
# Set PATTERN with a regular expression.
# e.g.) ^(?=.*?[a-z])(?=.*?[A-Z])[a-zA-Z]{10,}$
Expand Down Expand Up @@ -127,74 +222,24 @@
E2EE_RSA_PASSPHRASE = os.environ.get("E2EE_RSA_PASSPHRASE")
E2EE_REQUEST_ENABLED = False if os.environ.get("E2EE_REQUEST_ENABLED") == "0" else True

# Bulk Transfer
BULK_TRANSFER_INTERVAL = int(os.environ.get("BULK_TRANSFER_INTERVAL")) \
if os.environ.get("BULK_TRANSFER_INTERVAL") else 10
BULK_TRANSFER_WORKER_COUNT = int(os.environ.get("BULK_TRANSFER_WORKER_COUNT")) \
if os.environ.get("BULK_TRANSFER_WORKER_COUNT") else 5
BULK_TRANSFER_WORKER_LOT_SIZE = int(os.environ.get("BULK_TRANSFER_WORKER_LOT_SIZE")) \
if os.environ.get("BULK_TRANSFER_WORKER_LOT_SIZE") else 5

# Batch Register Personal Info
BATCH_REGISTER_PERSONAL_INFO_INTERVAL = int(os.environ.get("BATCH_REGISTER_PERSONAL_INFO_INTERVAL")) \
if os.environ.get("BATCH_REGISTER_PERSONAL_INFO_INTERVAL") else 60
BATCH_REGISTER_PERSONAL_INFO_WORKER_COUNT = int(os.environ.get("BATCH_REGISTER_PERSONAL_INFO_WORKER_COUNT")) \
if os.environ.get("BATCH_REGISTER_PERSONAL_INFO_WORKER_COUNT") else 1
BATCH_REGISTER_PERSONAL_INFO_WORKER_LOT_SIZE = int(os.environ.get("BATCH_REGISTER_PERSONAL_INFO_WORKER_LOT_SIZE")) \
if os.environ.get("BATCH_REGISTER_PERSONAL_INFO_WORKER_LOT_SIZE") else 2

# System timezone for REST API
TZ = os.environ.get("TZ") or "Asia/Tokyo"

# Scheduled Events
SCHEDULED_EVENTS_INTERVAL = int(os.environ.get("SCHEDULED_EVENTS_INTERVAL")) \
if os.environ.get("SCHEDULED_EVENTS_INTERVAL") else 60
SCHEDULED_EVENTS_WORKER_COUNT = int(os.environ.get("SCHEDULED_EVENTS_WORKER_COUNT")) \
if os.environ.get("SCHEDULED_EVENTS_WORKER_COUNT") else 5
####################################################
# Blockchain explorer settings
####################################################
# Blockchain Explorer
BC_EXPLORER_ENABLED = True if os.environ.get("BC_EXPLORER_ENABLED") == "1" else False

# Update Token
UPDATE_TOKEN_INTERVAL = int(os.environ.get("UPDATE_TOKEN_INTERVAL")) \
if os.environ.get("UPDATE_TOKEN_INTERVAL") else 10

# Block Sync Monitor
# monitoring interval(second)
BLOCK_SYNC_STATUS_SLEEP_INTERVAL = int(os.environ.get("BLOCK_SYNC_STATUS_SLEEP_INTERVAL")) \
if os.environ.get("BLOCK_SYNC_STATUS_SLEEP_INTERVAL") else 3
# number of monitoring data period
BLOCK_SYNC_STATUS_CALC_PERIOD = int(os.environ.get("BLOCK_SYNC_STATUS_CALC_PERIOD")) \
if os.environ.get("BLOCK_SYNC_STATUS_CALC_PERIOD") else 3
# Threshold for remaining block synchronization
# - Threshold for difference between highestBlock and currentBlock
BLOCK_SYNC_REMAINING_THRESHOLD = int(os.environ.get("BLOCK_SYNC_REMAINING_THRESHOLD", 2))
# Threshold of block generation speed for judging synchronous stop(%)
if APP_ENV == "local":
BLOCK_GENERATION_SPEED_THRESHOLD = int(os.environ.get("BLOCK_GENERATION_SPEED_THRESHOLD")) \
if os.environ.get("BLOCK_GENERATION_SPEED_THRESHOLD") else 0
else:
BLOCK_GENERATION_SPEED_THRESHOLD = int(os.environ.get("BLOCK_GENERATION_SPEED_THRESHOLD")) \
if os.environ.get("BLOCK_GENERATION_SPEED_THRESHOLD") else 20
WEB3_REQUEST_RETRY_COUNT = int(os.environ.get("WEB3_REQUEST_RETRY_COUNT")) if os.environ.get(
"WEB3_REQUEST_RETRY_COUNT") else 3
WEB3_REQUEST_WAIT_TIME = int(os.environ.get("WEB3_REQUEST_WAIT_TIME")) \
if os.environ.get("WEB3_REQUEST_WAIT_TIME") else BLOCK_SYNC_STATUS_SLEEP_INTERVAL # Same batch interval
####################################################
# Other settings
####################################################
# AWS Region
AWS_REGION_NAME = os.environ.get("AWS_REGION_NAME") or "ap-northeast-1"

# Random Bytes Generator
AWS_KMS_GENERATE_RANDOM_ENABLED = True if os.environ.get("AWS_KMS_GENERATE_RANDOM_ENABLED") == "1" else False

# Create UTXO
CREATE_UTXO_INTERVAL = int(os.environ.get("CREATE_UTXO_INTERVAL")) \
if os.environ.get("CREATE_UTXO_INTERVAL") else 600
CREATE_UTXO_BLOCK_LOT_MAX_SIZE = int(os.environ.get("CREATE_UTXO_BLOCK_LOT_MAX_SIZE")) \
if os.environ.get("CREATE_UTXO_BLOCK_LOT_MAX_SIZE") else 10000

# File Upload
# NOTE: (Reference information) WSGI server and app used by ibet-Prime has no request body size limit.
MAX_UPLOAD_FILE_SIZE = int(os.environ.get("MAX_UPLOAD_FILE_SIZE")) \
if os.environ.get("MAX_UPLOAD_FILE_SIZE") else 100_000_000

# Rotate E2E Messaging RSA Key
ROTATE_E2E_MESSAGING_RSA_KEY_INTERVAL = int(os.environ.get("ROTATE_E2E_MESSAGING_RSA_KEY_INTERVAL")) \
if os.environ.get("ROTATE_E2E_MESSAGING_RSA_KEY_INTERVAL") else 10

# Blockchain Explorer
BC_EXPLORER_ENABLED = True if os.environ.get("BC_EXPLORER_ENABLED") == "1" else False
43 changes: 20 additions & 23 deletions requirements.lock
Original file line number Diff line number Diff line change
@@ -1,21 +1,20 @@
aiohttp==3.8.3
aiosignal==1.3.1
alembic==1.5.6
alembic==1.9.1
anyio==3.6.2
asn1crypto==1.5.1
async-timeout==4.0.2
attrs==22.1.0
attrs==22.2.0
base58==2.1.1
bitarray==2.6.0
boto3==1.17.12
botocore==1.20.112
bitarray==2.6.2
boto3==1.26.42
botocore==1.29.42
certifi==2022.12.7
cffi==1.15.1
chardet==4.0.0
charset-normalizer==2.1.1
click==8.1.3
coincurve==17.0.0
cytoolz==0.12.0
coincurve==18.0.0
cytoolz==0.12.1
eth-abi==2.2.0
eth-account==0.5.9
eth-hash==0.3.3
Expand All @@ -24,46 +23,44 @@ eth-keys==0.3.4
eth-rlp==0.2.1
eth-typing==2.3.0
eth-utils==1.10.0
fastapi==0.85.0
fastapi==0.88.0
frozenlist==1.3.3
greenlet==2.0.1
gunicorn==20.1.0
h11==0.14.0
hexbytes==0.3.0
idna==2.10
idna==3.4
ipfshttpclient==0.8.0a2
jmespath==0.10.0
jmespath==1.0.1
jsonschema==4.17.3
lru-dict==1.1.8
Mako==1.2.4
MarkupSafe==2.1.1
multiaddr==0.0.9
multidict==6.0.3
multidict==6.0.4
netaddr==0.8.0
parsimonious==0.8.1
protobuf==3.19.5
psycopg2-binary==2.9.3
pycparser==2.21
pycryptodome==3.15.0
pydantic==1.8.2
pycryptodome==3.16.0
pydantic==1.10.4
PyMySQL==1.0.2
pyrsistent==0.19.2
pyrsistent==0.19.3
python-dateutil==2.8.2
python-editor==1.0.4
pytz==2021.1
requests==2.25.1
pytz==2022.7
requests==2.28.1
rlp==2.0.1
s3transfer==0.3.7
s3transfer==0.6.0
shared-memory-dict==0.5.0
six==1.16.0
sniffio==1.3.0
SQLAlchemy==1.4.45
starlette==0.20.4
SQLAlchemy==1.4.46
starlette==0.22.0
toolz==0.12.0
typing_extensions==4.4.0
urllib3==1.26.13
uvicorn==0.20.0
varint==1.0.2
web3==5.31.1
web3==5.31.3
websockets==9.1
yarl==1.8.2
18 changes: 9 additions & 9 deletions requirements.txt
Original file line number Diff line number Diff line change
@@ -1,17 +1,17 @@
alembic==1.5.6
boto3==1.17.12
coincurve==17.0.0
alembic==1.9.1
boto3==1.26.42
coincurve==18.0.0
eth-keyfile==0.5.1
eth-utils==1.10.0
fastapi==0.85.0
fastapi==0.88.0
gunicorn==20.1.0
psycopg2-binary==2.9.3
pycryptodome==3.15.0
pydantic==1.8.2
pycryptodome==3.16.0
pydantic==1.10.4
PyMySQL==1.0.2
pytz==2021.1
requests==2.25.1
pytz==2022.7
requests==2.28.1
shared-memory-dict==0.5.0
SQLAlchemy>=1.4,<1.5
uvicorn==0.20.0
web3==5.31.1
web3==5.31.3
1 change: 1 addition & 0 deletions tests/requirements.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
httpx==0.23.2
pytest==7.1.2
pytest-cov==3.0.0
PyYAML==5.4.1
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -234,7 +234,7 @@ def test_normal_3(self, client, db):
resp = client.get(
self.base_url.format(self.test_token_address),
params={
"sort_item": IDXIssueRedeemSortItem.BLOCK_TIMESTAMP,
"sort_item": IDXIssueRedeemSortItem.BLOCK_TIMESTAMP.value,
"sort_order": 0
}
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -234,7 +234,7 @@ def test_normal_3(self, client, db):
resp = client.get(
self.base_url.format(self.test_token_address),
params={
"sort_item": IDXIssueRedeemSortItem.BLOCK_TIMESTAMP,
"sort_item": IDXIssueRedeemSortItem.BLOCK_TIMESTAMP.value,
"sort_order": 0
}
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -234,7 +234,7 @@ def test_normal_3(self, client, db):
resp = client.get(
self.base_url.format(self.test_token_address),
params={
"sort_item": IDXIssueRedeemSortItem.BLOCK_TIMESTAMP,
"sort_item": IDXIssueRedeemSortItem.BLOCK_TIMESTAMP.value,
"sort_order": 0
}
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -234,7 +234,7 @@ def test_normal_3(self, client, db):
resp = client.get(
self.base_url.format(self.test_token_address),
params={
"sort_item": IDXIssueRedeemSortItem.BLOCK_TIMESTAMP,
"sort_item": IDXIssueRedeemSortItem.BLOCK_TIMESTAMP.value,
"sort_order": 0
}
)
Expand Down