controller

module
v0.0.0-...-5663511 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 7, 2022 License: Apache-2.0

README

Controller

This project consists of two componets: an agent and controller.

The central controller instructs the IPFS instances, via the agents, to publish or retrieve carefully crafted CIDs into/from the network.

Next to each IPFS instance an agent that can control the instance and in turn accepts commands by a central controller.

Lookup Procedure

The controller starts with generating 0.5 of random data.

It then transfers this data to the first controlled IPFS instance and instructs it to announce to the IPFS network that it is in possession of this data.

This step resembles the content publication process.

As soon as this step has finished the controller instructs all remaining controlled IPFS instances to retrieve the CID of the random data.

This step involves finding the provider record, connecting to the provider (first controlled IPFS node) and then fetching the 0.5 of random data.

As soon as all remaining IPFS instances have completed this process the controller instructs them to disconnect from the provider.

This last step is done so that we avoid retrieving content through Bitswap during the next experiment, since peers would remain directly connected.

In other words, this would test the performance of Bitswap and not the DHT lookup process.

Create a key

openssl rand 32 | base64 > .key

Start ipfs for local testing

ipfs daemon --init

Build

make build

Integration testing with local ipfs

make itest

Running simple nodes experiment

# editing nodes-list.out file with ipfs nodes, hostname:port
# run experiment
./controller

# or
./controller -l <nodes list file>

# or repeat test every X seconds
./controller -l <nodes list file> -i <interval in seconds>

Directories

Path Synopsis
cmd
pkg
simplenode
simplenode package will test with ipfs api
simplenode package will test with ipfs api

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL