Skip to content

erinnachen/all_the_coins

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

45 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ClarkeCoin -- Cryptocurrency for normal programmers

This is an ongoing project to implement a simplistic cryptocurrency network modeled after Bitcoin but streamlined for the purpose of being easier to follow (and build). As we go we'll be learning about the core ideas that make Bitcoin work, and getting a lot of practice with some interesting algorithmic and cryptographic problems. This is taken from the repo here: http://github.com/worace/coinage

Background Reading

If you're new to the ideas of cryptocurrencies in general, these are some great resources to get you started. The Minimum Viable Blockchain article especially is a great crash course for someone new to the ideas.

Conceptual Overview

This notes doc has a high-level overview of many of the issues we'll need to solve during the project.

Project Iterations

  • Iteration 0 - Creating Wallets and Signing/Serializing Transactions
  • Iteration 1 - Creating and Mining Blocks
  • Iteration 2 - Working with the BlockChain -- checking balances and generating payment transactions
  • Iteration 3 - Networking Basics -- connecting with TCP and handling basic message types
  • Iteration 4 - Validating Incoming Transactions and Blocks
  • Iteration 5 - Extended Networking: Discovering Additional Peers and Forwarding Valid Blocks and Transactions
  • Iteration 6 - Mining: Aggregating Transactions and Solving Blocks
  • Iterations 7+ - Advanced Topics - Mining optimizations, Base58-Check encoding, multi-address wallets, Wallet GUI, Node DNS Server, etc.

Knowns and Unknowns

This is an exploratory project to understand the subtleties that are involved with implementation of a cryptocurrency. The current functionality is:

  1. Can create wallets and sign transactions
  2. Transactions have inputs and outputs
  3. A miner can mine blocks and accept transactions
  4. A miner can accept connections through TCP sockets

In the works:

  1. Block validations
  2. Change to Elliptic Curve Cryptography as the digestion mechanism
  3. Consensus algorithms

About

A toy cryptocurrency implementation

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages