I’m pleased to announce that version 0.9 of the Eris Blockchain Application Platform has been released.

Now With Moar Blockchains

The highlight of this release (at least for me) is the inclusion of Tendermint into the (growing) list of blockchains which the Eris Platform makes easy for developers to work with.

If you are not familiar with Tendermint definitely give it a look; it is one of the most sophisticated (yet understandable) Proof of Stake consensus algorithms currently available. While it (like many other blockchain technologies) is still in late alpha // early beta stage, it is fully usable from the Eris platform with only a few commands.

epm keys gen --type ed25519 mykey
epm new --type mint --checkout
epm keys use mykey
epm --log 5 run

More (and updated) information regarding running Tendermint chains from eris is available here.

Now With Moar Stability

Most of the effort during the 0.9 release cycle has been in adding resiliency to epm our (current) command line tool for managing blockchains and smart contract systems.

We have drastically increased our test coverage as well as adding a significant amount of integration testing for the entire stack. This work has been combined with many bug fixes along the way as the technology upstream from the Eris Platform, and Eris itself, continues to mature.

Now With Moar Smart Contract Joy

We have increased the power of the EPM lexer and parser. Now nested includes are available as well as Solidity support (via EPM and the eris:compilers microservice). EPM now can deploy smart contract packages directly from github without having to have the contracts directory cloned locally. These additions greatly ease and speed smart contract development workflow.

Upgrading – Docker Installs

docker pull eris/erisdb
docker pull eris/decerver
docker pull eris/ipfs

It is that easy.

Upgrading – Native Installs

cp ~/.decerver ~/.eris
cd $GOPATH/src/github/eris-ltd/decerver/cmd/decerver
go get -u
cd /epm-go
git pull origin master
make

It is that easy. After you have fully tested Eris then:

rm -rf ~/.decerver

Note for native installations, we are moving our default (working) directory from ~/.decerver to ~/.eris so ensure you either move or symlink that directory before upgrading.

Beginning the 0.10 Release Sequence

We are currently planning for 0.10 to be our final major release prior to 1.0. What will change in 0.10?

The primary change will be the separation of the blockchain executables from the epm tool along with a namechange of epm to the eris tool (which will not be so much of a functionality change, more a name change). Currently the blockchain executables are compiled into epm with the make tool. Underneath the hood epm figures out which blockchain is checked out and calls the executable. This is a fairly fragile system which we are currently working to add more resiliency to. Part of the challenge is how Go statically links libraries during compilation.

During the 0.10 cycle we will be moving eris:db over to utilizing Tendermint primitives along with our Doug permission layer. This will be a very powerful and exciting change for commercial and governance blockchain applications who do not want to rely on the excessive energy waste of Proof of Work systems. As part of this change, we are adding a secure-native smart contract functionality which will be very powerful and increase the speed at which certain actions may be taken with respect to smart contracts.

We will be adding the eris:worker to the Eris stack which will be a pure node.js based worker that will be an events manager for information and data which need to flow into a blockchain or bubble up from the blockchain for action out of band.

Lastly, we will be reworking eris:server as a pure javascript browser component rather than a go based server. This will make Eris based DApps much more user friendly for developers who are not anxious to rely on potential users to download many megabytes of software and install a full platform just to try something out.

As they say: #watchthisspace

Photo credit: Steve Jurvetson.