From cd7f9ddfd77b687835639250f2e4d915bcb12e68 Mon Sep 17 00:00:00 2001 From: Benjamin Loison Date: Thu, 1 Jun 2023 23:59:26 +0200 Subject: [PATCH] Make `meta.py` loop until finding a problem --- meta.py | 37 ++++++++++++++++++++----------------- 1 file changed, 20 insertions(+), 17 deletions(-) diff --git a/meta.py b/meta.py index 1ce618d..30c31ef 100755 --- a/meta.py +++ b/meta.py @@ -2,8 +2,6 @@ import subprocess, ast -verifier, prover = [subprocess.Popen(f'./{program}.py', stdout = subprocess.PIPE, stdin = subprocess.PIPE, stderr = subprocess.DEVNULL, universal_newlines=True, bufsize=1) for program in ('verifier', 'prover')] - def getProgramLine(program): return program.stdout.readline() @@ -16,23 +14,28 @@ def getProgramOutput(program): def write(program, toWrite): program.stdin.write(toWrite + '\n') -protocolInitializationPhaseId = getProgramOutput(verifier) -print(f'{protocolInitializationPhaseId=}') -protocolExecutionPhaseId = getProgramOutput(verifier) -print(f'{protocolExecutionPhaseId=}') +while True: + verifier, prover = [subprocess.Popen(f'./{program}.py', stdout = subprocess.PIPE, stdin = subprocess.PIPE, stderr = subprocess.DEVNULL, universal_newlines=True, bufsize=1) for program in ('verifier', 'prover')] -write(prover, protocolInitializationPhaseId) -write(prover, protocolExecutionPhaseId) + protocolInitializationPhaseId = getProgramOutput(verifier) + print(f'{protocolInitializationPhaseId=}') + protocolExecutionPhaseId = getProgramOutput(verifier) + print(f'{protocolExecutionPhaseId=}') -merkleTreeRoot = getOutput(getProgramLine(prover).split()[-1]) -print(f'{merkleTreeRoot=}') + write(prover, protocolInitializationPhaseId) + write(prover, protocolExecutionPhaseId) -write(verifier, merkleTreeRoot) -getProgramLine(verifier) + merkleTreeRoot = getOutput(getProgramLine(prover).split()[-1]) + print(f'{merkleTreeRoot=}') -write(prover, 'indexesRequest.txt') -getProgramLine(prover) + write(verifier, merkleTreeRoot) + getProgramLine(verifier) -write(verifier, 'entries.txt') -result = ' '.join(getProgramLine(verifier).split()[1:]) -print(result) + write(prover, 'indexesRequest.txt') + getProgramLine(prover) + + write(verifier, 'entries.txt') + result = ' '.join(getProgramLine(verifier).split()[1:]) + print(result) + if not result.startswith('Verified'): + break