Not just a node: Stratis’ C# Full Node is live, and it was worth the wait Acetmesis Follow Dec 13, 2018 · 4 min read

Full nodes don’t get the press they used to: what’s a cryptocurrency without full nodes anyway? Once a pump-worthy buzzword and still the basic building block of a cryptocurrency network, the full node has been relegated to the box marked “unexciting blockchain components” in lieu of more headline-grabbing innovations. Trust the Stratis team to deliver full node software that could reestablish the full node to its rightful position within the cryptocurrency menagerie, front and centre.

Somebody that I used to node

A node is software run by a computer to support a cryptocurrency. For example, you’re running a node when you have a wallet open on your computer. Full nodes are software that fully validates the transactions and blocks of a cryptocurrency. If you’ve ever participated in block production, e.g. staking or mining, or used a wallet which downloads the full blockchain of a cryptocurrency and checks if every incoming transaction or block is valid, then you’ve run a full node.

Full nodes are the primary building blocks of a cryptocurrency. They are the arbiters of a cryptocurrency’s protocol, decide which blockchain to maintain a copy of, what transactions to reject and which to propagate further into the network. They allow new nodes to sync the blockchain and each full node individually checks all incoming transactions and blocks against the rules that they each independently follow. Perhaps most importantly, they are your contribution to the decentralisation of a cryptocurrency and en masse they have the final say in a cryptocurrency’s quest for consensus.

However, full node software has been pushed out of the limelight by more recent innovations in the cryptocurrency space: smart contracts, layer 2 technologies such as sidechains and payment channels such as the Lightning Network. The Full Node just isn’t sexy any more. So why, then, am I excited about Stratis’ C# Full Node?

The long and winding node

Stratis has always had full nodes. It simply could not have existed had it not. These legacy nodes are referred to as StratisX nodes, to differentiate them from the C# Full Node. If you’ve ever run the Stratis qt-wallet, you’ve been running a StratisX node. Since its ICO in 2016, the StratisX nodes have allowed Stratis to function as a currency. This in turn has allowed Stratis to become a mature cryptocurrency with a high level of decentralisation, a wonderful community and robust security for its network through consistent and significant staking weight.

The StratisX nodes were only ever placeholders waiting for the day when they could be replaced by the C# Full Node. Stratis wanted to provide an end-to-end service which allowed users to provision bespoke blockchains and develop applications which leveraged the properties of distributed consensus technology. This meant developing a Blockchain as a Service (BaaS) platform, which they called the Stratis Platform. The Stratis Platform is a group of services fuelled by the Stratis cryptocurrency. While the platform is designed with businesses and enterprises in mind, the software is open source and available to anyone. It allows a user to create sidechains, write smart contracts, fund ICOs using the ICO platform, design Distributed Ledger Technology solutions and so the list goes on through services relating to cutting-edge blockchain tech.

To make all of this possible, they were going to need powerful, versatile and customisable full node software. This is where Stratis’ C# Full Node comes in.

There’s no business like node business

Off the back of the incredible work done by Nicolas Dorier with NBitcoin, Stratis’ C# Full Node started life as a C# rewrite of the Bitcoin protocol with a proof of stake consensus algorithm. C# is one of the world’s most popular coding languages and is a part of the Microsoft software ecosystem, the .NET framework. It’s an industry standard language with significant enterprise advocation, an unmatched suite of development tools and active support and improvements from the world’s largest company (well, largest at time of writing).

There are some good reasons for Stratis to base itself on Bitcoin. Bitcoin’s protocol has undergone more rigorous testing than any other cryptocurrency. Its protocol is a proven and familiar architecture for developers to work with. Moreover, Bitcoin has the largest presence in the cryptocurrency space. By aligning itself with Bitcoin, Stratis benefits from advances in Bitcoin’s technology.

Stratis used this as a starting point to build the full nodes of a cryptocurrency which would be able to fuel the platform they had envisioned.

Node to joy

What they ended up with is the reason this post is titled “Not just a node…”: Stratis’ C# Full Node has more in common with a feature-packed software development kit than it does with a standard cryptocurrency full node.

The C# Full Node is a “blockchain development kit”. Let’s say you’re a developer who wants to build an application which uses blockchain tech. Stratis’ C# Full Node has a modular and pluggable architecture, allowing you to pick and choose which components they want to include in your application. It supports multiple consensus algorithms (PoW, PoS and PoA), multiple chains (out of the box, supports both Bitcoin and Stratis), sidechains, Turing complete smart contracts that execute .NET code on-chain (the first ever to do so in crypto), the creation of permissioned DLT solutions, remote procedure calls, a web API, different types of wallets, cold staking and a host of other features, all of which can be found in the documentation.

There’s no full node like it anywhere else in crypto.

The Stratis Platform is a group of services. All of these services are supported by the C# Full Node. In a very real sense, Stratis hasn’t just released a full node, they’ve released the Stratis Platform itself.