Skip to content
Open
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
35 changes: 34 additions & 1 deletion src/electrumx/server/env.py
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,39 @@ def __init__(self, coin=None):
network = self.default('NET', 'mainnet').strip()
self.coin = Coin.lookup_coin_class(coin_name, network)

# Ravencoin backend capability is installed only for RVN. This keeps
# generic ElectrumX and every other coin on their existing daemon,
# session and protocol paths. The new RPC is additive, so legacy
# Electrum clients continue to use the inherited handlers unchanged.
self.ravencoin_backend_identity = None
self.ravencoin_backend_info_max_age = 5
if self.coin.NAME == 'Ravencoin':
from electrumx.server.ravencoin_backend import (
BackendIdentity,
configure_ravencoin_coin,
)

configure_ravencoin_coin(self.coin)
self.ravencoin_backend_info_max_age = self.integer(
'RAVENCOIN_BACKEND_INFO_MAX_AGE', 5
)
if not 0 <= self.ravencoin_backend_info_max_age <= 60:
raise self.Error(
'RAVENCOIN_BACKEND_INFO_MAX_AGE must be between 0 and 60 seconds'
)
try:
self.ravencoin_backend_identity = BackendIdentity.from_config(
repository=self.default('RAVENCOIN_SOURCE_REPOSITORY', ''),
tag=self.default('RAVENCOIN_SOURCE_TAG', ''),
commit=self.default('RAVENCOIN_SOURCE_COMMIT', ''),
artifact_sha256=self.default('RAVENCOIN_ARTIFACT_SHA256', ''),
evidence=self.default('RAVENCOIN_IDENTITY_EVIDENCE', ''),
)
except ValueError as exc:
raise self.Error(
f'invalid Ravencoin backend identity configuration: {exc}'
) from exc

# Peer discovery

self.peer_discovery = self.peer_discovery_enum()
Expand Down Expand Up @@ -141,7 +174,7 @@ def sane_max_sessions(self):
f'{nofile_limit:,d}'
)
except ImportError:
value = 512 # that is what returned by stdio's _getmaxstdio()
value = 512 # that is what returned by stdio's maxstdio()
return value

def _check_and_fix_cost_limits(self):
Expand Down
Loading