Blockchain for developers: from zero to running app in the cloud.

bcmeetup2018

Speakers

Lennart Frantzell

Lennart is a Developer Advocate with IBM on the San Francisco City Team focusing on Blockhain and Fintech. With a background in program development he works with startups and developers to help them adopt Blockchain and Fintech, talks at industry events and spends his weekends at hackathons.

Raheel Zubairy

Raheel is a Software Engineer focused on developing journeys for Emerging Technologies team, part of IBM’s Digital Business Group. He has worked on journeys showcasing Blockchain technologies and Fintech services. In addition, his interests include IoT and Data Science. Raheel’s previous experience includes over five years in the energy industry. He completed his bachelors and masters degrees from Texas A&M University. Raheel is an avid sports fan.

Agenda:

6:00-6:30pm: Light dinner and registration

6-30-8:30pm: Talks and demos:

Lennart: The Blockchain Building Blocks: your first app, how do you deploy it. Overview of the latest programming resources.

Raheel: Writing Blockchain apps. An experience report. How to plan your app, how to write it, how to deploy it.

8:30-9:00pm : Wrap up & Networking

Requirements:

Bring a laptop

Important URLS:

            alf@us.ibm.com

Superb IBM Blockchain online course: Zero to Blockchain

Index

Download code for Exercises

  1. Exercise 2 Decentralized energy with Hyperledger Composer: git clone https://github.com/IBM/Decentralized-Energy-Composer
  2. Exercise 3 IBM Blockchain - Marbles Demo Download zip https://github.com/IBM-Blockchain/marbles

blueband

How did it all start?

October 2008 It all started with Satoshi Nakamoto and his paper Bitcoin: A Peer-to-Peer Electronic Cash System which addressed a key problem in electronic commerce:

Double Spending

The first work on a cryptographically secured chain of blocks was described in 1991 by Stuart Haber and W. Scott Stornetta.[17] In 1992, Bayer, Haber and Stornetta incorporated Merkle trees to the design, which improved its efficiency by allowing several documents to be collected into one block.

A blockchain database is managed autonomously using a peer-to-peer network and a distributed timestamping server. The first blockchain was conceptualised by an anonymous person or group known as Satoshi Nakamoto in 2008.

https://en.wikipedia.org/wiki/Blockchain

A blockchain is a decentralized virtual ledger for recording transactions without central authority through a distributed cryptographic protocol. It is made up of three technologies

  1. cryptographic algorithms,
  2. a distributed protocol,
  3. and replicated data

which combined provide a trustworthy service to a group of nodes that do not fully trust each other.

Christian Cachin Resilient Consensus Protocols for Blockchains

Source: https://www.zurich.ibm.com/dccl/papers/cachin_dccl.pdf blueband

A revolution: From Double-Entry Bookkeeping to the Blockchain Distributed Ledger

Fra Luca Bartolomeo de Pacioli c. 1447–1517) was an Italian mathematician, Franciscan friar, collaborator with Leonardo da Vinci, and a seminal contributor to the field now known as accounting.

He is referred to as "The Father of Accounting and Bookkeeping" in Europe and he was the first person to publish a work on the double-entry system of book-keeping in that continent.

Blockchain Distributed Ledger

A distributed ledger is a type of database that is shared, replicated, and synchronized among the members of a network. The distributed ledger records the transactions, such as the exchange of assets or data, among the participants in the network.

Participants in the network govern and agree by consensus on the updates to the records in the ledger. No central, third-party mediator, such as a financial institution or clearinghouse, is involved.

Every record in the distributed ledger has a timestamp and unique crytographic signature, thus making the ledger an auditable history of all transactions in the network. One implementation of distributed ledger technology is the open source Hyperledger Fabric blockchain.

https://console.bluemix.net/docs/services/blockchain/index.html#ibm-blockchain-platform

Hyperledger, 1,000 transactions/second

From the press:

MAERSK SAIGON - IMO: 9303534

IBM and Maersk Are Creating a New Blockchain Company
IBM and Danish shipping giant Maersk are teaming up to form a new company whose aim is to commercialize blockchain technology—the nifty, shared accounting ledgers first made famous by the cryptocurrency Bitcoin.

blueband

Hyperledger Documentation

Hyperledger, an open source collaborative effort to advance cross-industry blockchain technologies, is hosted by The Linux Foundation®.

Deployed in Docker images.

Hyperledger Services

Permissioned

Google RPC P2P Protocol

https://medium.com/@robertgreenfieldiv/hyperledger-blockchain-for-a-web-2-0-architecture-6d3c83818eb1

Hyperledger main components

EndorsementConsensus

ordererflow

consensus

It is also important to note the Hyperledger Fabric has HSM (Hardware Security Module) support which is vital for safeguarding and managing digital keys for strong authentication. Hyperledger Fabric provides modified and unmodified PKCS11 for key generation, which supports cases like identity management that need more protection.

Channels

A Hyperledger Fabric channel is a private “subnet” of communication between two or more specific network members, for the purpose of conducting private and confidential transactions.

Chaincode

Hyperledger helloworld 2

Chaincode is a piece of code that is written in one of the supported languages such as Go or Java. It is installed and instantiated through an SDK or CLI onto a network of Hyperledger Fabric peer nodes, enabling interaction with that network's shared ledger. blueband

Blockchain Usecases

Blockchain usecases from IBM

Exercises

IBM Blockchain 101: Quick-start guide for developers. Create your first blockchain network and start coding applications

Exercise 1: Hyperledger Composer Playground Tutorial

Composer

Hyperledger Composer Playground Tutorial

Hyperledger Composer Documentation

Hyperledger Composer Command Line

Exercise 2 Decentralized energy with Hyperledger Composer

Decentralized energy with Hyperledger Composer

Wondering where blockchain might apply in your own life? Interested in energy, sustainability, or climate change? Try your hand at creating a basic blockchain app to interact with a decentralized energy network! The idea behind the app is a neighborhood where residents produce and sell excess solar-panel energy to residents who need it. This is an excellent example of how blockchain can begin to transform our world.

Excercise 3 Create the full marbles app

bigmarbles

https://github.com/IBM-Blockchain/marbles

An enterprise-ready blockchain platform designed to accelerate the development, governance and operation of a multi-institution business network

ibm.biz/ibmbctechpaper

Exercise 4.1 Setting up a Blockchain app in the IBM Container Service ready for IBM Blockchain

Develop in a cloud sandbox IBM Blockchain Platform

Exercise 4.2 Setting up a Blockchain app in the IBM Cloud

IBM Blockchain in the IBM Cloud





blueband

Resources

Blockchain in the IBM Cloud

Set up the environment

Hyperledger Composer on IBM Cloud

Zero to Bockchain

Zero to Blockchain

IBM Code: Blockchain Distributed database maintaining a continuously growing list of secured records or blocks

Welcome to Hyperledger Fabric

Blockchain on IBM Cloud

Develop in a cloud sandbox IBM Blockchain Platform

Node-RED and Hyperledger Composer

Integrate your Blockchain with anything using Hyperledger Composer and NodeRed