└── README.md /README.md: -------------------------------------------------------------------------------- 1 | # Decentralized Consensus Challenge 2 | ------ 3 | 4 | Congratulations on making it to the Decentralized Consensus Challenge! Blockchain's have several layers starting from the protocol level all the way up to the dApp layer. Your challenge 5 | today is to **EITHER** extend Rchain **OR** implement an ERC20 Token! ​ 6 | 7 | **YOU ONLY NEED TO CHOOSE 1 CHALLENGE** 8 | 9 | **Submission equals invitation to interview!** **Incomplete solutions are welcomed!** 10 | 11 | **Submit a single PDF containing** 12 | 13 | 1. Write up on your process (w/ screenshots) 14 | 2. Link to your Github repository containing challenge code 15 | 3. Screenshot of showing successful completion of the challenge 16 | * Challenge 1 (Extending Rchain): Screenshots of *get_total_tokens()* and *get_transactions_for()* output. 17 | * Challenge 2 (ERC20 Token): Screenshots of contract deployed to Ropsten with time/date stamp and link to smart contract's public hash via [Ropsten scanner](https://ropsten.etherscan.io/). 18 | 19 | We will ask you to run the code and demo it live! 20 | 21 | #### Tips On Getting Started: 22 | * Dive Deep into the code! Then build fast! 23 | * Find resources online. 24 | * Keep it simple. 25 | * Test driven development. 26 | 27 | 28 | ## Challenge 1 29 | #### Extending Rchain + Starting Resources: 30 | 31 | 1. Understand and familiarize with the [Rchain codebase](https://github.com/Mereep/rchain) 32 | * Learning Rust [[1]](https://doc.rust-lang.org/rust-by-example/)[[2]](https://youtu.be/U1EFgCNLDB8) 33 | 2. Run Rchain as per [example](https://github.com/Mereep/rchain/raw/gh-pages/Blockchain%20Article%20Part%201.pdf) 34 | * Multiple users on the network 35 | * Both example attacks 36 | 3. Extend *World State* with *get_total_tokens()* to display the current token total in the network. 37 | * Tip: can be calculated by walking through the chain 38 | 4. Extend *World State* with *get_transactions_for()* display all the transactions in coronological order and block # for a given id. 39 | 40 | #### Optional: 41 | * Dockerize the Rchain codebase 42 | * Scale to 10 users 43 | 44 | 45 | ## Challenge 2 46 | #### ERC20 Token + Starting Resources: 47 | 48 | 1. Understand the fundamentals 49 | * [What is Ethereum?](https://www.youtube.com/watch?v=TDGq4aeevgY) 50 | * [What is a smart contract?](https://youtu.be/ZE2HxTmxfrI) 51 | * [What is an ERC20 Token?](https://blockgeeks.com/guides/erc20-tokens/) 52 | 2. Implement **YOUR OWN** [ERC20 Token](https://www.toptal.com/ethereum/create-erc20-token-tutorial) 53 | * Add a comment at the top of your contract saying *Insight Decentralized Consensus Challenge* 54 | 3. Deploy the Smart Contract to Ethereum testnet Ropsten using [Truffle](https://www.trufflesuite.com/blog/an-easier-way-to-deploy-your-smart-contracts) 55 | 56 | #### Optional: 57 | * Deploy contract to a local testnet 58 | 59 | --------- 60 | 61 | ##### Please have your code ready to demo! 62 | 63 | 64 | 65 | --------------------------------------------------------------------------------