Die Gemeinschaft von Enthusiasten entwickelt Opengram – eine offene Implementierung des Serverteils des Messengers Telegram. Das Projekt ist ein eigenständiger Server, der das MTProto-Protokoll (unterstützt bis zu Layer 216) umsetzt und als Ersatz für die offizielle Serverinfrastruktur von Telegram beim Einsatz auf eigener Hardware verwendet werden kann. Offizielle Telegram-Clients (Telegram Desktop, mobile Anwendungen) werden unterstützt, nachdem die Adresse des Rechenzentrums und der öffentliche RSA-Schlüssel des Servers geändert wurden.
Opengram ist ein Fork des Projekts mytelegram. Der Code von Opengram ist in C# (.NET 9) geschrieben und
wird im Quelltext ohne Lizenzangabe verbreitet. Das ursprüngliche Projekt mytelegram wird unter der Lizenz Apache 2.0 bereitgestellt, die gemäß Punkt 4a die Beifügung einer Kopie des Lizenztextes bei der Verbreitung abgeleiteter Werke verlangt.
Der Server basiert auf einer Reihe von Mikrodiensten, die über Docker Compose gestartet werden: ein MTProto-Verbindungsgateway, ein Authentifizierungs- und Schlüsselwechselserver, ein Sitzungsserver, Server Befehls- und Abfragesystem (CQRS-Architektur), HTTP Bot-API, Verwaltungs-API, Datei-Speicher- und Verteilserver, TURN/STUN für Anrufe sowie einen Service zum Versenden von Bestätigungscodes. Als Infrastruktur werden MongoDB, Redis, RabbitMQ und MinIO verwendet.
Unter den unterstützten Funktionen befinden sich: private Chats, Gruppen, Supergruppen und Kanäle, geheime (Ende-zu-Ende) Chats, Sprach- und Videoanrufe (über TURN/STUN und SFU mediasoup), Bots und Bot-API, Datenschutzeinstellungen sowie Zwei-Faktor-Authentifizierung, Sticker, Reaktionen und benutzerdefinierte Emojis; Sterne (Stars) und Geschenke (Star Gifts), einschließlich Wiederverkauf und Upgrade; Geschichten (Stories), Themen und Hintergründe; geplante und selbstlöschende Nachrichten.
Quelle: opennet.ru
