ENG 334: Fundamentals of Blockchains and Decentralization

# ELEC_ENG/COMP_ENG 334: Fundamentals of Blockchains and Decentralization

Welcome! This is the repository for required projects of the above course.

## Project Suggestion
You should create your own *private* repo to avoid your code being seen by others. **We recommend you refer to [this when creating your private repo.** If you wish to pull the latest updates from this public repo, you can run the following:
$ git remote add public https://github.com/zqubit/334f21.git
$ git pull public master

You need to run the project on your machines. **We strongly recommend Linux or Mac OS.** On Windows, some package referred by the project has bugs, and we recommend Ubuntu subsystem on Windows.

**We also strongly recommend you install a proper IDE** to make coding in Rust easier. Below are some good choices:
1. [IntelliJ Rust](https://www.jetbrains.com/rust/). It is free for all _.edu_ email account, specially designed for Rust, and very easy to use.
2. [VS Code](https://code.visualstudio.com/). It is totally free and very flexible. You need to install an [extension](https://marketplace.visualstudio.com/items?itemName=rust-lang.rust) for the Rust language support. Extensions for coding on non-local machines (via WSL/SSH) are also available to download.

## Warmup Project

– [Warmup 1](Warmup1).
– [Warmup 2](Warmup2).

## Midterm Project

– [Part 1](MidtermProject1).
– [Part 2](MidtermProject2).
– [Part 3](MidtermProject3).
– [Part 4](MidtermProject4).

Submissions later than due date will get 0 points.

## Acknowledgement
We thank Professor Pramod Viswanath and Xuechao Wang for developing these course projects and for sharing their repository.