diff --git a/lib/coins.py b/lib/coins.py index 133a97f..60af405 100644 --- a/lib/coins.py +++ b/lib/coins.py @@ -39,9 +39,10 @@ from hashlib import sha256 import lib.util as util from lib.hash import Base58, hash160, double_sha256, hash_to_str 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.daemon import Daemon +from server.daemon import Daemon, LegacyRPCDaemon from server.session import ElectrumX Block = namedtuple("Block", "header transactions") @@ -801,3 +802,60 @@ class Einsteinium(Coin): IRC_PREFIX = "E_" IRC_CHANNEL = "#electrum-emc2" 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(' 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