Install CCF#
Tip
The ccf-app-template repository can be used to quickly setup the environment necessary to build CCF apps.
Requirements#
CCF builds and runs on Linux. It is primarily developed and tested on Ubuntu 20.04, with Clang 10. Running CCF with full security guarantees requires SGX hardware with FLC.
Note
A virtual version of CCF can also be run on hardware that does not support SGX. The virtual mode provides no security guarantee and is only useful for development and prototyping.
CCF requires the following dependencies to be first installed on your system:
These dependencies can be conveniently installed using the ansible
playbooks in the CCF repository or Install:
$ cd <ccf_path>/getting_started/setup_vm/
$ ./run.sh app-dev.yml
Install#
CCF releases are available on the GitHub repository release page.
The CCF Debian package (ccf_<platform>_<version>_amd64.deb
) contains the libraries and utilities to start a CCF service and build CCF applications. CCF can be installed as follows:
# Set CCF_VERSION to most recent LTS release
$ export CCF_VERSION=$(curl -ILs -o /dev/null -w %{url_effective} https://github.com/microsoft/CCF/releases/latest | sed 's/^.*ccf-//')
# Set CCF_PLATFORM to virtual, which allows running on any amd64-compatible hardware but does not provide security guarantees. Choose sgx or snp to use the relevant TEE instead.
$ export CCF_PLATFORM=virtual
# Alternatively, set this manually, e.g.
# export CCF_VERSION=1.0.0
$ wget https://github.com/microsoft/CCF/releases/download/ccf-${CCF_VERSION}/ccf_${CCF_PLATFORM}_${CCF_VERSION}_amd64.deb
$ sudo apt install ./ccf_${CCF_PLATFORM}_${CCF_VERSION}_amd64.deb
Assuming that CCF was installed under /opt
, the following commands can be run to verify that CCF was installed successfully:
$ /opt/ccf_virtual/bin/cchost --version
CCF host: ccf-<version>
$ /opt/ccf_virtual/bin/sandbox.sh
No package/app specified. Defaulting to installed JS logging app
Setting up Python environment...
Python environment successfully setup
[16:10:16.552] Starting 1 CCF node...
[16:10:16.552] Virtual mode enabled
[16:10:23.349] Started CCF network with the following nodes:
[16:10:23.350] Node [0] = https://127.0.0.1:8000
...
The CCF install notably contains:
The
cchost
binary required to spin up a CCF applicationThe
cmake
files required to build CCF applicationsThe
ansible
playbooks required for CCF Development Setup (undergetting_started/
)Header files and libraries to build CCF applications (under
include/
andlib/
)A limited set of Python utilities to start a basic CCF service for local testing
Various utility scripts (see Running CCF Applications)
Uninstall#
To remove a virtual installation of CCF, run:
$ sudo apt remove ccf_virtual
Unsafe Packages#
Separate packages (ccf_<platform>_unsafe_<version>_amd64.deb
) with extremely verbose logging are provided for troubleshooting purposes. Their version always end in unsafe
to make them easily distinguishable.
The extent of the logging in these packages mean that they cannot be relied upon to offer confidentiality and integrity guarantees. They should never be used for production purposes.
From Source#
To build and install CCF from source, please see Build CCF from Source.
In Azure#
CCF can be installed on an Azure Virtual Machine by running a single script;
<ccf_path>/getting_started/azure_vm/install_ccf_on_azure_vm.sh