Reading List
Please help us improve
This is an evolving document. Please feel free to add resources, or make comments about resources that are out-date or not useful.
Self-evaluation
Use the assessment below to help you evaluate your current knowledge. Where you find gaps, use the resources on this page to bridge the gaps.
Answer true or false for the following statements. Use the bullets below the statements to create your learning plan.
- I am familiar with and conversant about blockchain technology.
- If false, see content in Blockchain 101.
- If true, see content in RChain blockchain
- I am familiar with Rholang and have written Rholang code. I am comfortable talking about this with others on the team who are working on implementing Rholang on the RChain platform.
- If false, see content in Rholang 101
- If true, move on to another topic.
- I am familiar with Proof of Work Consensus and Proof of Stake consensus, and am comfortable talking about it with others on the team who are working on implementing Casper to the RChain blockchain.
- If false, see Casper 101
- If true, move on to another topic.
- I am familiar with the LADL algorithm and can talk about it at a high level.
- If false, see LADL 101
- If true, move on to another topic.
- I am familiar with Scala and have written Scala code. I am ready to contribute to Scala-related work on the RChain project.
- If false, see Scala 101
- If true, see RChain flavor of tagless final .
Table of contents
Blockchain 101
- Blockchain explained in plain English
- Coursera Cryptocurrency online course - This is a multi-week course delivered periodically. Taking the course may not be the best fit for you at this time. However, consider reading the syllabus to learn about what is covered to help you identify gaps in your knowledge that you may want to fill.
- ERC20_Token_Standard - describes the functions and events that an Etheream token contract has to implement
- What is Ethereum gas?
- Gas and transaction costs
- Uncle Mining: an Ethereum consensus protocol flaw
- How a coding error led to $30 million in Ethereum being stolen
- How coders hacked back to 'Rescue' $208 Million in Ethereum
- Sybil Attack
- Who are Bob and Alice?
RChain blockchain
- RChain Architecture Document (Note: This document is outdated and differs in the implementation you'll see for the Mercury release.)
- RChain blockchain state
- /wiki/spaces/ROS/pages/4030471 - Two video sessions with Greg Meredith with supporting notes. (Note: The RhoVM is not included in the Mercury release.)
Rholang 101
- Rholang specification
- https://www.rchain.coop/learn-rholang (tutorials)
- Implementing programming languages
- Rholang language: syntax and semantics
- Get started with Rholang smart contracts
- Rholang: the RChain smart contract language. Mike Stay talks about Rholang during a meetup hosted by Pyrofex in 2018.
- DAO attack deep dive
Casper 101
- Consensus in blockchains - Medium
- What is Casper?
- Correct-by-construction Casper: A visualization for the future of blockchain consensus
- RChain consensus
- Casper the friendly ghost: a correct-by-construcction blockchain consensus protocol
- Understanding Serenity: part 2 Casper
- Political Capital + Casper
For a deeper dive see the Casper stand up channel for recordings of the weekly Casper sessions.
Scala 101
Getting started with Scala and RChain Scala style guide
RChain flavor of tagless final style
The development team has adopted a common approach to use of the tagless final style on the RChain project. Members of the team suggest the resources below to help you get started. The other best practice is to look at code in the project and to use the team as a resource.
Object capabilities
http://erights.org/talks/efun/SecurityPictureBook.pdf
http://srl.cs.jhu.edu/pubs/SRL2003-02.pdf
https://reperiendi.wordpress.com/2009/04/07/good-object-oriented-coding-practices-object-capability-security/
https://mail.mozilla.org/pipermail/es-discuss/2013-March/029080.html
http://joeduffyblog.com/2015/11/10/objects-as-secure-capabilities
The bible:
http://www.erights.org/talks/thesis/
Other resources
- RChain YouTube channel
- Developer best practice: the value of writing specifications