Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Blockchain Engineering - class of 2023 #7100

Open
synctext opened this issue Oct 21, 2022 · 0 comments
Open

Blockchain Engineering - class of 2023 #7100

synctext opened this issue Oct 21, 2022 · 0 comments

Comments

@synctext
Copy link
Member

synctext commented Oct 21, 2022

<ongoing editing, will be finalised before class kickoff 15Feb 2023>

read below for class project examples (MANDATORY) Official place for "class projects" of the Feb 2023 edition of CS4160 by Delft University of Technology.

2023 Tiktok Token from scratch - decentralised

The class of 2023 will together create a blockchain-based Tiktok alternative from scratch. Teams of 5 students will cover everything: from token-driven video streaming to marking videos ❤️ token. The Kotlin-based superapp will be used as a mandatory programming framework. A skeleton Android TikTok engine will be provided as a starting point. This will help to get you started.

on-campus education - class schedule (slides will be updated) :

On-campus lectures location: Pulse (building 33) Room: A0.400

Week Description
3.1 course outline slides and presentation of available projects and formation of teams (each 5 students)
(15Feb) 8:45 - 9:45 : present all available projects
  9:45 - 10:30 : self-organise and form teams of 4-5 students. Professors available for questions
3.2 Introduction to blockchains, Bitcoin, ledger technology, and DAO (slides) by (Can: TU Delft & IOTA Foundation)
  short 10 minute introduction to Superapp (Rowdy)
3.3 Networking (Bulat)
IPv8 simulator
3.4 Web3: Tokenomics and other incentive mechanisms (Georgy)
3.5 General lessons from 14 years of ledger science experience. Additional detailed reading: IPv8 documentation, the tutorial and Trustchain.
3.6 Who is in Charge: Centralised and decentralised infrastructures (Dr. Leonard, Authority Financial Markets (AFM)) (final class lecture)

Best in-depth scientific overview of "Blockchain Engineering": "Understanding blockchain: definitions, architecture,
design, and system comparison
"

Class projects: TikTok token

The Delft tiktok alternative will be completely cloud-free and will not need any servers. It will be a completely peer-to-peer network with smartphones only. At no point will other devices such as laptop, PCs or servers connect. This property ensures the tiktok token is autonomous and not require any maintenance or upkeep.

40 students will work together on the TikTok token. Not only the token economy, but an operational video streaming app. Work is broken into 8 tasks, each task is for a team of 5 students (smaller teams sadly only with permission, we want maximum number of students able to pass this course). This settings, complexity, and wide scope is similar to the real world of software engineering and blockchain. For simplicity and feasibility we will keep the token design extremely basic: 1 token for bandwidth, content upvoting, and content recommendation. The focus will be on the token economy and basic app logic. Complex features such as comments and reaction videos are out of scope. Doing video streaming from scratch is hard, thus Bittorrent will be used. Another Github-based Tiktok alternative:

Required token background reading:

  1. Token Core Design. You will be responsible for the core token design and realisation. This team is recommended to be senior. For instance, with Honor level grades, significant coding experience, and willingness to learn. Token Wallet, video payment, video playback, and swipe. The bandwidth token is essential to streaming. Other phones will give you video content in exchange for tokens. Video is transfered using Bittorrent between Android phones, meaning no server or seedbox is needed. The token wallet will record the tokens owned by the user and transactions. To avoid spending time on video playback, simply use the axoplayer already integrated within the superapp. Swiping between already downloaded video files should be fast, smooth, (and addictive?). Required background reading: ConTrib: Universal and Decentralized Accounting in Shared-Resource Systems.
  2. Live video streaming, background downloading, swiping, and token payments. You cardinal task is to make sure the video never stops playing. Download any creative commons licensed Bittorrent swarm in the background. When the user swipes, show the next video which is ready for viewing. By downloading content from others you consume the Tiktok tokens. Your balance might even go deeply negative! You are free to re-use the code from the token core design team and the transaction engine team. Required background reading: ConTrib: Universal and Decentralized Accounting in Shared-Resource Systems.
  3. Token transaction engine. Create a lightweight and fast token transaction engine for mobile devices. Your engine should be able to process 1000 transactions per second with standard 4G connectivity. Record these transactions within a simple SQLite backend. Realise simple primitives such as send/receive token primitives. Required background reading: ConTrib: Universal and Decentralized Accounting in Shared-Resource Systems.
  4. Offline token money. Your task is to create easy payments using tokens, without Internet. Giving and receiving tokens should be easy and effortless. Special requirement is that it should also work in an emergency: when the Internet is down. Probably you need to use QR-codes scanning to move Tiktok Tokens between devices. The hard scientific task is to address the double spending risk. Required background reading from Delft: Double spending prevention of digital Euros using a web-of-trust.
  5. Upvoting token. Each user can give away an infinite amount of ❤️ tokens. Content creators are rewarded with ❤️ tokens, boosting their visibility. Content gathering lots of ❤️ will get more attention and go viral. Content creators can see in real-time who is giving them a ❤️ token. The ❤️ token economy design and implementation is your responsibility. Part of your demonstration will be a wipe-based UX implementation which favours viral content. Fraud and manipulation of your token economy such as the Sybil attack can be ignored. Bonus background reading: The like economy: Social buttons and the data-intensive web.
  6. Upload for Profit. By using idle bandwidth on your smartphone you can earn money. Your system will explore how to earn as much tokens as possible, known as token mining. You make a profitable investment when you download content once and upload it numerous times. Due to storage limitations the key decision to make is: which Tiktok-like content to invest in. By doing yield prediction you maximize your income. Required background reading: Decentralized credit mining in P2P systems.
  7. Token overlay 4G/5G/Wifi You will make the first reliable token communication network for smartpones. Smartphones are by design critically dependant on the Google or Apple cloud. Pure peer-to-peer operations between smartphone is not really support. You will solve this problem. This task is to create a reliable communication network from unreliable smartphones with restrictive networking by telecom operators. Carrier-grade NAT devices restrict the Internet capability of any smartphone: you can't receive incoming connections. Required background reading: A Multi-perspective Analysis of Carrier-Grade NAT Deployment. We can hack the restrictions put in place by Big Tech and Big Telco companies. With the help of the birthday paradox. You will open, say, 256 sockets on each side and try to create a direct connection, read the exact details of this idea here. This task ensures first class support for Android-2-Android token transfers, credit mining, and upvoting. Zero trust overlay network is part of the wider scientific challenge of creating zero-trust architectures. recommended for embedded systems experts, not afraid of bits, messages, and UDP sockets.
  8. Novel consensus Consensus algorithms based on proof-of-work and variants have exploded in popularity since Bitcoin launched in 2009. Older work based on the 1992 idea of a web of trust has not yet been used in the crypto context. Your task is to create the first proof-of-goodness for token validation function, based on MeritRank idea. You proof-of-goodness function is capable of detecting fraud. Specifically, when given numerous Tiktok token transactions, a token graph is constructed, and fraudulent areas are identified. You challenge is to create an epic Sybil attack with 70% fraudsters in the network and detect them.
  9. Coin minting New tokens and fresh tiktok-like videos are the starting point. Rewarding creators for their work and giving them exposure is what makes the ecosystem thrive. This task covers creator token rewards, video recording, and video uploading. The wallet of artists gets filled with new tokens for each new ❤️ upvote and playback. If your videos go viral, you gather lots of tokens. Using a simple Android camera API its possible to capture videos. These unedited videos can be shared using Bittorrent. The Bittorrent skeleton app will get you started there.
  10. Decentralised token exchange Your task is to create a marketplace for tokens. This enables the exchange of Tiktok tokens for Bitcoin or Euros. Markets are a key part of our economy. Decentralisation of markets in general with a permissionless approach is highly disruptive. This is also a difficult task, required reading: XChange: A Blockchain-based Mechanism for Generic Asset Trading In Resource-constrained Environments Operational Python example TradePayloadMessage for your Kotlin efforts.

Ban on bloatware

To get you started we provide you with a starting point called the superapp. Tiktok token scratch means and light weight means: no new dependencies, no new heavy GUI toolkit, no heavy JavaScript library,

Avoid creating Android Bloatware. Example of superheavy open source TikTok projects, React Native TikTok, super heavy TikTok with Swift(Frontend) and Firebase(Backend), and Android version of TikTok clone with a huge tech stack

Class collaboration

During this class you will make something bigger and with more people then you've ever done in class. This class prepares you for the commercial world of blockchains and software engineering in general. Code in the real world is imperfect, lacks perfect documentation, is made by humans just like you, and is difficult to make with big teams.

We will monitor the collaboration of each team. This will be part of your final grade. To help integration we have the following time table:

Week of class Milestone for collaboration with other teams
Week 4 Document you alignment and integration points on Github.
Week 5 Your API is documented on Github.
Week 6 Integration week. All projects need to have initial operational V1 skeleton
Week 9 Final integration week: All projects need to have initial operational V2.FINAL skeleton
Week 10 Final demo week

Prior year project examples and student project results: 2022 edition, the 2021 edition, the 2020 edition projects, and 2018 projects.

Question: why is this course not more about blockchain? Answer: because it's about real-life engineering of token-based systems. Not a blog post for selling tokens.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants