Polyglot Smart Contracts for Enterprises

It seems natural that multi-signature transactions and smart contracts will commonly be integrated into enterprise infrastructure. We anticipate singificant need for system integration and are working towards blockchain architecture and features that support enterprise needs.

‘Polyglot’ means “of many languages”, and we believe that enterprises that integrate smart contracts into their infrastructure will require solutions that incorporate many simultaneous software languages, libraries and runtime environments, all working as one in a distributed environment. Some of our smart-contract work is Ethereum-specific and some is general in nature.

Mike Slinn presented his work in progress at the World Crypto Economic Forum in San Francisco, January 16, 2018. Here is his slide deck.

Proofs of Concept / Corporate Sponsors Wanted

The only way to provide value is to serve customers. We are seeking opportunities to develop distributed consensus / distributed ledger / blockchain-related prototypes and proofs of concept. We would be happy to present our work and discuss sponsorship opportunities for our open-source libraries; we also work with proprietary code.

We are interested in various forms of distributed secure computation, especially smart contract platforms such as Ethereum. If your organization has a need to integrate existing or custom server software and/or users with distributed secure computation, Micronautics Research can deliver a polyglot solution based on code written using many languages, libraries and runtimes.

Hot Libraries

Mike Slinn is leading the charge with the following libraries right now:

  • web3.js is a JavaScript library for integrating with nodes on Ethereum blockchains.
  • web3j is the Java version of web3.js. web3j is a lightweight, reactive, somewhat type-safe Java and Android library.
  • web3j-scala is a lightweight and idiomatic Scala wrapper we wrote around web3j-scala.
  • Mike is also playing with consuela, a 100% Scala Ethereum library, and its cousin, sbt-ethereum. Check out the documentation!

The intention is to use some of these libraries to build beth, a better Ethereum client.

Towards A Better Ethereum Command-Line Client

This video below shows some early work on an integration project featuring a command-line interface. The beth project is written in Scala, which runs on the Java Virtual Machine. This project currently supports multiple custom shells (another name for ‘shell’ is ‘REPL’). The shells and the shell management are initially defined in the cli-loop project.

The video shows a nascent Ethereum shell, and a JavaScript shell built from a mixture of Java and Scala code. The shells all run independently, and each type of shell has its own type of evaluator. Since the video was made we have added Ruby and Python interactive shells. More types of shells and evaluators are possible. We plan to greatly expand the degree to which shells can interoperate with each other, as well as the degree to which the shells can interoperate with JVM code and shared data. Vert.x is showing a lot of promise and will probably be woven into the first release of a distributed product.