Polyglot Ethereum
Enabling Smart Contracts in Enterprises
Mike Slinn
January 16, 2018
World Crypto Economic Forum
Enterprises and Smart Contracts
• Smart contracts require integration with
legacy systems
• 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
security
• Many computer languages (“polyglot”)
• Produces business value by applying
technology
Why Polyglot Smart Contracts?
• To enable rule-based autonomous actions
• …In large organizations and in society
Goal
• To develop libraries and frameworks that
support the integration needs of large
organizations
• To incorporate smart contracts / rule-based
actions into supply chains
o that interact with other entities (including humans).
• Ethereum is not a requirement
Historically
• 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
with.
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
This means
• 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.
The POC
• 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
projects
Libraries I Am Working With (1/3)
• web3.js – JavaScript API for JSON-RPC
• web3j – Java implementation of web3.js
• web3j-scala – My idiomatic Scala wrapper
for web3j
Libraries I Am Working With (2/3)
• cli-loop – My polyglot console integrating Java
and Scala code with interactive JavaScript,
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
Channels.
• 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
organization
Thank you!
Mike Slinn
mslinn@micronauticsResearch.com
650-678-2285

Polyglot Ethereum - Smart Contracts for the Enterprise

  • 1.
    Polyglot Ethereum Enabling SmartContracts in Enterprises Mike Slinn January 16, 2018 World Crypto Economic Forum
  • 2.
    Enterprises and SmartContracts • Smart contracts require integration with legacy systems • Legacy systems dictate: o Integration points o Language bindings • IT policy dictates: o Security procedures o Approved technology
  • 3.
    Its Not Enoughto Say “We have enterprise blockchain” • What is the integration story? • If you can’t plug it in to existing systems you’ve got nothing
  • 4.
    About Mike Slinn •Distinguished engineer • Expert witness • Operates ScalaCourses.com • Twitter: mslinn
  • 5.
    Key Facts aboutMike Slinn • Distributed computing focus • Wrote a book and an online course on security • Many computer languages (“polyglot”) • Produces business value by applying technology
  • 6.
    Why Polyglot SmartContracts? • To enable rule-based autonomous actions • …In large organizations and in society
  • 7.
    Goal • To developlibraries and frameworks that support the integration needs of large organizations • To incorporate smart contracts / rule-based actions into supply chains o that interact with other entities (including humans). • Ethereum is not a requirement
  • 8.
    Historically • Polyglot projectsoften 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 with.
  • 9.
    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
  • 10.
    This means • Distributedsystems 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.
  • 11.
    The POC • Doesnot 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 projects
  • 12.
    Libraries I AmWorking With (1/3) • web3.js – JavaScript API for JSON-RPC • web3j – Java implementation of web3.js • web3j-scala – My idiomatic Scala wrapper for web3j
  • 13.
    Libraries I AmWorking With (2/3) • cli-loop – My polyglot console integrating Java and Scala code with interactive JavaScript, 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).
  • 14.
    Libraries I AmWorking With (3/3) • beth - My Better ETHereum client using the above, also incorporating vert.x and Docker. • Goal: support distributed polyglot State Channels. • For example, ML projects often require Python, while enterprise projects often require JVM (Java, Scala, etc.)
  • 15.
    Looking For Opportunity •Can work with or advise organizations using Ethereum / blockchain • Might found a startup or join an existing organization
  • 16.