iExec : ten steps to understand the technology behind the Ethereum decentralized cloud
In preparation for the EDCON conference, we present a series of articles to introduce the technology behind the iEx.ec Blockchain-based Distributed Cloud. We first introduce the goal of iEx.ec by drawing the big picture from the technology point of vue. The next articles will go into more detail as follow:
- Application Programming Interface (API)
- Application deployment
- Data deployment
- Job deployment
- Virtualized networking
- Volunteer sharing
- Virtual machine management
- Data driven scheduling
iEx.ec aims to provide distributed applications running on the blockchain a scalable, secure and easy access to the services, the datasets and the computing resources they need. Our technology relies on the Ethereum smart contracts which allows us to building a virtual Cloud infrastructure that provides high performance computing services on demand.
iEx.ec leverages a set of research technologies that have been developed at the INRIA and CNRS research institutes in the field of Desktop Grid computing. The idea of Desktop Grid (aka Volunteer Computing) is to collect together underutilized computer resources accros the Internet in order to execute very large parallel applications at the fraction of the cost of a traditional supercomputer.
iEx.ec relies on XtremWeb-HEP, a mature, solid, and open source Desktop Grid software which implements all the needed features: fault tolerance, multi applications, multi users, hybrid public/private infrastructure, deployment of virtual images, data management, security and accountability, and many more. XtremWeb-HEP (XWHEP), developed by CNRS-IN2P3, is based on XtremWeb by INRIA. It is a middleware permitting to deploy a distributed data processing infrastructure (computing grid). XWHEP belongs to the so called “Cycle Stealing” family that uses idle resources. Like some other grid middleware stacks, XWHEP uses remote resources (PCs, workstations, PDA, servers) connected to Internet, or a pool of resources inside a LAN. Thus this middleware is the cornerstone technology that allows the participant to the iEx.ec distributed Cloud, to provide their computing resources, such as processor, application and/or data.
The iEx.ec infrastructure is depicted in next figure where link between Ethereum blockchain and XtremWeb-HEP is materialized by an Oracle we developed.
In short, iEx.ec works like this:
- the iEx.ec developer deploys a Task smart contract on Ethereum and his application on XtremWeb-HEP
- the user connects to the application front end
- the user spends some RLC, the iEx.ec token to launch a computation
- the Ethereum blockchain certifies the transaction
- as the transaction is accepted our Oracle launches a computation on our decentralized cloud managed by XtremWeb-HEP
- when the computation is completed, the result is fetched back to the calling smart contract and the user retrieves their results.
As a first example to demonstrate off-chain computation, we took the generation of Bitcoin vanity address because it’s a process notoriously too hard to execute with the Ethereum Virtual Machine. A vanity is a Bitcoin address that starts with a user-designed pattern, like “1LoVE”.
We have developed a first smart contract that aims to run the Vanitygen application over our decentralized cloud. One can connect to the frontend at http://22.214.171.124:8000/ depicted in figure “Vanitygen frontend” where the user can submit a new computation for the Vanitygen application and retrieves their results. The computation of the vanity address is executed on a machine provided by the iEx.ec network.
This article introduced the main aspects of iEx.ec’s technology. Next articles will detail XtremWeb-HEP functionalities and usage. We will present features, security, application programming interface, data driven scheduling, virtualization and more.
You are kindly invited to:
- join our Slack: https://iexec-team.slack.com
- follow us on Twitter: https://twitter.com/iEx_ec
- interact with us on Reddit : https://www.reddit.com/r/iexec/
- iEx.ec main Web site
- EDCon Paris
- iEx.ec Github
- XtremWeb-HEP Github
- XWHEP documentation
- Video introducing XWHEP presented at CrowComputing 2014, in Almere, NL.
Next article describes the architecture.