Microsoft has announced the first iteration of the Azure Blockchain Development Kit. The set of tools is designed specifically for developers looking to use the resources developed by the technology giant to create their own business-focused blockchain systems.
Azure Development Kit
The announcement was made by Marc Mercuri who is the Principal Program Manager of the Blockchain Engineering team at Microsoft. In a blog post, Mercuri explained that the kit is a result of years of research and is able to seamlessly integrate with Microsoft’s as well as with other third-party developed SaaS (Software-as-a-Service) systems. Moreover, the tools are based on the serverless technology that Microsoft has been centering for use in its blockchain development tools.
Microsoft has been heavily involved in the Blockchain-as-a-Service (BaaS) sector for a number of years. The technology giant has been developing blockchain-based products for use in a wide range of scenarios. These include identity management, authentication and provenance, enterprise blockchains, the financial market, and even mass communication.
From its past experience in working with businesses to create effective blockchain-based solutions, Microsoft was able to pinpoint the challenges involved in the process. As a result, its development kit is designed to address these problems and make blockchain development easier for enterprises and developers.
In his post, Mercuri explains:
“These tools have become the first step for many organizations on their journey to re-invent the way they do business. Apps have been built for everything from democratizing supply chain financing in Nigeria to securing the food supply in the UK, but as patterns emerged across use cases, our teams identified new ways for Microsoft to help developers go farther, faster.”
Microsoft identified three major capabilities that developers encountered the most significant challenges with.
The key themes that came up are the lack of effectively functioning connection interfaces as well as difficulty in integrating off-chain data and systems. The final theme that developers had challenges with was the actual deployment of smart contracts and blockchain networks.
To this end, the set of tools places a great deal of importance on providing solutions for these challenges while building further on prior work. The kit extends the capabilities of Microsoft’s blockchain developer templates as well as the Azure Blockchain Workbench.
The Azure Blockchain Workbench utilizes the server-less Azure services for the management of keys as well as off-chain identity and data. It also provides oversight capabilities, allowing for the organization of messaging APIs into a reference architecture that can be used to quickly develop and deploy blockchain-based applications.
New Developments
The development kit now includes the capability to create SMS and voice platforms through which users can interface with a blockchain network. This is an important factor for those users of enterprise blockchains who do not have access to more advanced technology but still require access to the networks. Examples include small-scale cocoa farmers in Africa who are using a blockchain-based system to manage the supply chain.
The Azure Development kit also comes with the capability to easily and effectively connect with the Internet of Things (IoT) devices as well as mobile clients, especially those that are utilized to add any necessary supportive data to a blockchain-based system.
According to the feedback Microsoft received from its past undertakings, mobile clients are an essential part of the entire operation and thus provisions need to be made to ensure the devices are able to access a network. Mercuri explains:
“Mobile clients enable logistics providers to accept and transfer responsibility for products on their journey from manufacturer to retail using the compute power that already exists in the pockets of its employees. Mobile devices also have sensors such as GPS and cameras that can add complementary data that can help attest to the what, where, and when of deliveries.”
Additionally, Microsoft found that for businesses to effectively utilize blockchain-based systems, they must also include a form of Enterprise Resource Planning (ERP).
A blockchain-based system should be approached as a simple tool through which a business can streamline its operations, increase its productivity and possibly reduce its costs. Therefore, for a DLT solution to work well, backend ERP systems, such as the commonly used Dynamics and SAP, must also be able to easily and effectively integrate. Moreover, ERP systems should also be able to interact with smart contracts in order to add and view the data contained in the blockchain-backed agreements.
In the context of blockchain-backed supply chain management systems, bots and assistants are essential to the network. These products help those interacting with the network, such as manufacturers and retailers, to easily interface with the supply chain. Thus developers should include the provisions for these services to easily access the data in the DLT network. Moreover, these services should be able to view the data in natural language as they are used by the human component of the network, to order or direct any relevant action.
Lastly, blockchain-based management systems should be able to accommodate the end consumers who typically utilize web clients to view the history of their products. Blockchain technology is being heavily employed to provide provenance, especially for edible products. Therefore, for blockchain solutions to effectively fulfill their duties they should be able to allow consumers to access the network and view the “farm-to-fork” journey for the product in question.
Mercuri explains that the Azure Development Kit is now able to support a vast array of scenarios and clients, especially as was determined through the received feedback.
“The Azure Blockchain Development Kit includes samples for all of these scenarios, including inbound and outbound SMS, IVR, IoT Hub and IoT Central, Xamarin mobile client for iOS and Android, Dynamics integration via Common Data Service (CDS), bots and assistants (Cortana, Alexa, Google Assistant) and web UX.”
Focus On Much Needed Integration
In this initial release of the developer’s kit, Microsoft is focusing on enabling the assimilation of external data to a blockchain-based system. For instance, in many business documents and media are essential types of data used to quantify and authenticate any number of processes. However, the reality is that blockchain networks cannot support the storage of these data types because they typically require a significant amount of storage space.
The usual method used by developers to add document and media to a blockchain is to generate a unique hash of the media and the metadata that describes it. These hashes are, in turn, added to a public or private chain. In the event of any required authentication, the “off chain” files can be accessed and re-hashed. If the new hash is found to be different in any way from the original hash referred to in the blockchain system, then the document is declared inauthentic. To put it another way, a document or any other data should always produce the same hash value and if the hashes do not match then tampering is obvious.
To this end, the Azure Blockchain Development Kit includes a set of Logic Apps that enable the hashing of files and file related metadata. Additionally, the kit also contains tools to create smart contracts for files as well as a file registry to store any created hashes on-chain. The Logic Apps included in the development kit support the most popular storage solutions employed by enterprises to store their documents and other data. Examples of the supported storage solutions are Azure Storage, OneDrive, One Drive for Business, SharePoint, Box, Adobe Creative Cloud, and FTP.
Connecting to Blockchain Networks
In what is being considered an important breakthrough, the Azure Blockchain Development Kit will also allow creators to connect blockchain networks to other blockchain networks. In the announcement, Mercuri stated:
“Today, we are also announcing that we will release a set of Logic App and Flow Connectors to extend these samples to ledgers like Ethereum, Corda, Bitcoin, and others.”
This development has attracted a significant amount of applause from portions of the BaaS sector as it will allow business to take their blockchain-based networks to a greater level of utility. The Ethereum connector is already ready for use and will allow developers to perform a number of actions on the Ethereum ledger. These include deploying contracts, calling contract actions, reading contract state as well as triggering other interdependent Logic Apps based on events from the ledger.
Mike Ward, the Head of Product Management at the R3 consortium expressed his excitement at the release of the development kit saying: “At R3, we are committed to ensuring developers can deploy CorDapps quickly, securely and easily. The Azure Blockchain Development Kit will give our enterprise customers tools to integrate with the applications, software, and devices that people use every day like Outlook, Alexa, SMS, and web UX. Blockchain is moving out of the labs and into everyday business applications.”
The ‘DevOps for Blockchain Smart Contracts’ Whitepaper
In addition to the development kit, Microsoft has also released a whitepaper called ‘DevOps for Blockchain Smart Contracts’. The paper is designed to provide illumination on the methodologies that developers should adhere to or consider during their origination procedures.
DevOps refers to techniques that combine software development with information technology operations. DevOps are essential to developing robust systems in a time-effective manner. The use of DevOps significantly truncates the systems’ development life cycle while simultaneously delivering the required features. This approach also effectively manages any required fixes or updates as it includes provisions for these types of actions.
Creating DevOps for the BaaS sector is an important step to standardizing the industry. While the concept of standardizing may seem like the antithesis to the decentralized nature of most blockchains, it is important for those networks designed for use in the context of businesses. Standardization, to a certain extent, will help to ensure that the important aspects are given the same considerations across the sector. Examples of these aspects include security, user permissions, as well as data management.
The ‘DevOps for Blockchain Smart Contracts’ whitepaper covers a wide range of topics and is suitable for use by those developers familiar with blockchain technology as well as those who are in the initial stages of acquiring themselves with the technology. The topics covered in the paper include key and secret management strategies, smart contract design and deployment, tooling and SaaS compatibility as well as effectively defining environments, policies, and pipelines, amongst others.
Microsoft has released the white paper with a number of resources all designed to ease the creation process for BaaS network developers. These include an implementation kit as well as visual examples of the DevOps strategies.
Microsft has focused on a server-less approach throughout its participation in the BaaS sector. Mercuri explains that is approach is informed by the need to reduce any overhead costs. These costs can add up to significant amounts and therefore represent a major barrier to entry to the sector. Thus Microsoft believes its serverless approach opens up the sector to any kind of software developer, from the individual enthusiasts to Independent Software Vendors (ISV’s) as well as their target market, the enterprises.
To conclude Mercuri explains that the deployment to the kit, the DevOps whitepaper, and the other guides are an important step in the greater Microsoft plan to expose the business community to the benefits and advantages of blockchain technology. He finishes: “The Azure Blockchain Development Kit is the next step in our journey to make developing end to end blockchain applications accessible, fast, and affordable to anyone with an idea. It is built atop our investments in blockchain and connects to the compute, data, messaging, and integration services available in both Azure and the broader Microsoft Cloud to provide a robust palette for a developer to realize their vision.”