Verifiable Computing Module
This document details the implementation of a 2-layer Ethereum tethering module, VCM.
Programming Language
To fully maximize the performance of given hardware, a low-level programming language which can be compiled down to the native binary code is to be used.
C++17
Use of Ethereum
Verifiable-computing leverages Ethereum, an open-source blockchain to make work delegation as reliable as possible.
Ethereum client node
In order to tap into a public Ethereum network, VCM needs to connect to a client. Accessing the network, however, does not mandate running a client application on one's own. 3rd party services such as Infura might as well be used to develop, test, and run the module.
Module Breakdown
VCM entails a set of off-chain application and a protocol compliant smart contract. In this document, we call OCA and Contract, respectively.
OCA
The main routine of OCA is to listen to various events from the Ethereum network and to respond with a set of predefined rules. Ethereum client emits different types of events that listeners can subscribe to. OCA subscribes to those events and sends transactions if necessary by using Remote Procedure Calls (RPCs) to the client application.
struct state:
int workRateLimit
function routine():
subscribeToEthereumClient(EVENT_TYPE, contractId, callback);
function callback1():
rand := generateRand()
sha := hash(rand)
send(contractId, sha)
subscribeToEthereumClient(EVENT_TYPE, callback2);
function callback2():
work
Contract
contract {
bool isServiceable // tell whether this contract is busy
}
Verifiable Computing Module
This document details the implementation of a 2-layer Ethereum tethering module, VCM.
Programming Language
To fully maximize the performance of given hardware, a low-level programming language which can be compiled down to the native binary code is to be used.
C++17Use of Ethereum
Verifiable-computing leverages Ethereum, an open-source blockchain to make work delegation as reliable as possible.
Ethereum client node
In order to tap into a public Ethereum network,
VCMneeds to connect to a client. Accessing the network, however, does not mandate running a client application on one's own. 3rd party services such as Infura might as well be used to develop, test, and run the module.Module Breakdown
VCM entails a set of off-chain application and a protocol compliant smart contract. In this document, we call OCA and Contract, respectively.
OCA
The main routine of OCA is to listen to various events from the Ethereum network and to respond with a set of predefined rules. Ethereum client emits different types of events that listeners can subscribe to. OCA subscribes to those events and sends transactions if necessary by using Remote Procedure Calls (RPCs) to the client application.
Contract