Rust implementation of the Nimiq Blockchain Core
Nimiq is a frictionless payment protocol for the web.
This repository is Work in Progress and is currently in beta-testing phase. If you need a reliable client implementation to run in a production environment, please use the JavaScript implementation instead. Only use this if you can tolerate bugs and want to help with beta-testing the Nimiq Rust implementation.
The Nimiq Rust client comes without wallet and can currently not be used to send transactions. As a back-bone node it is more performant than the JavaScript implementation though.
- Nimiq White Paper: High-level introduction of the Nimiq payment protocol.
- Nimiq Developer Reference: Details of the protocol architecture.
- Testnet: Demo of the Nimiq ecosystem in a test version of the network.
Besides Rust itself, the following packages are required to be able to compile this source code:
gcc
pkg-config
libssl-dev
(in Debian/Ubuntu) oropenssl-dev
(in Fedora/Red Hat)
To download from crates.io, compile and install the client:
cargo +nightly install nimiq-client
The binary will be installed in your Cargo directory, which is usually at $HOME/.cargo/bin
, and should be available in your $PATH
.
Compiling the project is achieved through cargo
:
git clone https://github.com/nimiq/core-rs-albatross
cd core-rs
cargo +nightly build
Note that this will build it in debug mode, which is not as performant. To get the most speed out of the client, build it in release mode:
cargo +nightly build --release
If you want to install the client onto your system (into $HOME/.cargo/bin
), run:
cargo +nightly install --path client/
Alternatively you can install directly from git:
cargo +nightly install --git https://github.com/nimiq/core-rs-albatross.git
After installing the client you can use it as if you had downloaded it from crates.io.
By default the client will look for a configuration file in $HOME/.nimiq/client.config
. You need to create this file yourself:
nimiq-client # Run the client. This will create the example config file.
cp $HOME/.nimiq/client.example.toml $HOME/.nimiq/client.toml # Create your config from the example.
nano $HOME/.nimiq/client.toml # Edit the config. Explanations are included in the file.
You can also specify your own configuration file:
nimiq-client -c path/to/client.toml
Take a look at client/client.example.toml
for all the configuration options.
If you installed the client from crates.io, you can just run it with:
nimiq-client
To run the Nimiq Rust Client from the downloaded sources:
cd core-rs/client
cargo run
Dependencies and binaries will be downloaded and compiled automatically by Cargo.
If you want to use the release build:
cd core-rs/client
cargo run --release
If you'd like to contribute to the development of Nimiq please follow our Code of Conduct and Contributing Guidelines.
Small note: If editing the README, please conform to the standard-readme specification.
This project is under the Apache License 2.0.