feat: Introduce new json format and relays concept
All checks were successful
Build site / Rust CI (push) Successful in 3s

Signed-off-by: Awiteb <a@4rs.nl>
This commit is contained in:
Awiteb 2024-10-18 22:47:59 +00:00
parent 13029690c6
commit 836a87e8bc
Signed by: awiteb
GPG key ID: 3F6B55640AA6682F

View file

@ -46,7 +46,7 @@ add_toc = true
## عنوان دليل الخوادم {#servers-dir-domain}
عنوان دليل الخوادم هو نطاق عادي على سبيل المثال `example.com` يحتوي على المسار التالي <span dir='ltr'><code>/.well-known/oxidetalis/servers</code></span> ومحتوى هذا المسار ملف json يوجد به خادم او اكثر يستخدمونها مستخدمين هذا الدليل.
عنوان دليل الخوادم هو نطاق عادي على سبيل المثال `example.com` يحتوي على المسار التالي <span dir='ltr'><code>/.well-known/oxidetalis/directory</code></span> ومحتوى هذا المسار ملف json يوجد به خادم و مُرحلات مستخدمين هذا الدليل.
الخادم الذي في هذا الدليل يكون اسمه خادماً إذا كان يقبل التواصل الداخلي، إذا كان يقبل التواصل الخارجي فقط حتى بين مستخدمينه، يصبح اسمه مُرحل.
@ -55,7 +55,16 @@ add_toc = true
### مهمة هذا الدليل {#why-dir}
في الإتصال الخارجي يحتاج المُرسل معرفة خادم المُستقبل لإرسال الرسالة إليه، عبر هذا الدليل سيعرف المُرسل الخوادم التي يوجد بها المُستقبل.
في الإتصال الخارجي يحتاج المُرسل معرفة خادم المُستقبل لإرسال الرسالة إليه، عبر هذا الدليل سيعرف المُرسل خادم المُستقبل و المُرحلات التي يستقبل الرسائل منها.
### الخادم و المُرحلات {#server-and-relays}
المستخدم يمكن أن يكون لديه خادم واحد أو لا يكون لديه، من خلال هذا الخادم سوف يتم جلب ملف تعريف المستخدم، أسمه و صورة ملفه التعريفي و النبذة و أي معلومات خاصة به.
و يستطيع الخادم تحويل الرسائل الخارجية إلى مستخدميه مثله مثل المُرحلات.
المُرحل لديه وظيفة واحدة فقط، وهي تحويل الرسائل الخارجية إلى مستخدميه، ليس لدى المرحل أي وظيفة أخرى، لا يقوم بتخزين ملفات مستخدمينه التعريفية ولا أي معلومات ما عدى عناوينهم العامة لتحويل الرسائل إلهم.
> سوف يتم الإشارة إلى الخوادم و المُرحلات بخوادم في هذا التوثيق.
### الإشارة إلى مستخدمين الدليل {#mention-dir-users}
@ -69,25 +78,31 @@ add_toc = true
النوع الثاني وهو خدمات شبكة Tor المخفية، سوف يتم الإتصال بها بـhttp و ws، يتم الإشارة إليها بوضع عنوانها في شبكة Tor فقط بدون المنفذ، على سبيل المثال <snap dir='ltr'><code>duckduckgogg42xjoc72x3sjasowoarfbgcmvfimaftt6twagswzczad.onion</code></snap>
يتم وضع خوادم الدليل في المفتاح `otmp_servers` وهي مصفوفة نصية يوجد بها الخوادم
### محتوى المسار <span dir='ltr'><code>/.well-known/oxidetalis/directory</code></span> في الدليل {#dir-content}
يجب أن يرجع هذا المسار نص بتنسيق JSON يحتوي هذا النص على المفتاحين "server" و "relays"، محتوى المفتاح "server" نص ([تم توضيح تنسيقه هنا](#servers-dir)) ويمكن أن يكون <code>null</code> و المفتاح "relays" مصفوفة نصية يوجد بها المُرحلات ([تم توضيح تنسيقها هنا](#servers-dir)) ويمكن أن تكون <code>null</code>.
يمكن للمستخدم أن لا يكون لديه خادم بالتالي لن يكون لديه ملف تعريفي، و يمكن أن لا يكون لديه مُرحلات وسوف يتم التواصل الخارجي عبر خادمه. يعد الدليل تالف إذا لم يكن به خادم ولا مُرحلات.
#### أمثلة {#dir-example}
في المثال التالي مُخرج الدليل `example.com` في المسار <span dir='ltr'><code>/.well-known/oxidetalis/servers</code></span> ويتضح به انه لايوجد إلا خادم واحد
في المثال التالي مُخرج الدليل `example.com` في المسار <span dir='ltr'><code>/.well-known/oxidetalis/directory</code></span> ويتضح به انه لايوجد إلا الخادم
<div dir="ltr">
```json
{ "otmp_servers": ["otmp.example.com:443"] }
{ "server": "otmp.example.com:443", "relays": null }
```
</div>
في المثال التالي مُخرج الدليل `example.net` في المسار <span dir='ltr'><code>/.well-known/oxidetalis/servers</code></span> ويتضح به انه يوجد خادمين، واحد في شبكة الإنترنت العالمية و الأخر في Tor
في المثال التالي مُخرج الدليل `example.net` في المسار <span dir='ltr'><code>/.well-known/oxidetalis/directory</code></span> ويتضح به انه يوجد مُرحلين فقط
<div dir="ltr">
```json
{
"otmp_servers": [
"otmp.example.net:7294",
"server": null,
"relays": [
"random-relay.tld:7294",
"duckduckgogg42xjoc72x3sjasowoarfbgcmvfimaftt6twagswzczad.onion"
]
}