---
# System prepended metadata

title: PLONKathon notes

---

# 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/)