Liberazione di Dendrite 0.1.0, un servitore di cumunicazione cù una implementazione di u protocolu Matrix

publicatu Liberazione di u servitore Matrix Dendrite 0.1.0, chì hà marcatu a transizione di u sviluppu à a fase di prova beta. Dendrite hè sviluppatu da u core squadra di sviluppatori di a piattaforma di cumunicazione decentralizata Matrix è hè posizionatu cum'è l'implementazione di a seconda generazione di cumpunenti di u servitore Matrix. A cuntrariu di u servitore di riferimentu Synapse, scrittu in Python, codice Dendrite si sviluppa in lingua Go. E duie implementazioni ufficiali sò licenziate sottu a licenza Apache 2.0. In i cunfini di u prugettu Ruma Una versione di u servitore Matrix in a lingua Rust hè sviluppata separatamente, chì distribuitu da sottu a licenza MIT.

U novu servitore hè destinatu à ottene una alta efficienza, affidabilità è scalabilità. Dendrite supera a Synapse, richiede una memoria significativamente menu per operare, è pò scala per equilibriu di carica in parechji nodi. L'architettura Dendrite supporta a scala horizontale è hè basatu annantu à a separazione di i gestori in a forma di microservizi, induve ogni istanza di microserviziu hà e so tavule in a basa di dati. U bilanciatore di carica spedisce e chjama à i microservizi. Per parallelizà l'operazioni in u codice, i filamenti (vai rutini) sò usati, chì permettenu di utilizà i risorsi di tutti i core di CPU senza dividisce in prucessi separati.

Liberazione di Dendrite 0.1.0, un servitore di cumunicazione cù una implementazione di u protocolu Matrix

Dendrite sustene dui modi: monoliticu è poliliticu. In modu monoliticu, tutti i microservizi sò imballati in un unicu schedariu eseguibile, eseguitu in un unicu prucessu, è interagisce direttamente cù l'altri. In u modu multi-cumpunente (cluster), i microservizi ponu esse lanciati separatamente, ancu distribuiti in diversi nodi. Interazione di cumpunenti in
U modu multi-componente hè realizatu utilizendu l'API è a piattaforma HTTP interna Apache Kafka.

U sviluppu hè realizatu basatu annantu à e specificazioni di u protokollu Matrix è utilizendu duie suite di teste - testi cumuni à Synapse sytest è un novu set Cumplementu. In u stadiu attuale di u sviluppu, Dendrite passa u 56% di e teste API Client-Server è u 77% di e teste API di a Federazione, mentre chì a copertura di funziunalità attuale hè stimata à 70% per l'API Client-Server è 95% per l'API Federazione.

A fase di prova beta indica chì Dendrite hè pronta per l'implementazione iniziale è a transizione à u sviluppu cù novi versioni formate periodicamente. Trà e versioni, u schema di almacenamiento di dati in a basa di dati serà avà aghjurnatu (a cuntrariu di l'installazione di fette da u repository, u cuntenutu di a basa di dati ùn serà micca persu dopu l'aghjurnamentu). I cambiamenti chì rompenu a cumpatibilità inversa, cambianu a struttura di a basa di dati, o necessitanu cambiamenti di cunfigurazione seranu offerti solu in versioni maiò. Dendrite hè attualmente cunsigliatu per esse usatu in modu monoliticu in cunghjunzione cù u DBMS PostgreSQL per creà picculi servitori di casa è nodi P2P. L'usu di SQLite ùn hè micca cunsigliatu per via di prublemi senza risolve cù a gestione di operazioni simultanee.

E caratteristiche chì ùn sò micca state implementate in Dendrite includenu cunferma di ricevuta di messagiu, marche di lettura, notificazioni push, OpenID, associazione di e-mail, ricerca à u latu di u servitore, repertoriu di l'utilizatori, liste di ignorare l'utilizatori, creazione di gruppi è cumunità, valutà a presenza in linea di l'utilizatori, input di l'ospiti, interazzione cù e rete di terze parti.

Sò dispunibuli per l'usu sò funziunalità di basa per i chat room (creazione, inviti, regule d'autentificazione), i mezi di federazione di i participanti in stanze, a sincronizazione di l'avvenimenti dopu à u ritornu da offline, cunti, profili, indicazione di marcatura, scaricamentu è caricamentu di fugliali (Media API), edizione di missaghji, ACL, tag binding è travaglià cù listi di dispusitivi è chjave per a criptografia end-to-end.

Ricurdemu chì a piattaforma per l'urganizazione di cumunicazioni descentralizate Matrix usa HTTPS + JSON cum'è trasportu cù a capacità di utilizà WebSockets o un protokollu basatu CoAP+Noise. U sistema hè furmatu cum'è una cumunità di servitori chì ponu interagisce cù l'altri è sò uniti in una reta cumuna decentralizata. I missaghji sò replicati in tutti i servitori à i quali i participanti di messageria sò cunnessi. I missaghji sò propagati à traversu i servitori in u listessu modu chì i commits sò propagati trà i repositori Git. In l'eventuali di una interrupzione temporale di u servitore, i missaghji ùn sò micca persi, ma sò trasmessi à l'utilizatori dopu chì u servitore ripiglià u funziunamentu. Diverse opzioni di ID d'utilizatore sò supportate, cumprese email, numeru di telefunu, contu Facebook, etc.

Ùn ci hè micca un puntu unicu di fallimentu o cuntrollu di missaghju in tutta a reta. Tutti i servitori coperti da a discussione sò uguali à l'altri.
Ogni utilizatore pò eseguisce u so servitore è cunnette à una reta cumuna. Hè pussibule di creà gateways per l'interazzione di Matrix cù sistemi basati nantu à altri protokolli, per esempiu, preparatu servizii per l'invio bidirezionale di missaghji à IRC, Facebook, Telegram, Skype, Hangouts, Email, WhatsApp è Slack. In più di i missaghji di testu instantani è chats, u sistema pò esse usatu per trasfiriri fugliali, mandà notificazioni,
l'urganizazione di teleconferenze, fà e chjama di voce è video. Supporta ancu funzioni avanzate cum'è a notificazione di digitazione, valutazione di a presenza in linea di l'utilizatori, cunferma di lettura, notificazioni push, ricerca di u servitore, sincronizazione di a storia è u statutu di u cliente.

Source: opennet.ru

Add a comment