Secure Autonomous Serverless - The Distributed Application Software Stack
When We Started Eris Industries, We Asked Two Questions
- Is it possible to build applications which have the benefits of interconnectedness, but without servers? It is. Distributed applications can perform the same functions of modern web applications by enlisting users to participate in the management and security of these applications’ data.
- Is it possible to create data-driven interactions which are both autonomous and legally compliant? It is. Data-driven interactions are not exempt from legal norms and procedures, and platforms capable of operating within existing legal frameworks will be profoundly useful to businesses and individuals alike.
With Eris Industries’ open-source Distributed Application Software Stack, developers can rapidly design, test, and deploy distributed applications which are as flexible, user-friendly, and legally compliant as they are secure.
Think of us as the node.js of peer-to-peer technology.
Components:
Decerver
The Distributed Application Server
The Decerver is the application server for our Distributed Application Software Stack. Using the Decerver, developers can build distributed applications which easily interact with a diverse set of blockchain and peer-to-peer protocols, all of which have been harmonized in an interactive layer that can be accessed via a JavaScript runtime. The Decerver empowers blockchain technology to become usable in a fully legally-compliant context for the first time.
Thelonious
The Makers’ Blockchain Design
Thelonious is Eris Industries’ customizable, smart-contract enabled, smart-contract controlled blockchain design and one component of our Distributed Application Software Stack. Derived from the Ethereum protocol, but built to meet differing design goals, Thelonious gives developers the control to define their own state-of-the-art blockchain. Thelonious is not meant to be one blockchain, but millions of them, each made for specific applications.
The Decerver: The Distributed Application Server
Introduction
The Decerver helps developers build applications which leverage opt-in data ownership and significantly increased data utility for both customers and businesses – a software design paradigm we call Participatory Architecture. Using peer-to-peer and distributed systems, the Decerver allows the creation of web style, data-driven, interactive distributed applications that can be safely, securely, and reliably deployed and managed. The Decerver significantly lowers the barrier to entry for the production, distribution and maintenance of distributed applications. All while allowing users to participate in the scaling and data security of the application.
More specifically, the Decerver is a distributed application server harmonizes actions across various modules which act as distributed file stores, distributed data stores, or other utility modules. The Decerver integrates distributed data stores (blockchains), a distributed filesystem, a scripting layer, and a legal integrator to incorporate Legal Markdown-based contracts into the smart contract stack – effectively putting the “contract” into “smart contracts.”
Applications built for the Decerver are based on web design modalities. In other words, the user interfaces for these applications are written in languages which almost any developer, and even some heads of state, can write. Applications for the Decerver use HTML, CSS, and Javascript to provide their user interface.
Each of the modules which the Decerver utilizes has an established interface which exposes functions to a javascript runtime that executes inside of the Decerver’s core. These exposed functions allow a distributed application developer to design and implement a distributed application almost entirely in javascript – with the exception that if a blockchain that uses smart contracts is needed for that distributed application, the developer will need to use one of the smart contract languages to build those smart contracts (and the other exceptions of html and css of course).
When put together it looks like this:
Thelonious: The Makers’ Blockchain Design
Introduction
Thelonious is Eris Industries’ open-source blockchain design. Thelonious is both smart contract enabled as well as smart contract controlled. Thelonious is a heavily modified version of Jeffrey Wilcke’s Go client for the ethereum protocol.
Thelonious is not a single blockchain, it is a blockchain design. It is purposely designed not to be one blockchain, but millions of them: to complement, rather than compete with, its larger, fully-distributed cousins. Although at its base level Thelonious can deploy a blockchain which has the same parameters as the draft ethereum blockchain, Thelonious was designed with a different set of parameters in mind. We have designed Thelonious as a corporate-, organisation-, family-, or application-specific blockchain to work in conjunction with the Decerver and the other components of Eris Industries’ Distributed Application Software Stack.
Thelonious allows developers to use blockchain architecture to design, test, deploy, and operate distributed applications. Developers who use a Thelonious client to manage their blockchains are able to benefit from having a parameterized smart contract in the genesis block which is capable of managing the consensus and security mechanism of the blockchain through the use of smart contracts. By moving the block consensus and security mechanism out of the client and placing those parameters and instructions into the blockchain itself, we have been able to significantly diversify the types of blockchains which a single client can manage.
Combined with the Decerver, Thelonious is able to interact with other blockchain protocols and APIs with ease. Using the Decerver and Thelonious together allows developers to harmonize the building of their distributed application with a chain that has been purposely designed for their application rather than trying to fit their application into the structure of a general-purpose blockchain that was not designed for them.
But what about security? In distributed systems, security and consensus are different names for very similar concepts. Thelonious puts the power, and the responsibility, onto distributed application developers for properly parameterizing the Thelonious blockchain design for their application. Whether security comes in the form of checkpointing a chain against Bitcoin’s (or eventually ethereum’s) larger, heavier, and more secure blockchain, or whether security comes in the form of greatly restricted committing (“committing” being Thelonious’ equivalent of what other blockchains call “mining”) ability, Thelonious allows developers to craft consensus and security mechanisms which match the design goals of their distributed application.
Thelonious was designed for deployment in a variety of contexts, from locked-down internal corporate deployments to more decentralized and public deployments, or from deployments which require tokenization to those that only require the utility of a blockchain but not monetized tokenization to compensate miners for automated database management services.
A single Thelonious client is all that is required in order to participate in all of these blockchains.