diff --git a/content/ar/protocol/v1.md b/content/ar/protocol/v1.md index e8816fb..442ba08 100644 --- a/content/ar/protocol/v1.md +++ b/content/ar/protocol/v1.md @@ -44,45 +44,58 @@ add_toc = true يتم وضع العنوان العام في رأس (Header) الطلب (Request) بأسم `X-OTMP-PUBLIC` ويجب ان يكون نص [base58] صحيح مكون من 33 بايت (264 بت). -## أسم الخادم {#server-name} +## عنوان دليل الخوادم {#servers-dir-domain} -يكون أسم الخادم عنوان إلكتروني مثل `example.com` ولا يجب أن يكون الخادم نفسه، هو -أسم فقط يشير إلى الخادم، على سبيل المثال، أسم الخادم `example.com` ولكن الخادم -هو `otmp.example.com:443`، هكذا سوف يتم الإشارة لى مستخدمين هذا الخادم @becZJsZZqGR7qBG8t1Pm4uy62jDTzJsabxnkARhr2syo/example.com -ويمكن إختصاره بالواجهات الرسومية بأخذ أول ثلاث أحرف و أخر ثلاث أحرف ووضع `..` -بينهم، ليصبح بهذا الشكل @bec..syo/example.com. +عنوان دليل الخوادم هو نطاق عادي على سبيل المثال `example.com` يحتوي على المسار التالي /.well-known/oxidetalis/servers ومحتوى هذا المسار ملف json يوجد به خادم او اكثر يستخدمونها مستخدمين هذا الدليل. -### كيفية الإشارة {#referencing} +الخادم الذي في هذا الدليل يكون اسمه خادماً إذا كان يقبل التواصل الداخلي، إذا كان يقبل التواصل الخارجي فقط حتى بين مستخدمينه، يصبح اسمه مُرحل. -يشير أسم الخادم إلى الخادم عبر المسار التالي /.well-known/oxidetalis/server +يمكن أن يكون هذا الدليل تابع لمستضيف معين ويضع به خوادمه أو عناوين لنفس الخادم (مثل عنوانه في شبكة Tor) أو يكون تابع لفرد ويضع به الخوادم التي يستخدمها. يجب لكل خادم في الدليل أن يصدر شهادة SSL/TLS من جهة موثوقة +لأن الإتصال سيكون HTTPS (يستثنى من هذا خدمات Tor). -سوف يتم إرسال طلب GET إلى هذا المسار و يجب أن يُرجع هذا المسار نص بتنسيق -`application/json` يحتوي على المفتاح `otmp_server` ولذي يحتوي على مكان إستضافة -الخادم والمنفذ الذي يستمع إليه، سوف يتم إرسال الطلب ببروتوكول https و يجب أن -يدعم الخادم https و يجب ان تكون الشهادة موقعة من جهة موثوقة وليست موقعة -ذاتياً[^1] +### مهمة هذا الدليل {#why-dir} -### مفتاح `otmp_server` +في الإتصال الخارجي يحتاج المُرسل معرفة خادم المُستقبل لإرسال الرسالة إليه، عبر هذا الدليل سيعرف المُرسل الخوادم التي يوجد بها المُستقبل. -محتوى هذا المفتاح يجب أن يكون نص، يتكون هذا النص من جزئين يفصل بينهم نقطتان -رأسيتان، الجزء الأول هو مكان الإستضافة و الجزء الثاني هو المنفذ على سبيل المثال -`"example.com:443"` و `"otmp.example.com:7294"` و `"93.184.215.14:7294"` و "[2606:2800:021f:cb07:6820:80da:af6b:8b2c]:7294". +### الإشارة إلى مستخدمين الدليل {#mention-dir-users} -### مثال +للإشارة إلى المستخدمين في أي وسيلة نقل يكون بالطريقة التالية @becZJsZZqGR7qBG8t1Pm4uy62jDTzJsabxnkARhr2syo/example.com علامة `@` متبوعة بعنوان المستخدم العام متبوعاً بخط مائل +وبعد ذلك عنوان الدليل. يمكن لمطوري عملاء OxideTalis إختصار إسم عنوان المستخدم بالشكل التالي عند الإشارة إليه @bec..syo/example.com بأخذ ثلاث محرفات من البداية ومن النهاية و الفصل بينهم بنقطتين `..`. +### خوادم الدليل {#servers-dir} + +يوجد نوعين من خوادم الدليل، النوع الأول الخوادم التي على شبكة الإنترنت العامة ولتي يتم جلب عنوانها من النطاق الخاص بها مثل `example.com`، سوف يتم التواصل مع هذه الخوادم بإتصال https و wss لذلك يجب أن يكون لديها شهادة SSL/TLS ويجب ان تكون +الشهادة موقعة من جهة موثوقة وليست موقعة ذاتياً[^1]، يتم الإشارة إلى هذا الخوادم بالنطاق الذي تستخدمه و المنفذ، على سبيل المثال `otmp.example.com:443` يتم الفصل بين النطاق الذي سوف يتم جلب العنوان منه و المنفذ بنقطتان رأسيتان. + +النوع الثاني وهو خدمات شبكة Tor المخفية، سوف يتم الإتصال بها بـhttp و ws، يتم الإشارة إليها بوضع عنوانها في شبكة Tor فقط بدون المنفذ، على سبيل المثال duckduckgogg42xjoc72x3sjasowoarfbgcmvfimaftt6twagswzczad.onion + +يتم وضع خوادم الدليل في المفتاح `otmp_servers` وهي مصفوفة نصية يوجد بها الخوادم + +#### أمثلة {#dir-example} +في المثال التالي مُخرج الدليل `example.com` في المسار /.well-known/oxidetalis/servers ويتضح به انه لايوجد إلا خادم واحد
```json -{ "otmp_server": "otmp.example.com:443" } +{ "otmp_servers": ["otmp.example.com:443"] } ```
-> يجب على الخوادم عدم تخزين اسماء خوادم المرسلين، ويتم تحديده في الطلب المرسل من +في المثال التالي مُخرج الدليل `example.net` في المسار /.well-known/oxidetalis/servers ويتضح به انه يوجد خادمين، واحد في شبكة الإنترنت العالمية و الأخر في Tor +
+ +```json +{ + "otmp_servers": [ + "otmp.example.net:7294", + "duckduckgogg42xjoc72x3sjasowoarfbgcmvfimaftt6twagswzczad.onion" + ] +} +``` + +
+ +> يجب على الخوادم عدم تخزين دلائل المرسلين، ويتم تحديدها في الطلب المرسل من > قبلهم فقط، حيث أن المفتاح العام هو المعرف المشترك بين جميع الخوادم. ## مفتاح التشفير المشترك {#shared-encryption-key} @@ -112,10 +125,7 @@ dir="ltr">LKGKeuV3SRu1n3fez4SdboM3FT48vbBxHai9MbuWxb3 يتم جلب مفتاح الخادم العام من المسار /api/info سوف يتم إرسال طلب GET إلى هذا المسار و -يجب أن يُرجع هذا المسار نص بتنسيق `application/json` يحتوي على المفتاح -`public_key` ولذي قيمته نص المفتاح العام الخاص بالخادم بترميز [base58]، سوف يتم -إرسال الطلب ببروتوكول https و يجب أن يدعم الخادم https و يجب ان تكون الشهادة -موقعة من جهة موثوقة وليست موقعة ذاتياً[^1] +يجب أن يُرجع هذا المسار نص بتنسيق `application/json` يحتوي على المفتاح `public_key` ولذي قيمته نص المفتاح العام الخاص بالخادم بترميز [base58]. > تم توضيح المفتاح العام هنا ([العناوين العامة](#public-addresses))