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__________________________________________________________ |
---|---|
Modern Platform ODP supports VCE , FMI | VCE - Value Chain Economy on DAN - Digital Asset Network - DLT business model |
s Blockchain Opportunity Assessment - BOA | BOA - Blockchain Opportunity Assessment |
m.Blockchain Use Cases | Key Blockchain Use Cases to review |
m Blockchain Use Cases More | More Blockchain Use Cases to review |
m Fabric Dev 1 | |
m Fabric Tutorials | |
m Fabric Admin | |
Hyperledger Fabric Performance | |
https://github.com/hyperledger/fabric | Fabric github repo |
https://hyperledger-fabric.readthedocs.io/en/latest/ | Fabric Documentation |
https://hyperledger-fabric.readthedocs.io/en/latest/getting_started.html | Fabric Getting Started |
https://hyperledger-fabric.readthedocs.io/en/latest/tutorials.html | Fabric Tutorials ** |
https://github.com/ravinayag/HL-StarterKit | Fabric Course for multiple versions - open source ** |
https://hyperledger-fabric.readthedocs.io/en/latest/deployment_guide_overview.html | Fabric Deployment Guide |
https://wiki.hyperledger.org/display/fabric/Contributor+Meetings+2020 | Fabric 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.0 | Latest Fabric Release Announcement - 2.1 |
Global Forum Notes | |
Identity Concepts | |
CA, PKI | |
MSP | |
LDAP ISP | |
https://medium.com/uport/the-basics-of-decentralized-identity-d1ff01f15df1 | DID - |
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 | |
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/summary | Current Fabric release dashboard |
https://gerrit.hyperledger.org/r/q/commercial+owner:+odowdaibm | Fabric 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://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 | 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+Group | Interoperability 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.f53gek6b93sw | hlf 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 | 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 | presentations etc free for reuse |
https://medium.com/beyondi/tagged/hyperledger | Articles and Tutorials on medium.com about Hyperledger Fabric |
https://gerrit.hyperledger.org/r/admin/repos/fabric-docs | Fabric Gerrit developer docs |
https://gerrit.hyperledger.org/r/admin/repos | All Gerrit repos |
https://gerrit.hyperledger.org/r/q/commercial | Gerrit Query commercial in title |
https://gerrit.hyperledger.org/r/q/commercial+owner:+odowdaibm | Gerrit Query commercial in title with owner: odowdaibm |
https://gerrit.hyperledger.org/r/c/fabric/+/26306/10/docs/source/developapps/diagrams.pptx | go to pptx page, select gitweb link for latest patch set to download the pptx file |
https://gerrit.hyperledger.org/r/q/samples | Gerrit Query samples in title |
https://gerrit.hyperledger.org/r/Documentation/user-search.html | Gerrit searches |
https://gerrit.hyperledger.org/r/c/fabric/+/28958 | Gerrit - search by Jira ticket in title ... |
Hyperledger Fabric Deployment and Administration | |
https://www.hyperledger.org/resources/training/hyperledger-fabric-certification | The Fabric administration course ( still in beta with content upgrades needed before it can be used as a training or certification vehicle ) |
Github materials | 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 | Hyperledger Fabric certification study group online |
hyperledger-certification-exam-course-fabric-admin-dev-registration-details.pdf | Fabric Admin Cert course registration |
certificationsupport@linuxfoundation.org | email or course adminsitrators |
Fabric Admin Exam Handbook | |
https://training.linuxfoundation.org/training/hyperledger-fabric-administration-lfs272/ | LFS272 Cert Fabric Admin Course Registration page |
https://portal.linuxfoundation.org/portal | My 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.pdf | Fabric 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#overview | Fabric 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. |
IBM Blockchain for Business ( 2019 ) | Focuses on the business of blockchain by abstracting out the technology very nicely Introduction to Blockchain |
Hyperledger Fabric - Whitepaper by the Fabric team | 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/RYWXAR0M | Free 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-rfJGox4gr7pnn2Di0f0mefr | Old 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.pptx | Diagrams for the commercial paper samples app |
https://wiki.hyperledger.org/display/fabric/Interop+Documents | Design for Fabric blockchain interoperability feature |
https://jira.hyperledger.org/browse/FAB-10889?page=com.atlassian.jira.plugin.system.issuetabpanels%3Aall-tabpanel | Design for implicit private data collections feature |
https://jira.hyperledger.org/browse/FAB-8171 | Orderers conceptual design doc |
https://jira.hyperledger.org/browse/FAB-8812 | State based endorsement Jira and related docs |
https://jira.hyperledger.org/browse/FAB-12874 | FAB-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.pptx | Latest 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.md | Simple 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
- For Fabric technology, ( see above references )
- Businesses operate in networks, formal or informal, with customers, suppliers and competitors
Business networks can be: connected, integrated or coordinated
- connected
network connected ( Internet, email etc ) - integrated
business processes interfacing ( traditional ETL or REST apis ) - 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
- connected
- 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?
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 )
Key Questions to Ask on Blockchains
use for assessment inputs
blockchain-vcn-definition-forbes.com-15 Blockchain Questions That Will Make You Look Smart.pdf
Engineer a Value Chain Network or Value Chain Economy
- Who are the parties and roles in the Business Network?
- What value does each role deliver?
- What challenges does each role have?
- Is there counter party risk?
- How are trust issues resolved? controlled? proven?
- How are identity, security managed?
- Do parties cooperate now? How?
- Are the processes clear? Coordinated? Efficient?
- What are key decisions & events?
- How do intermediaries add value?
- What are regulations, compliance issues?
- How can the Value Chain Network grow?
some key questions for a blockchain solutions
- what are the integrations for the solution?
- what values and impacts blockchain can add for the use case?
- design the best solution without blockchain, then see if blockchain adds value
- what's the difference between logical and physical blockchain networks?
- who decides if a transaction is valid and should be posted?
- what goes on a chain? what doesn't?
- how are identities defined?
- how is authentication done in the app? on the blockchain?
- how is authorization done in the app? on the blockchain?
- how will the solution start? how will it grow?
- what are key transaction rules defined in smart contracts?
- what decisions are made for a transaction? for a process?
- what are the key events in the transaction flow?
- what options need to exist in the transaction flow?
- is there a role for automation? where? how?
- should the solution be decentralized or not?
- 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 ...
- where are we now ? factur3dt.i. ( Metrics for Feelings, Accuracy, Cost, Timeliness, Utility, Risks, Revenues, Resources, Decisions, Trusts )
- what's the best solution without blockchain? factur3dt.o
- what's the best solution with blockchain? bfactur3dt.o
- what's the right answer for this use case?
- 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
“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 Feature | Adds Value? |
---|---|
Is a shared, persistent data store useful? Maybe | Maybe |
Is there a need for shared data and data privacy? Maybe | Maybe |
Is improving trust and transparency in our business network a goal? Maybe | Maybe |
Is a complete, accurate historical record of all changes useful? Maybe | Maybe |
Is tracking consent, agreement and signatures important? Maybe | Maybe |
Is reducing friction, risk, cost and settlement times important? Maybe | Maybe |
Are there counter party roles and relationships defined in the network? Maybe | Maybe |
Are regulations, standards and policies for operation and governance well-defined? Probably | Probably |
is automation of business processes and decisions important? Probably | Probably |
Is event-driven coordination of global processes across all parties important? Probably | Probably |
Are the transactions supporting business contracts? Probably | Probably |
Is compliance and audit important? Probably | Probably |
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 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:
- 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
- A client application can perform Fabric SDK provided API calls against any of the peers and orderers to perform the following Fabric operations:
- Channel create
- Channel join
- Chaincode install (in golang or nodejs)
- Chaincode instantiate
- 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:
- Kafka based orderering service
- 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
Use case 2 - segregation of read-only observer roles from operations roles on DLT
Fabric Private Data Collections
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 )
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.
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
- 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
Step-by-step guide for Example
sample code block