Open sourcing NEAR client

Today we are open sourcing the main code base of the NEAR Protocol client. You can start exploring code on GitHub right now.

It’s the first milestone in our plan to build a decentralized future. From my previous experience at Google with open sourcing projects (ScikitFlow, TensorFlow), the earlier a project opens the source code, the easier it is to build a truly open source community around it.

Our grand vision of making crypto and blockchain accessible to billions of people starts with a more intuitive UX for both end users and developers. While end-user experience is an important topic, today we’ll focus on developer experience. The tools we’re building are the first step in addressing this.

Our aim for open sourcing the code today is two-fold:

  • Start iterating on developer experience with real developers;
  • Enable collaborations with external developers who would be interested in contributing to the client development or ecosystem;

In this post, I’ll briefly describe what is included, how it fits into the bigger picture and how you can get involved.

Typescript

We are using TypeScript as the main programming language, which makes it easy for anyone with a background in JavaScript to build smart contracts. Also, this allows developers to test smart contracts with familiar JavaScript tools.

Near Studio

Building and testing ERC-20 contract in NEAR Studio

We are building a lightweight web-based IDE — NEAR Studio (github), where one can try building smart contracts now. We’ve provided an example fiddle of an ERC-20 contract that you can play with right now. Share your fiddles with us on Discord.

DevNet

Running DevNet and interacting via RPC interface

As the backend to NEAR Studio, we provide a “DevNet”, which is a stripped-down version of the NEAR node that only runs WebAssembly and State Transition without running consensus/networking. This is an analog of the Ganache project in Ethereum. See how to run and use DevNet here.

We are going to add more documentation in the next few days about how to use NEAR Studio and DevNet together to test deploying and transacting with your smart contracts.

If you are interested in the consensus layer or how the NEAR Protocol works overall, feel free to dive deeper into the code. Currently, we have just a minimal amount of architecture in place to facilitate contributions. You can also learn more about our consensus on research portal: Informal spec to TxFlow and Beacon Chain consensus spec.

Upcoming Milestones

Now that codebase is open we are going to be diligent about reporting current progress and upcoming milestones through GitHub issues and Community Updates.

We split our future development into three major milestones:

  • DevNet: complete developer experience for our blockchain. We are progressing on this milestone pretty well, but there is still more work to be done.
  • “Minimum Viable Blockchain” (MVB): a fully functioning blockchain that can provide a platform for running experiments on governance, economics and user experience. This version will only have a Beacon chain consensus.
  • Shard chains: adding sharding of state and processing to MVB.

Even though the release of these milestones is ordered, we are working on them in parallel.

Get Started

Developers, we encourage you to identify problems in the blockchain space you are most interested in (scalability, usability for developers or consumers, etc) and start working on that. The easiest way to start is to join our Discord or create a discussion issue on Github. Or simply find a bug in our code and fix it :)

PS. Note on the license. It is currently GPL v3 because of usage of Substrate components. Parity promised to switch the license to Apache v2 when they release POC v3 in a few months. Thus we will update as well to Apache v2 at that moment.

If you want to stay up to date with what we build at NEAR, use the following channels:

Lastly, please subscribe to our newsletter.

Thanks to Ash Egan, Erik Trautman and Bowen Wang for comments on the draft of this post.