Skip to content

Implementation #1

@eldenpark

Description

@eldenpark

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
  
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions