The official Dusk protocol node client and smart contract platform.
2.4K
The official Dusk protocol node client and smart contract platform.
Unstable : No guarantees can be made regarding the API stability, the project is in development.
For more information on running a node, see our docs:
Rusk makes use of the nightly toolchain, make sure it is installed. Furthermore, to build the WASM contracts, wasm-pack is required.
To install and set the nightly toolchain, and install wasm-pack, run:
rustup toolchain install nightly
rustup default nightly
cargo install wasm-pack
To build rusk from source, Rust, GCC and Clang are required. Once the dependencies are installed, you can simply run the following command to compile everything:
make
To run tests:
make test
That will also compile all the genesis contracts and its associated circuits.
Prerequisites:
# Generate the keys used by the circuits
make keys
# Compile all the genesis contracts
make wasm
# Copy example consensus.keys
mkdir -p ~/.dusk/rusk
cp examples/consensus.keys ~/.dusk/rusk/consensus.keys
Run a single full-node cluster with example state.
# Generate genesis state
cargo r --release -p rusk -- recovery-state --init examples/genesis.toml -o /tmp/example.state
# Launch a local ephemeral node
DUSK_CONSENSUS_KEYS_PASS=password cargo r --release -p rusk -- -s /tmp/example.state
The node can be build as a prover only as follows:
cargo r --release --no-default-features --features prover -p rusk
This prover node will be accessible on https://localhost:8080. Apps like the wallet-cli can be connected to it for quicker and more private local proving.
To just compile all the genesis contracts without running the server:
make contracts
To generate a specific genesis contract:
# generate the wasm for `transfer` contract
make wasm for=transfer
See also make help for all the available commands
It's also possible to run a local ephemeral node with Docker.
To build the Docker image:
docker build -t rusk .
To run Rusk inside a Docker container:
docker run -p 9000:9000/udp -p 8080:8080/tcp rusk
Port 9000 is used for Kadcast, port 8080 for the HTTP and GraphQL APIs.
The Rusk software is licensed under the Mozilla Public License Version 2.0.
Content type
Image
Digest
sha256:62cd20077…
Size
1.9 GB
Last updated
over 2 years ago
docker pull dusknetwork/node