A while back, Microsoft announced a pair of blockchain projects, bringing distributed ledgers to Azure. Project Bletchley and the Coco Framework provide tools to build consortium-based blockchains, operating without the overhead and performance penalties of proof-of-work and proof-of-stake operations, by limiting access to a known group of participants.
Those projects are now products, part of the Azure Blockchain Workbench. Available as a set of solution templates from the Azure Marketplace, the Blockchain Workbench contains all the services and components needed to build and run your own blockchain applications. Once installed, it automatically provisions Azure Event Grid, Azure Service Bus, a SQL Database, storage accounts, key vaults, app services, VMsm, and virtual networks, as well as monitoring and management tools.
Deploying Azure Blockchain Workbench
There’s a lot there, all wrapped up as a single resource group for deployment across one or more Azure regions. You’re charged using normal Azure billing, wrapping up the costs each of the services that it uses. While development costs are likely to be low, you’ll need to keep an eye on the usage of any live blockchains you build on the service.
Setting up your Blockchain Workbench requires adding appropriate usernames for the VMs, as well as database passwords. There’s support for SSH as well as standard Windows authentication, so you can use SSH RSA keys rather than passwords to increase the security of your instance—something that’s well worth considering if you’re building a financial or trading blockchain solution, or if you’re going to be managing from a Unix system.
Once the resource group is defined, you also need to set up additional features, creating the initial proof-of-authority nodes for your application, using the Ethereum blockchain. Along with creating a new blockchain, you add it to an Azure Active Directory to control access, as well as defining the VM size you’ll use for each node and the type of storage it’ll require. This last option determines the performance of your blockchain. Using proof-of-authority ensures your blockchain will be relatively fast, because only approved entities can write to your application’s blockchain.