gop2p는 소프트웨어 클라이언트 간의 단순 UDP 기반 P2P 통신을 가능하게 하는 Golang 라이브러리입니다. 목표는 RSA 서명된 명령을 실행하여 다양한 노드를 원격으로 제어할 수 있는 것입니다. 피어는 클라이언트만이 가지고 있는 개인 키에 대한 공개 키를 유지합니다.
나의 첫 번째 주요 바둑 프로젝트이기 때문에 예쁘지는 않을 수도 있지만 정말 빠르게 진행됩니다.
클라이언트 폴더에는 명령을 실행하는 클라이언트를 실행하는 데 필요한 모든 코드가 포함되어 있습니다.
피어 폴더에는 노드를 실행하는 데 필요한 모든 코드가 포함되어 있습니다.
공개 및 비공개 RSA 키를 생성한 후 클라이언트와 피어의 cryptotext.go 파일에 넣습니다.
키를 올바른 위치에 넣은 후 클라이언트와 피어를 빌드합니다.
다음을 사용하여 클라이언트를 실행합니다.
./p2pclient < IP ADDRESS OF PEER HERE >
다음과 같이 초기 피어를 실행하십시오.
./p2ppeer -p < port >
그리고 다음과 같이 새로운 피어를 실행하십시오.
./p2ppeer -p < port > -b < ANY OTHER PEER IP >
피어는 현재 네트워크에 있는 피어에 대한 정보를 자동으로 공유하므로 부트스트랩 피어는 모든 후속 피어에 대해 동일할 필요가 없습니다. 피어는 그 자체로 부트스트랩 피어입니다.
피어는 현재 전송된 명령으로 아무 작업도 수행하지 않습니다. 데이터의 원시 바이트 조각만 인쇄합니다. Golang에 구현된 p2p 통신에만 관심이 있어서 기본 명령어는 없습니다. 그러나 피어가 수행할 일부 명령을 구현하려면 Commands.go 파일의 "executeCommand" 기능만 수정하면 됩니다. 버퍼에는 명령 배열만 포함되어 있으므로 원하는 대로 사용하세요. 명령을 셸로 실행하는 일부 코드를 주석 처리했습니다(그러나 악의적인 명령을 입력하면 보안에 심각한 결과를 초래할 수 있습니다. 경고를 받았습니다).
풀 요청을 환영합니다. 주요 변경사항의 경우 먼저 이슈를 열어 변경하고 싶은 사항에 대해 논의하세요.
가지고 있는 프로젝트에 자유롭게 코드를 포함시키세요. 이 프로젝트의 속성을 지정하고 github 페이지로 다시 연결해 주시기 바랍니다. 또한 프로젝트 전체를 사용할 필요도 없습니다. 원하는 스니펫을 사용할 수 있습니다. 소스 코드 어딘가에 주석을 달고 원본 작성자라고 주장하지 마세요.
MIT