OSC IS Network Architecture - OpenScienceChain/OSC-IS_Doc GitHub Wiki

OSC-IS Architecture drawio

Figure 1

In Figure 1 you can see the basic architecture diagram of the OSC-IS network that is currently implemented. This is a Hyperledger Fabric (HF) Network with only one channel. For an in deep documentation of the HF network architecture, see HL Architecture. Here we will provide a brief summary of this architecture and some of the reasons why we decided to implement this particular configuration up to this date.

First of all, the OSC-IS network will hold only one channel (we'll talk about Channels later), in which the orderer and partner organizations will participate. Therefore, only one chaincode is necessary to rule all the possible transactions to the public ledger. The organizations are represented in this diagram by the colored triangles, which are painted upon the Chaincode's Channel box, meaning that all the orgs are subject to the rules stipulated there. The orderer org is represented by the green triangle and it is easily spotted by the subscripts and suffixes "Ord". The Orderer organization is responsible for maintaining the ordering service that orders transactions and creates a block of transactions for the channel. The Orderer organization acts as a central authority for the network, and its primary role is to ensure the consistency and validity of the ledger. The Orderer organization performs the following functions:

  1. Maintaining the ordering service: The Orderer organization is responsible for maintaining the ordering service, which orders transactions and creates blocks of transactions for each channel.

  2. Delivering blocks to peers: The Orderer organization delivers blocks of transactions to the peers in the network, which then validate and commit the transactions to the ledger.

  3. Ensuring transaction order and consistency: The Orderer organization ensures that transactions are ordered and committed in the same order across all peers in the network. This ensures consistency and prevents double-spending and other types of fraud.

  4. Managing channel membership: The Orderer organization is responsible for managing the membership of channels in the network, including adding or removing organizations from a channel.

In order for an organization to be able to submit a block to the public ledger, the organization needs to use Peers which are an essential component of the HF Architecture. Peers allow organizations to endorse and commit transactions. In other words, peers are responsible for executing chaincode and endorsing transactions before they are submitted to the ordering service, and validating and committing the transactions to the ledger.

In the diagram, we have only included one peer per org, representing the whole functionality of all the peers in an organization. The peers interact directly with the channel by invoking functions of the chaincode. The peers also keep a copy of the chaincode. For practical purposes, we will use the term "SmartContract" interchangeably with the term Chaincode. The copy of the SmartContract in the peer is represented by the ellipse with an "S" on each of the peers. Moreover, the peers must keep a copy of the public ledger represented by the "Document" symbol in the diagram.

Users of each organization use applications to interact with the peers. The organizations may provide an API to facilitate this interaction. Finally, each organization may also provide a Certificate Authority to generate the necessary certificates for the nodes, admins, organizations definitions, and applications of its organization. These are represented by the boxes to the right of the Network.

Another very important aspect of the HF architecture is the Channel. A channel is a private communication mechanism that allows a subset of network members to transact in a secure and confidential manner. A channel is created by specifying a set of organizations that are authorized to participate in the channel, along with a set of policies that govern the behavior of the channel. In our case, all the organizations in the network will participate in only one channel. The channel has its own copy of the ledger, which contains a history of all transactions that have occurred on the channel. This allows for secure and confidential transactions to take place between the participants on the channel.

In the next section of this document, we will talk about the chaincode, its role, and its basic functionalities in the network.