X-Git-Url: https://git.novaco.in/?a=blobdiff_plain;f=backends%2Fabe%2F__init__.py;h=8c4454ee7a8fe46c33a44c91ee8949bb025c2af6;hb=189fded888582341014f2e34ed6c173926ad5417;hp=7584fd5cd09167de9bac237cadd37fe665f88451;hpb=81b9be807b4a6b83cfa2a0c258554347ece97c35;p=electrum-server.git diff --git a/backends/abe/__init__.py b/backends/abe/__init__.py index 7584fd5..8c4454e 100644 --- a/backends/abe/__init__.py +++ b/backends/abe/__init__.py @@ -10,7 +10,6 @@ from Queue import Queue import time, threading - class AbeStore(Datastore_class): def __init__(self, config): @@ -24,6 +23,16 @@ class AbeStore(Datastore_class): elif args.dbtype == 'psycopg2': args.connect_args = { 'database' : config.get('database','database') } + coin = config.get('server', 'coin') + self.addrtype = 0 + if coin == 'litecoin': + print 'Litecoin settings:' + datadir = config.get('server','datadir') + print ' datadir = ' + datadir + args.datadir = [{"dirname":datadir,"chain":"Litecoin","code3":"LTC","address_version":"\u0030"}] + print ' addrtype = 48' + self.addrtype = 48 + Datastore_class.__init__(self,args) self.sql_limit = int( config.get('database','limit') ) @@ -68,7 +77,7 @@ class AbeStore(Datastore_class): #print "WARNING: missing tx_in for tx", txid continue - address = hash_to_address(chr(0), _hash) + address = hash_to_address(chr(self.addrtype), _hash) if self.tx_cache.has_key(address): print "cache: invalidating", address self.tx_cache.pop(address) @@ -81,7 +90,7 @@ class AbeStore(Datastore_class): #print "WARNING: missing tx_out for tx", txid continue - address = hash_to_address(chr(0), _hash) + address = hash_to_address(chr(self.addrtype), _hash) if self.tx_cache.has_key(address): print "cache: invalidating", address self.tx_cache.pop(address) @@ -282,14 +291,13 @@ class AbeStore(Datastore_class): if tx_hash in known_tx: continue - # this means that pending transactions were added to the db, even if they are not returned by getmemorypool - address_has_mempool = True - # discard transactions that are too old - if self.last_tx_id - tx_id > 10000: + if self.last_tx_id - tx_id > 50000: print "discarding tx id", tx_id continue + # this means that pending transactions were added to the db, even if they are not returned by getmemorypool + address_has_mempool = True #print "mempool", tx_hash txpoint = { @@ -315,7 +323,7 @@ class AbeStore(Datastore_class): if not _hash: #print "WARNING: missing tx_in for tx", tx_id, addr continue - address = hash_to_address(chr(0), _hash) + address = hash_to_address(chr(self.addrtype), _hash) txinputs.append(address) txpoint['inputs'] = txinputs txoutputs = [] @@ -325,7 +333,7 @@ class AbeStore(Datastore_class): if not _hash: #print "WARNING: missing tx_out for tx", tx_id, addr continue - address = hash_to_address(chr(0), _hash) + address = hash_to_address(chr(self.addrtype), _hash) txoutputs.append(address) txpoint['outputs'] = txoutputs @@ -439,6 +447,11 @@ class BlockchainProcessor(Processor): self.store = AbeStore(config) self.block_number = -1 self.watched_addresses = [] + + # catch_up first + n = self.store.main_iteration() + print "blockchain: %d blocks"%n + threading.Timer(10, self.run_store_iteration).start() def process(self, request):