TRINUG – Programming Smart Contracts on Ethereum Blockchain

TRINUG – Main Meeting : Programming Smart Contracts on Ethereum Blockchain – August 2018

In this session, Ash will introduce you to the world of Blockchain programming. You will learn about Ethereum and how to program Smart Contracts for Ethereum Blockchain. You will learn how to deploy and test your Contracts on a public Ethereum Testnet. Ash will share best practices for Smart Contract development. You will be able to participate in a hands-on walk-through in the latter half of the session.

ppt-20180808

Charlotte IOT – Programming Smart Contracts on Ethereum Blockchain

Charlotte IOT – July 2018

You will not want to miss this chance to learn about Blockchain, a technology enabling an entire IoT ecosystem! It has a distributed database for all the transactions, which eliminates the need for the third party to authenticate the transactions. The database ledger is a continuously growing list of records, called blocks, which are linked and secured using cryptography.
Charlotte IoT wants to thank Ash Tewari for traveling from Raleigh to share his extensive knowledge and experience around Blockchain. In this session, Ash will introduce you to the world of Blockchain programming. You will learn about Ethereum and how to program Smart Contracts on Ethereum Blockchain. You will learn how to deploy and test your code on a public Ethereum Testnet. Ash will complete the session with sharing some best practices for Smart Contract development. You will be able to participate in a hands-on walkthrough in the latter half of the session.

ppt-20180710

Blockchains for Enterprise

Permissioned blockchains are being developed and used in Enterprise scenarios in which higher transaction throughput, lower latency, versatile confidentiality and governance models are more important than supporting low trust levels among participants. These Enterprise requirements are not being met adequately by the public and permission-less blockchain ledgers. Enterprise scenarios typically have known actors and the trust level between these actors is very high. This allows for trade-offs between trust levels and transaction throughput, speed, confidentiality and privacy, which in turn enables alternate solutions via permissioned blockchains.

Hyperledger Fabric (referred to as ‘Fabric’ in the rest of this article) is the leading permissioned blockchain framework, initially developed by IBM. There are other players in this space, including Multichain, ChainCore and the relatively new entrant – Microsoft’s CoCo framework (referred to as ‘CoCo’ in the rest of this article). Ethereum’s own developers are also working on enabling Enterprise use cases. The Enterprise Ethereum Alliance is a community of industry experts developing features and enhancements to Ethereum for Enterprise needs. This article focuses on Hyperledger Fabric and CoCo framework only.

The projects in the Linux Foundation’s Hyperledger suite are a collection of solutions based on various blockchain technologies. The Hyperledger architecture allows for different components to be plugged in to serve various use-cases, trust level and fault tolerance requirements. The ledgers in this collection are not components of one complete solution, but standalone solutions with various differentiated characteristics. You can choose the one applicable to your business scenario and requirements. Fabric is one of those solutions and it is a complete blockchain solution, including blockchain protocol(s) and smart contract (called Chain Code in Fabric architecture) execution. The tools in the Hyperledger collection (Cello, Composer and Explorer) do work as a component of a complete solution – mostly with Fabric at the moment, as far as I can tell. Hyperledger is available for production use and and it is already being used in developing real-world blockchain solutions.

Coco is an open source platform created by Microsoft. It’s not a standalone blockchain protocol, it is a framework which can be integrated with blockchain protocols such as Ethereum, Quorum, Corda and also Hyperledger Sawtooth to deliver complete, enterprise grade blockchain solutions. The integration with Ethereum is the result of an adapted Ethereum codebase, which is integrated with CoCo Framework. Ethereum provides Smart Contract code execution, transaction processing and distributed ledger model. CoCo framework provides secure execution environment, flexible confidentiality models and codified governance. CoCo Framework was announced in August 2017. There is a whitepaper and a demo of a Proof-Of-Concept integration of CoCo with Ethereum. Ethereum integration is being hardened, integration with other blockchain platforms (Quorum, Corda and Sawtooth) is in progress and the CoCo source code will be open sourced in early 2018.

CoCo provides smart contract code and execution security via Trusted Execution Environments (TEE). The TEEs can be software (Hyper-V VSM) based or hardware (Intel SGX) based. Fabric does not include guarantees of execution integrity via TEEs, although another ledger (Hyperledger Sawtooth) in the collection does. Hyperledger Sawtooth’s use of TEEs is limited to ensuring the integrity of its leader election consensus algorithm only. CoCo’s use of TEEs seem to be more encompassing and it includes execution guarantees and security for the smart contract code itself.

Clearly, Fabric and CoCo take very different architectural approach. There are functional similarities between the two frameworks. For example, the Channels in Fabric provide the mechanism for flexible confidentiality models, which is provided by ACLs in CoCo. TEEs in CoCo provide the same function as Endorsers in Fabric. Fabric has the concept of Validator nodes, such nodes are not needed in CoCo due to TEEs. Composer is a tool to quickly spin up proof-of-concept implementations with Fabric. Microsoft’s App Builder is a tool (I am currently participating in its private preview) to do the same with Ethereum as well as Fabric. App Builder does not currently work with CoCo, but I will not be surprised to see CoCo support in the future.

The default consensus algorithm in CoCo, Paxos consensus, does not provide Byzantine fault tolerance. On the surface, it appears to be a letdown, but Byzantine fault tolerance is made (mostly) redundant due to use of TEEs. There are some considerations to mitigate compromise of CoCo VNs (Validating Nodes). Refer to the CoCo whitepaper for more information on that. Note that the consensus algorithm in CoCo is pluggable, like Fabric. The business logic of the Smart Contracts in CoCo can be written in the programming language supported by the underlying execution engine. Which means, you can use Solidity to write your Smart Contracts in CoCo today.  You can use Go to write smart contracts in Fabric.

The choice of blockchain framework, ledger and consensus model requires review and analysis of your particular business use case which translates to throughput, latency, confidentiality, governance and network requirements.

References:

 

Image Credit: DavidstankiewiczBlockchain Illustration 2CC BY-SA 4.0

Hyperledger, IBM, Microsoft, Coco, Etheruem and associated trademarks belong to their respective owners.

Paste Table from Microsoft Excel to Confluence Wiki

1. Create the table in Microsoft Excel.

paste-table-confluence-excel paste-table-confluence-toolbar

2. Open this page in browser: http://excel2jira.bluurgh.com/

3. Paste the table from Microsoft Excel into the input box on the page.

paste-table-confluence-convert-markup

4. Click on “Convert Me Now” button

5. Place the cursor at the intended insertion point in the wiki document.

6. Click on “Insert more content” (+) button on Wiki toolbar

paste-table-confluence-toolbar

7. Click on “Markup”

paste-table-confluence-markup-cmd

8. Paste converted markup from step 2  in the left pane and verify the preview.

paste-table-confluence-insert

9. Click on “Insert”

10. Review and verify the inserted content and make any correction if needed.

 

Ethereum Blockchain-As-A-Service in Azure Cloud

Ethereum Blockchain (EBaas) as a Service provided by Microsoft Azure and ConsenSys allows for enterprise customers and partners to play, learn, and fail fast at a low cost in a ready-made dev/test/production environment. It will allow them to create private, public and consortium based Blockchain environments very quickly in Azure. In this session, you will learn how to get started with prototyping building blocks of a decentralized application using EBaas in Windows Azure.

Venue: Triangle Azure User Group

Slides : download.

Getting Started with Smart Contracts on Ethereum Blockchain using Visual Studio

Smart Contracts are an exciting innovation built on blockchain technology. It is a way to execute code in a trustless, decentralized and transparent system. Ethereum is a decentralized platform to run smart contracts using a variation of Bitcoin’s blockchain technology.

In this session, you will learn how to write smart contracts in Visual Studio. You will learn how to deploy them to public Ethereum blockchain and a private/consortium blockchain as a service in Azure. You will be introduced you to Solidity – the programming language used to write smart contracts. You will get familiar with the tools and technology around this exciting, promising and relatively new innovation.

Presentation Slides are here: download.