Blockchain for business

James Taylor
jamest@uk.ibm.com
@jtonline

Quick links

such crypto,

so coin

wow

  • Blockchain for business
  • Vehicle lifecycle demo
  • Hyperledger projects
  • Q&A

Bonus: online tutorial

Business networks

  • Customers
  • Suppliers
  • Banks
  • Partners
  • etc.

Geographic and regulatory boundaries

Assets

  • Tangible
    e.g. car
  • Intangible
    e.g. personal lease plan

Ledgers

Ledgers!

https://congacomic.tumblr.com

  • Business terms executed with transactions
  • Append-only distributed system of record
  • Verifiable audit trail
  • Privacy and confidentiality

Vehicle Lifecycle Demo

Alex

Agency for Vehicle Standards

Paul

Buyer/Owner

Customer mobile app

Debbie

Vehicle & Drivers Authority (VDA)

VDA dashboard

Tommen

Insurer

Prince Insurance dashboard

Mike

Arium Logistics

Arium manufacture dashboard

Vada

Police

'The' blockchain?

  • Hyperledger Fabric
  • Shared, replicated ledger
  • Smart contracts
  • Consensus
  • Immutability
  • Confidentiality
  • Reflect business processes by specifying who endorses transactions
  • Modular architecture and flexible hosting options

Starring

  • Hyperledger Composer

Extensive, familiar, and open development toolset

  • Model business networks in domain specific language
  • Write Javascript transaction processor functions
  • Test!
  • Expose via APIs
  • Generate apps

							asset Vehicle identified by vin {
								o String vin
								o VehicleDetails vehicleDetails
								o VehicleStatus vehicleStatus
								--> Person owner optional
								o String numberPlate optional
							}
						

							transaction TransferVehicle {
								--> Vehicle vehicle
								--> Person seller
								--> Person buyer
								o String specialNotes optional
							}
						

							/**
							 * Transfer a vehicle to another owner
							 * @param {org.example.TransferVehicle} transferVehicle - the TransferVehicle transaction
							 * @transaction
							 */
							function transferVehicle(transferVehicle) {
								var currentParticipant = getCurrentParticipant();
								
								var vehicle = transferVehicle.vehicle;						
								var seller = transferVehicle.seller;
								var buyer = transferVehicle.buyer;

								// ...
				
								vehicle.owner = buyer;
												
								return getAssetRegistry('org.example.Vehicle')
									.then(function(assetRegistry) {
										return assetRegistry.update(vehicle);
									});
							}
						

							rule TransferVehicleRule {
								description: "Owner can transfer vehicle"
								participant(p): "org.example.Person"
								operation: READ, CREATE, UPDATE
								resource(v): "org.example.Vehicle"
								transaction(tx): "org.example.TransferVehicle"
								condition: (v.owner.getIdentifier() == p.getIdentifier())
								action: ALLOW
							}
						

With

  • Node-RED
  • Watson IoT

Q&A

Composer Playground Tutorial

https://composer-playground.mybluemix.net/

Thursday = release day!