def stream(last_synced_block_file, lag, provider_uri, output, start_block, entity_types, period_seconds=10, batch_size=2, block_batch_size=10, max_workers=5, log_file=None, pid_file=None): """Streams all data types to console or Google Pub/Sub.""" configure_logging(log_file) configure_signals() entity_types = parse_entity_types(entity_types) validate_entity_types(entity_types, output) from thetaetl.streaming.item_exporter_creator import create_item_exporter from thetaetl.streaming.theta_streamer_adapter import ThetaStreamerAdapter from blockchainetl.streaming.streamer import Streamer # TODO: Implement fallback mechanism for provider uris instead of picking randomly provider_uri = pick_random_provider_uri(provider_uri) logging.info('Using ' + provider_uri) streamer_adapter = ThetaStreamerAdapter( theta_provider=ThreadLocalProxy(lambda: get_provider_from_uri(provider_uri, batch=True)), item_exporter=create_item_exporter(output), batch_size=batch_size, max_workers=max_workers, entity_types=entity_types ) streamer = Streamer( blockchain_streamer_adapter=streamer_adapter, last_synced_block_file=last_synced_block_file, lag=lag, start_block=start_block, period_seconds=period_seconds, block_batch_size=block_batch_size, pid_file=pid_file ) streamer.stream()
def stream(last_synced_block_file, lag, provider_uri, output, start_block, chain=Chain.BITCOIN, period_seconds=10, batch_size=2, block_batch_size=10, max_workers=5, log_file=None, pid_file=None, enrich=True): """Streams all data types to console or Google Pub/Sub.""" configure_logging(log_file) configure_signals() from bitcoinetl.streaming.streaming_utils import get_item_exporter from bitcoinetl.streaming.btc_streamer_adapter import BtcStreamerAdapter from blockchainetl.streaming.streamer import Streamer streamer_adapter = BtcStreamerAdapter( bitcoin_rpc=ThreadLocalProxy(lambda: BitcoinRpc(provider_uri)), item_exporter=get_item_exporter(output), chain=chain, batch_size=batch_size, enable_enrich=enrich, max_workers=max_workers ) streamer = Streamer( blockchain_streamer_adapter=streamer_adapter, last_synced_block_file=last_synced_block_file, lag=lag, start_block=start_block, period_seconds=period_seconds, block_batch_size=block_batch_size, pid_file=pid_file, ) streamer.stream()
def stream(last_synced_block_file, lag, provider_uri, output, start_block, entity_types, period_seconds=10, batch_size=2, block_batch_size=10, max_workers=5, log_file=None, pid_file=None): """Streams all data types to console or Google Pub/Sub.""" configure_logging(log_file) configure_signals() entity_types = parse_entity_types(entity_types) from blockchainetl.streaming.streaming_utils import get_item_exporter from ethereumpoaetl.streaming.eth_streamer_adapter import EthStreamerAdapter from blockchainetl.streaming.streamer import Streamer streamer_adapter = EthStreamerAdapter( batch_web3_provider=ThreadLocalProxy(lambda: get_provider_from_uri(provider_uri, batch=True)), item_exporter=get_item_exporter(output), batch_size=batch_size, max_workers=max_workers, entity_types=entity_types ) streamer = Streamer( blockchain_streamer_adapter=streamer_adapter, last_synced_block_file=last_synced_block_file, lag=lag, start_block=start_block, period_seconds=period_seconds, block_batch_size=block_batch_size, pid_file=pid_file ) streamer.stream()