Insight - Delegation program application (June 2020)

Hello ICON, Insight here to give updates to our delegation program application. Few months ago we released a progress update along with an additional delegation uses summary. Since then we have been executing on our core projects including infrastructure automation and node monitoring where we have a few exciting updates to report. We also have been working with our fellow program to expose new developers to the ICON network where we had 3 developers working on ICON related projects last session, have one of our blockchain developers now working on Balanced Network, and will have more fellows engaging with ICON in the coming September session this year. Here is a brief list of our recent accomplishments and wins since the delegation program began.

Blockchain analytics

We recently were approved for a grant proposal for performing analytics on the blockchain to uncover chain adoption statistics. The work is based on the and recently was released on as a python package that you can find here. Right now it is a http based CLI tool that extracts, blocks, transactions, logs, and reciepts and converts the data into json, CSVs, or inserted into a relational database. We are now setting up the code pipeline and to productionize the workflow with Airflow and visualizations through Superset. We are also engaging with Transcranial Solutions by giving them access to the data to perform their own exploratory analysis on our infrastructure.

Stay tuned for a monthly update on the 22nd this month.

Balanced Network Contributions

We are excited to start contributing to the Balanced Network by pushing the beginnings of the backend infrastructure. We’re still working out terms for official engagement but we are excited to get working on it in the interim until details are ironed out.

Checkout out architecture here, and the beginnings of scoping out the API spec here. We’ll be soon deploying all the infrastructure components needs to setup a high performance microservices based stack.

Network wide monitoring dashboards

One of our fellows, Haitham Ghalwash, built a custom prometheus exporter that collects block production statistics from across the network, stores them in a high performance time series database, and aggregates the metrics into a single dashboard for viewing historical behavior on a node by node basis. These dashboards are meant to compliment the existing monitor dashboard by displaying node performance metrics over time for analysis of historical behavior. Alarms will now be setup in response to metrics crossing over a prescribed threshold and can be hooked to SMS messages, telegram channels, and others means of alerting node operators of adverse conditions arising. Action response plans can be then be built in correspondence to various alarms in the event of network failures.

You can find the code linked here and are in the process of multi-threading and putting into production. This project will be actively promoted to be picked up again in the coming September Insight Fellows session.

DApp continuous integration testing

Another fellow, Kirill Masychev, built a continuous integration pipeline for testing DApps. For those unfamiliar with continuous integration, it is a process developers use to automatically run tests each time changes are made to the code. When testing distributed applications, these tests can be time consuming to do and require off chain infrastructure to test against. To prove out the CI testing pattern, our fellow created a continuous integration pipeline for the Daedric price oracle that combines these testing elements into an automated code pipeline. The pattern is now going to be generalized to be applicable to testing any DApp.

You can find the code linked here and are in the process of carving out the relevant components and submitting a PR to the Daedric repo. This project will be up again to be picked up in the coming session.

Custom code templating tooling

Perhaps our biggest win this past month was the development and releasing of our own custom code templating tool called nukikata, a fork of the most popular code templating tool in the world called cookiecutter. We made major changes in how the tool works by introducing a plugins system for custom actions along with conditionals and loops in the configuration format. Suffice it to say this is like cookiecutter on steriods. What this means for ICON is that we now have the perfect tool to build custom code starting templates for virtually anything. For instance, we plan on building a DApp template where the user is able to choose what CI testing tools they want to use or a series of 5 minute start-to-finish DApp tutorials. The possibilities are endless. There are over 4 thousand open source cookiecutters available today with many more nukikata’s on the way to make smart contract development as fast and easy as possible.

New Node Deployment CLI

Last month we worked out the details of applying the previously mentioned code templating tool and are going to be integrating it into the v3 of node deployment solution which we plan on maintaining as a long term release. This has traditionally been our primary contribution and are excited to get to the point that we feel confident we will be able to operate in the long term with steady maintenance. It will deploy P-Rep nodes, API nodes, and load balanced endpoints along.

Stay tuned in the coming weeks for short recorded demo of what the process looks like.

For updates on our overarching contributions to the ecosystem, please checkout some of our updates from the past.

Requested ICX Delegation: 2M ICX
Public Address: hxfc56203484921c3b7a4dee9579d8614d8c8daaf5

Edit August 13th:

  • Update on Blockchain Analytics Project with links to code
  • Added contributions to Balanced Network with links to code
  • Updated links to code for two fellow projects
  • Added update to plan for infrastructure automation tooling