In a centralized database system, it is easy to control access and consistency where everyone is using the same database. Additionally, in the centralized database, there is a central trusted authority to control the access because there is only one database, and all participants or clients using the same set of data. It should be trusted by all the participants or clients that the owner of the database never manipulates the historical data for any reason and the database is correct.
What if, the participants cannot trust the centralized database owner and need high security and trust for their data as well as none of the companies want to take ownership and responsibility of the centralized database. In this case, we need distributed database.
The distributed database uses multiple copies of a database and there is always synchronization if anything changes in a single copy of the database. In distributed database, each participant can have their own copy of the database. The main advantage of distributed database is that it is easy to control access as well as you can integrate your other systems and processes in your own copy of the database easily. However, as already explained there is always synchronization of changes to each database which is mandatory.
What is Blockchain?
Blockchain is a technology for record-keeping and contract enforcement. It uses cryptography to make it extremely difficult to modify the previous history. Blockchain technology is referred to as distributed ledger which is just like an accounting ledger that contains the history of transactions.
- Blockchain is a decentralized solution that uses a decentralized database.
- It uses consensus rules to make sure data is consistent across nodes.
- It uses cryptography which ensures participants trust the data.
In blockchain, the cluster of data is kept in a block that has a unique identifier and a history. Blocks keep transaction information for example date, time, amount, and digital signature of the user.
When to use Blockchain?
There are many cases where the centralized database is a better option. However, in the following scenario, we can use blockchain.
- When we need to support several partners and companies.
- To avoid central authority: Participant do not trust in central authority
- To ensure consistency in distributed database.
- To ensure trust and integrity between the participants, maintain the order of transaction and transaction privacy is needed for partners and companies.
What is Azure Blockchain Service?
Azure Blockchain service is a fully managed ledger service which provides user the ability to grow and operate blockchain network with scale in Azure [ref 2]. It supports multiple ledger protocols. Presently, Azure Blockchain supports for the Ethereum Quorum ledger. These require nearly no administration and provided with no extra cost where we can only focus on application development and business logic rather than spending time and resources to manage and maintain virtual machines and infrastructure.
Another interesting thing about Azure Blockchain provides is that; we can develop our application with the open-source tools and platform of our choice to design and deliver the application without the need of learning new skills. Meaning that, we can choose application development according to our skillset which does not need to learn new technology which obviously cuts our learning time and development cost. It simplifies the development and provides secure networks and infrastructure with less maintenance.
Additionally, Azure Blockchain service deployment can be done through the Azure portal, Azure CLI or through Visual Studio code using the Azure Blockchain extension.
Blockchain Types
There are three types of blockchain public, private and hybrid.
Public Blockchain
It is decentralized with no single authority on the network. All transactions in this type of blockchain are visible to any node on the network. The first blockchain network was created for Bitcoin which is a public blockchain.
Private Blockchain
Transaction is not visible to any node on the network. Only, if we have trust on participants, we can invite some participants to access the information stored in the blockchain. It is a semi trusted network. A consortium blockchain is a private blockchain however, authority is distributed.
Hybrid Blockchain
This is the combination of private and public where we can keep some process private and some public. In this block chain members can decide who can participate or which transaction to make public or private.
Sidechains
It is designed for ledger which runs in parallel to a primary blockchain. It is possible to link digital asset entries from primary blockchain to and from sidechain which allows sidechain to operate independent of primary blockchain.
Azure Blockchain Service tier
Azure Blockchain Service provides two service tiers which are as follows:
We can use the Basic tier for development, testing, demonstration, and proof of concepts where Standard is preferred for production deployment. We can see the differences of compute, storage, no of validation nodes, transaction nodes, Hybrid deployment support and High availability and estimated cost for Basic and Standard tier in below image.
As of now, we can see that once we create a member, we cannot change the pricing tier. So, we need to be careful during the member creation.
We can create an Azure Blockchain Service member by different method using,
- Azure Portal
- CLI
- Azure PowerShell
- ARM template
Security and Maintenance
Once we create new blockchain member we can add additional transaction nodes to this member. In Azure blockchain, transaction nodes are secured via firewall rules by default and we need to configure it for access. Moreover, transaction nodes encrypt data in motion through TLS. Access to the transaction node can be secured by using the firewall rules, basic authentication, integrating with Azure Active Directory and using access keys.
Monitoring and logging
Through Azure Monitoring service, it provides insights into nodes, CPU, memory, and storage usage information. Besides this, Azure Monitor provides insight to Blockchain network activities for a instance, transactions, block mined, transaction queue depth and active connections. Additionally, notification and alter can be send to the user regarding monitoring and logging information through an email or text message by running a Logic App and Azure function.