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:

Architecture

Security

Application Programming Interface (API)

Application deployment

Data deployment

Job deployment

Virtualized networking

Volunteer sharing

Virtual machine management

Data driven scheduling

Introduction

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.

Infrastructure

The iEx.ec infrastructure is depicted in next figure where link between Ethereum blockchain and XtremWeb-HEP is materialized by an Oracle we developed.

iEx.ec infrastructure

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.

Frontend

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://52.44.51.109: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.

Vanitygen frontend

Conclusion

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.

Media

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/

Resources

Next Article

Next article describes the architecture.