Skip to content

RavSock

Kailash edited this page Feb 14, 2022 · 1 revision

RavSock

RavSock is the second most crucial building block of the framework. It sits between the developer(who create ops and write algorithms) and the contributor who contribute the idle computing power. It facilitates the efficient distribution of ops and the efficient merging of results.

Github

Setup

Installation

Create a virutal environment with Python 3.8 before you install RDF libraries

conda create -n <env_name> python=3.8

Clone repository

git clone https://github.com/ravenprotocol/ravsock.git

Set up everything and install dependencies

sh setup.sh

Configure Paths

Navigate to ravsock/config.py and set the FTP_ENVIRON_DIR variable to the bin folder of your python virtual environment. For instance:

FTP_ENVIRON_DIR = "~/miniconda/envs/<env_name>/bin"

Note: Set ENCRYPTION = True in the same file if a layer of homomorphic encryption needs to be added for Federated Analytics.

Set RDF_DATABASE_URI in the same file.

RDF_DATABASE_URI = "sqlite:///rdf.db?check_same_thread=False"

Create database with tables required for the project.

python reset.py  

The server is now configured correctly and ready to be fired up.

Start Ravsock Server

Ravsock is a crucial component of RDF that facilitates both federated and distributed functionalities of the framework.

It sits between the developer(who creates ops and writes algorithms) and the contributor who contributes the idle computing power. It's scheduling algorithm oversees the distribution and statuses of different Ops, Graphs and Subgraphs across multiple Clients.

python3 run.py