Add support for Blackcoin and Peercoin
This commit is contained in:
parent
1e9a65dccb
commit
74f899e544
62
lib/coins.py
62
lib/coins.py
@ -39,9 +39,10 @@ from hashlib import sha256
|
|||||||
import lib.util as util
|
import lib.util as util
|
||||||
from lib.hash import Base58, hash160, double_sha256, hash_to_str
|
from lib.hash import Base58, hash160, double_sha256, hash_to_str
|
||||||
from lib.script import ScriptPubKey
|
from lib.script import ScriptPubKey
|
||||||
from lib.tx import Deserializer, DeserializerSegWit, DeserializerAuxPow, DeserializerZcash
|
from lib.tx import Deserializer, DeserializerSegWit, DeserializerAuxPow, \
|
||||||
|
DeserializerZcash, DeserializerTxTime
|
||||||
from server.block_processor import BlockProcessor
|
from server.block_processor import BlockProcessor
|
||||||
from server.daemon import Daemon
|
from server.daemon import Daemon, LegacyRPCDaemon
|
||||||
from server.session import ElectrumX
|
from server.session import ElectrumX
|
||||||
|
|
||||||
Block = namedtuple("Block", "header transactions")
|
Block = namedtuple("Block", "header transactions")
|
||||||
@ -801,3 +802,60 @@ class Einsteinium(Coin):
|
|||||||
IRC_PREFIX = "E_"
|
IRC_PREFIX = "E_"
|
||||||
IRC_CHANNEL = "#electrum-emc2"
|
IRC_CHANNEL = "#electrum-emc2"
|
||||||
RPC_PORT = 41879
|
RPC_PORT = 41879
|
||||||
|
REORG_LIMIT = 2000
|
||||||
|
|
||||||
|
|
||||||
|
class Blackcoin(Coin):
|
||||||
|
NAME = "Blackcoin"
|
||||||
|
SHORTNAME = "BLK"
|
||||||
|
NET = "mainnet"
|
||||||
|
XPUB_VERBYTES = bytes.fromhex("0488B21E")
|
||||||
|
XPRV_VERBYTES = bytes.fromhex("0488ADE4")
|
||||||
|
P2PKH_VERBYTE = bytes.fromhex("19")
|
||||||
|
P2SH_VERBYTES = [bytes.fromhex("55")]
|
||||||
|
WIF_BYTE = bytes.fromhex("99")
|
||||||
|
GENESIS_HASH = ('000001faef25dec4fbcf906e6242621d'
|
||||||
|
'f2c183bf232f263d0ba5b101911e4563')
|
||||||
|
DESERIALIZER = DeserializerTxTime
|
||||||
|
DAEMON = LegacyRPCDaemon
|
||||||
|
TX_COUNT = 4594999
|
||||||
|
TX_COUNT_HEIGHT = 1667070
|
||||||
|
TX_PER_BLOCK = 3
|
||||||
|
IRC_PREFIX = "E_"
|
||||||
|
IRC_CHANNEL = "#electrum-blk"
|
||||||
|
RPC_PORT = 15715
|
||||||
|
REORG_LIMIT = 5000
|
||||||
|
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('<I', header[:4])
|
||||||
|
if version > 6:
|
||||||
|
return super().header_hash(header)
|
||||||
|
else:
|
||||||
|
return cls.HEADER_HASH(header);
|
||||||
|
|
||||||
|
|
||||||
|
class Peercoin(Coin):
|
||||||
|
NAME = "Peercoin"
|
||||||
|
SHORTNAME = "PPC"
|
||||||
|
NET = "mainnet"
|
||||||
|
P2PKH_VERBYTE = bytes.fromhex("37")
|
||||||
|
P2SH_VERBYTES = [bytes.fromhex("75")]
|
||||||
|
WIF_BYTE = bytes.fromhex("b7")
|
||||||
|
GENESIS_HASH = ('0000000032fe677166d54963b62a4677'
|
||||||
|
'd8957e87c508eaa4fd7eb1c880cd27e3')
|
||||||
|
DESERIALIZER = DeserializerTxTime
|
||||||
|
DAEMON = LegacyRPCDaemon
|
||||||
|
TX_COUNT = 1207356
|
||||||
|
TX_COUNT_HEIGHT = 306425
|
||||||
|
TX_PER_BLOCK = 4
|
||||||
|
IRC_PREFIX = "E_"
|
||||||
|
IRC_CHANNEL = "#electrum-ppc"
|
||||||
|
RPC_PORT = 9902
|
||||||
|
REORG_LIMIT = 5000
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user