Open fnerdman opened 1 year ago
Updates:
1.1 Replicability
- [x] Create a containerized build environment for gramine based on the official debian docker image
- [x] Build gramine within this image and export all the runtime dependencies (
meson install --no-rebuild --destdir/ ...
)- [x] create two consecutive builds from scratch and compare the destdirs with diffoscope
- [ ] try this on different hardware
We have successfully built gramine twice and compared destdirs on same machine.
The experiment was done in two parts:
It included running a bash script that builds a docker image containing different builds for gramine and checking it with diffoscope container.
File result can be found here.
Note:
--exclude-directory-metadata
flag is used to ignore timestamp diffs.
Next steps are to build gramine on different machines.
@lonerapier For the next step you could split the dockerfile in such way that gramine is built only one time on Machine A, then you copy the resulting image to Machine B, and there you use the copied image as Source image to complete the rest of the execution of the Dockerfile, i.e. build Gramine another time and diffoscope the result.
Next tasks:
Gramine Reproducible Builds
1. Gramine enclave TCB
1.1 Replicability
meson install --no-rebuild --destdir/ ...
)Reproducible builds terminology: https://github.com/ethereum/go-ethereum/issues/18292#issuecomment-1155689987
Upstream Issue: https://github.com/gramineproject/gramine/issues/153