This repository contains the Thaler Experimental Network code (pre-pivoted Crypto.com Chain). The current repository consists of the following Rust sub-crates:
Please abide by the Code of Conduct in all interactions, and the contributing guidelines when submitting code.
Technical documentation can be found in this Github repository (you can read it in this hosted version.
$ docker build -t crypto-chain:latest .
Docker build arguments:
SGX_MODE
:
HW
: SGX hardware mode, default.SW
: SGX software simulation mode.NETWORK_ID
: Network HEX Id of Tendermint, default: AB
.BUILD_PROFILE
:
debug
: debug mode.release
: release mode, default.BUILD_MODE
:
sgx
: default.mock
: A simulation mode only for development on non-sgx platform, don't use in production.$ make build
It builds in docker container, the result binaries reside in local directory, it runs something like:
$ docker run --rm -v `pwd`:/chain cryptocom/chain:latest run_build_scripts
The result binary is built for the docker container environment, may not runnable locally.
The makefile supports other commands too:
$ make help
...
SUBCOMMAND:
prepare prepare the environment
image build the docker image
build just build the chain and enclave binaery in docker
run-sgx docker run sgx-validation and a sgx-query container
run-chain docker run chain-abci, tendermint and client-rpc container
stop-all docker stop all the container
start-all docker start all the container
restart-all docker restart all the container
rm-all remove all the docker container
clean clean all the temporary files while compiling
clean-data remove all the data in data_path
Prerequisite:
SGX_SDK
to the sdk directory)$ apt-get install -y \
cmake \
libgflags-dev \
libzmq3-dev \
pkg-config \
clang
$ ./docker/build.sh
All the executables and signed enclave libraries will reside in ./target/debug
.
Environment variables mentioned in the docker image building section also apply here.
TODO
Please follow the instruction to deploy a local full node.
Kindly refer to this instruction to perform transactions between addresses.
You can run the unit tests and integration tests with drone-cli on sgx platform:
$ cat > .drone.secret << EOF
SPID=<SPID>
IAS_API_KEY=<IAS_API_KEY>
EOF
$ drone exec --trusted \
--include build \
--include unit-tests \
--include integration-tests \
--include multinode-tests
Kindly refer to Prepare SPID & KEY to obtain the values of SPID
and IAS_API_KEY
.