RChain® Hackathon Nov 7-8, 2020

Decentralized Coordination and Governance at Scale

Online Qualifying Test Saturday Oct 31, 2020.

Register at registration form

RChain Advantage

RChain an emerging, open source, decentralized, economically sustainable public compute infrastructure. While the RChain design is inspired by that of earlier blockchains, it also realizes decades of research across the fields of concurrent and distributed computation, mathematics, and programming language design.

dApp Developer APIs and Tools

There’re APIs available for the platform that allow a person skilled in any language to develop apps.

RChain In Depth

The RChain decentralized applications platform is powered by the Rho Virtual Machine, including:

  • Rholang: an asynchronous message based concurrent language with reflection, thus supporting higher-order mobility and capability security
  • RSpace: a key-value database supporting the storage and query of both data and code

Rholang Foundations: Rho Calculus

RChain is an open source, emerging blockchain platform with a smart contract language called Rholang. The syntax and execution mechanism are derived directly from the rho-calculus, a variant of Milner’s π-calculus. The platform is intended to support correct-by-construction smart contracts with behavioral types. It is not possible to have bytecode injection attacks.  RChain is the first implementation of the Correct By Construction (CBC) Casper consensus algorithm.

Being derived from the rho-calculus, Rholang is a language in the process calculi family of languages.  Rholang is an asynchronous message based concurrent language with reflection, thus supporting higher-order mobility, like the higher-order π-calculus, but with far simpler syntax and semantics. Rholang has deep mathematical foundations making it suitable for automatic formal verification of code. In particular, Rholang is compatible with a behavioral type system that has already been shown to detect crucial bugs in the blockchain application space.

When considered in the context of RSpace, its execution mechanism and a unique key-value database supporting the storage of both data and active code, Rholang may also be seen as a next generation query language that reconciles relational query mechanisms with nosql. This means that as a smart contracting language Rholang is ideal for making blockchain a platform for data intensive applications where data is stored on chain, as well as a process modeling language, such as XLang, BEPL, or BPML.

RNode core scala dev

The core RChain platform is developed in Scala with extensive use of the cats library for pure, typeful functional abstractions.

Those desiring core platform development internships, should preferably understand the structure and logic of the cats library (typelevel/cats) and the best practices in using it.  Also required for core platform internships: familiarity with and/or interest in Test frameworks, generative and law based testing using e.g. ScalaTest, Discipline and Test Driven Development.  However, Scala expertise is not a requirement for participation in the hackathon.

Registration and Selection Process:

  1. Register your team and component individuals (all individuals in the team use the same team name) at registration form, providing the github user account and github registered email account for each team member, including: generating and submitting a SEPARATE REV address for EACH TEAM MEMBER using one of the interfaces to the RChain network. The REV address will be used for rewards, prizes etc.  
  2. Teams may describe a problem statement they want to work on. Rchain will make available several problem statements for teams that do not have a self-created problem statement.
  3. Each team member can also provide a cell phone number and the corresponding SMS email address, to receive SMS notifications and reminders.
  4. All individuals participate in the online qualification test on SATURDAY, OCTOBER 31, 2020 that includes questions in Logic, Scala, JavaScript, Python, Rholang and Cryptography + Blockchain concepts.
  5. Qualifying candidates will participate in a preliminary contest to create pull requests on github for smallish specified technical issues. Github familiarity (how Github works, making repositories, forks and feature branches, creating pull requests etc.) is required of ALLCANDIDATES.
  6. Hackathon participants will be selected based on their weighted performance in the test and the github exercises
  7. Teams will be formed around the problem statements, while balancing requisite team skills
  8. Teams will select and finalize scope of the problem statements they will work on.
  9. Actual Hackathon on November 7-8, 2020
  10. Judgement of teams by judges
  11. Prizes
  12. Opportunity for select teams and/or individuals to participate with RChain community in project based internships lasting three months to a year+

We hope the participants have an exciting, fun and wonderful experience with the hackathon process and the event.

Learning Resources

Blockchain in General
RChain Platform
Books on Scala
  • Functional Programming Simplified by Alvin Alexander (focus on the performant immutable data structures)
  • Functional Programming in Scala,
  • Scala for the impatient (you can skip the chapters related to objects),
Examples (there are several others on the net):
RChain Education: Implementation of Simple Rholang language
Effective Hackathon Preparation and Participation Resources:

Previous Hackathons: