De community van enthousiastelingen ontwikkelt Opengram ā een open implementatie van de serverzijde van de Telegram-messenger. Het project is een autonome server die het MTProto-protocol implementeert (ondersteunt layer tot 216) en kan worden gebruikt ter vervanging van de officiĆ«le serverinfrastructuur van Telegram bij implementatie op eigen hardware. OfficiĆ«le Telegram-clients (Telegram Desktop, mobiele applicaties) worden ondersteund na aanpassing van het datacenteradres en de publieke RSA-sleutel van de server.
Opengram is een fork van het project mytelegram. De code van Opengram is geschreven in de programmeertaal C# (.NET 9) en
wordt verspreid in de broncode zonder vermelding van een licentie. Het oorspronkelijke project mytelegram wordt geleverd onder de Apache 2.0-licentie, die in overeenkomst met paragraaf 4a vereist dat een kopie van de licentietekst wordt bijgevoegd bij de distributie van afgeleide werken.
De server is gebouwd op een reeks microservices die worden uitgevoerd via Docker Compose: een MTProto-verbinding gateway, een autorisatieserver en sleuteluitwisseling, een sessieserver, servers commando's en verzoeken (CQRS-architectuur), HTTP Bot API, een administratief API, opslag- en bestandsdistributieservers, TURN/STUN voor gesprekken en een service voor het verzenden van bevestigingscodes. MongoDB, Redis, RabbitMQ en MinIO worden als infrastructuur gebruikt.
Ondersteunde mogelijkheden omvatten: privƩ-chats, groepen, supergroepen en kanalen, geheime (end-to-end) chats, stem- en video-oproepen (via TURN/STUN en SFU mediasoup), bots en Bot API, privacy-instellingen en tweefactorauthenticatie, stickers, reacties en aangepaste emoji's; sterren (Stars) en geschenken (Star Gifts), waaronder doorverkoop en upgrades; verhalen (Stories), thema's en achtergronden; geplande en zelfverwijderende berichten.
Bron: opennet.ru
