본문 바로가기

go언어 블록체인

노마드코인 12-32

이번 강의는 네트워크를 완벽하게 만드는 강의이다

 

강의에 들어가기에 앞서 미리 해봤다

AddPeers() 함수에 address, port, openPort, false를 넣으면 되니까 

받은 데이터를 utils.Spliter로 나눠서 각각을 만들고 함수에 넣어주었다

근데 오류가 뜬다

 

오류가 뜬 친구는 포트 4000이다 분명 내가 AddPeers() 에 넣어줄 때에 무언가 잘못되었나보다

분명 메세지 콘솔 출력까지는 잘 되었었는데

 

강의를 봐보자

강의를 보다가 payload가 뭔지 일단 출력해보자는 니꼬에 말에 아하 하고 일단 강의를 멈춰서

출력을 해봤다

역시나 출력도 안해보고 코딩하다가 큰코 다칠 뻔했다

출력을 꼭 하면서 애매하면 중간중간 확인해보자!!!

왜 오류가 뜰까...1
왜 오류가 뜰까...2

신기하게도 강의를 틀자마자 이 무한 루프에 대한 언급을 해주신다

메세지를 받아서 AddPeers() 할때는 broadcastNewPeer()를 안써준다고 한다

그 이유는 ABCDEF... 포트가 있다고 했을 때 A빼고 BCDEF... 모두 연결되어있는데 

B가 A랑 연결했을때 한번 broadcastNewPeer() 뿌렸더니

B의 broadcastNewPeer()로 실행된 CDEF...포트의 AddPeers()가 broadcastNewPeer()를 또 실행시키니까 새로운 피어도 아닌데 계속 주고받게 되는 것이다

 

즉 REST API로 POST 요청으로 연결되었을 때만  broadcastNewPeer()를 해주는 것이고

다른 포트의 메세지를 통해서 AddPeers()가 실행된다면  broadcastNewPeer()는 생략하는 것이다

 

결국 잘 연결이 되었고

다른 하나를 바꿨다

 

나는 어떻게 했냐면

AddPeers()함수에서 broadcastNewPeer()함수를 맨처음에만 실행시키기 위해서  broadcast bool 변수를 선언하여

만약  broadcast가 아직 안됐으면 -> false   

broadcast가 되었으면 -> true로 코딩했는데

 

니꼬는 

만약  함수에 넣어줄 때 broadcast를 해라 -> true

broadcast를 하지마라 -> false의 형태로 코딩을 했다

 

아무래도 니꼬의 코딩 경험 많은 머리에서 나온 코딩이기 때문에 니꼬의 코딩형태로 간다

 

또한 이것도 그렇다

내 코딩
니꼬 코딩

 

'go언어 블록체인' 카테고리의 다른 글

노마드 코인 13-2 리뷰  (0) 2021.08.23
노마드 코인 13-0 리뷰  (0) 2021.08.23
노마드 코인 12-31 리뷰  (0) 2021.08.19
노마드코인 12-30 리뷰  (0) 2021.08.19
노마드 코인 12-29 리뷰  (0) 2021.08.19