/education-cryptomoji

Primary LanguageJavaScriptApache License 2.0Apache-2.0

Hyperledger Cryptomoji

This educational curriculum includes a quick intro to blockchains generally, before diving into distributed application development by guiding students through building their own Cryptokitties clone built with Hyperledger Sawtooth and Javascript. It follows a bootcamp "sprint" format, providing a stub application for students to implement themselves and extensive tests to guide their work.

Created in collaboration with Hack Reactor.

\(^▽^)/

Contents

Prerequisites

This project requires Node 8 and Docker.

Sections

This curriculum is broken into two parts. Although they build on one another, if you are already familiar with blockchain basics, you can probably skip part one. For detailed instructions for each part, head to their individual READMEs.

Part One: DIY Blockchain

README: code/part-one/README.md

Duration: 5-10 hours

Concepts:

  • Basic blockchain structure
  • Hashing
  • Signing
  • Consensus

Part one introduces you to general blockchain concepts by walking you through building your own. You should finish with basic working knowledge of hashing, signing, consensus algorithms, and the blockchain data structure itself.

\(〇_o)/

Part Two: Sawtooth Cryptomoji

README: code/part-two/README.md

Duration: 20-40 hours

Concepts:

  • Hyperledger Sawtooth overview
  • Writing clients
    • Building transactions and batches
    • Interacting with the Sawtooth REST API
  • Writing transaction processors
    • Reading and writing state
    • Validating payloads

Part two is the actual Cryptomoji app. It should give you a detailed understanding of how to build both clients and "transaction processors" on Hyperledger Sawtooth. When you're done, you will have a working full-stack application ready to be deployed on a Sawtooth blockchain.

(づ ̄ ³ ̄)づ

Solution Code

In addition to the prompts and stub functions in the master branch, this repo includes a solution branch with completed versions of both sections. This branch is a way for students to check their work and become familiar with current best practices. If your intention is to complete the sprint, we recommended that you do not use the solution code as a way to get yourself unstuck. At least attempt every prompt. If necessary, seek guidance from resources like Stack Overflow or Sawtooth's official chat before looking in the back of the book for the answers.

( ╯°□°)╯ ┻━━┻

Contributing

Hyperledger Cryptomoji is an ongoing project, and we always appreciate involvement from outside contributors. We use GitHub Issues to track bugs. If you have a problem to report (like a typo, a confusing lesson, or something not working as expected), please click on the Issues tab above, and then on the New Issue button.

If you would like to go a step further and contribute code, consider giving our Contributing Guide a quick read to familiarize yourself with our PR process.

__φ(..;)

License

The source code of this project is licensed for reuse under the Apache License Version 2.0.

The slides, videos, and original written material are licensed under Creative Commons Attribution 4.0.

~ヾ(・ω・)