Polyglot Ethereum - Smart Contracts for the Enterprise
Enabling Smart Contracts in Enterprises
January 16, 2018
World Crypto Economic Forum
Enterprises and Smart Contracts
• Smart contracts require integration with
• Legacy systems dictate:
o Integration points
o Language bindings
• IT policy dictates:
o Security procedures
o Approved technology
Its Not Enough to Say
“We have enterprise blockchain”
• What is the integration story?
• If you can’t plug it in to existing systems
you’ve got nothing
About Mike Slinn
• Distinguished engineer
• Expert witness
• Operates ScalaCourses.com
• Twitter: mslinn
Key Facts about Mike Slinn
• Distributed computing focus
• Wrote a book and an online course on
• Many computer languages (“polyglot”)
• Produces business value by applying
Why Polyglot Smart Contracts?
• To enable rule-based autonomous actions
• …In large organizations and in society
• To develop libraries and frameworks that
support the integration needs of large
• To incorporate smart contracts / rule-based
actions into supply chains
o that interact with other entities (including humans).
• Ethereum is not a requirement
• Polyglot projects often become that way due
to legacy system integration requirements.
• The only way smart contracts / rule-based
autonomous actions can be triggered or take
action is by integrating the rules engine /
Ethereum distributed system with whatever
devices and systems need to be interacted
I have developed
• A proof of concept that features multiple
polyglot shells which can perform arbitrary
processing via user input via consoles.
• These shells share a common region of
memory; any number of shells, in a variety of
languages, can execute programs using the
most desirable frameworks and bindings.
• Inter-process communication is also possible
• Distributed systems can now be built that are
'best of breed' ... the best framework for the
job, called from a program written in the best
language for the job, and able to interact with
other programs written in other languages.
• Does not demonstrate all the concepts I have
in mind yet
• I intend to further develop and document the
remainder in response to customer demand
• I am ready to apply the lessons learned into
Libraries I Am Working With (1/3)
• web3j – Java implementation of web3.js
• web3j-scala – My idiomatic Scala wrapper
Libraries I Am Working With (2/3)
• cli-loop – My polyglot console integrating Java
Python and Ruby (more languages possible).
• consuela –100% Scala JSON-RPC.
• sbt-ethereum – Essentially consuela, wrapped
into an SBT Plugin (most Scala programmers
use SBT as a full-featured Scala REPL).
Libraries I Am Working With (3/3)
• beth - My Better ETHereum client using the
above, also incorporating vert.x and Docker.
• Goal: support distributed polyglot State
• For example, ML projects often require Python,
while enterprise projects often require JVM
(Java, Scala, etc.)
Looking For Opportunity
• Can work with or advise organizations using
Ethereum / blockchain
• Might found a startup or join an existing