Running a Blockchain Development Workshop

Hum Qing Ze
8 min readJan 28, 2020

--

So, we had the opportunity to run a Blockchain Development Workshop from 15–16 Jan 2020. We took this chance to make a course that we would personally have loved to attend. This means it is hands-on, experiential, and practical to learn more about blockchain. That’s because so many workshops and presentations just talk about blockchain but you never get to interact with it.

Above all, we wanted our participants to have a great experience. That meant we needed to ensure they could keep up and that we would constantly interact with them throughout the workshop.

The knowledge gap

We noticed that most people that never interacted with blockchain technology don’t speak the language to be able to take part in discussions. Thus our first objective was to ensure our participants were conversant in the core concepts of blockchain technology and how they related to its applications.

Another issue was that blockchain technology is such a nascent field that it was constantly growing. One had to learn how to learn. Therefore our second objective was to have every participant be confident in learning blockchain on their own after the workshop.

Therefore we planned our workshop with this in mind. We took our ideas from the plan and executed according to the participant profile and response.

Pedagogy for the workshop

Before starting any workshop, one has to take attendance! We took this opportunity to get participants to interact with our private blockchain running of kaleido to register their attendance1. Then once that was done, we revealed that this was also a quiz application and proceeded to ask them their first question.

That brought us to the first lesson of the day — blockchain scalability issues. Half the class had issues submitting their answers and the page got visibly slower as every participant tried to answer the question simultaneously. There’s no better way for a student to understand the impact of transaction throughput than to be put into a timed quiz.

Participants had to interact with the blockchain to register their account and change their status on the blockchain. We made a conscious choice to start with a private testnet with preassigned test ether instead of letting the participants first interaction with the blockchain be receiving test ether from a faucet. This is because the concepts of gas is unintuitive to a newcomer in blockchain and the lag while waiting to receive test ether from a faucet may compromise the novel experience of their first successful experience with a smart contract on the blockchain. I preassigned test ether on the private network to addresses which were then given out to participants via a google excel sheet. The full process is described as a “Hello world” moment.

This experience underpins our entire pedagogy: show, don’t tell.

To be Conversant

Content-wise, we introduced participants to the key concepts of decentralisation, immutability and traceability as well as some of the use cases of blockchain to provide participants with an understanding of the characteristics of the blockchain and its application in the real world.

Therefore the format was:

  1. What — explain the concept itself and distill it into at most three key sentences. Make it in a “how to look smart at family dinners” format
  2. Issues — elaborate on the tradeoffs or challenges that might rise
  3. Why — explain why exactly the concept has value to others
  4. How this concept is achieved in blockchain technology — attempt to explain the concept’s underlying technical implementation through specific examples
  5. Which — share what are some applications organisations have developed or propose to create

To be Confident

Next, as our participants were mainly students with some coding background, we decided to structure the dev parts of the workshop via projects instead of introducing syntax like many other blockchain workshops. We believed that learning what a smart contract is good for is much more important than the grammar of a constantly evolving programming language.

Therefore the workflow for each participant was to:

  1. Deploy — the provided smart contract and interact with its functions
  2. Discuss — the issues that the smart contract had
  3. Develop — solutions to some of these issues or build a feature you would like to have
  4. Digest — the content by relating it to real-life examples

Workshop Content

Learning Material

I’m not a fan of slides. Also, Google codelabs made this amazing tool to convert Google docs into web pages. So that’s what we used.

Our workshop material was meant to be online so that we could make edits and disseminate them quickly while being in a format that facilitate in-class discussions.

Participants were then provided with a Google drive link that contained the question-and-answer collaboration document and material for front-end deployments to interact with our node (sorry we didn’t have free cloud credits to host).

Workshop Agenda

Day One

1000–1130 Taking attendance through a dapp

We had participants connect to our private testnet to take attendance for the workshop first thing in the day. This let them experience the challenges of working with blockchain technology especially once we had them ‘answer’ questions and the network started lagging slightly.

1130–1300 Decentralisation, Immutability and Traceability

Went through 3 key concepts that underpins all blockchain use cases with special attention to explaining why it was unique to blockchain technology.

1300–1400 Lunch

People got hungry.

1400–1500 Working on the Blockchain

As a remedy to the post-lunch coma, we introduced some basic methods of how people tend to work with blockchain technology.

1500–1600 Barnabé Monnot : Game Theory

We had our first guest speaker introduce a different way of looking at blockchain technology. A ‘game theoretic’ way of looking at how blockchain can achieve its goals was shared and participants got to understand how one might measure or guarantee the integrity of blockchain networks.

1600–1700 Jocelyn Wong: Decentralised Finance and MakerDao

We ended the day by introducing one of the most popular applications for blockchain technology, decentralised finance. This idea was pretty new to most participants and they got a quick explainer on what a decentralised financial system might look like and what it can do.

Day Two

1000–1100 Decompile and exlpain a smart contract, then Mortal/Greeter with Remix

It was time for the “Hello World” moment. We started by getting them to decompile a live smart contract with eveem and then explaining its code to get a feel of Solidity. This was quite risky as we expected participants to have some level of programming knowledge, otherwise they would have been totally lost. Next the Mortal/Greeter contract to show how interacting with smart contract functions work.

1100–1300 Escrow Contract

As most of our participants were students from SUTD, we spent our first term with a room mate. We started with setting up a “Room Mate Agreement” contract and had them store some test Ether in the contract. This essentially acted as an escrow for good behaviour. Key highlights were: interacting with another person’s smart contract, first time troubleshooting with remix, working with a partner

1300–1400 Lunch

People got hungry.

1400–1530 Voting Dapp

The idea was to introduce interactions on the blockchain and get participants to see how certain common functions could be automated without requiring intermediaries.

1530–1630 Message Board

Singapore has this habit of setting up “Confession” Pages and we thought it might be nice to have a provably uncensored version. Also, we got participants to work on arrays and understand the costs and consequences of storing information on the blockchain.

1630–1700 Attendance Dapp

Finally we went one full round and showed them the Dapp they used at the start of the workshop to take attendance.

Every single smart contract introduced was deliberately naive or flawed and participants would then discuss these flaws and try to code a solution to them. Given that time was short, most participants could only come up with some basic solution or concept. You can view them in detail here on towards item 20

Enabling the experience

Metamask

Still one of the best ways to interact with the blockchain easily, MetaMask didn’t require much explaining and most of our participants could easily follow from the screenshots we took.

Kaleido

To create the testnet, we used Kaleido backed by ConsenSys- where it is possible to deploy a testnet within 10 minutes using @JacksonNg’s excellent tutorial. Our personal opinion is that Kaleido’s service is wonderful for quick deployments — in this case, assigning 1000 ether to 45 addresses where private keys were given to participants. However, Kaleido’s testnet did not allow users to interact with the Block Explorer and it would be great if this was made possible in the future.

Eveem

We met Tomasz Kolinko at EthSingapore awhile back. For our workshop we used his work on Eveem to decompile a smart contract and chose a participant to explain the decompiled functions. That was the first time some of them ever saw Solidity code.

State of the Dapps

This curated directory fulfilled a dual function for us. 1. Participants saw the Dapp ecosystem. 2. Participants could find where these smart contracts lived on the blockchain.

Remix

Instead of getting them to use cmd line with truffle, the Remix IDE had compile and deploy plugins which would perform the respective function with just a click of the mouse. Furthermore, remix IDE had GUI which made interacting with functions on deployed smart contracts intuitive. The helpful GUI also made explaining solidity compiler versions and environments — Javascript VM and Injected Web3 easy to understand.

Ropsten

You can never have a blockchain workshop without interacting with the testnet. For this, we used Ropsten because of the user-friendly Metamask Ropsten Ethereum Faucet.

Feedback for the workshop

We had an 82% response rate for our post event survey.

Measuring if learning objectives are met

Evaluating the conduct of the workshop

Overall the feedback reflected a drastic improvement in our participants’ confidence to interact with the blockchain ecosystem. Participants reflected that they liked the hands-on activities but this was dependent on how well their pairwork went. Participants also hoped that we gave them an introduction to Solidity prior to the workshop however it was a conscious decision to not teach coding syntax but we realised perhaps giving an understanding of Solidity’s design considerations might have helped.

Conclusion

It is our belief that what the current blockchain landscape lacks for aspiring blockchain developers is a fundamental course that can bridge the gap between their developers current competency in coding and the highly specialised technology in blockchain research and tools in the market at the moment. From our time disseminating information about blockchain meetups to the general populace in school and monitoring the turn-up rate for these meetups, we noticed a noticeably higher sign-up rate for another blockchain-related workshop that we advertised at the end of our own workshop. Blockchain conversancy skills and the participants perceived ability in following through with online dapp tutorials have bolstered their confidence in working on the blockchain which has in turn increased the amount of time student developers are willing to put in to learn blockchain. These workshops are helpful as a starting point to ease developers journey into developing with blockchain and interest students into joining the blockchain ecosystem in Singapore and we will be happy to share our materials with universities who are interested in hosting their own blockchain workshop to onboard more student developers.

Signing off, QZ (@fishbiscuit) and SY (@shiyingtey)

--

--

No responses yet