CodeChain Tooling Support

Kwang Yul Seo
CodeChain
Published in
3 min readApr 30, 2019

There are numerous teams that aim to implement new blockchains. Many ICO teams with Ethereum-based ERC-20 tokens are planning to create their own chains and no longer rely on Ethereum. Despite efforts to improve scalability, Ethereum’s performance is not yet sufficient and DApps may require additional functionality not provided by existing blockchain platforms, and thus attempts to create new blockchains are expected to continue to rise.

However, what does it mean to make a blockchain from scratch? Would the sole idea of a groundbreaking consensus algorithm that raises the Transaction Per Second (TPS) automatically lead to a new blockchain implementation? It is true that from the end of last year to early this year when the ICO was booming, it was easy to collect tens of billions of dollars using this approach, but unfortunately, blockchains aren’t so easy to create.

To create a blockchain, you initially need to implement a blockchain engine. The consensus algorithm is also an important element of the blockchain engine; however, the engine also includes a virtual machine for smart contracts, a network stack for P2P communication, storage for storing block and state data, a verifier that verifies the validity of blocks and transactions and all of these elements must be connected in harmony. If you are considering blockchain technology that focuses on performance and scalability, you must also consider sharding or interchains too. Since it is difficult to build a blockchain engine from scratch, most projects begin from a fork of existing projects and end up modifying only one or two elements.

The successful implementation of a blockchain engine does not conclude the development process. In order to facilitate the process for people to use your blockchain, various tool support is also required. First, we need a block explorer to check the contents of generated blocks and transactions. You also need to create a wallet that allows you to send and receive digital assets that are published on the blockchain. If you are running a testnet, you also need a Faucet site to distribute test coins. SDKs should also be provided to allow developers to easily utilize the blockchain nodes. If the blockchain supports Smart Contracts, there should be tools for that Smart Contract Language as well.

Nodes also need tools to participate as validators in the blockchain network. In the case of a blockchain engine that uses Proof of Work (PoW), mining software must be provided. Furthermore, since a single block validator can operate several nodes, software that provides monitoring and management functions for several nodes is also needed. In addition, there may be even more tools that can provide convenience to blockchain users. For example, it is convenient to have a command line tool that can generate and manage keys, or software that can provide a view and allow easy management of digital assets that are published on the blockchain.

CodeChain provides a variety of tools to provide a seamless experience for the user:

Tool support is essential for facilitating usage for any software out there. CodeChain invests a lot of time and effort not only in developing our blockchain engine but also in the tools that allow the engine to be used easily. We are currently preparing a CodeChain Console project that will allow users to effortlessly issue digital assets on CodeChain. I’ll go into more detail about that in the next article.

--

--