Reference
Networking

b7s (Blockless Networking Daemon)

b7s is a peer-to-peer networking daemon for the Blockless Network, designed to facilitate distributed computing and resource management. It supports Windows, Linux, and MacOS platforms on both x64 and arm64 architectures.

You can find the repository on GitHub (opens in a new tab).

Installation

You can install b7s using either curl, wget, or Docker:

Using curl

sudo sh -c "curl https://raw.githubusercontent.com/blocklessnetwork/b7s/main/download.sh | bash"

Using wget

sudo sh -c "wget https://raw.githubusercontent.com/blocklessnetwork/b7s/main/download.sh -v -O download.sh; chmod +x download.sh; ./download.sh; rm -rf download.sh"

Using Docker

You can also use Docker to install b7s.

Prerequisites

  • A machine running Docker
  • A valid AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY for an S3-compatible storage provider. This is used for backing up your node's keys and configuration.
  • A valid KEY_PATH and KEY_PASSWORD for your S3-compatible storage provider. This is used for backing up your node's keys and configuration.

Running the Image

First, pull the latest version of the b7s Docker image from the public registry:

docker pull ghcr.io/blocklessnetwork/b7s:v0.0.3

Then, run the image:

docker run -d --name b7s \
  -e AWS_ACCESS_KEY_ID=<YOUR_AWS_ACCESS_KEY_ID> \
  -e AWS_SECRET_ACCESS_KEY=<YOUR_AWS_SECRET_ACCESS_KEY> \
  -e KEY_PATH=<YOUR_S3_KEY_PATH> \
  -e KEY_PASSWORD=<YOUR_S3_KEY_PASSWORD> \
  -e CHAIN_RPC_NODE=<YOUR_CHAIN_RPC_NODE> \
  -p 9527:9527 \
  ghcr.io/blocklessnetwork/b7s:v0.0.5-rc1

Usage

FlagShort FormDefault ValueDescription
log-level-l“info”Specifies the level of logging to use.
peer-dbN/A“peer-db”Specifies the path to database used for persisting peer data.
function-dbN/A“function-db”Specifies the path to database used for persisting function data.
role-r“worker”Specifies the role this node will have in the Blockless protocol (head or worker).
address-a“0.0.0.0”Specifies the address that the libp2p host will use.
port-p0Specifies the port that the libp2p host will use.
private-keyN/AN/ASpecifies the private key that the libp2p host will use.
concurrency-cnode.DefaultConcurrencySpecifies the maximum number of requests the node will process in parallel.
rest-apiN/AN/ASpecifies the address where the head node REST API will listen on.
boot-nodesN/AN/ASpecifies a list of addresses that this node will connect to on startup, in multiaddr format.
workspaceN/A“./workspace”Specifies the directory that the node can use for file storage.
runtimeN/AN/ASpecifies the runtime address used by the worker node.
dialback-addressN/AN/ASpecifies the advertised dialback address of the Node.
dialback-portN/AN/ASpecifies the advertised dialback port of the Node.
cpu-percentage-limitN/A1.0Specifies the amount of CPU time allowed for Blockless Functions in the 0-1 range, 1 being unlimited.
memory-limitN/AN/ASpecifies the memory limit for Blockless Functions, in kB.

Dependencies

b7s depends on the following repositories:

  • blocklessnetwork/runtime
  • blocklessnetwork/orchestration-chain

Contributing

For information on contributing to the b7s project, refer to the src/README file within the project repository.

Your contributions are welcome, and we encourage you to submit pull requests, report bugs, and share your ideas to improve the b7s networking daemon and help us build a more efficient and robust blockless network.

© 2023 TX Labs Foundation Ltd.