Exonum

Exonum is an extensible open-source framework for creating blockchain applications. Exonum can be used to create cryptographically powered distributed ledgers in virtually any problem domain, including FinTech, GovTech, and LegalTech. The Exonum framework is oriented towards creating permissioned blockchains, that is, blockchains with the known set of blockchain infrastructure providers.

Exonum uses the Rust programming language in its core to achieve utmost execution safety; service-oriented architecture to provide extensibility, flexibility, and modularity; and client-side verification based on cryptographic commitments (Merkle and Merkle Patricia trees) to ensure transparency of the system and client security.

Exonum provides the Java Binding tool together with a software development kit (SDK). This allows to build custom services in Java - one of the most popular programming languages - on top of the Rust-based Exonum framework.

Get Started

Installation

Exonum is an open-source Rust library providing core functionality of the Exonum framework. It is available under the Apache 2.0 license. You may refer to the installation guide in order to install the library together with its prerequisites.

Tutorials

Cryptocurrency Tutorial showcases how Exonum can be used to build a simple cryptocurrency app step by step.

Cryptocurrency Advanced Tutorial explains how to obtain cryptographic proofs of data presence in the blockchain.

Service Testing Tutorial will teach you how to test your services with the help of the testkit library.

The source code of the tutorials is available on GitHub.

Besides tutorials on usage of the Exonum core, you can find a tutorial on the Exonum light client – a JavaScript library intended for client-side verification of blockchain information and for performing cryptographic operations (such as digital signing).

Finally, the Java Binding User Guide will teach you how to start a Java project on the Exonum framework.

Going Deeper

Framework Design & Motivations

Refer to What is Exonum for the motivations behind building yet another permissioned blockchain framework. Design Overview takes a more technical approach and gives in-depth description of the Exonum design.

Services & Clients

The following 2 topics provide valuable insights on how to develop with Exonum:

  • Services are the main building blocks of the Exonum architecture
  • Light clients are the main way for third-party applications to interact with the services.

Tip

See the anchoring and supervisor services for the examples of real-world Exonum services.

Specifications

Exonum documentation contains in-depth discussions on numerous other aspects of the framework, such as binary serialization, storage and networking.

Contributing

See the contribution guide to get information on how to contribute to Exonum development, and the roadmap to find out what features are coming soon.