Матриц протоколыг хэрэгжүүлсэн харилцаа холбооны сервер болох Dendrite 0.1.0-ийг гаргалаа.

Нийтэлсэн Матриц серверийн хувилбар Дендрит 0.1.0, энэ нь хөгжүүлэлтийн бета туршилтын үе шатанд шилжсэнийг тэмдэглэсэн. Dendrite-ийг төвлөрсөн бус харилцаа холбооны платформ Матрикс хөгжүүлэгчдийн үндсэн баг боловсруулж байгаа бөгөөд хоёр дахь үеийн Matrix серверийн бүрэлдэхүүн хэсгүүдийн хэрэгжилтэд зориулагдсан. Лавлагаа серверээс ялгаатай Synapse, Python дээр бичигдсэн, Dendrite код хөгжиж байна Go хэл дээр. Албан ёсны хоёр хувилбар хоёулаа Apache 2.0 лицензийн дагуу лицензтэй. Төслийн хил хязгаарт Рума Rust хэл дээрх Matrix серверийн хувилбарыг тусад нь боловсруулж байна тараасан MIT лицензийн дагуу.

Шинэ сервер нь өндөр үр ашиг, найдвартай байдал, өргөтгөх чадварыг бий болгоход чиглэгддэг. Дендрит нь Synapse-ээс илүү сайн, ажиллахад мэдэгдэхүйц бага санах ой шаарддаг бөгөөд олон зангилааны ачааллыг тэнцвэржүүлэх замаар масштаблах боломжтой. Dendrite архитектур нь хэвтээ масштабыг дэмждэг бөгөөд бичил үйлчилгээний инстанц бүр мэдээллийн санд өөрийн гэсэн хүснэгттэй байдаг микро үйлчилгээний хэлбэрээр зохицуулагчдыг салгахад суурилдаг. Ачаалал тэнцвэржүүлэгч нь микро үйлчилгээ рүү дуудлага илгээдэг. Код дахь үйлдлүүдийг зэрэгцүүлэхийн тулд бүх CPU цөмүүдийн нөөцийг тусад нь процесс болгон хуваахгүйгээр ашиглах боломжийг олгодог урсгалуудыг (go ruutines) ашигладаг.

Матриц протоколыг хэрэгжүүлсэн харилцаа холбооны сервер болох Dendrite 0.1.0-ийг гаргалаа.

Dendrite нь цул ба полилит гэсэн хоёр горимыг дэмждэг. Монолит горимд бүх микро үйлчилгээнүүд нь нэг гүйцэтгэгдэх файлд багцлагдсан, нэг процессоор хийгдэж, бие биетэйгээ шууд харьцдаг. Олон бүрэлдэхүүн хэсэг (кластер) горимд микро үйлчилгээг тусад нь ажиллуулж болно, үүнд янз бүрийн зангилаагаар тарааж болно. Бүрэлдэхүүн хэсгүүдийн харилцан үйлчлэл
Олон бүрэлдэхүүн хэсгийн горимыг дотоод HTTP API болон платформ ашиглан гүйцэтгэдэг Apache Kafka.

Хөгжүүлэлт нь матрицын протоколын үзүүлэлтүүд дээр тулгуурлан, Synapse-д түгээмэл хэрэглэгддэг хоёр туршилтын багцыг ашиглан хийгддэг. систем болон шинэ багц Нэмэлт. Хөгжлийн одоогийн шатанд Dendrite нь Client-Server API тестийн 56%, Federation API тестийн 77% -ийг давсан бол бодит үйл ажиллагааны хамрах хүрээ нь Client-Server API-д 70%, Federation API-д 95% байна.

Бета туршилтын үе шат нь Dendrite нь эхний ээлжинд хэрэгжиж, үе үе бий болсон шинэ хувилбаруудтай хөгжүүлэлт рүү шилжихэд бэлэн байгааг харуулж байна. Хувилбаруудын хооронд өгөгдлийн сан дахь өгөгдөл хадгалах схем одоо шинэчлэгдэх болно (репозитороос зүсмэлүүдийг суулгахаас ялгаатай нь шинэчлэлтийн дараа мэдээллийн сангийн агуулга алга болохгүй). Буцах нийцтэй байдлыг эвдэж, өгөгдлийн сангийн бүтцийг өөрчилсөн эсвэл тохиргоонд өөрчлөлт оруулах шаардлагатай өөрчлөлтүүдийг зөвхөн томоохон хувилбаруудад санал болгоно. Дендритийг одоогоор PostgreSQL DBMS-тэй хамт жижиг гэрийн сервер болон P2P зангилаа үүсгэхийн тулд цул горимд ашиглахыг зөвлөж байна. Зэрэгцсэн үйлдлүүдтэй холбоотой шийдэгдээгүй асуудлуудын улмаас SQLite ашиглахыг хараахан зөвлөдөггүй.

Dendrite-д хараахан хэрэгжээгүй байгаа функцууд нь мессеж хүлээн авсан баталгаажуулалт, уншсан тэмдэг, түлхэх мэдэгдэл, OpenID, цахим шуудангаар холбох, серверийн хайлт, хэрэглэгчийн лавлах, хэрэглэгчийн үл тоомсорлох жагсаалт, бүлэг болон нийгэмлэг үүсгэх, хэрэглэгчийн онлайн байгаа байдлыг үнэлэх, зочдын оролт, гуравдагч талын сүлжээнүүдтэй харилцах.

Чатын өрөөнүүдийн үндсэн функцууд (үүсгэх, урих, баталгаажуулах дүрэм), өрөөнд оролцогчдыг нэгтгэх хэрэгсэл, офлайнаас буцаж ирсний дараа үйл явдлыг синхрончлох, данс, профайл, залгах заалт, файл татаж авах, байршуулах (Media API), ашиглах боломжтой. мессежийг засварлах, ACL, шошго холбох, төхөөрөмжүүдийн жагсаалт, төгсгөл хүртэлх шифрлэлтийн түлхүүрүүдтэй ажиллах.

Төвлөрсөн бус харилцаа холбоог зохион байгуулах платформ матриц нь HTTPS+JSON-ийг WebSockets эсвэл протокол дээр суурилсан тээврийн хэрэгсэл болгон ашигладаг гэдгийг санацгаая. Зөрүү+дуу чимээ. Энэхүү систем нь хоорондоо харилцан үйлчлэх боломжтой серверүүдийн нэгдэл болж, нэгдсэн төвлөрсөн бус сүлжээнд нэгдсэн. Мессежийн оролцогчид холбогдсон бүх серверт мессежүүд хуулбарлагддаг. Мессежүүд нь Git репозиторууд хооронд дамждагтай адил серверүүдээр дамждаг. Серверийн түр саатал гарсан тохиолдолд мессеж алдагдахгүй, харин серверийн ажиллагааг сэргээсний дараа хэрэглэгчдэд дамжуулдаг. Имэйл, утасны дугаар, фэйсбүүк хаяг гэх мэт янз бүрийн хэрэглэгчийн ID сонголтуудыг дэмждэг.

Сүлжээгээр дамжих ганц цэг эсвэл мессежийн хяналт байхгүй. Хэлэлцүүлэгт хамрагдсан бүх серверүүд хоорондоо тэнцүү байна.
Ямар ч хэрэглэгч өөрийн серверийг ажиллуулж, нийтлэг сүлжээнд холбох боломжтой. Үүнийг бий болгох боломжтой гарцууд Матрицыг бусад протоколууд дээр суурилсан системүүдтэй харилцах, жишээлбэл, бэлтгэсэн IRC, Facebook, Telegram, Skype, Hangouts, Email, WhatsApp болон Slack руу хоёр талын мессеж илгээх үйлчилгээ. Шуурхай мессеж, чатаас гадна системийг файл дамжуулах, мэдэгдэл илгээх,
теле хурал зохион байгуулах, дуут болон видео дуудлага хийх. Энэ нь мөн бичих тухай мэдэгдэл, хэрэглэгчийн онлайн байгааг үнэлэх, уншсан баталгаажуулалт, түлхэх мэдэгдэл, серверийн хайлт, түүх болон үйлчлүүлэгчийн статусыг синхрончлох зэрэг дэвшилтэт функцуудыг дэмждэг.

Эх сурвалж: opennet.ru

сэтгэгдэл нэмэх