gop2p เป็นไลบรารี Golang สำหรับเปิดใช้งานการสื่อสารแบบ peer-to-peer ที่ใช้ UDP แบบ dead-simple ระหว่างไคลเอนต์ซอฟต์แวร์ วัตถุประสงค์คือเพื่อให้สามารถควบคุมโหนดต่างๆ จากระยะไกลได้โดยการออกคำสั่งที่ลงนาม RSA เพียร์จะรักษาพับลิกคีย์ไว้เป็นคีย์ส่วนตัวที่มีเฉพาะไคลเอ็นต์เท่านั้น
มันเป็นโปรเจ็กต์ go สำคัญครั้งแรกของฉัน ดังนั้นมันอาจจะไม่สวยงาม แต่มันก็ดำเนินไปเร็วมาก
โฟลเดอร์ไคลเอนต์ประกอบด้วยรหัสทั้งหมดที่จำเป็นสำหรับการเรียกใช้ไคลเอนต์ที่ออกคำสั่ง
โฟลเดอร์เพียร์ประกอบด้วยโค้ดทั้งหมดที่จำเป็นสำหรับการรันโหนด
หลังจากสร้างคีย์ 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 บัฟเฟอร์มีเพียงอาร์เรย์คำสั่งเท่านั้น ดังนั้นให้ทำตามที่คุณต้องการ ฉันมีโค้ดบางส่วนแสดงความคิดเห็นว่าจะรันคำสั่งในฐานะเชลล์ (แต่นี่อาจส่งผลร้ายแรงต่อความปลอดภัยหากคุณพิมพ์คำสั่งที่เป็นอันตราย คุณได้รับคำเตือนแล้ว)
ยินดีต้อนรับคำขอดึง สำหรับการเปลี่ยนแปลงที่สำคัญ โปรดเปิดประเด็นก่อนเพื่อหารือเกี่ยวกับสิ่งที่คุณต้องการเปลี่ยนแปลง
คุณสามารถรวมโค้ดไว้ในโปรเจ็กต์ที่คุณมีได้ตามใจชอบ ฉันขอให้คุณระบุแหล่งที่มาของโครงการนี้และลิงก์กลับไปยังหน้า GitHub คุณยังไม่จำเป็นต้องใช้โปรเจ็กต์ทั้งหมดอีกด้วย คุณสามารถใช้ตัวอย่างข้อมูลใดก็ได้ที่คุณต้องการ เพียงระบุแหล่งที่มาผ่านความคิดเห็นในซอร์สโค้ดของคุณและอย่าอ้างว่าเป็นผู้เขียนต้นฉบับ
เอ็มไอที