Since the introduction of Bitcoin and the blockchain, the cryptocurrency space has seen rapid innovation in both academic research and in cutting edge designs from industry. Student interest has likewise increased rapidly. All of these areas would benefit from the ability to rapidly prototype ideas without becoming bogged down in complex code bases: academic researchers need a way to highlight key concepts of their designs; industry engineers could vet their early designs and identify potential challenges; and students would be able to play with key concepts of the blockchain in a simple, easy to understand codebase. This paper introduces SpartanGold, a blockchain implementation written in JavaScript patterned after Bitcoin. Several features of Bitcoin’s design are simplified or eliminated, though those features may be added in easily. SpartanGold supports a single-threaded mode where miners communicate via JavaScript events, and a multi-process mode where miners and clients send messages over TCP/IP. While the former mode simplifies testing and can provide cleaner demonstrations, the latter mode provides a more realistic experience. We show the utility of SpartanGold by implementing different designs of mining pools and by showing how Bitcoin’s UTXO model could be added to SpartanGold.
- Blockchain,
- Cryptocurrency,
- Education
Available at: http://works.bepress.com/thomas_austin/40/