Learn to create your identity on the Blockchain and interact with an existing web service.
Building your own Private Blockchain utilizing Node.js with LevelDB.
Create a web API using a Node.js framework that will interact with your private blockchain to submit and retrieve blockchain data.
Utilizing your existing web API, you will create a star registry notarization service.
Build additional functionality with your smart contract and deploy it on the public testnet to create a DApp.
- Ledger: A system of record for a business
- Transaction: An asset transfer onto or off the ledger
- Contract: Terms & Conditions for a transaction to occur
- Blockchain: A trusted distributed ledger with shared business processes
- An unregulated shadow currency
- Having property of anonymity
- We don’t know who we are sending a bitcoin to
- We don’t know whom we are receiving a bitcoin from
- Extremely computational resource intensive to make the bitcoin network work
- We prioritize identity over anonymity
- We prioritize selective endorsement over proof of work (we get to choose who in the network will validate a particular transaction - it’s more computationally efficient than bitcoin
- We prioritize assets over cryptocurrencies
- Shared ledger: Append-only distributed system of record shared across business networks
- Privacy: Ensuring appropriate visibility; transactions are secure, authenticated and verifiable
- Smart Contracts: Business terms embedded in transaction database & executed with transactions
- Trust: Transaction are endorsed by relevant participants, Independent Audits
- Shared between participants
- Participants have their own copy through replication
- Permission: The participants only see appropriate transactions
- A shared system of record
- A way of encoding & sharing the shared business process in blockchain
- You take the english contract & encode it into Solidity, a programming language
- Are verified
- Are signed
- Transactions need to be authenticated
- Participants need an identity not linked to the transaction
- Participants need appropriate confidentiality between subsets of participants
- Making sure that blockchain is tamper-proof
- Selected members from business network endorse the transactions
- When transactions are endorsed they are added to the blockchain
- This gives us the concept of Verifiable Audit Trail
- Transactions cannot be modified, inserted or deleted
- The concept of trust is achieved via:
- Consensus
- Provenance
- Immutability
- Finality
- Saves time: Transaction processing time becomes instantaneous
- Reduces cost: Removes overheads & costly intermediaries
- Reduces risk: Tampering, fraud and cyber crime
- Increases trust: Through shared processes & record keeping
For example, a business network that runs on a blockchain can speed up transaction processes and audits. That in turn reduces costs and can lead to greater customer satisfaction. A business that runs a supply chain network can benefit from blockchain by reducing errors in shipments, have better tracking of materials and, reduce the risk of illicit tampering of records.
- Trade finance
- Foreign currency payments
- Mortgages
- Asset registration
- Citizen identification
- Medical records
- Medicine Supply Chain
- SCM
- Customer Loyalty Programs
- Information Sharing (supplier - retailer)
- Claims processing
- Risk Provenance
- Asset usage history
- Claims file
- SCM
- Product part identification
- Maintenance tracking records
- Consensus
- Provenance
- Immutability
- Finality These four are key elements to achieve trust in blockchain
Key to success: don’t try to boil the ocean, and don’t go for the big high powered, high impact use case first. Look for something small and a room for improvement.
A hierarchy of different usages in listed below. As you move downward. It’s much easier to start with something on the compliance ledger and work your way up the stack than really trying to start higher.
- Real-time view of compliance, audit & risk data
- Provenance, immutability & finality are key
- Transparent access to auditor & regulator
- Created by a small set of participants
- Share key reference data
- Consolidated, consistent real-time view
- Sharing of assets (voting, dividend notifications)
- Assets are information, not financial
- Provenance & finality are key
- Transfer of high value of financial assets
- Between many participants in a market
- Regulatory timeframes
So customers need to go through an awareness journey to understand what smart contracts can do for their business, and how can they improve the operations in their network using blockchain.
- An organization who enforces the rule of play
- E.g. bank
- Often funded by members of a business network
- Provide technical advice on industry trends
- Encourages best practice by making recommendations to members
- The organization who innovates
- Creates a new product or service, and business process
- Creates a new business process for an existing product or service
We can start with any of the aforementioned players or even with a combination of them
Linux Foundation Hyperledger Project, which is an open source, collaborative effort that seeks to advance blockchain technologies. IBM also offers the IBM Blockchain Platform that can help you build and operate a complete business network. The Platform also provides tools to help you align the needs of developers and business leaders in your organization.
Transferring assets is the heart of blockchain.
How can people buy and sell or transfer goods in a business network without any central governing body or policy? (Look at web demo) Hyperledger Composer
- A suite of high level application abstractions for business networks
- Being model at the level of assets, participants and
- It enables a quick solution
- Model your business network, test and deploy
- Applications use APIs to interact with a business network
- Integrate existing systems of record using loopback/REST
- Increases understanding: from business concepts to blockchain
- Saves time: develop blockchain applications more quickly and cheaply
- Reduces risk: well tested, efficient design conforms to best practice
- Increases flexibility: higher level abstraction makes it easier to iterate
Hyperledger Fabric is like the operating system. Hyperledger Composer is like the API.
Business network is defined by Models, Script Files, ACLs and Metadata and packaged in a Business Network Archive.
When a transaction is submitted, the blockchain run time is going to find the script functions that are interested in that transaction and then run them. Those script functions can have side effects on assets that are being managed in asset registries.
-
Ledger: A ledger is a channel’s chain and current state data which is maintained by each peer on the channel
-
Smart Contract: Software running on a ledger, to encode assets and the transactions instructions for modifying the assets
-
Peer network: A broader term overarching the entire transactional flow, which serves to generate an agreement on the order and to confirm the correctness of the set of transactions constituting a block
-
Membership: Membership services authenticates, authorizes and manages identities on a permissioned blockchain network
-
Events: Creates notifications of significant operations on the blockchain (e.g. a new block), as well as notifications related to smart contracts
-
Systems management: Provides the ability to create, change & monitor blockchain components
-
Wallet: Securely manages a user’s security credentials (Private Key)
-
Systems Integration: Responsible for integrating blockchain bi-directionally with external systems. Not part of the blockchain
Developers care about application and smart contracts They don’t care about peers, consensus & security
A ledger often consists of two data structures: blockchain and world state Blockchain is:
- A linked list of blocks
- Each block describes a set of transactions
- Immutable - blocks cannot be tampered with or altered
And also we have world’s state: What it does is to record the current state of all your assets
World State is:
- An ordinary database (e.g. key/value store)
- Stores the combined outputs of all transactions
- Not usually immutable
Operators’ interests are in the deployment & operation part of the blockchain:
- Peers
- Consensus
- Security
They don’t care about development concerns, such as:
- Application Code
- Smart Contract Code
- Events and Integration
Examples:
- They make sure that peers are up to date
- Making them work together in the way that they should
- Ensuring that consensus is happening in the way that it should be taking place
- What security methods do we need?
Consensus is the process of maintaining a consistent ledger
Consensus helps us to:
- Keep all peers up-to-date
- Fix any peers in error
- Quarantine all malicious nodes
Some examples of consensus algorithms:
- Proof of work
- Proof of stake
- Solo
- Kafka/Zookeeper
- Proof of elapsed time
- PBFT-based (Hyperledger fabric uses this)
Public: * For example Bitcoin * Transactions are viewable by everyone * Participant identity is almost impossible to infer Private: * For example Hyperledger Fabric * Network members are known, but transactions are secret
Architect should care about the following:
- Performance
- Amount of data being shared
- Number and location of peers
- Latency and throughput
- Batching characteristics
- Security
- Type of data being shared and with whom
- How is identity achieved
- Confidentiality of transaction queries
- Who verifies transactions Resiliency
- Resource failure
- Malicious activity
- No-determinism
