Skip to content

DALDA-IITJ/libr

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

167 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LIBR

Open in Visual Studio Code Contributors Forks Stars License Go Version

A Moderated, Censorship-Resilient Digital Forum 📢🚫

Key FeaturesInstallationDocumentationContributing

🔄 Overview

LIBR is a decentralized messaging platform that combines blockchain principles with content moderation to create a secure, distributed communication system. Built with Go for backend services and React for the user interface, LIBR provides a robust framework for verified message exchange with cryptographic proof of moderation and authenticity.

🔐 Key Features

  • Decentralized Messaging 🌐: Exchange messages across a distributed network with cryptographic verification.
  • Content Moderation 🪖: Multi-level content moderation with configurable thresholds for different categories of inappropriate content.
  • Signature Verification ✅: Messages are cryptographically signed by both users and moderators, ensuring authenticity and approval.
  • Distributed Architecture 🧰: Multiple moderator nodes validate content independently to prevent censorship and single points of failure.
  • Cryptographic Security 🔒: RSA-based cryptography for message signing and verification.
  • Time-Based Message Bucketing ⏰: Messages are grouped into time buckets for efficient retrieval and organization.

🚀 Note: LIBR is designed for environments where content moderation is necessary while maintaining the benefits of decentralization. It's ideal for educational institutions, private organizations, and communities seeking a balance between free expression and responsible content management.

⚙️ Prerequisites

  • Go (v1.16 or higher)
  • Node.js (v14 or higher)
  • Google Cloud Platform API key (for content moderation services)
  • npm or yarn package manager

🚀 Running the System

  1. Start moderator nodes:
cd modules/mod
./mod
# Default port is 4000, can be configured in .env
  1. Start client application:
cd modules/client
go run .
  1. Start UI application:
cd modules/UI
npm start

📂 API Endpoints

🔧 Moderator Service

🔒 Content Moderation

Send a message for moderation approval.

curl -X POST http://localhost:4000/moderate \
  -H "Content-Type: application/json" \
  -d '{
    "message": "Your message content here",
    "timestamp": "1681234567"
  }'

📊 Response Format

{
  "public_key": "moderator_public_key",
  "sign": "digital_signature_of_approved_content"
}

📲 Client Service

📢 Send Message

Submit a new message to the network.

# Endpoint implementation details in client module

📃 Retrieve Messages

Get messages from a specific time bucket.

# Endpoint implementation details in client module

🚧 System Architecture

LIBR consists of several interconnected modules:

  1. Moderator Nodes 🔧: Analyze message content for inappropriate material using Google Cloud Natural Language API.
  2. Client Module 📡: Handles message creation, interaction with moderators, and storage operations.
  3. Core Module 🔄: Provides cryptographic functions, configuration management, and blockchain interfaces.
  4. UI Module 🎨: User interface for interacting with the messaging platform.
  5. Storage Layer 📂: Distributed storage system for persisting signed messages.

🕵️‍ Content Moderation

LIBR supports customizable content moderation:

  • Currently implemented using Google Cloud Natural Language API
  • User-dependent moderation that can be customized based on needs
  • Multiple moderation categories supported (toxic content, insults, profanity, etc.)
  • Users can implement their own moderation services or use the provided API

To modify moderation settings, users can edit the configuration in the file:

modules/mod/config.go

📚 Contributing

  1. Fork the repository to start working on your changes.
  2. Create a feature branch.
  3. Commit your changes.
  4. Push to the branch.
  5. Create a Pull Request to merge your changes.

🌐 License

This project is licensed under the terms of the MIT license. See LICENSE for more details.

👨‍💼 Team

LIBR is developed by the DALDA team at IIT Jodhpur. 🎓🌟

About

A Moderated, Censorship-Resilient Digital Forum

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •