Sakaru servera Dendrite 0.1.0 izlaišana ar Matrix protokola ieviešanu

publicēts Matrix servera izlaišana Dendrīts 0.1.0, kas iezīmēja izstrādes pāreju uz beta testēšanas stadiju. Dendritu izstrādā decentralizētās komunikācijas platformas Matrix izstrādātāju galvenā komanda, un tas ir pozicionēts kā otrās paaudzes Matrix servera komponentu ieviešana. Atšķirībā no atsauces servera Sinapses, rakstīts Python, kods Dendrite attīstās Go valodā. Abas oficiālās ieviešanas ir licencētas saskaņā ar Apache 2.0 licenci. Projekta robežās Ruma Atsevišķi tiek izstrādāta Matrix servera versija Rust valodā, kas izplata saskaņā ar MIT licenci.

Jaunā servera mērķis ir sasniegt augstu efektivitāti, uzticamību un mērogojamību. Dendrīts pārspēj Synapse, tā darbībai ir nepieciešams ievērojami mazāk atmiņas, un to var mērogot, izmantojot slodzes līdzsvarošanu vairākos mezglos. Dendrite arhitektūra atbalsta horizontālo mērogošanu un ir balstīta uz apdarinātāju atdalīšanu mikropakalpojumu veidā, kur katrai mikropakalpojuma instancei datu bāzē ir savas tabulas. Slodzes balansētājs nosūta zvanus uz mikropakalpojumiem. Lai paralēli darbotos kodā, tiek izmantoti pavedieni (go rutines), kas ļauj izmantot visu CPU kodolu resursus, nesadalot tos atsevišķos procesos.

Sakaru servera Dendrite 0.1.0 izlaišana ar Matrix protokola ieviešanu

Dendrīts atbalsta divus režīmus: monolītu un polilītu. Monolītā režīmā visi mikropakalpojumi ir iepakoti vienā izpildāmā failā, tiek izpildīti vienā procesā un tiešā veidā mijiedarbojas viens ar otru. Daudzkomponentu (klasteru) režīmā mikropakalpojumus var palaist atsevišķi, tostarp sadalīt dažādos mezglos. Komponentu mijiedarbība iekšā
daudzkomponentu režīms tiek veikts, izmantojot iekšējo HTTP API un platformu Apache Kafka.

Izstrāde tiek veikta, pamatojoties uz Matrix protokola specifikācijām un izmantojot divus testu komplektus - testus, kas ir kopīgi Synapse sytest un jauns komplekts Papildinājums. Pašreizējā izstrādes stadijā Dendrite iztur 56% klienta-servera API testu un 77% Federācijas API testu, savukārt faktiskais funkcionalitātes pārklājums tiek lēsts 70% klienta-servera API un 95% Federācijas API.

Beta testēšanas posms norāda, ka Dendrite ir gatavs sākotnējai ieviešanai un pārejai uz izstrādi, periodiski veidojot jaunas versijas. Starp izlaidumiem datu glabāšanas shēma datu bāzē tagad tiks atjaunināta (atšķirībā no slāņu instalēšanas no repozitorija, datu bāzes saturs pēc atjaunināšanas netiks zaudēts). Izmaiņas, kas traucē atpakaļejošu saderību, maina datu bāzes struktūru vai prasa izmaiņas konfigurācijā, tiks piedāvātas tikai galvenajos laidienos. Dendrītu pašlaik ieteicams izmantot monolītā režīmā kopā ar PostgreSQL DBVS, lai izveidotu mazus mājas serverus un P2P mezglus. SQLite lietošana vēl nav ieteicama, jo nav atrisinātas problēmas ar vienlaicīgu darbību apstrādi.

Funkcijas, kas vēl nav ieviestas pakalpojumā Dendrite, ietver ziņojumu saņemšanas apstiprinājumus, lasīšanas atzīmes, push paziņojumus, OpenID, e-pasta saistīšanu, servera puses meklēšanu, lietotāju direktoriju, lietotāju ignorēšanas sarakstus, grupu un kopienu izveidi, lietotāju tiešsaistes klātbūtnes novērtēšanu, viesu ievades, mijiedarbība ar trešo pušu tīkliem.

Lietošanai ir pieejamas tērzēšanas istabu pamata funkcionalitātes (izveide, uzaicinājumi, autentifikācijas noteikumi), dalībnieku apvienošanas līdzekļi telpās, notikumu sinhronizācija pēc atgriešanās no bezsaistes, konti, profili, numura sastādīšanas indikācija, failu lejupielāde un augšupielāde (Media API), ziņojumu rediģēšana, ACL, tagu saistīšana un darbs ar ierīču un atslēgu sarakstiem pilnīgai šifrēšanai.

Atgādināsim, ka platforma decentralizētu sakaru organizēšanai Matrix izmanto HTTPS+JSON kā transportu ar iespēju izmantot WebSockets vai protokolu, kura pamatā ir CoAP+Troksnis. Sistēma tiek veidota kā serveru kopiena, kas var mijiedarboties savā starpā un ir apvienoti kopējā decentralizētā tīklā. Ziņojumi tiek replicēti visos serveros, ar kuriem ir savienoti ziņojumapmaiņas dalībnieki. Ziņojumi tiek izplatīti starp serveriem tādā pašā veidā, kā saistības tiek izplatītas starp Git krātuvēm. Īslaicīga servera darbības pārtraukuma gadījumā ziņojumi netiek zaudēti, bet tiek nosūtīti lietotājiem pēc servera darbības atsākšanas. Tiek atbalstītas dažādas lietotāja ID iespējas, tostarp e-pasts, tālruņa numurs, Facebook konts utt.

Visā tīklā nav neviena atteices punkta vai ziņojumu kontroles. Visi serveri, uz kuriem attiecas diskusija, ir līdzvērtīgi viens otram.
Jebkurš lietotājs var palaist savu serveri un savienot to ar kopēju tīklu. Ir iespējams izveidot vārtejas Matrix mijiedarbībai ar sistēmām, kuru pamatā ir citi protokoli, piemēram, sagatavots pakalpojumi divvirzienu ziņojumu sūtīšanai uz IRC, Facebook, Telegram, Skype, Hangouts, e-pastu, WhatsApp un Slack. Papildus tūlītējai teksta ziņojumapmaiņai un tērzēšanai sistēmu var izmantot, lai pārsūtītu failus, nosūtītu paziņojumus,
telekonferenču organizēšana, balss un video zvanu veikšana. Tā atbalsta arī tādas uzlabotas funkcijas kā paziņošana par rakstīšanu, lietotāja tiešsaistes klātbūtnes novērtēšana, lasīšanas apstiprinājums, push paziņojumi, servera puses meklēšana, vēstures un klienta statusa sinhronizācija.

Avots: opennet.ru

Pievieno komentāru