Code Monkey home page Code Monkey logo

peerbrain's Introduction

Peer Brain - A Decentralized P2P Social Network App

This open-source project implements a peer-to-peer social network app where users are represented as brain cells. It is completely decentralized and there is no central authority or recommendation algorithms, nor is there any censorship. Messages are propagated between users in a meritocratic way, and users have control over the strength of the signals they receive. This allows for more free and open communication between users.

If you want to contribute, you can fork this repository and issue pull requests! Feel free to use ChatGPT or OpenAI to help you with the coding.

Table of Contents

  1. How does the open-source workflow work?
  2. Encryption Mechanism
  3. Installation/Instructions
  4. Resources

How does the open-source workflow work?

The open-source workflow is a process by which users can contribute to a project. It is typically done through a system like GitHub, where users can fork, or copy, a repository, make changes to it, and then submit a pull request. The project maintainers then review the changes and either accept or reject them. If accepted, the changes are merged into the main repository. This process allows for collaboration between users and for projects to be updated and improved quickly.

Encryption Mechanism

  1. Load symmetric key.
  2. Encrypt the user entered message using the symmetric key.
  3. Fetch the public key from the server.
  4. Encrypt the symmetric key using the public key.
  5. Decrypt the encrypted symmetric key using the private key.
  6. Decrypt the encrypted message using decrypted symmetric key.
    This is encryption cycle for each message we write or read.

Installation/Instructions

  1. Clone the PeerBrain Repo to your local machine
  2. Now navigate to client directory
  3. Install all the packages from the requirements.txt file using command:
pip install -r requirements.txt
  1. After successful installation, start the client service. Don't change anything in the code :) When everything runs fine as expected, you will see the menu as below:
  2. First step is to register yourself with the application.Select option 2 to register. peerbrain1
  3. After successful registration, try to login into the application with details you have used during registration process. peerbrain2
  4. After successful login, you will be able to see the Main menu as below: peerbrain3
  5. Make sure you have generated the keys prior exploring the application. To generate keys Navigate to Account details section, select generate the keys(2nd option).

Congratulations πŸŽ‰ and Thanks for making it till here. Please free feel to explore the application menu ☺️. Happy journey!

Resources

Here are some resources about this project:

  • Finxter Youtube project start video -The video that started it all.

  • Git basics -This article talks about how to use Git versioning, which comes in handy when working on open source projects.

  • Symmetric Key Exchange Server -This server takes care of storing the symmetric keys and sending back the encrypted versions of these when a user wants to read a friends messages. It is a part of this project but it doesn't share any resources with it. The two are separated to ensure the security of the symmetric keys.


linting: pylint GitHub issues

peerbrain's People

Contributors

finxter avatar shandralor avatar srivasthavapippari avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Forkers

shandralor

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.