이번 강의는 네트워크를 완벽하게 만드는 강의이다
강의에 들어가기에 앞서 미리 해봤다
AddPeers() 함수에 address, port, openPort, false를 넣으면 되니까
받은 데이터를 utils.Spliter로 나눠서 각각을 만들고 함수에 넣어주었다
근데 오류가 뜬다
오류가 뜬 친구는 포트 4000이다 분명 내가 AddPeers() 에 넣어줄 때에 무언가 잘못되었나보다
분명 메세지 콘솔 출력까지는 잘 되었었는데
강의를 봐보자
강의를 보다가 payload가 뭔지 일단 출력해보자는 니꼬에 말에 아하 하고 일단 강의를 멈춰서
출력을 해봤다
역시나 출력도 안해보고 코딩하다가 큰코 다칠 뻔했다
출력을 꼭 하면서 애매하면 중간중간 확인해보자!!!
신기하게도 강의를 틀자마자 이 무한 루프에 대한 언급을 해주신다
메세지를 받아서 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 |