💙 Are you a DApp? We're helping DApps reach out to more users with our promotion service. Contact us now!
View all posts

Block.One is working on Inter-Blockchain-Communication technology


From a recent commit on EOSIO Github, merged by Dan Larimer, it can be seen that Block.One is working on a new messaging system (between chains?) based on AMQP. A user (Matthew Darwin) pointed it out on Twitter, and Dan Larimer replied that Block.One is working on a Inter-Blockchain-Communication (IBC) related tech.

According to the Github description of the amqp_witness_plugin, this is a plugin that will extend "the concept (of witness) to a non-producing node", which will be based on an AMQP exchange. Where witness refers to:

"a node that signs a block attesting that the entire contents of the block are valid." - amqp_witness_plugin

AMQP is an open standard protocol for message queues, a message design that allows to efficiently manage high volume of concurrent messages through an asynchronous and persistent process.

Following an explanation based on a Pizza Shop, this system allow customers to send orders and immediately receive an order confirmation from the Pizza shop. Once the Pizza shop receives an order, it place it in a persistent queue distributed among the various Pizza Shops and start processing (preparing) the pizzas. When a pizza is ready, it is sent to the customer, and the order removed from the queue. In this way, the customer only has to worry about sending the order and receive the confirmation of receipt, then he can use his resources where he wants while waiting for the pizza (maybe use his smartphone).

We can also expand this concept in the case of a possible Inter-Blockchain-Communication. We will have that the customer and the Pizza shop are two different blockchain, which we will call Chain 1 and Chain 2. Chain 1 can send a request to Chain 2, and once sent, Chain 1 immediately receives a confirmation of "receipt", while Chain 2 add the request to a queue of other requests distributed among all the block producers. Block Producers will continue to process them, i.e. validate the transactions on Chain 2. Once the request/transaction ordered by Chain 1 has been validated on Chain 2, the proof of validation (via Merkle Tree*) will be returned to Chain 1 and the IBC process can be considered finished.

All the above explanation is just a supposition that the EOS Go team thought when reading the plugin description on Github, it is absolutely not said that the new technology that Block.One is developing works in this way. In any case it's a very interesting finding.

*a Merkle Tree is a structure for maintaining data, which drastically reduces the information load. It is used on blockchain to contains the information of validated transactions within blocks.


Suggested News