Add script for converting trusted setups (#359)

This commit is contained in:
Justin Traglia 2023-10-18 21:00:40 -05:00 committed by GitHub
parent d637761a2e
commit 748283cced
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 68 additions and 0 deletions

View File

@ -0,0 +1,24 @@
name: Trusted Setup
on:
push:
branches:
- main
pull_request:
branches:
- main
jobs:
tests:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
python-version: '3.x'
- name: Download
run: wget -O trusted_setup.json https://github.com/ethereum/consensus-specs/raw/dev/presets/mainnet/trusted_setups/trusted_setup_4096.json
- name: Convert
run: python3 ./scripts/convert_trusted_setup.py --input trusted_setup.json --output trusted_setup.txt
- name: Compare
run: cmp src/trusted_setup.txt trusted_setup.txt

View File

@ -0,0 +1,44 @@
#!/usr/bin/python3
import argparse
import json
from typing import TextIO
def convert(ts_json: TextIO, ts_text: TextIO) -> None:
"""Convert trusted setup to text format."""
trusted_setup = json.load(ts_json)
g1_values = trusted_setup["g1_lagrange"]
g2_values = trusted_setup["g2_monomial"]
print(len(g1_values), file=ts_text)
print(len(g2_values), file=ts_text)
for g1 in g1_values:
print(g1.replace("0x", ""), file=ts_text)
for g2 in g2_values:
print(g2.replace("0x", ""), file=ts_text)
if __name__ == "__main__":
parser = argparse.ArgumentParser(
description="Convert trusted setup from JSON to text format.",
)
parser.add_argument(
"--input",
required=True,
type=argparse.FileType("r"),
help="the trusted setup in JSON format",
)
parser.add_argument(
"--output",
required=True,
type=argparse.FileType("w"),
help="the trusted setup in text format",
)
args = parser.parse_args()
try:
convert(args.input, args.output)
finally:
args.input.close()
args.output.close()