Dendrite เซิร์ฟเวอร์การสื่อสารที่ใช้โปรโตคอล Matrix

Dendrite เป็นเซิร์ฟเวอร์การสื่อสาร ที่เป็นอยู่ พัฒนาโดยทีม Matrix และอยู่ในตำแหน่งที่เป็นการใช้ส่วนประกอบเซิร์ฟเวอร์ Matrix รุ่นที่สอง

ไม่เหมือนกับเซิร์ฟเวอร์อ้างอิง Synapse ที่เขียนด้วย Python โค้ด Dendrite ได้รับการพัฒนาใน Go การใช้งานอย่างเป็นทางการทั้งสองได้รับการแจกจ่ายภายใต้ใบอนุญาต Apache 2.0

ในฐานะส่วนหนึ่งของโครงการ Ruma เซิร์ฟเวอร์ Matrix เวอร์ชันแยกต่างหากในภาษา Rust กำลังได้รับการพัฒนาซึ่งแจกจ่ายภายใต้ใบอนุญาต MIT

เซิร์ฟเวอร์ใหม่ มีจุดมุ่งหมายเพื่อให้ได้ประสิทธิภาพสูงเชื่อถือได้และสามารถปรับขนาดได้

เกี่ยวกับ Dendrite

Dendrite นำหน้าไซแนปส์ในแง่ของประสิทธิภาพ ต้องใช้หน่วยความจำน้อยกว่ามากในการทำงานและสามารถปรับขนาดได้โดยการโหลดบาลานซ์ในหลายโหนด

สถาปัตยกรรม Dendrite รองรับการปรับขนาดแนวนอนและขึ้นอยู่กับการแยกตัวควบคุมในรูปแบบของไมโครเซอร์วิส โดยที่แต่ละอินสแตนซ์ของไมโครเซอร์วิสมีตารางของตัวเองในฐานข้อมูล

ตัวจัดสรรภาระงานมีหน้าที่ในการส่งการโทรไปยังไมโครเซอร์วิส เธรด (go รูทีน) ใช้เพื่อขนานการดำเนินการในโค้ดซึ่งอนุญาตให้ใช้ทรัพยากรของแกน CPU ทั้งหมดโดยไม่แบ่งออกเป็นกระบวนการแยกกัน

Dendrite รองรับการทำงานในสองโหมด: เสาหินและหลายองค์ประกอบ (โพลิลิ ธ ).

  • ในโหมดเสาหิน ไมโครเซอร์วิสทั้งหมดเชื่อมโยงกันในไฟล์ปฏิบัติการรันในกระบวนการและโต้ตอบกันโดยตรง
  • ในโหมดหลายองค์ประกอบ (คลัสเตอร์) ไมโครเซอร์วิสสามารถเปิดใช้งานแยกกันได้แม้จะมีความหลากหลายในโหนดที่แตกต่างกัน การโต้ตอบคอมโพเนนต์ในโหมดหลายองค์ประกอบดำเนินการโดยใช้ HTTP API ภายในและแพลตฟอร์ม Apache Kafka

การพัฒนาดำเนินการตามข้อกำหนดของโปรโตคอล Matrix และใช้การทดสอบสองชุด ได้แก่ การทดสอบ sytest ทั่วไปกับ Synapse และชุดเสริมใหม่

ในขั้นตอนของการพัฒนาปัจจุบัน Dendrite ผ่านการทดสอบ 56% ของไคลเอนต์เซิร์ฟเวอร์ API และ 77% ของการทดสอบ API แบบรวมในขณะที่ความครอบคลุมของฟังก์ชันการทำงานจริงประมาณ 70% สำหรับไคลเอนต์เซิร์ฟเวอร์ API และ 95% สำหรับ federation API

ขั้นตอนเบต้าบ่งชี้ว่า Dendrite พร้อมสำหรับการปรับใช้ครั้งแรก และการเปลี่ยนไปสู่การพัฒนาด้วยการออกใหม่เป็นประจำ ระหว่างรีลีสสคีมาหน่วยเก็บฐานข้อมูลจะได้รับการอัปเดต (ไม่เหมือนกับการติดตั้งชิ้นส่วนจากที่เก็บหลังจากการอัปเดตเนื้อหาของฐานข้อมูลจะไม่สูญหาย)

การเปลี่ยนแปลงที่ทำลายความเข้ากันได้ย้อนหลังเปลี่ยนโครงสร้างฐานข้อมูลหรือต้องการการเปลี่ยนแปลงการกำหนดค่าจะมีให้เฉพาะในรุ่นหลักเท่านั้น

ในขณะนี้ ขอแนะนำให้ใช้ Dendrite ในโหมดเสาหินร่วมกับ PostgreSQL DBMS เพื่อสร้างโฮมเซิร์ฟเวอร์ขนาดเล็กและโหนด P2P ยังไม่แนะนำให้ใช้ SQLite เนื่องจากปัญหาที่ยังไม่ได้รับการแก้ไขเกี่ยวกับการจัดการการดำเนินการพร้อมกัน

ฟีเจอร์ยังไม่ได้ใช้งาน ในเดนไดรต์ พวกเขารวมถึง: การรับทราบข้อความ, บุ๊กมาร์ก, การแจ้งเตือนแบบพุช, OpenID, ลิงก์อีเมล, การค้นหาฝั่งเซิร์ฟเวอร์, ไดเร็กทอรีผู้ใช้, รายการละเว้นของผู้ใช้, การสร้างกลุ่มและชุมชน, การประเมินสถานะออนไลน์ของผู้ใช้, อินพุตจากแขก, การโต้ตอบกับเครือข่ายบุคคลที่สาม

ฟังก์ชั่นพื้นฐานสำหรับการทำงานของห้องสนทนา (การสร้างคำเชิญกฎการตรวจสอบสิทธิ์) วิธีการรวมกลุ่มของผู้เข้าร่วมในห้องการซิงโครไนซ์เหตุการณ์หลังจากกลับจากออฟไลน์บัญชีโปรไฟล์การระบุการหมุนดาวน์โหลดและอัปโหลดไฟล์การแก้ไข (Media API) มีให้สำหรับข้อความที่ใช้งาน ACL การแท็กและอุปกรณ์เข้ารหัสจากต้นทางถึงปลายทางและรายการคีย์

จำไว้ว่า แพลตฟอร์มสำหรับจัดระเบียบการสื่อสารแบบกระจายอำนาจ Matrix ใช้ HTTPS + JSON เป็นการขนส่งที่มีความสามารถในการใช้ WebSockets หรือโปรโตคอลที่ใช้ CoAP + Noise ระบบถูกสร้างขึ้นเป็นชุมชนของเซิร์ฟเวอร์ที่สามารถโต้ตอบซึ่งกันและกันและรวมอยู่ในเครือข่ายการกระจายอำนาจทั่วไป

ข้อความถูกจำลองแบบในเซิร์ฟเวอร์ทั้งหมด ที่เชื่อมต่อกับผู้เข้าร่วมการส่งข้อความ ข้อความจะแพร่กระจายระหว่างเซิร์ฟเวอร์ในลักษณะเดียวกันกับวิธีการกระจายคอมมิตระหว่างที่เก็บ Git

Fuente: https://matrix.org


แสดงความคิดเห็นของคุณ

อีเมล์ของคุณจะไม่ถูกเผยแพร่ ช่องที่ต้องการถูกทำเครื่องหมายด้วย *

*

*

  1. ผู้รับผิดชอบข้อมูล: Miguel ÁngelGatón
  2. วัตถุประสงค์ของข้อมูล: ควบคุมสแปมการจัดการความคิดเห็น
  3. ถูกต้องตามกฎหมาย: ความยินยอมของคุณ
  4. การสื่อสารข้อมูล: ข้อมูลจะไม่ถูกสื่อสารไปยังบุคคลที่สามยกเว้นตามข้อผูกพันทางกฎหมาย
  5. การจัดเก็บข้อมูล: ฐานข้อมูลที่โฮสต์โดย Occentus Networks (EU)
  6. สิทธิ์: คุณสามารถ จำกัด กู้คืนและลบข้อมูลของคุณได้ตลอดเวลา