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.
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.
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.
Finally, the Java Binding User Guide will teach you how to start a Java project on the Exonum framework.
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.
See the anchoring and supervisor services for the examples of real-world Exonum services.
Exonum documentation contains in-depth discussions on numerous other aspects of the framework, such as binary serialization, storage and networking.
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.