Showing posts with label Blockchain. Show all posts
Showing posts with label Blockchain. Show all posts

Sunday, 1 March 2020

Hyperledger Fabric on Azure Kubernetes Service Marketplace template

Azure Kubernetes Service, Azure Certification, Azure Tutorial and Material, Azure Guides, Azure Prep

Customers exploring blockchain for their applications and solutions typically start with a prototype or proof of concept effort with a blockchain technology before they get to build, pilot, and production rollout. During the latter stages, apart from the ease of deployment, there is an expectation of flexibility in the configuration in terms of the number of blockchain members in the consortium, size and number of nodes and ease in management post-deployment.

We are sharing the release of a new Hyperledger Fabric on Azure Kubernetes Service marketplace template in preview. Any user with minimal knowledge of Azure or Hyperledger Fabric can now set up a blockchain consortium on Azure using this solution template by providing few basic input parameters.

This template helps the customers to deploy Hyperledger Fabric (HLF) network on Azure Kubernetes Service (AKS) clusters in a modular manner, that meets the much-required customization with regard to the choice of Microsoft Azure Virtual Machine series, number of nodes, fault-tolerance, etc. Azure Kubernetes Service provides enterprise-grade security and governance, making the deployment and management of containerized application easy. Customers anticipate leveraging the native Kubernetes tools for the management plane operations of the infrastructure and call Hyperledger Fabric APIs or Hyperledger Fabric client software development kit for the data plane workflows.

The template has various configurable parameters that make it suitable for production-grade deployment of Hyperledger Fabric network components.

Top features of Hyperledger Fabric on Azure Kubernetes Service template are:

  • Supports deployment of Hyperledger Fabric version 1.4.4 (LTS).
  • Supports deployment of orderer organization and peer nodes with the option to configure the number of nodes.
  • Supports Fabric Certificate Authority (CA) with self-signed certificates by default, and an option to upload organization-specific root certificates to initialize the Fabric CA.
  • Supports running of LevelDb and CouchDB for world state database on peer nodes.
  • Ordering service runs highly available RAFT based consensus algorithm, with an option to choose 3,5, or 7 nodes.  
  • Supports ways to configure in terms of number and size of the nodes of Azure Kubernetes Clusters.
  • Public IP exposed for each AKS cluster deployed for networking with other organizations
  • Enables you to jump start with building your network sample scripts to help post-deployment steps such as create workflows of consortiums and channels, adding peer nodes to the channel, etc.
  • Node.js application sample to support running a few native Hyperledger Fabric APIs such as new user identity generation, running custom chain code, etc.
Source: azure.microsoft.com

Monday, 1 July 2019

Azure Blockchain Workbench 1.7.0 integration with Azure Blockchain Service

We’re excited to share the release of Microsoft Azure Blockchain Workbench 1.7.0, which along with our new Azure Blockchain Service, can further enhance your blockchain development and projects. You can deploy a new instance of Blockchain Workbench through the Azure portal or upgrade your existing deployments to 1.7.0 using the upgrade script.

This update includes the following improvements:

Integration with Azure Blockchain Service


With the Azure Blockchain Service now in preview, you can develop directly with Blockchain Workbench on Azure Blockchain Service as the underlying blockchain. For those of you who have been on this blockchain journey with Microsoft, there are now templates in Azure which make it faster to configure and deploy a private blockchain network, but it’s still up to you to maintain and run your blockchain nodes, including upgrading to new versions, installing security patches, and more. Azure Blockchain Service simplifies the maintenance of the underlying blockchain network by running a fully managed blockchain node for you.

Azure BlockChain, Azure Study Materials, Azure Learning, Azure Guidesa

Blockchain Workbench helps with building the scaffolding needed on top of a blockchain network to quickly iterate and develop blockchain solutions. Workbench 1.7.0 enables you to easily deploy the Azure Blockchain Service directly with Workbench. To deploy Workbench from the Azure Marketplace, navigate to the Advanced settings blade and select Create new blockchain network under Blockchain settings.

Azure Blockchain Workbench 1.7.0 integration with Azure Blockchain Service

Selecting this option will automatically deploy an Azure Blockchain Service node for you. Note that if you rotate the primary API key on the primary transaction node on your Azure Blockchain Service, you need to change the key of the configured RPC endpoint on Blockchain Workbench. Update the Key Vault with the new key and reboot the VMs.

Enhanced compatibility with Quorum


One of the highly requested features from customers is adding compatibility for additional blockchain network protocols. In previous releases of Blockchain Workbench, the default blockchain network that is configured is an Ethereum Proof-of-Authority (PoA) blockchain network. With Blockchain Workbench 1.7.0, we have added compatibility with the Quorum blockchain network.

Thursday, 10 January 2019

Streamlined development experience with Azure Blockchain Workbench 1.6.0

We’re happy to announce the release of Azure Blockchain Workbench 1.6.0. It includes new features such as application versioning, updated messaging, and streamlined smart contract development. You can deploy a new instance of Workbench through the Azure portal or upgrade existing deployments to 1.6.0 using our upgrade script.

Please note the breaking changes section, as the removal of the WorkbenchBase base class and the changes to the outbound messaging format will require modifications to your existing applications.

This update includes the following improvements:

Application versioning


One of the most popular feature requests from you all has been that you would like to have an easy way to manage and version your Workbench applications instead of having to manually change and update your applications as you are in the development process.

We’ve continued to improve the Workbench development story with support for application versioning with 1.6.0 via the web app as well as the REST API. You can upload new versions directly from the web application by clicking “Add version.” Note that if you have any changes in the application role name, the role assignment will not be carried over to the new version.

Azure Blockchain Workbench, Azure Guides, Azure Certification, Azure Tutorial and Materials

Azure Blockchain Workbench, Azure Guides, Azure Certification, Azure Tutorial and Materials

Azure Blockchain Workbench, Azure Guides, Azure Certification, Azure Tutorial and Materials

You can also view the application version history. To view and access older versions, select the application and click “version history” in the command bar. Note, that as of now by default older versions are read only. If you would like to interact with older versions, you can explicitly enable the previous versions.

Azure Blockchain Workbench, Azure Guides, Azure Certification, Azure Tutorial and Materials

Azure Blockchain Workbench, Azure Guides, Azure Certification, Azure Tutorial and Materials

New egress messaging API


Workbench provides many integration and extension points, including via a REST API and a messaging API. The REST API provides developers a way to integrate to blockchain applications. The messaging API is designed for system to system integrations.

In our previous release, we enabled more scenarios with a new input messaging API. In 1.6.0, we have implemented an enhanced and updated output messaging API which publishes blockchain events via Azure Event Grid and Azure Service Bus. This enables downstream consumers to take actions based on these events and messages such as, sending email notifications when there are updates on relevant contracts on the blockchain, or triggering events in existing enterprise resource planning (ERP) systems.

Azure Blockchain Workbench, Azure Guides, Azure Certification, Azure Tutorial and Materials

Here is an example of a contract information message with the new output messaging API. You’ll get the information about the block, a list of modifying transactions for the contract, as well as information about the contract itself such as contract ID and contract properties. You also get information on whether or not the contract was newly created or if a contract update occurred.

{
     "blockId": 123,
     "blockhash": "0x03a39411e25e25b47d0ec6433b73b488554a4a5f6b1a253e0ac8a200d13f70e3",
     "modifyingTransactions": [
         {
             "transactionId": 234,
             "transactionHash": "0x5c1fddea83bf19d719e52a935ec8620437a0a6bdaa00ecb7c3d852cf92e18bdd",
             "from": "0xd85e7262dd96f3b8a48a8aaf3dcdda90f60dadb1",
             "to": "0xf8559473b3c7197d59212b401f5a9f07b4299e29"
         },
         {
             "transactionId": 235,
             "transactionHash": "0xa4d9c95b581f299e41b8cc193dd742ef5a1d3a4ddf97bd11b80d123fec27506e",
             "from": "0xd85e7262dd96f3b8a48a8aaf3dcdda90f60dadb1",
             "to": "0xf8559473b3c7197d59212b401f5a9f07b4299e29"
         }
     ],
     "contractId": 111,
     "contractLedgerIdentifier": "0xf8559473b3c7197d59212b401f5a9f07b4299e29",
     "contractProperties": [
         {
             "workflowPropertyId": 1,
             "name": "State",
             "value": "0"
         },
         {
             "workflowPropertyId": 2,
             "name": "Description",
             "value": "1969 Dodge Charger"
         },
         {
             "workflowPropertyId": 3,
             "name": "AskingPrice",
             "value": "30000"
         },
         {
             "workflowPropertyId": 4,
             "name": "OfferPrice",
             "value": "0"
         },
         {
             "workflowPropertyId": 5,
             "name": "InstanceOwner",
             "value": "0x9a8DDaCa9B7488683A4d62d0817E965E8f248398"
         },
     ],
     "isNewContract": false,
     "connectionId": 1,
     "messageSchemaVersion": "1.0.0",
     "messageName": "ContractMessage",
     "additionalInformation": {}
}

WorkbenchBase class is no longer needed in contract code


For customers who have been using Workbench, you will know that there is a specific class that you need to include in your contract code, called WorkbenchBase. This class enabled Workbench to create and update your specified contract. When developing custom Workbench applications, you would also have to call functions defined in the WorkbenchBase class to notify Workbench that a contract had been created or updated.

With 1.6.0, this code serving the same purpose as WorkbenchBase will now be autogenerated for you when you upload your contract code. You will now have a more simplified experience when developing custom Workbench applications and will no longer have bugs or validation errors related to using WorkbenchBase. See our updated samples, which have WorkbenchBase removed.

This means that you no longer need to include the WorkbenchBase class nor any of the contract update and contract created functions defined in the class. To update your older Workbench applications to support this new version, you will need to change a few items in your contract code files:

◈ Remove the WorkbenchBase class.
◈ Remove calls to functions defined in the WorkbenchBase class (ContractCreated and ContractUpdated).

If you upload an application with WorkbenchBase included, you will get a validation error and will not be able to successfully upload until it is removed. For customers upgrading to 1.6.0 from an earlier version, your existing Workbench applications will be upgraded automatically for you. Once you start uploading new versions, they will need to be in the 1.6.0 format.

Get available updates directly from within Workbench


Whenever a Workbench update is released, we announce the updates via the Azure blog and post release notes in our GitHub. If you’re not actively monitoring these announcements, it can be difficult to figure out whether or not you are on the latest version of Workbench. You might be running into issues while developing which have already been fixed by our team with the latest release.

We have now added the capability to view information for the latest updates directly within the Workbench UI. If there is an update available, you will be able to view the changes available in the newest release and update directly from the UI.

Azure Blockchain Workbench, Azure Guides, Azure Certification, Azure Tutorial and Materials

Breaking changes in 1.6.0


◈ WorkbenchBase related code generation: Before 1.6.0, the WorkbenchBase class was needed because it defined events indicating creation and update of Blockchain Workbench contracts. With this change, you no longer need to include it in your contract code file, as Workbench will automatically generate the code for you. Note that contracts containing WorkbenchBase in the Solidity code will be rejected when uploaded.

◈ Updated outbound messaging API: Workbench has a messaging API for system to system integrations. We have had an outbound messaging API which has been redesigned. The new schema will impact the existing integration work you have done with the current messaging API. If you want to use the new messaging API you will need to update your integration specific code.

- The name of the service bus queues and topics has been changed in this release. Any code that points to the service bus will need to be updated to work with Workbench version 1.6.0.
- ingressQueue - the input queue on which request messages arrive.
- egressTopic - the output queue on which update and information messages are sent.
- The messages delivered in version 1.6.0 are in a different format. Existing code that interrogates the messages from the messaging API and takes action based on its content will need to be updated.
◈ Workbench application sample updates: All Workbench applications sample code are updated since we no longer need the WorkbenchBase class in contract code. If you are on an older version of Workbench and use the samples on GitHub, or vice versa, you will see errors. Upgrade to the latest version of Workbench if you want to use samples.

Friday, 16 November 2018

Introducing the Azure Blockchain Development Kit

“Developers! Developers! Developers!” That phrase is synonymous with Microsoft’s history of democratizing complex technologies and empowering anyone with an idea to build software.

Over four decades, we’ve lowered barriers to development with developer tooling, enterprise integration, DevOps, PaaS, and SaaS. Today, serverless offerings from Functions and Logic Apps to Azure DevOps and IoT Central remove friction for development in the cloud.

This morning, we’re excited to announce the initial release of the Azure Blockchain Development Kit which is built on Microsoft’s serverless technologies and seamlessly integrates blockchain with the best of Microsoft and third-party SaaS.

This kit extends the capabilities of our blockchain developer templates and Azure Blockchain Workbench, which incorporates Azure services for key management, off-chain identity and data, monitoring, and messaging APIs into a reference architecture that can be used to rapidly build blockchain-based applications.

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.

This initial release prioritizes capabilities related to three key themes: connecting interfaces, integrating data and systems, and deploying smart contracts and blockchain networks.

Connect


To deliver end to end blockchain solutions for consortiums, developers need to enable organizations, people, and devices to connect to the blockchain and do it from a heterogenous set of user interfaces.

Take for example an end to end supply chain for a commodity such as cocoa.

◈ SMS and voice interfaces enable small hold farmers in Africa to transact and track their goods at the first mile of the supply chain.
◈ Internet of Things (IoT) devices deliver sensor data to track the conditions of the goods at different points in their journey to market – tracking the humidity in the containers where the beans are held to the temperature of the end product of ice cream that it is incorporated into.
◈ 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.
◈ Backend Systems and Data in the form of ERP systems such as Dynamics and SAP are used to manage core processes for different participants. These systems also become clients via extension and need to interact with smart contracts to provide and receive attestable data on behalf of an organization.
◈ Bots and assistants enable manufacturers and retailers to interact with the supply chain. This includes interacting with smart contracts for orders and provenance using natural language and using attestable data from the blockchain to direct actions taken on behalf of a user.
◈ Web clients enable end consumers to query the origin of the product purchased at retail, typically a mix of provenance and story of their journey of their product from “farm to fork”
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.

Integrate


Businesses are using blockchain and smart contracts to facilitate multi-party processes. Blockchain also delivers real-time transparency of the states and events of those contracts to appropriate participants.

End to end blockchain solutions require integration with data, software, and media that live “off chain”. External updates and events can trigger actions on smart contracts. Smart contract events and state changes can then trigger actions and data updates to “off chain” systems and data. These external systems and AI will also need the ability to query attestable data from smart contracts to inform action.

Specifically, there are two areas of integration where guidance is most needed:

Documents and Media: Documents and media do not belong on chain, but business processes often involve images, videos, audio, Office documents, CAD files for 3D printers or other file types.

The common pattern is to generate a unique hash of the media and the metadata that describes it. Those hashes are then placed on a public or private chain. If authenticity of a file is ever questioned, the “off chain” files can be re-hashed at a later time and that hash is compared to the “on chain” hash stored on the blockchain. If the hashes match, the document is authentic, but if so much as a pixel of an image or letter in a document is changed, the hashes will not match and this will make obvious that tampering has occurred.

Today we’re releasing a set of Logic Apps that enable the hashing of files and file related metadata. Also included are smart contracts for files and a file registry to store the hashes on chain.

Logic Apps have been created to deliver this functionality for files added to the most popular sources for documents and media, including Azure Storage, OneDrive, One Drive for Business, SharePoint, Box, Adobe Creative Cloud, and FTP.

Azure Blockchain Development Kit, Azure Certification, Azure Tutorial and Materials, Azure Learning

Smart Contract Interaction: Getting blockchain off the whiteboard and into production means dealing with the realities of how counterparties interact today. That reality is that Enterprise integration is messy.

Microsoft brings our decades of experience in this area to blockchain. Our work with integrating Enterprise systems began almost two decades ago with the introduction of BizTalk server, and our focus on database integration traces back to our co-development of Open Database Connectivity (ODBC) in the 1990s. All of our experience has been captured and made available in Azure services. This includes 200+ connectors available in Logic Apps and Flow, and the robust capabilities in our data platform.

Azure Blockchain Development Kit, Azure Certification, Azure Tutorial and Materials, Azure Learning

The Blockchain Application Development Kit includes Workbench integration samples in the following areas:

◈ Legacy applications and protocols – Sending and receiving files via FTP, processing comma separated files and email delivery of data.
◈ Data – SQL, Azure Search, Excel, and PowerBI.
◈ SaaS –  SharePoint, Dynamics, Outlook, and Gmail.
◈ Registries – An accelerator that generates a custom registry and registry item smart contracts to accommodate any scenario.

Logic App Connectors for Blockchain


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.

"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.”

– Mike Ward, Head of Product Management, R3

The Ethereum blockchain connector is available today and enables users to deploy contracts, call contract actions, read contract state and trigger other Logic Apps based on events from the ledger.

Azure Blockchain Development Kit, Azure Certification, Azure Tutorial and Materials, Azure Learning

Deploy

With the mainstreaming of blockchain technology in enterprise software development, organizations are asking for guidance on how to deliver DevOps for smart contracts and blockchain projects.

Common questions include:

◈ My business logic and data schema for that logic is reflected in smart contracts. Smart contracts are written in languages I’m less familiar with like Solidity for Ethereum, and Kotlin for Corda, or Go for Hyperledger Fabric.  What tools can I use to develop those in?

◈ How do I do unit testing and debugging on smart contracts?

◈ Many blockchain scenarios reflect multi-party transactions and business workflows. These workflows include signed transactions from multiple parties happening in specific sequences. How do I think about data for test environments in that context?

◈ Smart contracts are deployed to the blockchain, which is immutable. How do I need to think about things such as infrastructure as code, local dev/test, upgrading contracts, etc.?

◈ Blockchain is a data technology shared across multiple organizations in a consortium, what are the impacts on source code control, build and release pipelines in a global, multi-party environment?

While there are some nuances to the approach, the good news is that just like other types of solution development, this model can readily be addressed in a DevOps model.

Azure Blockchain Development Kit, Azure Certification, Azure Tutorial and Materials, Azure Learning

“We're excited to work with Microsoft to create the canonical DevOps experience for blockchain engineers. Our paper, ‘DevOps for Blockchain Smart Contracts’, goes into rigorous detail and provides examples on how to develop blockchain applications with an eye toward CI/CD in consortium environments.”

- Tim Coulter, Founder of Truffle

Complementing the whitepaper is an implementation guide, available through the Azure Blockchain Development Kit, that shows how to implement CI/CD for smart contracts and infrastructure as code using Visual Studio Code, GitHub, Azure DevOps and OSS from Truffle.

A great platform for blockchain application development

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.

Logic Apps and Flow deliver a graphical design environment with more than 200 connectors dramatically simplifying the development of end to end blockchain solutions, and Azure Functions enable the rapid integration of custom code.

A serverless approach also reduces costs and management overhead. With no VMs to manage, built-in scalability, and an approachable pricing model the Azure Blockchain Development Kit is within reach of every developer – from enthusiasts to ISVs to enterprises.

Solutions are written using online visual workflow designers and Visual Studio Code, a free download that provides an integrated development environment on Windows, Mac, and Linux.

The resulting applications will run atop a network that has higher rated cloud performance than other large-scale providers and enable federating identities between participants using Azure Active Directory. With Azure, those applications can be deployed to more regions than any other cloud provider and benefit from more certifications.

We look forward to seeing what you’ll build, and we’ll continue to both listen and look for ways to help as we build a decentralized future together.

Wednesday, 17 October 2018

Accessibility and array support with Azure Blockchain Workbench 1.4.0

We’ve been very grateful for the feedback you’ve given us since we first introduced Azure Blockchain Workbench in public preview a few months ago. Your feedback continues to be an essential and impactful part of our work. For this release, we focused on making Workbench more accessible for everyone. Accessibility is a key pillar in our vision of empowering every person and every organization to achieve more. We are excited to share some of the improvements we’ve made with accessibility in mind.

To use 1.4, you can either deploy a new instance of Workbench through the Azure Portal or upgrade your existing deployment to 1.4.0 using our upgrade script. This update includes the following improvements:

Better accessibility for screen readers and keyboard navigation


Azure Blockchain Workbench is far more than UI within client apps. Workbench provides a rich developer scaffold for you to develop and integrate blockchain solutions within your enterprise.

Azure Blockchain, Azure Certification, Azure Tutorial and Materials, Azure Guides

The Web client gives you an easy to use the environment to validate, test, and view blockchain applications. The application interface is dynamically generated based on smart contract metadata and can accommodate any use case. The client application delivers a user-facing front-end to the complete blockchain applications generated by Blockchain Workbench.

With version 1.4.0, the Web client now fully supports screen readers in terms of navigation and reading information. In addition, we updated the Web client to better support keyboard shortcuts and navigation. We hope these improvements can make you more productive when creating blockchain applications in Workbench.

Customization of smart contract table columns


Workbench dynamically creates Web client UI based on your smart contracts and application configuration. Workbench summarizes smart contract instances as a table in the Web client based on the properties specified in the application configuration. Depending on the blockchain scenario, developers may specify a lot of properties for any given application. Unfortunately, if any properties are specified, the smart contract table within the Web client UI will become hard to read due to the size and number of columns of the table, see the below image.

Azure Blockchain, Azure Certification, Azure Tutorial and Materials, Azure Guides

In some cases, properties may be more useful from a reporting perspective rather than a user experience perspective. To help with the readability of the smart contract tables, we’ve introduced a new feature, which allows users to customize the smart contract table in terms of visible columns and order of columns.

Below is a screenshot of the customized table pane, which allows each user to toggle the visibility of table columns as well as adjust the ordering of columns within the table.

Azure Blockchain, Azure Certification, Azure Tutorial and Materials, Azure Guides

The smart contract table view will reflect all changes applied via the customize table pane.

Azure Blockchain, Azure Certification, Azure Tutorial and Materials, Azure Guides

New supported datatype – Arrays


With 1.4.0, we now support array datatypes as part of constructor and function parameters as well as smart contract properties. Arrays allow you to create blockchain apps where you can input and represent a strongly typed list of content, such as a list of numbers or values.

Workbench currently supports static and dynamic arrays of integers, booleans, money, and time. Workbench does not yet support an array of enums or array of arrays, including strings. Note, for string support we’re waiting for Solidity functionality to get out of preview. Let us know if these limitations are blockers for you.

The array type is specified via the configuration file as follows:

"Properties": [
{
   {
            "Name": "PropertyType",
            "DisplayName": "Property Type",
            "Type": {
            "Name": "array",
                "ElementType": {
                     "Name": "int"
                }
             }
      }
},

There is a limitation is solidity when it comes to public properties related to arrays. If you have a public state variable of an array type, Solidity only allows you to retrieve single elements of the array with auto-generated getter functions. To work around this limitation, you will need to provide an appropriate function to return arrays. For example:

function GetPropertyTypes() public constant returns (int[]) {
         return PropertyType;
}

If this function is not part of your Solidity code, we will show an error when uploading your blockchain application.

Support for strings up to 4k characters


One of the limitations in Workbench is the data type strings can only be 256 characters. We’ve received feedback from folks who wanted us to increase the limit. With 1.4.0, the new limit is 4,000 characters. Note, using more characters will result in using more gas when processing transactions. When building your smart contracts, please be aware of the block gas limit and build your smart contracts with that limit in mind.

Azure Blockchain, Azure Certification, Azure Tutorial and Materials, Azure Guides

Azure Blockchain, Azure Certification, Azure Tutorial and Materials, Azure Guides

Wednesday, 10 October 2018

Improved governance experience with Ethereum Proof-of-Authority 1.2

Since launching Ethereum Proof-of-Authority we've received great feedback and have learned more about the ways our customers have leveraged this solution to roll out their Blockchain applications. We’ve rolled out a number of features that improve user-experience, configuration, and deployment reliability.

Governance DApp


This update comes with a new governance experience that makes consortium management more intuitive.

The Governance DApp is used for admin management and validator delegation. Each admin can select a set of validators which will propose blocks within PoA consensus. Admins also have the power to vote either to add or remove other admins. This form of on-chain governance helps decentralize the power of network operation and provides a familiar mechanism to maintaining a healthy network over time.

Azure Tutorials and Material, Azure Learning, Azure Certification, Azure Guides

Azure Tutorials and Material, Azure Learning, Azure Certification, Azure Guides

Please note, that this new UI will not be compatible with previously deployed networks of Proof-of-Authority (PoA).

WebSocket support


We’ve added WebSocket support to make it easy to subscribe to events directly or connect to external tools and applications such as BlockScout, an open-source block explorer. You can locate the WebSocket endpoint as part of the deployment output or post-deployment email.

Azure Tutorials and Material, Azure Learning, Azure Certification, Azure Guides

BlockScout block explorer


We have also put together a new deployment guide with instructions on how to setup BlockScout with a new Proof-of-Authority deployment. BlockScout allows you to have a transparent view into the blockchain. You can easily search by the transaction, user address, contact address, and block number.

Azure Tutorials and Material, Azure Learning, Azure Certification, Azure Guides

Just-In-Time (JIT) VM Access and Azure Backup Support


With production readiness in mind, we’ve enabled support for JIT VM access and Azure Backup Support. JIT VM Access allows you to reduce the potential for attacks by tightly controlling how members within your organization procure access to the VM. Azure Backup provides the ability to create scheduled backups of your VM hard drives. This presents an easy way to handle disaster recovery and prevent loss of critical on-chain data.

VM SKU selection


We’ve performed extensive performance testing on the network and have tuned the VM selection to provide clearer options and documentation, to make it more intuitive when selecting the right VM SKU.

More configuration options


Before deployment, you can now specify the starting block gas limit and block reseal time. Block gas limit will influence the size of each block, while the block reseals time will control how frequently blocks are generated in the case of empty transactions. A high block reseals time will decrease the disk consumption rate but will affect block finality in networks that have sparse transaction throughput.

Azure Tutorials and Material, Azure Learning, Azure Certification, Azure Guides

Improved reliability


The ARM template will perform additional validation after each deployment to ensure that the network has started up correctly. Additionally, Azure Monitor deployment reliability has been improved by deploying the Azure Monitor components in series.

Thursday, 30 August 2018

Multi-member consortium support with Azure Blockchain Workbench 1.3.0

Continuing our monthly release cadence for Azure Blockchain Workbench, we’re excited to announce the availability of version 1.3.0. You can either deploy a new instance of Workbench through the Azure Portal or upgrade your existing deployment to 1.3.0 using our upgrade script.

This update includes the following improvements:

Faster and more reliable deployment


We look at telemetry every day to identify issues that affect our customers, and as a result made some changes to make deploying Workbench not only more reliable, but faster as well.

Better transaction reliability


Continuing from the monitoring improvements we made as part of 1.1.0, we’ve made reliability improvements to the DLT Watcher and DLT Consumer microservices. Practically speaking, you’ll notice fewer errors saying, “It looks like something went wrong …”

Ability to deploy Workbench in a multi-member Ethereum PoA consortium


With release 1.2.0 you could deploy Workbench and connect that deployment to an existing Ethereum-based network. This past week we announced the availability of a new standalone Ethereum PoA solution, which can be deployed across members within a consortium. With these two updates, you can deploy Workbench in three different configurations:

1. Single-Member System: The default configuration of Workbench, where Workbench is deployed in a blockchain network with only one member.

Azure Blockchain, Azure Certification, Azure Guides, Azure Learning, Azure Study Materials

2. Multi-Member System Deployed in One Member’s Subscription: You can use the new multi-member PoA consortium solution to deploy a blockchain network across several members. The, you can deploy Workbench in one member’s subscription. Everyone who wants to use Workbench will go through the one member’s Workbench deployment. This topology can be useful for PoCs and initial pilot deployments.

Azure Blockchain, Azure Certification, Azure Guides, Azure Learning, Azure Study Materials

3. Multi-Member System Deployed in One Shared Subscription: This configuration is similar to the topology described above, except that Workbench is deployed in a shared subscription. Think of this shared subscription as the operator subscription for the consortium.

Azure Blockchain, Azure Certification, Azure Guides, Azure Learning, Azure Study Materials

We are investigating other topologies, such as one where Workbench is deployed into each subscription.

Simpler pre-deployment script for AAD


We know going through Workbench deployment instructions can feel like a lot of work, especially setting up AAD and registering an app for the Workbench API. To make things easier, we’ve created a new PowerShell script, which automates most of the AAD setup steps and outputs the parameters you need for Workbench deployment.

Azure Blockchain, Azure Certification, Azure Guides, Azure Learning, Azure Study Materials

Sample code and tool for working with the Workbench API


Some of you have asked for more sample code and tools related to generating authentication bearer tokens for Workbench API. We’re excited to announce a new tool, which you can use to generate tokens for your Workbench instance. Source code is also available and can be used to create your own client authentication experience. Try it out by cloning the repo, running the Web page, and plugging in your Application Id.

Thursday, 2 August 2018

Top feature requests added with Azure Blockchain Workbench 1.2.0

This update includes the following improvements:

Enable/disable apps


Many of you have started to iterate and create multiple blockchain apps using Workbench. One of the most requested features we’ve heard is the ability to disable unused blockchain apps within the Workbench Web app. With 1.2.0, you will be able to enable or disable applications. In addition, the UI will allow you to filter the list of applications to only show enabled or disabled applications.

Azure Certification, Azure Guides, Azure Learning, Azure Certification, Azure Study Materials

Azure Certification, Azure Guides, Azure Learning, Azure Certification, Azure Study Materials

BYOB – Bring Your Own Blockchain


As part of the Workbench deployment, we deploy a set of Ethereum Proof-of Authority (PoA) nodes within a single member’s subscription. This topology works great for situations where it’s OK to have one member manage all the blockchain nodes. With version 1.2.0 customers will have the choice to deploy Workbench and point that deployment to an existing Ethereum PoA network. The topology of the network can be anything you want, including a multi-member blockchain network. The network can exist anywhere, which means the network can be on prem, a hybrid deployment, or even on another cloud. The requirements are:

◈ The endpoint must be an Ethereum Proof-of-Authority (PoA) blockchain network. Coming soon will be a new standalone Ethereum PoA solution, which can be used across members within a consortium.
◈ The endpoint must be publicly accessible over the network.
◈ The PoA blockchain network should be configured to have gas price set to zero (note, Workbench accounts are not funded, so if funds are required, transactions will fail).

The interface that allows connecting to an existing network is shown below.

Azure Certification, Azure Guides, Azure Learning, Azure Certification, Azure Study Materials

Azure Certification, Azure Guides, Azure Learning, Azure Certification, Azure Study Materials

Note that we have only tested Workbench against a PoA network and while other protocols may work, we cannot provide support for them at this time. We plan to release a PoA single/multi-member solution template similar to our Proof-of-Work solution template in the Azure Marketplace soon and that will be compatible with BYOB.

New supported datatype – Enum


Workbench supports several basic datatypes, such as strings and integers. With 1.2.0, we now support a the enum datatype. Enums will allow you to create blockchain apps where you can narrow selection for certain fields to a specific list. The Workbench Web app UI will show enums as a dropdown list of single-select options. The enum type is specified via the configuration file as follows:
         {
           "Name": "PropertyType",
           "DisplayName": "Property Type",
           "Description": "The type of the property",
           "Type": {
             "Name": "enum",
             "EnumValues": ["House", "Townhouse", "Condo", "Land"]
           }
         }

This configuration corresponds to the code within the smart contract. For example:

         enum PropertyTypeEnum {House, Townhouse, Condo, Land}
         PropertyTypeEnum public PropertyType;

In the Web app, you will see the following dropdown UI:

Azure Certification, Azure Guides, Azure Learning, Azure Certification, Azure Study Materials

Better visibility into Workbench application deployment errors


To make it easier to deploy a working Workbench application, we will show solidity warnings. These warnings don’t necessarily mean you have bugs, which need to be fixed. Instead, warnings indicate potential errors you might encounter when running your application.

Azure Certification, Azure Guides, Azure Learning, Azure Certification, Azure Study Materials

Improvements and bug fixes


We also made several other improvements to Workbench, including:

◈ The Workbench frontend and backend now fully works with more than 100 provisioned users. You will be able to connect to Azure Active Directories with more than 100 users and the Workbench client allows you to search and add users within large directories.

◈ Deployment of Workbench is more reliable as we’ve addressed the top failure cases, such as database initialization and naming conflicts. 

◈ Performance of the Workbench REST API has been improved by moving App Service plan to Premium V2. The higher end CPU will result in better overall performance. Note, there is no change in cost from moving to this plan.

Saturday, 21 July 2018

Blockchain as a tool for anti-fraud

Healthcare costs are skyrocketing. In 2016, healthcare costs in the US are estimated at nearly 18 percent of the GDP! Healthcare is becoming less affordable worldwide, and a serious chasm is widening between those that can afford healthcare and those that cannot. There are many factors driving the high cost of healthcare, one of them is fraud. In healthcare, there are several types of fraud including prescription fraud, medical identity fraud, financial fraud, and occupational fraud. The National Health Care Anti-Fraud Association estimates conservatively that health care fraud costs the US about $68 billion annually, which is about three percent of the US total $2.26 trillion in overall healthcare spending. There are two root vulnerabilities in healthcare organizations: insufficient protection of data integrity, and a lack of transparency.

Azure Blockchain, Azure Learning, Azure Tutorial and Material, Azure Guides, Azure Certifications

Insufficient protection of data integrity enables fraudulent modification of records


Cybersecurity involves safeguarding the confidentiality, availability, and integrity of data. Often cybersecurity is mistakenly equated with protecting just the confidentiality of data to prevent unauthorized access. However, equally important is protecting the availability of data. That is, you must secure timely and reliable access to data, as well as the integrity of the data. You must ensure records are accurate, complete, and up-to-date. Protecting the integrity of information is particularly important for anti-fraud. Insufficient protection paves the way for the alteration or deletion of records for personal gain.

Insufficient transparency enables fraud to proceed undetected


Many types of fraud involve the creation of new fraudulent records. This can occur within a single organization and many times even within just a single system or silo within a healthcare organization. When this happens with limited access and visibility, then it is easier for fraudsters to conceal their activity. They can conduct fraudulent activities for longer before detection. The longer fraud proceeds undetected, the larger the business impact and cost.

Blockchain immutability protects the integrity of records


Chained hashcodes on blockchains make it practically impossible to alter or delete records on the blockchain. Furthermore, records on blockchains can also include pointers to off-chain data. Together with hashcodes, the pointers can be used to verify the integrity of such off-chain data. And that enables blockchains also to protect the integrity of off-chain data. Protecting the integrity of both on and off-chain records essentially blocks the fraudulent deletion or alteration of records for personal gain.

Blockchain transparency enables improved detection of fraud


Blockchains provide near real-time transparency of electronic records appended to the blockchain. These new records are visible across the consortium of healthcare organizations connected to the blockchain. This improves the ability of such consortiums to detect fraudulent records. The mere presence of such transparency and the prospect of detection alone will significantly deter fraud. And once such fraud is discovered, organizations can stop, remediate losses, and minimize business impacts and costs.

Blockchain advancing artificial intelligence for anti-fraud


Artificial Intelligence (AI) and Machine Learning (ML) have significant potential as tools for anti-fraud. They enable anti-fraud teams to process vast quantities of data in near real-time and detect fraudulent patterns that can then be investigated further by a team of anti-fraud experts. As new patterns of fraud are identified, new AI/ML models can be built and integrated into future anti-fraud inference suites, enabling a high degree of automation in anti-fraud. However, AI/ML are very data hungry. When they are powered by data from a single organization and often only a single silo of data within that organization, this stunts the quality of the models that can be built. Further, the quality of inference that can be done using such stunted models often results in a high inference error rate making many anti-fraud use cases infeasible. Blockchains enable collaboration on AI/ML for anti-fraud across a consortium of healthcare organizations. This allows collaboration on training data, the creation of shared models, inference results, and the validation of those results. As discussed in Accelerating AI and ML in Healthcare Using Blockchain.

Getting started with Blockchain


If you would like to get started with prototyping a blockchain for your anti-fraud initiative. The workbench is a powerful platform for rapid prototyping of your blockchain. Once created, you can also deploy it as an Ethereum Blockchain on the Microsoft Azure cloud. The Azure Blockchain Workbench will also be adding support for both the Hyperledger Fabric and R3 Corda Blockchain platforms going forward. The Azure Blockchain Workbench enables you to accelerate your prototyping, technical POCs and pilots, enabling you to focus on anti-fraud results, and business value rather than blockchain technologies and deployment complexities.

Getting started with AI


Bootstrap your AI anti-fraud initiative with the Azure Security and Compliance Blueprint - HIPAA/HITRUST Health Data and AI. Rather than starting from scratch, you can accelerate your AI initiative by downloading, configuring, running, and customizing this AI blueprint for your anti-fraud use case. This blueprint also provides a wealth of information on how to protect the privacy, security, and compliance of your cloud-based AI solution.

Collaboration


I post regularly about new developments in healthcare, anti-fraud, AI, blockchain, and cloud computing on social media.

Wednesday, 10 January 2018

Accelerating the adoption of enterprise blockchain

We have had the pleasure of working with several customers on their business initiatives related to blockchain's technology. During this time, we have been helping them to envision business scenarios, choose the right blockchain protocols and distributed ledgers, and most importantly, develop pilots focused on validating the technology capabilities to provide real value to their organizations.

When to use blockchain?


From the technical perspective, we could apply blockchain to many scenarios. However, not every situation requires blockchain, but there are some scenarios where it creates significant value compared to alternative technologies. Usually, these are shared business processes, with the organization in different industries such as financial services, manufacturing, or retail.

The recommendation to recognize blockchain scenarios is to make sure you are using the core capabilities of blockchain. You should respond positively to four key questions (see below), and there should be a real business case with measurable outcomes. If this is not the case, please consider using other more mature technologies.

Blockchain capabilities

The blockchain is one of the top emerging technologies revolutionizing today’s business models. Fundamentally, blockchain enables participants to exchange value without the need for intermediaries.

Microsoft Tutorials and Materials, Microsoft Guides, Microsoft Certifications

But what is blockchain exactly? And what capabilities make it so attractive for enterprises? The blockchain is a disruptive technology trend that enables a shared, authentic, decentralized ledger:

◈ SECURE: Blockchain uses strong cryptography to create transactions that are impervious to fraud and establishes a shared truth. Also, all the transactions are signed with the digital certificate.
◈ SHARED: The real benefits of blockchain, over conventional technology, are achieved when we use it to link organizations to share information on a distributed ledger.
◈ DISTRIBUTED: A blockchain can be distributed across multiple organizations and becomes more secure as replicas are added.
◈ LEDGER: Every transaction is written into the ledger once and cannot be changed after the fact.

Questions to be answered before developing a blockchain solution


Answering the following four questions can determine if blockchain is appropriate for the identified business scenario.

◈ Do multiple parties share data?
◈ Do multiple parties update data?
◈ Is there a requirement for verification?
◈ Can intermediaries be removed and reduce cost and complexity?

If you answered yes to all of these questions, then you have a potential scenario to apply blockchain.

Public blockchain vs. enterprise blockchain


A public blockchain (i.e., Bitcoin or Ethereum) is an Internet protocol managing the distribution of potential unique data with the following characteristics:

◈ Many, anonymous, or pseudonymous participants
◈ Open read and write by all participants
◈ Consensus by proof of work

Too often organizations fail with blockchain because they try to use public blockchain networks, or their rules, for their enterprise solutions. Instead, the organization should consider the use of Enterprise Blockchain.

What do we mean with enterprise blockchain? An enterprise blockchain (i.e., Hyperlegder, Ethereum Enterprise, Ripple, Quorum, etc.) is a distributed ledger with the following characteristics:

◈ All the participants, and their digital identities, are known from one or many trusted organizations
◈ Writes and read permissions are roles-based and usually requires consensus of several participants
◈ Multiple algorithms are used for consensus

You should know that we have two types of enterprise blockchain:

◈ Private: Usually managed by a single organization. Typically, the network participants are internal business units or divisions. 
◈ Consortium: In this case, the blockchain network is managed by multiple trusted organizations. New participants require a consensus of several participants.

Industries using blockchain


The potential impact of blockchain is significant across all sectors and industries—from banking to government to healthcare and beyond:

◈ Eliminates intermediaries increasing efficiency and speed.
◈ Simplifies operations by reducing cost and time related to reconciliations and disputes.
◈ Potentially enables new business models increasing revenue and savings.

According to top market analysts and leading consulting firms, the top five industries that blockchain will likely disrupt by 2020 are financial services, government, real estate, supply chain management, and media distribution.

Reviewing our historical data, we also see that close to 80% of the customers using blockchain in Microsoft Azure are also financial services institutions, including insurance companies. However, as you can see in the following figure, the trend is changing if we just consider the existing engagement and pipeline.

Microsoft Tutorials and Materials, Microsoft Guides, Microsoft Certifications

On the other hand, double checking the solutions related to banking & capital markets, we had discovered that 60% of the blockchain implementations involved at least one participant from a second industry such as manufacturing, government, or retail. 

Common business patterns 


Just in the last 12 months, we were able to count 76 scenarios across seven industries. The good news is that based on our engagements with customers and partners, we also were able to reduce them in the following eight business patterns.

Microsoft Tutorials and Materials, Microsoft Guides, Microsoft Certifications

By exploring business patterns, our customers can now learn how blockchain can promote operational simplification, reduce the role of intermediaries, and potentially enable new business models. For each pattern, we provide an overview of our common needs and challenges, the potential benefits from applying blockchain, key near-term milestones for initial blockchain applications, and an use case sequence diagram. Using this approach is helping us to define reference architectures, and developing IP to reduce the time-to-market of blockchain solutions.

As an illustrated example, below I’m sharing current blockchain applications and some public references:

◈ Bank of America and Microsoft Treasury using Blockchain in a Trade Finance scenario to improve the process of issuing a Standby Letter of Credit to a customer (SBLC) to a customer. The process has been reduced from 3-5 weeks to just 3-5 days.
◈ Renault Group is working together with Microsoft and VISEO to create the first digital car maintenance book based on Blockchain and using Microsoft Azure capabilities.
◈ Large food manufacturers and distributors are using blockchain to track their premium products journey from source to consumption efficiently, and to have a shared ledger as the single source of truth.

Recommended engagement model


Based on our previous engagements, our experience delivering innovative projects and using our agile approach, we are now ready to help customers understand the potential impact of blockchain technology on their industries, as well as determine whether it is capable of delivering both cost efficiencies and competitive advantage for them.

Microsoft Services provides offers to help our customers have an improved understanding of blockchain, explore the potential of this technology through business scenarios and implement a Minimum Viable Product (MVP) based on Microsoft Azure.

Microsoft Tutorials and Materials, Microsoft Guides, Microsoft Certifications

Supported protocols


To finish, let us share our answer to the most frequently asked questions by our customers. Does Microsoft have its own blockchain ledger? The answer is NO.

Microsoft has been working on blockchain since November 2015 when we were the first major cloud provider to announce a Blockchain as a Service (BaaS). Our vision is to be the worldwide cloud platform leader powering the blockchain-based applications.

Microsoft is working with customers, partners, and the developer community to accelerate blockchain’s enterprise readiness. Our mission is to help companies thrive in this new era of secure multi-party collaboration by delivering open, scalable platforms and services that any company can use to improve shared business processes. Our roadmap is based on the following principles:

◈ Blockchain on your terms: No one-size-fits-all approach — Microsoft’s platform and ecosystem partners make it easy to get started and iterate quickly with the blockchain of your choice, both on-premises and in the cloud.

◈ Integrated with your business: Merge blockchain with the IT assets you already have. Azure lets you integrate blockchain with the cloud services your organization uses to power shared processes.

◈ Ready for the enterprise: With the Coco Framework, Cryptlets, and our Azure services integrations, Microsoft is addressing existing technology gaps with blockchain and helps organizations build durable enterprise-grade applications.

Our active participation in industry consortiums such as R3, Enterprise Ethereum Alliance, and IC3, also help us to understand core industry scenarios, and to continue learning to meet the needs of our customers.

Currently, Microsoft supports the most widely used blockchain and distributed ledger protocols on Azure, including HyperLedger Fabric, R3 Corda, Quorum, Chain Core, and BlockApps.