# PLONKathon notes ## The MacOS Commands that Aayush Ran `brew update && brew install pyenv` `echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zshrc` `echo 'command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zshrc` `echo 'eval "$(pyenv init -)"' >> ~/.zshrc` `source ~/.zshrc` `pyenv install -v 3.9.1` `curl -sSL https://install.python-poetry.org | python3 -` `echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.zshrc` `source ~/.zshrc` `git clone git@github.com:0xPARC/plonkathon.git` `cd plonkathon` `poetry --version` or `~/.local/bin/poetry --version` - `Poetry (version 1.3.2)` `poetry install` `poetry run python test.py` - You should see this error: ```===setup_test=== Extracted G1 side, X^1 point: ... Traceback (most recent call last): File "/Users/aayushgupta/Documents/projects/plonkathon/test.py", line 264, in <module> setup_test() File "/Users/aayushgupta/Documents/projects/plonkathon/test.py", line 23, in setup_test assert commitment == G1Point( AssertionError ## Brian's MacOS Installation Notes - installing poetry didn't work with system python3 (MacOS), so i needed to first get pyenv ([relevant Github issue explaining this ](https://github.com/python-poetry/install.python-poetry.org/issues/56)) - followed instructions here to install pyenv with brew: https://github.com/pyenv/pyenv - `brew update && brew install pyenv` - `echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zshrc` - `echo 'command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zshrc` - `echo 'eval "$(pyenv init -)"' >> ~/.zshrc` - `source ~/.zshrc` - then used pyenv to install and set global the latest version of python3. checked that pyenv's python3 was the default with `which python3` and `python3 --version` - ` pyenv install -v 3.9.1` - then followed the instructions here to install poetry: https://python-poetry.org/docs/ - `curl -sSL https://install.python-poetry.org | python3 -` - poetry is accessible from `~/.local/bin`, so I had to add `~/.local/bin to $PATH` (add a line to zshrc) - `echo 'export PATH="~/.local/bin:$PATH"' >> ~/.zshrc` - this didn't work for me, so I just use `~/.local/bin/poetry` to call poetry instead - repo setup - `git clone git@github.com:0xPARC/plonkathon.git` - `cd plonkathon` - `poetry --version` or `~/.local/bin/poetry --version` - `Poetry (version 1.3.2)` - `poetry install` - `poetry run python test.py` - You should see this error: ```===setup_test=== Extracted G1 side, X^1 point: ... Traceback (most recent call last): File "/Users/aayushgupta/Documents/projects/plonkathon/test.py", line 264, in <module> setup_test() File "/Users/aayushgupta/Documents/projects/plonkathon/test.py", line 23, in setup_test assert commitment == G1Point( AssertionError ## Indexing into evaluation form The paper 1-indexes in Lagrange form. We advise you to 0-index instead for sanity (so basically subtract 1 from the relevant indices from specs in the paper). ## Miscellaneous notes - In Round 2, you can safely use $k_1 = 2$ and $k_2 = 3$; then $H$, $k_1 * H$, $k_2 * H$ will indeed be cosets. - The field order $p$ is such that $p-1$ has high 2-adicity, so FFTs up to large powers of 2 will work as expected. ## Transcript https://github.com/therealyingtong/plonkathon/blob/main/transcript.py - [Merlin](https://merlin.cool) - [STROBE framework](https://www.cryptologie.net/article/416/the-strobe-protocol-framework/)