m Hyperledger Fabric Solution Concepts

https://gerrit.hyperledger.org/r/Documentation/user-search.html

Key Points

  • Fabric is the number 1 Enterprise Blockchain ( 27 out of 50 companies building on it in 2019 )
  • The Fabric documentation ( see References below ) is the right place to learn blockchain concepts and details on building and deploying Fabric blockchain solutions
  • Fabric is more than open-source, it's a transparent organization you can participate in directly. It's the lowest risk platform to delivery blockchain solutions
  • Hyperledger presentations available ( access here )
  • Hyperledger Fabric is open-source software framework, tools and runtime for permissioned blockchains ( eg NOT Bitcoin )
  • Node server applications can call Fabric smart contracts ( aka chaincode ) using the Nodejs Fabric SDK. SDKs for other languages exist.
  • Fabric smart contracts can be written in languages like Nodejs, GO, Java.
  • Fabric blockchain ledgers have 2 parts: an immutable "chain of blocks ( of transactions )" in the file system and a database ( CouchDb ) with current entity state
  • The Fabric runtime is different than our cloud applications in many ways
  • The Fabric runtime is different than other blockchain frameworks in it's consensus models to deliver better performance
  • Fabric runs in Docker containers on Linux instancesAn overview on DMX University is here for Hyperledger resources
  • Beginning with Fabric 2.x, Fabric is distributed using Alpine Docker containers
  • Plan for change in any solution - Fabric will continue to lead on features and performance. Existing solutions will benefit from future migrations to newer foundations

References

Reference_description_with_linked_URLs___________________________________Notes__________________________________________________________
VCE > Value Chain Economies: micro economies for value-chain communities ( VCC )#ReImagineFinancialServices-ValueChainEconomyrunningonaDigitalAssetNetwork(DAN)VCE - Value Chain Economy on DAN - Digital Asset Network - DLT business model
s Blockchain Opportunity Assessment - BOABOA - Blockchain Opportunity Assessment
m.Blockchain Use CasesKey Blockchain Use Cases to review
m Blockchain Use Cases MoreMore Blockchain Use Cases to review




m Fabric Dev 1
m Fabric Tutorials
m Fabric Admin
Hyperledger Fabric Performance




https://github.com/hyperledger/fabricFabric github repo
https://hyperledger-fabric.readthedocs.io/en/latest/Fabric Documentation
https://hyperledger-fabric.readthedocs.io/en/latest/getting_started.htmlFabric Getting Started
https://hyperledger-fabric.readthedocs.io/en/latest/tutorials.htmlFabric Tutorials **
https://github.com/ravinayag/HL-StarterKitFabric Course for multiple versions - open source **
https://hyperledger-fabric.readthedocs.io/en/latest/deployment_guide_overview.htmlFabric Deployment Guide
https://wiki.hyperledger.org/display/fabric/Contributor+Meetings+2020Fabric Contributor Meetings on Hyperledger wiki

https://www.ibm.com/blockchain/what-is-blockchain?

file:///C:/Users/Jim%20Mason/Google%20Drive/_docs/howto/tech/blockchain/concepts/_

ibm_blockchain-4dummies.pdf

Blockchain for Dummies Book provides good intro contexts
https://github.com/hyperledger/fabric/releases/tag/v2.1.0Latest Fabric Release Announcement - 2.1

https://www.hyperledger.org/category/announcements

hyperledger.org-Announcements-200401.pdf

Global Forum Notes


Identity Concepts

CA, PKI

MSP

LDAP ISP
https://medium.com/uport/the-basics-of-decentralized-identity-d1ff01f15df1DID  -

https://labs.hyperledger.org/labs/aries-fabric.html - Lab project for Fabric Aries client

TrustID Decentralized Identity solution compatible with Fabric

SSI for Fabric

Identity Mixer






Blockchain basics: permissionless vs permissioned

https://medium.com/@akadiyala/nuances-between-permissionless-and-permissioned-blockchains-f5b566f5d483

Nuances Between Permissionless and Permissioned Blockchains  Anant Kadiyala

https://jira.hyperledger.org/browse/FAB-67?jql=project
%20in%20(Fabric%2C%20%22Fabric%20CA%22%2C%20%22Fabric%20
SDK%20Node%22)%20and%20type%20in%20(Epic)%20and%20status
%20not%20in%20(Complete%2C%20Closed%2C%20Done%2C%20Duplicate
%2C%20Invalid%2C%20Backlog)%20order%20by%20project%2C%20%20key
Hyperledger Fabric Planning - all open Fabric related epics
https://jira.hyperledger.org/projects/FAB/summaryCurrent Fabric release dashboard
https://gerrit.hyperledger.org/r/q/commercial+owner:+odowdaibmFabric in-process documentation and tickets not yet released


Hyperledger Fabric concepts 
Hyperledger concepts 
Hyperledger, A Greenhouse for Blockchain Projects
Hyperledger hosts and incubates multiple technology projects, all advancing business blockchain frameworks and modules through open source collaboration.

Hyperledger Project and Fabric Resources

https://www.hyperledger.org/

https://wiki.hyperledger.org/

https://wiki.hyperledger.org/display/HYP/Calendar+of+Public+Meetings 

https://wiki.hyperledger.org/display/HYP/Working+Groups

https://wiki.hyperledger.org/display/HYP/Special+Interest+Groups

https://wiki.hyperledger.org/display/fabric/Hyperledger+Fabric

https://wiki.hyperledger.org/display/fabric/Design+Documents

https://wiki.hyperledger.org/display/fabric/Playbacks

https://jira.hyperledger.org/secure/Dashboard.jspa?selectPageId=10104

https://wiki.hyperledger.org/display/fabric/Hyperledger+Fabric+Chaintool

https://wiki.hyperledger.org/display/fabric/File+lists


Main Projects Site page

Wiki page for all Hyperledger projects 

Hyperledger Project public meeting calendar  ( a few meetings forget to add to this calendar )

Hyperledger working groups

SIGS - Special Interest Groups page - industry and social groups

Fabric project wiki home page

Fabric design documents

Fabric playbacks for design reviews - docs and recordings

JIRA  - Fabric feature roadmap - create account, login, query any tickets, related docs in Fabric

Fabric chaintool information page - compile, test, package, deploy

File lists for some community calls and recordings - Fabric Dev and ?

book-menu-HANDSON_BLOCKCHAIN_WITH_HYPERLEDGER.pdf
Fabric Basic Blockchain Introduction 
https://hyperledger-fabric.readthedocs.io/en/latest/whatis.html

The "Hands-on Blockchain with Hyperledger" book is out of date on Fabric technical topics since it was built on version 1.1 primarily. Most of the concept and design ideas are still valid

Recommend using the current Fabric documentation ( readthedocs.io/en/lastest ) pages to get current info that is normally more accurate

Fabric Key Concepts 

https://hyperledger-fabric.readthedocs.io/en/latest/key_concepts.html


Fabric - What's New 

https://hyperledger-fabric.readthedocs.io/en/latest/whatsnew.html#


https://wiki.hyperledger.org/display/fabric/Fabric+Interop+Working+GroupInteroperability Paper
Provide standard interfaces for separate Fabric networks to connect, create and join channels, install and run chaincode and smart contracts.  Feature works in v1.4x and later networks

Private data collections - implicit and explicit
https://docs.google.com/document/d/1ExFNRx-yYoS8FnDIUX1_0UBMha9TvQkfts2kVnDc4KE/edit#heading=h.f53gek6b93swhlf Identity Working Group paper - DID, ZKP etc

MSP - Membership Services Provider   

CA Server Tutorial    


Hyperledger Fabric Developer docs

Fabric - Getting Started 

https://hyperledger-fabric.readthedocs.io/en/latest/getting_started.html


Fabric - Developing Applications
https://hyperledger-fabric.readthedocs.io/en/latest/developapps/
developing_applications.html

Fabric - Tutorials 

https://hyperledger-fabric.readthedocs.io/en/latest/tutorials.html


Fabric - Smart Contracts ( Chaincode ) - a Developer's View

https://hyperledger-fabric.readthedocs.io/en/latest/chaincode4ade.html


Fabric - Smart Contracts ( Chaincode ) - an Operator's View

https://hyperledger-fabric.readthedocs.io/en/latest/chaincode4noah.html


Fabric - CouchDb - the ledger database 

https://hyperledger-fabric.readthedocs.io/en/latest/couchdb_tutorial.html


Fabric - Operations Guides

https://hyperledger-fabric.readthedocs.io/en/latest/ops_guide.html


Fabric - Command Reference

https://hyperledger-fabric.readthedocs.io/en/latest/command_ref.html


Fabric - Architecture Reference 

https://hyperledger-fabric.readthedocs.io/en/latest/architecture.html


Fabric - Glossary

https://hyperledger-fabric.readthedocs.io/en/latest/glossary.html


Fabric Feature Youtube Videos ( 19 )

The Fabric team adds videos to this youtube channel as new features come out
Github Fabric repositoriesyp
https://github.com/hyperledger/fabric

Hyperledger Wiki
https://wiki.hyperledger.org/

Hyperledger Design Documents 

https://wiki.hyperledger.org/display/fabric/Design+Documents

Team design docs for a Hyperledger Feature

Hyperledger Design Feature playbacks

https://wiki.hyperledger.org/projects/fabric/playbacks

Architects present, review online new Fabric features in Zoom here.
< more pages are added all the time from the Fabric doc team >more on governance, administration, policies etc
Hyperledger Training Materials Group site
https://wiki.hyperledger.org/display/LMDWG

How to work on Fabric training materials

https://gist.github.com/tkuhrt/10211ae0a26a91a8c030d00344f7d11b



Hyperledger Training Materials Resources

https://wiki.hyperledger.org/display/LMDWG/Resource+Page

presentations etc free for reuse
https://medium.com/beyondi/tagged/hyperledgerArticles and Tutorials on medium.com about Hyperledger Fabric
https://gerrit.hyperledger.org/r/admin/repos/fabric-docsFabric Gerrit developer docs
https://gerrit.hyperledger.org/r/admin/reposAll Gerrit repos
https://gerrit.hyperledger.org/r/q/commercialGerrit Query commercial in title
https://gerrit.hyperledger.org/r/q/commercial+owner:+odowdaibmGerrit Query commercial in title with owner: odowdaibm
https://gerrit.hyperledger.org/r/c/fabric/+/26306/10/docs/source/developapps/diagrams.pptxgo to pptx page, select gitweb link for latest patch set to download the pptx file
https://gerrit.hyperledger.org/r/q/samplesGerrit Query samples in title
https://gerrit.hyperledger.org/r/Documentation/user-search.htmlGerrit searches
https://gerrit.hyperledger.org/r/c/fabric/+/28958Gerrit - search by Jira ticket in title ... 


Hyperledger Fabric Deployment and Administration
https://www.hyperledger.org/resources/training/hyperledger-fabric-certificationThe Fabric administration course ( still in beta with content upgrades needed before it can be used as a training or certification vehicle )


https://on24static.akamaized.net/event/18/19/16/0/rt/1/documents
/resourceList1537907004843/
linuxfoundationwebinarhlfk8s201809261537907094879.pdf

Github materials 
https://github.com/aidtechnology/lf-k8s-hlf-webinar

Good intro to Fabric deployment on Kubernetes


Hyperledger Fabric certification exam, course: Admin Dev

Hyperledger Super Bundle ( LFS272, CHFA, CHFD)

https://hlf-learning.slack.com/shared_invite/zt-dctmqz5s-dW_u4Zdgm9TgeM1EKHbTow

https://app.slack.com/client/T011A4PHJQ5/learning-slack

Hyperledger Fabric certification study group online
hyperledger-certification-exam-course-fabric-admin-dev-registration-details.pdfFabric Admin Cert course registration
certificationsupport@linuxfoundation.orgemail or course adminsitrators

https://training.linuxfoundation.org/wp-content/uploads/2020/02/Hyperledger-Fabric-Candidate-Handbook-v1.9.pdf

Hyperledger-Fabric-Candidate-Handbook-v1.9.pdf

Fabric Admin Exam Handbook
https://training.linuxfoundation.org/training/hyperledger-fabric-administration-lfs272/LFS272 Cert Fabric Admin Course Registration page
https://portal.linuxfoundation.org/portalMy LFS course portal page to access LFS 272 course


https://training.linuxfoundation.org/cm/prep/?course=LFS272

https://training.linuxfoundation.org/cm/prep/docs/welcome_elearning_LFS272.pdf?ver=1576870116

LFS272 Cert Fabric Admin Course Preparation Concepts

setup requirements for course



Exam Registration Link: https://identity.linuxfoundation.org/pid/976
Exam 100% Coupon Code: CHFAV-0921B0



hyperledger-certification-exam-course-fabric-admin-dev-registration-details.pdfFabric Dev Cert course registration
Exam Registration Link: https://identity.linuxfoundation.org/pid/1452
Exam 100% Coupon Code: CHFDV-57AB8C

https://www.udemy.com/course/certified-hyperledger-fabric-developer-cbdh-practice-exams/learn/quiz/4533392/test#overviewFabric Dev Exam Prep course 1




Books and articles, papers
Enterprise Blockchain Newsletters - 2019 - Biser Dimitrov

IBM Hands-on Blockchain with Hyperledger  ( v1.1 )

https://www.packtpub.com/big-data-and-business-intelligence/hands-blockchain-hyperledger

the table of contents is here:

Fabric-HANDSON_BLOCKCHAIN_WITH_HYPERLEDGER-book-contents.pdf

$5.00 for a pdf version from packtpub 

Good conceptual detail from start to finish well explained.
Built on old Fabric version 1.1 unfortunately
Good hands-on Composer tutorial
Use the Fabric samples apps shipped with the product for Nodejs
GO is not important as a language - reference only

IBM Blockchain for Business ( 2019 )

https://books.google.com/books?id=DuCGDwAAQBAJ

Focuses on the business of blockchain by abstracting out the technology very nicely 

Introduction to Blockchain
Opportunities and Challenges
Blockchain Revolution
Opportunities
Coexisting with Existing Systems of Record
Business of Business Models
Developing a Governance Structure for Blockchain Networks
Understanding Financial Models Investment Rubrics and Model
What Does the Future Hold?

Hyperledger Fabric - Whitepaper by the Fabric team

https://arxiv.org/pdf/1801.10228.pdf

Very good on concepts but not current with any of the new features after v1.2
https://www.ibm.com/blogs/blockchain/2019/04/does-hyperledger-fabric-perform-at-scale/?Fabric performance results - v1.4.1 - show Kafka, Raft 
https://www.ibm.com/downloads/cas/RYWXAR0MFree O'Reilly ebook from IBM On Enterprise Blockchain






External Courses

EDX Blockchain for Business certification program

https://www.edx.org/professional-certificate/linuxfoundationx-blockchain-for-business

This program combines both certificate courses below into 1 program saving $20
EDX-LFS171   Blockchain: Understanding it's Uses and Implications
https://www.edx.org/course/understanding-blockchain-and-its-implications
$99 for student certification

EDX-LFS170    Blockchain for Business: Introduction to Hyperledger

https://www.edx.org/course/blockchain-for-business-an-introduction-to-hyperledger-technologies

$99 for student certification


Other resources 
https://drive.google.com/drive/u/0/folders/1S32QkWng-rfJGox4gr7pnn2Di0f0mefrOld Fabric v1.1 presentation - Jim Mason

https://marketplace.visualstudio.com/items?itemName=IBMBlockchain.ibm-blockchain-platform

https://marketplace.visualstudio.com/items?itemName=HyperledgerComposer.composer-support-client

VSCode editor extensions for Hyperledger Composer and IBM Blockchain ( Fabric )




Fabric Documentation team resources
https://hyperledger-fabric.readthedocs.io/en/latest/Fabric latest documentation
https://github.com/hyperledger/fabric/blob/release-1.4/docs/source/developapps/diagrams.pptxDiagrams for the commercial paper samples app
https://wiki.hyperledger.org/display/fabric/Interop+DocumentsDesign for Fabric blockchain interoperability feature
https://jira.hyperledger.org/browse/FAB-10889?page=com.atlassian.jira.plugin.system.issuetabpanels%3Aall-tabpanelDesign for implicit private data collections feature
https://jira.hyperledger.org/browse/FAB-8171Orderers conceptual design doc
https://jira.hyperledger.org/browse/FAB-8812State based endorsement Jira and related docs
https://jira.hyperledger.org/browse/FAB-12874FAB-12874 Develop Apps: Smart Contract topic
https://gerrit.hyperledger.org/r/#/c/28958/Gerrit change ticket for FAB-12874
https://gerrit.hyperledger.org/r/#/c/28958/2..1/docs/source/developapps/diagrams.pptxLatest pptx file from the change ticket for Commercial paper samples app
JIRA query
https://jira.hyperledger.org/issues/?jql=project%20%3D%20FAB%20AND%20issuetype%
20in%20(Story%2C%20Task)%20AND%20fixVersion%20%3D%20v2.0.0%20AND%20%
22Epic%20Link%22%20is%20not%20EMPTY%20AND%20project%20in%20(10002)%20
AND%20issuetype%20in%20(%2210002%22%2C%20%2210001%22)%20AND%20cf
%5B10006%5D%20%3D%20FAB-14524%20AND%20status%20%3D%20Backlog

Jira query for these parms .. 


project = FAB AND issuetype in (Story, Task) AND fixVersion = v2.0.0 AND "Epic Link" is not EMPTY AND project in (10002) AND issuetype in ("10002", "10001") AND cf[10006] = FAB-14524 AND status = Backlog




Fabric Deployment Documentation
https://github.com/hyperledger/cello/blob/master/docs/worker_ansible_docker.mdSimple network deployment using Cello, Docker
https://developer.ibm.com/series/ibm-blockchain-platform-console-video-series/IBM Blockchain Console Tutorial Series




Developer Tutorials
https://hyperledger-fabric.readthedocs.io/en/release-2.0/
https://hyperledger-fabric.readthedocs.io/en/release-2.0/tutorials.html
https://developer.ibm.com/tutorials/cl-ibm-blockchain-101-quick-start-guide-for-developers-bluemix-trs/IBM Blockchain Developer Quickstart





Key Concepts

  1. For Fabric technology, ( see above references )
  2. Businesses operate in networks, formal or informal, with customers, suppliers and competitors
  3. Business networks can be:  connected, integrated or coordinated

    1. connected
      network connected ( Internet, email etc ) 
    2. integrated 
      business processes interfacing ( traditional ETL or REST apis )
    3. coordinated 
      well defined business methods and roles between customers, competitors, vendors
      smart contracts standardize business transactions enforcing business rules
      transactions digitally signed by identified parties
      data is shared real-time over the network with privacy rules enforced
      governance and audit requirements are simpler, lower cost to meet
  4. If businesses can see improved results in the coordinated model, blockchain is often the answer


Jim Mason - Enterprise Blockchain Concepts presentation


Modern Enterprise Blockchain Network Architecture: see DAN - Digital Asset Network model

What is a blockchain solution architecture?


https://www.linkedin.com/posts/ravikantagrawal_blockchain-crypto-decentralized-activity-6628866718515195904-AIt-

Decentralized Web or Web 3.0

Based on Gartner's Hype cycle for emerging techs,

Blockchain enabled Digital Ecosystem is a game changer, reasons below:

  • Users are in control of their data and identity
  • Displaces platform-intermediated interactions (Amazon, Facebook, Google, Uber).
  • Built on Blockchain technologies:
    • Trust verification
    • Privacy-preserving and interoperability protocols
    • Decentralized infrastructure and application platforms
    • Decentralized identity
    • Immutable Decentralized Ledger Technology
    • Transparency across the VCN ( Value Chain Network ) or VCE ( Value Chain Economy )
    • Policy-driven network rules for governance
    • Real-time coordination among parties using Global Event-Driven Process Services ( GEPS )

https://lnkd.in/fqYV6W5



Key Questions to Ask on Blockchains

use for assessment inputs

https://www.forbes.com/sites/alisonmccauley/2020/01/16/want-to-be-smart-about-blockchains-in-2020-15-questions-to-ask/#7acca1981dbc

blockchain-vcn-definition-forbes.com-15 Blockchain Questions That Will Make You Look Smart.pdf


Engineer a Value Chain Network or Value Chain Economy

  1. Who are the parties and roles in the Business Network?
  2. What value does each role deliver?
  3. What challenges does each role have?
  4. Is there counter party risk?
  5. How are trust issues resolved? controlled? proven?
  6. How are identity, security managed?
  7. Do parties cooperate now? How?
  8. Are the processes clear? Coordinated? Efficient?
  9. What are key decisions & events?
  10. How do intermediaries add value?
  11. What are regulations, compliance issues?
  12. How can the Value Chain Network grow?


some key questions for a blockchain solutions

  1. what are the integrations for the solution?
  2. what values and impacts blockchain can add for the use case?
  3. design the best solution without blockchain, then see if blockchain adds value
  4. what's the difference between logical and physical blockchain networks?
  5. who decides if a transaction is valid and should be posted?
  6. what goes on a chain? what doesn't?
  7. how are identities defined?
  8. how is authentication done in the app? on the blockchain?
  9. how is authorization done in the app? on the blockchain?
  10. how will the solution start? how will it grow?
  11. what are key transaction rules defined in smart contracts?
  12. what decisions are made for a transaction? for a process?
  13. what are the key events in the transaction flow?
  14. what options need to exist in the transaction flow?
  15. is there a role for automation? where? how?
  16. should the solution be decentralized or not?
  17. do intermediaries have value in this use case?


Do Blockchain investments offer high payback?


Well implemented in a partner network, blockchain and automation can make dramatic improvements in supply chain efficiency, delivery, operating costs, traceability, compliance, trust and more. The current challenges all organizations face now only increase the value integrated, automated blockchain solutions can deliver and improve the ROI on those investments.



3 questions to ask on VCN or VCE ...

  1. where are we now ? factur3dt.i.  ( Metrics for Feelings, Accuracy, Cost, Timeliness, Utility, Risks, Revenues, Resources, Decisions, Trusts )
  2. what's the best solution without blockchain? factur3dt.o
  3. what's the best solution with blockchain? bfactur3dt.o
  4. what's the right answer for this use case?
  5. how will each show net benefits after implementation?


blockchain strategies for the VCN or VCE

improve the vcn
rethink the vcn
improve and replace parts of the vcn



15 questions to ask about blockchains for business - article

https://www.forbes.com/sites/alisonmccauley/2020/01/16/want-to-be-smart-about-blockchains-in-2020-15-questions-to-ask/#438b8a781dbc


“Are we ready to give up control?”

It’s No Longer Just About You

“Will this particular blockchain project return value for all organizations within the network?”

“Have we learned all we can from the past?”

past here, past bc failures


"Have we reached out to the other companies in our industry—even our top competitors—to jointly research options?”

“How will the deployment of a blockchain help solve our problem or achieve our goal?”


“How could we use blockchain to connect with other parts of our market—to find efficiencies that go beyond our firm to a market level?”

where is channel friction now? how to reduce it?


“Why is a blockchain crucial for this use case?”

how do we get a real network effect to return value?

“What will motivate stakeholders to participate?”

how do we get network parties to join?

Form An Opinion: Private Or Public?

“If this isn’t going on a public blockchain, why not?”

If all the parties in a network can agree on one entity to run a private blockchain, chances are they could have agreed upon a single third party to run a centralized web server.”

“How can we leverage the trust of a public DLT while maintaining the advantages of private DLT networks?”

the DID trustless model for permissioned blockchains


“What are the most important pieces of data shared across participants in our ecosystem, and if they are standardized, are standards organizations ready for the technology realities of blockchain?”

do we have std processes, data models now?

"If you invest in blockchain technology now, will this put you in a better position than your competitors when it comes to data privacy and reducing overhead? Will it be too late next year?“

are there benefits to implementing now? data compliance??

“How can we make blockchain understandable and usable for 99% of developers—and invisible to end users?”

hint: it's not necessarily invisible to users.
blockchain is a different set of services that can impact processes, users in positive ways but normally require some change

“What potential applications should we follow closely, so we are better prepared to respond early?”

who are leaders, solutions we should track?

“How could others use blockchain functionality to disrupt our relationship with customers, and how they find and use the products and services we offer?”

How Could The Shape Of Your Industry Change?

think of other industry models on blockchain now -- food trust etc
digital payments, iam, etc

Alison McCauley

I am the founder and CEO of Unblocked Future, where I help entrepreneurs and executives who are pushing the frontier of emerging technology to communicate their vision, nurture their ecosystems, and go to market. A best-selling author and frequent keynote speaker, I also educate executives who aren’t at this front edge to better understand how new innovation will impact them (and what to do about it). I’ve spent my career studying the intersection of human behavior and emerging technology, with 20 years of consulting to technology-first startups and Fortune-500 companies across industries including healthcare, education, telecommunications, energy, retail, finance, hospitality, and manufacturing.



Fabric Blockchain Use Case Decision Tree 

Will Fabric add value for a feature?  yes | no | maybe | probably 

  • Value Definitions
    • If half of these factors ( Capabilities or Features ) apply to your use case, blockchain can add a lot of value
  • Risk Definitions
    • If any of the capabilities listed under Probably Adds Value are missing, these represent risks to address in a Blockchain Solution Design


Capability or FeatureAdds Value?
Is a shared, persistent data store useful? MaybeMaybe
Is there a need for shared data and data privacy? MaybeMaybe
Is improving trust and transparency in our business network a goal? MaybeMaybe
Is a complete, accurate historical record of all changes useful? MaybeMaybe
Is tracking consent, agreement and signatures important? MaybeMaybe
Is reducing friction, risk, cost and settlement times important? MaybeMaybe
Are there counter party roles and relationships defined in the network? MaybeMaybe
Are regulations, standards and policies for operation and governance well-defined? ProbablyProbably
is automation of business processes and decisions important? ProbablyProbably
Is event-driven coordination of global processes across all parties important? ProbablyProbably
Are the transactions supporting business contracts? ProbablyProbably
Is compliance and audit important? ProbablyProbably



Key Fabric Features for Blockchain Solutions


This is a selective ( not comprehensive ) set of solution features Hyperledger Fabric offers

Fabric Integration with Operations and SIEM solutions

https://github.com/guikarai/HLF-QRADAR

Prometheus, Grafana

Caliper for ledger transaction details, load testing, internals on performance

Explorer for ledger transactions


Fabric Transaction Reference Model

https://hyperledger-fabric.readthedocs.io/en/release-2.5/txflow.html

Applications should listen for the transaction event after submitting a transaction, for example by using the submitTransaction API, which automatically listen for transaction events. Without listening for transaction events, you will not know whether your transaction has actually been ordered, validated, and committed to the ledger.





Fabric Network Interoperability Model

The Interop Group has defined standard interfaces for separate Fabric networks to connect, create and join channels, install and run chaincode and smart contracts. 

The Interop Definition Feature works in v1.4x and later networks

https://wiki.hyperledger.org/display/fabric/Fabric+Interop+Working+Group

Interop design docs:   https://wiki.hyperledger.org/display/fabric/Interop+Documents

This working group was formed to promote the interoperability of Hyperledger Fabric network services. The primary goal of this working group is to ensure Fabric services provided by different vendors can work with each other with the following specific requirements:

  1. Peers from a new organization can join a running fabric network, that is, a peer from a new organization can eventually participate in an existing channel to receive and respond Fabric blockchain transaction requests
  2. A client application can perform Fabric SDK provided API calls against any of the peers and orderers to perform the following Fabric operations:
    1. Channel create
    2. Channel join
    3. Chaincode install (in golang or nodejs)
    4. Chaincode instantiate
    5. Chaincode invoke/query

To test the compliance of each service from a vendor, an new or existing orderering service shall be used. The orderering services should at least satisfy the following requirements:

  1. Kafka based orderering service
  2. TLS on

The Interop Test Network that is running now

https://wiki.hyperledger.org/display/fabric/Interop+Test

Interop docs ..

https://wiki.hyperledger.org/display/fabric/Interop+Documents


Fabric Channels for Separate Use Case Roles on a Network

Originally Fabric channels were the primary method of keeping data private between organizations.

Fabric only has 15 channels and this quickly became a poor solution to private data.

Private Data between organizations on a DLT network is better managed by Private Data Collections clearly.


There are some common use cases where using multiple channels in a Network may be a big advantage for a Fabric DLT solution.

Use case 1 - segregation of read and write ledgers for faster throughput

If a network needs to support high volumes of transaction writes, creating 2 separate channels and ledgers

The write channel is faster without concurrent reads

The read channel is updated by block event from the write channel

The time delay for read channel updates is a constraint that needs to be considered in any use cases


Use case 2 - segregation of read-only observer roles from operations roles on DLT

like the separate read-write channel use case above, the read-only observer channel segregates observers in governance and audit roles from other organizations by channel

The observer channel can be a separate channel from the read channel for more secure access control if needed

The observer channel is usually for regulators, auditors etc who have read-only access ( no updates allowed ) to view all transactions in a jurisdiction for compliance, taxation, sanctions etc


Fabric Private Data Collections 

design >  https://jira.hyperledger.org/browse/FAB-10889?page=com.atlassian.jira.plugin.system.issuetabpanels%3Aall-tabpanel

Implicit Collection Background:

With normal private data collections, each collection must be defined at chaincode instantiation/upgrade time.  While this is fine if there is a limited number of private data partnerships, it is not feasible to administer when there are large numbers of collections, for example if a private data collection is needed for all bilateral (or trilateral, etc) combinations of N channel members. For these scenarios 'implicit' collections are required where the client can choose any N channel members to distribute the private data to.

This is similar to 'local collections', but with the following differences:

  • Each implicit collection has its own key namespace, while local collection has a single key namespace for all transactions
  • With implicit collection the members for any given key (asset) is forever fixed, while with local collections the key (asset) can later be transferred to different members
  • With implicit collection peers handle private data distribution, while with local collections clients have the responsibility to distribute private data

Implicit org-specific collections (this epic):

Implicit collections having a single org member is a special case that can be useful for storing "org specific state" in a variety of contexts. This org specific state can be used to provide human input to chaincode execution/endorsement for a certain key (asset).  Each org uses their org-specific namespace to provide approval/voting instructions to chaincode for a certain key (asset). Examples include:

  • Provide chaincode with approval (or conditions to meet) prior to successful execution/endorsement of a key (asset) transfer
  • In the context of lifecycle system chaincode, provide lifecycle chaincode with metadata package approved by org, and only endorse chaincode deployment transactions that have a matching chaincode definition.

See charts attached to FAB-8812 for more information on collection types.

Design document ..  https://docs.google.com/document/d/1RRtjfTSPO8vdfwep-QpfMckSYdnA-k24WmqsgSIEbOA/edit#

Charts ..

https://jira.hyperledger.org/secure/attachment/14891/CollectionTypesAndStateBasedEndorsement.pptx

https://jira.hyperledger.org/secure/attachment/15368/state-based_endorsement_review.pdf

This epic will target org-specific collections only.


Priti's demo of private data on Fabric - Big Cars

https://pritikumariresume.page.link/hyperledger_fabric


Fabric State-based transaction endorsement

https://hyperledger-fabric.readthedocs.io/en/release-2.2/endorsement-policies.html



Commercial Paper Sample Applications

https://github.com/hyperledger/fabric/blob/release-1.4/docs/source/developapps/diagrams.pptx

https://gerrit.hyperledger.org/r/#/c/28958/2..1/docs/source/developapps/diagrams.pptx


Key Hyperledger Fabric Features List for Developers

https://101blockchains.com/hyperledger-fabric-applications/

Here are some of the notable features of Hyperledger Fabric that define its functionalities. 

  • Limited latency for finality or confirmation.
  • Highly modular and permissioned architecture.
  • Open smart contract model tailored for imparting flexibility in the implementation of any solution model.
  • Plug-and-play elements in consensus.
  • Support for Solidity and EVM.
  • Multi-language smart contract support for different languages such as JavaScript, Go, and Java.
  • Facility of continuous operations such as asymmetric version support and rolling upgrades.
  • Flexible data privacy approaches with data isolation through channels and exclusive data sharing through private data collections. 
  • Support for JSON queries and key-based queries. 

All these features show why Hyperledger applications can offer a definitive advantage to developers. Anyone interested in identifying the best ways to put Hyperledger Fabric to practical use must understand its design.




Fabric Asset Transfer examples




Identity Management Options 



Fabric MSP and CA 



Hyperledger Indy and Sovrin DID


Fabric Indy / Aries are an independent identity and credentials blockchain system

Several projects have looked to integrate Indy with Fabric


TrustD from Santander 

TrustID Decentralized Identity solution compatible with Fabric

TrustID implements identity management in an alternative way to Hyperledger Fabric (as the first step, but the idea is to be compatible with other platforms). In HF identities are centralized in the CAs, so if a CA leaves the network all the users issued by this CA will be invalid. Using trustID to manage the identities it is possible to do it in a dynamic and decentralized way. Hyperledger Fabric is the first network that we have used to implement this model of identities, but in the end, it could be compatible with other platforms. And also, users that have key pairs in other blockchains could re-use it to sign transactions in Fabric.

This sdk abstracts all the logic of Hyperledger Fabric (or logic of other platforms could be implemented, like for example ethereum’s web3 ) and also enables the creation and management of decentralized identities. With this library is possible to create, update, revoke, import, and export identities using the DID standard from the W3C. In the end, the DID standard is used to give a global ID to the identities.

Due to the Hyperledger Fabric identity management, it is not compatible with this type of identities and signatures we have implemented chaincode that implements these functionalities. In the end, all the functionalities that we have commented in the documentation are modules of the same chaincode. In this case, when we create an identity in the sdk, this identity is also registered in the chaincode, storing the public key, so by nature, it will be decentralized. Every time somebody wants to perform a transaction, this transaction will be signed off-chain thanks to the sdk and in the chaincode the signature will be verified. If everything is okay, this chaincode will invoke the chaincode that the user wants In the case of other platforms, the implementation of this component has to be analyzed.

DEON from Yale with Indy MSP




Fabric MSP can be implemented using Identity Mixer ( IDEMIX )

https://idemix.wordpress.com/


use this slide 

https://hyperledger-fabric.readthedocs.io/en/release-1.3/idemix.html#what-is-idemix


Idemix is a cryptographic protocol suite, which provides strong authentication as well as privacy-preserving features such as anonymity, the ability to transact without revealing the identity of the transactor, and unlinkability, the ability of a single identity to send multiple transactions without revealing that the transactions were sent by the same identity.

There are three actors involved in an Idemix flow: user, issuer, and verifier.


  • An issuer certifies a set of user’s attributes are issued in the form of a digital certificate, hereafter called “credential”.
  • The user later generates a “zero-knowledge proof” of possession of the credential and also selectively discloses only the attributes the user chooses to reveal. The proof, because it is zero-knowledge, reveals no additional information to the verifier, issuer, or anyone else.

As an example, suppose “Alice” needs to prove to Bob (a store clerk) that she has a driver’s license issued to her by the DMV.

In this scenario, Alice is the user, the DMV is the issuer, and Bob is the verifier. In order to prove to Bob that Alice has a driver’s license, she could show it to him. However, Bob would then be able to see Alice’s name, address, exact age, etc. — much more information than Bob needs to know.

Instead, Alice can use Idemix to generate a “zero-knowledge proof” for Bob, which only reveals that she has a valid driver’s license and nothing else.

So from the proof:

  • Bob does not learn any additional information about Alice other than the fact that she has a valid license (anonymity).
  • If Alice visits the store multiple times and generates a proof each time for Bob, Bob would not be able to tell from the proof that it was the same person (unlinkability).

Idemix authentication technology provides the trust model and security guarantees that are similar to what is ensured by standard X.509 certificates but with underlying cryptographic algorithms that efficiently provide advanced privacy features including the ones described above. We’ll compare Idemix and X.509 technologies in detail in the technical section below.



IDEMIX review 

https://pomcor.com/2011/10/10/pros-and-cons-of-idemix-for-nstic/



OLD idemix docs

Identity Mixer (idemix) is an anonymous credential system developed at IBM Research that enables strong authentication and privacy at the same time.

A credential is a means to establish a claimed identity, roles, or attributes about oneself with an entity, typically as part of an access control request. So for instance an identity card can serve as a credential to establish that one is between 12 and 15 years old as might be required to access a teenage chat. Using a traditional identity card, this would also reveal to the chat side all the other information on the card.

Anonymous credentials overcome this: with such credential a user can selectively reveal any of the attributes contained in the credential without revealing any of their information whatsoever. Thus, anonymous credentials are a key ingredient to protect one’s privacy in an electronic world.

Idemix-2

With identity mixer, users can obtain from an issuer a credential containing all the information the issuer is ready to attest about them. When a user later wants to prove to a service provider a statement about her, she employs identity mixer to securely transform the issued credential. The transformed credential will only contain the subset of the attested information that she is willing to disclose. The user can apply this transformation as many times as she wants and still none of credentials can linked to each other.




Potential Value Opportunities

Fabric Blockchains can add value for applications and platforms that link different organizations on agreed business processes.

Potential impacts and improvements include:

  • Immutable, historical transaction records
  • data shared real-time across organizations
  • permissioned membership services for KYC and enterprise applications
  • smart contracts that enforce business process rules and data access controls
  • transaction events to automate business workflows
  • trust among participants with signed transactions using digital identities
  • data visibility options ( shared and private )
  • personal identity visibility options 
  • governance and audit options to fit specific needs



Potential Challenges 


Designing effective blockchain solutions can be different than other solutions

  • Need to identify the organization types, roles, use cases and impacts for all members in the network

Building blockchain applications can be different

  • Client applications invoke remote, distributed Smart contracts running on each node that hosts the blockchain
  • Smart contracts perform write or read only transactions ( no updates allowed )

Running blockchain applications is different

  • Blockchain applications run on a shared, distributed network on Linux instances using containers, a consensus protocol and a distributed rpc for transaction synchronization




Use Case Analysis 

  1. Canadian banks unite on identity blockchain ( verified.me ) on Hyperledger Fabric
    https://www.itworldcanada.com/article/canadas-big-5-banks-launch-blockchain-based-digital-identity-service-with-securekey/417406





Candidate Solutions


Hyperledger Fabric Open Source Documentation and Training Materials 

Hyperledger Fabric developer materials
On the Hyperledger Fabric courses I'm not really worried about finding good courses on the Web.
All the ones that exist are very outdated materials.
The one on Udemy was actually just a bad course as well.
I work with the Hyperledger Fabric documentation group and they have produced the best materials by far.
Like anyone else designing courses,  we can use all the materials and code samples from the Fabric documentation group because they are all open source..
They have a strong set of tutorials now for developers including the commercial paper tutorial.
That tutorial actually walks through in detail the business discussion on the roles participants play in the network and how they design workflow and smart contracts.
All the tutorials collectively show almost all of the current features in Fabric from a developer perspective.
Sjir Nijssen who is a professor of computer science in the Netherlands is part of the doc team and is using the materials as the basis of a course he is teaching there.
As new features are added, the Fabric doc team is the first to document them with direct input from the developers.
If we open on April 1, the documentation for version 2.0 should be complete about then as well.
That should add RAFT consensus option and how to execute Ethereum contracts written in Solidity on Fabric using Burrow EVM support.
Materials for future Hyperledger enhancements 
There are features that keep getting added to the product backlog that we know will show up at some point in a release. While we can't provide "hands-on" lab exercises, we can provide some good basic, conceptual documentation ( versus product documentation ) that will make it easier to absorb those features later on when they show up. Examples here would include self-sovereign identities, zero knowledge proofs, token support, modeling language etc.
Deployment documentation materials
For test deployments developers need on Linux or MAC, the documentation is generally very good.
The one area that IS not strong on documentation and training materials today is the production deployment side because that is specific to each platform: IBM Cloud, AWS, GCP and Azure. More work is needed there for administrators for sure. Most of the documentation to date has been for IBM Cloud or, more recently, AWS. The concept everywhere is to use Kubernetes to manage Fabric environments. It also provides better portability and reduced platform dependencies for companies - a big win. I have some initial doc I'll post on using Fabric in Kubernetes. It's older, done with Fabric v1.3 but still useful.




Step-by-step guide for Example



sample code block

sample code block
 



Recommended Next Steps