OPEN BLOCKCHAIN
Open Blockchain is a prominent project featuring an enterprise blockchain. Open Blockchain was originated by IBM, but later evolved as an open source project within the Hyperledger community [11].
Open Blockchain is a permissioned blockchain network, where end users or organizations go through a registration process that would authorize them to submit (as users) or process transactions (as validators) that are announced in the system. The permissioned nature of Open Blockchain allows the latter to mainly rely on nonproof-of-work based mechanisms, such as Byzantine fault-tolerant protocols, to achieve consensus in the network on transaction validation. The system has been designed in a modular way, allowing the easy replacement of these protocols with other protocols that can achieve consensus among participating nodes in the system.
The architecture of Open Blockchain is summarized in Figure 9.3. Similar to Ethereum, Open Blockchain aims at accommodating arbitrary logic within its transactions. To do so, the concept of chaincode was introduced; chaincode refers to pieces of code that are to be deployed and registered within the blockchain through deploy transactions and can be invoked through invoke transactions. Chain- code deployment is performed within a Docker container, within which subsequent invocations of that chaincode are also accommodated. Docker provides a secured, lightweight method to sandbox chaincode execution. Note that the chaincode concept is more general than the notion of smart contracts. Namely, Chaincode can be written in any mainstream programming language, and executed in containers inside the Open Blockchain context layer. Chaincode provides the capability of restricting the functionality of the execution environment and the degree of computing flexibility to satisfy potential legal contractual requirements.
As depicted in Figure 9.3, the Open Blockchain system consists of the following entities:
- • Membership management infrastructure. This denotes a set of entities that are responsible for identifying an individual user (using any form of identification considered in the system such as credit cards or identity cards). This infrastructure is also responsible for opening user accounts and issue the necessary credentials to successfully create transactions and deploy/invoke chaincodes successfully through Open Blockchain.
- • Peers. These are classified as validating peers and nonvalidating peers. Validating peers (also known as validators) order and process (check validity, execute, and add to the blockchain) user-messages (transactions) submitted to the network. On the other hand, nonvalidating peers (or simply peers) receive transactions on behalf of users, and after performing validity checks, they forward the transactions to their neighboring validating peers. Peers maintain an up-to-date copy of the blockchain, but in contradiction to validators, they do not validate transactions (a process also known as transaction validation).
- • End users of the system. These refer to the users that have registered to the membership service administration after having demonstrated ownership of what is considered identity in the system and having obtained credentials to install the client-software and submit transactions to the system.
- • Client-software. This refers to the software that needs to be installed at the client side for the latter to be able to complete his or her registration to the membership service and submit transactions to the system. For simplicity, in the following, we will refer to the client-software by client.