In my Introduction to Microsoft's Coco framework for blockchain applications – Part One article, we discussed logical architecture of Coco system VNs, as well as actors in the network. In this article, we are going to discuss Blockchain Network Management in Coco Framework.
As the blockchain network consists of validating nodes (discussed in the
previous article), to instantiate the network, we must start with creating VN. Bootstrapping a VN involves steps illustrated in the following figure.
- Install a Coco Framework-supported OS.
- Setup Trusted Execution Environment.
- Install the Coco Framework and blockchain protocol.
- Upload its private/public keys and the network Constitution to the VN.
The Blockchain network is managed through rules termed as Network Constitution. Members can suggest modifications in the Constitution. And by voting, suggested changes are then incorporated in the Constitution.
At the high level, the Constitution includes:
- VN list
It is a list of approved validating nodes. A VN is represented as a combination of the member’s identity, the address of the physical node, and the public key.
- Membership list
It is a list of all approved users i.e. members as well as participants. List contains public keys of users.
- Code manifest
It is the specification of approved code that can run within the network.
- TEE manifest
It is the specification of approved trusted execution environments. All TEEs specifications should be as per the TEE manifest.
- Voting policy
Changes in constitution are incorporated after voting process. It is criteria for approving a vote.
Transactions in Coco framework
In Coco framework, there are two types of transactions; Application and Administrative.
Application transaction
These are business transactions for which the network is formed.
- Distributed app establishes connection with VN and sends transaction.
- Host (a logical component of Coco framework) receives the transaction and passes it to enclave. It will then decrypt the transaction and send it to the adaptor of particular blockchain protocol.
- Adaptor processes transaction by interacting with blockchain protocol system.
- Adaptor commits transaction to persistent store. And broadcasts it using consensus algorithm.
Administrative transaction (Transactions like Suggest updates in the Constitution, add/delete member)
- Distributed app establishes connection with VN and sends transaction.
- Host (a logical component of Coco framework) receives transaction and passes it to enclave. It then decrypts that and sends to the governance sub-component.
- After voting, governance system commits the transaction.
This is all about the basics of Coco framework as per my understanding from various article reads. We will get to know more about it in 2018, when Microsoft will release it on GitHub.
Till then, keep mining for blockchain.