Behind the scenes of the Fabric Bootcamp: How you deployed 30 nodes in 90 minutes
Back in July 2020, we planned and ran a Hyperledger Fabric Bootcamp during the Singapore Blockchain Week, via Zoom, and with over 250 people signed up. We set the goal of the workshop to be an exciting and experiential educational event, within an allocated timeframe of 90 minutes.
How many people would actually show up? How could we structure it? How should we prepare its execution? What were the pitfalls to watch out for? As we moved to experiment on something that had never been attempted before, there were many question marks for us to address, a lot of enthusiasm, and a deep passion for making this event into an unforgettable community gathering.
Read on to understand what we did, why we did it, and how it turned out. If you want to see us in action, here’s the link to the video recording of the event.
Setting our goals straight
After multiple internal discussions, we decided to craft the workshop on these assumptions:
- Participants may not have any knowledge on blockchain.
- Participants may not have any knowledge on Hyperledger Fabric.
- Participants may have very basic knowledge on executing command through the CLI.
The objectives we set out for the bootcamp:
- Participants should learn how a Hyperledger Fabric consortium works together via chaincode.
- Participants should learn how to build and connect a web application to a Hyperledger Fabric v2 node.
- Participants should learn how to deploy a Hyperledger Fabric network and nodes via Chainstack.
From design to execution
The initial plan of the workshop was to have participants deploy their own network and connect their web application to the deployed network learning how Hyperledger Fabric works—hands on but that felt too conventional and we wanted to spice things up. We agreed to go big, and attempt to deploy the largest Hyperledger Fabric consortium ever deployed in the shortest possible time (a 90-minute bootcamp!) by participants representing different organizations of the network. The KPI was to have them install, approve, commit, and execute the same chaincode on the same network deployed on Chainstack.
During the dry-run, we concluded that the biggest challenge we faced was time, 90 minutes may be enough for 15 participants but it might have not been enough for the higher number of participants that we were expecting. To mitigate this risk and shorten the process, we decided to ask the participants to set up the environment one day before the workshop, installing the pre-required repositories, libraries and setting up their node on the network we had pre-created.
We tried our best to design the workshop so that it would be as easy to follow as possible, and we reduced the number of steps as much as we could. We set up a public repository with everything that the participants needed—the web application and the chaincode we were using for the bootcamp. All that was required from the participants was a git pull and a few commands on the terminal.
Testing the boundaries of what was possible
Running the workshop via Zoom was definitely a challenge in terms of support as compared to a physical bootcamp, because troubleshooting and support were restricted to online chat functions. We therefore decided to open a dedicated Gitter room where our team of engineers was on hand to assist any participant needing a hand.
During the workshop, having everyone on the network running the same chaincode meant that we couldn’t move on due to the Hyperledger Fabric configuration of having the majority approve the chaincode before it could be committed. At one time we couldn’t reach the majority or figure out who was having issues approving the chaincode. It was an interesting moment and a very good example of how Hyperledger Fabric works. There wasn’t anything we could do on our end (in a centralized way) to solve this issue other than to wait for participants to approve the chaincode. In the end, a few unnamed heroes sacrificed their nodes from the network for the rest of us to reach a majority and commit the chaincode. What a team effort to get the network running!
One key requirement during the bootcamp was to query the number of approvals on the chaincode against the total number of organizations in real-time. This was essential to tell if we had majority approval for the chaincode to be committed without having participants to constantly refresh the page to check. This was implemented with a poll mechanism at one-second intervals. We could have used WebSocket for this, but due to the time constraint, we decided to use the simplest implementation available.
To get the most accurate state of the network, we were executing 4 commands on the network from each web application at one-second intervals:
peer lifecycle chaincode queryinstalled
peer lifecycle chaincode querycommitted
Using 200 participants as an example, we would be executing 800 queries every second on the network. This is a great way to push the limits, and although everything worked during the bootcamp, it highlighted the need to implement stringent end-to-end stress testing automation for simultaneous operations on the same network that our engineering team is already working on.
Making it all worth it
Ultimately, our goal was to make the developer experience as effective and smooth as possible. Equally, we wanted to test the boundaries of what could be achieved, something that could have ended up encountering some bumps on the road. We were very happy with how everyone got stuck in hands-on, and we were even more pleased to have received great feedback from the participants. Here’s some:
- “Thank you guys. Looking forward to use Chainstack for my PoC. Great stuff, loved it!!”
- “Thank you, that’s hands down one of the best Hyperledger Fabric workshops ever”
- “Great guys!!! It was really a risk having so many people from different countries on same network…it’s really historical!! Great stuff, Chainstack!!!”
- “Thank you for the courage to take this risk to demonstrate to us your brilliant technology”
- “Great session! Special thanks to Evgeny for tolerating my questions”
- “Great job guys!”
- “Thank you, all for organising this. Great introduction for Hyperledger to me. This will definitely help me with my Master’s Thesis on smart contracts on Hyperledger”
- “It was a great session. Thanks a lot 🙂”
- “Thank you for great session!!!”
- “A great informative and hands on session. Thanks to everyone!”
- “Great work! thank you guys keep up the good work n keep rocking 👍”
- “Mexico City represent 🤘rock solid”
- “Thank you Thomas. You are awesome 🙂 Engineering life indeed”
- “Good stuff!”
What are the they key takeaways?
It was our first bootcamp conducted via Zoom, and we used it to reflect and identify areas that we could improve on for future bootcamps.
It was an exciting bootcamp without a doubt, the atmosphere was fun, filled with enthusiastic and curious participants, and high energy overall. It felt like a true team effort with everyone coming together, participants and the Chainstack team alike, to work towards the same goal—deploy the largest Hyperledger Fabric consortium network in the shortest possible time.
The bootcamp was a learning experience not only for the participants but for us at Chainstack too. It brought us closer to the community, giving us a better perspective of what the community needs and help us better align our product vision to meet these needs. Something to repeat again soon!
Join our community of innovators
- To learn more about Chainstack, visit our Knowledge Center or join our Gitter Lobby.
- Sign up for a free Developer account, or explore the options offered by Growth or Business plans here.
- Take a look at our pricing tiers using a handy calculator to estimate usage and number of nodes.
Have you already explored what you can achieve with Chainstack? Get started for free today.