gop2p adalah perpustakaan Golang untuk mengaktifkan komunikasi peer-to-peer berbasis UDP yang sangat sederhana antara klien perangkat lunak. Tujuannya adalah untuk dapat mengontrol berbagai node dari jarak jauh dengan mengeluarkan perintah yang ditandatangani RSA. Rekan-rekan mempertahankan kunci publik ke kunci privat yang hanya dimiliki klien.
Ini proyek go besar pertama saya, jadi mungkin tidak bagus, tapi berjalan sangat cepat.
Folder klien berisi semua kode yang diperlukan untuk menjalankan klien yang mengeluarkan perintah.
Folder peer berisi semua kode yang diperlukan untuk menjalankan sebuah node.
Setelah membuat kunci RSA publik dan privat, masukkan kunci tersebut ke dalam file cryptotext.go untuk klien dan rekan.
Setelah meletakkan kunci di lokasi yang benar, bangun klien dan rekannya.
Jalankan klien dengan:
./p2pclient < IP ADDRESS OF PEER HERE >
Jalankan rekan awal seperti ini:
./p2ppeer -p < port >
Dan jalankan rekan baru seperti ini:
./p2ppeer -p < port > -b < ANY OTHER PEER IP >
Peer akan secara otomatis membagikan informasi tentang peer yang saat ini ada di jaringan, sehingga bootstrap peer tidak harus sama untuk setiap peer berikutnya. Rekan-rekan itu sendiri adalah rekan-rekan bootstrap.
Rekan-rekan saat ini tidak melakukan apa pun dengan perintah yang dikirimkan kepada mereka. Mereka hanya mencetak potongan byte mentah dari data. Saya hanya tertarik pada komunikasi p2p yang diterapkan di Golang, jadi tidak ada perintah default. Namun, mengimplementasikan beberapa perintah untuk dilakukan oleh rekan-rekan hanya memerlukan modifikasi fungsi "executeCommand" di file command.go. Buffer hanya berisi array perintah, jadi lakukan sesuai keinginan Anda. Saya memiliki beberapa kode yang dikomentari yang akan menjalankan perintah sebagai shell (tetapi ini mungkin memiliki konsekuensi yang mengerikan bagi keamanan jika Anda mengetikkan perintah jahat. Anda telah diperingatkan).
Permintaan tarik dipersilakan. Untuk perubahan besar, silakan buka terbitan terlebih dahulu untuk mendiskusikan apa yang ingin Anda ubah.
Jangan ragu untuk menyertakan kode dalam proyek apa pun yang Anda miliki. Saya hanya meminta Anda mengaitkan proyek ini dan menautkan kembali ke halaman github. Anda juga tidak harus menggunakan proyek secara keseluruhan. Anda dapat menggunakan cuplikan apa pun yang Anda inginkan. Atribusikan saja melalui komentar di suatu tempat di kode sumber Anda dan jangan mengklaim sebagai penulis aslinya.
MIT