Compare commits
7 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
bc135759e8
|
||
|
|
cad695c676
|
||
|
|
1adecdde2d
|
||
|
|
4e7ed45e80
|
||
|
|
576e62507b
|
||
|
|
88870dc12d
|
||
|
|
7d5ceb9a28
|
1
chainsyncer/__init__.py
Normal file
1
chainsyncer/__init__.py
Normal file
@@ -0,0 +1 @@
|
|||||||
|
from .filter import SyncFilter
|
||||||
@@ -1,12 +0,0 @@
|
|||||||
# standard imports
|
|
||||||
import os
|
|
||||||
|
|
||||||
# local imports
|
|
||||||
from .base import *
|
|
||||||
from .arg import process_flags
|
|
||||||
from .config import process_config
|
|
||||||
|
|
||||||
|
|
||||||
__script_dir = os.path.dirname(os.path.realpath(__file__))
|
|
||||||
data_dir = os.path.join(os.path.dirname(__script_dir), 'data')
|
|
||||||
config_dir = os.path.join(data_dir, 'config')
|
|
||||||
@@ -1,15 +1,14 @@
|
|||||||
# local imports
|
def apply_flag(flag):
|
||||||
from .base import SyncFlag
|
flag.add('range')
|
||||||
|
flag.add('head')
|
||||||
|
flag.alias('sync_range_ext', 'range', 'head')
|
||||||
|
return flag
|
||||||
|
|
||||||
|
|
||||||
def process_flags(argparser, flags):
|
def apply_arg(arg):
|
||||||
|
arg.add_long('offset', 'range', typ=int, help='Block to start sync from. Default is start of history (0).')
|
||||||
if flags & SyncFlag.RANGE > 0:
|
arg.add_long('until', 'range', typ=int, default=-1, help='Block to stop sync on. Default is stop at block height of first run.')
|
||||||
argparser.add_argument('--offset', type=int, help='Block to start sync from. Default is start of history (0).')
|
arg.add_long('single', 'range', typ=bool, help='Execute a single sync, regardless of previous states')
|
||||||
argparser.add_argument('--until', type=int, default=-1, help='Block to stop sync on. Default is stop at block height of first run.')
|
arg.add_long('head', 'head', typ=bool, help='Start from latest block as offset')
|
||||||
argparser.add_argument('--single', action='store_true', help='Execute a single sync, regardless of previous states')
|
arg.add_long('keep-alive', 'head', typ=bool, help='Do not stop syncing when caught up')
|
||||||
if flags & SyncFlag.HEAD > 0:
|
return arg
|
||||||
argparser.add_argument('--head', action='store_true', help='Start from latest block as offset')
|
|
||||||
argparser.add_argument('--keep-alive', action='store_true', help='Do not stop syncing when caught up')
|
|
||||||
|
|
||||||
argparser.add_argument('--backend', type=str, help='Backend to use for state store')
|
|
||||||
|
|||||||
@@ -1,19 +1,15 @@
|
|||||||
# external imports
|
def process_config(config, arg, args, flags):
|
||||||
from chainsyncer.cli import SyncFlag
|
|
||||||
|
|
||||||
|
|
||||||
def process_config(config, args, flags):
|
|
||||||
args_override = {}
|
args_override = {}
|
||||||
|
|
||||||
args_override['SYNCER_BACKEND'] = getattr(args, 'backend')
|
args_override['SYNCER_BACKEND'] = getattr(args, 'backend')
|
||||||
|
|
||||||
if flags & SyncFlag.RANGE:
|
if arg.match('range', flags):
|
||||||
args_override['SYNCER_OFFSET'] = getattr(args, 'offset')
|
args_override['SYNCER_OFFSET'] = getattr(args, 'offset')
|
||||||
args_override['SYNCER_LIMIT'] = getattr(args, 'until')
|
args_override['SYNCER_LIMIT'] = getattr(args, 'until')
|
||||||
|
|
||||||
config.dict_override(args_override, 'local cli args')
|
config.dict_override(args_override, 'local cli args')
|
||||||
|
|
||||||
if flags & SyncFlag.HEAD:
|
if arg.match('head', flags):
|
||||||
config.add(getattr(args, 'keep_alive'), '_KEEP_ALIVE')
|
config.add(getattr(args, 'keep_alive'), '_KEEP_ALIVE')
|
||||||
config.add(getattr(args, 'head'), '_HEAD')
|
config.add(getattr(args, 'head'), '_HEAD')
|
||||||
|
|
||||||
|
|||||||
@@ -11,15 +11,9 @@ from chainlib.settings import ChainSettings
|
|||||||
logg = logging.getLogger(__name__)
|
logg = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
||||||
class ChainsyncerSettings(ChainSettings):
|
def process_sync_range(settings, config):
|
||||||
|
o = settings.get('SYNCER_INTERFACE').block_latest()
|
||||||
def process_sync_backend(self, config):
|
r = settings.get('CONN').do(o)
|
||||||
self.o['SYNCER_BACKEND'] = config.get('SYNCER_BACKEND')
|
|
||||||
|
|
||||||
|
|
||||||
def process_sync_range(self, config):
|
|
||||||
o = self.o['SYNCER_INTERFACE'].block_latest()
|
|
||||||
r = self.o['RPC'].do(o)
|
|
||||||
block_offset = int(strip_0x(r), 16) + 1
|
block_offset = int(strip_0x(r), 16) + 1
|
||||||
logg.info('network block height at startup is {}'.format(block_offset))
|
logg.info('network block height at startup is {}'.format(block_offset))
|
||||||
|
|
||||||
@@ -29,9 +23,9 @@ class ChainsyncerSettings(ChainSettings):
|
|||||||
until = 0
|
until = 0
|
||||||
|
|
||||||
if config.true('_HEAD'):
|
if config.true('_HEAD'):
|
||||||
self.o['SYNCER_OFFSET'] = block_offset
|
settings.set('SYNCER_OFFSET', block_offset)
|
||||||
self.o['SYNCER_LIMIT'] = -1
|
settings.set('SYNCER_LIMIT', -1)
|
||||||
return
|
return settings
|
||||||
|
|
||||||
session_block_offset = int(config.get('SYNCER_OFFSET'))
|
session_block_offset = int(config.get('SYNCER_OFFSET'))
|
||||||
until = int(config.get('SYNCER_LIMIT'))
|
until = int(config.get('SYNCER_LIMIT'))
|
||||||
@@ -51,5 +45,6 @@ class ChainsyncerSettings(ChainSettings):
|
|||||||
if block_limit == 0:
|
if block_limit == 0:
|
||||||
block_limit = block_offset
|
block_limit = block_offset
|
||||||
|
|
||||||
self.o['SYNCER_OFFSET'] = session_block_offset
|
settings.set('SYNCER_OFFSET', session_block_offset)
|
||||||
self.o['SYNCER_LIMIT'] = block_limit
|
settings.set('SYNCER_LIMIT', block_limit)
|
||||||
|
return settings
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
confini~=0.6.0
|
confini~=0.6.1
|
||||||
semver==2.13.0
|
semver==2.13.0
|
||||||
hexathon~=0.1.6
|
hexathon~=0.1.7
|
||||||
chainlib~=0.2.0
|
chainlib~=0.3.0
|
||||||
shep~=0.2.9
|
shep~=0.2.9
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
[metadata]
|
[metadata]
|
||||||
name = chainsyncer
|
name = chainsyncer
|
||||||
version = 0.4.9
|
version = 0.5.0
|
||||||
description = Generic blockchain syncer driver
|
description = Generic blockchain syncer driver
|
||||||
author = Louis Holbrook
|
author = Louis Holbrook
|
||||||
author_email = dev@holbrook.no
|
author_email = dev@holbrook.no
|
||||||
@@ -30,6 +30,7 @@ packages =
|
|||||||
chainsyncer.store
|
chainsyncer.store
|
||||||
chainsyncer.cli
|
chainsyncer.cli
|
||||||
chainsyncer.runnable
|
chainsyncer.runnable
|
||||||
|
chainsyncer.data
|
||||||
|
|
||||||
#[options.package_data]
|
#[options.package_data]
|
||||||
#* =
|
#* =
|
||||||
|
|||||||
Reference in New Issue
Block a user