Open sourcing NEAR client
DEVELOPERS
November 28, 2018
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:

Twitter — https://twitter.com/nearprotocol,
Discord — https://discord.gg/kRY6AFp, we have open conversations on tech, governance and economics of blockchain on our discord.
Lastly, please subscribe to our newsletter.

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

