No description
Find a file
2023-10-25 14:00:24 -07:00
.github/ISSUE_TEMPLATE Add issue template 2023-10-19 12:21:39 +02:00
data dockerfile for mtcs 2023-09-10 12:21:35 -05:00
mtcs@3f13e5c0fd dockerfile for mtcs 2023-09-10 12:21:35 -05:00
.gitignore Update .gitignore to ignore IDE files 2023-10-25 14:00:24 -07:00
Dockerfile dockerfile for mtcs 2023-09-10 12:21:35 -05:00
mtcs.manifest.template dockerfile for mtcs 2023-09-10 12:21:35 -05:00
README.md simplify instruction 2023-09-10 12:34:21 -05:00

Gramine experiments using MTCS

This is a Dockerfile for replaying the mtcs experiment in gramine, starting from the manifest file from https://github.com/informalsystems/cofi-private/issues/104 The starting point for the Dockerfile is the Gramine-based from Revm Relay hackathon. https://github.com/amiller/gramine-sgx-revm/

The point of this is to emphasize the verification process that can be completed even without SGX, by reproducing the MRENCLAVE and inspecting remote attestation quotes.

Init the git submodules

This repo references mtcs as a submodule, but the Dockerfile simply copies mtcs from the current directory. So don't forget to have git apply the submodules when cloning the repo

git submodule update --init --recursive

Replicating the MRENCLAVE build (no SGX required

The following will build mtcs, then freeze all dependencies from the docker environment into the gramine manifest, and finally display the resulting MRENCLAVE

docker build . --tag mtcs
docker run mtcs

Let's see how long this remains reproducible:

     mr_enclave: fa9149158c693b09e83480b48c2e7344c941aadca6d5829834f2af9f2690435e

Execution on an SGX machine

This is tested on a local SGX machine, not Azure

docker run -it --device /dev/sgx_enclave \
       -v /var/run/aesmd/aesm.socket:/var/run/aesmd/aesm.socket \
       -v ./data:/workdir/data \
       mtcs bash
is-sgx-available
gramine-sgx ./mtcs
cat mtcs/data/micro-set-offs.out