diff --git a/README.md b/README.md index cd1f1c1516..f872c8dd8b 100644 --- a/README.md +++ b/README.md @@ -4,9 +4,9 @@ ![Rust](https://github.com/Phala-Network/phala-blockchain/workflows/Build/badge.svg) -Phala Network is a blockchain-based confidential computing cloud. This repo includes: +Phala Network is a decentralized offchain computing protocol aiming to build the Web3 Cloud. This repo includes: -- `node/`: the main blockchain built on Substrate +- `node/`: the main development blockchain built on Substrate - `standalone/pherry/`: the message relayer to connect the blockchain and pRuntime - `standalone/pruntime/`: the contract execution kernel running inside TEE enclave @@ -26,6 +26,19 @@ The **blockchain** is the central component of the system. It records commands (
Expand +- System dependencies + - Ubuntu (tested with 22.04) + ```bash + apt install -y build-essential pkg-config libssl-dev protobuf-compiler + ``` + + - macOS + ```bash + brew install protobuf + ``` + + - See [here](https://grpc.io/docs/protoc-installation/) for more protobuf installation options + - Rust ```bash @@ -39,27 +52,14 @@ The **blockchain** is the central component of the system. It records commands ( sh ./scripts/init.sh ``` -- LLVM 10 +- LLVM 14 ```bash wget https://apt.llvm.org/llvm.sh chmod +x llvm.sh - ./llvm.sh 10 - ``` - -- Protobuf Compiler - - Ubuntu - ```bash - apt install -y protobuf-compiler - ``` - - - macOS - ```bash - brew install protobuf + ./llvm.sh 14 ``` - - See [here](https://grpc.io/docs/protoc-installation/) for more options -
### Build the blockchain and bridge @@ -80,45 +80,7 @@ the _current_ rustc. ## Run -1. Launch a dev node: - - ```bash - ./target/release/phala-node --dev - ``` - - - Can be purged by `./target/release/phala-node purge-chain ` - - The [Polkadot.js UI](https://polkadot.js.org/apps) can connect to the node at port 9944. - -2. Compile & launch pRuntime (Simulation mode) - ```bash - cd standalone/pruntime - mkdir -p data - cargo run - ``` - -3. Compile & launch pRuntime (Hardware mode) - - Apply for Remote Attestation API keys at - [Intel IAS service](https://api.portal.trustedservices.intel.com/EPID-attestation). The SPID must be linkable. - - Follow gramine's [document](https://gramine.readthedocs.io/en/latest/quickstart.html) to install the gramine toolchain. - - After installing the toolchain, you can graminify and run the pRuntime. - ```bash - export SGX_SIGNER_KEY=path/to/your/key.pem - export IAS_SPID=your_spid - export IAS_API_KEY=your_api_key_in_hex - cd standalone/pruntime/gramine-build - make run - ``` - -4. Run pherry (node and pRuntime required): - - ```bash - ./target/release/pherry --dev --no-wait - ``` - -5. Web UI (TODO: still being refactored) +Please refer to [the run scripts](./scripts/run) ## Sub-pages