C-toxcore: اقتراح الميزة: شبكة الحارس

تم إنشاؤها على ١٨ يناير ٢٠١٨  ·  11تعليقات  ·  مصدر: TokTok/c-toxcore

تشبه الفكرة إلى حد كبير حراس IRC ، حيث يقوم المرء بإعداد عميل وكيل / مرحل يظل متصلاً بالشبكة ، بينما يرتبط العميل الفعلي بـ / يفصل عن الحارس من أجل الاتصال. سيساعد ذلك بشكل خاص على اعتماد أنظمة الهاتف المحمول (على سبيل المثال ، الهواتف الذكية) التي تعاني من استنزاف البطارية وتكاليف شبكة الاتصالات من DHT.

بذكر هذا فقط ، لأنه كان لدي ما لا يقل عن 3 أشخاص تركوا الشبكة لمجرد أنهم مستخدمون للهواتف المحمولة في المقام الأول ويعتبرون العيوب المذكورة أعلاه غير مقبولة.

P3 proposal

التعليق الأكثر فائدة

يجب أن تكون قادرًا على كتابة مكتبة bouncer تعرض tox.h واجهة بحيث يمكن بناء العملاء عليها كما لو كانت Toxcore ، دون الحاجة إلى تغيير أي رمز عميل. على سبيل المثال ، يمكن التعامل مع المكالمة الأولى التي يقوم بها العميل مع الوظيفة tox_bootstrap() في مكتبة الحارس هذه على أنها عنوان: المنفذ : مفتاح عام لبرنامج bouncer الذي يجب أن تتصل به مكتبة الحارس. بعد إنشاء الاتصال ، ستكون جميع وظائف tox_ على العميل هي RPC للحارس البعيد ، على سبيل المثال ، سيرسل العميل الذي يقوم بـ tox_friend_send_message() RPC إلى البرنامج الخفي ليطلب منه إرسال هذا التدليك على موقعنا نيابة عنك وإرجاع رمز الوظيفة إلينا لرد الجميل للعميل. يمكن لمكتبة الحارس استخدام أي شيء تريده للتواصل مع برنامج الحارس الخفي الذي يعمل على الخادم البعيد ، من HTTPS العادي (وهو ما تريده على الأرجح إذا كنت تريد تقليل استخدام الشبكة) إلى الحزم المخصصة لـ Toxcore.

نعم ، أتفق مع @ surprise6 ، هذا شيء يجب أن يكون مكتبة منفصلة ، وليس جزءًا من مكتبة Toxcore.

ال 11 كومينتر

أعتقد أن هذه الميزة ربما يتم تنفيذها بشكل أفضل في الروبوت وليس في المكتبة الأساسية.

يجب أن تكون قادرًا على كتابة مكتبة bouncer تعرض tox.h واجهة بحيث يمكن بناء العملاء عليها كما لو كانت Toxcore ، دون الحاجة إلى تغيير أي رمز عميل. على سبيل المثال ، يمكن التعامل مع المكالمة الأولى التي يقوم بها العميل مع الوظيفة tox_bootstrap() في مكتبة الحارس هذه على أنها عنوان: المنفذ : مفتاح عام لبرنامج bouncer الذي يجب أن تتصل به مكتبة الحارس. بعد إنشاء الاتصال ، ستكون جميع وظائف tox_ على العميل هي RPC للحارس البعيد ، على سبيل المثال ، سيرسل العميل الذي يقوم بـ tox_friend_send_message() RPC إلى البرنامج الخفي ليطلب منه إرسال هذا التدليك على موقعنا نيابة عنك وإرجاع رمز الوظيفة إلينا لرد الجميل للعميل. يمكن لمكتبة الحارس استخدام أي شيء تريده للتواصل مع برنامج الحارس الخفي الذي يعمل على الخادم البعيد ، من HTTPS العادي (وهو ما تريده على الأرجح إذا كنت تريد تقليل استخدام الشبكة) إلى الحزم المخصصة لـ Toxcore.

نعم ، أتفق مع @ surprise6 ، هذا شيء يجب أن يكون مكتبة منفصلة ، وليس جزءًا من مكتبة Toxcore.

لم أفكر حتى في ما يتعلق بمكتبة RPC ، لكنني أشبه إلى حد كبير ببرنامج بوت يقوم فقط بتخزين الرسائل وإعادة توجيهها على أمر نصي.

كيف تتواصل مع الروبوت؟ إذا كان برنامج Tox bot ، ألن تحتاج إلى أن تكون متصلاً بـ DHT ، ما هو zer0def الذي يريد تجنبه؟

@ مفاجأة 6 كنت أفكر أكثر من منظور الحارس IRC بدلاً من الروبوت. لست متأكدًا مما إذا كنت معتادًا على حراس IRC ، لذا تخيل فقط عميل qTox ، وهو عبارة عن واجهة مستخدم رسومية + نقطة توكسكور ، ولكن بدلاً من تشغيل واجهة المستخدم الرسومية والتوكسكور على جهازك المحلي ، ستتمكن من تشغيل واجهة المستخدم الرسومية التي تعمل على جهازك ولكنك تقوم بتشغيل واجهة المستخدم الرسومية يتواصل مع يعمل على خادم بعيد. يمكنك تحقيق ذلك من خلال كتابة مكتبة تتظاهر بأنها مادة سامة ، بحيث يتم تجميع qTox ضدها دون الحاجة إلى أي تغييرات في التعليمات البرمجية ، ولكن في الواقع لن تكون نقطة سامة ، بل مكتبة تتواصل مع مثيل نقطة السموم البعيدة.

لكن أليس هذا مطبقًا في العقد الكاملة التي يستخدمها عملاء الهاتف المحمول عبر وضع TCP؟ لا يشارك وضع TCP في شبكة DHT حسب فهمي الأفضل.

dingosan ما زلت بحاجة إلى أن تكون متصلاً طوال الوقت بعقدة TCP. بقدر ما فهمت ، سوف يقوم الحارس أيضًا بتخزين الرسائل؟

@ مفاجأة 6 ربما يجب أن تحافظ على تناسق السجل ، وإلا فسيكون تشغيل عملائك كعقدة TCP كافيًا على الأرجح

مرحبًا ، أقوم ببعض الأعمال مثل هذا بدون تعديل بروتوكول Toxcore.
إنه ليس حارس مثل آي آر سي ، لكنه أشبه بجسر.
إنه يستخدم gRPC / websock لدعم كل من عميل البرنامج الأصلي وتطبيق الويب.
يقوم الجسر بتخزين جميع الرسائل عندما يكون متصلاً بالإنترنت. ويمكن لجميع عملاء الجسر تلقي رسائل متزامنة.
يمكن للعملاء سحب جميع رسائل السجل ، ويمكن للعملاء المتعددين مزامنة الرسائل مع بعضهم البعض بمساعدة الجسر.

هذا العمل قيد التقدم ، لا يزال عرضًا توضيحيًا ، يمكن لأي شخص مثير للاهتمام إلقاء نظرة:
https://github.com/envsh/tox-homeserver

المشكلة الآن هي أن المجموعة مؤقتة ، ولا توجد طريقة جيدة لدمج رسائل المجموعة بعد إعادة إنشاء المجموعة.

أنيق :) يبدو رائعًا!

المشكلة الآن هي أن المجموعة مؤقتة ، ولا توجد طريقة جيدة لدمج رسائل المجموعة بعد إعادة إنشاء المجموعة.

لدينا نفس المشكلة في qTox. سيكون ذلك ممكنًا مع المجموعات المستمرة ، لأن لديهم معرّفات فريدة. هناك طريقة أخرى تتمثل في معاملة كل مجموعة تم إنشاؤها على أنها منفصلة وإظهارها جميعًا على أنها سجل منفصل للمستخدم. مثله:

26.05.2018 12:45 Tox Public Chat
26.05.2018 11:31 #toktok
26.05.2018 10:15 meeting
25.05.2018 08:10 meeting
24.05.2018 01:20 Tox Public Chat

إنه ليس جيدًا ، لكنه لا يزال قابلاً للاستخدام. ربما يفضل بعض الناس رؤية التاريخ بهذه الطريقة.

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات