1
0

Merge pull request #9878 from SomberNight/202505_refactor_chains

constants.py: reorganise file hierarchy in `chains/`
This commit is contained in:
ghost43
2025-05-29 17:30:55 +00:00
committed by GitHub
13 changed files with 26 additions and 22 deletions

View File

@@ -28,7 +28,7 @@ import json
from typing import Sequence, Tuple, Mapping, Type, List
from .lntransport import LNPeerAddr
from .util import inv_dict, all_subclasses
from .util import inv_dict, all_subclasses, classproperty
from . import bitcoin
@@ -74,9 +74,6 @@ class AbstractNet:
BIP44_COIN_TYPE: int
LN_REALM_BYTE: int
DEFAULT_PORTS: Mapping[str, str]
DEFAULT_SERVERS: Mapping[str, Mapping[str, str]]
FALLBACK_LN_NODES: Sequence[LNPeerAddr]
CHECKPOINTS: Sequence[Tuple[str, int]]
LN_DNS_SEEDS: Sequence[str]
XPRV_HEADERS: Mapping[str, int]
XPRV_HEADERS_INV: Mapping[int, str]
@@ -96,6 +93,31 @@ class AbstractNet:
global net
net = cls
_cached_default_servers = None
@classproperty
def DEFAULT_SERVERS(cls) -> Mapping[str, Mapping[str, str]]:
if cls._cached_default_servers is None:
default_file = {} if cls.TESTNET else None # for mainnet we hard-fail if the file is missing.
cls._cached_default_servers = read_json(os.path.join('chains', cls.NET_NAME, 'servers.json'), default_file)
return cls._cached_default_servers
_cached_fallback_lnnodes = None
@classproperty
def FALLBACK_LN_NODES(cls) -> Sequence[LNPeerAddr]:
if cls._cached_fallback_lnnodes is None:
default_file = {} if cls.TESTNET else None # for mainnet we hard-fail if the file is missing.
d = read_json(os.path.join('chains', cls.NET_NAME, 'fallback_lnnodes.json'), default_file)
cls._cached_fallback_lnnodes = create_fallback_node_list(d)
return cls._cached_fallback_lnnodes
_cached_checkpoints = None
@classproperty
def CHECKPOINTS(cls) -> Sequence[Tuple[str, int]]:
if cls._cached_checkpoints is None:
default_file = [] if cls.TESTNET else None # for mainnet we hard-fail if the file is missing.
cls._cached_checkpoints = read_json(os.path.join('chains', cls.NET_NAME, 'checkpoints.json'), default_file)
return cls._cached_checkpoints
class BitcoinMainnet(AbstractNet):
@@ -108,9 +130,6 @@ class BitcoinMainnet(AbstractNet):
BOLT11_HRP = SEGWIT_HRP
GENESIS = "000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f"
DEFAULT_PORTS = {'t': '50001', 's': '50002'}
DEFAULT_SERVERS = read_json(os.path.join('chains', 'servers.json'))
FALLBACK_LN_NODES = create_fallback_node_list(read_json(os.path.join('chains', 'fallback_lnnodes_mainnet.json')))
CHECKPOINTS = read_json(os.path.join('chains', 'checkpoints.json'))
BLOCK_HEIGHT_FIRST_LIGHTNING_CHANNELS = 497000
XPRV_HEADERS = {
@@ -149,9 +168,6 @@ class BitcoinTestnet(AbstractNet):
BOLT11_HRP = SEGWIT_HRP
GENESIS = "000000000933ea01ad0ee984209779baaec3ced90fa3f408719526f8d77f4943"
DEFAULT_PORTS = {'t': '51001', 's': '51002'}
DEFAULT_SERVERS = read_json(os.path.join('chains', 'servers_testnet.json'), {})
FALLBACK_LN_NODES = create_fallback_node_list(read_json(os.path.join('chains', 'fallback_lnnodes_testnet3.json'), {}))
CHECKPOINTS = read_json(os.path.join('chains', 'checkpoints_testnet.json'), [])
XPRV_HEADERS = {
'standard': 0x04358394, # tprv
@@ -181,9 +197,6 @@ class BitcoinTestnet4(BitcoinTestnet):
NET_NAME = "testnet4"
GENESIS = "00000000da84f2bafbbc53dee25a72ae507ff4914b867c565be350b0da8bf043"
DEFAULT_SERVERS = read_json(os.path.join('chains', 'servers_testnet4.json'), {})
FALLBACK_LN_NODES = create_fallback_node_list(read_json(os.path.join('chains', 'fallback_lnnodes_testnet4.json'), {}))
CHECKPOINTS = read_json(os.path.join('chains', 'checkpoints_testnet4.json'), [])
LN_DNS_SEEDS = []
@@ -193,9 +206,6 @@ class BitcoinRegtest(BitcoinTestnet):
SEGWIT_HRP = "bcrt"
BOLT11_HRP = SEGWIT_HRP
GENESIS = "0f9188f13cb7b2c71f2a335e3a4fc328bf5beb436012afca590b1a11466e2206"
DEFAULT_SERVERS = read_json(os.path.join('chains', 'servers_regtest.json'), {})
FALLBACK_LN_NODES = []
CHECKPOINTS = []
LN_DNS_SEEDS = []
@@ -208,9 +218,6 @@ class BitcoinSimnet(BitcoinTestnet):
SEGWIT_HRP = "sb"
BOLT11_HRP = SEGWIT_HRP
GENESIS = "683e86bd5c6d110d91b94b97137ba6bfe02dbbdb8e3dff722a669b5d69d77af6"
DEFAULT_SERVERS = read_json(os.path.join('chains', 'servers_regtest.json'), {})
FALLBACK_LN_NODES = []
CHECKPOINTS = []
LN_DNS_SEEDS = []
@@ -219,9 +226,6 @@ class BitcoinSignet(BitcoinTestnet):
NET_NAME = "signet"
BOLT11_HRP = "tbs"
GENESIS = "00000008819873e925422c1ff0f99f7cc9bbb232af63a077a480a3633bee1ef6"
DEFAULT_SERVERS = read_json(os.path.join('chains', 'servers_signet.json'), {})
FALLBACK_LN_NODES = create_fallback_node_list(read_json(os.path.join('chains', 'fallback_lnnodes_signet.json'), {}))
CHECKPOINTS = read_json(os.path.join('chains', 'checkpoints_signet.json'), [])
LN_DNS_SEEDS = []