diff --git a/public/assets/template.ipynb b/public/assets/template.ipynb index cbcfc75..196339a 100644 --- a/public/assets/template.ipynb +++ b/public/assets/template.ipynb @@ -10,55 +10,47 @@ "output_type": "stream", "text": [ "Requirement already satisfied: torch in /Users/mhchia/Library/Caches/pypoetry/virtualenvs/zkstats-brXmXluj-py3.12/lib/python3.12/site-packages (2.2.2)\n", - "Collecting zkstats==0.1.7\n", - " Downloading zkstats-0.1.7-py3-none-any.whl.metadata (714 bytes)\n", - "Requirement already satisfied: click<9.0.0,>=8.1.7 in /Users/mhchia/Library/Caches/pypoetry/virtualenvs/zkstats-brXmXluj-py3.12/lib/python3.12/site-packages (from zkstats==0.1.7) (8.1.7)\n", - "Requirement already satisfied: ezkl==9.1.0 in /Users/mhchia/Library/Caches/pypoetry/virtualenvs/zkstats-brXmXluj-py3.12/lib/python3.12/site-packages (from zkstats==0.1.7) (9.1.0)\n", - "Requirement already satisfied: matplotlib<4.0.0,>=3.8.2 in /Users/mhchia/Library/Caches/pypoetry/virtualenvs/zkstats-brXmXluj-py3.12/lib/python3.12/site-packages (from zkstats==0.1.7) (3.8.4)\n", - "Requirement already satisfied: numpy<2.0.0,>=1.26.2 in /Users/mhchia/Library/Caches/pypoetry/virtualenvs/zkstats-brXmXluj-py3.12/lib/python3.12/site-packages (from zkstats==0.1.7) (1.26.4)\n", - "Requirement already satisfied: onnx<2.0.0,>=1.15.0 in /Users/mhchia/Library/Caches/pypoetry/virtualenvs/zkstats-brXmXluj-py3.12/lib/python3.12/site-packages (from zkstats==0.1.7) (1.16.0)\n", - "Requirement already satisfied: requests<3.0.0,>=2.31.0 in /Users/mhchia/Library/Caches/pypoetry/virtualenvs/zkstats-brXmXluj-py3.12/lib/python3.12/site-packages (from zkstats==0.1.7) (2.31.0)\n", - "Requirement already satisfied: scipy<2.0.0,>=1.11.4 in /Users/mhchia/Library/Caches/pypoetry/virtualenvs/zkstats-brXmXluj-py3.12/lib/python3.12/site-packages (from zkstats==0.1.7) (1.13.0)\n", - "Requirement already satisfied: statistics<2.0.0,>=1.0.3 in /Users/mhchia/Library/Caches/pypoetry/virtualenvs/zkstats-brXmXluj-py3.12/lib/python3.12/site-packages (from zkstats==0.1.7) (1.0.3.5)\n", + "Requirement already satisfied: zkstats==0.1.8 in /Users/mhchia/Library/Caches/pypoetry/virtualenvs/zkstats-brXmXluj-py3.12/lib/python3.12/site-packages (0.1.8)\n", + "Requirement already satisfied: click<9.0.0,>=8.1.7 in /Users/mhchia/Library/Caches/pypoetry/virtualenvs/zkstats-brXmXluj-py3.12/lib/python3.12/site-packages (from zkstats==0.1.8) (8.1.7)\n", + "Requirement already satisfied: ezkl==9.1.0 in /Users/mhchia/Library/Caches/pypoetry/virtualenvs/zkstats-brXmXluj-py3.12/lib/python3.12/site-packages (from zkstats==0.1.8) (9.1.0)\n", + "Requirement already satisfied: matplotlib<4.0.0,>=3.8.2 in /Users/mhchia/Library/Caches/pypoetry/virtualenvs/zkstats-brXmXluj-py3.12/lib/python3.12/site-packages (from zkstats==0.1.8) (3.8.4)\n", + "Requirement already satisfied: numpy<2.0.0,>=1.26.2 in /Users/mhchia/Library/Caches/pypoetry/virtualenvs/zkstats-brXmXluj-py3.12/lib/python3.12/site-packages (from zkstats==0.1.8) (1.26.4)\n", + "Requirement already satisfied: onnx<2.0.0,>=1.15.0 in /Users/mhchia/Library/Caches/pypoetry/virtualenvs/zkstats-brXmXluj-py3.12/lib/python3.12/site-packages (from zkstats==0.1.8) (1.16.0)\n", + "Requirement already satisfied: requests<3.0.0,>=2.31.0 in /Users/mhchia/Library/Caches/pypoetry/virtualenvs/zkstats-brXmXluj-py3.12/lib/python3.12/site-packages (from zkstats==0.1.8) (2.31.0)\n", + "Requirement already satisfied: scipy<2.0.0,>=1.11.4 in /Users/mhchia/Library/Caches/pypoetry/virtualenvs/zkstats-brXmXluj-py3.12/lib/python3.12/site-packages (from zkstats==0.1.8) (1.13.0)\n", + "Requirement already satisfied: statistics<2.0.0,>=1.0.3 in /Users/mhchia/Library/Caches/pypoetry/virtualenvs/zkstats-brXmXluj-py3.12/lib/python3.12/site-packages (from zkstats==0.1.8) (1.0.3.5)\n", "Requirement already satisfied: filelock in /Users/mhchia/Library/Caches/pypoetry/virtualenvs/zkstats-brXmXluj-py3.12/lib/python3.12/site-packages (from torch) (3.13.4)\n", "Requirement already satisfied: typing-extensions>=4.8.0 in /Users/mhchia/Library/Caches/pypoetry/virtualenvs/zkstats-brXmXluj-py3.12/lib/python3.12/site-packages (from torch) (4.11.0)\n", "Requirement already satisfied: sympy in /Users/mhchia/Library/Caches/pypoetry/virtualenvs/zkstats-brXmXluj-py3.12/lib/python3.12/site-packages (from torch) (1.12)\n", "Requirement already satisfied: networkx in /Users/mhchia/Library/Caches/pypoetry/virtualenvs/zkstats-brXmXluj-py3.12/lib/python3.12/site-packages (from torch) (3.2.1)\n", "Requirement already satisfied: jinja2 in /Users/mhchia/Library/Caches/pypoetry/virtualenvs/zkstats-brXmXluj-py3.12/lib/python3.12/site-packages (from torch) (3.1.3)\n", "Requirement already satisfied: fsspec in /Users/mhchia/Library/Caches/pypoetry/virtualenvs/zkstats-brXmXluj-py3.12/lib/python3.12/site-packages (from torch) (2024.3.1)\n", - "Requirement already satisfied: contourpy>=1.0.1 in /Users/mhchia/Library/Caches/pypoetry/virtualenvs/zkstats-brXmXluj-py3.12/lib/python3.12/site-packages (from matplotlib<4.0.0,>=3.8.2->zkstats==0.1.7) (1.2.1)\n", - "Requirement already satisfied: cycler>=0.10 in /Users/mhchia/Library/Caches/pypoetry/virtualenvs/zkstats-brXmXluj-py3.12/lib/python3.12/site-packages (from matplotlib<4.0.0,>=3.8.2->zkstats==0.1.7) (0.12.1)\n", - "Requirement already satisfied: fonttools>=4.22.0 in /Users/mhchia/Library/Caches/pypoetry/virtualenvs/zkstats-brXmXluj-py3.12/lib/python3.12/site-packages (from matplotlib<4.0.0,>=3.8.2->zkstats==0.1.7) (4.51.0)\n", - "Requirement already satisfied: kiwisolver>=1.3.1 in /Users/mhchia/Library/Caches/pypoetry/virtualenvs/zkstats-brXmXluj-py3.12/lib/python3.12/site-packages (from matplotlib<4.0.0,>=3.8.2->zkstats==0.1.7) (1.4.5)\n", - "Requirement already satisfied: packaging>=20.0 in /Users/mhchia/Library/Caches/pypoetry/virtualenvs/zkstats-brXmXluj-py3.12/lib/python3.12/site-packages (from matplotlib<4.0.0,>=3.8.2->zkstats==0.1.7) (24.0)\n", - "Requirement already satisfied: pillow>=8 in /Users/mhchia/Library/Caches/pypoetry/virtualenvs/zkstats-brXmXluj-py3.12/lib/python3.12/site-packages (from matplotlib<4.0.0,>=3.8.2->zkstats==0.1.7) (10.3.0)\n", - "Requirement already satisfied: pyparsing>=2.3.1 in /Users/mhchia/Library/Caches/pypoetry/virtualenvs/zkstats-brXmXluj-py3.12/lib/python3.12/site-packages (from matplotlib<4.0.0,>=3.8.2->zkstats==0.1.7) (3.1.2)\n", - "Requirement already satisfied: python-dateutil>=2.7 in /Users/mhchia/Library/Caches/pypoetry/virtualenvs/zkstats-brXmXluj-py3.12/lib/python3.12/site-packages (from matplotlib<4.0.0,>=3.8.2->zkstats==0.1.7) (2.9.0.post0)\n", - "Requirement already satisfied: protobuf>=3.20.2 in /Users/mhchia/Library/Caches/pypoetry/virtualenvs/zkstats-brXmXluj-py3.12/lib/python3.12/site-packages (from onnx<2.0.0,>=1.15.0->zkstats==0.1.7) (4.25.3)\n", - "Requirement already satisfied: charset-normalizer<4,>=2 in /Users/mhchia/Library/Caches/pypoetry/virtualenvs/zkstats-brXmXluj-py3.12/lib/python3.12/site-packages (from requests<3.0.0,>=2.31.0->zkstats==0.1.7) (3.3.2)\n", - "Requirement already satisfied: idna<4,>=2.5 in /Users/mhchia/Library/Caches/pypoetry/virtualenvs/zkstats-brXmXluj-py3.12/lib/python3.12/site-packages (from requests<3.0.0,>=2.31.0->zkstats==0.1.7) (3.7)\n", - "Requirement already satisfied: urllib3<3,>=1.21.1 in /Users/mhchia/Library/Caches/pypoetry/virtualenvs/zkstats-brXmXluj-py3.12/lib/python3.12/site-packages (from requests<3.0.0,>=2.31.0->zkstats==0.1.7) (2.2.1)\n", - "Requirement already satisfied: certifi>=2017.4.17 in /Users/mhchia/Library/Caches/pypoetry/virtualenvs/zkstats-brXmXluj-py3.12/lib/python3.12/site-packages (from requests<3.0.0,>=2.31.0->zkstats==0.1.7) (2024.2.2)\n", - "Requirement already satisfied: docutils>=0.3 in /Users/mhchia/Library/Caches/pypoetry/virtualenvs/zkstats-brXmXluj-py3.12/lib/python3.12/site-packages (from statistics<2.0.0,>=1.0.3->zkstats==0.1.7) (0.21.1)\n", + "Requirement already satisfied: contourpy>=1.0.1 in /Users/mhchia/Library/Caches/pypoetry/virtualenvs/zkstats-brXmXluj-py3.12/lib/python3.12/site-packages (from matplotlib<4.0.0,>=3.8.2->zkstats==0.1.8) (1.2.1)\n", + "Requirement already satisfied: cycler>=0.10 in /Users/mhchia/Library/Caches/pypoetry/virtualenvs/zkstats-brXmXluj-py3.12/lib/python3.12/site-packages (from matplotlib<4.0.0,>=3.8.2->zkstats==0.1.8) (0.12.1)\n", + "Requirement already satisfied: fonttools>=4.22.0 in /Users/mhchia/Library/Caches/pypoetry/virtualenvs/zkstats-brXmXluj-py3.12/lib/python3.12/site-packages (from matplotlib<4.0.0,>=3.8.2->zkstats==0.1.8) (4.51.0)\n", + "Requirement already satisfied: kiwisolver>=1.3.1 in /Users/mhchia/Library/Caches/pypoetry/virtualenvs/zkstats-brXmXluj-py3.12/lib/python3.12/site-packages (from matplotlib<4.0.0,>=3.8.2->zkstats==0.1.8) (1.4.5)\n", + "Requirement already satisfied: packaging>=20.0 in /Users/mhchia/Library/Caches/pypoetry/virtualenvs/zkstats-brXmXluj-py3.12/lib/python3.12/site-packages (from matplotlib<4.0.0,>=3.8.2->zkstats==0.1.8) (24.0)\n", + "Requirement already satisfied: pillow>=8 in /Users/mhchia/Library/Caches/pypoetry/virtualenvs/zkstats-brXmXluj-py3.12/lib/python3.12/site-packages (from matplotlib<4.0.0,>=3.8.2->zkstats==0.1.8) (10.3.0)\n", + "Requirement already satisfied: pyparsing>=2.3.1 in /Users/mhchia/Library/Caches/pypoetry/virtualenvs/zkstats-brXmXluj-py3.12/lib/python3.12/site-packages (from matplotlib<4.0.0,>=3.8.2->zkstats==0.1.8) (3.1.2)\n", + "Requirement already satisfied: python-dateutil>=2.7 in /Users/mhchia/Library/Caches/pypoetry/virtualenvs/zkstats-brXmXluj-py3.12/lib/python3.12/site-packages (from matplotlib<4.0.0,>=3.8.2->zkstats==0.1.8) (2.9.0.post0)\n", + "Requirement already satisfied: protobuf>=3.20.2 in /Users/mhchia/Library/Caches/pypoetry/virtualenvs/zkstats-brXmXluj-py3.12/lib/python3.12/site-packages (from onnx<2.0.0,>=1.15.0->zkstats==0.1.8) (4.25.3)\n", + "Requirement already satisfied: charset-normalizer<4,>=2 in /Users/mhchia/Library/Caches/pypoetry/virtualenvs/zkstats-brXmXluj-py3.12/lib/python3.12/site-packages (from requests<3.0.0,>=2.31.0->zkstats==0.1.8) (3.3.2)\n", + "Requirement already satisfied: idna<4,>=2.5 in /Users/mhchia/Library/Caches/pypoetry/virtualenvs/zkstats-brXmXluj-py3.12/lib/python3.12/site-packages (from requests<3.0.0,>=2.31.0->zkstats==0.1.8) (3.7)\n", + "Requirement already satisfied: urllib3<3,>=1.21.1 in /Users/mhchia/Library/Caches/pypoetry/virtualenvs/zkstats-brXmXluj-py3.12/lib/python3.12/site-packages (from requests<3.0.0,>=2.31.0->zkstats==0.1.8) (2.2.1)\n", + "Requirement already satisfied: certifi>=2017.4.17 in /Users/mhchia/Library/Caches/pypoetry/virtualenvs/zkstats-brXmXluj-py3.12/lib/python3.12/site-packages (from requests<3.0.0,>=2.31.0->zkstats==0.1.8) (2024.2.2)\n", + "Requirement already satisfied: docutils>=0.3 in /Users/mhchia/Library/Caches/pypoetry/virtualenvs/zkstats-brXmXluj-py3.12/lib/python3.12/site-packages (from statistics<2.0.0,>=1.0.3->zkstats==0.1.8) (0.21.1)\n", "Requirement already satisfied: MarkupSafe>=2.0 in /Users/mhchia/Library/Caches/pypoetry/virtualenvs/zkstats-brXmXluj-py3.12/lib/python3.12/site-packages (from jinja2->torch) (2.1.5)\n", "Requirement already satisfied: mpmath>=0.19 in /Users/mhchia/Library/Caches/pypoetry/virtualenvs/zkstats-brXmXluj-py3.12/lib/python3.12/site-packages (from sympy->torch) (1.3.0)\n", - "Requirement already satisfied: six>=1.5 in /Users/mhchia/Library/Caches/pypoetry/virtualenvs/zkstats-brXmXluj-py3.12/lib/python3.12/site-packages (from python-dateutil>=2.7->matplotlib<4.0.0,>=3.8.2->zkstats==0.1.7) (1.16.0)\n", - "Downloading zkstats-0.1.7-py3-none-any.whl (15 kB)\n", - "Installing collected packages: zkstats\n", - " Attempting uninstall: zkstats\n", - " Found existing installation: zkstats 0.1.6\n", - " Uninstalling zkstats-0.1.6:\n", - " Successfully uninstalled zkstats-0.1.6\n", - "Successfully installed zkstats-0.1.7\n", + "Requirement already satisfied: six>=1.5 in /Users/mhchia/Library/Caches/pypoetry/virtualenvs/zkstats-brXmXluj-py3.12/lib/python3.12/site-packages (from python-dateutil>=2.7->matplotlib<4.0.0,>=3.8.2->zkstats==0.1.8) (1.16.0)\n", "\n", - "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m A new release of pip is available: \u001b[0m\u001b[31;49m23.3.1\u001b[0m\u001b[39;49m -> \u001b[0m\u001b[32;49m24.1\u001b[0m\n", + "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m A new release of pip is available: \u001b[0m\u001b[31;49m23.3.1\u001b[0m\u001b[39;49m -> \u001b[0m\u001b[32;49m24.1.1\u001b[0m\n", "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m To update, run: \u001b[0m\u001b[32;49mpip install --upgrade pip\u001b[0m\n", "Note: you may need to restart the kernel to use updated packages.\n" ] } ], "source": [ - "%pip install torch zkstats==0.1.7" + "%pip install torch zkstats==0.1.8" ] }, { @@ -160,7 +152,7 @@ "A computation should be of type `TComputation`. For example, the following code snippet defines a computation that computes the sum of the private data.\n", "\n", "```python\n", - "def computation(state: State, x: list[torch.Tensor]):\n", + "def computation(state: State, args: Args):\n", " out_0 = state.median(x[0])\n", " out_1 = state.median(x[1])\n", " return state.mean(torch.cat([out_0.unsqueeze(0), out_1.unsqueeze(0)]).reshape(-1,1))\n", @@ -179,14 +171,11 @@ "source": [ "# This is just a dummy computation. Replace it with user's computation\n", "import torch\n", - "from zkstats.computation import State\n", + "from zkstats.computation import State, Args\n", "\n", - "def computation(state: State, x: list[torch.Tensor]):\n", - " # out_0 = state.median(x[0])\n", - " # out_1 = state.median(x[1])\n", - " # # return state.mean(torch.cat([out_0.unsqueeze(0), out_1.unsqueeze(0)]).reshape(-1,1)), out_0\n", - " # return out_0, out_1\n", - " return state.mean(x[0]), state.median(x[0])" + "def computation(state: State, args: Args):\n", + " x = args[\"x\"]\n", + " return state.mean(x), state.median(x)" ] }, { @@ -201,6 +190,13 @@ "execution_count": 6, "metadata": {}, "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "selected_columns=['x']\n" + ] + }, { "name": "stderr", "output_type": "stream", @@ -240,12 +236,13 @@ "output_type": "stream", "text": [ "scale: [3]\n", - "setting: {\"run_args\":{\"tolerance\":{\"val\":0.0,\"scale\":1.0},\"input_scale\":3,\"param_scale\":3,\"scale_rebase_multiplier\":10,\"lookup_range\":[-856,754],\"logrows\":11,\"num_inner_cols\":2,\"variables\":[[\"batch_size\",1]],\"input_visibility\":{\"Hashed\":{\"hash_is_public\":true,\"outlets\":[]}},\"output_visibility\":\"Public\",\"param_visibility\":\"Fixed\",\"div_rebasing\":false,\"rebase_frac_zero_constants\":false,\"check_mode\":\"UNSAFE\"},\"num_rows\":1312,\"total_assignments\":502,\"total_const_size\":212,\"model_instance_shapes\":[[1],[1],[1]],\"model_output_scales\":[0,3,3],\"model_input_scales\":[3],\"module_sizes\":{\"kzg\":[],\"poseidon\":[1312,[1]]},\"required_lookups\":[{\"Floor\":{\"scale\":16.0}},{\"GreaterThan\":{\"a\":0.0}},\"Abs\",\"ReLU\"],\"required_range_checks\":[],\"check_mode\":\"UNSAFE\",\"version\":\"9.1.0\",\"num_blinding_factors\":null,\"timestamp\":1718984185328}\n" + "setting: {\"run_args\":{\"tolerance\":{\"val\":0.0,\"scale\":1.0},\"input_scale\":3,\"param_scale\":3,\"scale_rebase_multiplier\":10,\"lookup_range\":[-856,754],\"logrows\":11,\"num_inner_cols\":2,\"variables\":[[\"batch_size\",1]],\"input_visibility\":{\"Hashed\":{\"hash_is_public\":true,\"outlets\":[]}},\"output_visibility\":\"Public\",\"param_visibility\":\"Fixed\",\"div_rebasing\":false,\"rebase_frac_zero_constants\":false,\"check_mode\":\"UNSAFE\"},\"num_rows\":1312,\"total_assignments\":502,\"total_const_size\":212,\"model_instance_shapes\":[[1],[1],[1]],\"model_output_scales\":[0,3,3],\"model_input_scales\":[3],\"module_sizes\":{\"kzg\":[],\"poseidon\":[1312,[1]]},\"required_lookups\":[{\"GreaterThan\":{\"a\":0.0}},\"Abs\",\"ReLU\",{\"Floor\":{\"scale\":16.0}}],\"required_range_checks\":[],\"check_mode\":\"UNSAFE\",\"version\":\"9.1.0\",\"num_blinding_factors\":null,\"timestamp\":1720109952300}\n" ] } ], "source": [ - "_, model = computation_to_model(computation, precal_witness_path, isProver=True)\n", + "print(f\"{selected_columns=}\")\n", + "_, model = computation_to_model(computation, precal_witness_path, isProver=True, selected_columns=selected_columns)\n", "prover_gen_settings(\n", " data_path,\n", " selected_columns,\n", @@ -274,7 +271,7 @@ "output_type": "stream", "text": [ "==== setting up ezkl ====\n", - "Time setup: 0.5101752281188965 seconds\n" + "Time setup: 0.7527332305908203 seconds\n" ] } ], @@ -302,8 +299,8 @@ "witness boolean: 1.0\n", "witness result 1 : 51.5\n", "==== Generating Proof ====\n", - "proof: {'instances': [['3bea079e2a500a3285d05fd174263a5ffd78c2dd63131c52abd2a199f786f601', '0100000000000000000000000000000000000000000000000000000000000000', '9c01000000000000000000000000000000000000000000000000000000000000', '7201000000000000000000000000000000000000000000000000000000000000']], 'proof': '0x04d3d8e5924f381f10dba077dadff3184e7922db06d840f7202e330b1f1ca08b034a851f5a5aca39569eaa53731b7fdd072144e2a72a0b521915ad508ae1653e012fd622f1ecb57b323fad5c49b0274fc608e932a263cc06ff5dfc35a6e9b2312d7e1d02fbf3398777124ec2f77be8bf771f39ad0d9245e3f2324fd980568edd23585021ed44c2099ae170912dab75a7c26f43b3eb6436c6ad5fb418ea4541701c43431c90aec3b70aac784caf7a6b987c9ad70b193f2e338d9f40c32bf8ad1b2533afbc3ba03a3af4165ba1497f2564f8aa61e550f26a48e43c69f4335c6262166b86269d9d12f8a829a92d20a7256245ac4a18ad3d2642c6e7eb0bae079e8826b6076da367f55d4d5771207cd646165f26ad6734bc70e56fa6b5127f0be0d720dba4ff00a307173fa77c61e33fa5bbce6b1be826bff8557341d04a5d4beda90271f4b104defd9fdee2ffdf81075836d5e28931cac585b5820901666f5af19422884d527f333b03fd12fdb493ed2f9d1a73a1277e1b3aacd35579185b93847b0a654ab315b050e30d319df9dc0a3ead3f10537aa44c3faf85abd0871dca8b1d269a14183faad225e3c9a65e15fd7db729b0d4eebe86ae699dde5a25b3fc0b2e1de3d94c06a1e8dffcee9f98c2ad7924ff23d984bbada52de4eb6bd665af054e05138d67e6a66d81bf4627b7cde92c2abd780b5ce2e893e1e81c7f8517ed83970b737cda2eacdceebf355a37f3ed712237106f08ced9177e862908367fd2bdee08e8091ca5bac568132a016f855b2932da431ede43817fdba362a06075f708770b9ec017e7e06cc7e63454c3bc2e61669f2d4303dd87ac65473268927c30663d0e057b2c976083152614b26dbdd5156d69afe50c7e98ab0151232e9cc886990807148ebff7c88ac853bece8cd80cb87deb762aced604fe5ae8e430fc0fc37c6b3013fdcdfb894592e3b3b6a1d886e12b2e308d7028db5aaca5155c836f026dd103da89fb4721472725b24e7525c23d08499478199b931d2e2ace8940717659f211d9e23dee678e8d005e16567ba9b3244ecff819068b5129f94ad140cba68708201c1c2033ca6c78378fe5cb875dcbc0f074e3bb50b50f9fd1e0efc1e085f1f00342915a6f57a960c65d93227cb4ebaadf36b345e333e0770c1bff89339cffd807148ebff7c88ac853bece8cd80cb87deb762aced604fe5ae8e430fc0fc37c6b3013fdcdfb894592e3b3b6a1d886e12b2e308d7028db5aaca5155c836f026dd106c2026e8c84d5f936b5a3fae4ec4c2fa162a0cbe4cc0a52acce7d64f83d1e3829f18d5aa59256607148735422d3dbaaf1e5fe904fe01663ac2ebb157078c0622682438634d22ada77b993fd148b6339275c846b66b0cbc382939fa6e67a96ea2dc5162a879786e0fe0a8b0f955c6fbed2da6c8c3e00c053d50649c214d62b9a2f73e71e9a9b08956ad6bd05e0ec17b17e0a2b543142db23bc0f0330403176900aa23851ffd430ef10ff44998ea730d444b86ac055991efeae7148bdbe261d100e3eb1861e2faac32340540549cfa89a8c1b93319870dda0d04e79a8e8124a4e074409da56a6142135e9ce95ead08b0bb9c617bb04d699ccda366a7c06e82b77038cdf43bb93eea7d33294ed5a5b5e7ed222b77b410966a001468068424f8f98119b2a59e9bb1f9f36c1de8ab07c6c7b2b6617b46271b424d0f4326f667025bb00ca8662d43adc9e257517434ef06346ba78dd3b48045d1ad88789d78e7be8270c1367e30a6f58e1fef6b7d03750ee1f594ed02e7277567520aa1868a80cf5a81638b85275bdfda0cab375d7692bbc88df65c5007ba6e66a3688178ff39809670e4f8df935123c89e7573a5bac872f95c15d743a85ae6afbba6169c23126d0962a613d95f683832991266f7fd870a2190e9d0e0644b9b77c8b3e6e279d9b86ec231c05b0bf6395ac201fa2726db21b2d4147f5c291b5decb12fda2ab9f025da1183903489c11e5c65a25ad459c4be8b3bb8b29513594779403bb99c7ad54e63d28a036bc48a908640d2cb88ace4f24b643f2bd347436ceafd3195f2bfe935bd02f8971001a29524d0ad15af0e9b3e172babbccb8606ff9bafd802391d50869df114caa3e73b81034223310c81ec32982ef17ed5274d6e15d3193950fa410c6e60166714d85613d94244fb3a1193171efd076f3b277fe0c6963a21cc44b418a5605b131459fb6f32a0380750ae8bab96fa5ce4e70aacbbad8e5a774c43c54eca315cb781a22f906471ec22090779499c2ac09fd7f7864f21785342bcd6d9361570d334b1dfba3b300bc97cb2daee6446bda5b932ce2946ed21aa2aa2abb4a1e1b07db1a09577696d2e9035ca8f70aaaefd29c196ccd5be6c1a7ebf7db766259a61c69311fa70e838dbc2cde96b031be996e78acbbe4ba76ecc60bce9f6fc316ce05dd6fb9c40de55f05e3557d94586f5bb1f43815c0a19bf229733286f904dca604076fbfbf5f46fc4cbcc40e01cf4aeb4034e6760943ae8993984044cdbba73726ee7ac79607786fe189f2c62797d77d4b04d25b106b0414fd5ed12363a62621144731c3bec80327091e2a390a16c0711d44aed513bfe7675f3eb214c7b6cbce038f3514a03032bc060bcfe4b9a20dd9872975c1e7f25ebf79b718eef3d6bb5927aa9555345c1f09b042116f4fea81cdd9f9b16c18f6da7d3df47c07cdc99dfa164b31dde8c4ba5feb01a64c9c1cd05f1442efe257c15d5df2a402e79f214939072d3cb0afc0307ae8e53d6244717e4ab7a3a01f021f45da9c73a04b2549593d27685a1c5e1ed069b7edde50cf4cf825edc5b85afadc24fc9f2cc62ffd6ad8fa00d52c109b51ee036448ff0aa64f79e94599431a17f52738609d5024ff59eace2452f53f052471c12c89819a20fd19506c19a09a0d905806437784ee1fd8301429b26dda142cf3760a8be688b50346c68cb7416f2b71686f5ea1a4b9be9ca032140f07da7964f2251cf623b1a749e62385b03d8ba6ab832293b53e36a5605b55103adefa69919067a796109a74e623f4ac13b7a72bdecb5fb8b50ccec71eb1421a2b3707ce0fdfd4aba5c4719128e4827d49a3c60fff6a0930196ee6106351bd19164ebaeda25df720a5b7e1b7d59cbae7b892a6c09aa5882a3b8cf9c78609182f0e7c54e8c10ff4508c4e5835bf5f80da273195d996b113bb6847499351f12f088726abf7ec5e7072194d02922270623cc141dfca5c16ccf14d6090d86f0a842fc56802a619475a29fdcb19c13485f4ed87b7c08291c3cbdcbdb6f8519c8b570323e578cf0aa6a43657a2c837e2d435b0847cd8b11c976d3223355e239cdf5f2003b438635a68ec4c5ebc1935903f70ebaf007c02fc01dd7054da3af54a8e5c225a7d630f8c86059cc721e287d20705f28c92432467933193b0a31d3c03e3f21d2c7fb557eae274055dfc698ff927e85563339c70b8003cf1285101f4891dea184f389355f60c1fded41b0dc8f7549e42d4dce8b9b9558d5fd0b3ba5a4e48ab0d37bed73683e72d1c7611b29e104e80e5e6d0e4313b4f36725829057e7005351f600c160c3f943b5e6e32ccf11ce301df4c064828c9b3c4383c8701b9df7da3187afdd774a2d891448dbf3b52dac7f345ffb4c557234a8e6f6411e489125cc92eeb1f5d4ba470ac6a3580998ef0838e29cedbbc2c6dbeda0c304b7c8885968009ac1ffa9f103844e829073977596af9a882cc31651d76510785317922775d5900e33bd176a233a64a1645b3deb2afccb71b140a411e0f83d0e94c2c7574a62f234bd8d85f4e92b453bbb9bf12862f794d838ec11baf6898095533e293e734561986a9a6a71fc97925a189705c586ec5b4d1257db2d1a1be24360caf7991437c0eeb75feec517d79483002a9b6f6156e66980a45c1c8f3595917cd6112d74fe604dd60175f5ae7cbca8445f52299bb1af369abeafd62ffc6e4ef3c2875f13ff9281c1bad00ed925113bd070d24220c4c66e9c91641a198e76b60254c629254a020992e970dc40abe0d84bdc2519faebb9bcfc231d246373acf3aee48c9d1e94a1972fba85cf442563d0b6dbe48e7865a1b5b91d22a4721ff952390e96635476e275a55194ec06525dfeffcb4f6814ce91b7c9302d0b1c92bdefa6152e61343b42fdac88d0b21e51ee46388b0078285262824e61d834644c59620476c70e109f1282a47630422efed002a4d8b7dba1e2565eeb647ef301c2b5f74367b6d506c6c202ee5e9e6ea3dbbb6c3edc5e617fdb46eb000df288cc06d02ea85eb199a9157104015481b68e593152a74d4c34302a96981773bb266c17bef229db9fca2728f144393d347d7b4185e4b5105891fdd82db42f6a0bdf0c18be06ef9ab151183e100000000000000000000000000000000000000000000000000000000000000000ee024e467c6765861e0fcfdb70388f2eb200ce087ce2e84b3acc644b839bfb609f45c44dd4f20c07d4c063d0518b77e1c8c7fbfd88c524bee8a9e1358faae4300000000000000000000000000000000000000000000000000000000000000002824976bd1659f77ec5b5218ae1d522f7081852b8a5dc2f2aa43a83220a95efa1ec8c3a1579ede0d07581b3a5e2c2bd1ab09b3d88573ad1b035a75aebee91233010be4b5221d5df47364d53897c1838b636085a016b8c2c3efa6e9ff6f5ed5a4000000000000000000000000000000000000000000000000000000000000000010ada81c5bc90cd1e5ca0c64fbadbbc7784d44d8034623ed503931750d4566d529c57ea9ee05995bd59cf2860213b3b333d0088d74c8b4e873653d80bf31afa900000000000000000000000000000000000000000000000000000000000000000364787488ee243cd84d043f732074859858ed216dd08669f7c51f85f8fcbba300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000493510826997f652995e55b639931d8f7a2695ee691692220bd8150481b5bac19a7ef3635164fc6871e9dac57306dba195bf08af433826182046efcb9d408580aac397d14378be4e9d8ad4ca9b9bc32c895be531e114c442689dd15bd4436ec000000000000000000000000000000000000000000000000000000000000000017bb6229379407f992ec0a9db26c492b6f0a32cc3afdc21254afe032e28b9fef1484f836fd68d2b4d97941c539297608e97e82787033b909e8254c456d2dac5500000000000000000000000000000000000000000000000000000000000000001e35929afecb5901843e7b7c69d9312991aec6975af4ac1ccdc833a2c237e2cc11b711c9f01d0788103ebce4b7ceb73a46d266172945960caaf3ab35113e8514174673904b71781f4dab069dd76b495b40a7d29f89aad95c9997b220f46d527b0f787b4b72d117897bbc42b59bd1261cd47763d32bb0de278872f9d3524ba56228ee666f1428e45a73834892b8643b579c238c90b03dbd1559e3cf6bc64d87870616f78fa93af995c44d90eab930c67681375ffb45291a2239300e91a26fdb83147e87803533d76866aab9ade467a179bb66b25b90267cf394d7ac90074cb638086b04b4815c3099e5d5b3c8cf6a2b54500bcd5685e138489d4cc2bcf2569fe5158d323f13096cd5007c81e7aed0537deedabf4d61a5dc394095fa81cfa2a6c3293c8be4872cf555e4efddca033e925057fa22f92929aae61488deca858befb70f317a82c4b71ff457431f48350d551615a5fec58c10b7305ff4750d192a80fb0b46f3fea4ef20727b6c403b9966312a3a05d8090f1978c7732198baca49744c1e969365db3e7d1e8f492583dfc0f1786c7092cc0c5c59fb2ca9cebd7a16104a0d2b9c32acf6bfcd532d553e2cd6307955455a6c8702b0648eb9b19b9ebc773610ef735540172a0f3f4286ef8d000c7ebe137766be4c9e30e036a77d2ae9e2020f456303f3cc1a3513b72a1e62502d1606b9e85f0f1b1fe74f1686c8d9a8b84714dd0ef2ffdcd4ff223b294d7925ad8f8c19c628208f460a94713084a2d960011b88a883b982e52475d63e3b33d0e54437272962b5a4269bd7e603316e3ea5f91421fdde6171c6f72f723c1f0fed59598060a0e999147bcdf6370a6ecdefab540e41e4d71b6a413321ddfdb64543a5b9058221d8680173caee779db2de1f480d2164f0bf893736562f1da35413bf6c4385892c63121485f92ec6b6b4611552bf15d79fdfe47acdecc2ed98727246c92e299b262da73b6ab79b3d90de7744088f1cf244925a570c0536078b98800ec75ad1a00bb0a8d5b50a66905869d9ac6dc404238b084c7fb05e04a6984f39a259c6831fe290c263dda35a4fbcac9842acef0a14a550d1d3182279c20c0db051a66282b9475a7a36df81d4a1e58be7239f8a12ecbb56dc82c091f58bb9a5eaa05f15b55037abb89dbb4490c0b8dab73e96430df528574064c416e7834156276b2d3011f5176a14d34e78f794d6fb229c81b50996e30b64c235e4c62ac3541b8def04e73f0bb8b8d5f4bfddba5a70ee0c1175168cc94e0302a285523ef538dc805b456479e4d74cfb0ac234e9f4fdcd5d919b28b73f295a89505dce3b608f01d2eab418a17a9f9c1ab4adc89f86a94071cbd52dadba1ccbfac294f68c33b184b63c471a291fa67e1faf0450bf18d1c22e946606fb5998036ca43efa5d2ceea4e0c8f944270e91f80e0650a792d58aebdfab5122d3d386b7c5721218c4b28b907bba2dfce90814f7fccf5d8be540a2fc0d8f0f22b5bd4b7f7e836dc931012b01f455d024733c954d1b7bed747670108607afe816b97df916211ff5fc0252aa7c693ba338e164fec162efec3c3f9f9de188f3b71aeb7a21bdef74f8e001b3c811375cae5df7c8686f015e02e8fd581f526d255117910a4a8a1b9299394e2364a8cf85743665e099cd175f18c3fce859ae6b3a0f101c66927df2b05f40f81eda4383985821563c07f99faa94eabfc9edde5c694d28b73f295a89505dce3b608f01d2eab418a17a9f9c1ab4adc89f86a94071cbd5264a3476abc174a9d7dcfc97db901fe6b557abab6728cde16bf05a5fba1d092f29efd30dc0ac4de934593b987312955d1248e7f22d9f803e90a9844a7817f6b1177a9a8aa9dd953f403e3b094c1a08db2f972e5f58d6b6fd66d3c76494648e880ebbb8d91cad3a547baedc500c91ae6378e1ce3da2ea643b955d5d195212ff1e16c39c65a6bfeb0fa38b8e194ea28001e1508ada92114ff246ff5e730f71570b0ebf7ebf58fc5d9540c5c4a403406b55757f4d7926a527bd09bb24f3b1982dcc191db642f1805d292c13940508792984fdb548be3463a768f4ca6453898734581c7602628dd19bcc469c70c647664f3e60c7ad05085f08027a044f89624441c10bb4eace3677e119e2fd86097d660a828165122b725e7be704ac7864addb7f180f6fa182b773d58b795a0c8fcc6c2eae15757983695d4b61a2162cd0de1ba2c1014d54dc4bc01cf6b3b4ad9ff610fcadf98d1ae5940980b36e0cee48d8e0967c202ea886a911e63bba20e69885eaacc493eaedced6c7424c93468bbbe7748fcc20ab98838b69d7604424e2245647fe4586e58879d0205f2f9808891c4a794191', 'transcript_type': 'EVM'}\n", - "Time gen prf: 0.641740083694458 seconds\n" + "proof: {'instances': [['3bea079e2a500a3285d05fd174263a5ffd78c2dd63131c52abd2a199f786f601', '0100000000000000000000000000000000000000000000000000000000000000', '9c01000000000000000000000000000000000000000000000000000000000000', '7201000000000000000000000000000000000000000000000000000000000000']], 'proof': '0x1151a27e4fff31b51cbc475a9a4b9cce6cf662e530e1f9ba74495ef85b6f244a2672447acedbc2a14098e04c347828f398f83d7488da7249043625b25769c70a120102370a549dcffb5c6da3efb1a7f0890ac67dc8fddc8c21085314f7e5cc1b2cb82377d5297b8fe2973b9970340588d5597a083223493029802bf562c19a8b0c87b0c4b645666f4cc0ef617e6da951f76ac252ed72c573002f3330104b553128b546384da61dddb10d3f8c92fe005bb6ecd4847bf5cccedab4f0bb9a96598c04e97e41c660d5d060ce9d2fa700fded05010375c9bbf7d5b58374d098e4a2dc090b2fa4b07184594f89bbaa174495e1d5f2ffc1c49d9f080a6b3eac3214fbb01416c736561f88f82c4b6618967d675eb0d95f4683efa785310817a81c3407360b845cfe18aa94fb6b9eec3b702dd1ed1c636e3c01be09dbaa75bb038c0452af284afeb9aa6c21f3386cd6542cf65584247cd592063b798286490bb1168c48362dd6a20a23e230fc4c8054b02aaf61f087997bb342dd246714767153bfc7158a02ffad4636b8e792fd5db4b0a497efcc8e6271d4156d7139dbb636b23864b0c3123480946806d074fd5206fe2d8767bf74c844022092e20d2f11a26268b72fe20aca7dcb296a250d70b9c40277c98d791c476e21cc25885430632c3d338ec3c4155d74be329ce7823dbd7db5abc8ffa9d7c7f6e3114a8b7d46a971f4f6b9e12426e477935a49bb341771773ac46c3c6b6bb8d8c08fb10bc764968da2087a10c623e4601d5bf933d10be6a63888d67c772db7baa5710b8cb4b2ef8868da5b430203da89fb4721472725b24e7525c23d08499478199b931d2e2ace8940717659f211d9e23dee678e8d005e16567ba9b3244ecff819068b5129f94ad140cba68708201c1c2033ca6c78378fe5cb875dcbc0f074e3bb50b50f9fd1e0efc1e085f1f00342915a6f57a960c65d93227cb4ebaadf36b345e333e0770c1bff89339cffd807148ebff7c88ac853bece8cd80cb87deb762aced604fe5ae8e430fc0fc37c6b3013fdcdfb894592e3b3b6a1d886e12b2e308d7028db5aaca5155c836f026dd106c2026e8c84d5f936b5a3fae4ec4c2fa162a0cbe4cc0a52acce7d64f83d1e3829f18d5aa59256607148735422d3dbaaf1e5fe904fe01663ac2ebb157078c0622682438634d22ada77b993fd148b6339275c846b66b0cbc382939fa6e67a96ea2dc5162a879786e0fe0a8b0f955c6fbed2da6c8c3e00c053d50649c214d62b9a2f73e71e9a9b08956ad6bd05e0ec17b17e0a2b543142db23bc0f0330403176900aa23851ffd430ef10ff44998ea730d444b86ac055991efeae7148bdbe261d100b9ec017e7e06cc7e63454c3bc2e61669f2d4303dd87ac65473268927c30663d0e057b2c976083152614b26dbdd5156d69afe50c7e98ab0151232e9cc886990807148ebff7c88ac853bece8cd80cb87deb762aced604fe5ae8e430fc0fc37c6b3013fdcdfb894592e3b3b6a1d886e12b2e308d7028db5aaca5155c836f026dd10ae39e2cdac93297110712805806e266864f0f1a937f344f273a7895a6fec77a262acd5145a304dfc67fe3b80eb4b979da509c1fc0e90498ffe257df0270b98d15d41bf55cd1999e376ab0460d713a17448427449cd65b2556b6eda41e23f73a1ca74b788a72e802bad23842f543da2ff424bcca337b61e8caa50c6cc14d52f92c6fc77572057382fc660c2dc286d12da3b221d7f125115097861c9f5703c5a317131464842a08c3f6bc9ccb699b20fdb9e3f26c6af9ff11c0602b047fc606340623bcb46aebe43a64f89a76ec40f598ba0ea4e387c0c5a6722309f2761633aa2004a6666307aff3acd9d6485f1e63aeb27408b6621e19f8a61cd850bfa21a94236bd196ffa2b688fcfe4fdd15c62c617f53ae212f8650cc7cc83f5905aca09e0db6271896fa369b6a941ede3354608fa81456eb7ea90729a4ec231288e657d72438eaaa69c5959e625b0063501164e7c158c932f969316d301989fd2520272421e2cd70d66f6f4170ce85d01a3b8af71f4a3a8ed0e7b66689cbc098b10fc4a33006c82c38d49509159047866d29207763ef59b2ed9e17079db0a0992c27cb9d2e330aea0ddbcb2a6a47e131303ac2647c00107ce61cae86690d3ae9bc3e4a1f01e7d7cad168d37bc43d8a5092b9a05d9a05d6fef738117d9e1ae2038cb1d7941928a0a8b53258c153d89e1236964ce26da097f039e050a3ea7b7f87538e4ffb0f7566fac5c96edff2050ce5ec019b4d30dd6a7c71fb0598b71bd8ad8f59222207f9ab630195accd148362baf59ba5fda963c8d5f894b88f0ab33c678bad8bc71ba424e4ba3f70873e7f965790b5d1a35eb76053e014f41ffc5ac6e23eae8d360e1b81f3617ecf955689c98a138a9406d5d016141e1dc1bb832870da1df5e199172f942b3aea75d11f7cf8a93f4dfdb2b7b04df13476b2c55e00ed4832d90e181a96eb5d87c84b888dcc1cc4b156441b8828b3e7591257d3e225746b0b28c9982a753413e46f8bd38544a8e78125368530d9edb5be669f8cd5b0274b74d7a570281b3265f58d445b35695c494a88ca8a2c82789c970b02d26fbd5d8052f543480c2e604f3afb2e5403cdfcb4f01e09da333f5b9037a60014c547858e4666aab4117e6e1bc3c155075dc9fdea02aa70ec94207c0c627a5a9dda85a4fdc1684d9a299788fb5986f421266a4fb1570517c958119291d1543e455f33139b9e96aacf09ad4c353088d8ff9ec5411a4859d2e7646fadf54ea155c5c70abecb28f04fdd099ca562156f87c88009298f1c24be31e9fa39a548a29d928d7a85fe202ffe730a573a32be540fa687578963d0d59528dee124aa44f23850d10af3c31a1d7da3151ece7395b9763307b39d39a1e1a744142b13b5c693b3855c6d60f46ee81106278a2d5eac4f83bd240710b1330ee64ea5e479047c9590cae1a2a4a26931df0808161febe71d277931c57086a52d1b37bd92c9554035782a880594b43bd613d023a30e5821d5cffafb5b620e744d9647f4cfd1310e6b957efd3888e6b0763015263b626ab05173940826dcac0b5bc72d6fbb4e08f3042802aeaa87f060119e7e05899635dda498a7ecfeefff71615b85c6f1cdb74e3629fcd3511bb5a2df6a370c2243f1b8e2680073d770a993a641d83c0cf2e7a265f514db3434fd2b2970972fa73fcfc02337a09036fffe7c17663e21f9d668e62505740b0b32c2a899ebb02f4029d9d764c1886a3b26c791fdf107b0e4076302d7db218fded11a7e915e2a277c9ba7dbcc7b78ece1b2efa2b1c9c53f02495cc7702a99a35f1953256484cc2c0298f8856dbba6971d45a1808e6b65b78d7a316a4dd5e968b2b213f6fbe9442974ad4b021f745a34e7cdc71d1fd5d50f597480ec1eb2bef4113a7aa3efd8c40c80c83022165bcdab725d70c5d743a0fa0573a3186a542309bc699b6a7cd01c16727fd601001ad3a439fc8f5e8e91fc6af3594660a58a9c70ff70076fdca78b2ed373b6fd2afbb8980a14711ca837f7f08ec90724b619e343a4fca4f5dd1bcd1c3c1b09b2d19ec77470890ff933470aa13179eb8c1344b47d36a806775e80af23694e8482a2b29de96e7a326cd61edc662d2b25b0c9ce6b90fca6b4d11ccce9243809583a4ae33f0d7216fb4e7ff3abf380b42f70b9ce9e193c726e9e7a886c2524f3f8d5698d85c9aaece7d97cbf1bc7b1e67e7ecba616c5895e1909f67c232ab8d70ede450bdc9060bff925c33ed394d67ab668eb476d4dcc384ecc5f1db01a402babd0e6f46f6db8f89667a34e5e897d274c8a9512d7ee26270aa2da3495098ee6e072781774f5b5b613cd8d91ed999c06a09ad5ac5aedf56a52d0a0441a01cd67db705cdfa3c7f764d1bac1cbffcf6c485950c1e86d37ae78917b2cdfe60762b506cc5427834a3f4c5f0002cdbf9e8c809eac300cb4b0986708697963e71f0cbb95c5d0871cf0315e10d8cd7df336a2fcf5a0c0213a7f9fb5600b84d2c22dd98c2d2ef85e194a2923c7d5232c5f1bf95a5a674bfff3a10105111d5931ac026bf9608d0d72b96e0c153829d250e0c928f9584ce14e0b86dbbb42cb694ac9172bb62f231fc668253533ab368234fc51bc5ffa05d6f1f30c3b66b826a5e7e602740c83c7d8a6989e4e571ea08506e3afb7e940113851db8e8116c7eee650d5280ea8579e1211742ca7cbbcb5a69ebe81e0a6403d1e13e9b468668083c82bea0bf74e3eb247d9f23e76b12ca9d685624aa0fb6c432adbfc855321ae23722b99005f74607f51e7791aa4a9e7495d14a2f6bf11833f802f0d6525fc9830f5e48a2af37c42e7fe8d3c91b9d181bb841bd06fe56c98acc0b1623dbadf69736b20c30000000000000000000000000000000000000000000000000000000000000000077737b01c9d9aa8acc810213ade26a3e012d45304b6e4ff5d8aa4f8a52cf43027b8abfa3ae46c3b878bc14e78823720d50a9751066193cf05fd5504af61d4a2000000000000000000000000000000000000000000000000000000000000000020fbd35294ee30fd9ef31dcf9b6e6b7e890f123a39f8f816849a8c7e16d889d5137f68d2bf2700e31bd3a2656655a0f770abd2f2b7fa853c380f40d940fb4d25057c99d74a6b03c79956903fc591f4be5c686f42078b81bcdb4d3157f5f2ff3b0000000000000000000000000000000000000000000000000000000000000000269d185b469f09a3051af6d1f2c7cbd46820970347072ae050d3b35d305bcf0f1a4a05129c1899d4ad9c95343a14133737f19c601af26ab87c21f3c9c4fb169300000000000000000000000000000000000000000000000000000000000000000d4ab62401887a3471e59769642e5db266eebb82a1f7f9ac24312709f7488b5500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002332ed690a2182f2abdab74665959c34d85bff96972af7c3422f5c086bc76fb91d9715ffb1c821a811a09712225ab4347f1482fe810e07463f262629e41dc9d70a3dddb13ccd2c02c8d55d6e9eb6e71e5347f77e21a9e518d6da14e370803d4b06df7e448e315ac549ed0e42fa7b61434eea74c95d1f6170aaf46f72f384b16400000000000000000000000000000000000000000000000000000000000000000b9b7cecd84d2126b392f215804b1428199fc3384ee43a6b0719921ea03899ea1f0a14a680523f30d52ef11c6cf71399222840d2c035837a40ffca3afdf3a7c919788e79793091d3bc91bfe8d4a24dfc9723c5291201f6118f310ac3af81ef0700e7cab150ebf579692f24641899c98690f29830da475273c089c57b36178e800000000000000000000000000000000000000000000000000000000000000000164102268334d944dcfcdca9a0a954bd6de5822d6038b00978e24edd4b38a6e71bbb96414e1eab0cb431cede3d4d98072f08adcf20556b81ba3f3b8ed53ced43122b96e6911eb390c9bde43376ef7e578f368dd9b5175eca732d989af8c546032905d0e74c8fa1998b1f40dcaf331636468eaabf69df85a8c10e13444b5d7dfc12eee4bf7818b3cb26739317255eb339255cfa14d15edb6b81850a27c6c9ebd511a03a52f8c798e43f4f21bb74f858941157b9a82c2da03a1ca7be9ce12cbe2c006bac66700b6a0ba80fe4f4f4403364b86d9e134b29bb7d366d5906b7bffae71d1d8af4e5ff6ac2fb93c7020b9917250e39887e8b834add06f92bcb0b6d8d79195a05a4449a2c6367dae820c9c2d618929405cfc190a4c7c04a88bb20b0781119aff06b43022c7b53369e5aeeb34a5969874a788e97e0412aa5b35a49587bba2f76a39f5ea260d6da5041277c1f75bc4376f5f3aa76f2f728277e02a6e8509d2e6b3a905188d7e9df941b40b7e4ca44df5c599779665661d3c636d0e93a9a1811439c971e87d67b5a9d22d2b58622ab069b20b4f18a988454a875146e67c13908afcaccc9793e358776aec766ac6b5f951d06c75de7e9ad5713a65a246a72e41e8894efd1e2280e67f8659aafda331ab4d06f82bd33debeb7835fc6bfa3946d2a438876dee407afb67316b35bd5d18ef06d51477b26d7be0c91eb1aed2384a41383ab251d519baf1569035f9b7be365a45ef7448d428f3abad13d37bfcdbe57151c3d080da31380d49c9ee7322c7fbfaff3391769e6eab502fe27e15970c01023af259f908de6ce9c0324b5ddacce370f648c84fc9e29ffe182d8bb8874812c262bf221bd601435732979d2139436ce6eb00860694a34c896354292a19469142eb65cc69d0567858e01dbebca25e00316741200f946ce28fe2fccfa63cbc3422d3d880a13247ef49a8984b9400ceb2c34a6c4920a53976db063fc6d5c74b25b178847aad54e920bb6e97e1397f93eca02f7f880afadad0cd98a873305f7d1fe10e5fced2fefb541cca5e0e21a81df747dbd2d75e1ca9d94b86027e2bab887af1cb8f60e4b65627f6f12074edd6ed3775ac1076ddc554b653bc073a045ba1c7701fd450becf85dea9449599fcf8620efa43106b4ec399ba6278ac84fdc1703f8266e5693d55d0c665a0c0fbc8b1f32131baa66cb5a695aa8e9cbd38f04ada5570b74150f72c22f0c466cb1f8e4a1558ece875052ec63b1599dc877bd92af0efc07881b5920c6eff44e03842aaf3a0ad2016ac8c36904574bde614fb0115278b71172e3eabe45dc082e2c8a31558a83bf806bd29024ac1f983c4f5a9cbb999a2e12547cca1ca5b57353cff0d17f13ba2ae2b292cb02252b543055e39a481f367319686ca4314a7df5b0951860aa38c213ed2bbd5bd256c68855d6f9c51dfabf3704151b426cf8dd92bb47d7f00ee40001b9e79613e11b60cd859d54ccc9a8a0311fbd391a3bd9d40a06971c5b3ab3e7e661da61d4a3eee340909769625cda39c50bfa25e362706c209847e09ba2292407f14552e0b2b7731311a5f9356d92dc1c20ecd909adc32407081775612b49106bb8727c3a1311a3eb9a2d2ede74102a8228ee12b043c643ae1e04434881487d40445ea93f8629c5343985a3e887913c810f9447343789d6942cd6135029ae90147ff91398904a9c97f5a08e825f2c9c0801e94987531ec128bfbc457c4c2b42ae4e2047321a7b44eded58b14ac4b5fb320933a6cd76f691c8bbba3de48d2ecd99c2e647bc2ddae32b00612b800ca90acf24c6517d86a687f0dfd78f48903409e7ae0504104bd50d5f3c6b849255aa7b091778f9136bc0d1920eda68ddf548d6a2dab64c63ae14edc1f061b8d22a00507309b797dbbef28d70419df84e7076ab35b482e9b294b0c224706639234685243a29d51d4b77086bb62bda354ea7dc9454e43ff29e42dee6ac06820140cf0df3701172e3eabe45dc082e2c8a31558a83bf806bd29024ac1f983c4f5a9cbb999a2e1f797d33d96b3622d2c8447551917dfb3a8b6040dcbab8104c0046caef8b80c92e72f982152f504b48b4c9a254b9bcc8a447e4ae69a7c17853021fa18b9a9df90908715b66a7e56b2cde4f25123c8e1feb7e7a0d07c25f7a8d2838f703b008e101c4ff211a0d94159cd31485033e57f385f33a44379bf9cae7640a397e284019', 'transcript_type': 'EVM'}\n", + "Time gen prf: 0.6213669776916504 seconds\n" ] } ], @@ -333,15 +330,14 @@ "metadata": {}, "outputs": [ { - "ename": "NameError", - "evalue": "name 'verifier_verify' is not defined", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", - "Cell \u001b[0;32mIn[9], line 2\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[38;5;66;03m# verify the proof\u001b[39;00m\n\u001b[0;32m----> 2\u001b[0m \u001b[43mverifier_verify\u001b[49m(proof_path, settings_path, vk_path, selected_columns, data_commitment_path)\n", - "\u001b[0;31mNameError\u001b[0m: name 'verifier_verify' is not defined" - ] + "data": { + "text/plain": [ + "[51.5, 46.25]" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" } ], "source": [ @@ -358,9 +354,21 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 10, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Model onnx:\t\t /Users/mhchia/projects/work/pse/demo-next/public/assets/out/model.onnx\n", + "Settings:\t\t /Users/mhchia/projects/work/pse/demo-next/public/assets/out/settings.json\n", + "Proof:\t\t\t /Users/mhchia/projects/work/pse/demo-next/public/assets/out/model.pf\n", + "Verification key:\t /Users/mhchia/projects/work/pse/demo-next/public/assets/out/model.vk\n", + "Srs path:\t\t ~/.ezkl/srs/kzg11.srs\n" + ] + } + ], "source": [ "print(\"Model onnx:\\t\\t\", model_onnx_path)\n", "print(\"Settings:\\t\\t\", settings_path)\n", @@ -386,7 +394,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.12.1" + "version": "3.12.4" } }, "nbformat": 4, diff --git a/public/assets/verifier.ipynb b/public/assets/verifier.ipynb index df7f49f..f4efe6b 100644 --- a/public/assets/verifier.ipynb +++ b/public/assets/verifier.ipynb @@ -10,47 +10,47 @@ "output_type": "stream", "text": [ "Requirement already satisfied: torch in /Users/mhchia/Library/Caches/pypoetry/virtualenvs/zkstats-brXmXluj-py3.12/lib/python3.12/site-packages (2.2.2)\n", - "Requirement already satisfied: zkstats==0.1.7 in /Users/mhchia/Library/Caches/pypoetry/virtualenvs/zkstats-brXmXluj-py3.12/lib/python3.12/site-packages (0.1.7)\n", - "Requirement already satisfied: click<9.0.0,>=8.1.7 in /Users/mhchia/Library/Caches/pypoetry/virtualenvs/zkstats-brXmXluj-py3.12/lib/python3.12/site-packages (from zkstats==0.1.7) (8.1.7)\n", - "Requirement already satisfied: ezkl==9.1.0 in /Users/mhchia/Library/Caches/pypoetry/virtualenvs/zkstats-brXmXluj-py3.12/lib/python3.12/site-packages (from zkstats==0.1.7) (9.1.0)\n", - "Requirement already satisfied: matplotlib<4.0.0,>=3.8.2 in /Users/mhchia/Library/Caches/pypoetry/virtualenvs/zkstats-brXmXluj-py3.12/lib/python3.12/site-packages (from zkstats==0.1.7) (3.8.4)\n", - "Requirement already satisfied: numpy<2.0.0,>=1.26.2 in /Users/mhchia/Library/Caches/pypoetry/virtualenvs/zkstats-brXmXluj-py3.12/lib/python3.12/site-packages (from zkstats==0.1.7) (1.26.4)\n", - "Requirement already satisfied: onnx<2.0.0,>=1.15.0 in /Users/mhchia/Library/Caches/pypoetry/virtualenvs/zkstats-brXmXluj-py3.12/lib/python3.12/site-packages (from zkstats==0.1.7) (1.16.0)\n", - "Requirement already satisfied: requests<3.0.0,>=2.31.0 in /Users/mhchia/Library/Caches/pypoetry/virtualenvs/zkstats-brXmXluj-py3.12/lib/python3.12/site-packages (from zkstats==0.1.7) (2.31.0)\n", - "Requirement already satisfied: scipy<2.0.0,>=1.11.4 in /Users/mhchia/Library/Caches/pypoetry/virtualenvs/zkstats-brXmXluj-py3.12/lib/python3.12/site-packages (from zkstats==0.1.7) (1.13.0)\n", - "Requirement already satisfied: statistics<2.0.0,>=1.0.3 in /Users/mhchia/Library/Caches/pypoetry/virtualenvs/zkstats-brXmXluj-py3.12/lib/python3.12/site-packages (from zkstats==0.1.7) (1.0.3.5)\n", + "Requirement already satisfied: zkstats==0.1.8 in /Users/mhchia/Library/Caches/pypoetry/virtualenvs/zkstats-brXmXluj-py3.12/lib/python3.12/site-packages (0.1.8)\n", + "Requirement already satisfied: click<9.0.0,>=8.1.7 in /Users/mhchia/Library/Caches/pypoetry/virtualenvs/zkstats-brXmXluj-py3.12/lib/python3.12/site-packages (from zkstats==0.1.8) (8.1.7)\n", + "Requirement already satisfied: ezkl==9.1.0 in /Users/mhchia/Library/Caches/pypoetry/virtualenvs/zkstats-brXmXluj-py3.12/lib/python3.12/site-packages (from zkstats==0.1.8) (9.1.0)\n", + "Requirement already satisfied: matplotlib<4.0.0,>=3.8.2 in /Users/mhchia/Library/Caches/pypoetry/virtualenvs/zkstats-brXmXluj-py3.12/lib/python3.12/site-packages (from zkstats==0.1.8) (3.8.4)\n", + "Requirement already satisfied: numpy<2.0.0,>=1.26.2 in /Users/mhchia/Library/Caches/pypoetry/virtualenvs/zkstats-brXmXluj-py3.12/lib/python3.12/site-packages (from zkstats==0.1.8) (1.26.4)\n", + "Requirement already satisfied: onnx<2.0.0,>=1.15.0 in /Users/mhchia/Library/Caches/pypoetry/virtualenvs/zkstats-brXmXluj-py3.12/lib/python3.12/site-packages (from zkstats==0.1.8) (1.16.0)\n", + "Requirement already satisfied: requests<3.0.0,>=2.31.0 in /Users/mhchia/Library/Caches/pypoetry/virtualenvs/zkstats-brXmXluj-py3.12/lib/python3.12/site-packages (from zkstats==0.1.8) (2.31.0)\n", + "Requirement already satisfied: scipy<2.0.0,>=1.11.4 in /Users/mhchia/Library/Caches/pypoetry/virtualenvs/zkstats-brXmXluj-py3.12/lib/python3.12/site-packages (from zkstats==0.1.8) (1.13.0)\n", + "Requirement already satisfied: statistics<2.0.0,>=1.0.3 in /Users/mhchia/Library/Caches/pypoetry/virtualenvs/zkstats-brXmXluj-py3.12/lib/python3.12/site-packages (from zkstats==0.1.8) (1.0.3.5)\n", "Requirement already satisfied: filelock in /Users/mhchia/Library/Caches/pypoetry/virtualenvs/zkstats-brXmXluj-py3.12/lib/python3.12/site-packages (from torch) (3.13.4)\n", "Requirement already satisfied: typing-extensions>=4.8.0 in /Users/mhchia/Library/Caches/pypoetry/virtualenvs/zkstats-brXmXluj-py3.12/lib/python3.12/site-packages (from torch) (4.11.0)\n", "Requirement already satisfied: sympy in /Users/mhchia/Library/Caches/pypoetry/virtualenvs/zkstats-brXmXluj-py3.12/lib/python3.12/site-packages (from torch) (1.12)\n", "Requirement already satisfied: networkx in /Users/mhchia/Library/Caches/pypoetry/virtualenvs/zkstats-brXmXluj-py3.12/lib/python3.12/site-packages (from torch) (3.2.1)\n", "Requirement already satisfied: jinja2 in /Users/mhchia/Library/Caches/pypoetry/virtualenvs/zkstats-brXmXluj-py3.12/lib/python3.12/site-packages (from torch) (3.1.3)\n", "Requirement already satisfied: fsspec in /Users/mhchia/Library/Caches/pypoetry/virtualenvs/zkstats-brXmXluj-py3.12/lib/python3.12/site-packages (from torch) (2024.3.1)\n", - "Requirement already satisfied: contourpy>=1.0.1 in /Users/mhchia/Library/Caches/pypoetry/virtualenvs/zkstats-brXmXluj-py3.12/lib/python3.12/site-packages (from matplotlib<4.0.0,>=3.8.2->zkstats==0.1.7) (1.2.1)\n", - "Requirement already satisfied: cycler>=0.10 in /Users/mhchia/Library/Caches/pypoetry/virtualenvs/zkstats-brXmXluj-py3.12/lib/python3.12/site-packages (from matplotlib<4.0.0,>=3.8.2->zkstats==0.1.7) (0.12.1)\n", - "Requirement already satisfied: fonttools>=4.22.0 in /Users/mhchia/Library/Caches/pypoetry/virtualenvs/zkstats-brXmXluj-py3.12/lib/python3.12/site-packages (from matplotlib<4.0.0,>=3.8.2->zkstats==0.1.7) (4.51.0)\n", - "Requirement already satisfied: kiwisolver>=1.3.1 in /Users/mhchia/Library/Caches/pypoetry/virtualenvs/zkstats-brXmXluj-py3.12/lib/python3.12/site-packages (from matplotlib<4.0.0,>=3.8.2->zkstats==0.1.7) (1.4.5)\n", - "Requirement already satisfied: packaging>=20.0 in /Users/mhchia/Library/Caches/pypoetry/virtualenvs/zkstats-brXmXluj-py3.12/lib/python3.12/site-packages (from matplotlib<4.0.0,>=3.8.2->zkstats==0.1.7) (24.0)\n", - "Requirement already satisfied: pillow>=8 in /Users/mhchia/Library/Caches/pypoetry/virtualenvs/zkstats-brXmXluj-py3.12/lib/python3.12/site-packages (from matplotlib<4.0.0,>=3.8.2->zkstats==0.1.7) (10.3.0)\n", - "Requirement already satisfied: pyparsing>=2.3.1 in /Users/mhchia/Library/Caches/pypoetry/virtualenvs/zkstats-brXmXluj-py3.12/lib/python3.12/site-packages (from matplotlib<4.0.0,>=3.8.2->zkstats==0.1.7) (3.1.2)\n", - "Requirement already satisfied: python-dateutil>=2.7 in /Users/mhchia/Library/Caches/pypoetry/virtualenvs/zkstats-brXmXluj-py3.12/lib/python3.12/site-packages (from matplotlib<4.0.0,>=3.8.2->zkstats==0.1.7) (2.9.0.post0)\n", - "Requirement already satisfied: protobuf>=3.20.2 in /Users/mhchia/Library/Caches/pypoetry/virtualenvs/zkstats-brXmXluj-py3.12/lib/python3.12/site-packages (from onnx<2.0.0,>=1.15.0->zkstats==0.1.7) (4.25.3)\n", - "Requirement already satisfied: charset-normalizer<4,>=2 in /Users/mhchia/Library/Caches/pypoetry/virtualenvs/zkstats-brXmXluj-py3.12/lib/python3.12/site-packages (from requests<3.0.0,>=2.31.0->zkstats==0.1.7) (3.3.2)\n", - "Requirement already satisfied: idna<4,>=2.5 in /Users/mhchia/Library/Caches/pypoetry/virtualenvs/zkstats-brXmXluj-py3.12/lib/python3.12/site-packages (from requests<3.0.0,>=2.31.0->zkstats==0.1.7) (3.7)\n", - "Requirement already satisfied: urllib3<3,>=1.21.1 in /Users/mhchia/Library/Caches/pypoetry/virtualenvs/zkstats-brXmXluj-py3.12/lib/python3.12/site-packages (from requests<3.0.0,>=2.31.0->zkstats==0.1.7) (2.2.1)\n", - "Requirement already satisfied: certifi>=2017.4.17 in /Users/mhchia/Library/Caches/pypoetry/virtualenvs/zkstats-brXmXluj-py3.12/lib/python3.12/site-packages (from requests<3.0.0,>=2.31.0->zkstats==0.1.7) (2024.2.2)\n", - "Requirement already satisfied: docutils>=0.3 in /Users/mhchia/Library/Caches/pypoetry/virtualenvs/zkstats-brXmXluj-py3.12/lib/python3.12/site-packages (from statistics<2.0.0,>=1.0.3->zkstats==0.1.7) (0.21.1)\n", + "Requirement already satisfied: contourpy>=1.0.1 in /Users/mhchia/Library/Caches/pypoetry/virtualenvs/zkstats-brXmXluj-py3.12/lib/python3.12/site-packages (from matplotlib<4.0.0,>=3.8.2->zkstats==0.1.8) (1.2.1)\n", + "Requirement already satisfied: cycler>=0.10 in /Users/mhchia/Library/Caches/pypoetry/virtualenvs/zkstats-brXmXluj-py3.12/lib/python3.12/site-packages (from matplotlib<4.0.0,>=3.8.2->zkstats==0.1.8) (0.12.1)\n", + "Requirement already satisfied: fonttools>=4.22.0 in /Users/mhchia/Library/Caches/pypoetry/virtualenvs/zkstats-brXmXluj-py3.12/lib/python3.12/site-packages (from matplotlib<4.0.0,>=3.8.2->zkstats==0.1.8) (4.51.0)\n", + "Requirement already satisfied: kiwisolver>=1.3.1 in /Users/mhchia/Library/Caches/pypoetry/virtualenvs/zkstats-brXmXluj-py3.12/lib/python3.12/site-packages (from matplotlib<4.0.0,>=3.8.2->zkstats==0.1.8) (1.4.5)\n", + "Requirement already satisfied: packaging>=20.0 in /Users/mhchia/Library/Caches/pypoetry/virtualenvs/zkstats-brXmXluj-py3.12/lib/python3.12/site-packages (from matplotlib<4.0.0,>=3.8.2->zkstats==0.1.8) (24.0)\n", + "Requirement already satisfied: pillow>=8 in /Users/mhchia/Library/Caches/pypoetry/virtualenvs/zkstats-brXmXluj-py3.12/lib/python3.12/site-packages (from matplotlib<4.0.0,>=3.8.2->zkstats==0.1.8) (10.3.0)\n", + "Requirement already satisfied: pyparsing>=2.3.1 in /Users/mhchia/Library/Caches/pypoetry/virtualenvs/zkstats-brXmXluj-py3.12/lib/python3.12/site-packages (from matplotlib<4.0.0,>=3.8.2->zkstats==0.1.8) (3.1.2)\n", + "Requirement already satisfied: python-dateutil>=2.7 in /Users/mhchia/Library/Caches/pypoetry/virtualenvs/zkstats-brXmXluj-py3.12/lib/python3.12/site-packages (from matplotlib<4.0.0,>=3.8.2->zkstats==0.1.8) (2.9.0.post0)\n", + "Requirement already satisfied: protobuf>=3.20.2 in /Users/mhchia/Library/Caches/pypoetry/virtualenvs/zkstats-brXmXluj-py3.12/lib/python3.12/site-packages (from onnx<2.0.0,>=1.15.0->zkstats==0.1.8) (4.25.3)\n", + "Requirement already satisfied: charset-normalizer<4,>=2 in /Users/mhchia/Library/Caches/pypoetry/virtualenvs/zkstats-brXmXluj-py3.12/lib/python3.12/site-packages (from requests<3.0.0,>=2.31.0->zkstats==0.1.8) (3.3.2)\n", + "Requirement already satisfied: idna<4,>=2.5 in /Users/mhchia/Library/Caches/pypoetry/virtualenvs/zkstats-brXmXluj-py3.12/lib/python3.12/site-packages (from requests<3.0.0,>=2.31.0->zkstats==0.1.8) (3.7)\n", + "Requirement already satisfied: urllib3<3,>=1.21.1 in /Users/mhchia/Library/Caches/pypoetry/virtualenvs/zkstats-brXmXluj-py3.12/lib/python3.12/site-packages (from requests<3.0.0,>=2.31.0->zkstats==0.1.8) (2.2.1)\n", + "Requirement already satisfied: certifi>=2017.4.17 in /Users/mhchia/Library/Caches/pypoetry/virtualenvs/zkstats-brXmXluj-py3.12/lib/python3.12/site-packages (from requests<3.0.0,>=2.31.0->zkstats==0.1.8) (2024.2.2)\n", + "Requirement already satisfied: docutils>=0.3 in /Users/mhchia/Library/Caches/pypoetry/virtualenvs/zkstats-brXmXluj-py3.12/lib/python3.12/site-packages (from statistics<2.0.0,>=1.0.3->zkstats==0.1.8) (0.21.1)\n", "Requirement already satisfied: MarkupSafe>=2.0 in /Users/mhchia/Library/Caches/pypoetry/virtualenvs/zkstats-brXmXluj-py3.12/lib/python3.12/site-packages (from jinja2->torch) (2.1.5)\n", "Requirement already satisfied: mpmath>=0.19 in /Users/mhchia/Library/Caches/pypoetry/virtualenvs/zkstats-brXmXluj-py3.12/lib/python3.12/site-packages (from sympy->torch) (1.3.0)\n", - "Requirement already satisfied: six>=1.5 in /Users/mhchia/Library/Caches/pypoetry/virtualenvs/zkstats-brXmXluj-py3.12/lib/python3.12/site-packages (from python-dateutil>=2.7->matplotlib<4.0.0,>=3.8.2->zkstats==0.1.7) (1.16.0)\n", + "Requirement already satisfied: six>=1.5 in /Users/mhchia/Library/Caches/pypoetry/virtualenvs/zkstats-brXmXluj-py3.12/lib/python3.12/site-packages (from python-dateutil>=2.7->matplotlib<4.0.0,>=3.8.2->zkstats==0.1.8) (1.16.0)\n", "\n", - "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m A new release of pip is available: \u001b[0m\u001b[31;49m23.3.1\u001b[0m\u001b[39;49m -> \u001b[0m\u001b[32;49m24.1\u001b[0m\n", + "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m A new release of pip is available: \u001b[0m\u001b[31;49m23.3.1\u001b[0m\u001b[39;49m -> \u001b[0m\u001b[32;49m24.1.1\u001b[0m\n", "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m To update, run: \u001b[0m\u001b[32;49mpip install --upgrade pip\u001b[0m\n", "Note: you may need to restart the kernel to use updated packages.\n" ] } ], "source": [ - "%pip install torch zkstats==0.1.7" + "%pip install torch zkstats==0.1.8" ] }, { @@ -131,14 +131,11 @@ "source": [ "# This is just a dummy computation. Replace it with user's computation\n", "import torch\n", - "from zkstats.computation import State\n", + "from zkstats.computation import State, Args\n", "\n", - "def computation(state: State, x: list[torch.Tensor]):\n", - " # out_0 = state.median(x[0])\n", - " # out_1 = state.median(x[1])\n", - " # # return state.mean(torch.cat([out_0.unsqueeze(0), out_1.unsqueeze(0)]).reshape(-1,1)), out_0\n", - " # return out_0, out_1\n", - " return state.mean(x[0]), state.median(x[0])" + "def computation(state: State, args: Args):\n", + " x = args[\"x\"]\n", + " return state.mean(x), state.median(x)" ] }, { @@ -187,7 +184,7 @@ "output_type": "stream", "text": [ "==== setting up ezkl ====\n", - "Time setup: 0.5691819190979004 seconds\n" + "Time setup: 0.5496859550476074 seconds\n" ] }, { @@ -234,7 +231,7 @@ "sel_dummy_data_path = f\"{output_dir}/sel_dummy_data.json\"\n", "\n", "# NOTE: generate the verifier model with the `precal_witness_path` provided by the prover\n", - "_, verifier_model = computation_to_model(computation, precal_witness_path, isProver=False)\n", + "_, verifier_model = computation_to_model(computation, precal_witness_path, isProver=False, selected_columns=selected_columns)\n", "# Determine which srs to use with the logrows in the settings.json\n", "with open(settings_path, \"r\") as f:\n", " settings = json.load(f)\n", @@ -300,7 +297,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.12.1" + "version": "3.12.4" } }, "nbformat": 4,