Общество на ентусиастите развива Opengram — открита реализация на сървърната част на месинджъра Telegram. Проектът представлява самостоятелен сървър, реализиращ протокола MTProto (поддържа се слой до 216), който може да се използва за замяна на официалната сървърна инфраструктура на Telegram при внедряване на собствено оборудване. Поддържат се официалните клиенти на Telegram (Telegram Desktop, мобилни приложения) след промяна на адреса на дата-центра и публичния RSA-ключ на сървера.
Opengram е форк на проекта mytelegram. Кодът на Opengram е написан на езика C# (.NET 9) и
се разпространява в изходни текстове без указание на лиценз. Първоначалният проект mytelegram се предоставя под лицензия Apache 2.0, която в съответствие с точка 4a изисква включване на копие от текста на лицензията при разпространение на производни работи.
Сървърът е построен на набор от микросервизи, стартирани чрез Docker Compose: шлюз за MTProto свързвания, сървър за авторизация и обмен на ключове, сървър за сесии, сървъри команди и заявки (архитектура CQRS), HTTP Bot API, служебно API за администриране, сървъри за съхранение и раздаване на файлове, TURN/STUN за повиквания и услуга за изпращане на кодове за потвърждение. Използва се MongoDB, Redis, RabbitMQ и MinIO като инфраструктура.
От поддържаните функции: лични чатове, групи, супергрупи и канали, секретни (end-to-end) чатове, гласови и видеовикерове (чрез TURN/STUN и SFU mediasoup), ботове и Bot API, настройки за конфиденциалност и двуфакторна автентикация, стикери, реакции и персонализирани емоджита; звезди (Stars) и подаръци (Star Gifts), включително препродажба и надграждане; истории (Stories), теми и тапети; запланувани и самоизтриващи се съобщения.
Източник: opennet.ru
