Mike Slinn discusses enabling smart contracts in enterprises through polyglot Ethereum. He explains that legacy systems dictate integration points and approved technologies, so smart contracts require integration. His goal is to develop libraries and frameworks supporting large organizations' integration needs by incorporating smart contracts into supply chains interacting with other entities. Historically, polyglot projects integrate legacy systems, and smart contracts can only trigger actions by integrating with interacting devices and systems. Slinn developed a proof of concept featuring multiple polyglot shells sharing memory and communicating between languages to build distributed systems using best frameworks for each task. He is working on further developing and documenting libraries like web3.js, web3j, and others to support distributed polyglot state
2. 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
3. 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
4. About Mike Slinn
• Distinguished engineer
• Expert witness
• Operates ScalaCourses.com
• Twitter: mslinn
5. 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
6. Why Polyglot Smart Contracts?
• To enable rule-based autonomous actions
• …In large organizations and in society
7. 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
8. 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.
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
• 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.
11. 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
12. 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
13. 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).
14. 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.)
15. Looking For Opportunity
• Can work with or advise organizations using
Ethereum / blockchain
• Might found a startup or join an existing
organization