Skip to content

Ankvik-Tech-Labs/Rusty-Bee

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Rusty Bee

A bee node implementation in Rust 🦀.

Demo

Requirements

1. protobuf-compiler

  • Debian/Ubuntu Linux based distros
sudo apt-get install -y protobuf-compiler
  • macOS
brew install protobuf
  • Windows: Follow this stackover-flow discussion.

2. Cargo & rust installed

  • Debian/Ubuntu Linux based distros
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

Fow macOS & Windows follow the installation method from the official page.

Build

git clone https://github.com/Ankvik-Tech-Labs/Rusty-Bee
cd Rusty-Bee
cargo build

Run

cargo run

Issues

Currently, there is an issue with the handshake.proto compiled file i.e. handshake.rs. Inorder to fix that replace the contents of that file in the target folder with the contents of the following file.

swarm.handshake.rs
// This file is @generated by prost-build.
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Syn {
    #[prost(bytes = "vec", tag = "1")]
    pub observed_underlay: ::prost::alloc::vec::Vec<u8>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Ack {
    #[prost(message, optional, tag = "1")]
    pub address: std::option::Option<BzzAddress>,
    #[prost(uint64, tag = "2")]
    pub network_id: u64,
    #[prost(bool, tag = "3")]
    pub full_node: bool,
    #[prost(bytes = "vec", tag = "4")]
    pub nonce: ::prost::alloc::vec::Vec<u8>,
    #[prost(string, tag = "99")]
    pub welcome_message: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SynAck {
    #[prost(message, optional, tag = "1")]
    pub syn: std::option::Option<Syn>,
    #[prost(message, optional, tag = "2")]
    pub ack: std::option::Option<Ack>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct BzzAddress {
    #[prost(bytes = "vec", tag = "1")]
    pub underlay: ::prost::alloc::vec::Vec<u8>,
    #[prost(bytes = "vec", tag = "2")]
    pub signature: ::prost::alloc::vec::Vec<u8>,
    #[prost(bytes = "vec", tag = "3")]
    pub overlay: ::prost::alloc::vec::Vec<u8>,
}

Early Stages of development