There is a growing demand for computing power from scientific communities and industries to run large applications and process huge volumes of data. The computing power to run Big Data application is most often provided by HPC and Cloud infrastructures.
Blockchains like Ethereum offer a new approach to run distributed applications. Ethereum allows programmer to write smart contracts, that is code which is executed on the blockchain virtual machine, whenever some transactions are fired. Thus, the Ethereum blockchain provides a distributed runtime environment with distributed consensus over the execution as well as resiliency. These features are quite unique and the possibilities are yet to be discovered.
In contrast with traditional Cloud computing, blockchains offer very limited computing capacities to run distributed applications: few kb of storage, very inefficient virtual machine and very high latency protocol. Of course blockchain technologies will evolve to overcome some of these issues, but there will be a need to provide additional capacities for the most demanding applications.
The IEXEC project aims at solving this issue by building a distributed Cloud infrastructure that is dedicated to support the emerging class of blockchain-based distributed applications.
The quest for more computing power also depends on the emergence of infrastructures that would both offer lower operating costs and larger computing power.
A Blockchain-based Distributed Cloud will allow on-demand, secure and low-cost access to the most competitive computing infrastructures. There are three main reasons why such a distributed computing infrastructure could challenge existing HPC, Cloud and Big Data providers:
HPC and Cloud are too complex, too expensive: In particular innovative small businesses often don’t have the mean and the expertise to acquire and operate HPC platforms, and Cloud vendors such as Amazon EC2 are still very expensive for demanding applications (e.g. GPU rendering). However, there are opportunities to lower the cost of infrastructure usage: for example those based on underused computing resources, or those that offer no guarantee that the computing resources remain available to the user during the complete application execution. Desktop Grids, which rely on idle Desktop PCs, but also Amazon Spot instances, which allows bidding on unused Cloud resources are typical examples of such target resource. Although these are prone to node failures and host churn, they are still very attractive because of the vast computing power provided at an unmatched low cost. The Distributed Cloud will open new markets for aggressive usage of existing computing infrastructure.
Data centers are greedy: A huge amount of energy is required to run the servers and the air conditioning systems. There is on solution to address lower the power usage: pushing the machines out of the data center. For instance, at Rutgers University is designing micro-data center that is located on the building roof and that is powered by solar panels. The Stimergy start-up is moving the data-center in the building basement: the computing furnace is using the energy dissipated by servers to warm the water, which will be distributed in the building. Qarnot Computing is designing a product called Q.Rad, which is a heater embedding high performance processors as a heat source. Q.Rad are installed in each room of an individual home and the heat is produced when the Q.Rad is processing a workload distributed by the Qarnot scheduler. By easing the access to such machines, a Distributed Cloud would allow to drastically decrease the environmental footprint of data centers.
Bringing the data closer to their owner and consumer. With the advent of smartphone, connected devices and soon wearable computing, the number of devices with significant processing capabilities is exploding. At the CES’2015 keynote address, Intel CEO Brian Krzanich, announced the ”Curie” SoC, a low-power 32-bits Quark (2 GHz) processor with embedded sensors, Bluetooth, Flash memory and RAM, that is the size of a jacket button. This platform is likely to prefigure what will dominate the wearable and IoT market, and [Cisco] predicts 50 billion connected things by 2020. We are entering a new era where distributed computing infrastructures should embrace these new devices, not only because they will be able to perform computationally intensive tasks, but more certainly because they are likely to produce or acquire data, while being powerful enough to handle part the data processing. In addition, the network backbone itself is evolving. An important evolution pushed by 5G is Fog & Edge Computing [FogComp], where many elements within the network have significant storage and processing capabilities. Fog and Edge Computing are pushing computing applications, data, and services away from centralized nodes to the logical extremes of a network. The Distributed Cloud will help move the processing intelligence where the data are, even if they are on the edges of the network. This will lower the data movement, thus improving traffic, latency and QoS.
Is a Blockchain needed for building a Distributed Cloud ?
The blockchain offers many features that are necessary to build a fully distributed Cloud. As, the blockchain:
- Facilitates resource usage by distributed applications (dapps). Suppose that a smart contract requires executing a resource-demanding algorithm, like for instance some specific cryptographic function. IEXEC will make it easy to acquire and provision a computer from the smart contract, and once the function has been executed, the payment will happen automatically.
- Organizes a unique market place, where everyone can find the needed computing resources. Even if you have never heard of a particular new technology that allows for cheaper GPU usage, you will find it on the blockchain. Alternatively it makes it easy to advertise your own computing resources. At the moment, only the biggest Cloud providers are able to attract large number of users.
- Improves the Quality-of-Service. Typically, Cloud resources are provided under SLA (Service Level Agreement). The SLA specifies the conditions that validates the correct usage of a computing resource. For instance vendors provide guarantee over measurable metrics such as the Mean Time Between Failures (MTBF). The Blockchain can provide traceability of resource usage, so that both customer and provider can verify that the SLA has been correctly fulfilled, and determine which party is responsible for reporting faults or paying compensation fees.