diff --git a/docs/HOWTO.rst b/docs/HOWTO.rst index fb9f5ec..cff7275 100644 --- a/docs/HOWTO.rst +++ b/docs/HOWTO.rst @@ -394,6 +394,19 @@ need to run your server with a different server name and a new certificate. Therefore it's a good idea to make an offline backup copy of your certificate and key in case you need to restore them. +Running on a privileged port +============================ + +You may choose to run electrumx on a different port than 50001 / 50002. +If you choose a privileged port ( < 1024 ) it makes sense to make use of a iptables NAT rule. + +An example, which will forward Port 110 to the internal port 50002 follows: + + iptables -t nat -A PREROUTING -p tcp --dport 110 -j DNAT --to-destination 127.0.0.1:50002 + +You can then set the port as follows and advertise the service externally on the privileged port + REPORT_SSL_PORT=110 + .. _`ENVIRONMENT.rst`: https://github.com/kyuupichan/electrumx/blob/master/docs/ENVIRONMENT.rst .. _`contrib/systemd/electrumx.service`: https://github.com/kyuupichan/electrumx/blob/master/contrib/systemd/electrumx.service diff --git a/lib/coins.py b/lib/coins.py index ec6a072..0cf0897 100644 --- a/lib/coins.py +++ b/lib/coins.py @@ -955,3 +955,35 @@ class Fujicoin(Coin): TX_PER_BLOCK = 1 RPC_PORT = 3776 REORG_LIMIT = 1000 + +class Neblio(Coin): + NAME = "Neblio" + SHORTNAME = "NEBL" + NET = "mainnet" + XPUB_VERBYTES = bytes.fromhex("0488b21e") + XPRV_VERBYTES = bytes.fromhex("0488ade4") + P2PKH_VERBYTE = bytes.fromhex("35") + P2SH_VERBYTES = [bytes.fromhex("70")] + WIF_BYTE = bytes.fromhex("80") + GENESIS_HASH = ('7286972be4dbc1463d256049b7471c25' + '2e6557e222cab9be73181d359cd28bcc') + DESERIALIZER = DeserializerTxTime + TX_COUNT = 23675 + TX_COUNT_HEIGHT = 22785 + TX_PER_BLOCK = 1 + RPC_PORT = 6326 + REORG_LIMIT = 1000 + HEADER_HASH = None + + @classmethod + def header_hash(cls, header): + '''Given a header return the hash.''' + if cls.HEADER_HASH is None: + import scrypt + cls.HEADER_HASH = lambda x: scrypt.hash(x, x, 1024, 1, 1, 32) + + version, = struct.unpack(' 6: + return super().header_hash(header) + else: + return cls.HEADER_HASH(header)