SlideShare a Scribd company logo
@ t h e b e e b s
A Developer Primer on Blockchain
Martin Beeby
Principle Evangelist AWS
@ t h e b e e b s
M a r t i n B e e b y
@ t h e b e e b s
A software developer since I was 16
Developer for 20 years
Work at Amazon Web Services
MARTIN BEEBY
@THEBEEBS
@ t h e b e e b s
M a r t i n B e e b y
TERESANUSRET DONALD
@ t h e b e e b s
THREE PEOPLE
@ t h e b e e b s
M a r t i n B e e b y
@ t h e b e e b s
ALL WORK IN AN OFFICE
@ t h e b e e b s
M a r t i n B e e b y
@ t h e b e e b s
NUSRET THE BAKER
@ t h e b e e b s
M a r t i n B e e b y
TERESANUSRET DONALD
@ t h e b e e b s
THEY BUY
@ t h e b e e b s
M a r t i n B e e b y
TERESANUSRET DONALD
@ t h e b e e b s
TERESA BUYS
@ t h e b e e b s
M a r t i n B e e b y
TERESANUSRET DONALD
@ t h e b e e b s
DONALD BUYS
@ t h e b e e b s
M a r t i n B e e b y
TERESANUSRET DONALD
@ t h e b e e b s
TERESA SELLS
@ t h e b e e b s
M a r t i n B e e b y
TERESANUSRET DONALD
@ t h e b e e b s
NUSRET ALSO BUYS
@ t h e b e e b s
M a r t i n B e e b y
@ t h e b e e b s
Handsome
Smart
Remote Worker
NEW PERSON
JOINS THE TEAM
@ t h e b e e b s
M a r t i n B e e b y
@ t h e b e e b s
MARTIN
@ t h e b e e b s
M a r t i n B e e b y
@ t h e b e e b s
Transferring Money between them is now harder
Easy to lose track of who owes what
Lets build a database
MONEY IS A
PAIN
@ t h e b e e b s
M a r t i n B e e b y
@ t h e b e e b s
Martin Controls it
Each cake sale is a transaction
The seller tells martin about the transaction. He records it
CREATE A
DATABASE
@ t h e b e e b s
M a r t i n B e e b y
DONALD MARTIN
@ t h e b e e b s
TERESANUSRET
TRANSACTIONS
@ t h e b e e b s
M a r t i n B e e b y
@ t h e b e e b s
Trust Required (Fraud)
Transparency
Central Control
WHAT’S THE
PROBLEM?
@ t h e b e e b s
M a r t i n B e e b y
@ t h e b e e b s
Most Business run this way
Big Databases are not a problem
If there is Trust
@ t h e b e e b s
M a r t i n B e e b y
@ t h e b e e b s
MARTIN HAS A CAKE PROBLEM
@ t h e b e e b s
M a r t i n B e e b y
DONALD MARTIN
@ t h e b e e b s
TERESANUSRET
DATABASE FOR EVERYONE
@ t h e b e e b s
M a r t i n B e e b y
@ t h e b e e b s
Hard to keep in sync
Hard to agree
Hard to reach consensus
PEOPLE COULD
STILL DEFRAUD
@ t h e b e e b s
@ t h e b e e b s
M a r t i n B e e b y
Blockchain builds trust in a network
Eliminates the need for central authority in business networks
Three main components: distributed ledger, consensus mechanism,
and “smart contract” execution environment
@ t h e b e e b s
M a r t i n B e e b y
Customers are experimenting in many industries
Proof of Ownership
Digital Security Trading
Documents/Contracts
Enterprise Platforms
Financial
Insurance
Mortgage Loans
Voting Mechanisms
Patient Records
Corporate Governance
HCLS
Real Estate
Legal
Agriculture
Gaming
M & E
Transportation
Digital Advertising
Power/Utilities
Retail
Capital Markets
Cloud
OWNERSHIPPRIVATE MARKETS
DERIVATIVES
WAGERS
GLOBAL PAYMENTS
REMITTANCE
NOTARISATION
EQUITY
MICROFINANCE
INTELLECTUAL PROPERTY
TITLE RECORD
ESCROW
DIGITAL RIGHTS
E-COMMERCE
DEBT
CROWDFUNDING
P2P LENDING
HEALTHCARE
VOTING
TRUSTEES
SMART
CONTRACTS
DIGITAL
CURRENCY
SECURITIES
RECORD
KEEPING
BLOCKCHAIN
TECHNOLOGY
@ t h e b e e b s
M a r t i n B e e b y
DONALD MARTIN
@ t h e b e e b s
TERESANUSRET
PUBLIC AND PRIVATES OR CERTIFICATE
Private Key Private Key Private Key Private Key
Address 1 Address 2 Address 3
Address 6
Address 5
@ t h e b e e b s
M a r t i n B e e b y
@ t h e b e e b s
TRANSACTIONS
Sender Amount Receiver Signed
Address 1 5 Address 2 110101010
Address 2 4 Address 3 010101010
Address 3 3 Address 1 010011010
@ t h e b e e b s
M a r t i n B e e b y
@ t h e b e e b s
Listen for transactions and validates them
Order transactions into a block
Creates and hashes blocks
PEERS LISTEN
FOR
TRANSACTIONS
Sender Receiver Signed
Address 1 5 Address 2 110101010
Address 2 4 Address 3 010101010
Address 3 3 Address 1 010011010
@ t h e b e e b s
M a r t i n B e e b y
@ t h e b e e b s
HASHING
SHA256
446F09C5D7DB665A
851077054EBC7067
56E372A32C8753F0
428B6671CA6CE449
In west Philidelphia
born and raised on
the play ground was
where I spent most of
my days. Chilling
223E8E360399E82A
C97B37A73FA1F532
071F03D8A174FA56
6D44F1770CC37D9A
Istanbul
@ t h e b e e b s
M a r t i n B e e b y
Suggest blocks to the
network
Other validating peers will
verify the block.
But how can they trust the new
block?
How do they reach consensus?
@ t h e b e e b s
M a r t i n B e e b y
@ t h e b e e b s
Solve a complex problem involving the hashing of the block
Would be very expensive to try and present incorrect blocks
Miners on bitcoin spend huge sums of money on electric
PROOF OF
WORK
Jargon: A Consensus
Algorithm
@ t h e b e e b s
M a r t i n B e e b y
@ t h e b e e b s
Proof of Stake
Proof of Elapsed Time
Byzantine fault tolerant
OTHER
CONSENSUS
ALGORITHM
@ t h e b e e b s
M a r t i n B e e b y
80801
72456
80801
98994
A series of blocks that
are hashed
And linked by the hash of the
previous block
80801
72456
34623
@ t h e b e e b s
M a r t i n B e e b y
DONALD MARTIN
@ t h e b e e b s
TERESANUSRET
OTHER PEERS VERIFY
@ t h e b e e b s
M a r t i n B e e b y
@ t h e b e e b s
PEERS THEN BUILD ANOTHER
@ t h e b e e b s
M a r t i n B e e b y
@ t h e b e e b s
A list of transactions grouped into blocks
Blocks chained together by knowing the previous hash
Nothing can be easily altered, the slightest modification
would be obvious
A BLOCKCHAIN IS
Jargon: Merkle Tree 80801
72456
80801
72456
34623
@ t h e b e e b s
M a r t i n B e e b y
What Can A Developer
Do?
Smart Contracts (chaincode)
and Build Distributed apps
@ t h e b e e b s
M a r t i n B e e b y
Public and permissioned networks
Public networks allow anyone to
participate in the network. Members are
incentivized to maintain the network
Permissioned networks limit
the members to known entities
@ t h e b e e b s
Network 1 – Managed Blockchain
VPC endpoint
VPC endpoint
Account A
Account B
@ t h e b e e b s
M a r t i n B e e b y
Chaincode basics
Code executed on the network, and can query and update ledger
Fabric supports chaincode in three languages:
Chaincode execute within a docker container on peer nodes
Chaincode has two operations in its interface:
• Init()—initializes the chaincode with parameters
• Invoke()—invokes the chaincode with parameters
@ t h e b e e b s
M a r t i n B e e b y
Peer nodes
Ordering service
blob3
blckNo
tx1
tx2
Block
forming
blob1
Verify endorsement, readset
If OK then apply writeset
Else invalid transaction (blob)
Genesis block
Submitting
client
Peer
Validated Ledger (VL)PeerLedger
PeerLedger Validated Ledger
blockblock seqNo=blckNo
3
4
seqNo
blob1
blob2
Orders
• Stores a copy of
the ledger database
• Executes chaincode and
endorses transactions
• Validates transactions
before the final commit
to ledger
@ t h e b e e b s
M a r t i n B e e b y
Endorsement policies
Endorsement policies allow
chaincode to specify which
members (or how many)
need to validate a transaction
before submitting
Endorsed transactions
then get submitted to
the ordering service and
assembled into blocks
Member 1
client
Hyperledger Fabric ordering service
Ledger LedgerMember 2
Peer
Member 1
Peer
1
3 2
1
3
@ t h e b e e b s
M a r t i n B e e b y
@ t h e b e e b s
From Sea to Table
Lots of Fraud
Could benefit from Transparency
THE TUNA
SUPPLY CHAIN
@ t h e b e e b s
M a r t i n B e e b y
@ t h e b e e b s
Sarah is the fisherman who sustainably and legally catches tuna.
Regulators verify that the tuna has been legally/sustainably caught.
Miriam is a restaurant owner who wants legal/sustainable tuna
TUNA SUPPLY
CHAIN
Carl is another restaurant owner fisherman Sarah can sell tuna to.
@ t h e b e e b s
M a r t i n B e e b y
@ t h e b e e b s
Sarah sells at different prices
Privacy around deals
Carl shouldn’t see Miriams price
DEALS NEED TO
BE PRIVATE
@ t h e b e e b s
M a r t i n B e e b y
@ t h e b e e b s
M a r t i n B e e b y
Channels for access control
Channels allow isolation of
transactions among specific
members in the network
Create or update a
channel with configuration
transaction (configtx)
Member 1 Member 2 Member 3
Channel 2
Ledger
Channel 1
Ledger
Hyperledger Fabric ordering service
Channel 2Channel 1
Member 2
Peer
Member 3
Peer
Member 1
Peer
@ t h e b e e b s
M a r t i n B e e b y
@ t h e b e e b s
CHAINCODE
package main
import (
"fmt"
"github.com/hyperledger/fabric/core/chaincode/shim"
"github.com/hyperledger/fabric/protos/peer"
)
@ t h e b e e b s
M a r t i n B e e b y
@ t h e b e e b s
TUNA STRUCT
type Tuna struct {
Vessel string ‘json:"vessel"’
Datetime string ‘json:"datetime"’
Location string ‘json:"location"’
Holder string ‘json:"holder"’
}
@ t h e b e e b s
M a r t i n B e e b y
@ t h e b e e b s
INIT
func (s *SmartContract) initLedger(APIstub shim.ChaincodeStubInterface) sc.Response {
tuna := []Tuna{
Tuna{Vessel: "923F", Location: "67.0006, -70.5476", Timestamp: "1504054225", Holder: "Miriam"},
Tuna{Vessel: "M83T", Location: "91.2395, -49.4594", Timestamp: "1504057825", Holder: "Dave"},
Tuna{Vessel: "T012", Location: "58.0148, 59.01391", Timestamp: "1493517025", Holder: "Igor"},
Tuna{Vessel: "P490", Location: "-45.0945, 0.7949", Timestamp: "1496105425", Holder: "Amalea"},
Tuna{Vessel: "S439", Location: "-107.6043, 19.5003", Timestamp: "1493512301", Holder: "Rafa"},
Tuna{Vessel: "J205", Location: "-155.2304, -15.8723", Timestamp: "1494117101", Holder: "Shen"},
Tuna{Vessel: "S22L", Location: "103.8842, 22.1277", Timestamp: "1496104301", Holder: "Leila"},
Tuna{Vessel: "EI89", Location: "-132.3207, -34.0983", Timestamp: "1485066691", Holder: "Yuan"},
Tuna{Vessel: "129R", Location: "153.0054, 12.6429", Timestamp: "1485153091", Holder: "Carlo"},
Tuna{Vessel: "49W4", Location: "51.9435, 8.2735", Timestamp: "1487745091", Holder: "Fatima"},
}
i := 0
for i < len(tuna) {
fmt.Println("i is ", i)
tunaAsBytes, _ := json.Marshal(tuna[i])
APIstub.PutState(strconv.Itoa(i+1), tunaAsBytes)
fmt.Println("Added", tuna[i])
i = i + 1
}
return shim.Success(nil)
}
@ t h e b e e b s
M a r t i n B e e b y
@ t h e b e e b s
M a r t i n B e e b y
@ t h e b e e b s
INVOKE
func (s *SmartContract) Invoke(APIstub shim.ChaincodeStubInterface) sc.Response {
// Retrieve the requested Smart Contract function and arguments
function, args := APIstub.GetFunctionAndParameters()
// Route to the appropriate handler function to interact with the ledger appropriately
if function == "queryTuna" {
return s.queryTuna(APIstub, args)
}
else if function == "initLedger" {
return s.initLedger(APIstub)
} else if function == "recordTuna" {
return s.recordTuna(APIstub, args)
} else if function == "queryAllTuna" {
return s.queryAllTuna(APIstub)
} else if function == "changeTunaHolder" {
return s.changeTunaHolder(APIstub, args)
}
return shim.Error("Invalid Smart Contract function name.")
}
@ t h e b e e b s
M a r t i n B e e b y
@ t h e b e e b s
QUERYTUNA
func (s *SmartContract) queryTuna(APIstub shim.ChaincodeStubInterface, args []string)
sc.Response {
if len(args) != 1 {
return shim.Error("Incorrect number of arguments. Expecting 1")
}
tunaAsBytes, _ := APIstub.GetState(args[0])
if tunaAsBytes == nil {
return shim.Error(“Could not locate tuna”)
}
return shim.Success(tunaAsBytes)
}
@ t h e b e e b s
M a r t i n B e e b y
@ t h e b e e b s
RECORDTUNA
func (s *SmartContract) recordTuna(APIstub shim.ChaincodeStubInterface, args []string)
sc.Response {
if len(args) != 5 {
return shim.Error("Incorrect number of arguments. Expecting 5")
}
var tuna = Tuna{ Vessel: args[1], Location: args[2], Timestamp: args[3], Holder: args[4]}
tunaAsBytes, _ := json.Marshal(tuna)
err := APIstub.PutState(args[0], tunaAsBytes)
if err != nil {
return shim.Error(fmt.Sprintf("Failed to record tuna catch: %s", args[0]))
}
return shim.Success(nil)
}
@ t h e b e e b s
M a r t i n B e e b y
@ t h e b e e b s
CHANGETUNAHOLDER
func (s *SmartContract) changeTunaHolder(APIstub shim.ChaincodeStubInterface, args []string) sc.Response {
if len(args) != 2 {
return shim.Error("Incorrect number of arguments. Expecting 2")
}
tunaAsBytes, _ := APIstub.GetState(args[0])
if tunaAsBytes != nil {
return shim.Error("Could not locate tuna")
}
tuna := Tuna{}
json.Unmarshal(tunaAsBytes, &tuna)
// Normally check that the specified argument is a valid holder of tuna but here we are skipping this check for this example.
tuna.Holder = args[1]
tunaAsBytes, _ = json.Marshal(tuna)
err := APIstub.PutState(args[0], tunaAsBytes)
if err != nil {
return shim.Error(fmt.Sprintf("Failed to change tuna holder: %s", args[0]))
}
return shim.Success(nil)
}
@ t h e b e e b s
Install Chain Code from the CLI
peer chaincode install –n tunachaincode –-v v0 -p src/chaincode_tuna/go
@ t h e b e e b s
Check Installed Chain Code from the CLI
peer chaincode list --instantiated  -o $ORDERER -C mychannel  --cafile
/opt/home/managedblockchain-tls-chain.pem –tls
Name: tunachaincode Version: v0 Path: src/chaincode_tuna/go
@ t h e b e e b s
Invoke
peer chaincode invoke -C mychannel  -n tunachaincode -c
'{"Args":["invoke",”queryTuna"]}'  -o $ORDERER --cafile /opt/home/managedblockchain-
tls-chain.pem --tls
@ t h e b e e b s
M a r t i n B e e b y
@ t h e b e e b s
M a r t i n B e e b y
@ t h e b e e b s
M a r t i n B e e b y
@ t h e b e e b s
CALLING SOME CODE
// changeTunaHolder - requires 2 argument
var request = {
chaincodeId:’ tunachaincode’,
fcn: 'changeTunaHolder',
args: ['1', 'Alex'],
chainId: 'mychannel',
txId: tx_id
};
return channel.sendTransactionProposal(request);
@ t h e b e e b s
@ t h e b e e b s
M a r t i n B e e b y
Need for a ledger with centralized trust
DMV
Track vehicle
title history
Manufacturers
Track distribution of a
recalled product
HR & Payroll
Track changes to an
individual’s profile
Healthcare
Verify and track hospital
equipment inventory
LEDGERS WITH
CENTRALIZED TRUST1
@ t h e b e e b s
M a r t i n B e e b y
Need for running transactions with decentralized trust
2
Financial
institutions
Peer-to-peer payments
Mortgage
lenders
Process syndicated
loans
Supply Chain
Transact with suppliers
and distributers
Retail
Streamline customer
rewards
TRANSACTIONS WITH
DECENTRALIZED TRUST
@ t h e b e e b s
M a r t i n B e e b y
Blockchain services at AWS
Amazon Quantum Ledger
Database (QLDB)
Amazon Managed
Blockchain
@ t h e b e e b s
Amazon Quantum
Ledger Database (QLDB)
Fully managed ledger database with a
central trusted authority
@ t h e b e e b s
M a r t i n B e e b y
Challenges customers face
Building Ledgers with traditional databases
Difficult to
manage and scale
Impossible
to verify
Error prone and
incomplete
Resource
intensive
Blockchain approaches
Designed for a
different purpose
Adds unnecessary
complexity
@ t h e b e e b s
M a r t i n B e e b y
Amazon Quantum Ledger Database (QLDB) (Preview)
Fully managed ledger database
Track and verify history of all changes made to your application’s data
Maintains a sequenced
record of all changes to your
data, which cannot be
deleted or modified; you
have the ability to query and
analyze the full history
Immutable
Uses cryptography to
generate a secure output file
of your data’s history
Cryptographically
verifiable
Easy to use, letting you
use familiar database
capabilities like SQL APIs for
querying the data
Easy to useHighly scalable
Executes 2–3X as
many transactions as
ledgers in common
blockchain frameworks
@ t h e b e e b s
M a r t i n B e e b y
Blockchain components: Distributed Ledger database
The journal records an immutable log of all transactions
and is maintained by nodes in the blockchain network
Block 61
Block hash:
000044bf2efe32
Previous block hash:
000087ea2ffe94
Timestamp
Transaction
Transaction
Block 61
Block hash:
000087ea2ffe94
Previous block hash:
000057ec2fda71
Timestamp
Transaction
Transaction
Block 61
Block hash:
000057ec2fda71
Previous block hash:
0000d68b2f0a3b
Timestamp
Transaction
Transaction
@ t h e b e e b s
M a r t i n B e e b y
What is immutability?
1 Tracy buys a car on Aug 3, 2013
2 Tracy sells car to Ronnie
on Sept 10, 2014
DMV QLDB database will add Ronnie’s record
Journal Current stateDMV scenario
3 Ronnie’s car gets in an
accident and gets totaled
DMV QLDB Database adds new row, called “delete”
DELETE
DATE: 09/02/2016
ID Manufacturer Model Year VIN Owner
1 Tesla Model S 2012 123456789 Traci Russell
ID Manufacturer Model Year VIN Owner
1 Tesla Model S 2012 123456789 Ronnie Nash
ID Manufacturer Model Year VIN Owner
Built from ground-up in such a way that Journal cannot be modified or altered
Entire change history is easily accessible
DMV QLDB database will add Traci’s record
@ t h e b e e b s
M a r t i n B e e b y
“Healthdirect Australia operates in a heavily regulated industry, and it
is critical that our compliance data is correct and auditable. With
Amazon QLDB we look forward to having a complete and verifiable
history of every change in our system, making it simple to audit when
and how we arrived at our current state. Regulatory compliance is fact
of life for healthcare companies, and Amazon QLDB enables us to
easily track the controls we have in place and understand how they
have changed over time.”
—Bruce Haefele
General Manager, Technology, Healthdirect Australia
@ t h e b e e b s
Amazon
Managed Blockchain
Fully managed blockchain service, supporting both
Hyperledger Fabric and Ethereum frameworks
@ t h e b e e b s
M a r t i n B e e b y
Challenges with existing blockchain solutions
Complicated
to manage
Setup is hard Hard to scale Expensive
@ t h e b e e b s
M a r t i n B e e b y
Amazon Managed Blockchain
Easily create and manage scalable blockchain networks
Quickly create blockchain
networks that span multiple
AWS accounts. Easily add or
remove members and monitor
the network
Fully managed Choice of Hyperledger
Fabric or Ethereum
Improves reliabilityScalable and secure
Easily scale your blockchain
network as the usage grows.
Also, Managed Blockchain
secures your network
certificates with KMS
Choose the right framework for
your needs, whether you are
building a permissioned or
public network
Managed Blockchain improves
the reliability of the “ordering
service,” by replacing the
default technology with QLDB.
This improves durability
@ t h e b e e b s
M a r t i n B e e b y
Hyperledger Fabric and Ethereum benefits
Useful for a finite set of known users
Well-suited for applications that require stringent
privacy and permission controls with a known set
of members
For example, a financial application where certain
trade-related data is only shared with select banks
and other members in the network don’t have
access to the data
Hyperledger Fabric
Useful for an infinite number of unknown users
Well suited for highly distributed blockchain
networks where transparency of data for all
members is important
For example, a digital identity network comprising
of farmers and government organization, where an
infinite number of farmers can join the network and
information regarding their land, crop yields, etc., is
shared across all members on the blockchain
Ethereum
@ t h e b e e b s
M a r t i n B e e b y
How Amazon Managed Blockchain works
Amazon Managed
Blockchain
Create a network
Choose an open source
blockchain framework, set
up a new blockchain network
and your membership in
your AWS account with
just a few clicks
Invite members
Invite other AWS accounts to
join the network
Add nodes
Create and configure
blockchain peer nodes that
store a copy of the
distributed ledger
Deploy applications
Create and deploy
decentralized applications
to your network through
your per nodes. Transact
with other members on
the network
@ t h e b e e b s
M a r t i n B e e b y
“Given our vast partner ecosystem, we are exploring the decentralization and
immutable tracking benefits of blockchain for potential applications in our
insurance business. We believe blockchain can improve the transparency and
efficiency for stakeholders in these networks to transact, while still maintaining
an independently verifiable lineage of activities. However, blockchain frameworks
are complex and difficult to operate. With Amazon Managed Blockchain, we can
now easily create Hyperledger Fabric blockchain networks to test and learn
without worrying about managing the underlying infrastructure, networking,
and software configuration.”
—Daniel Johnson
CTO and Head of Innovation, Guardian Life Insurance Company
@ t h e b e e b s
M a r t i n B e e b y
Summary: helping customers identify the right
AWS blockchain service
Owned by a single, trusted authority
Addresses core need of a immutable and
verifiable transactional log
It’s a database, so its fast, as it doesn’t
require consent from members
Amazon QLDB Amazon Managed Blockchain
No single owner of the ledger. Joint
ownership by multiple parties
Addresses core need of enabling multiple parties to transact
transparently and with trust with each other
Removes intermediaries when a group of members needs to
transact. So it makes business processes more efficient
Ownership
Addresses Need
Key Benefit
@ t h e b e e b s
M a r t i n B e e b y
Next steps
• Learn more about our services and sign up for our preview today!
Amazon Managed Blockchain landing page: https://aws.amazon.com/managed-
blockchain
• How to deploy an app with Amazon Managed Blockchain :
https://aws.amazon.com/blogs/database/tag/amazon-managed-blockchain/
• Amazon QLDB landing page: https://aws.amazon.com/qldb
@ t h e b e e b s
M a r t i n B e e b y
Thank you!
@ t h e b e e b s
Martin Beeby
@thebeebs

More Related Content

PDF
New Business Models enabled by Blockchain
PPTX
Blockchain on Azure and Use Cases
PPTX
Blockchain for Business Yale School of Management Dr John Maheswaran
PDF
Blockchain Hyperledger Fabric
PPTX
Distributed Intelligence
PPTX
Defrag X Keynote: Deploying and managing Global Blockchain Network
PPTX
Defrag x blockchain keynote
PDF
Blockchain for Business on Hyperledger
New Business Models enabled by Blockchain
Blockchain on Azure and Use Cases
Blockchain for Business Yale School of Management Dr John Maheswaran
Blockchain Hyperledger Fabric
Distributed Intelligence
Defrag X Keynote: Deploying and managing Global Blockchain Network
Defrag x blockchain keynote
Blockchain for Business on Hyperledger

Similar to A Developer Primer on Blockchain (20)

PDF
Blockchain & microsoft
PPTX
Block chain technology
PDF
Blockchain_Certification_2018_V5.pdf
PDF
Introduction to Blockchain and Smart Contracts
PPTX
Block chain technology
PDF
Blockchain for Business
PPTX
BlockChain-1.pptx
PPT
Blockchian introduction
PDF
Enterprise Blockchain
PPTX
Blockchain Essentials and Blockchain on Azure
PPTX
Blockchain on AWS for Businesses
PPTX
blockchain-introduction-public in education
PPTX
dfgsdjghkjsdhfg.pptx
PDF
An introduction to blockchain and hyperledger v ru
PPTX
LBSNov2.pptx
PPTX
blockchain-introduction-public.pptx
PDF
Uses of Blockchain Technology in the agrifood system
PPTX
Blockchain with HyperLedger (Public version)
PPTX
C13_blockchain introduction public (1).pptx
PDF
Blockchain technology
Blockchain & microsoft
Block chain technology
Blockchain_Certification_2018_V5.pdf
Introduction to Blockchain and Smart Contracts
Block chain technology
Blockchain for Business
BlockChain-1.pptx
Blockchian introduction
Enterprise Blockchain
Blockchain Essentials and Blockchain on Azure
Blockchain on AWS for Businesses
blockchain-introduction-public in education
dfgsdjghkjsdhfg.pptx
An introduction to blockchain and hyperledger v ru
LBSNov2.pptx
blockchain-introduction-public.pptx
Uses of Blockchain Technology in the agrifood system
Blockchain with HyperLedger (Public version)
C13_blockchain introduction public (1).pptx
Blockchain technology
Ad

More from thebeebs (7)

PDF
Blockchain Explain
PPTX
HItchhickers Guide to TypeScript
PDF
HTML5 and Human Interaction
PDF
Building apps why you should bet on the web
PPTX
The web as it should be
PPTX
IE9 the story so far
PPTX
Using HTML5 and CSS3 today
Blockchain Explain
HItchhickers Guide to TypeScript
HTML5 and Human Interaction
Building apps why you should bet on the web
The web as it should be
IE9 the story so far
Using HTML5 and CSS3 today
Ad

Recently uploaded (20)

PDF
Website Design Services for Small Businesses.pdf
PPTX
CHAPTER 2 - PM Management and IT Context
PDF
wealthsignaloriginal-com-DS-text-... (1).pdf
PPTX
Why Generative AI is the Future of Content, Code & Creativity?
PPTX
Weekly report ppt - harsh dattuprasad patel.pptx
PPTX
Reimagine Home Health with the Power of Agentic AI​
PPTX
Computer Software and OS of computer science of grade 11.pptx
PDF
How to Make Money in the Metaverse_ Top Strategies for Beginners.pdf
PDF
Product Update: Alluxio AI 3.7 Now with Sub-Millisecond Latency
PDF
CCleaner Pro 6.38.11537 Crack Final Latest Version 2025
PDF
AI-Powered Threat Modeling: The Future of Cybersecurity by Arun Kumar Elengov...
PDF
Wondershare Filmora 15 Crack With Activation Key [2025
PDF
iTop VPN Free 5.6.0.5262 Crack latest version 2025
DOCX
Greta — No-Code AI for Building Full-Stack Web & Mobile Apps
PDF
Download FL Studio Crack Latest version 2025 ?
PPTX
Advanced SystemCare Ultimate Crack + Portable (2025)
PPTX
Oracle Fusion HCM Cloud Demo for Beginners
PPTX
Patient Appointment Booking in Odoo with online payment
PDF
AutoCAD Professional Crack 2025 With License Key
PPTX
Log360_SIEM_Solutions Overview PPT_Feb 2020.pptx
Website Design Services for Small Businesses.pdf
CHAPTER 2 - PM Management and IT Context
wealthsignaloriginal-com-DS-text-... (1).pdf
Why Generative AI is the Future of Content, Code & Creativity?
Weekly report ppt - harsh dattuprasad patel.pptx
Reimagine Home Health with the Power of Agentic AI​
Computer Software and OS of computer science of grade 11.pptx
How to Make Money in the Metaverse_ Top Strategies for Beginners.pdf
Product Update: Alluxio AI 3.7 Now with Sub-Millisecond Latency
CCleaner Pro 6.38.11537 Crack Final Latest Version 2025
AI-Powered Threat Modeling: The Future of Cybersecurity by Arun Kumar Elengov...
Wondershare Filmora 15 Crack With Activation Key [2025
iTop VPN Free 5.6.0.5262 Crack latest version 2025
Greta — No-Code AI for Building Full-Stack Web & Mobile Apps
Download FL Studio Crack Latest version 2025 ?
Advanced SystemCare Ultimate Crack + Portable (2025)
Oracle Fusion HCM Cloud Demo for Beginners
Patient Appointment Booking in Odoo with online payment
AutoCAD Professional Crack 2025 With License Key
Log360_SIEM_Solutions Overview PPT_Feb 2020.pptx

A Developer Primer on Blockchain

  • 1. @ t h e b e e b s A Developer Primer on Blockchain Martin Beeby Principle Evangelist AWS
  • 2. @ t h e b e e b s M a r t i n B e e b y @ t h e b e e b s A software developer since I was 16 Developer for 20 years Work at Amazon Web Services MARTIN BEEBY @THEBEEBS
  • 3. @ t h e b e e b s M a r t i n B e e b y TERESANUSRET DONALD @ t h e b e e b s THREE PEOPLE
  • 4. @ t h e b e e b s M a r t i n B e e b y @ t h e b e e b s ALL WORK IN AN OFFICE
  • 5. @ t h e b e e b s M a r t i n B e e b y @ t h e b e e b s NUSRET THE BAKER
  • 6. @ t h e b e e b s M a r t i n B e e b y TERESANUSRET DONALD @ t h e b e e b s THEY BUY
  • 7. @ t h e b e e b s M a r t i n B e e b y TERESANUSRET DONALD @ t h e b e e b s TERESA BUYS
  • 8. @ t h e b e e b s M a r t i n B e e b y TERESANUSRET DONALD @ t h e b e e b s DONALD BUYS
  • 9. @ t h e b e e b s M a r t i n B e e b y TERESANUSRET DONALD @ t h e b e e b s TERESA SELLS
  • 10. @ t h e b e e b s M a r t i n B e e b y TERESANUSRET DONALD @ t h e b e e b s NUSRET ALSO BUYS
  • 11. @ t h e b e e b s M a r t i n B e e b y @ t h e b e e b s Handsome Smart Remote Worker NEW PERSON JOINS THE TEAM
  • 12. @ t h e b e e b s M a r t i n B e e b y @ t h e b e e b s MARTIN
  • 13. @ t h e b e e b s M a r t i n B e e b y @ t h e b e e b s Transferring Money between them is now harder Easy to lose track of who owes what Lets build a database MONEY IS A PAIN
  • 14. @ t h e b e e b s M a r t i n B e e b y @ t h e b e e b s Martin Controls it Each cake sale is a transaction The seller tells martin about the transaction. He records it CREATE A DATABASE
  • 15. @ t h e b e e b s M a r t i n B e e b y DONALD MARTIN @ t h e b e e b s TERESANUSRET TRANSACTIONS
  • 16. @ t h e b e e b s M a r t i n B e e b y @ t h e b e e b s Trust Required (Fraud) Transparency Central Control WHAT’S THE PROBLEM?
  • 17. @ t h e b e e b s M a r t i n B e e b y @ t h e b e e b s Most Business run this way Big Databases are not a problem If there is Trust
  • 18. @ t h e b e e b s M a r t i n B e e b y @ t h e b e e b s MARTIN HAS A CAKE PROBLEM
  • 19. @ t h e b e e b s M a r t i n B e e b y DONALD MARTIN @ t h e b e e b s TERESANUSRET DATABASE FOR EVERYONE
  • 20. @ t h e b e e b s M a r t i n B e e b y @ t h e b e e b s Hard to keep in sync Hard to agree Hard to reach consensus PEOPLE COULD STILL DEFRAUD
  • 21. @ t h e b e e b s
  • 22. @ t h e b e e b s M a r t i n B e e b y Blockchain builds trust in a network Eliminates the need for central authority in business networks Three main components: distributed ledger, consensus mechanism, and “smart contract” execution environment
  • 23. @ t h e b e e b s M a r t i n B e e b y Customers are experimenting in many industries Proof of Ownership Digital Security Trading Documents/Contracts Enterprise Platforms Financial Insurance Mortgage Loans Voting Mechanisms Patient Records Corporate Governance HCLS Real Estate Legal Agriculture Gaming M & E Transportation Digital Advertising Power/Utilities Retail Capital Markets Cloud OWNERSHIPPRIVATE MARKETS DERIVATIVES WAGERS GLOBAL PAYMENTS REMITTANCE NOTARISATION EQUITY MICROFINANCE INTELLECTUAL PROPERTY TITLE RECORD ESCROW DIGITAL RIGHTS E-COMMERCE DEBT CROWDFUNDING P2P LENDING HEALTHCARE VOTING TRUSTEES SMART CONTRACTS DIGITAL CURRENCY SECURITIES RECORD KEEPING BLOCKCHAIN TECHNOLOGY
  • 24. @ t h e b e e b s M a r t i n B e e b y DONALD MARTIN @ t h e b e e b s TERESANUSRET PUBLIC AND PRIVATES OR CERTIFICATE Private Key Private Key Private Key Private Key Address 1 Address 2 Address 3 Address 6 Address 5
  • 25. @ t h e b e e b s M a r t i n B e e b y @ t h e b e e b s TRANSACTIONS Sender Amount Receiver Signed Address 1 5 Address 2 110101010 Address 2 4 Address 3 010101010 Address 3 3 Address 1 010011010
  • 26. @ t h e b e e b s M a r t i n B e e b y @ t h e b e e b s Listen for transactions and validates them Order transactions into a block Creates and hashes blocks PEERS LISTEN FOR TRANSACTIONS Sender Receiver Signed Address 1 5 Address 2 110101010 Address 2 4 Address 3 010101010 Address 3 3 Address 1 010011010
  • 27. @ t h e b e e b s M a r t i n B e e b y @ t h e b e e b s HASHING SHA256 446F09C5D7DB665A 851077054EBC7067 56E372A32C8753F0 428B6671CA6CE449 In west Philidelphia born and raised on the play ground was where I spent most of my days. Chilling 223E8E360399E82A C97B37A73FA1F532 071F03D8A174FA56 6D44F1770CC37D9A Istanbul
  • 28. @ t h e b e e b s M a r t i n B e e b y Suggest blocks to the network Other validating peers will verify the block. But how can they trust the new block? How do they reach consensus?
  • 29. @ t h e b e e b s M a r t i n B e e b y @ t h e b e e b s Solve a complex problem involving the hashing of the block Would be very expensive to try and present incorrect blocks Miners on bitcoin spend huge sums of money on electric PROOF OF WORK Jargon: A Consensus Algorithm
  • 30. @ t h e b e e b s M a r t i n B e e b y @ t h e b e e b s Proof of Stake Proof of Elapsed Time Byzantine fault tolerant OTHER CONSENSUS ALGORITHM
  • 31. @ t h e b e e b s M a r t i n B e e b y 80801 72456 80801 98994 A series of blocks that are hashed And linked by the hash of the previous block 80801 72456 34623
  • 32. @ t h e b e e b s M a r t i n B e e b y DONALD MARTIN @ t h e b e e b s TERESANUSRET OTHER PEERS VERIFY
  • 33. @ t h e b e e b s M a r t i n B e e b y @ t h e b e e b s PEERS THEN BUILD ANOTHER
  • 34. @ t h e b e e b s M a r t i n B e e b y @ t h e b e e b s A list of transactions grouped into blocks Blocks chained together by knowing the previous hash Nothing can be easily altered, the slightest modification would be obvious A BLOCKCHAIN IS Jargon: Merkle Tree 80801 72456 80801 72456 34623
  • 35. @ t h e b e e b s M a r t i n B e e b y What Can A Developer Do? Smart Contracts (chaincode) and Build Distributed apps
  • 36. @ t h e b e e b s M a r t i n B e e b y Public and permissioned networks Public networks allow anyone to participate in the network. Members are incentivized to maintain the network Permissioned networks limit the members to known entities
  • 37. @ t h e b e e b s
  • 38. Network 1 – Managed Blockchain VPC endpoint VPC endpoint Account A Account B
  • 39. @ t h e b e e b s M a r t i n B e e b y Chaincode basics Code executed on the network, and can query and update ledger Fabric supports chaincode in three languages: Chaincode execute within a docker container on peer nodes Chaincode has two operations in its interface: • Init()—initializes the chaincode with parameters • Invoke()—invokes the chaincode with parameters
  • 40. @ t h e b e e b s M a r t i n B e e b y Peer nodes Ordering service blob3 blckNo tx1 tx2 Block forming blob1 Verify endorsement, readset If OK then apply writeset Else invalid transaction (blob) Genesis block Submitting client Peer Validated Ledger (VL)PeerLedger PeerLedger Validated Ledger blockblock seqNo=blckNo 3 4 seqNo blob1 blob2 Orders • Stores a copy of the ledger database • Executes chaincode and endorses transactions • Validates transactions before the final commit to ledger
  • 41. @ t h e b e e b s M a r t i n B e e b y Endorsement policies Endorsement policies allow chaincode to specify which members (or how many) need to validate a transaction before submitting Endorsed transactions then get submitted to the ordering service and assembled into blocks Member 1 client Hyperledger Fabric ordering service Ledger LedgerMember 2 Peer Member 1 Peer 1 3 2 1 3
  • 42. @ t h e b e e b s M a r t i n B e e b y @ t h e b e e b s From Sea to Table Lots of Fraud Could benefit from Transparency THE TUNA SUPPLY CHAIN
  • 43. @ t h e b e e b s M a r t i n B e e b y @ t h e b e e b s Sarah is the fisherman who sustainably and legally catches tuna. Regulators verify that the tuna has been legally/sustainably caught. Miriam is a restaurant owner who wants legal/sustainable tuna TUNA SUPPLY CHAIN Carl is another restaurant owner fisherman Sarah can sell tuna to.
  • 44. @ t h e b e e b s M a r t i n B e e b y @ t h e b e e b s Sarah sells at different prices Privacy around deals Carl shouldn’t see Miriams price DEALS NEED TO BE PRIVATE
  • 45. @ t h e b e e b s M a r t i n B e e b y
  • 46. @ t h e b e e b s M a r t i n B e e b y Channels for access control Channels allow isolation of transactions among specific members in the network Create or update a channel with configuration transaction (configtx) Member 1 Member 2 Member 3 Channel 2 Ledger Channel 1 Ledger Hyperledger Fabric ordering service Channel 2Channel 1 Member 2 Peer Member 3 Peer Member 1 Peer
  • 47. @ t h e b e e b s M a r t i n B e e b y @ t h e b e e b s CHAINCODE package main import ( "fmt" "github.com/hyperledger/fabric/core/chaincode/shim" "github.com/hyperledger/fabric/protos/peer" )
  • 48. @ t h e b e e b s M a r t i n B e e b y @ t h e b e e b s TUNA STRUCT type Tuna struct { Vessel string ‘json:"vessel"’ Datetime string ‘json:"datetime"’ Location string ‘json:"location"’ Holder string ‘json:"holder"’ }
  • 49. @ t h e b e e b s M a r t i n B e e b y @ t h e b e e b s INIT func (s *SmartContract) initLedger(APIstub shim.ChaincodeStubInterface) sc.Response { tuna := []Tuna{ Tuna{Vessel: "923F", Location: "67.0006, -70.5476", Timestamp: "1504054225", Holder: "Miriam"}, Tuna{Vessel: "M83T", Location: "91.2395, -49.4594", Timestamp: "1504057825", Holder: "Dave"}, Tuna{Vessel: "T012", Location: "58.0148, 59.01391", Timestamp: "1493517025", Holder: "Igor"}, Tuna{Vessel: "P490", Location: "-45.0945, 0.7949", Timestamp: "1496105425", Holder: "Amalea"}, Tuna{Vessel: "S439", Location: "-107.6043, 19.5003", Timestamp: "1493512301", Holder: "Rafa"}, Tuna{Vessel: "J205", Location: "-155.2304, -15.8723", Timestamp: "1494117101", Holder: "Shen"}, Tuna{Vessel: "S22L", Location: "103.8842, 22.1277", Timestamp: "1496104301", Holder: "Leila"}, Tuna{Vessel: "EI89", Location: "-132.3207, -34.0983", Timestamp: "1485066691", Holder: "Yuan"}, Tuna{Vessel: "129R", Location: "153.0054, 12.6429", Timestamp: "1485153091", Holder: "Carlo"}, Tuna{Vessel: "49W4", Location: "51.9435, 8.2735", Timestamp: "1487745091", Holder: "Fatima"}, } i := 0 for i < len(tuna) { fmt.Println("i is ", i) tunaAsBytes, _ := json.Marshal(tuna[i]) APIstub.PutState(strconv.Itoa(i+1), tunaAsBytes) fmt.Println("Added", tuna[i]) i = i + 1 } return shim.Success(nil) }
  • 50. @ t h e b e e b s M a r t i n B e e b y
  • 51. @ t h e b e e b s M a r t i n B e e b y @ t h e b e e b s INVOKE func (s *SmartContract) Invoke(APIstub shim.ChaincodeStubInterface) sc.Response { // Retrieve the requested Smart Contract function and arguments function, args := APIstub.GetFunctionAndParameters() // Route to the appropriate handler function to interact with the ledger appropriately if function == "queryTuna" { return s.queryTuna(APIstub, args) } else if function == "initLedger" { return s.initLedger(APIstub) } else if function == "recordTuna" { return s.recordTuna(APIstub, args) } else if function == "queryAllTuna" { return s.queryAllTuna(APIstub) } else if function == "changeTunaHolder" { return s.changeTunaHolder(APIstub, args) } return shim.Error("Invalid Smart Contract function name.") }
  • 52. @ t h e b e e b s M a r t i n B e e b y @ t h e b e e b s QUERYTUNA func (s *SmartContract) queryTuna(APIstub shim.ChaincodeStubInterface, args []string) sc.Response { if len(args) != 1 { return shim.Error("Incorrect number of arguments. Expecting 1") } tunaAsBytes, _ := APIstub.GetState(args[0]) if tunaAsBytes == nil { return shim.Error(“Could not locate tuna”) } return shim.Success(tunaAsBytes) }
  • 53. @ t h e b e e b s M a r t i n B e e b y @ t h e b e e b s RECORDTUNA func (s *SmartContract) recordTuna(APIstub shim.ChaincodeStubInterface, args []string) sc.Response { if len(args) != 5 { return shim.Error("Incorrect number of arguments. Expecting 5") } var tuna = Tuna{ Vessel: args[1], Location: args[2], Timestamp: args[3], Holder: args[4]} tunaAsBytes, _ := json.Marshal(tuna) err := APIstub.PutState(args[0], tunaAsBytes) if err != nil { return shim.Error(fmt.Sprintf("Failed to record tuna catch: %s", args[0])) } return shim.Success(nil) }
  • 54. @ t h e b e e b s M a r t i n B e e b y @ t h e b e e b s CHANGETUNAHOLDER func (s *SmartContract) changeTunaHolder(APIstub shim.ChaincodeStubInterface, args []string) sc.Response { if len(args) != 2 { return shim.Error("Incorrect number of arguments. Expecting 2") } tunaAsBytes, _ := APIstub.GetState(args[0]) if tunaAsBytes != nil { return shim.Error("Could not locate tuna") } tuna := Tuna{} json.Unmarshal(tunaAsBytes, &tuna) // Normally check that the specified argument is a valid holder of tuna but here we are skipping this check for this example. tuna.Holder = args[1] tunaAsBytes, _ = json.Marshal(tuna) err := APIstub.PutState(args[0], tunaAsBytes) if err != nil { return shim.Error(fmt.Sprintf("Failed to change tuna holder: %s", args[0])) } return shim.Success(nil) }
  • 55. @ t h e b e e b s Install Chain Code from the CLI peer chaincode install –n tunachaincode –-v v0 -p src/chaincode_tuna/go
  • 56. @ t h e b e e b s Check Installed Chain Code from the CLI peer chaincode list --instantiated -o $ORDERER -C mychannel --cafile /opt/home/managedblockchain-tls-chain.pem –tls Name: tunachaincode Version: v0 Path: src/chaincode_tuna/go
  • 57. @ t h e b e e b s Invoke peer chaincode invoke -C mychannel -n tunachaincode -c '{"Args":["invoke",”queryTuna"]}' -o $ORDERER --cafile /opt/home/managedblockchain- tls-chain.pem --tls
  • 58. @ t h e b e e b s M a r t i n B e e b y
  • 59. @ t h e b e e b s M a r t i n B e e b y
  • 60. @ t h e b e e b s M a r t i n B e e b y @ t h e b e e b s CALLING SOME CODE // changeTunaHolder - requires 2 argument var request = { chaincodeId:’ tunachaincode’, fcn: 'changeTunaHolder', args: ['1', 'Alex'], chainId: 'mychannel', txId: tx_id }; return channel.sendTransactionProposal(request);
  • 61. @ t h e b e e b s
  • 62. @ t h e b e e b s M a r t i n B e e b y Need for a ledger with centralized trust DMV Track vehicle title history Manufacturers Track distribution of a recalled product HR & Payroll Track changes to an individual’s profile Healthcare Verify and track hospital equipment inventory LEDGERS WITH CENTRALIZED TRUST1
  • 63. @ t h e b e e b s M a r t i n B e e b y Need for running transactions with decentralized trust 2 Financial institutions Peer-to-peer payments Mortgage lenders Process syndicated loans Supply Chain Transact with suppliers and distributers Retail Streamline customer rewards TRANSACTIONS WITH DECENTRALIZED TRUST
  • 64. @ t h e b e e b s M a r t i n B e e b y Blockchain services at AWS Amazon Quantum Ledger Database (QLDB) Amazon Managed Blockchain
  • 65. @ t h e b e e b s Amazon Quantum Ledger Database (QLDB) Fully managed ledger database with a central trusted authority
  • 66. @ t h e b e e b s M a r t i n B e e b y Challenges customers face Building Ledgers with traditional databases Difficult to manage and scale Impossible to verify Error prone and incomplete Resource intensive Blockchain approaches Designed for a different purpose Adds unnecessary complexity
  • 67. @ t h e b e e b s M a r t i n B e e b y Amazon Quantum Ledger Database (QLDB) (Preview) Fully managed ledger database Track and verify history of all changes made to your application’s data Maintains a sequenced record of all changes to your data, which cannot be deleted or modified; you have the ability to query and analyze the full history Immutable Uses cryptography to generate a secure output file of your data’s history Cryptographically verifiable Easy to use, letting you use familiar database capabilities like SQL APIs for querying the data Easy to useHighly scalable Executes 2–3X as many transactions as ledgers in common blockchain frameworks
  • 68. @ t h e b e e b s M a r t i n B e e b y Blockchain components: Distributed Ledger database The journal records an immutable log of all transactions and is maintained by nodes in the blockchain network Block 61 Block hash: 000044bf2efe32 Previous block hash: 000087ea2ffe94 Timestamp Transaction Transaction Block 61 Block hash: 000087ea2ffe94 Previous block hash: 000057ec2fda71 Timestamp Transaction Transaction Block 61 Block hash: 000057ec2fda71 Previous block hash: 0000d68b2f0a3b Timestamp Transaction Transaction
  • 69. @ t h e b e e b s M a r t i n B e e b y What is immutability? 1 Tracy buys a car on Aug 3, 2013 2 Tracy sells car to Ronnie on Sept 10, 2014 DMV QLDB database will add Ronnie’s record Journal Current stateDMV scenario 3 Ronnie’s car gets in an accident and gets totaled DMV QLDB Database adds new row, called “delete” DELETE DATE: 09/02/2016 ID Manufacturer Model Year VIN Owner 1 Tesla Model S 2012 123456789 Traci Russell ID Manufacturer Model Year VIN Owner 1 Tesla Model S 2012 123456789 Ronnie Nash ID Manufacturer Model Year VIN Owner Built from ground-up in such a way that Journal cannot be modified or altered Entire change history is easily accessible DMV QLDB database will add Traci’s record
  • 70. @ t h e b e e b s M a r t i n B e e b y “Healthdirect Australia operates in a heavily regulated industry, and it is critical that our compliance data is correct and auditable. With Amazon QLDB we look forward to having a complete and verifiable history of every change in our system, making it simple to audit when and how we arrived at our current state. Regulatory compliance is fact of life for healthcare companies, and Amazon QLDB enables us to easily track the controls we have in place and understand how they have changed over time.” —Bruce Haefele General Manager, Technology, Healthdirect Australia
  • 71. @ t h e b e e b s Amazon Managed Blockchain Fully managed blockchain service, supporting both Hyperledger Fabric and Ethereum frameworks
  • 72. @ t h e b e e b s M a r t i n B e e b y Challenges with existing blockchain solutions Complicated to manage Setup is hard Hard to scale Expensive
  • 73. @ t h e b e e b s M a r t i n B e e b y Amazon Managed Blockchain Easily create and manage scalable blockchain networks Quickly create blockchain networks that span multiple AWS accounts. Easily add or remove members and monitor the network Fully managed Choice of Hyperledger Fabric or Ethereum Improves reliabilityScalable and secure Easily scale your blockchain network as the usage grows. Also, Managed Blockchain secures your network certificates with KMS Choose the right framework for your needs, whether you are building a permissioned or public network Managed Blockchain improves the reliability of the “ordering service,” by replacing the default technology with QLDB. This improves durability
  • 74. @ t h e b e e b s M a r t i n B e e b y Hyperledger Fabric and Ethereum benefits Useful for a finite set of known users Well-suited for applications that require stringent privacy and permission controls with a known set of members For example, a financial application where certain trade-related data is only shared with select banks and other members in the network don’t have access to the data Hyperledger Fabric Useful for an infinite number of unknown users Well suited for highly distributed blockchain networks where transparency of data for all members is important For example, a digital identity network comprising of farmers and government organization, where an infinite number of farmers can join the network and information regarding their land, crop yields, etc., is shared across all members on the blockchain Ethereum
  • 75. @ t h e b e e b s M a r t i n B e e b y How Amazon Managed Blockchain works Amazon Managed Blockchain Create a network Choose an open source blockchain framework, set up a new blockchain network and your membership in your AWS account with just a few clicks Invite members Invite other AWS accounts to join the network Add nodes Create and configure blockchain peer nodes that store a copy of the distributed ledger Deploy applications Create and deploy decentralized applications to your network through your per nodes. Transact with other members on the network
  • 76. @ t h e b e e b s M a r t i n B e e b y “Given our vast partner ecosystem, we are exploring the decentralization and immutable tracking benefits of blockchain for potential applications in our insurance business. We believe blockchain can improve the transparency and efficiency for stakeholders in these networks to transact, while still maintaining an independently verifiable lineage of activities. However, blockchain frameworks are complex and difficult to operate. With Amazon Managed Blockchain, we can now easily create Hyperledger Fabric blockchain networks to test and learn without worrying about managing the underlying infrastructure, networking, and software configuration.” —Daniel Johnson CTO and Head of Innovation, Guardian Life Insurance Company
  • 77. @ t h e b e e b s M a r t i n B e e b y Summary: helping customers identify the right AWS blockchain service Owned by a single, trusted authority Addresses core need of a immutable and verifiable transactional log It’s a database, so its fast, as it doesn’t require consent from members Amazon QLDB Amazon Managed Blockchain No single owner of the ledger. Joint ownership by multiple parties Addresses core need of enabling multiple parties to transact transparently and with trust with each other Removes intermediaries when a group of members needs to transact. So it makes business processes more efficient Ownership Addresses Need Key Benefit
  • 78. @ t h e b e e b s M a r t i n B e e b y Next steps • Learn more about our services and sign up for our preview today! Amazon Managed Blockchain landing page: https://aws.amazon.com/managed- blockchain • How to deploy an app with Amazon Managed Blockchain : https://aws.amazon.com/blogs/database/tag/amazon-managed-blockchain/ • Amazon QLDB landing page: https://aws.amazon.com/qldb
  • 79. @ t h e b e e b s M a r t i n B e e b y Thank you! @ t h e b e e b s Martin Beeby @thebeebs