Make meta.py loop until finding a problem

This commit is contained in:
Benjamin Loison 2023-06-01 23:59:26 +02:00
parent e4c8d820cc
commit cd7f9ddfd7
Signed by: Benjamin_Loison
SSH Key Fingerprint: SHA256:BtnEgYTlHdOg1u+RmYcDE0mnfz1rhv5dSbQ2gyxW8B8

37
meta.py
View File

@ -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