Megjelent a Dendrite 0.1.0, egy kommunikációs szerver a Matrix protokoll megvalósításával

közzétett Matrix szerver kiadás Dendrit 0.1.0, amely a fejlesztés átmenetét jelentette a béta tesztelési szakaszba. A Dendrite-t a Matrix decentralizált kommunikációs platform fejlesztőinek fő csapata fejleszti, és a Matrix szerverkomponensek második generációjának megvalósításaként van pozicionálva. Ellentétben a referencia szerverrel Szinapszis, Python nyelven írva, kód Dendrite fejlődik Go nyelven. Mindkét hivatalos megvalósítás az Apache 2.0 licenc alatt van. A projekt határain belül Ruma A Matrix szerver Rust nyelvű változata külön fejlesztés alatt áll, amely forgalmazza az MIT engedélye alapján.

Az új szerver célja a nagy hatékonyság, megbízhatóság és skálázhatóság elérése. A dendrit teljesítménye felülmúlja a Synapse-t, működéséhez lényegesen kevesebb memóriára van szükség, és a terheléselosztás révén több csomóponton is méretezhető. A Dendrite architektúra támogatja a vízszintes skálázást, és a kezelők mikroszolgáltatások formájában történő szétválasztásán alapul, ahol minden mikroszolgáltatás-példánynak saját táblája van az adatbázisban. A terheléselosztó hívásokat küld a mikroszolgáltatásokhoz. A kódban a műveletek párhuzamosításához szálakat (go rutinokat) használnak, amelyek lehetővé teszik az összes CPU mag erőforrásainak használatát anélkül, hogy azokat külön folyamatokra osztanák fel.

Megjelent a Dendrite 0.1.0, egy kommunikációs szerver a Matrix protokoll megvalósításával

A dendrit két módot támogat: monolit és polilit. Monolit módban az összes mikroszolgáltatás egyetlen végrehajtható fájlba van csomagolva, egyetlen folyamatban hajtják végre, és közvetlenül kommunikálnak egymással. Többkomponensű (fürt) módban a mikroszolgáltatások külön-külön indíthatók, beleértve a különböző csomópontok között elosztva. A komponensek kölcsönhatása
A többkomponensű mód a belső HTTP API és platform segítségével történik Apache Kafka.

A fejlesztés a Matrix protokoll specifikációi alapján és két tesztcsomag felhasználásával történik - a Synapse közös tesztjei sytest és egy új készlet Kiegészítés. A fejlesztés jelenlegi szakaszában a Dendrite a Client-Server API-tesztek 56%-án és az Összevonási API-tesztek 77%-án megfelel, míg a tényleges funkcionalitás lefedettsége a Client-Server API esetében 70%, az összevonási API esetében pedig 95%-os.

A béta tesztelési szakasz azt jelzi, hogy a Dendrite készen áll a kezdeti megvalósításra és a fejlesztésre való átállásra, rendszeresen megjelenő új kiadásokkal. A kiadások között most frissül az adatbázisban lévő adattárolási séma (ellentétben a szeletek telepítésével a repositoryból, az adatbázis tartalma a frissítés után nem vész el). A visszamenőleges kompatibilitást megsértő, az adatbázis szerkezetét módosító vagy konfigurációs változtatásokat igénylő változtatások csak a főbb kiadásokban lesznek felajánlva. A Dendritet jelenleg monolitikus módban ajánljuk a PostgreSQL DBMS-sel együtt, kis otthoni szerverek és P2P csomópontok létrehozásához. Az SQLite használata még nem javasolt az egyidejű műveletek kezelésével kapcsolatos megoldatlan problémák miatt.

A Dendrite-ben még nem implementált funkciók közé tartozik az üzenetek fogadásának visszaigazolása, olvasási jelzések, push értesítések, OpenID, e-mail-összerendelés, szerveroldali keresés, felhasználói címtár, felhasználói mellőzési listák, csoportok és közösségek létrehozása, a felhasználók online jelenlétének értékelése, vendégbevitel, interakció harmadik felek hálózataival.

Használhatóak a chatszobák alapvető funkciói (létrehozás, meghívások, hitelesítési szabályok), a résztvevők összevonásának módjai a szobákban, az események szinkronizálása offline állapotból való visszatérés után, fiókok, profilok, tárcsázás jelzése, fájlok letöltése és feltöltése (Media API), üzenetek, ACL-ek szerkesztése, címke-kötés, valamint eszközlisták és kulcsok kezelése a végpontok közötti titkosításhoz.

Emlékezzünk vissza, hogy a Matrix a decentralizált kommunikáció megszervezésének platformja a HTTPS+JSON-t használja átvitelként, amely képes WebSockets vagy azokon alapuló protokoll használatára. CoAP+Zaj. A rendszer olyan szerverek közösségeként jön létre, amelyek képesek egymással kölcsönhatásba lépni, és egy közös decentralizált hálózatba egyesülnek. Az üzenetek replikálódnak minden olyan szerveren, amelyhez az üzenetküldő résztvevők csatlakoznak. Az üzenetek terjesztése a szerverek között ugyanúgy történik, mint a véglegesítések a Git-tárolók között. Ideiglenes szerverleállás esetén az üzenetek nem vesznek el, hanem a szerver működésének újraindulása után továbbítják a felhasználókhoz. Különféle felhasználói azonosító opciók támogatottak, beleértve az e-mail-címet, telefonszámot, Facebook-fiókot stb.

A hálózaton nincs egyetlen hibapont vagy üzenetvezérlés. A vita tárgyát képező összes szerver egyenlő egymással.
Bármely felhasználó futtathatja saját szerverét és csatlakoztathatja azt egy közös hálózathoz. Alkotni lehet átjárók a Matrix interakciójához más protokollokon alapuló rendszerekkel, pl. előkészített szolgáltatások kétirányú üzenetküldéshez IRC, Facebook, Telegram, Skype, Hangouts, e-mail, WhatsApp és Slack felé. A rendszer az azonnali szöveges üzenetküldés és chat mellett fájlok átvitelére, értesítések küldésére,
telekonferenciák szervezése, hang- és videohívások lebonyolítása. Olyan fejlett funkciókat is támogat, mint a gépelésről szóló értesítés, a felhasználó online jelenlétének értékelése, az olvasás megerősítése, a push értesítések, a szerveroldali keresés, az előzmények és a kliens állapot szinkronizálása.

Forrás: opennet.ru

Hozzászólás