In part one of this article, I discussed the Ethereum-based blockchain Proof of Concept we developed at Triad in 2017 and some of the issues that led to it being mothballed. The second part of this article discusses how in 2019, by working with Stratis, we sought to overcome some of these issues.
Stratis: an enterprise blockchain technology company that offers businesses a full suite of platform, products and consultancy services to help them develop bespoke blockchain applications. The Stratis Platform is fast and scalable, utilising a Proof of Stake algorithm and side-chains for higher transaction throughput, smart contracts written in C# and a modular and configurable full-node solution to tailor network features.
In September 2019, I was asked to sit in on a call with the Stratis team to understand how the Stratis Platform might enable Triad to offer a suitable, enterprise blockchain solution to our clients. As you’d expect, the Stratis team spoke enthusiastically about their open-source platform, how it offers a fast and scalable “Blockchain as a Service”.
The Stratis Platform can utilise multiple consensus algorithms (Proof-of-Work, Proof-of-Stake and Proof-of-Authority) and supports side-chains for higher transaction throughput with a modular and configurable full-node solution, which enables tailoring of blockchain network features. It claims to reduce the complexity of blockchain adoption and that smart contracts could be written and tested using .Net Core and Visual Studio. Intrigued and ready for my next challenge, I started working through the material available at the Stratis Academy.
My first step into the world of Stratis was to write and unit test some basic smart contracts using C#, then deploy them to a local test chain. Next, I was guided through the setting up of a local network with its own token, executing queries and transactions using the REST API, then setting up a full-node wallet on the Stratis Mainnet.
Lastly, they demonstrated how to stand-up a Stratis Full Node using a Microsoft Azure template.
When I had queries or ran into issues, the Stratis team were quick to help me resolve them either immediately or by adding bespoke feature requests to their backlog. The fact you can view the code base for the entire platform at https://github.com/stratisproject meant I could delve into the depths of the platform whenever I needed to understand more.
I even won some Stratis cryptocurrency, STRAT, after making some updates to the documentation in their GitHub repo!
The gamechanger for me, however, came a month or so later when they introduced their Cirrus Core (Hackathon Edition) tool (see image, below) in preparation for a smart contract hackathon event they were holding.
Stratis Cirrus Core (Hackathon Edition)
With just a couple of clicks, the Cirrus Core tool enabled me to develop against a locally hosted node using a simple and well thought out GUI. It helped streamline smart contract deployment and subsequent tracking, simplified transaction monitoring, enabled me to view auto-generated Swagger APIs for my smart contracts (See image, below), and resolved a few issues that had been slowing my progress.
Encouraged, I forked our Ethereum-based solution and ported our Smart Contract Proof of Concept to utilise the Stratis Platform. With a bit of tinkering, I was able to implement all the features we’d been using in Ethereum, was given a mature and popular language (C#) to write smart contracts with, and had the tools and features of Visual Studio at my disposal. All of this came with support for modern-day development and DevOps practices.
Auto-generated Swagger for Smart Contracts
Stratis also offers support for features such as SignalR, meaning that, in the future, I should be able to stop having to poll our smart contracts for event logs. This will improve and simplify our Proof of Concept’s architecture. The Stratis Platform is being continuously improved and whilst I haven’t had a chance to test any performance impact of using Stratis’ Proof-of-Authority/Proof-of-Stake over Ethereum’s Proof-of-Work yet, my reading suggests it should be favourable. I’d like to look at this at some point, but in the meantime if anyone has any performance metrics comparing the platforms I’d be very interested in reviewing them.
When it comes to Blockchain, I’ll be the first to admit that I don’t have the in-depth technical knowledge that say the team at Stratis have, but then I don’t have that level of knowledge about the inner workings of most of technologies I’ve been using my entire career. Ultimately, that’s not what interests me either. What interests me is understanding the benefits of different technologies and deploying them appropriately to solve real problems capable of delivering tangible benefit to organisations.
Blockchain and smart contracts, in particular, open up a new approach to solving certain types of problems, and in my opinion, the Stratis Platform performs admirably in solving these problems as part of enterprise solutions using modern development practices.
A senior consultant for Triad, a UK-based IT consultancy that provides the skills, commitment and people to help companies in the public, private and third sectors achieve their digital transformation goals by quickly delivering specialist teams across Agile and waterfall projects. Matt has 16 years’ experience in full-stack development, architecture, continuous integration/deployment, development process improvement, technical strategy and full lifecycle quality assurance.