All Projects → manuels → Bulletinboard Dht

manuels / Bulletinboard Dht

Licence: gpl-2.0
Your internet-wide general-purpose DHT to store key/value pairs

Programming Languages

rust
11053 projects

Projects that are alternatives of or similar to Bulletinboard Dht

ipfs-chat
Real-time P2P messenger using go-ipfs pubsub. TUI. End-to-end encrypted texting & file-sharing. NAT traversal.
Stars: ✭ 84 (-26.32%)
Mutual labels:  peer-to-peer, dht
Bitchatclient
Technitium Bit Chat, a secure, peer-to-peer, instant messenger!
Stars: ✭ 111 (-2.63%)
Mutual labels:  dht, peer-to-peer
Olric
Distributed cache and in-memory key/value data store. It can be used both as an embedded Go library and as a language-independent service.
Stars: ✭ 2,067 (+1713.16%)
Mutual labels:  key-value, dht
Layr
A decentralized (p2p) file storage system built atop Kademlia DHT that enforces data integrity, privacy, and availability through sharding, proofs of retrievability, redundancy, and encryption, with smart-contract powered incentive scheme
Stars: ✭ 90 (-21.05%)
Mutual labels:  peer-to-peer, dht
Infinit
The Infinit policy-based software-defined storage platform.
Stars: ✭ 363 (+218.42%)
Mutual labels:  key-value, peer-to-peer
Pcp
📦 Command line peer-to-peer data transfer tool based on libp2p.
Stars: ✭ 687 (+502.63%)
Mutual labels:  dht, peer-to-peer
Wirehub
🌍 Decentralized, peer-to-peer and secure overlay networks
Stars: ✭ 459 (+302.63%)
Mutual labels:  dht, peer-to-peer
Spruce Network
Decentralized peer-to-peer mesh network.
Stars: ✭ 61 (-46.49%)
Mutual labels:  dht, peer-to-peer
Gossip Python
Implementation of the gossip protocol
Stars: ✭ 100 (-12.28%)
Mutual labels:  peer-to-peer
Airdcpp Webclient
Communal peer-to-peer file sharing application for file servers/NAS devices
Stars: ✭ 106 (-7.02%)
Mutual labels:  peer-to-peer
Zookeeper
Apache ZooKeeper
Stars: ✭ 10,061 (+8725.44%)
Mutual labels:  key-value
Brightid
Reference mobile app for BrightID
Stars: ✭ 101 (-11.4%)
Mutual labels:  peer-to-peer
Keyv
Simple key-value storage with support for multiple backends
Stars: ✭ 1,629 (+1328.95%)
Mutual labels:  key-value
Rn Voice Video Call
Usage of WebRTC for voice & video call with peer-to-peer or conference with Login and Register screen using response & Async storage with Call Dis/Connect, Failed and Idle views in react native. Youtube:
Stars: ✭ 100 (-12.28%)
Mutual labels:  peer-to-peer
Gkvdb
[mirror] Go语言开发的基于DRH(Deep-Re-Hash)深度哈希分区算法的高性能高可用Key-Value嵌入式事务数据库。基于纯Go语言实现,具有优异的跨平台性,良好的高可用及文件IO复用设计,高效的底层数据库文件操作性能,支持原子操作、批量操作、事务操作、多表操作、多表事务、随机遍历等特性。
Stars: ✭ 109 (-4.39%)
Mutual labels:  key-value
Slowpoke
Low-level key/value store in pure Go.
Stars: ✭ 98 (-14.04%)
Mutual labels:  key-value
Egocache
Fast Caching for Objective-C (iPhone & Mac Compatible)
Stars: ✭ 1,339 (+1074.56%)
Mutual labels:  key-value
Stencil Store
Store is a lightweight shared state library by the StencilJS core team. Implements a simple key/value map that efficiently re-renders components when necessary.
Stars: ✭ 107 (-6.14%)
Mutual labels:  key-value
Degit
DeGit is a "Decentralized GitHub"
Stars: ✭ 104 (-8.77%)
Mutual labels:  peer-to-peer
I2p.i2p Bote
I2P-Bote is a serverless, encrypted e-mail application.
Stars: ✭ 103 (-9.65%)
Mutual labels:  dht

BulletinBoard DHT

Build Status Crates Version

https://github.com/manuels/bulletinboard-dht

Introduction

BulletinBoard is a general-purpose Distributed-Hash-Table based on Kademlia.

The interface is provided as a D-Bus service via these commands (see example below or python example):

Service: org.manuel.BulletinBoard
  Object Path: /
  Interface:   org.manuel.BulletinBoard
  Commands:
   - Store(app_id: str, key: [u8], value: [u8], lifetime_sec: u64)
   - Put(app_id: str, key: [u8], value: [u8])
   - Get(app_id: str, key: [u8]) -> (values: [[u8]])

Please note that the value must not exceed 2048 bytes!

The lifetime for a value you Put() in the DHT is 15 minutes, so you should call Put() every, say, 10 minutes to make sure it stays in the DHT (or just use Store()).

Installation

  1. Download

      # Debian/Ubuntu
      wget 'https://github.com/manuels/bulletinboard-dht/releases/download/v0.5.3/bulletinboard_0.5.3_amd64.deb'
    
      # Fedora
      wget 'https://github.com/manuels/bulletinboard-dht/releases/download/v0.5.3/bulletinboard-0.5.3-1.x86_64.rpm'
    
  2. Install bulletinboard

      # Debian/Ubuntu
      sudo dpkg -i bulletinboard_0.5.3_amd64.deb
    
      # Fedora
      sudo rpm -ivh bulletinboard-0.5.3.x86_64.rpm
    

Usage

Usually BulletinBoard is used by any third-party applications to store and lookup data. You can use the DBus interface to do this by hand for example in your shell scripts.

Storing Data

The Put() command stores data in the DHT. In this example we store under the key what did you eat? the value [8B,AD,F0,0D] using the application ID mytestapp:

     $ dbus-send --session \
        --type=method_call \
        --dest=org.manuel.BulletinBoard / \
        org.manuel.BulletinBoard.Put \
        string:"mytestapp" \
        array:byte:"what did you eat?" \
        array:byte:0x8B,0xAD,0xF0,0x0D

Retrieving Data

Now we can get the stored data by asking the DHT what is stored under the key what did you eat?. Using the Get() command, we get back the [8B,AD,F0,0D] value we stored previously:

     $ dbus-send --session \
        --reply-timeout=60000 \
        --print-reply \
        --type=method_call \
        --dest=org.manuel.BulletinBoard / \
        org.manuel.BulletinBoard.Get \
        string:"mytestapp" \
        array:byte:"what did you eat?"

     array [
        array of bytes [
           8B AD F0 0D
        ]
     ]

Developing

  1. Get Rust

  2. Clone

    git clone https://github.com/manuels/bulletinboard-dht.git
    
  3. Build

    cargo build --release
    

    (in bulletinboard-dht dir)

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].