Giter VIP home page Giter VIP logo

sagar10arya / veracruz-docker-image Goto Github PK

View Code? Open in Web Editor NEW

This project forked from veracruz-project/veracruz-docker-image

0.0 1.0 0.0 153 KB

Development Docker image for the Veracruz privacy-preserving compute project. Veracruz is an adopted project of the Confidential Compute Consortium (CCC).

Home Page: https://veracruz-project.github.io

License: MIT License

Dockerfile 61.35% Makefile 38.65%

veracruz-docker-image's Introduction

Building Veracruz

This is the repository for the Docker container used for developing Veracruz. Veracruz is an open-source runtime for collaborative privacy-preserving compute. The main Veracruz repository can be found here.

Veracruz is an adopted project of the Confidential Compute Consortium (CCC).

Supported platforms

  • AWS Nitro Enclaves
  • Linux (no TEE technology used)

Requirements

  • Docker: We use Docker to provide a consistent build environment. Follow this guide to install Docker if necessary.
  • Enable Docker squash experimental feature: The tests are done on a linux machine. To enable docker experimental features on another OS. We use the squash docker experimental feature to help reduce the Veracruz docker image size, to enable this feature:
    • run:
      sudo service docker stop
    • copy the following in /etc/docker/daemon.json
      {
          "experimental": true
      }
    • run:
      sudo service docker start

Local build setup

Once all the necessary requirements are available, run the following commands:

  • Clone the Veracruz repository: This will pull the docker submodule

    git clone --recursive https://github.com/veracruz-project/veracruz.git 
    export VERACRUZ_ROOT=$PWD/veracruz
    
  • Once you have a local copy of the Veracruz source:

    cd veracruz/docker
    

The following instructions depend on the platform you're building for. (SGX, Arm TZ)

Note that building the Docker image will take a long time (we appreciate any suggestions on how this can be sped up!)

  • Build Instructions for AWS Nitro Enclaves

    make nitro-base
    
  • Build Instructions for Linux

    make linux-base
    
  • Starting the veracruz container

    For AWS Nitro Enclaves:

    make nitro-run
    

    Or, for Linux:

    make linux-run
    

There should be a Docker container running called "veracruz__". To verify that it's running, run: docker ps

You can now start a shell in the newly created container: For Nitro:

    make nitro-exec
For Linux:
    make linux-exec

Test Instructions for AWS Nitro Enclaves

Once inside the container, set up your local environment.

Now, to build the binaries:

cd workspaces/
make nitro

and to run the tests:

cd workspaces/nitro-host/
make test-server
make veracruz-test

Test Instructions for Linux

Once inside the container, build the binaries:

cd workspaces/
make linux

and to run the tests:

cd workspaces/linux-host/
make test-server
make veracruz-test

Cleaning a build

The Veracruz Makefile exposes a build target, clean, which recursively invokes cargo clean for each major subcomponent of the project. However, sometimes this is not enough to fix a broken build environment (note that this is common when using xargo to build e.g. the examples, or the rest of the SDK). In that case, it is useful to also delete the contents of the ~/.xargo directory, in addition to the standard clean build process described above.

Generating the certificates

Cryptographic certificates can be generated by using the following openssl invocation:

openssl req -new -x509 -key <key filename> -sha256 -nodes -days 3650 -out <certificate filename> -config cert.conf 

veracruz-docker-image's People

Contributors

mathias-arm avatar dominic-mulligan-arm avatar basmaelgaabouri avatar dreemkiller avatar geky avatar dominicpm avatar ericvh avatar egrimley-arm avatar gbryant-arm avatar ipetr0v avatar shalexiong avatar veracruz-project-owner avatar sagar10arya avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.