HYPERLEDGER FABRIC CERTIFICATIONS: CHFA AND CHFD - DIRECTIONS
David Reis
CHFA - Certified Hyperledger Fabric Administrator, CHFD - Certified Hyperledger Fabric Developer, Blockchain Engineer, Cloud Native Specialist, Smart Contracts, Java, NodeJS, GoLang.
Hi, first of all, I want to explain my motivation for writing this article. The main motive is that during my preparation phase for both certifications I felt very hard to find content to help me with my preparation and the lack of resources to have a good learning path that makes it safe to schedule and properly take the exams. So, I decided to help others to have a good learning path and, of course, respecting Linux Foundation Disclosure agreements.
This article is published on medium.com under this link:
This is my first article. So, i′m sorry if I miss something.
The Exams
Both certifications (CHFA — Certified Hyperledger Fabric Administrator / CHFD — Certified Hyperledger Fabric Developer) are very challenging. They really test your skills in real world scenarios. Unlike other multiple choice certs (nothing against the others), but the Linux Foundation certifications measure your knowledge against the test objectives in a profound way. The passing grades are:
Both exams are proctored, so, you may have support during all the time regarding environment issues but not directly exam content.
Make sure that you have a good Webcam because the proctors need to validate your ID (Passport or Government ID).
You need to have a good mouse too, they provide a type of web notepad to copy and paste the commands. I used a lot of copy and paste actions using the mouse. The keys CTRL+C and CTRL+V do not always work in the environment.
For the CHFA, they provide a terminal to execute the commands and login at the environment. You need to login and execute the tasks simulating a real world scenario, so, you have to be familiarized with Linux commands (Ubuntu Linux until the date of my exam, Ubuntu 20.04).
HINT: The usage of Terminal Multiplexers may be a good thing to be able to check logs and execute the operations and have multiple shells available.
For the CHFD, they provide an IDE (Integrated Development Environment) to execute the programming tasks and access the linux terminal when needed. They say that it is Eclipse Theia, but is very similar to VSCode IDE from Microsoft.
Both exams must be finished in 2 (two) hours and this is the most challenging because the exam tests your capacity of resolving issues under little time window increasing the pressure received (A lot of real world situations demand this type of pressure).
HINT: YOU MUST MAINTAIN YOUR CALM OR YOU WILL LOSE TIME
A good thing is that both exams (CHFA and CHFD) have a free retake, so you may have a second try. I am almost completely sure that the main motive to have a NO PASS GRADE in both exams is the nervousness during the exam questions and tasks.
CHFA — CERTIFIED HYPERLEDGER FABRIC ADMINISTRATOR
As above mentioned, for each of the tasks, you will be asked to login in a different terminal in a completely different environment, so, the tasks do not depend on each other, but they follow an understanding path so, the commands crafted in one question may be reutilized on the next question.
The exam is based on the 2.2 LTS version (Currently on 2.2.5 until today′s publication of this article date).
As my learning path, I took the following courses and actions:
Tasks:
Suggested Training?Courses:
Yes, I know that this course is based on the 1.4 version. But execute the demanded tasks tailoring for the 2.2 version. This material really shows and presents a lot of exams like scenarios helping the understanding.
LFS272 — Hyperledger Fabric Administration: https://training.linuxfoundation.org/training/hyperledger-fabric-administration-lfs272/
This training course is not directed to the certification. You need much more understanding. I followed this course after the above presented trainings.
I did a lot of changes on the tasks simulating other problems. You need to do this. Only this training will not make a good preparation for the?exam.
CHFA DIRECTIONS:
The tasks are based on the Fabric Samples repository as I said earlier:
You must get familiarized with fabric samples and the test network. Having this understanding you save a lot of time searching and crafting commands.
As a learning measure, I performed a lot of differen tasks using my imagination while running courses and tutorials from official documentation to gather knowledge and feel safe to take the exam.
Read and study the test network start scripts (network.sh and?others):
DOCKER:
VI and?VIM:
Important tasks:
Chaincode deploy?process:
You must be very well familiarized with peer lifecycle commands:
For troubleshooting the chaincode deployment process:
Endorsement policies and init required:
Chaincode invoke and?query:
Couchdb queries:
Service discovery:
Operations Guide:
Configuration files, you must be familiar with the configuration yamls:
HSM — Hardware security?module:
Upgrade Hyperledger Fabric Components:
Fabricate some?labs:
Fabric CA — Certificate Authority:
Register identities:
Enroll identities:
Start a CA?server:
fabric-ca-client cli:
fabric-ca-server cli:
Well, thats all for the CHFA. I choose to first take the CHFA exam to learn and have a good understanding of the Hyperledger Fabric architecture. I reused a lot of knowledge of CHFA on the CHFD exam.
CHFD — CERTIFIED HYPERLEDGER FABRIC DEVELOPER
领英推荐
n my opinion, the CHFD exam is harder than CHFA. Maybe because my main developer language is JAVA and the exam is in NodeJS (Javascript). It was my first contact with the NODEJS platform. I needed to learn NodeJS from scratch.
My learning path began with the LFD272 (Hyperledger Fabric for Developers) training course. I consider the LFD272 very superficial and do not provide a good preparation for the CHFD exam. So, you must do a lot of tailoring during the course path to try other examples (Again, use your imagination). If you are running LFD272, when the course tells that a subject will not be covered, try to go further (Example: testing or asset specific endorsement policies). But the LFD272 was the only accessible course that I have found.
I saw some of the Roland Bole (https://www.dhirubhai.net/in/samlinux/ ) videos. He knows a lot about Hyperledger Fabric:
The CHFD exam is based on fabric samples repository, you must be familiar with all fabric samples. The exam tasks will be real world development scenarios using the fabric samples chaincodes and applications.
As mentioned above, they will provide you with an IDE to do the development thing. You will write a lot of code. And having a good understanding of fabric samples and where the javascript samples are will save you a lot of time.
Consider do the following as learning actions:
Must know chaincodes and applications:
https://github.com/hyperledger/fabric-samples/tree/release-2.2/chaincode/abstore/javascript (fabric-shim);
Execute all commercial paper tutorials.
Private Data:
transaction.setTransient();
const transientMap = await ctx.stub.getTransient();
You need to know how private data collections work.
Identity programatic check:
const hasRights = ctx.clientIdentity.assertAttributeValue(‘identityAuthService’, ‘true’);
Must know and do?items:
for await (const res of promiseOfIterator) {…}
let colorNameIndexKey = ctx.stub.createCompositeKey(indexName, [assetJSON.color, assetJSON.assetID]);
FabricCA — Certificate Authority:
EnrollmentRequest: https://hyperledger.github.io/fabric-sdk-node/release-2.2/global.html#EnrollmentRequest
RegisterRequest: https://hyperledger.github.io/fabric-sdk-node/release-2.2/global.html#RegisterRequest__anchor;
Connection profiles:
You need to use your imagination and extend the fabric samples applications and chaincodes. Change operation signatures, execute all tutorials and read all README.md orientations.
During the exam, you will develop deployable chaincodes and remember to always run “npm install” before starting coding.
You will do a lot of deployments. Knowing the peer lifecycle chaincode commands are essential (In both exams — CHFA and CHFD). Pay attention and make sure that you know how to package, deploy, approve, commit, query and invoke a chaincode. You will have access to a terminal to execute those commands. The parameters — signature-policy (pass specific endorsement policy), –init-required are very important (the same as CHFA). The parameter — collections-config is important too because of the private data.
Again, same as the CHFA exam, you have to know about docker commands to troubleshoot and check for errors. You must know how to see the containers logs (chaincode containers, peers and orderers), docker logs -f <container_name_id>.
To execute the peer commands to deploy and etc, you will have access to a cli container, and you need to know how to connect docker exec -it <container> bash.
Develop Environment used / lab?setup
To be able to execute the samples and run the fabric test network, I decided to use the following setup:
I choose vagrant because it protects the host operating system and permits to run a lot of configurations, such as simulating various networks etc.
Last suggestions (CHFA and?CHFD)
Read all linux foundation information about the exams:
During the exam, your environment may present issues, connection problems or freeze when trying to access a terminal. If this happens to you, call the proctor using the chat window and explain to him. Maintain calm. The proctor will give you more time if there is a problem with the exam environment. Have a good internet connection.
Create a bookmark system on the chrome tab browser. Both exams will be executed using Google Chrome browser and you may open one additional tab to show the official documentation. I suggest during the preparation phase, save important links and anchors from official docs. Thoose bookmarks will let you quickly find a topic or a command without the need to navigate through internal links of the docs. This will save you a lot of time. For an example, if you need to find the right command to do a chaincode approval, you may go direct to this link (using the bookmark):
and copy the command to the web notepad:
peer lifecycle chaincode approveformyorg -o localhost:7050 — ordererTLSHostnameOverride orderer.example.com — channelID mychannel — name basic — version 1.0 — package-id $CC_PACKAGE_ID — sequence 1 — tls — cafile ${PWD}/organizations/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem
And change it according to the task.
One last tip:
Use TWO monitors:
O big one to show the exam environment;
A small one to show the documentation tab.
In my case, I used one monitor 27” with 4k resolution and the notebook screen (full hd).
I have spent 1 (one) month of preparation for each of the exams, two months in total. Well, almost 3 months.
About the?author
Name: David Reis
Instagram: https://www.instagram.com/davidfaulstich/
Github: https://github.com/davidfdr
Linux Foudation openprofile.dev: https://openprofile.dev/profile/davidfdr
Country: Brazil;
Experience:
23 years developing cool solutions mostly in Java.
Blockchain consultant and instructor. Feel free to reach me if needed!
Hyperledger Fabric especialist.
Hyperledger Fabric community contributor.
I am a blockchain developer and engineer, father and husband. Overlander 4x4 off road enthusiast, love to camping and HAM — Amateur Radio.
Brazilian HAM — Amateur Radio enthusiat. Callsign: PU2DAV
QRZ.COM lookup: https://www.qrz.com/db/PU2DAV/
IN OPEN SOURCE WE TRUST
SCJP — Sun Certified Java Programmer 1.4.
Fabric like any tech is a moving target really. At the risk of sounding like a conspiracy theorist, certification is a way for institution to make money. Also if you expand all your effort to get a cert for a particular verson of a tech and the tech has moved on you will be no better. Also companies deploying any tech will have their own twist to the baseline implementation anyway. A better way to learn tech and show off your knowledge is to experiment, blog about it and be challenged.
Engineering solutions, Information Security, Blockchain adoption, Generative AI, Prompt Engineering, Virtual Agents, EGMP @IIMB
3 年Congratulations..Comprehensive compilation..ThanQ!
Senior Blockchain Engineer ( Architect | Blockchain Consultant)
3 年Congratulations, Well explained.
Congratulation. And thanks for this great sharing!
Parabéns pela iniciativa David Faulstich Congratulations on the initiative.