Introduction to Diamond Network


Diamond Network is a decentralized network of independent parallel blockchains, each of which is constructed by BPOS consensus algorithm.


In other words, Diamond Network is a blockchain ecosystem for interactive expansion and operation. Prior to Diamond Network, blockchains couldn’t communicate with each other and just handled a handful of transactions per second, because they are hard to establish such an interactive network. However, Diamond Network solves these problems with a new technology vision. To develop a deep insight into this vision, we need to figure out the basic principles of blockchain technologies.


How does Diamond Network build a broader blockchain ecosystem?


To understand the principles of Diamond Network to build a blockchain ecosystem, we need to track back to the story of blockchains. At first, Bitcoin, the first blockchain application, was a peer-to-peer digital currency created in 2008. It adopted a new consensus mechanism called Proof of Work (PoW), which was the first decentralized application (dApp). With its popularity, soon, people began to recognize the potential of such dApps and hoped to build new applications in the community.


At the time, there were two methods to develop dApps: to fork Bitcoin code base or to build on it. However, all three layers of Bitcoin code base—networks, consensus, and applications—were coupled together. Even worse, its script language’s functions were neither multiple selective nor user friendly. Under this case, better tools were necessary.


In 2014, Ethereum proposed a new vision of building a blockchain for people to deploy any dApp by transforming the application layer into Ethereum Virtual Machine (EVM), which can handle programs called smart contracts. Any developer can deploy applications to Ethereum blockchain without license. This new approach allows thousands of developers to start to construct dApps, yet, its limitations soon surfaced and subsist now.


Diamond Network aims to make it easy for developers to build blockchains and break down blockchain barriers by allowing them to trade (communicate) with each other, so as to create a blockchain network of interactive communication in a decentralized manner. Meanwhile, based on Diamond Network, blockchains can maintain sovereignty, process transactions quickly and communicate with other blockchains in the ecosystem, making it optimal for a variety of use cases.


Diamond Network will realize this vision by a range of open source tools, such as BPOS, Diamond Network SDK and IBC, to enable people to quickly build customized, secure, extensible and interoperable blockchain applications. Therefore, we will analyze Diamond Network’s tools and technical architecture.


BPOS is a consensus algorithm for information’s copying in line with consistency and security required by consensus. Any programming language can be used on BPOS to construct a Finite State Machine (FSM).


Diamond Network SDK is a modular framework that simplifies the construction of secure blockchain applications.


Diamond Network IBC, which can be considered as blockchain TCP/IP, is a communication protocol between blockchains. It permits fast-finality blockchains to exchange values and data in a decentralized manner.


Diamond Network SDK and other application layers’ framework


Although Diamond Network has slashed the development duration of blockchains, to build a secure ABCI application from scratch (to implement ABCI protocol) remains a daunting task. That’s the reason why Diamond Network SDK is needed.


Diamond Network SDK is a general framework that simplifies the process of building a secure blockchain application on BPOS following two main principles:


• Modularity: Diamond Network SDK aims to create a modular ecosystem permitting developers to easily create blockchains for specific applications with no need to write every function of the application from scratch. Anyone can create a module or use existing modules for Diamond Network SDK in their own blockchain. For example, Diamond Network team is building a group of basic modules needed by Diamond Network Hub. These modules can be used when building their own applications. In addition, developers can create new modules to customize their applications. With the development of Diamond Network and the expansion of SDK module ecosystem, it will become increasingly easier to develop complex applications.


• Feature-based security: Functions restrain security boundaries between modules, enable developers to identify module composability and limit the scope of malicious or unexpected interactions.


Diamond Network SDK is attached with a set of useful developer tools: command-line interface (CLI), REST services, and other common tool libraries.


All in all, like all other Diamond Network tools, Diamond Network SDK is of modular design. At present, it allows developers to build applications on BPOS consensus engine. Later, it can also be used on other consensus engines for implementing ABCI protocol. As time goes on, multiple SDKs of different architectural models are expected to be compatible with multiple consensus engines, and all of them will coexist in Diamond Network ecosystem.


Decentralized inter-chain Internet design


Diamond Network IBC is a protocol permitting two heterogeneous blockchains to transmit Tokens to each other. Then, how to create a blockchain network?


One idea is that each blockchain in the network can be connected to another via Diamond Network IBC. However, the main problem is that the number of connections climbs quadratically with the number of blockchains. If 100 blockchains are in the network, and they need to maintain IBC connections to each other, there will be 4,950 connections, which will immediately get out of control.


To solve this problem, Diamond Network proposes a modular architecture including two types of blockchain: Hub and Done. As the Diamond Network blockchain continues to develop, eventually, an inter-chain Internet will be forged to realize a comprehensive universal blockchain system.