At IOST, we have been hard at work for the past year laying the foundation for an ultra-high TPS blockchain infrastructure capable of meeting the security and scalability needs of a decentralized economy. Our mission is to be the underlying architecture for the future of online service providers. On the eve of IOST’s testnet launch, this article is designed to explain the 4 key principles of blockchain development that have guided IOST engineers throughout our research and development process.

Developer tools are an integral part of the growth of a thriving developer community Clean code with clear logic, dependencies and documentation methodology simplifies the development process and creates an efficient ecosystem Both a blockchain and a blockchain development framework are necessary and provide the toolset required to build a full-featured blockchain system Respect the integral values of blockchain technology and commit to keeping blockchain open, neutral, immutable and decentralized

Developers Tools

Our mission is to increase developer efficiency and simplify the process of shipping infrastructure and products. We focused on building a suite of fast and reliable blockchain test/automation tools that allow developers to spend more of their time on the things that matter. We are excited to introduce the result of this process - Rainer.

Rainer: Intelligent Automated Blockchain Testing at Scale

In order to ship code updates to the IOST blockchain which will be used by our dev community and end users, extensive testing is required to ensure stability and performance. At scale, this process requires checking hundreds of interactions across numerous types of smart contracts and systems for both code integrity and speed. Previously in blockchain development, this has largely been a manual test design process, during which engineers devote time and resources to designing test cases.

We saw a better way and have developed an intelligent software testing tool named Rainer to efficiently automate test cases. As Rainer processes and checks code, it builds a comprehensive model of the system it’s testing and harvests effective testing strategies for subsequent reuse and continuous integration with the help of Ansible and Docker. Our work with Rainer demonstrates that it is possible to automate much of the time-consuming process currently necessary in blockchain development and by doing so, accelerate the deployment of new blockchain features. Engineers can now test-and-deploy on all testnet nodes with one click.

Rainer automatically tests, deploys, failure-handles, and reports thousands of test cases conducted every day on the IOST testnet. In addition to accelerating the testing process, Rainer has delivered an extremely low false-positive rate. Our engineers have found that more than half of Rainer reports are actionable and result in fixes. In the first few months since its deployment, the technology has allowed engineers to fix issues within hours, and sometimes within minutes of the code being written. Rainer has already had a positive impact in our developer community, bringing out new features and enhancements quickly without compromising on stability or performance.

IOST will release Rainer as an open source project in the future. We expect to implement and share new features and enhancements of Rainer over the next several months.

2. Structure Design With Engineering Excellence

During development, it’s important to consider how to best leverage different functional features to create clean, effective code. In practice, our engineering team is making clean code where logic, dependencies and folder structure are clear.

At IOST we believe code style, API design, and automation are essential components for healthy blockchain development. Code structure is a crucial part of a project’s architecture, and requires the utmost attention to detail.

For example, one layer of a blockchain handles interfacing with transactions, while another layer handles low-level manipulation of data. The way we developed this system was by separating these two layers and then grouping all interfacing functionality in one file, while placing all low-level operations into a seperate file.

This architecturing can be subtle. Network events, where parts of the node stop working for a period of time are often caused by nasty, unexpected bits of coupling — as an example, changing a configuration in routing layer can causes timeouts in data storage, which can overload certain nodes. You could stare at the source code for routing layer all day and never guess that it was coupled to the node. Coupling is expensive, but some coupling is inevitable, so we tried to be responsive in designing by eliminating any coupling triggered by frequent or likely changes and preserving trivial couplings.

3. A blockchain development framework

We believe developers are at their best when developing is an enjoyable and creative experience. The IOST blockchain framework takes the pain out of development by simplifying arduous common tasks used in the majority of blockchain projects. Our framework is very powerful and is designed to be accessible. It provides the modules and tools needed for large decentralized application scenarios. Through a combination of simplicity and innovation, we provide developers everything they need to build full-featured blockchain systems.

Some examples of the benefits that the IOST framework has to offer include:

Framework with a small bandwidth footprint

Simple and efficient network routing layer

Smart contract playground for developers to run smart contracts locally

Cross API calls for smart contracts

Robust blockchain monitoring module

Intelligent and scalable automated blockchain testing

4. Respecting the Values Essential for Blockchains

When looking at the competitive landscape, our team was disappointed to find a long list of projects compromising far too heavily on the qualities that make blockchain special. From day one, blockchain has been presented as a decentralized platform devoid of fraud, censorship, and third-party interference. Sadly, many blockchain projects have deviated from the original vision and fail to uphold true decentralization and immutability. Some examples include Ethereum rushing a “soft fork” comprised of minor changes in the Ethereum blockchain code for the sole purpose of censoring transactions, and EOS forming a centralized judging committee that has the ability to decide what is right and wrong, which completely override the promised immutability of blockchain.

IOST adheres to the quintessential egalitarian values of blockchain technology. We believe in the original intent of building and maintaining a censorship-resistant, trustless and immutable development platform. We aim to achieve universal adoption and utilize decentralization and blockchain technology to cut out middlemen and maximize network value for all parties. Our team is committed to keeping the IOST blockchain open, neutral and immutable.

Openness Anyone is able to participate in every layer of our system. From using our blockchain, to creating a client implementing our open protocol, to contributing to our network. Our rules and our code are open for everyone to see and understand, and no preconditions should or will limit participation. Neutrality Anyone participating in blockchain-enabled cooperation does so on an equal footing with all other participants. IOST aims to fundamentally disrupt previous methods of business by creating a self-operated trust network that maximizes network value for all parties. We are a direct challenge to the systems that came before us and aim to create a model which cannot be skewed to favor the few at the expense of the many. Immutability There shall be no changes to the IOST code that violate the properties of immutability, fungibility, or sanctity of the ledger. Transactions or ledger history cannot for any reason be reversed or modified. We are building a truth machine preserving one universally accepted version of history. It’s not possible to change history, and no resources will be wasted on that effort.

Looking Forward

It’s been over a year since we started developing the IOST blockchain. On this journey, we have learned so much and are excited to bring the initial product of our hard work to the public. We look forward to sharing more of our insights in future posts and as always will remain true to our 4 key principles.

Testnet

The IOST testnet will be released on 06/29/2018. I will be giving a thorough walk-through of the IOST testnet in my next post and we will also be launching a game entitled “Lucky Bet” that allows community members to play on the functioning testnet. We look forward to your feedback and hope to which will help us make IOST blockchain better.

Terrance Wang

Chief Technology Officer | IOST

Originally posted on medium