Famoahana ny Dendrite 0.1.0, mpizara fifandraisana misy fampiharana ny protocole Matrix

MIVOAKA выпуск Matrix-сСрвСра Dendrite 0.1.0, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠ·Π½Π°ΠΌΠ΅Π½ΠΎΠ²Π°Π» ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π½Π° ΡΡ‚Π°Π΄ΠΈΡŽ Π±Π΅Ρ‚Π°-тСстирования. Dendrite развиваСтся основной ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² Π΄Π΅Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠΉ ΠΊΠΎΠΌΠΌΡƒΠ½ΠΈΠΊΠ°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ Matrix ΠΈ позиционируСтся ΠΊΠ°ΠΊ рСализация Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ поколСния сСрвСрных ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² Matrix. Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ эталонного сСрвСра Synapse, написанного Π½Π° языкС Python, ΠΊΠΎΠ΄ Dendrite dia mivoatra Π½Π° языкС Go. ОбС ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ€Π°ΡΠΏΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΡŽΡ‚ΡΡ ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠ΅ΠΉ Apache 2.0. Π’ Ρ€Π°ΠΌΠΊΠ°Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Ruma ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ развиваСтся Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ сСрвСра Matrix Π½Π° языкС Rust, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ nozarain'i eo ambanin'ny lisansa MIT.

Новый сСрвСр Π½Π°Ρ†Π΅Π»Π΅Π½ Π½Π° достиТСниС высокой эффСктивности, надёТности ΠΈ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΠΎΡΡ‚ΠΈ. Dendrite ΠΎΠΏΠ΅Ρ€Π΅ΠΆΠ°Π΅Ρ‚ Synapse ΠΏΠΎ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ для своСй Ρ€Π°Π±ΠΎΡ‚Ρ‹ сущСствСнно мСньшС памяти ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ Ρ‡Π΅Ρ€Π΅Π· балансировку Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π½Π° нСсколько ΡƒΠ·Π»ΠΎΠ². АрхитСктура Dendrite ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ основываСтся Π½Π° Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² Π² Ρ„ΠΎΡ€ΠΌΠ΅ микросСрвисов, Π³Π΄Π΅ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ экзСмпляр микросСрвиса ΠΈΠΌΠ΅Π΅Ρ‚ свои Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π² Π‘Π”. ДиспСтчСризациСй обращСния ΠΊ микросСрвисам занимаСтся балансировщик Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ. Для распаралСлливания ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π² ΠΊΠΎΠ΄Π΅ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ ΠΏΠΎΡ‚ΠΎΠΊΠΈ (go routines), ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠ΅ Π·Π°Π΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ рСсурсы всСх ядСр CPU Π±Π΅Π· раздСлСния Π½Π° ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ процСссы.

Famoahana ny Dendrite 0.1.0, mpizara fifandraisana misy fampiharana ny protocole Matrix

Dendrite ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π² Π΄Π²ΡƒΡ… Ρ€Π΅ΠΆΠΈΠΌΠ°Ρ… β€” ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚Π½ΠΎΠΌ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π½ΠΎΠΌ (polylith). Π’ ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚Π½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅ всС микросСрвисы скомпонованы Π² ΠΎΠ΄Π½ΠΎΠΌ исполняСмом Ρ„Π°ΠΉΠ»Π΅, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ Π² ΠΎΠ΄Π½ΠΎΠΌ процСссС ΠΈ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‚ ΠΌΠ΅ΠΆΠ΄Ρƒ собой Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ. Π’ ΠΌΠ½ΠΎΠ³ΠΎΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π½ΠΎΠΌ (кластСрном) Ρ€Π΅ΠΆΠΈΠΌΠ΅ микросСрвисы ΠΌΠΎΠ³ΡƒΡ‚ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒΡΡ ΠΏΠΎ-ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, Π² Ρ‚ΠΎΠΌ числС с разнСсСниСм ΠΏΠΎ Ρ€Π°Π·Π½Ρ‹ΠΌ ΡƒΠ·Π»Π°ΠΌ. ВзаимодСйствиС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² Π²
ΠΌΠ½ΠΎΠ³ΠΎΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅ осущСствляСтся ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅Π³ΠΎ HTTP API ΠΈ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ Apache Kafka.

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° вСдётся Π½Π° основС спСцификаций ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° Matrix ΠΈ с использованиСм Π΄Π²ΡƒΡ… тСстовых Π½Π°Π±ΠΎΡ€ΠΎΠ² β€” ΠΎΠ±Ρ‰ΠΈΡ… с Synapse тСстов sytest ΠΈ Π½ΠΎΠ²ΠΎΠ³ΠΎ Π½Π°Π±ΠΎΡ€Π° famenon'ny. На Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ этапС развития Dendrite ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ 56% тСстов Client-Server API ΠΈ 77% тСстов Federation API, ΠΏΡ€ΠΈ этом фактичСский ΠΎΡ…Π²Π°Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ оцСниваСтся Π² 70% для Client-Server API ΠΈ 95% для Federation API.

Бтадия Π±Π΅Ρ‚Π°-тСстирования ΡΠ²ΠΈΠ΄Π΅Ρ‚Π΅Π»ΡŒΡΡ‚Π²ΡƒΠ΅Ρ‚ ΠΎ готовности Dendrite для Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ внСдрСния ΠΈ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π΅ ΠΊ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ с пСриодичСским Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π½ΠΎΠ²Ρ‹Ρ… выпусков. ΠœΠ΅ΠΆΠ΄Ρƒ выпусками Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°Ρ‚ΡŒΡΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ схСмы хранСния Π΄Π°Π½Π½Ρ‹Ρ… Π² Π‘Π” (Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ установки срСзов ΠΈΠ· рСпозитория, послС обновлСния содСрТимоС Π±Π°Π·Ρ‹ Ρ‚Π΅Ρ€ΡΡ‚ΡŒΡΡ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚). ИзмСнСния, Π½Π°Ρ€ΡƒΡˆΠ°ΡŽΡ‰ΠΈΠ΅ ΠΎΠ±Ρ€Π°Ρ‚Π½ΡƒΡŽ ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ, ΠΌΠ΅Π½ΡΡŽΡ‰ΠΈΠ΅ структуру Π‘Π” ΠΈΠ»ΠΈ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΡ€Π°Π²ΠΊΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ, Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Ρ‚ΡŒΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… выпусках. Dendrite ΠΏΠΎΠΊΠ° рСкомСндуСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚Π½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅ совмСстно с Π‘Π£Π‘Π” PostgreSQL для создания Π½Π΅Π±ΠΎΠ»ΡŒΡˆΠΈΡ… исходных сСрвСров (homeserver) ΠΈ P2P-ΡƒΠ·Π»ΠΎΠ². ИспользованиС SQLite ΠΏΠΎΠΊΠ° Π½Π΅ рСкомСндуСтся ΠΈΠ·-Π·Π° Π½Π΅Ρ€Π΅ΡˆΡ‘Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ с ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΎΠΉ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ.

Из ΠΏΠΎΠΊΠ° Π½Π΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Π² Dendrite возмоТностСй ΠΎΡ‚ΠΌΠ΅Ρ‡Π°ΡŽΡ‚ΡΡ подтвСрТдСния получСния сообщСний, ΠΌΠ΅Ρ‚ΠΊΠΈ ΠΎ ΠΏΡ€ΠΎΡ‡Ρ‚Π΅Π½ΠΈΠΈ, push-увСдомлСния, OpenID, привязка ΠΊ email, поиск Π½Π° сторонС сСрвСра, ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, списки игнорирования ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, созданиС Π³Ρ€ΡƒΠΏΠΏ ΠΈ сообщСств, ΠΎΡ†Π΅Π½ΠΊΠ° присутствия ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π² online, гостСвыС Π²Ρ…ΠΎΠ΄Ρ‹, взаимодСйствиС со сторонними сСтями.

Доступны для использования базовая Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ Ρ‡Π°Ρ‚-ΠΊΠΎΠΌΠ½Π°Ρ‚ (созданиС, ΠΈΠ½Π²Π°ΠΉΡ‚Ρ‹, ΠΏΡ€Π°Π²ΠΈΠ»Π° Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ), срСдства Ρ„Π΅Π΄Π΅Ρ€Π°Ρ†ΠΈΠΈ участников Π² ΠΊΠΎΠΌΠ½Π°Ρ‚Π°Ρ…, синхронизация событий послС возвращСния ΠΈΠ· offline, ΡƒΡ‡Ρ‘Ρ‚Π½Ρ‹Π΅ записи, ΠΏΡ€ΠΎΡ„ΠΈΠ»ΠΈ, индикация Π½Π°Π±ΠΎΡ€Π°, Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° ΠΈ ΠΎΡ‚Π΄Π°Ρ‡Π° Ρ„Π°ΠΉΠ»ΠΎΠ² (Media API), Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ сообщСний, ACL, привязка Ρ‚Π΅Π³ΠΎΠ² ΠΈ Ρ€Π°Π±ΠΎΡ‚Π° со списками устройств ΠΈ ΠΊΠ»ΡŽΡ‡Π΅ΠΉ для сквозного ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ.

Напомним, Ρ‡Ρ‚ΠΎ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° для ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ Π΄Π΅Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹Ρ… ΠΊΠΎΠΌΠΌΡƒΠ½ΠΈΠΊΠ°Ρ†ΠΈΠΉ Matrix примСняСт Π² качСствС транспорта HTTPS+JSON с Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ использования WebSockets ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° Π½Π° Π±Π°Π·Π΅ CoAP+Noise. Ny rafitra dia miforona ho toy ny vondrom-piarahamonina mpizara izay afaka mifandray amin'ny tsirairay ary mitambatra ao anaty tambajotra iraisana. Ny hafatra dia averina manerana ireo lohamilina rehetra mifandray amin'ireo mpandray anjara amin'ny hafatra. Ny hafatra dia aparitaka manerana ny lohamilina amin'ny fomba mitovy amin'ny fampitana ny commit eo anelanelan'ny tahiry Git. Raha misy fahatapahan'ny mpizara vonjimaika, dia tsy very ny hafatra, fa ampitaina amin'ny mpampiasa rehefa miverina miasa ny mpizara. Safidy ID mpampiasa isan-karazany dia tohanana, ao anatin'izany ny mailaka, ny nomeraon-telefaona, ny kaonty Facebook, sns.

Tsy misy teboka tokana tsy fahombiazana na fifehezana hafatra manerana ny tambajotra. Mitovy avokoa ny mpizara rehetra voarakotry ny fifanakalozan-kevitra.
Ny mpampiasa rehetra dia afaka mitantana ny mpizara azy manokana ary mampifandray izany amin'ny tambajotra iraisana. Azo atao ny mamorona vavahady ho an'ny fifandraisana amin'ny Matrix amin'ny rafitra mifototra amin'ny protocols hafa, ohatra, vonona serivisy ho an'ny fandefasana hafatra roa mankany amin'ny IRC, Facebook, Telegram, Skype, Hangouts, Email, WhatsApp ary Slack. Ho fanampin'ny fandefasana hafatra an-tsoratra sy resaka eo no ho eo, ny rafitra dia azo ampiasaina hamindrana rakitra, mandefa fampandrenesana,
mikarakara teleconference, manao antso an-tariby sy video. Izy io koa dia manohana ireo endri-javatra mandroso toy ny fampahafantarana ny fanoratana, ny fanombanana ny fisian'ny mpampiasa an-tserasera, ny fanamafisana ny famakiana, ny fampandrenesana fanosehana, ny fikarohana amin'ny lafiny server, ny fampifanarahana ny tantara sy ny satan'ny mpanjifa.

Source: opennet.ru

Add a comment