Dendrite 0.1.0-ի՝ կապի սերվերի թողարկում՝ Matrix արձանագրության ներդրմամբ

հրապարակված Matrix սերվերի թողարկում Դենդրիտ 0.1.0, որը նշանավորեց զարգացման անցումը բետա թեստավորման փուլին։ Dendrite-ը մշակվում է Matrix կապի ապակենտրոնացված պլատֆորմի մշակողների հիմնական թիմի կողմից և դիրքավորվում է որպես Matrix սերվերի բաղադրիչների երկրորդ սերնդի ներդրում: Ի տարբերություն հղման սերվերի Synapse, գրված է Python-ով, կոդը Dendrite զարգանում է Go լեզվով։ Երկու պաշտոնական իրականացումները լիցենզավորված են Apache 2.0 լիցենզիայի ներքո: Ծրագրի սահմաններում Ռումա Առանձին մշակվում է Matrix սերվերի Rust լեզվով տարբերակը, որը տարածվում է MIT լիցենզիայի ներքո:

Նոր սերվերն ուղղված է բարձր արդյունավետության, հուսալիության և մասշտաբայնության հասնելուն: Դենդրիտը գերազանցում է Synapse-ին, գործելու համար պահանջվում է զգալիորեն ավելի քիչ հիշողություն և կարող է մասշտաբավորվել մի քանի հանգույցներում բեռի հավասարակշռման միջոցով: Դենդրիտի ճարտարապետությունն աջակցում է հորիզոնական մասշտաբավորմանը և հիմնված է մշակողների բաժանման վրա՝ միկրոծառայությունների տեսքով, որտեղ յուրաքանչյուր միկրոծառայության օրինակ ունի իր սեփական աղյուսակները տվյալների բազայում: Բեռի հավասարակշռիչը զանգեր է ուղարկում միկրոծառայությունների: Կոդում գործողությունները զուգահեռացնելու համար օգտագործվում են թելեր (go routines), որոնք թույլ են տալիս օգտագործել պրոցեսորի բոլոր միջուկների ռեսուրսները՝ առանց դրանք առանձին պրոցեսների բաժանելու։

Dendrite 0.1.0-ի՝ կապի սերվերի թողարկում՝ Matrix արձանագրության ներդրմամբ

Դենդրիտը աջակցում է երկու ռեժիմ՝ մոնոլիտ և պոլիլիտ: Մոնոլիտ ռեժիմում բոլոր միկրոծառայությունները փաթեթավորվում են մեկ գործարկվող ֆայլում, կատարվում են մեկ գործընթացում և ուղղակիորեն փոխազդում են միմյանց հետ: Բազմաբաղադրիչ (կլաստերի) ռեժիմում միկրոծառայությունները կարող են գործարկվել առանձին, այդ թվում՝ բաշխվել տարբեր հանգույցների վրա: Բաղադրիչների փոխազդեցությունը
բազմաբաղադրիչ ռեժիմն իրականացվում է ներքին HTTP API-ի և հարթակի միջոցով Apache Kafka.

Մշակումն իրականացվում է Matrix արձանագրության բնութագրերի հիման վրա և օգտագործելով երկու թեստային փաթեթներ՝ Synapse-ի համար սովորական թեստեր: համակարգ և նոր հավաքածու Լրացնում. Մշակման ներկա փուլում Dendrite-ն անցնում է Client-Server API-ի թեստերի 56%-ը և Federation API-ի թեստերի 77%-ը, մինչդեռ ֆունկցիոնալության իրական ծածկույթը գնահատվում է 70% Client-Server API-ի և 95% Federation API-ի համար:

Բետա թեստավորման փուլը ցույց է տալիս, որ Dendrite-ը պատրաստ է նախնական ներդրման և զարգացման անցնելու՝ պարբերաբար ձևավորվող նոր թողարկումներով: Թողարկումների միջև ընկած ժամանակահատվածում տվյալների բազայում տվյալների պահպանման սխեման այժմ կթարմացվի (ի տարբերություն պահոցից հատվածներ տեղադրելու, տվյալների բազայի բովանդակությունը թարմացումից հետո չի կորչի): Փոփոխությունները, որոնք խախտում են հետընթաց համատեղելիությունը, փոխում են տվյալների բազայի կառուցվածքը կամ պահանջում են կազմաձևման փոփոխություններ, կառաջարկվեն միայն հիմնական թողարկումներում: Դենդրիտը ներկայումս խորհուրդ է տրվում օգտագործել մոնոլիտ ռեժիմում՝ PostgreSQL DBMS-ի հետ համատեղ՝ փոքր տնային սերվերներ և P2P հանգույցներ ստեղծելու համար: SQLite-ի օգտագործումը դեռ խորհուրդ չի տրվում՝ միաժամանակյա գործողությունների հետ կապված չլուծված խնդիրների պատճառով:

Առանձնահատկությունները, որոնք դեռ չեն ներդրվել Dendrite-ում, ներառում են հաղորդագրությունների ստացման հաստատումներ, ընթերցման նշաններ, push ծանուցումներ, OpenID, էլփոստի կապում, սերվերի կողմից որոնում, օգտվողի գրացուցակ, օգտվողների անտեսման ցուցակներ, խմբեր և համայնքներ ստեղծելը, օգտատերերի առցանց ներկայության գնահատումը, հյուրերի մուտքերը, փոխգործակցություն երրորդ կողմի ցանցերի հետ:

Օգտագործման համար հասանելի են զրուցարանների հիմնական գործառույթները (ստեղծում, հրավերներ, նույնականացման կանոններ), սենյակներում մասնակիցների ֆեդերացիայի միջոցները, անցանցից վերադառնալուց հետո իրադարձությունների համաժամացումը, հաշիվները, պրոֆիլները, հավաքման ցուցումները, ֆայլերի ներբեռնումը և վերբեռնումը (Media API), հաղորդագրությունների խմբագրում, ACL-ներ, պիտակների կապում և սարքերի և ստեղների ցուցակների հետ աշխատանք՝ ծայրից ծայր կոդավորման համար:

Հիշեցնենք, որ ապակենտրոնացված հաղորդակցությունների Matrix-ի կազմակերպման հարթակը օգտագործում է HTTPS+JSON որպես փոխադրամիջոց՝ WebSockets-ի օգտագործման ունակությամբ կամ պրոտոկոլի հիման վրա։ CoAP+Աղմուկ. Համակարգը ձևավորվում է որպես սերվերների համայնք, որոնք կարող են փոխազդել միմյանց հետ և միավորված են ընդհանուր ապակենտրոնացված ցանցի մեջ: Հաղորդագրությունները կրկնօրինակվում են բոլոր սերվերներում, որոնց միացված են հաղորդագրությունների մասնակիցները: Հաղորդագրությունները տարածվում են սերվերների վրա այնպես, ինչպես պարտավորությունները տարածվում են Git պահեստների միջև: Սերվերի ժամանակավոր անջատման դեպքում հաղորդագրությունները չեն կորչում, այլ սերվերի աշխատանքը վերսկսելուց հետո փոխանցվում են օգտատերերին: Աջակցվում են օգտվողի ID-ի տարբեր տարբերակներ, ներառյալ էլփոստը, հեռախոսահամարը, Facebook-ի հաշիվը և այլն:

Ցանցում չկա ձախողման կամ հաղորդագրությունների վերահսկման մեկ կետ: Քննարկման կողմից ընդգրկված բոլոր սերվերները հավասար են միմյանց:
Ցանկացած օգտվող կարող է գործարկել իր սեփական սերվերը և միացնել այն ընդհանուր ցանցին: Հնարավոր է ստեղծել դարպասներ Մատրիցայի փոխազդեցության համար այլ արձանագրությունների վրա հիմնված համակարգերի հետ, օրինակ. պատրաստված ծառայություններ երկկողմանի հաղորդագրություններ ուղարկելու համար IRC, Facebook, Telegram, Skype, Hangouts, Email, WhatsApp և Slack: Բացի ակնթարթային տեքստային հաղորդագրություններից և չաթերից, համակարգը կարող է օգտագործվել ֆայլեր փոխանցելու, ծանուցումներ ուղարկելու համար,
հեռակոնֆերանսների կազմակերպում, ձայնային և տեսազանգերի կատարում։ Այն նաև աջակցում է այնպիսի առաջադեմ գործառույթների, ինչպիսիք են մուտքագրման մասին ծանուցումը, օգտատիրոջ առցանց ներկայության գնահատումը, ընթերցման հաստատումը, push ծանուցումները, սերվերի կողմից որոնումը, պատմության և հաճախորդի կարգավիճակի համաժամացումը:

Source: opennet.ru

Добавить комментарий