OrbiterSDK <--> OrbiterSDK Data Bridging

How native chains exchange data on SparqNet.

Bridging arbitrary data from an OrbiterSDK chain (A) to another (B) is simple:

  • Chain A sends a request in the upcoming block and communicates this, along with the block reference, to the Gateway Network. This request is written to the next block and relayed to SparqNet.

  • A set of Validators and Sentinels are randomly selected using RandomGen (which works exactly the same way in all nodes in the network). The selected Validators and Sentinels review Chain A's request and forward it to Chain B.

  • Chain B receives the request from the Gateway and retrieves the data from its chain, encapsulating it within a merkled item. This data and its internal reference are subsequently transmitted back to the Gateway Network for permanent storage.

  • Validators and Sentinels then check and corroborate the data submitted by Chain B with other nodes from Chain B to validate its presence in the designated block.

  • Once data is verified, Validators and Sentinels sign the data and publish it inside the Gateway, while also relaying it back to A along with their signatures.

  • A verifies the signatures and checks if the randomly selected nodes were using the network's RandomGen seed. If everything matches, the exchange is complete, but if not, there's a malicious node in the network which should be reported.

It is possible for Subnet A to only send information to the target chain without having to wait for an answer. This call can possibly trigger logic within the target chain, depending on how their developers decided to handle your message.

Last updated