Dendrite 0.1.0, Matrix-protokollaa toteuttavan viestintäpalvelimen julkaisu

julkaistu Matrix-palvelimen julkaisu Dendriitti 0.1.0, joka merkitsi kehityksen siirtymistä betatestausvaiheeseen. Dendriteä kehittää hajautetun viestintäalustan Matrixin kehittäjien ydinryhmä, ja se on sijoitettu Matrixin toisen sukupolven palvelinkomponenttien toteuttajaksi. Toisin kuin viitepalvelin Synapse, kirjoitettu Pythonilla, koodi Dendrite on kehittymässä Go-kielellä. Molemmat viralliset toteutukset on lisensoitu Apache 2.0 -lisenssillä. Projektin rajoissa Ruma Matrix-palvelimesta kehitetään erikseen Rust-kielinen versio, joka jakelija MIT-lisenssillä.

Uuden palvelimen tavoitteena on korkea tehokkuus, luotettavuus ja skaalautuvuus. Dendriitti toimii paremmin kuin Synapse, vaatii huomattavasti vähemmän muistia toimiakseen ja voi skaalata kuormituksen tasapainottamisen kautta useiden solmujen välillä. Dendrite-arkkitehtuuri tukee vaakasuuntaista skaalausta ja perustuu käsittelijöiden erottamiseen mikropalveluiden muodossa, jossa jokaisella mikropalveluinstanssilla on omat taulukonsa tietokannassa. Kuormantasaaja lähettää puhelut mikropalveluihin. Toimintojen rinnastamiseksi koodissa käytetään säikeitä (go-rutiineja), joiden avulla voit käyttää kaikkien CPU-ytimien resursseja jakamatta niitä erillisiin prosesseihin.

Dendrite 0.1.0, Matrix-protokollaa toteuttavan viestintäpalvelimen julkaisu

Dendriitti tukee kahta tilaa: monoliitti ja polyliitti. Monoliittisessa tilassa kaikki mikropalvelut pakataan yhteen suoritettavaan tiedostoon, suoritetaan yhdessä prosessissa ja ovat suoraan vuorovaikutuksessa toistensa kanssa. Monikomponenttitilassa (klusteritilassa) mikropalvelut voidaan käynnistää erikseen, mukaan lukien hajautettuina eri solmuille. Komponenttien vuorovaikutus sisällä
monikomponenttitila suoritetaan sisäisen HTTP API:n ja alustan avulla Apache Kafka.

Kehitys tapahtuu Matrix-protokollan spesifikaatioiden perusteella ja käyttämällä kahta testisarjaa - Synapselle yhteisiä testejä sytest ja uusi setti Täydentää. Nykyisessä kehitysvaiheessa Dendrite läpäisee 56 % Client-Server API -testeistä ja 77 % Federation API -testeistä, kun taas todellisen toiminnallisuuden kattavuuden arvioidaan olevan 70 % Client-Server API:ssa ja 95 % Federation API:ssa.

Beta-testausvaihe osoittaa, että Dendrite on valmis ensimmäiseen käyttöönottoon ja siirtymiseen kehitysvaiheeseen uusien julkaisujen kanssa. Julkaisujen välillä tietokannan tallennusmalli päivitetään nyt (toisin kuin arkistosta osia asennettaessa, tietokannan sisältö ei katoa päivityksen jälkeen). Muutoksia, jotka rikkovat taaksepäin yhteensopivuuden, muuttavat tietokannan rakennetta tai edellyttävät kokoonpanomuutoksia, tarjotaan vain suurissa julkaisuissa. Dendriittiä suositellaan tällä hetkellä käytettäväksi monoliittisessa tilassa yhdessä PostgreSQL DBMS:n kanssa pienten kotipalvelimien ja P2P-solmujen luomiseksi. SQLiten käyttöä ei vielä suositella, koska samanaikaisten toimintojen käsittelyssä on ratkaisemattomia ongelmia.

Ominaisuuksia, joita ei ole vielä otettu käyttöön Dendritessä, ovat viestien vastaanottamisen vahvistukset, lukumerkit, push-ilmoitukset, OpenID, sähköpostin sidonta, palvelinpuolen haku, käyttäjähakemisto, käyttäjien ohituslistat, ryhmien ja yhteisöjen luominen, käyttäjien online-läsnäolon arviointi, vieraiden syötteet, vuorovaikutus kolmannen osapuolen verkkojen kanssa.

Käytettävissä ovat chat-huoneiden perustoiminnot (luominen, kutsut, todennussäännöt), välineet osallistujien yhdistämiseen huoneissa, tapahtumien synkronointi offline-tilasta palaamisen jälkeen, tilit, profiilit, numeron osoitus, tiedostojen lataaminen ja lataaminen (Media API), viestien muokkaaminen, ACL-luettelot, tunnisteiden sidonta ja laite- ja avainten luetteloiden käsittely päästä päähän -salausta varten.

Muistetaan, että hajautetun viestinnän organisointialusta Matrix käyttää HTTPS+JSON-siirtona, jossa on mahdollisuus käyttää WebSocketsia tai siihen perustuvaa protokollaa. COAP+Melu. Järjestelmä on muodostettu palvelimien yhteisöksi, jotka voivat olla vuorovaikutuksessa keskenään ja jotka on yhdistetty yhteiseksi hajautettuun verkkoon. Viestit replikoidaan kaikissa palvelimissa, joihin viestien osallistujat ovat yhteydessä. Viestit välitetään palvelimien välillä samalla tavalla kuin sitoumukset Git-varastojen välillä. Väliaikaisen palvelinkatkon sattuessa viestit eivät katoa, vaan ne välitetään käyttäjille, kun palvelin jatkaa toimintaansa. Useita käyttäjätunnusvaihtoehtoja tuetaan, mukaan lukien sähköposti, puhelinnumero, Facebook-tili jne.

Verkossa ei ole yhtä vikakohtaa tai viestien hallintaa. Kaikki keskustelun piiriin kuuluvat palvelimet ovat keskenään samanarvoisia.
Jokainen käyttäjä voi käyttää omaa palvelintaan ja yhdistää sen yhteiseen verkkoon. On mahdollista luoda yhdyskäytäviä Matrixin vuorovaikutukseen muihin protokolliin perustuvien järjestelmien kanssa, esim. valmis Palvelut kaksisuuntaiseen viestien lähettämiseen IRC:hen, Facebookiin, Telegramiin, Skypeen, Hangoutsiin, sähköpostiin, WhatsAppiin ja Slackiin. Pikaviestien ja chatin lisäksi järjestelmää voidaan käyttää tiedostojen siirtämiseen, ilmoitusten lähettämiseen,
puhelinkonferenssien järjestäminen, ääni- ja videopuheluiden soittaminen. Se tukee myös sellaisia ​​edistyneitä ominaisuuksia, kuten ilmoitus kirjoittamisesta, käyttäjän online-läsnäolon arviointi, lukuvahvistus, push-ilmoitukset, palvelinpuolen haku, historian ja asiakkaan tilan synkronointi.

Lähde: opennet.ru

Lisää kommentti