A decentralized messaging daemon built on top of the Kademlia routing protocol.

Overview

parakeet-message

A decentralized messaging daemon built on top of the Kademlia routing protocol. IWasActingGIF

Now that you are done laughing...

pictures

image_0 image_1

what is it? ๐Ÿค”

So basically, you host a server on your machine that everyone else is going to talk to. If anyone wants to leave messages there, they can. You can also send a request to this server to have it send a message to someone else. Right now there isn't any security to stop you from sending a message from someone else's machine but that would be an easy addition into the server code itself. You can poll this server for messages that other people have left, but in the future that may turn into a Websocket live feed. There is also an endpoint you can call that will list all of the users that the server knows about, and it is to those users that you can send messages. Getting into how the Kademlia protocol works is not something I want to do right now, but there are a plethora of resources online about it because it is a very popular, topical, and, most importantly, performant routing protocol. Just google Kademlia protocol and you will find it, if you don't then you are lying. ๐Ÿ˜Ž

why? ๐Ÿ˜ตโ€๐Ÿ’ซ

I had just done a project for my Distributed Systems (CSE 40771) course on the Kademlia protocol and wanted to make something else with it. I liked the idea of having what is essentially a decentralized messaging service so that I could use it with my friends. Also, this is the culmination of hours of research and work and I feel like I need to at least put it somewhere. There are most definitely a lot of bugs, but I will certainly keep going through and both remove these bugs and add new features as I see fit, as long as my interest holds.

setup ๐Ÿค“

  1. If you already know someone that is on the network, do this before starting the server.
  • export BOOTSTRAP_HOST= e.g., export BOOTSTRAP_HOST=127.0.0.1
  • export BOOTSTRAP_PORT= e.g., export BOOTSTRAP_PORT=8000
  1. Now, start the server.
  • python3 server.py --port=

client ๐Ÿคจ

  1. If you want a rudimentary implementation of a messaging client that will use one of these servers, I have provided the client.py program that you can use to do so.
  2. You execute it like so - python3 client.py SERVER_HOST SERVER_PORT - where SERVER_HOST and SERVER_PORT are the host and port of your server respectively. It is to this server that the client will call to send and receive messages. Type help within the fake shell to see a list of commands you can execute (note: there aren't that many).
Owner
Jonathan Abbott
I was gonna send you a joke about UDP but wasn't sure you'd get it.
Jonathan Abbott
Georeferencing large amounts of data for free.

Geolocate Georeferencing large amounts of data for free. Special thanks to @brunodepauloalmeida and the whole team for the contributions. How? It's us

Gabriel Gazola Milan 23 Dec 30, 2022
Telegram Voice-Chat Bot

Telegram Voice-Chat Bot [PyTGCalls] โ‡ Requirements โ‡œ Account requirements A Telegram account to use as the music bot, You cannot use regular bot accou

1 Dec 03, 2021
Powerful Ethereum Smart-Contract Toolkit

Heimdall Heimdall is an advanced and modular smart-contract toolkit which aims to make dealing with smart contracts on EVM based chains easier. Instal

Jonathan Becker 69 Dec 26, 2022
A module to get data about anime characters, news, info, lyrics and more.

Animec A module to get data about anime characters, news, info, lyrics and more. The module scrapes myanimelist to parse requested data. If you wish t

DriftAsimov 31 Aug 31, 2022
Reverse engineering the dengue virus (under development construction)

Reverse engineering the dengue virus (under development ๐Ÿšง ) What is dengue? Dengue is a viral infection transmitted to humans through the bite of inf

kjain 4 Feb 09, 2022
A Script to automate fowarding all new messages from one/many channel(s) to another channel(s), without the forwarded tag.

Channel Auto Message Forward A script to automate fowarding all new messages from one/many channel(s) to another channel(s), without the forwarded tag

16 Oct 21, 2022
An API wrapper for Discord written in Python.

disnake A modern, easy to use, feature-rich, and async ready API wrapper for Discord written in Python. About disnake All the contributors and develop

557 Jan 05, 2023
A GitHub Follower Bot that is a WIP.

GitHub Follower Bot (WIP) Work In Progress This bot is a WIP. There are still many features I plan to add and code I need to improve (I'm still fairly

Christian Deacon 71 Dec 29, 2022
This is Pdisk Upload Bot made using Python with Pyrogram Framework. Its capable of uploading direct download link with thumbnail or without thumbnail & with Title Support.

Pdisk-Upload-Bot Introduction This Is PDisk Upload Bot Used To Upload Direct Link To Pdisk With Thumb Support Deploy Heroku Deploy Local Deploy pip in

HEIMAN PICTURES 32 Oct 21, 2022
My personal template for a discord bot, including an asynchronous database and colored logging :)

My personal template for a discord bot, including an asynchronous database and colored logging :)

Timothy Pidashev 9 Dec 24, 2022
Automatically render tens of thousands of unique NFT images individually as png's.

Blend_My_NFTs Description This project is a work in progress (as of Oct 24th, 2021) and will eventually be an add on to Blender. Blend_My_NFTs is bing

Torrin Leonard 894 Dec 29, 2022
An unoffcial python API client for primeuploads.com

primeuploads-py An unoffcial python API wrapper for primeuploads.com Installation pip3 install primeuploads-py Usage example from prime import PrimeUp

W4RR10R 41 Dec 05, 2022
This is a unofficial library for making bots in rubika.

rubika this is a unofficial library for making bots in rubika using this library you can make your own0 rubika bot and control that those bots that ma

Bahman 50 Jan 02, 2023
:evergreen_tree: Python module for communicating with the Taiga API

python-taiga A python wrapper for the Taiga REST API. Documentation: https://python-taiga.readthedocs.io/ Usage: : https://python-taiga.readthedocs.io

Nephila 87 Oct 12, 2022
Community-based extensions for the python-telegram-bot library.

Community-based extensions for the python-telegram-bot library. Table of contents Introduction Installing Getting help Contributing License Introducti

74 Dec 24, 2022
ๆ•ฐๅญ—่ดงๅธBTC้‡ๅŒ–ไบคๆ˜“็ณป็ปŸ-ๅฎž็›˜่กŒๆƒ…ๆœๅŠกๅ™จ,่™šๆ‹Ÿๅธ่‡ชๅŠจ็‚’ๅธ-็ซๅธAPI-ๅธๅฎ‰ไบคๆ˜“ๆ‰€-้‡ๅŒ–ไบคๆ˜“-็ฝ‘ๆ ผ็ญ–็•ฅใ€‚่ถ‹ๅŠฟ่ทŸ่ธช็ญ–็•ฅ๏ผŒๆœ€็ฎ€ๆบ็ ,ๅฏๅœจ็บฟๅ›žๆต‹,ไธ€้”ฎ้ƒจ็ฝฒ,ๅฏๅฎšๅˆถ็š„ๆฏ”็‰นๅธ้‡ๅŒ–ไบคๆ˜“ๆก†ๆžถ,3ๅนดๅฎž็›˜ๆฃ€้ชŒ๏ผ

huobi_intf ๆไพ›็ซๅธ็ฝ‘็š„ๅฎžๆ—ถ่กŒๆƒ…ๆœๅŠกๅ™จ(ๆ”ฏๆŒ็ซๅธ็ฝ‘ๆ‰€ๆœ‰ไบคๆ˜“ๅฏน็š„ๅฎžๆ—ถ่กŒๆƒ…)๏ผŒ่‡ชๅธฆAPI็ผ“ๅญ˜๏ผŒๅฏ็”จไบŽๅฎž็›˜ไบคๆ˜“ๅ’Œๆจกๆ‹Ÿๅ›žๆต‹ใ€‚ ่กŒๆƒ…ๆ•ฐๆฎ๏ผŒๆ˜ฏไธ€ๅˆ‡้‡ๅŒ–ไบคๆ˜“็š„ๅŸบ็ก€๏ผŒๅฏไปฅ่Žทๅ–1minใ€60minใ€4hourใ€1day็ญ‰ๆ•ฐๆฎใ€‚ๆ•ฐๆฎ่ƒฝ่ฟ›่กŒ็ผ“ๅญ˜๏ผŒๅฏไปฅๅœจๅคšไธชๅธ็ง๏ผŒๅคšไธชๆ—ถ้—ดๆฎตๆŸฅ่ฏข็š„ๆ—ถๅ€™๏ผŒๆŸฅ่ฏข้€Ÿๅบฆไพ็„ถๅพˆๅฟซใ€‚ ๆœๅŠกๆก†ๆžถ

dev 258 Sep 20, 2021
The WhatsApp lib

yowsup WARNING It seems that recently yowsup gets detected during registration resulting in an instant ban for your number right after registering wit

Tarek 6.8k Jan 04, 2023
A Discord bot themed around the Swedish heavy metal band Sabaton! (Python)

A Discord bot themed around the Swedish heavy metal band Sabaton! (Python)

Evan Lundberg 1 Nov 29, 2021
An advanced Filter Bot with nearly unlimitted filters

Telegram MTProto API Framework for Python Documentation โ€ข Releases โ€ข Community Pyrogram from pyrogram import Client, filters app = Client("my_account

Pyrogram 3.2k Jan 05, 2023