Browse Source

Print if nothing. Clean up loop.

master
Neil Booth 8 years ago
parent
commit
6ccdce2c77
  1. 25
      query.py
  2. 8
      server/server.py

25
query.py

@ -3,31 +3,40 @@
# See the file "LICENSE" for information about the copyright
# and warranty status of this software.
import asyncio
import os
import sys
from server.env import Env
from server.server import Server
from server.db import DB
def main():
env = Env()
os.chdir(env.db_dir)
loop = asyncio.get_event_loop()
server = Server(env, loop)
db = server.db
db = DB(env)
coin = db.coin
for addr in sys.argv[1:]:
argc = 1
try:
limit = int(sys.argv[argc])
argc += 1
except:
limit = 10
for addr in sys.argv[argc:]:
print('Address: ', addr)
hash160 = coin.address_to_hash160(addr)
for n, (tx_hash, height) in enumerate(db.get_history(hash160)):
n = None
for n, (tx_hash, height) in enumerate(db.get_history(hash160, limit)):
print('History #{:d}: hash: {} height: {:d}'
.format(n + 1, bytes(reversed(tx_hash)).hex(), height))
for n, utxo in enumerate(db.get_utxos(hash160)):
if n is None:
print('No history')
n = None
for n, utxo in enumerate(db.get_utxos(hash160, limit)):
print('UTXOs #{:d}: hash: {} pos: {:d} height: {:d} value: {:d}'
.format(n, bytes(reversed(utxo.tx_hash)).hex(),
utxo.tx_pos, utxo.height, utxo.value))
if n is None:
print('No UTXOs')
if __name__ == '__main__':
main()

8
server/server.py

@ -15,11 +15,11 @@ from server.db import DB
class Server(object):
def __init__(self, env, loop):
def __init__(self, env):
self.env = env
self.db = DB(env)
self.rpc = RPC(env)
self.block_cache = BlockCache(env, self.db, self.rpc, loop)
self.block_cache = BlockCache(env, self.db, self.rpc)
def async_tasks(self):
return [
@ -32,7 +32,7 @@ class BlockCache(object):
'''Requests blocks ahead of time from the daemon. Serves them
to the blockchain processor.'''
def __init__(self, env, db, rpc, loop):
def __init__(self, env, db, rpc):
self.logger = logging.getLogger('BlockCache')
self.logger.setLevel(logging.INFO)
@ -47,6 +47,8 @@ class BlockCache(object):
self.blocks = []
self.recent_sizes = []
self.ave_size = 0
loop = asyncio.get_event_loop()
for signame in ('SIGINT', 'SIGTERM'):
loop.add_signal_handler(getattr(signal, signame),
partial(self.on_signal, signame))

Loading…
Cancel
Save