ProjectBeta

Blockchain (Go)

16 completions
~ 24 hours
4.0

Get a profound understanding of how blockchains work, apply your hashing and multithreading skills and learn about (de)serialization: many great topics in one exciting project.

Provided by

JetBrains Academy JetBrains Academy

About

Blockchains are data structures where blocks are inseparably connected. What makes blockchains so special is the security level they offer due to the way they are constructed. Blockchains are unhackable, so it makes perfect sense why cryptocurrency makes use of this technology. In this project, you will try yourself at making a microcosm where virtual miners earn cryptocurrency and exchange messages and transactions using blockchain. As difficult as the project might be, it is bound to pay off: not in cryptocurrency, but in knowledge and skills.

Training project icon

Training project

This project allows you to practice and strengthen your coding skills, helping you get ready for more advanced tasks ahead.

What you'll learn

Once you choose a project, we'll provide you with a study plan that includes all the necessary topics from your course to get it built. Here’s what awaits you:
Make cryptocurrency mining possible in your virtual world: generate magic numbers and store them in blocks.
Generate random numbers in several threads; when a miner finds the magic number, a blockchain is created, and mining goes on.
Learn to store data in the blocks: add messages to your blockchain.
Add encryption with private and public keys to ensure a high level of privacy and security.
Create a cryptocurrency in your program: starting with a sorry amount of zero coins, your virtual miners will get a hundred for each block they mine.

Reviews

brettjames25 avatar
brettjames25
2 years ago
Very fun, challenging project with incremental stages. Good to cover concurrency with a practical exercise. Would possibly benefit from a topic on Mutexes?
Raymond Chavasse avatar
Raymond Chavasse
3 years ago
After this level you have mastered enough Go,including goroutines, remaining access to databases and web

4.0

Learners who completed this project within the course rated it as follows:
Usefulness
4.4
Fun
4.3
Clarity
3.5