eris:platform -- An Introduction

20
eris The Blockchain Application Platform Casey Kuhlman CEO, Eris Industries @compleatang @eris_ltd

Transcript of eris:platform -- An Introduction

eris

The Blockchain Application Platform

Casey KuhlmanCEO, Eris Industries

@compleatang@eris_ltd

The eris Platform

● Blockchain Agnostic● Smart Contract Focused● Makes Blockchain Application Development, Testing, Operation

Simple● Distributed Infrastructure Focused (cloud ready)

eris

● [eris] is a command line interface which is the portal to the eris run anywhere platform:

● eris utilizes the concepts of:● Services● Chains● Contracts● Actions● Workers

● We will be adding two additional concepts in 0.11 release cycle:● Remotes (for working with the eris agent running on remote machines)● Projects (useful for context scoping)

eris services

● Things that need to be on or off

● Examples:● eris services start btcd_mainnet● eris services update eth_frontier● eris services inspect keys HostConfig.IPAddress● eris services import eth_serenty ipfs:Qma8GzJ7dHezN8GfrNzuq9JD199W...● eris services export ripple● eris services start mail_in_a_box● eris services rename etcb_23 etcb_43

eris services

● Operated via service definition files

● Service Definition Files are kept on the host. They provide all the information needed to start services properly.

● Services use Docker Images behind the scenes to provide eris with its ability to be ran (nearly) anywhere.

● Services are mostly wrappers around long and complex interactions with a Docker daemon. With some goodies here and there.

eris chains

● Developer tool used to “work” on permissioned mint chains.

● Make a new chain, pull and install a chain, do administrative things for chain maintainance.

● When you're happy with a chain, take it to the next level with:● eris chains graduate chainNAME

● Chains use the flexible eris/erisdb container exclusively. This provides a permissioned tendermint basis for quick and easy smart contract development.

● A great testbed for testing EVM compatible contracts and maintaining existing blockchains.

● Operate functionally no differently than services. Think of eris chains as a super opinionated default service definitions you can use to work on chains.

eris contracts

● The next generation of our contracts tool chain (this portion of the eris tool can be properly thought of as new-epm)

● Gulp like in feel and service operation

● JS based (mostly) – building off of Andreas' solU and contracts testing work

eris actions

● Do specific, predefined step by step processes

● Shell interpreter script based (similar in nature to most modern continuous integration environments)

● Goodies to make sure the right services and chain are running and availble to the tool.

● Examples:● eris actions do dns register name:cutemarmotpicts ip:111.111.111.111 type:A –chain etcb_47● eris actions do departing drone helipad “$(date)“

eris workers

● “Do things” which require a richer environment for scripting tasks than the constrained [eris actions] pipeline

● Add, remove, scale, autoscale the workers which perform tasks● Node.js based. Similar in architecture to Amazon Lambda, only reenvisioned for distributed

applications● Example of what you'd do with workers:

– Watch the internet for marmot pictures

– Dump new photos into ipfs

– Register them on a smart contract etcb network

– Ping everyone in a slack channel to ● eris files cache Qma8GzJ7dHezN8GfrNzuq9JD199WgbQC7Qz29wwMX7JHf3

– Send some marmotcoin to the Marmot Recovery Foundation in penance for your (possible) intellectual property rights violations

eris data

● Eris can automanage data containers for users, taking one of the biggest pains out of working with Docker.

● Eris is opinionated about how it manages data. Docker similarly is opinionated. Eris adapts Dockers opinions into a usable stack for the distributed application environment.

● eris data import NAME → – takes whatever is in ~/.eris/data/NAME (on the host) and dumps it into ~/.eris/ (in the

managed data container). Avoiding user file access challenges.

● eris data export NAME → – take whatever is in the volumes of a data container and dump them into ~/.eris/data/NAME

(on the host)

eris files

● A pretty handy IPFS wrapper● Examples:

– eris files get Qma8GzJ7dHezN8GfrNzuq9JD199Wg... →● get files from ipfs and save them to the host

– eris files put my_awesome_config.json → ● puts files from the host “into” your ipfs system for caching, and serving to peers via the ipfs protocol● Optionally PIN them to a gateway for cross device usage● Does not currently use IPNS (but we'd be happy to add that later)

– eris files cache Qma8GzJ7dHezN8GfrNzuq9JD199Wg... →● Cache files to make sure they're available locally (but in the ipfs container)● Used to “get” files from an ipfs network and keep them on the machine (but inside the container so ipfs

service will allow others to retrieve from you

eris services v. eris chains

● Most “blockchains” will actually be services as they only need to be started and stopped to be useable.

● eris chains are “opinionated” services which are a more user friendly on boarding into permissioned ledgers.

● Chains graduate into being services when they are stable and just need to be turned on or off.

● eris chains can be thought of as your develop branch for a particular blockchain.

eris actions v. eris workers

● Actions are for step by step processes– Operate in a Shell environment

● Workers are for processes where more logic is required– Operate in a Node environment

https://erisindustries.com