Browse Source

Try and fix Viacoin

patch-1
Neil Booth 7 years ago
parent
commit
5c7bf3cce9
  1. 39
      lib/coins.py
  2. 4
      lib/tx.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

4
lib/tx.py

@ -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…
Cancel
Save