Being evolved from Litentry, a substrate-based L1 blockchain, Heima Network inherits its modularity, flexibility and security, which forms a solid ground for chain abstraction and cross-chain operations. It is also an EVM-compatible blockchain that connects to the relaychain (e.g. Polkadot) which ensures shared security and interoperability, which serves as the backbone of Heima Network:
- HEI token native features: transfer, governance, staking ...
- Runtime logic such as enclave management, DID ...
- parentchain of identity-worker, which is a TEE-based sidechain to achieve identity aggregation and crediential issuance without promising users' privacy
- parentchain of bitacross-worker, which is a TEE-based offchain-worker to bridge assets across chains using native custodian and multisig
To build the binary:
make build-node
To build the litentry/litentry-parachain
docker image, based on cargo profile:
make build-docker-release
make build-docker-production
To build the litentry-parachain runtime wasm:
make build-runtime-litentry
The wasms should be located under target/release/wbuild/litentry-parachain-runtime/
Similarly, use make build-runtime-paseo
to build the paseo-parachain-runtime.
Litentry uses zombinet to spin up a local network with 2 relaychain nodes and 1 parachain node:
make launch-network-litentry
It will firstly look for the target/release/litentry-collator
binary - and if not found - copy the binary out from litentry/litentry-parachain:latest
image if you are on Linux.
If you see the screenshot below, you can tell the network is successfully spun up and you can access the polkadot-js block explorer locally:
When finished with the network, run
make clean-network
to stop the processes and tidy things up.
To speed up the development, the parachain can be launched without relaychain nodes. In this case, parachain will author blocks by itself with instant block finalisation, please refer to this PR.
make launch-standalone
cd /tee-worker/identity
source /opt/intel/sgxsdk/environment
SGX_MODE=SW WORKER_DEV=1 make
Before executing launch.py
, the following Python libraries need to be installed
pip install python-dotenv pycurl docker toml
Identity-workers need a running parachain to become operational. We have an all-in-one script local-setup/launch.py
to launch both parachain and workers:
./local-setup/launch.py -p standalone
./local-setup/launch.py -p network
./local-setup/launch.py -p remote
They stand for different parachain launching options:
- standalone parachain
- parachain network with relaychains
- parachain is remotely launched (elsewhere), so don't launch parachain in
launch.py
respectively.
If you see the screenshot below, you can tell the worker is running:
Refer to identity-worker ts-tests
In the worker launch terminal, Ctrl + C
should interrupt and clean everything up automatically.
- Change the RUST_LOG level:
local-setup/worker-log-level-config.toml
- Check existing ts-tests:
tee-worker/identity/ts-tests/package.json
- JSON config parameters:
tee-worker/identity/service/src/cli.yml