No project description provided
Project description
nodemanager
Getting started
The aim of this project is to create a p2p network using the libp2p library in rust.
Gossip-Based Peer Sampling
MARK JELASITY, SPYROS VOULGARIS, RACHID GUERRAOUI, ANNE-MARIE KERMARREC, MAARTEN VAN STEEN. “Gossip-based peer sampling”. en. In: ACM Transactions on Computer Systems 25.3 (Aug. 2007), p. 8. issn: 0734-2071, 1557-7333. doi: 10.1145/1275517.1275520. url: https://dl.acm.org/doi/10.1145/1275517.1275520.
To run this project you need to have Rust and Python installed on your machine.
Installation
Rust
To install Rust, follow this link and choose the system you want to install it on.
Python
To install Python, follow this link.
Start the project
Once you've installed rust, you'll need to follow these steps to launch the project:
- Go to the project folder
cd project
- Create and active a python virtual environment
python -m venv .env
source .env/bin/activate
- Install maturin for building and publishing Rust-based Python packages with minimal configuration
pip install -r requirements.txt
- Build and execute the module
Example: simulation
maturin develop
python main.py --help
Expected
usage: main.py [-h] [--static_network static] [--enable_peersampling peersampling] [--node N] [--cycles M] [--multi Multithreading]
Simulation of decentralized Learning.
options:
-h, --help show this help message and exit
--static_network static
Launch a static network. 0 for False and 1 for True.
--enable_peersampling peersampling
Enables or disables peersampling. 0 for False and 1 for True.
--node N If you're not running a static network, it's important to specify the number of nodes in your network. This number must be greater than 5.
--cycles M The number of application cycles.
--multi Multithreading
Used to decide whether to run the simulation on a single thread or on several threads. 0 for False and 1 for True.
Then you can lunch a simulation:
python main.py --static_network 0 --enable_peersampling 0 --node 20 --cycles 10 --multi 0
You can observe the application logs in the log.log file. This contains logs for all nodes.
And you can see the config_sampling.json file in the tree, which represents the network/sampling configuration file.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file nodemanager-0.1.0-cp311-cp311-manylinux_2_34_x86_64.whl.
File metadata
- Download URL: nodemanager-0.1.0-cp311-cp311-manylinux_2_34_x86_64.whl
- Upload date:
- Size: 5.4 MB
- Tags: CPython 3.11, manylinux: glibc 2.34+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.11.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6af866966a63c70416b1b3bde5486432a63830c5895369350145c34cde8317e3
|
|
| MD5 |
3828d5fe81fd6771735ca3de3232e527
|
|
| BLAKE2b-256 |
67b492fe6f319bf408443b410ebabaa90d8cd353dc35a45ae844d99fefa81607
|