Exonum Blockchain Framework by the Bitfury Group

  •        0
  

We aggregate and tag open source projects. We have collections of more than one million projects. Check out the projects section.



Exonum is an extensible open source blockchain framework for building private blockchains which offers outstanding performance, data security, as well as fault tolerance. The framework does not include any business logic, instead, you can develop and add the services that meet your specific needs. Exonum can be used to build various solutions from a document registry to a DevOps facilitation system.

 

Public vs Private Blockchains

A blockchain is a list of records, blocks of transactions, where each new block contains the cryptographic hash of the previous one. Therefore, a block cannot be modified or removed without altering the subsequent chain, not to mention an attack of the kind can only be achieved through a collusion of participants of the network.

Anyone can join a public blockchain, receive a copy of its data base and participate in the consensus. Public blockchains are considered secure, as the large number of participants renders a collusion virtually impossible.

On the other hand, only a limited number of participants is admitted to a private blockchain by its owner. Whereas a private blockchain offers a much more efficient performance, it is also less secure and trustworthy. Firstly, the limited number of participants makes nodes vulnerable to hacker attacks, secondly, collusions between node administrators become a reality.

With this in mind, Exonum offers highly efficient private blockchains, which can be just as secure as public ones by means of applying its efficient and flexible authoring tools.

Key Features

Let’s take a look at some of the main features that contribute to Exonum’s performance and reliability:

 

Rust

Exonum is written in Rust, one of the most secure programming languages. During the framework development it has proven to be a more universal and effective tool in many aspects as compared to Java, C and C++.

 

Byzantine Fault-Tolerant Consensus Algorithm (BFT Algorithm)

Exonum’s BFT algorithm ensures that the system will continue to operate correctly even if up to 1/3 of the nodes behave maliciously.  The consensus algorithm cycle has several stages during which a new block is compiled only if more than 2/3 of validators agree on it. The algorithm can process up to 5000 transactions per second with a clearing latency of 0.5 sec.

 

Bitcoin Anchoring

The anchoring service periodically sends the hash of the Exonum system state to the public Bitcoin blockchain. If any changes are made to the Exonum blockchain or if it is rewritten from scratch, the existence of anchored data will immediately reveal such actions.

 

Services

Exonum functionality can be extended by services. Services in Exonum are similar to smart contracts in other platforms; they determine the rules of transaction processing and encapsulate the business logic of a blockchain application. Services are written in the same programming language as the framework core - Rust. Due to this factor, Exonum services have higher performance and speed as compared to the competitors’ analogs. Bitcoin anchoring is an example of a service.

 

Nodes

Exonum-powered blockchain presupposes 3 types of roles for its network participants:

  • Validators manage consensus - propose and vote for new blocks and sign each new committed block. Typically, an Exonum-powered blockchain has 4-20 validators.
  • Auditors have access to the full database of the blockchain, they can generate new transactions and observe the behavior of validators, but do not take part in the consensus process.
  • Light Clients, currently implemented as libraries, do not store all the data of the blockchain; they connect to full nodes (validators or auditors) to retrieve only certain data that are of interest to the client.

 

Approach to Business Logic

Initially, Exonum does not contain any business logic enabling the users to extend its functionality with the help of services. Exonum was not designed to serve one particular goal, rather it is a framework which can be adapted to different needs. The good grounds for that is in its essence - Exonum does not offer a vertical solution with extensive functionality in one sphere, but it is a horizontal solution which can be extended to many spheres at once. In other words, the idea behind Exonum was to select and implement the solutions common for many economic spheres to create a framework for building applications which would serve various purposes.

Although now the services are written in Rust only, they are actively working on implementing Java bindings into Exonum in order to make it handier for the large enterprise community.

Meanwhile, there are already real-life examples of registry, banking and DevOps systems running on Exonum. And there are many more spheres where Exonum-powered private blockchains might prove useful.

 

Research and Contribution to the Community

With the rise of Bitcoin, the theme of blockchain has gained huge popularity among the software developers community. Various solutions have been introduced that use blockchains instead of regular storages to promote security and productivity. However, not all these solutions are elegant.

Exonum has a dedicated Research and Development team who vigorously study existing solutions and come up with the ways to improve them or introduce completely new ways of solving existing issues.

As Exonum is an open-source software platform, most of the solutions, which appear as a result of extensive research, are shared with the community. Anyone can use the code provided by the Exonum team to learn, experiment and extend it to include the functionality one needs.

Among the many results of Exonum team’s research are:

 

Time Oracle

Exonum 0.5 features time oracle - a time service within the blockchain. The team were faced with two implementation options: either making the time oracle a part of the consensus process or a separate service. The latter method was selected, as research acknowledged it as a more manageable and flexible solution.

 

Asynchronous Operation Using Tokio

Previously, an Exonum-powered system operated synchronously, which hindered its operation. As a result of research, the team have implemeted the Tokio library into Exonum. The solution significantly increased the speed of operation and enabled Exonum blockchain to function asynchronously as new tasks come in and system resources are freed up.

 

Test Kit

Another contribution of the Exonum research team is the test kit. This library allows developers to test services without network operation and consensus algorithm involved. Tests run in the same system process as the service code itself to simplify the debugging process of the service business logic.

Currently, the R&D team are looking into WebAssembly that will allow running services written in bytecode and deploying pieces of precompiled code in Exonum without rebuilding the whole system.

Another point of current interest to the team is a 2-way peg as a means of integration with Ethereum. The 2-way peg would enable exchange of information between blockchains and let Exonum interact with Ethereum similarly to a sidechain.

 

Existing Exonum-powered Systems

Exonum has already been used for building a number of applications, let’s take a look at some of them:

 

Georgia

The National Agency of Public Registry in the Republic of Georgia has implemented an Exonum blockchain into their land titling registry in test mode. Blockchain implementation will significantly reduce the service delivery time and operational costs, as well as provide real-time audit capabilities.

 

Ukraine

Ukraine’s governmental System of Electronic Trading in Seized Property (SETAM) is being shifted to Exonum to apply blockchain. The blockchain system will store records of seized property, a registry of auction participants and a log of auctions. The implementation will enhance citizens’ trust in the system as well as provide extra security.

 

Aricent

A pilot project was implemented at Aricent to improve the efficiency of their software development process (DevOps). According to the company’s internal research, the introduction of an Exonum blockchain has led to a considerable acceleration of the product development cycle.

 

Exonum and Its Main Competitors

The rapidly growing market of blockchain solutions has already resulted in the active race of technologies in the sphere. With more and more players joining this game, Exonum is most often distinguished from others through analyses against such popular projects as Ethereum and Fabric.

As compared to public blockchain solutions, Exonum offers a considerably higher speed of operation, while at the same time Exonum private blockchains offer virtually the same level of security as public blockchains due to its anchoring feature.

Exonum’s BFT consensus algorithm is determined mathematically which means it does not require economic reward for proper functioning. As a result, Exonum does not require mining and does not depend on the exchange rate of any of the cryptocurrencies. This all makes the cost of operation of an Exonum blockchain always predictable.

The Exonum framework is flexible and adjustable to its users’ needs. The system allows adjusting several consensus related parameters, for example, timeouts. Developers can write their own various services for Exonum and incorporate the desired business logic therein. Additionally, Exonum services offer wide possibilities for interaction with applications through web API.

The Exonum framework continuously grows, improves and develops, and you can take part in that process too. To ask questions, communicate your ideas and keep up with the latest developments in the platform, join the official Exonum channels in Gitter and Telegram, as well as the repository in GitHub.

 

References:

https://exonum.com/

https://github.com/exonum

 

 


Sponsored:
To find embedded technology information about MCU, IoT, AI etc Check out embedkari.com.


   

We publish blog post about open source products. If you are interested in sharing knowledge about open source products, please visit write for us




Related Articles

How Bitcoin works? A simple introduction.

Bitcoin is an open source digital currency which could be transferred in a P2P payment network. It is decentralized and it is not controlled by any central authority or banks. It is transferred from person to person and no authority will be aware of your transaction. Its quite different from PayPal or Banks.

Read More


How to create SEO friendly url

  • seo url searchengine

SEO friendly URL is recommended for any website which wants to be indexed and wants its presence in search results. Searchengine mostly index the static URL. It will avoid the URL which has lot of query strings. Almost all websites generate content dynamically then how could the URL be static. That is the job of the programmer.

Read More


Struts 1.x End Of Life. Whats alternative?

  • java eol struts

The Apache Struts Project Team announced End of Life (EOL) for Struts 1.x web framework. Struts was launched in the year 2000. It is only of the widely used web framework. It gave better control over writing UI and business logic code directly in to JSPs.

Read More


Activiti - Open Source Business Automation

  • business-automation business bpm

Activiti Cloud is the first Cloud Native BPM framework built to provide a scalable and transparent solution for BPM implementations in cloud environments. The BPM discipline was created to provide a better understanding of how organisations do their work and how this work can be improved in an iterative fashion.

Read More


GreenMail - Email Test Framework in Java

  • email email-server test automation

In any project there will be a need to send mail out to users. It could be an alert mail, forget password or authentication related mail. Mail is the default communication between the software and the users. As a developer, we can write code, to send out a mail but we need to make sure whether it got successfully received and how the body of mail, Is it the same like what we have sent. GreenMail is a Email test framework which helps to send and receive mails. It is a test framework which supports SMTP, POP3, IMAP including SSL.

Read More



Microsoft released F# under Open Source

  • fsharp opensource

F# is a functional programming language for the .NET Framework. It combines the succinct, expressive and compositional style of functional programming with the runtime, libraries, interoperability, and object model of .NET. Microsoft recently released its source code under Apache License.

Read More


MailHog - Web and API based SMTP testing

  • smtp-testing testing-tool smtp test automation email-server email

Most of the projects will have a requirement of sending and receiving mails. We have mentioned about GreenMail - Email Test Framework, in our previous article about API based SMTP testing. In this article, we discuss about MailHog - Web and API based SMTP testing. You send out a mail from your code and you can check it via web visually and also via API. Those who do API testing can check via API. Developers may want to visually verify the format of the mail. MailHog is a best bet for SMTP testing.

Read More


SeoToaster: easy, fast and efficient open source CMS for top SEO performance

  • cms content-management-system seo ecommerce

SeoToaster is a free Open Source CMS & Ecommerce solution to build, manage and market websites optimized for for top search engine performance. As the name implies, Seo Toaster is to date the only content management system (CMS) to truly integrate SEO execution and web marketing automation technology in full compliance with the search engines industry’s best practices.

Read More


Advantages and Disadvantages of using Hibernate like ORM libraries

  • database orm

Traditionally Programmers used ODBC, JDBC, ADO etc to access database. Developers need to write SQL queries, process the result set and convert the data in the form of objects (Data model). I think most programmers would typically write a function to convert the object to query and result set to object. To overcome these difficulties, ORM provides a mechanism to directly use objects and interact with the database.

Read More


How to learn from open source projects

  • open-source learning methodology

Students ask this question frequently steps or methodology to learn from open source projects. There is no single answer or steps available. I listed the steps which i follow and i hope this will help for few.

Read More