A Moderated, Censorship-Resilient Digital Forum 📢🚫
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.
- 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.
- Go (v1.16 or higher)
- Node.js (v14 or higher)
- Google Cloud Platform API key (for content moderation services)
- npm or yarn package manager
- Start moderator nodes:
cd modules/mod
./mod
# Default port is 4000, can be configured in .env- Start client application:
cd modules/client
go run .- Start UI application:
cd modules/UI
npm startSend 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"
}'{
"public_key": "moderator_public_key",
"sign": "digital_signature_of_approved_content"
}Submit a new message to the network.
# Endpoint implementation details in client moduleGet messages from a specific time bucket.
# Endpoint implementation details in client moduleLIBR consists of several interconnected modules:
- Moderator Nodes 🔧: Analyze message content for inappropriate material using Google Cloud Natural Language API.
- Client Module 📡: Handles message creation, interaction with moderators, and storage operations.
- Core Module 🔄: Provides cryptographic functions, configuration management, and blockchain interfaces.
- UI Module 🎨: User interface for interacting with the messaging platform.
- Storage Layer 📂: Distributed storage system for persisting signed messages.
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
- Fork the repository to start working on your changes.
- Create a feature branch.
- Commit your changes.
- Push to the branch.
- Create a Pull Request to merge your changes.
This project is licensed under the terms of the MIT license. See LICENSE for more details.
LIBR is developed by the DALDA team at IIT Jodhpur. 🎓🌟