Re: [Hyperledger Project TSC] Proposal of Eris-DB codebase to the Hyperledger project for incubation


Dan O'Prey <dan@...>
 

Thanks, Casey and Monax team. From reading this, my understanding is the Tendermint codebase will also be submitted as part of the proposal by Monax rather than Tendermint itself. Is that correct? Will Tendermint also live separately as its own project?

Thanks for clarifying,

On Mar 1, 2017 15:56, "Casey Kuhlman via hyperledger-tsc" <hyperledger-tsc@...> wrote:
Dear members,

Please note that there was a typo in the subject of this email. We understand that the email is not the proposal and will be formally proposing to the TSC in the coming weeks. The email was simply for background and context about our upcoming submission.

Many apologies & best regards,
~Casey

____________________________________

Casey Kuhlman, Monax
CEO
Email: casey@... 
Phone (US): +1-423-523-9531(Netherlands): +31-62-864-2583
____________________________________

On Wed, Mar 1, 2017 at 9:44 PM, Benjamin Bollen <ben@...> wrote:

Dear Members of the Hyperledger Project Technical Steering Committee mailing list,


As many of you will have learned on Monday, Monax is very pleased to be joining the Hyperledger Project as a general member. Furthermore, we have determined that it is in our and the wider community’s interest for us to submit our blockchain client, Eris-db, to Hyperledger for incubation.


From our founding in 2014 until today, Monax’s objective has always been to build software which advances permissioned blockchain technology for enterprise use.


We feel the best way to build upon our work in permissioned blockchains to date is to create a forum in which a much larger community can contribute towards building production-grade ecosystem applications on the Ethereum Virtual Machine (EVM), a development paradigm which is organically popular among cryptocurrency developers, non-cryptocurrency blockchain developers, and enterprise developers alike.


We thought a good way to kick off the discussion about what we hope to achieve by joining Hyperledger would be to reach out to the members of this list with a brief overview of


  • what Eris-db is,

  • what we’re hoping to do with it once it’s under the Hyperledger umbrella, and

  • opportunities for you to get involved with the codebase’s development.


1. What is Eris-db?

Monax builds smart contract SDKs as well as a number of developer tools (package managers, chain managers, command line interfaces, etc.). We do not propose to place all of these in Hyperledger for the time being. What we are proposing to put into the Hyperledger project is Eris-db.


Eris-db is a permissioned blockchain node that executes smart contract code following the Ethereum specification. Eris-db also has permissioning protocols built in. It enjoys broad use among enterprise users of the Ethereum protocol and smart contract languages. Known users include a number of members of your consortium whom we will not name at this juncture, a number of bulge bracket banks, a range of top tier insurance providers, Deloitte, and SWIFT.


Eris-db is built for a multi-chain universe with application-specific optimization in mind. Eris-db as a node is constructed out of three main components: the consensus engine, the permissioned Ethereum Virtual Machine (EVM) and the rpc gateway.  


More specifically Eris-db consists of the following:


  • Consensus Engine: transactions are ordered and finalised with the Byzantine fault-tolerant Tendermint protocol.  The Tendermint protocol provides high transaction throughput over a set of known validators and prevents the blockchain from forking.

  • Application Blockchain Interface (ABCI): The smart contract application interfaces with the consensus engine over the ABCI. The ABCI allows for the consensus engine to remain agnostic from the smart contract application.

  • Smart Contract Application Engine: transactions are validated and applied to the application state in the order that the consensus engine has finalised them.  The application state consists of all accounts, the validator set and the name registry. Accounts in eris-db have permissions and either contain smart contract code or correspond to a public-private key pair. A transaction that calls on the smart contract code in a given account will activate the execution of that account’s code in a permissioned virtual machine.

  • Secure Native Functions: are the ground rules that all accounts and all smart contract code must follow.  Permissioning is enforced through secure native functions and underlies all smart contract code execution.

  • Permissioned Ethereum Virtual Machine: This virtual machine is built to observe the Ethereum operation code specification and additionally asserts the correct permissions have been granted. An arbitrary but finite amount of gas is handed out for every execution to ensure a finite execution duration - “You don’t need money to play, when you have permission to play”.

  • Application Binary Interface (ABI): transactions need to be formulated in a binary format that can be processed by the blockchain node.  Currently tooling provides functionality to compile, deploy and link solidity smart contracts and formulate transactions to call smart contracts on the chain. Future work on the light client will be aware of the ABI to natively translate calls on the API into signed transactions that can be broadcast on the network.

  • API Gateway: eris-db exposes REST and JSON-RPC endpoints to interact with the blockchain network and the application state through broadcasting transactions, or querying the current state of the application. Websockets allow to subscribe to events, which is particularly valuable as the consensus engine and smart contract application can give unambiguously finalised results to transactions after one blocktime of about one second.


Eris-db has been architected with a long term vision on security and data privacy from the outset:


  • Cryptographically Secured Consensus: Byzantine fault-tolerant Tendermint protocol achieves consensus over a known set of validators where every block is committed with cryptographic signatures from a majority of validators only.  No unknown variables come into play while reaching consensus on the network (as is the case for proof-of-work consensus). This guarantees that all actions on the network are fully cryptographically verified and traceable.

  • Remote Signing: transactions can be signed by elliptic curve cryptographic algorithms, either ed25519/sha512 or secp256k1/sha256 are currently supported. Eris-db connects to a remote signing solution to generate key pairs and request signatures. Eris-keys is a placeholder for a reverse proxy and we need security expertise from specialised companies to harden the platform here.

  • Multi-chain Universe (Step 1 of 3): from the start the eris platform has been conceived for orchestrating many chains, as exemplified by the command “eris chains make” or by that transactions are only valid on the intended chain. Separating state into different chains is only the first of three steps towards privacy on smart contract chains.  


What about roadmap proposals for Eris-db?


We already welcome contributions to and discussions about the proposed Eris-db roadmap items. Please refer to the Eris-db github repository for a deeper look at the proposed platform roadmap items. In terms of what the current roadmap looks like, please find a brief precis below:

Security, Identity and Privacy

  • Advanced security framework

  • Identity Management and Whitelisting

  • Multi-chain Universe (Step 2 of 3): Tendermint Cosmos proposal

  • Multi-chain Universe (Step 3 of 3): Monax’s NightSky proposal

Scalability and governance

  • Read-cache Optimisation and Queryability

  • Chain life-cycle management

  • Sharding and scalability framework

  • Light-client and ABI integration upgrade.



2. Why do we think Eris-db is good addition to Hyperledger?


  • The EVM is a highly popular tool for smart contract code execution. Eris-db, if accepted, would provide Hyperledger with a built-to-spec EVM, something the Project currently lacks

  • We invite you to contribute actively towards the roadmap (developers from everywhere can help build and test Eris-db, though the name will be changed once we submit it to Hyperledger - more on this below)

  • We want to ensure the longevity of the open source code base under the mature devops and governance of the Linux Foundation

  • We want to ensure larger community outreach and engagement for permissioned chains

  • We want to enable production level support as a primary driver in the realization of ecosystem applications


3. How do we hope to facilitate wider engagement with the codebase?


We would very much welcome new collaborators at the co-maintainer and contributor levels in the following areas:

  • co-maintainers of the codebase

  • thought leadership contribution towards developing the codebase’s long-term development roadmap

  • documentation and technical writing assistance

  • enterprise grade RPC optimization and client libraries

  • QA, packaging, and testing experts

  • network level QA and long-range scenario testing experts

The focus is on hardening the stack towards enterprise-ready production level demands pertaining to usability, scalability, security and data privacy. This is not a task that our small company can or should undertake on its own. If you or your company would like to participate in the maintainership of this EVM-capable codebase, feel free to ping me either on this list or at contact@....

In order to make engagement even easier, you can expect us to establish and/or improve on the existing services we have in place:


4. What about branding of Eris-db?


Our company was founded as “Eris Industries” in 2014. We re-branded to “Monax” in October of 2016. Our intention is to rebrand Eris-db to a name not associated with the company. We have some proposed names in mind but intend to settle on a final choice after discussing this with LF/Hyperledger members who have agreed to become co-maintainers.


Conclusion


We appreciate this opportunity to engage with the Hyperledger community at large, and welcome any and all comments and questions about our contribution and request for participation as laid out above.


Looking forward to continuing the conversation!


Yours faithfully


Casey Kuhlman, CEO, Monax

Preston Byrne, COO, Monax

Jan Scheufen, Product, Monax

Paul du Plessis, Partnerships, Monax

Benjamin Bollen, Core Developer, Monax

Silas Davis, Core Developer, Monax



_______________________________________________
hyperledger-tsc mailing list
hyperledger-tsc@lists.hyperledger.org
https://lists.hyperledger.org/mailman/listinfo/hyperledger-tsc



This message, and any attachments, is for the intended recipient(s) only, may contain information that is privileged, confidential and/or proprietary and subject to important terms and conditions available at http://www.digitalasset.com/emaildisclaimer.html. If you are not the intended recipient, please delete this message.

Join toc@lists.hyperledger.org to automatically receive all group messages.