Utgivelse av Dendrite 0.1.0, en kommunikasjonsserver med implementering av Matrix-protokollen

publisert Matrix server utgivelse Dendrit 0.1.0, som markerte overgangen til utviklingen til beta-teststadiet. Dendrite utvikles av kjerneteamet av utviklere av den desentraliserte kommunikasjonsplattformen Matrix og er posisjonert som implementeringen av andre generasjons Matrix-serverkomponenter. I motsetning til referanseserveren Synapse, skrevet i Python, kode Dendrite utvikler seg på Go-språket. Begge offisielle implementeringer er lisensiert under Apache 2.0-lisensen. I prosjektets grenser Ruma En versjon av Matrix-serveren på Rust-språket utvikles separat, som distribuert av under MIT-lisensen.

Den nye serveren er rettet mot å oppnå høy effektivitet, pålitelighet og skalerbarhet. Dendrite overgår Synapse, krever betydelig mindre minne for å fungere, og kan skaleres gjennom belastningsbalansering på tvers av flere noder. Dendrite-arkitekturen støtter horisontal skalering og er basert på separasjon av behandlere i form av mikrotjenester, hvor hver mikrotjenesteinstans har sine egne tabeller i databasen. Lastbalanseren sender anrop til mikrotjenester. For å parallellisere operasjoner i koden, brukes tråder (go-rutiner), som lar deg bruke ressursene til alle CPU-kjerner uten å dele dem inn i separate prosesser.

Utgivelse av Dendrite 0.1.0, en kommunikasjonsserver med implementering av Matrix-protokollen

Dendrite støtter to moduser: monolittisk og polylitt. I monolitisk modus er alle mikrotjenester pakket i en enkelt kjørbar fil, utført i en enkelt prosess og samhandler direkte med hverandre. I multi-komponent (cluster) modus kan mikrotjenester lanseres separat, inkludert distribuert på tvers av forskjellige noder. Samspill mellom komponenter i
multi-komponent modus utføres ved hjelp av den interne HTTP API og plattform Apache Kafka.

Utviklingen utføres basert på Matrix-protokollspesifikasjonene og ved hjelp av to testsuiter - tester felles for Synapse system og et nytt sett Kompletter. På det nåværende utviklingsstadiet består Dendrite 56 % av Client-Server API-tester og 77 % av Federation API-tester, mens faktisk funksjonalitetsdekning er estimert til 70 % for Client-Server API og 95 % for Federation API.

Beta-teststadiet indikerer at Dendrite er klar for innledende implementering og overgang til utvikling med nye utgivelser med jevne mellomrom. Mellom utgivelsene vil datalagringsskjemaet i databasen nå bli oppdatert (i motsetning til å installere skiver fra depotet, vil ikke innholdet i databasen gå tapt etter oppdateringen). Endringer som bryter bakoverkompatibilitet, endrer databasestrukturen eller krever konfigurasjonsendringer, tilbys kun i større utgivelser. Dendrite anbefales for øyeblikket å brukes i monolitisk modus i forbindelse med PostgreSQL DBMS for å lage små hjemmeservere og P2P-noder. Bruk av SQLite anbefales ennå ikke på grunn av uløste problemer med håndtering av samtidige operasjoner.

Funksjoner som ennå ikke er implementert i Dendrite inkluderer bekreftelse av meldingskvittering, lesemerker, push-varslinger, OpenID, e-postbinding, søk på serversiden, brukerkatalog, bruker ignoreringslister, opprette grupper og fellesskap, vurdering av brukernes tilstedeværelse på nettet, gjesteinndata, interaksjon med tredjepartsnettverk.

Tilgjengelig for bruk er grunnleggende funksjonalitet for chatterom (oppretting, invitasjoner, autentiseringsregler), midler for sammenslutning av deltakere i rom, synkronisering av hendelser etter retur fra offline, kontoer, profiler, oppringningsindikasjon, nedlasting og opplasting av filer (Media API), redigering av meldinger, tilgangskontrollister, tagbinding og arbeid med lister over enheter og nøkler for ende-til-ende-kryptering.

La oss huske at plattformen for organisering av desentralisert kommunikasjon Matrix bruker HTTPS+JSON som en transport med mulighet for å bruke WebSockets eller en protokoll basert på CoAP+Bråk. Systemet er dannet som et fellesskap av servere som kan samhandle med hverandre og forenes til et felles desentralisert nettverk. Meldinger blir replikert på tvers av alle servere som meldingsdeltakerne er koblet til. Meldinger spres på tvers av servere på samme måte som commits spres mellom Git-lagre. Ved et midlertidig serverbrudd går ikke meldinger tapt, men blir overført til brukere etter at serveren gjenopptar driften. Ulike bruker-ID-alternativer støttes, inkludert e-post, telefonnummer, Facebook-konto, etc.

Det er ikke noe enkelt punkt for feil eller meldingskontroll over nettverket. Alle servere som dekkes av diskusjonen er likeverdige med hverandre.
Enhver bruker kan kjøre sin egen server og koble den til et felles nettverk. Det er mulig å lage gatewayer for interaksjon av Matrix med systemer basert på andre protokoller, for eksempel, forberedt tjenester for toveis sending av meldinger til IRC, Facebook, Telegram, Skype, Hangouts, e-post, WhatsApp og Slack. I tillegg til direktemeldinger og chatter, kan systemet brukes til å overføre filer, sende varsler,
organisering av telefonkonferanser, foreta tale- og videosamtaler. Den støtter også avanserte funksjoner som varsling om skriving, evaluering av brukerens online tilstedeværelse, lesebekreftelse, push-varslinger, søk på serversiden, synkronisering av historikk og klientstatus.

Kilde: opennet.ru

Legg til en kommentar