feat: Replace server domain with server directory domain
All checks were successful
Build site / Rust CI (push) Successful in 25s
All checks were successful
Build site / Rust CI (push) Successful in 25s
Signed-off-by: Awiteb <a@4rs.nl>
This commit is contained in:
parent
296ff50075
commit
bb1ff03ac2
1 changed files with 38 additions and 28 deletions
|
@ -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`، هكذا سوف يتم الإشارة لى مستخدمين هذا الخادم <snap
|
||||
dir='ltr'><code>@becZJsZZqGR7qBG8t1Pm4uy62jDTzJsabxnkARhr2syo/example.com</code></snap>
|
||||
ويمكن إختصاره بالواجهات الرسومية بأخذ أول ثلاث أحرف و أخر ثلاث أحرف ووضع `..`
|
||||
بينهم، ليصبح بهذا الشكل <snap
|
||||
dir='ltr'><code>@bec..syo/example.com</code></snap>.
|
||||
عنوان دليل الخوادم هو نطاق عادي على سبيل المثال `example.com` يحتوي على المسار التالي <span dir='ltr'><code>/.well-known/oxidetalis/servers</code></span> ومحتوى هذا المسار ملف json يوجد به خادم او اكثر يستخدمونها مستخدمين هذا الدليل.
|
||||
|
||||
### كيفية الإشارة {#referencing}
|
||||
الخادم الذي في هذا الدليل يكون اسمه خادماً إذا كان يقبل التواصل الداخلي، إذا كان يقبل التواصل الخارجي فقط حتى بين مستخدمينه، يصبح اسمه مُرحل.
|
||||
|
||||
يشير أسم الخادم إلى الخادم عبر المسار التالي <span
|
||||
dir='ltr'><code>/.well-known/oxidetalis/server</code></span>
|
||||
يمكن أن يكون هذا الدليل تابع لمستضيف معين ويضع به خوادمه أو عناوين لنفس الخادم (مثل عنوانه في شبكة 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"` و <snap
|
||||
dir='ltr'><code>"[2606:2800:021f:cb07:6820:80da:af6b:8b2c]:7294"</code></snap>.
|
||||
### الإشارة إلى مستخدمين الدليل {#mention-dir-users}
|
||||
|
||||
### مثال
|
||||
للإشارة إلى المستخدمين في أي وسيلة نقل يكون بالطريقة التالية <snap dir='ltr'><code>@becZJsZZqGR7qBG8t1Pm4uy62jDTzJsabxnkARhr2syo/example.com</code></snap> علامة `@` متبوعة بعنوان المستخدم العام متبوعاً بخط مائل
|
||||
وبعد ذلك عنوان الدليل. يمكن لمطوري عملاء OxideTalis إختصار إسم عنوان المستخدم بالشكل التالي عند الإشارة إليه <snap dir='ltr'><code>@bec..syo/example.com</code></snap> بأخذ ثلاث محرفات من البداية ومن النهاية و الفصل بينهم بنقطتين `..`.
|
||||
|
||||
### خوادم الدليل {#servers-dir}
|
||||
|
||||
يوجد نوعين من خوادم الدليل، النوع الأول الخوادم التي على شبكة الإنترنت العامة ولتي يتم جلب عنوانها من النطاق الخاص بها مثل `example.com`، سوف يتم التواصل مع هذه الخوادم بإتصال https و wss لذلك يجب أن يكون لديها شهادة SSL/TLS ويجب ان تكون
|
||||
الشهادة موقعة من جهة موثوقة وليست موقعة ذاتياً[^1]، يتم الإشارة إلى هذا الخوادم بالنطاق الذي تستخدمه و المنفذ، على سبيل المثال `otmp.example.com:443` يتم الفصل بين النطاق الذي سوف يتم جلب العنوان منه و المنفذ بنقطتان رأسيتان.
|
||||
|
||||
النوع الثاني وهو خدمات شبكة Tor المخفية، سوف يتم الإتصال بها بـhttp و ws، يتم الإشارة إليها بوضع عنوانها في شبكة Tor فقط بدون المنفذ، على سبيل المثال <snap dir='ltr'><code>duckduckgogg42xjoc72x3sjasowoarfbgcmvfimaftt6twagswzczad.onion</code></snap>
|
||||
|
||||
يتم وضع خوادم الدليل في المفتاح `otmp_servers` وهي مصفوفة نصية يوجد بها الخوادم
|
||||
|
||||
#### أمثلة {#dir-example}
|
||||
في المثال التالي مُخرج الدليل `example.com` في المسار <span dir='ltr'><code>/.well-known/oxidetalis/servers</code></span> ويتضح به انه لايوجد إلا خادم واحد
|
||||
<div dir="ltr">
|
||||
|
||||
```json
|
||||
{ "otmp_server": "otmp.example.com:443" }
|
||||
{ "otmp_servers": ["otmp.example.com:443"] }
|
||||
```
|
||||
|
||||
</div>
|
||||
|
||||
> يجب على الخوادم عدم تخزين اسماء خوادم المرسلين، ويتم تحديده في الطلب المرسل من
|
||||
في المثال التالي مُخرج الدليل `example.net` في المسار <span dir='ltr'><code>/.well-known/oxidetalis/servers</code></span> ويتضح به انه يوجد خادمين، واحد في شبكة الإنترنت العالمية و الأخر في Tor
|
||||
<div dir="ltr">
|
||||
|
||||
```json
|
||||
{
|
||||
"otmp_servers": [
|
||||
"otmp.example.net:7294",
|
||||
"duckduckgogg42xjoc72x3sjasowoarfbgcmvfimaftt6twagswzczad.onion"
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
</div>
|
||||
|
||||
> يجب على الخوادم عدم تخزين دلائل المرسلين، ويتم تحديدها في الطلب المرسل من
|
||||
> قبلهم فقط، حيث أن المفتاح العام هو المعرف المشترك بين جميع الخوادم.
|
||||
|
||||
## مفتاح التشفير المشترك {#shared-encryption-key}
|
||||
|
@ -112,10 +125,7 @@ dir="ltr"><code>LKGKeuV3SRu1n3fez4SdboM3FT48vbBxHai9MbuWxb3</code></span>
|
|||
|
||||
يتم جلب مفتاح الخادم العام من المسار <span
|
||||
dir='ltr'><code>/api/info</code></span> سوف يتم إرسال طلب GET إلى هذا المسار و
|
||||
يجب أن يُرجع هذا المسار نص بتنسيق `application/json` يحتوي على المفتاح
|
||||
`public_key` ولذي قيمته نص المفتاح العام الخاص بالخادم بترميز [base58]، سوف يتم
|
||||
إرسال الطلب ببروتوكول https و يجب أن يدعم الخادم https و يجب ان تكون الشهادة
|
||||
موقعة من جهة موثوقة وليست موقعة ذاتياً[^1]
|
||||
يجب أن يُرجع هذا المسار نص بتنسيق `application/json` يحتوي على المفتاح `public_key` ولذي قيمته نص المفتاح العام الخاص بالخادم بترميز [base58].
|
||||
|
||||
> تم توضيح المفتاح العام هنا ([العناوين العامة](#public-addresses))
|
||||
|
||||
|
|
Loading…
Reference in a new issue