scripts/latency_with_crash.py (33 lines of code) (raw):

# Copyright (c) Facebook, Inc. and its affiliates. # SPDX-License-Identifier: Apache-2.0 import numpy as np import re import sys import os.path import os, fnmatch def parse(row_log_file, parsed_log_file): fname = os.path.abspath(row_log_file) data = open(fname).read() latency = ''.join(re.findall(r'Received certificate after [0-9]* us', data)) latency = re.findall(r'\d+',latency) latency = [int(v)/1000 for v in latency] print(row_log_file) print('%d ms (average), %d ms (std)' % (np.mean(latency), np.std(latency))) print('\n') def find(pattern, path): result = [] for root, dirs, files in os.walk(path): for name in files: if fnmatch.fnmatch(name, pattern): result.append(os.path.join(root, name)) return result ''' Experiment stes: 1. Run a testnet with 10 authorities: fab set_hosts reset deploy 2. Submit transactions: fab set_hosts quick_transfer 3. Kill one node, and go at step 2; then repeat. ''' if __name__== '__main__': raw_logs = find('raw_log_latency_with_crash-*.txt', '.') parsed_logs = ['parsed_%s' % os.path.basename(raw_log) for raw_log in raw_logs] [parse(raw_log, parsed_log) for (raw_log, parsed_log) in zip(raw_logs, parsed_logs)]