By: Jesse Abramowitz
In order for a Blockchain ecosystem to thrive, developers need to be on board to create and foster a community. Accomplishing that feat requires the appropriate tools to handle the job. From creating DApps using Ethereum, Hyperledger or even Bitcoin, a blockchain becomes mainstream only when the proper tools are in place for developers to allow for mass adoption.
Here at BlockX Labs, some of my favourite work is building developer tools for blockchains. We are passionate about tools and are always looking for more to build. I personally joined the company almost 4 months ago. I am what is known as a blockchain native developer as in I am self taught with solidity as a base language.
As a lot of people may know the gold standard for this is Ethereum. The job they have done making it easy for developers is nothing short of a miracle and is the secret-not-so-secret key to their success.
We’ve curated the following list that every blockchain developer should know, and blockchains need for their ecosystems to succeed. Take a look at our Top 10 below!
An example is from Ethereum and is called Solidity.
2. Documentation and Education
This is hands down the most important and sometimes most overlooked part of the equation. This is true for every tool but especially the language. How do I use it? What are the caveats? Is it an existing language? If so how is it different (for example can’t use non-deterministic code)?
The more details the better. Documentation is key to allowing a Blockchain ecosystem to thrive because it allows developers everything they need to know about a blockchain.
Whatever virtual machine the specific blockchain uses it is not actually running the language that we are writing in. The code needs to be compiled down to bytecode then the virtual machine can act on it, so we need a tool to do that, which brings me to the next one.
4. Integrated Developer Environment
Remix for Ethereum is a very powerful tool. It is great for writing code and finding errors. It is also a great testing environment. Now technically you do not need to launch a whole browser based IDE like remix, instead you can create a plug in for existing IDE’s like VS code or Atom. However, I can attest to consistently using Remix for building and testing even though I have moved on to using Truffle for live deployments.
5. Node as an API service
To understand why this is needed, you have to understand some fundamental truths about the blockchain. One is that you can’t just connect and interact to this network. A blockchain (like the ones we are talking about) is a global state machine, so how can you read or interacting with it without knowing the state?
So how do you get the state?, That’s easy, you just run a node and sync it up on your laptop. Is that hard? Well lets just put it like this:
To do this you need to start at the genesis block and run through every transaction locally that has ever happened on the blockchain.
So, yes, very.
Also do you want to turn off your laptop and go to bed? No problem, you just need to re-sync every new block the next day and dedicate a lot of laptop resources to it. This is ridiculous and very few developers would actually do this, so what we need is an endpoint. Someone who hosts their node over web sockets and allows you to access it to make calls and send transactions.
For Ethereum the main endpoint service is called Infura.
6. Block Explorer
How am I going to read the blockchain? It is a lot of code. For example, to figure out a list of transactions from an account you would have to iterate through the whole blockchain and then search for all instances of the account. A block explorer can log and tag these files for searching to make it easy to access. A block explorer really is a visual representation of the blockchain. It is important both for users and developers.
7. Browser Extensions Interface (Wallet)
This extends to the idea of a new type of internet. One that uses peer-to-peer value transfer protocols as a standard at the very least. Preferably it will be used for more things. Currently DApps like gitcoin use the blockchain for this exact purpose. One day, our browsers and phones will build in this functionality however; today we need to use a browser extension. Something that allows us to make constant calls to nodes and then send transactions to those nodes.
Example: AIWA for the Aion Network
8. Front-end to back-end library
This one is mainly for developers. What we want are libraries. Things to make our front end easier and more flexible to write. By using Web3 js library I can easily make calls to the node I’m connected to. This makes developing the DApps that will bring value to your blockchain easier.
There are many ways to test contracts and dapps. One way is to test it locally. This however lacks the dynamics of a live network and can only be considered as partial testing. You need a network that is free and acts in the exact same way as the mainnet you are going to. The closest we can get to this is testnets. Networks that are voluntary maintained and act in the same way as the mainnet. This also helps with testing forks as you can fork a test net before the mainnet.
Example: Ropsten testnet.
Although we have a testnet, I still need some of the native token to the blockchain to interact with it. I could always mine it but I want to move fast and reduce points of friction. You need a faucet a DApp that gives out tokens for free so developers can test.
Example: Ropsten Faucet
10. Token Standards (at least ERC20, ERC721 equivalents)
ICOs dominated the crypto-sphere in 2017 and 2018. However, it i possible to use tokens for a multitude of reasons. Tokens themselves are complicated in terms of the rigorous security standards required. Not every developer can make a totally secure token nor should they have to use one in a larger application. The blockchain is new and hard to fully understand, it is also more permanent than other systems.
Having standards that are well tested by a multitude of parties really help reduce security errors, to bring a blockchain into the mainstream and avoid hacks like the batch Overflow.
Couldn’t resist adding just one more!
11. Gas station
Each transaction costs gas (for most cryptocurrencies). It is both an awesome feature and a drawback to these networks. It is important for users to be able to calculate how much gas they want to use based on the current state of the network. A nice visualization is beneficial. However, more important there needs to be an API that wallets can call to, to suggest an adequate gas price for users or else there will be a lot of dropped transactions.
I believe that these are the critical tools we believe will allow early-stage blockchain ecosystems to thrive. With these tools, developers will be able to experiment with different blockchains, develop DApps, and more.
Are there any you think we missed? Let us know in the comments below!
Jesse Abramowitz is a Blockchain Developer at BlockX Labs. He has worked on multiple DApps, projects, and Blockchain Networks. Currently, he is also a lab assistant at a local college and is always looking to help, teach and build on the blockchain.
You can reach him at: [email protected]