Skip to content

Commit

Permalink
Added documentation for compute_shuffled_index.
Browse files Browse the repository at this point in the history
Added correct json input for compute_shuffled_index circuit in example.
Clone test input data if needed.
  • Loading branch information
HristoStaykov committed Mar 19, 2024
1 parent ce0579f commit fb86c0a
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 0 deletions.
17 changes: 17 additions & 0 deletions vendor/zkllvm-metacraft-circuits/docs/compute_shuffled_index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# Compute shuffled index documentation.

### *Implementation*
The implementation code of the circuit is under "DendrETH/vendor/zkllvm-metacraft-circuits/src/circuits_impl/".
This code is used in both the compilation as circuit and as executable.

### *Circuit build*
In order to build as circuit, we need an entry point marked with the `[[circuit]]` directive. This is done through a wrapper
that uses the implementation code and resides in "DendrETH/vendor/zkllvm-metacraft-circuits/src/circuits". Since currently the Crypto3
library does not implement computation of sha256 on a byte buffer, we use a header only library for the sha256 computations, which has
negative performance consequences.

### *Executable build + tests*
The implementation code of the circuit is compiled as executable and tested against the input data from
https://github.com/ethereum/consensus-spec-tests.git. The tests reside in "DendrETH/vendor/zkllvm-metacraft-circuits/src/tests/compute_shuffled_index_test/".
For convenience, we have a script that performs all necessary steps to run the test -> "DendrETH/vendor/zkllvm-metacraft-circuits/scripts/compile_and_run_tests.sh".
It is required that docker is installed on the machine that will run the tests.
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,11 @@ then
git clone git@github.com:metacraft-labs/finalizer-data.git $SCRIPT_DIR/../src/tests/verify_attestation_data_test/finalizer-data
fi

if [ ! -d $SCRIPT_DIR/../../consensus-spec-tests ]
then
git clone git@github.com:ethereum/consensus-spec-tests.git $SCRIPT_DIR/../../consensus-spec-tests
fi

cd $CURRENT_DIR

COMMAND='cmake -G "Unix Makefiles" -B ${ZKLLVM_BUILD:-build} -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_COMPILER=g++ . && make -C ${ZKLLVM_BUILD:-build} template'
Expand Down

0 comments on commit fb86c0a

Please sign in to comment.