Rhyddhau Dendrite 0.1.0, gweinydd cyfathrebu gyda gweithrediad y protocol Matrics

Cyhoeddwyd выпуск Matrix-сСрвСра Dendrite 0.1.0, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠ·Π½Π°ΠΌΠ΅Π½ΠΎΠ²Π°Π» ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π½Π° ΡΡ‚Π°Π΄ΠΈΡŽ Π±Π΅Ρ‚Π°-тСстирования. Dendrite развиваСтся основной ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² Π΄Π΅Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠΉ ΠΊΠΎΠΌΠΌΡƒΠ½ΠΈΠΊΠ°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ Matrix ΠΈ позиционируСтся ΠΊΠ°ΠΊ рСализация Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ поколСния сСрвСрных ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² Matrix. Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ эталонного сСрвСра Synaps, написанного Π½Π° языкС Python, ΠΊΠΎΠ΄ Dendrite yn datblygu Π½Π° языкС Go. ОбС ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ€Π°ΡΠΏΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΡŽΡ‚ΡΡ ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠ΅ΠΉ Apache 2.0. Π’ Ρ€Π°ΠΌΠΊΠ°Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Rwma ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ развиваСтся Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ сСрвСра Matrix Π½Π° языкС Rust, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ dosbarthu gan dan drwydded MIT.

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

Rhyddhau Dendrite 0.1.0, gweinydd cyfathrebu gyda gweithrediad y protocol Matrics

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

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° вСдётся Π½Π° основС спСцификаций ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° Matrix ΠΈ с использованиСм Π΄Π²ΡƒΡ… тСстовых Π½Π°Π±ΠΎΡ€ΠΎΠ² β€” ΠΎΠ±Ρ‰ΠΈΡ… с Synapse тСстов sytest ΠΈ Π½ΠΎΠ²ΠΎΠ³ΠΎ Π½Π°Π±ΠΎΡ€Π° Ategol. На Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ этапС развития 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+SΕ΅n. Mae'r system yn cael ei ffurfio fel cymuned o weinyddion sy'n gallu rhyngweithio Γ’'i gilydd ac sydd wedi'u huno i rwydwaith datganoledig cyffredin. Mae negeseuon yn cael eu hailadrodd ar draws yr holl weinyddion y mae'r cyfranogwyr negeseuon wedi'u cysylltu Γ’ nhw. Mae negeseuon yn cael eu lledaenu ar draws gweinyddwyr yn yr un ffordd ag y mae ymrwymiadau yn cael eu lledaenu rhwng ystorfeydd Git. Mewn achos o ddiffodd gweinydd dros dro, ni chaiff negeseuon eu colli, ond cΓ’nt eu trosglwyddo i ddefnyddwyr ar Γ΄l i'r gweinydd ailddechrau gweithredu. Cefnogir amrywiol opsiynau ID defnyddiwr, gan gynnwys e-bost, rhif ffΓ΄n, cyfrif Facebook, ac ati.

Nid oes un pwynt methiant na rheolaeth neges ar draws y rhwydwaith. Mae pob gweinydd a gwmpesir gan y drafodaeth yn gyfartal Γ’'i gilydd.
Gall unrhyw ddefnyddiwr redeg eu gweinydd eu hunain a'i gysylltu Γ’ rhwydwaith cyffredin. Mae'n bosibl creu pyrth ar gyfer rhyngweithio Matrics Γ’ systemau sy'n seiliedig ar brotocolau eraill, er enghraifft, parod gwasanaethau ar gyfer anfon negeseuon dwy ffordd i IRC, Facebook, Telegram, Skype, Hangouts, E-bost, WhatsApp a Slack. Yn ogystal Γ’ negeseuon testun gwib a sgyrsiau, gellir defnyddio'r system i drosglwyddo ffeiliau, anfon hysbysiadau,
trefnu telegynadleddau, gwneud galwadau llais a fideo. Mae hefyd yn cefnogi nodweddion uwch megis hysbysu teipio, gwerthuso presenoldeb defnyddwyr ar-lein, cadarnhad darllen, hysbysiadau gwthio, chwilio ochr y gweinydd, cydamseru hanes a statws cleient.

Ffynhonnell: opennet.ru

Ychwanegu sylw