Try and fix Viacoin
This commit is contained in:
parent
74cb4c2f45
commit
5c7bf3cce9
39
lib/coins.py
39
lib/coins.py
@ -39,9 +39,7 @@ 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, OpCodes
|
from lib.script import ScriptPubKey, OpCodes
|
||||||
from lib.tx import Deserializer, DeserializerSegWit, DeserializerAuxPow, \
|
import lib.tx as lib_tx
|
||||||
DeserializerZcash, DeserializerTxTime, DeserializerReddcoin, \
|
|
||||||
DeserializerTxTimeAuxPow
|
|
||||||
from server.block_processor import BlockProcessor
|
from server.block_processor import BlockProcessor
|
||||||
import server.daemon as daemon
|
import server.daemon as daemon
|
||||||
from server.session import ElectrumX, DashElectrumX
|
from server.session import ElectrumX, DashElectrumX
|
||||||
@ -67,7 +65,7 @@ class Coin(object):
|
|||||||
BASIC_HEADER_SIZE = 80
|
BASIC_HEADER_SIZE = 80
|
||||||
STATIC_BLOCK_HEADERS = True
|
STATIC_BLOCK_HEADERS = True
|
||||||
SESSIONCLS = ElectrumX
|
SESSIONCLS = ElectrumX
|
||||||
DESERIALIZER = Deserializer
|
DESERIALIZER = lib_tx.Deserializer
|
||||||
DAEMON = daemon.Daemon
|
DAEMON = daemon.Daemon
|
||||||
BLOCK_PROCESSOR = BlockProcessor
|
BLOCK_PROCESSOR = BlockProcessor
|
||||||
XPUB_VERBYTES = bytes('????', 'utf-8')
|
XPUB_VERBYTES = bytes('????', 'utf-8')
|
||||||
@ -306,7 +304,7 @@ class Coin(object):
|
|||||||
|
|
||||||
class AuxPowMixin(object):
|
class AuxPowMixin(object):
|
||||||
STATIC_BLOCK_HEADERS = False
|
STATIC_BLOCK_HEADERS = False
|
||||||
DESERIALIZER = DeserializerAuxPow
|
DESERIALIZER = lib_tx.DeserializerAuxPow
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def header_hash(cls, header):
|
def header_hash(cls, header):
|
||||||
@ -353,7 +351,7 @@ class BitcoinCash(BitcoinMixin, Coin):
|
|||||||
|
|
||||||
class BitcoinSegwit(BitcoinMixin, Coin):
|
class BitcoinSegwit(BitcoinMixin, Coin):
|
||||||
NAME = "BitcoinSegwit"
|
NAME = "BitcoinSegwit"
|
||||||
DESERIALIZER = DeserializerSegWit
|
DESERIALIZER = lib_tx.DeserializerSegWit
|
||||||
TX_COUNT = 217380620
|
TX_COUNT = 217380620
|
||||||
TX_COUNT_HEIGHT = 464000
|
TX_COUNT_HEIGHT = 464000
|
||||||
TX_PER_BLOCK = 1800
|
TX_PER_BLOCK = 1800
|
||||||
@ -391,7 +389,7 @@ class Emercoin(Coin):
|
|||||||
VALUE_PER_COIN = 1000000
|
VALUE_PER_COIN = 1000000
|
||||||
RPC_PORT = 6662
|
RPC_PORT = 6662
|
||||||
|
|
||||||
DESERIALIZER = DeserializerTxTimeAuxPow
|
DESERIALIZER = lib_tx.DeserializerTxTimeAuxPow
|
||||||
|
|
||||||
PEERS = []
|
PEERS = []
|
||||||
|
|
||||||
@ -439,7 +437,7 @@ class BitcoinCashTestnet(BitcoinTestnetMixin, Coin):
|
|||||||
class BitcoinSegwitTestnet(BitcoinTestnetMixin, Coin):
|
class BitcoinSegwitTestnet(BitcoinTestnetMixin, Coin):
|
||||||
'''Bitcoin Testnet for Core bitcoind >= 0.13.1.'''
|
'''Bitcoin Testnet for Core bitcoind >= 0.13.1.'''
|
||||||
NAME = "BitcoinSegwit"
|
NAME = "BitcoinSegwit"
|
||||||
DESERIALIZER = DeserializerSegWit
|
DESERIALIZER = lib_tx.DeserializerSegWit
|
||||||
PEERS = [
|
PEERS = [
|
||||||
'electrum.akinbo.org s t',
|
'electrum.akinbo.org s t',
|
||||||
'he36kyperp3kbuxu.onion s t',
|
'he36kyperp3kbuxu.onion s t',
|
||||||
@ -484,7 +482,7 @@ class Litecoin(Coin):
|
|||||||
WIF_BYTE = bytes.fromhex("b0")
|
WIF_BYTE = bytes.fromhex("b0")
|
||||||
GENESIS_HASH = ('12a765e31ffd4059bada1e25190f6e98'
|
GENESIS_HASH = ('12a765e31ffd4059bada1e25190f6e98'
|
||||||
'c99d9714d334efa41a195a7e7e04bfe2')
|
'c99d9714d334efa41a195a7e7e04bfe2')
|
||||||
DESERIALIZER = DeserializerSegWit
|
DESERIALIZER = lib_tx.DeserializerSegWit
|
||||||
TX_COUNT = 8908766
|
TX_COUNT = 8908766
|
||||||
TX_COUNT_HEIGHT = 1105256
|
TX_COUNT_HEIGHT = 1105256
|
||||||
TX_PER_BLOCK = 10
|
TX_PER_BLOCK = 10
|
||||||
@ -538,6 +536,7 @@ class Viacoin(AuxPowMixin, Coin):
|
|||||||
IRC_CHANNEL="#vialectrum"
|
IRC_CHANNEL="#vialectrum"
|
||||||
RPC_PORT = 5222
|
RPC_PORT = 5222
|
||||||
REORG_LIMIT = 5000
|
REORG_LIMIT = 5000
|
||||||
|
DESERIALIZER = lib_tx.DeserializerAuxPowSegWit
|
||||||
PEERS = [
|
PEERS = [
|
||||||
'vialectrum.bitops.me s t',
|
'vialectrum.bitops.me s t',
|
||||||
'server.vialectrum.org s t',
|
'server.vialectrum.org s t',
|
||||||
@ -563,7 +562,7 @@ class ViacoinTestnet(Viacoin):
|
|||||||
|
|
||||||
class ViacoinTestnetSegWit(ViacoinTestnet):
|
class ViacoinTestnetSegWit(ViacoinTestnet):
|
||||||
NET = "testnet-segwit"
|
NET = "testnet-segwit"
|
||||||
DESERIALIZER = DeserializerSegWit
|
DESERIALIZER = lib_tx.DeserializerSegWit
|
||||||
|
|
||||||
|
|
||||||
# Source: namecoin.org
|
# Source: namecoin.org
|
||||||
@ -718,7 +717,7 @@ class DigiByte(Coin):
|
|||||||
WIF_BYTE = bytes.fromhex("80")
|
WIF_BYTE = bytes.fromhex("80")
|
||||||
GENESIS_HASH = ('7497ea1b465eb39f1c8f507bc877078f'
|
GENESIS_HASH = ('7497ea1b465eb39f1c8f507bc877078f'
|
||||||
'e016d6fcb6dfad3a64c98dcc6e1e8496')
|
'e016d6fcb6dfad3a64c98dcc6e1e8496')
|
||||||
DESERIALIZER = DeserializerSegWit
|
DESERIALIZER = lib_tx.DeserializerSegWit
|
||||||
TX_COUNT = 1046018
|
TX_COUNT = 1046018
|
||||||
TX_COUNT_HEIGHT = 1435000
|
TX_COUNT_HEIGHT = 1435000
|
||||||
TX_PER_BLOCK = 1000
|
TX_PER_BLOCK = 1000
|
||||||
@ -796,7 +795,7 @@ class Zcash(Coin):
|
|||||||
'd06b4a8a5c453883c000b031973dce08')
|
'd06b4a8a5c453883c000b031973dce08')
|
||||||
STATIC_BLOCK_HEADERS = False
|
STATIC_BLOCK_HEADERS = False
|
||||||
BASIC_HEADER_SIZE = 140 # Excluding Equihash solution
|
BASIC_HEADER_SIZE = 140 # Excluding Equihash solution
|
||||||
DESERIALIZER = DeserializerZcash
|
DESERIALIZER = lib_tx.DeserializerZcash
|
||||||
TX_COUNT = 329196
|
TX_COUNT = 329196
|
||||||
TX_COUNT_HEIGHT = 68379
|
TX_COUNT_HEIGHT = 68379
|
||||||
TX_PER_BLOCK = 5
|
TX_PER_BLOCK = 5
|
||||||
@ -836,7 +835,7 @@ class Einsteinium(Coin):
|
|||||||
WIF_BYTE = bytes.fromhex("b0")
|
WIF_BYTE = bytes.fromhex("b0")
|
||||||
GENESIS_HASH = ('4e56204bb7b8ac06f860ff1c845f03f9'
|
GENESIS_HASH = ('4e56204bb7b8ac06f860ff1c845f03f9'
|
||||||
'84303b5b97eb7b42868f714611aed94b')
|
'84303b5b97eb7b42868f714611aed94b')
|
||||||
DESERIALIZER = DeserializerSegWit
|
DESERIALIZER = lib_tx.DeserializerSegWit
|
||||||
TX_COUNT = 2087559
|
TX_COUNT = 2087559
|
||||||
TX_COUNT_HEIGHT = 1358517
|
TX_COUNT_HEIGHT = 1358517
|
||||||
TX_PER_BLOCK = 2
|
TX_PER_BLOCK = 2
|
||||||
@ -855,7 +854,7 @@ class Blackcoin(Coin):
|
|||||||
WIF_BYTE = bytes.fromhex("99")
|
WIF_BYTE = bytes.fromhex("99")
|
||||||
GENESIS_HASH = ('000001faef25dec4fbcf906e6242621d'
|
GENESIS_HASH = ('000001faef25dec4fbcf906e6242621d'
|
||||||
'f2c183bf232f263d0ba5b101911e4563')
|
'f2c183bf232f263d0ba5b101911e4563')
|
||||||
DESERIALIZER = DeserializerTxTime
|
DESERIALIZER = lib_tx.DeserializerTxTime
|
||||||
DAEMON = daemon.LegacyRPCDaemon
|
DAEMON = daemon.LegacyRPCDaemon
|
||||||
TX_COUNT = 4594999
|
TX_COUNT = 4594999
|
||||||
TX_COUNT_HEIGHT = 1667070
|
TX_COUNT_HEIGHT = 1667070
|
||||||
@ -889,7 +888,7 @@ class Bitbay(Coin):
|
|||||||
WIF_BYTE = bytes.fromhex("99")
|
WIF_BYTE = bytes.fromhex("99")
|
||||||
GENESIS_HASH = ('0000075685d3be1f253ce777174b1594'
|
GENESIS_HASH = ('0000075685d3be1f253ce777174b1594'
|
||||||
'354e79954d2a32a6f77fe9cba00e6467')
|
'354e79954d2a32a6f77fe9cba00e6467')
|
||||||
DESERIALIZER = DeserializerTxTime
|
DESERIALIZER = lib_tx.DeserializerTxTime
|
||||||
DAEMON = daemon.LegacyRPCDaemon
|
DAEMON = daemon.LegacyRPCDaemon
|
||||||
TX_COUNT = 4594999
|
TX_COUNT = 4594999
|
||||||
TX_COUNT_HEIGHT = 1667070
|
TX_COUNT_HEIGHT = 1667070
|
||||||
@ -924,7 +923,7 @@ class Peercoin(Coin):
|
|||||||
WIF_BYTE = bytes.fromhex("b7")
|
WIF_BYTE = bytes.fromhex("b7")
|
||||||
GENESIS_HASH = ('0000000032fe677166d54963b62a4677'
|
GENESIS_HASH = ('0000000032fe677166d54963b62a4677'
|
||||||
'd8957e87c508eaa4fd7eb1c880cd27e3')
|
'd8957e87c508eaa4fd7eb1c880cd27e3')
|
||||||
DESERIALIZER = DeserializerTxTime
|
DESERIALIZER = lib_tx.DeserializerTxTime
|
||||||
DAEMON = daemon.LegacyRPCDaemon
|
DAEMON = daemon.LegacyRPCDaemon
|
||||||
TX_COUNT = 1207356
|
TX_COUNT = 1207356
|
||||||
TX_COUNT_HEIGHT = 306425
|
TX_COUNT_HEIGHT = 306425
|
||||||
@ -944,7 +943,7 @@ class Reddcoin(Coin):
|
|||||||
WIF_BYTE = bytes.fromhex("bd")
|
WIF_BYTE = bytes.fromhex("bd")
|
||||||
GENESIS_HASH = ('b868e0d95a3c3c0e0dadc67ee587aaf9'
|
GENESIS_HASH = ('b868e0d95a3c3c0e0dadc67ee587aaf9'
|
||||||
'dc8acbf99e3b4b3110fad4eb74c1decc')
|
'dc8acbf99e3b4b3110fad4eb74c1decc')
|
||||||
DESERIALIZER = DeserializerReddcoin
|
DESERIALIZER = lib_tx.DeserializerReddcoin
|
||||||
TX_COUNT = 5413508
|
TX_COUNT = 5413508
|
||||||
TX_COUNT_HEIGHT = 1717382
|
TX_COUNT_HEIGHT = 1717382
|
||||||
TX_PER_BLOCK = 3
|
TX_PER_BLOCK = 3
|
||||||
@ -964,7 +963,7 @@ class Vertcoin(Coin):
|
|||||||
WIF_BYTE = bytes.fromhex("80")
|
WIF_BYTE = bytes.fromhex("80")
|
||||||
GENESIS_HASH = ('4d96a915f49d40b1e5c2844d1ee2dccb'
|
GENESIS_HASH = ('4d96a915f49d40b1e5c2844d1ee2dccb'
|
||||||
'90013a990ccea12c492d22110489f0c4')
|
'90013a990ccea12c492d22110489f0c4')
|
||||||
DESERIALIZER = DeserializerSegWit
|
DESERIALIZER = lib_tx.DeserializerSegWit
|
||||||
TX_COUNT = 2383423
|
TX_COUNT = 2383423
|
||||||
TX_COUNT_HEIGHT = 759076
|
TX_COUNT_HEIGHT = 759076
|
||||||
TX_PER_BLOCK = 3
|
TX_PER_BLOCK = 3
|
||||||
@ -983,7 +982,7 @@ class Monacoin(Coin):
|
|||||||
WIF_BYTE = bytes.fromhex("B0")
|
WIF_BYTE = bytes.fromhex("B0")
|
||||||
GENESIS_HASH = ('ff9f1c0116d19de7c9963845e129f9ed'
|
GENESIS_HASH = ('ff9f1c0116d19de7c9963845e129f9ed'
|
||||||
'1bfc0b376eb54fd7afa42e0d418c8bb6')
|
'1bfc0b376eb54fd7afa42e0d418c8bb6')
|
||||||
DESERIALIZER = DeserializerSegWit
|
DESERIALIZER = lib_tx.DeserializerSegWit
|
||||||
TX_COUNT = 2568580
|
TX_COUNT = 2568580
|
||||||
TX_COUNT_HEIGHT = 1029766
|
TX_COUNT_HEIGHT = 1029766
|
||||||
TX_PER_BLOCK = 2
|
TX_PER_BLOCK = 2
|
||||||
@ -1046,7 +1045,7 @@ class Neblio(Coin):
|
|||||||
WIF_BYTE = bytes.fromhex("80")
|
WIF_BYTE = bytes.fromhex("80")
|
||||||
GENESIS_HASH = ('7286972be4dbc1463d256049b7471c25'
|
GENESIS_HASH = ('7286972be4dbc1463d256049b7471c25'
|
||||||
'2e6557e222cab9be73181d359cd28bcc')
|
'2e6557e222cab9be73181d359cd28bcc')
|
||||||
DESERIALIZER = DeserializerTxTime
|
DESERIALIZER = lib_tx.DeserializerTxTime
|
||||||
TX_COUNT = 23675
|
TX_COUNT = 23675
|
||||||
TX_COUNT_HEIGHT = 22785
|
TX_COUNT_HEIGHT = 22785
|
||||||
TX_PER_BLOCK = 1
|
TX_PER_BLOCK = 1
|
||||||
|
|||||||
@ -257,6 +257,10 @@ class DeserializerAuxPow(Deserializer):
|
|||||||
return self._read_nbytes(header_end)
|
return self._read_nbytes(header_end)
|
||||||
|
|
||||||
|
|
||||||
|
class DeserializerAuxPowSegWit(DeserializerSegWit, DeserializerAuxPow):
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
class TxJoinSplit(namedtuple("Tx", "version inputs outputs locktime")):
|
class TxJoinSplit(namedtuple("Tx", "version inputs outputs locktime")):
|
||||||
'''Class representing a JoinSplit transaction.'''
|
'''Class representing a JoinSplit transaction.'''
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user