Tuesday, September 5, 2017

Blockchain As A Service - Microsoft Vs IBM


Blockchain As A Service:  As  the  initiatives  on   Blockchain  and smart contracts are  high on the radars of business and IT leaders , one  of  the main hurdle  they  face  is  the inherent  complexities in setting  up  distributed  database and  associated networks  using  relatively    new  platforms  like  ethereum, hyper leder, ripple etc..  Existing  cloud  providers  filled  this  gap,  with  the delivery  of “Blockchain As A Service” – BaaS  as  part  of their  offering. In   this  context  two  of  the  major  technology  players ,  Microsoft  and  IBM  provide  Blockchain as a  Service.  Logically,  Microsoft provides  BaaS  on  top  of  existing  Azure cloud services  and  IBM  provides  BaaS  on  top of Bluemix services, which  makes  these  services  fit  well in to their existing  customers  as well  enable  partners to build  solutions on top of  it.

As  there is  immense  potential  for  Blockchain usage in the industries, at this time  both  players are complimenting  each other  by  promoting  usage of  Blockchain  and  too early  to  provide  opinion on which one  is good,  however  following  are  thoughts  about  what  kind  of  details  provided  by the respective  providers  which will help  during the  proof  of  concept  initiatives  of the  organizations.

Blockchain Protocol Support:

As explained  in  my  other  article  about  smart contracts,  currently  there are multiple  platforms  available for  development  of  smart contract and blockchain solutions.            As  customers  experiment on blockchain solutions,  depending on their  skills and strategy they are going with different platforms.

Microsoft Azure BaaS  initially  started  with  Ethereum  platform as a  base. But  subsequently  they have expanded  into  other platforms  like,  R3 Corda,  Quorum, Chain, BlockApps  and Hyperledger Fabric. Each of these  platforms are available  as  a  Azure  Resource Manager  based  templates as well  as  graphical user interface using  Azure market  places.  This  makes  it  easy  for  organizations to experiment  on new  smart contract initiatives.  As  I  have  explained  in my  smart  contract management system  blog,  one  organization may be  part  of multiple  blockchain networks  and  each of them  could  be implemented  using a different  platform.

IBM Bluemix BaaS  unlike Azure,  fully  revolves  around  Hyperledger Fabric. Hyperledger Fabric is a blockchain framework implementation and one of the Hyperledger projects hosted by The Linux Foundation.

Blockchain Topology:

While  the  Blockchain  network  promotes  trust  and  transparency  from the business  point of view. The underlying  network infrastructure  and  topology  needs to be carefully planned. This  helps in determining where the nodes are placed  , how nodes  communicate with each user, which  nodes the distributed  apps  connect  and submit  transactions  and  other  decisions  about  public  facing  nodes. The following  general   topologies  that  most  organizations  can  fit  their  blockchain  and  smart contract solutions.

·         Single organization, multiple departments or divisions: This is a common topology when divisions in an organization do not trust each other, for example when one division is auditing another division.

·         Multiple organizations, private: This is the true consortium scenario where each organization will have its own footprint , the services deployed must not be publicly accessible on the internet, even though communication will occur across organizations.

·         Multiple organizations, public-facing: Similar to the above topology, but in industries, enterprises, or scenarios where IT requirements allow or require the services deployed to be accessible to the public, over the internet. This simplifies the network connectivity requirements for the distributed system.

Microsoft Azure BaaS  has effectively  utilized  the  components  of  its  existing  Infrastructure As A Service  to  provide multiple  topologies  from  Ethereum  platform  perspective. For example  their multi node  consortium  template  utilizes,  Azure  Virtual Net Gateway, Load Balancer, Network Security Group, Public IP Address  , Storage Accounts  coupled  with  base  virtual machines  to  provide a  fully working  configuration. Existing  Azure  shops  can  easily  adapt  to  this  architecture  as  it  is  built using known components  and  easy to manage.  The  template  also  provides  SSH  key  based  authentication such that  admins  can  login to  any of the nodes,  by appropriately  identifying the  port numbers and domain name  of the load balancer. From  a  performance  perspective,  the  templates  provide  options to  choose  the VM size  and  also  storage performance  options.  Using  powershell  based  interface, adding  new  members  in to the network  can  be done  by the administrators.  However beyond Ethereum  multi member  configuration  for  other  platforms  like  Hyperledger Fabric, Quorum  are still in basic  stages  and  will improve  in the coming  days.

IBM Bluemix BaaS  provides  a  complete managed  service for  Hyperledger Fabric, making it fast and easy to build, run and govern business networks while ensuring high levels of security, privacy, and performance. The service enables the creation of blockchain business networks with ownership and control distributed across different organizations. New networks can be bootstrapped by setting up governance rules, inviting members, and configuring network policies. This  topology  also  provides High availability  for  various nodes  like,  peers, ordering  service, certificate authority.

Smart Contract Development:

Probably  the  biggest  time  consuming  activity  that  will happen  for  Blockchain  initiatives  is  about  the  design  and  development  of  smart  contracts. First of all,  the  whole  concept  is  new  and the programming  constructs  that  support  smart contracts   are  still  evolving  and hence  it  is  one  area which requires lot of support  from  BaaS  Providers.

Microsoft Azure BaaS  provides  the  following  support  for  smart  contract  development.

·         Visual Studio extensions  for  development  in Solidity Framework  which  support  development  of smart contracts for ethereum  platform

·         Nethereum is the .Net integration library for Ethereum, simplifying the access and smart contract interaction with ethereum nodes.

IBM Bluemix BaaS  provides  the  following  support for smart contract  development.

·         Hyperledger Fabric  utilizes  Chaincode  for  developing  and  deploying  smart contracts

·         Chaincode  is  initially  implemented  in  Go programming  language  and subsequently available in Java also

·         IBM  provides, Hyperledger Fabric Client SDK APIs to interact with a blockchain network on Bluemix.

Summary:

Blockchain  as  a  service  from  cloud  providers  makes  it  easy  for  organizations  to  quickly  create  blockchain  consortium networks  and  start  developing  and  deploying  smart contracts on top of them. In this  context  both IBM  and Microsoft  have  taken  major  steps  in promoting  Blockchain  for enterprises. 

The  following  initiatives  are  some  of  the  practical  usage  of  both  Microsoft  and  IBM  blockchain as service  and  the  associated  technologies.

No comments:

Post a Comment