gop2p هي مكتبة Golang لتمكين اتصال نظير إلى نظير قائم على UDP بين عملاء البرامج. الهدف هو أن تكون قادرًا على التحكم عن بعد في مجموعة متنوعة من العقد عن طريق إصدار أوامر موقعة بواسطة RSA. يحتفظ الأقران بالمفتاح العام للمفتاح الخاص الذي يمتلكه العميل فقط.
إنه أول مشروع رئيسي لي، لذا قد لا يكون جميلًا، لكنه يعمل بسرعة كبيرة.
يحتوي مجلد العميل على كافة التعليمات البرمجية اللازمة لتشغيل العميل الذي يصدر الأوامر.
يحتوي مجلد النظير على كافة التعليمات البرمجية اللازمة لتشغيل العقدة.
بعد إنشاء مفاتيح RSA العامة والخاصة، قم بوضعها في ملفات cryptotext.go الخاصة بالعميل والنظير.
بعد وضع المفاتيح في المكان الصحيح، قم ببناء العميل والنظير.
قم بتشغيل العميل باستخدام:
./p2pclient < IP ADDRESS OF PEER HERE >
قم بتشغيل النظير الأولي مثل هذا:
./p2ppeer -p < port >
وقم بتشغيل أي أقران جدد مثل هذا:
./p2ppeer -p < port > -b < ANY OTHER PEER IP >
سيقوم الأقران تلقائيًا بمشاركة المعلومات حول الأقران الموجودين حاليًا في الشبكة، لذلك لا يجب أن يكون نظير التمهيد هو نفسه لكل نظير لاحق. الأقران هم أنفسهم أقران التمهيد.
لا يقوم الأقران حاليًا بأي شيء بالأوامر المرسلة إليهم. يقومون فقط بطباعة شريحة البايت الأولية من البيانات. كنت مهتمًا فقط باتصالات p2p المطبقة في Golang، لذلك لا توجد أوامر افتراضية. ومع ذلك، فإن تنفيذ بعض الأوامر للأقران يتطلب فقط تعديل وظيفة "executeCommand" في ملف Commands.go. يحتوي المخزن المؤقت على مصفوفة الأوامر فقط، لذا افعل بها ما تريد. لقد تم التعليق على بعض التعليمات البرمجية التي من شأنها تنفيذ الأمر كصدفة (ولكن قد يكون لهذا عواقب وخيمة على الأمان في حالة كتابة أمر ضار. لقد تم تحذيرك).
طلبات السحب هي موضع ترحيب. لإجراء تغييرات كبيرة، يرجى فتح مشكلة أولاً لمناقشة ما تريد تغييره.
لا تتردد في تضمين الكود في أي مشاريع لديك. أطلب فقط أن تنسب هذا المشروع وتربطه مرة أخرى بصفحة جيثب. ليس عليك أيضًا استخدام المشروع بالكامل. يمكنك استخدام أي مقتطفات تريدها. فقط قم بإسناده من خلال تعليق في مكان ما في كود المصدر الخاص بك ولا تدعي أنه المؤلف الأصلي.
معهد ماساتشوستس للتكنولوجيا