fix: ci & build script

This commit is contained in:
Wanseob Lim
2021-03-26 21:00:20 +09:00
parent 567d5cdffa
commit 7eaf9aa056
10 changed files with 59 additions and 42 deletions

View File

@@ -83,13 +83,9 @@ jobs:
- run:
name: Setup
command: |
docker pull zkoprunet/circuits:dev
cd packages/circuits
yarn setup
yarn build-keys
yarn postbuild-keys
cd ../dataset
yarn load-keys
yarn setup:pull
yarn update-contracts
- run:
name: Contract Tests
command: yarn test --scope=@zkopru/contracts
@@ -102,7 +98,7 @@ jobs:
- run:
name: Setup
command: |
docker pull zkoprunet/circuits:dev
yarn images pull circuits
cd packages/dataset
yarn load-keys
- run:
@@ -117,23 +113,20 @@ jobs:
- run:
name: Account Tests
command: yarn test --scope=@zkopru/account
# test_circuits:
# machine:
# image: ubuntu-2004:202010-01
# steps:
# - attach_workspace:
# at: ~/
# - run:
# name: Setup
# command: |
# docker pull jchancehud/zkopru:circuits
# docker tag jchancehud/zkopru:circuits zkoprunet/circuits:dev
# cd packages/circuits
# yarn setup
# yarn build-keys
# - run:
# name: Circuit Tests
# command: yarn test --scope=@zkopru/circuits
test_circuits:
machine:
image: ubuntu-2004:202010-01
steps:
- attach_workspace:
at: ~/
- run:
name: Setup
command: |
cd packages/circuits
yarn phase1:pull
- run:
name: Circuit Tests
command: yarn test --scope=@zkopru/circuits
test_tree:
machine:
image: ubuntu-2004:202010-01
@@ -152,11 +145,8 @@ jobs:
- run:
name: ZK Wizard Tests
command: |
docker pull zkoprunet/circuits:dev
cd packages/circuits
yarn setup
yarn build-keys
yarn postbuild-keys
yarn setup:pull
cd ../..
yarn test --scope=@zkopru/zk-wizard
test_client:

View File

@@ -7,4 +7,4 @@
packages/**/keys
.git
.build-cache
!packages/dataset/keys
!packages/circuits/keys

View File

@@ -25,7 +25,7 @@ RUN ln -s "$(which nodejs)" /usr/bin/node
WORKDIR /proj
# Copy SNARK keys
COPY ./packages/dataset/keys /proj/keys
COPY ./packages/circuits/keys /proj/keys
# Copy package.json
COPY ./.package-dev.json /proj/package.json

View File

@@ -19,7 +19,7 @@ WORKDIR /proj/zkopru/packages/cli
RUN ganache-cli --db=/proj/data -i 20200406 -p 5000 --gasLimit 12000000 --deterministic --host 0.0.0.0 & \
sleep 5 && cd /proj/zkopru/packages/contracts && truffle migrate --network testnet
COPY ./packages/dataset/keys /proj/zkopru/packages/cli/keys
COPY ./packages/circuits/keys /proj/zkopru/packages/cli/keys
CMD ganache-cli --db=/proj/data -i 20200406 -p 5000 --gasLimit 12000000 --deterministic --host 0.0.0.0 > /dev/null & \
sleep 1;\

View File

@@ -21,7 +21,7 @@
"build:ts:serial": "lerna run build && yarn link-modules",
"circuit:setup": "lerna run setup:build",
"build:contract": "lerna run --parallel build:contract",
"build:keys": "lerna run build-keys --scope=@zkopru/dataset",
"build:keys": "lerna run build-keys --scope=@zkopru/circuits",
"build:fresh": "yarn clean && shx rm -rf packages/*/node_modules && yarn build",
"clean": "lerna run --parallel clean && shx rm -rf packages/*/node_modules && shx rm -rf .build-cache *.log coverage junit.xml",
"clean:db": "shx rm -rf **/*/.mockup",

View File

@@ -21,9 +21,10 @@
"phase1:pull": "ts-node src/pull-phase1.ts",
"phase1:build": "./script/powers_of_tau_phase_1.sh",
"phase2:pull": "ts-node src/pull-keys.ts",
"phase2:build": "ts-node src/build-keys.ts",
"phase2:build": "./script/powers_of_tau_phase_2.sh",
"build-keys": "ts-node src/build-keys.ts",
"postbuild-keys": "copyfiles -f keys/vks/* ../contracts/keys/vks",
"postbuild-keys": "yarn update-contracts",
"update-contracts": "copyfiles -f keys/vks/* ../contracts/keys/vks",
"compile": "./script/compile_circuits.sh",
"setup": "yarn setup:pull",
"setup:pull": "yarn phase1:pull && yarn phase2:pull",

View File

@@ -0,0 +1,23 @@
#!/bin/bash
BASEDIR=$(dirname "$0")
WORK_DIR=$BASEDIR/..
PTAU_ARTIFACTS="build/ptau"
CIRCUIT_ARTIFACTS="build/circuits"
VK_ARTIFACTS="build/vks"
ZKEY_ARTIFACTS="build/zkeys"
KEYS_ARTIFACTS="keys"
cd $WORK_DIR
mkdir -p $KEYS_ARTIFACTS/circuits
mkdir -p $KEYS_ARTIFACTS/vks
mkdir -p $KEYS_ARTIFACTS/zkeys
cp $CIRCUIT_ARTIFACTS/*.wasm $KEYS_ARTIFACTS/circuits
cp $ZKEY_ARTIFACTS/*.zkey $KEYS_ARTIFACTS/zkeys
rm $KEYS_ARTIFACTS/zkeys/*_000*.zkey
cp $VK_ARTIFACTS/*.json $KEYS_ARTIFACTS/vks
tar -czvf $KEYS_ARTIFACTS.tgz $KEYS_ARTIFACTS/*

View File

@@ -1,13 +1,14 @@
#!/bin/bash
BASEDIR=$(dirname "$0")
WORK_DIR=$BASEDIR/..
cd $BASEDIR/..
WORK_DIR=$(pwd)
PTAU_ARTIFACTS="build/ptau"
CIRCUIT_ARTIFACTS="build/circuits"
VK_ARTIFACTS="build/vks"
ZKEY_ARTIFACTS="build/zkeys"
PHASE_1_FINAL=$PTAU_ARTIFACTS/pot17_final.ptau
cd $WORK_DIR
mkdir -p $CIRCUIT_ARTIFACTS
mkdir -p $VK_ARTIFACTS
mkdir -p $ZKEY_ARTIFACTS
MAX_JOB=$(nproc)
@@ -20,12 +21,14 @@ phase2() {
snarkjs zkey contribute "$ZKEY_ARTIFACTS/$circuit"_0000.zkey "$ZKEY_ARTIFACTS/$circuit"_0001.zkey --name="1st Contributor Name" -v -e="random entropy 1" # Testing purpose
snarkjs zkey contribute "$ZKEY_ARTIFACTS/$circuit"_0001.zkey "$ZKEY_ARTIFACTS/$circuit"_0002.zkey --name="2nd Contributor Name" -v -e="random entropy 2" # Testing purpose
snarkjs zkey verify "$CIRCUIT_ARTIFACTS/$circuit".r1cs $PHASE_1_FINAL "$ZKEY_ARTIFACTS/$circuit"_0002.zkey
snarkjs zkey beacon "$ZKEY_ARTIFACTS/$circuit"_0002.zkey "$ZKEY_ARTIFACTS/$circuit".final.zkey 0102030405060708090a0b0c0d0e0f101112131415161717191a1b1c1d1e1f 10 -n="Final Beacon phase2 - circuit $i"
snarkjs zkey verify "$CIRCUIT_ARTIFACTS/$circuit".r1cs $PHASE_1_FINAL "$ZKEY_ARTIFACTS/$circuit".final.zkey
snarkjs zkey beacon "$ZKEY_ARTIFACTS/$circuit"_0002.zkey "$ZKEY_ARTIFACTS/$circuit".zkey 0102030405060708090a0b0c0d0e0f101112131415161717191a1b1c1d1e1f 10 -n="Final Beacon phase2 - circuit $i"
snarkjs zkey verify "$CIRCUIT_ARTIFACTS/$circuit".r1cs $PHASE_1_FINAL "$ZKEY_ARTIFACTS/$circuit".zkey
TMP_DIR="build/tmp/$circuit"
mkdir -p $TMP_DIR
cp "$ZKEY_ARTIFACTS/$circuit".final.zkey $TMP_DIR/
cd $TMP_DIR && snarkjs zkey export verificationkey "$circuit".final.zkey && cd $WORK_DIR
cp "$ZKEY_ARTIFACTS/$circuit".zkey $TMP_DIR/
ls $TMP_DIR
cd $TMP_DIR && snarkjs zkey export verificationkey "$circuit".zkey
cd $WORK_DIR
mv $TMP_DIR/verification_key.json "$VK_ARTIFACTS/$circuit".vk.json
rm -rf $TMP_DIR
}

View File

@@ -29,7 +29,7 @@ async function loadArtifacts(build?: boolean) {
)
await utils.copyFromContainer(
container,
`/proj/build/zkeys/zk_transaction_${i}_${o}.final.zkey`,
`/proj/build/zkeys/zk_transaction_${i}_${o}.zkey`,
path.join(zkeyDir, `zk_transaction_${i}_${o}.zkey`),
)
await utils.copyFromContainer(

View File

@@ -28,7 +28,7 @@ export async function loadCircuits() {
)
const zkey = await utils.readFromContainer(
container,
`/proj/build/zkeys/zk_transaction_${i}_${o}.final.zkey`,
`/proj/build/zkeys/zk_transaction_${i}_${o}.zkey`,
)
const vk = await utils.readFromContainer(
container,