Ethereum Development with Chaintool Libraries
chaintool is an attempt at an agnostic approach to interface blockchain RPCs
chaintool is an attempt at an agnostic approach to interface blockchain RPCs
A lighting talk session by Mohamed Sohail Azim and Louis Holbrook.
Overview
chaintool is an attempt at an agnostic approach to interface blockchain RPCs, while also providing tools for controlling transaction delivery and syncing of results.
The project centers on building daemons and command-line tooling, favoring the GNU approach of piping tools that do one job well. It aims to encourage closer interaction with actual blockchain nodes in the end-user environment, as a counterweight to heavily abstracted as-a-service dashboard-centric applications.
chaintool consists of a set of libraries and executables. The libraries does not only center on high-level constructs, but also encourages use of low-level approaches such as encoding and decoding type serializations and wire formats.
Currently, chaintool has only been implemented for the EVM. It includes executables for many common actions such as token balance checks, token transfers, aswell as encoding and decoding bytecode.
A suite of new supporting libraries has been written within the context of the chaintool development, including:
* `shep` - a bitfield-oriented state transition backend used in transaction submission queues
* `confini` - merges and validates configurations from multiple ini file sources.
* `aiee` - an bitfield-oriented argument and environment settings helper for CLI tools.
... and more.
chaintool is currently in use in Grassroots Economics' custodial chain system for community currencies in Kenya and Cameroon. We give an overview of the library and componentens, and demonstrate a selection of the high-level tools and services.
Talk agenda
1. What does chaintool aim to provide?
- chain-agnostic blockchain rpc access
- cli tools for common blockchain actions
- access to multiple levels of abstraction
- pluggable infrastructure for arbitary code execution on blockchain events
2. Why were chaintool libs written?
- concurrency issues with celery / python web3
- GE stores and manipulates raw transaction data