4
0
mirror of git://holbrook.no/eth-monitor.git synced 2024-11-23 12:26:45 +01:00

Define cache spec arg to allow other backends

This commit is contained in:
lash 2024-06-27 16:10:30 +01:00
parent ca80c0d75f
commit 7c7317da9d
Signed by: lash
GPG Key ID: 21D2E7BB88C2A746
5 changed files with 20 additions and 13 deletions

View File

@ -2,7 +2,9 @@ def process_args(argparser, args, flags):
# session flags # session flags
argparser.add_argument('--state-dir', dest='state_dir', type=str, help='Directory to store sync state') argparser.add_argument('--state-dir', dest='state_dir', type=str, help='Directory to store sync state')
argparser.add_argument('--session-id', dest='session_id', type=str, help='Use state from specified session id') argparser.add_argument('--session-id', dest='session_id', type=str, help='Use state from specified session id')
# TODO: deprecate!
argparser.add_argument('--cache-dir', dest='cache_dir', type=str, help='Directory to store tx data') argparser.add_argument('--cache-dir', dest='cache_dir', type=str, help='Directory to store tx data')
argparser.add_argument('--cache-spec', dest='cache_spec', type=str, help='URL backend selector to store tx data')
# address rules flags # address rules flags
argparser.add_argument('--input', action='append', type=str, help='Add input (recipient) addresses to includes list') argparser.add_argument('--input', action='append', type=str, help='Add input (recipient) addresses to includes list')

View File

@ -56,6 +56,7 @@ def process_config(config, arg, args, flags):
config.add(getattr(args, 'session_id'), '_SESSION_ID', False) config.add(getattr(args, 'session_id'), '_SESSION_ID', False)
config.add(getattr(args, 'cache_dir'), '_CACHE_DIR', False) config.add(getattr(args, 'cache_dir'), '_CACHE_DIR', False)
config.add(getattr(args, 'cache_spec'), '_CACHE_SPEC', False)
config.add(getattr(args, 'run_dir'), '_RUN_DIR', False) config.add(getattr(args, 'run_dir'), '_RUN_DIR', False)
config.add(getattr(args, 'fresh'), '_FRESH', False) config.add(getattr(args, 'fresh'), '_FRESH', False)

View File

@ -21,6 +21,7 @@ class Filter(RuledFilter):
def filter(self, conn, block, tx, **kwargs): def filter(self, conn, block, tx, **kwargs):
r = super(Filter, self).filter(conn, block, tx, **kwargs) r = super(Filter, self).filter(conn, block, tx, **kwargs)
if r == True: if r == True:
return True return True

View File

@ -35,6 +35,7 @@ from eth_monitor.config import override, list_from_prefix
from eth_monitor.filters.out import OutFilter from eth_monitor.filters.out import OutFilter
from eth_monitor.filters.block import Filter as BlockFilter from eth_monitor.filters.block import Filter as BlockFilter
from eth_monitor.filters.run import Filter as RunFilter from eth_monitor.filters.run import Filter as RunFilter
from eth_monitor.cache import from_cache_spec
logg = logging.getLogger(__name__) logg = logging.getLogger(__name__)
@ -280,20 +281,22 @@ def process_arg_rules(settings, config):
def process_cache_store(settings, config): def process_cache_store(settings, config):
cache_dir = config.get('_CACHE_DIR') cache_spec = config.get('_CACHE_SPEC')
store = None store = from_cache_spec(settings.get('CHAIN_SPEC'), cache_spec)
if cache_dir == None: if store == None:
logg.warning('no cache dir specified, will discard everything!!') cache_dir = config.get('_CACHE_DIR')
from eth_cache.store.null import NullStore
store = NullStore()
else:
store = FileStore(settings.get('CHAIN_SPEC'), cache_dir)
cache_dir = os.path.realpath(cache_dir)
if cache_dir == None: if cache_dir == None:
import tempfile logg.warning('no cache dir specified, will discard everything!!')
cache_dir = tempfile.mkdtemp() from eth_cache.store.null import NullStore
logg.info('using cache store {}'.format(store)) store = NullStore()
else:
store = FileStore(settings.get('CHAIN_SPEC'), cache_dir)
cache_dir = os.path.realpath(cache_dir)
if cache_dir == None:
import tempfile
cache_dir = tempfile.mkdtemp()
logg.info('using cache store {}'.format(store))
settings.set('CACHE_STORE', store) settings.set('CACHE_STORE', store)
return settings return settings

View File

@ -1,6 +1,6 @@
[metadata] [metadata]
name = eth-monitor name = eth-monitor
version = 0.8.9 version = 0.8.10
description = Monitor and cache transactions using match filters description = Monitor and cache transactions using match filters
author = Louis Holbrook author = Louis Holbrook
author_email = dev@holbrook.no author_email = dev@holbrook.no