def test_throughput(apps, tokens, num_transfers, amount):
def start_transfers(curr_app, curr_token, num_transfers):
graph = curr_app.raiden.token_to_channelgraph[curr_token]
all_paths = graph.get_paths_of_length(
source=curr_app.raiden.address,
num_hops=2,
)
path = all_paths[0]
target = path[-1]
api = curr_app.raiden.api
events = list()
for i in range(num_transfers):
async_result = api.transfer_async(
curr_token,
amount,
target,
1) # TODO: fill in identifier
events.append(async_result)
return events
finished_events = []
# Start all transfers
start_time = time.time()
for idx, curr_token in enumerate(tokens):
curr_app = apps[idx]
finished = start_transfers(curr_app, curr_token, num_transfers)
finished_events.extend(finished)
# Wait until the transfers for all tokens are done
gevent.wait(finished_events)
elapsed = time.time() - start_time
completed_transfers = num_transfers * len(tokens)
tps = completed_transfers / elapsed
print('Completed {} transfers {:.5} tps / {:.5}s'.format(completed_transfers, tps, elapsed))
评论列表
文章目录