Challenge Task 2024
Intro
This semester’s Challenge Task (CT) is to design and implement a decentralized application (dAPP), deployed on the blockchain. The choice of use case to be implemented depends on the group’s choice. The groups should inform the teaching assistants on the topic (refer to the →deadlines) and discuss the feasibility of the proposal before starting designing and prototyping the application. Please check past CTs to have an idea about application outcomes (e.g., links).
Requirements
The following requirements must be satisfied for the group to obtain the exam bonus. The necessary information on requirements, useful links and tools, and impact on the grade are detailed in the next sections.
- Domain, Problem, and Requirements
- Select the use case for the application, for example:
- Food or agriculture supply chain
- Land title management
- Intellectual property rights management
- Decentralized finance
- Voting
- Discuss why the chosen use case is important.
- Outline at least three problems of the chosen use case that can be addressed using blockchain.
- Outline at least three functional requirements for the chosen use case.
- Select the use case for the application, for example:
- dApp Architecture Design
- Discuss the suitability of using blockchain to address the identified problems (e.g., requirements for data immutability or neural data exchange platform, data transparency, scalability considerations).
- Design a high-level software architecture to fulfillfulfil identified functional requirements. Consider the blockchain selection (e.g., public or private), the role of the blockchain in the system, on-chain and off-chain components.
- dApp Development
- Revise the architecture design based on the feedback on the midterm report
- Develop a dApp based on architecture design and include the following:
- Interactions with blockchain.
- At least two smart contracts.
- Off-chain computational component.
- Off-chain data storage (e.g., cloud, IPFS).
- Oracle (if applicable)
- Graphical User Interface (GUI) (optional).
- Write a final report documenting the smart contracts, its operations, and the source code.
- Present your architecture design and demo dApp at the final presentation.
- dApp Deployment
- Ensure that the dApp and its smart contracts can be deployed in the Ethereum testnet.
- You can use just one node (e.g., Ganache, Parity, Geth client) with multiple addresses.
- Ensure that the dApp and its smart contracts can be deployed in the Ethereum testnet.
Deadlines and Evaluation
Each group can achieve an exam bonus of 10% by (i) handing in solutions to all exercises with proper quality and (ii) complying with the requirements on the CT outlined above. To do so, the following deadlines should be respected:
- Attend the introductory presentation on the CT: 22.02.2024 (optional, onsite)
- Participate in the exercise session to form the CT groups: 29.02.2024 (mandatory¹, onsite).
- Hand in the proposal: 10.03.2024 (mandatory¹, online - see → Submissions).
- Midterm report: 25.04.2024 (optional, online)
Should include the following sections:- Selected domain and why it is important
- At least three problems of the chosen domain
- At least three functional requirements
- Suitability of using blockchain
- Software architecture
- Final report: 22.05.2024 (mandatory¹, online)
Extend the midterm report with the following sections:- Implementation details
- Design trade-offs and limitations
- Link to the source code
- Final presentation: 23.05.2024 (onsite, mandatory¹)
- Each group will have 15 minutes to present the architecture design and demo the application, showing that it meets the defined requirements.
- The presentation should include slides, covering:
- Selected domain and identified problems
- Functional requirements
- Suitability of blockchain
- Software architecture
- Demo
- The group will be evaluated by the assistants during the presentation, with the following criteria taken into account:
- Architecture design and implementation
- Teamwork
- Presentation
- Demonstration of the solution
- The winning group will receive the “BCOLN Challenge Champion 2024” award - the winners will be announced in the week after the final presentation.
¹ mandatory to pass the CT
Submissions
Hand-in the exercise solutions via OLAT, CT proposal, and all CT-related matters by email to vonderassen@ifi.uzh.ch and schumm@ifi.uzh.ch.
Libraries and Tools
Make use of the existing libraries and tools developed for building dApps, such as:
- HardHat (https://hardhat.org/) or Ganache (https://trufflesuite.com/ganache/).
- Solidity documentation (https://docs.soliditylang.org/en/develop/).
- Ethereum JavaScript API (https://web3js.readthedocs.io/en/v1.2.9/getting-started.html).
- Solidity by Example (https://solidity-by-example.org/).
- Use the forum provided by OLAT to discuss problems and exchange ideas.
- Past years' projects (gitlab)
Organization
The groups should be balanced in experience and workload. Every group should have at least one development expert. During the CT, the group is recommended to meet every week during exercise hours to work on the task and discuss the next steps.
Besides the exercise time slots assigned on Thursdays, the groups should utilize their homework time to work on the CT. The groups should determine and set up an internal project plan with the milestones, responsibilities, and timings. The groups should distribute the workload so that each group member gets a fair load of work. Do not miss the opportunity to discuss details with the teaching assistants, as he/she might give you useful directions.
# | Group Name | Participants | Proposal | Presentation day | Final Report |
---|---|---|---|---|---|
Qi Guo |
❌ | ❌ | |||
Cyrill Meier |
❌ | ||||
3 | Hera | Xiaotong Yang Zhongjian Yu |
✔ | 23.05.2024 | ✔ |
4 | Nike | Alberto Masera Szczepan Dominik Gurgul Roham Zendehdel Nobari |
✔ | 23.05.2024 | ✔ |
5 | Hades | Leiheng Qin Zhengxun Yin Aaron Arauz |
✔ | 23.05.2024 | ✔ |
6 | Nemesis | Faizan Nehal Siddiqui Xiong Li |
✔ | 23.05.2024 | ❌ |
7 | Athena | ||||
8 | Poseidon | ||||
9 | Demeter | ||||
10 | Tyche | ||||
11 | Artemis | ||||
12 |