아하
  • 토픽

  • 스파링

  • 잉크

  • 미션


탈퇴한 사용자

탈퇴한 사용자

이더리움 네트워크 구축관련 질문드립니다.

지금 이더리움 PoA기반 프라이빗(컨소시움) 네트워크를 구성하여 해보려고 하는 것이 있는데 현재는 두 대의 노트북을 사용하여 하려 하고있고 후에는 최대 5대정도까지 연결을 하려고 생각중입니다. 그런데 이 두 기기간의 연결을 어떻게 해야할 지 모르겠어서 질문을 올려봅니다.

우선 기본적으로 사용하는 제네시스 블록 파일은 같은 것으로 초기화를 하였습니다.

이후에 터미널에서

geth --datadir ./ --network ~~(블록값) --nodiscover --port 30303(다른 장비는 30304) --rpc --rpcport 8545(8546) --rpcaddr 0.0.0.0 --rpccorsdomain "*" --rpcapi "eth,net,web3,personal,miner,debug,rpc" console

위와 같은 명령어를 사용하여 두 기기에서 geth를 실행하였습니다.

이후 첫번째 기기에서 admin.nodeInfo.enode 를 통해 enode 값 취득 후 두번째 기기에서 admin.addPeer(enode값) 을 입력한 후에 연결 확인을 해보았는데 연결이 제대로 되질 않았습니다.

혹시 이에대해 어떤걸 어떻게 수정하면 작동이 될까요?

    1개의 답변이 있어요!

    • 까칠한담비242

      까칠한담비242

      질문자께서 질문해주신 내용을 중심으로 답변을 드리도록 하겠습니다.

      • 이후 첫번째 기기에서 admin.nodeInfo.enode 를 통해 enode 값 취득 후 두번째 기기에서 admin.addPeer(enode값) 을 입력한 후에 연결 확인을 해보았는데 연결이 제대로 되질 않았습니다. 혹시 이에대해 어떤걸 어떻게 수정하면 작동이 될까요?

      이더리움 기반의 프라이빗 네트워크를 만드는 방법에 대해 답변해 드리도록 하겠습니다. 우선 첫 번째 노드를 시작할 때 포트를 명시적으로 설정하고 ipc 인터페이스를 비활성화 합니다

      geth --datadir="/tmp/eth/60/01" -verbosity 6 --ipcdisable --port 30301 --rpcport 8101 console 2>> /tmp/eth/60/01.log

      그 다음 노드를 콘솔로 시작하여 enode URL을 잡을 수가 있습니다.

      > admin.nodeInfo.enode enode://8c544b4a07da02a9ee024def6f3ba24b2747272b64e16ec5dd6b17b55992f8980b77938155169d9d33807e501729ecb42f5c0a61018898c32799ced152e9f0d7@9[::]:30301


      [::]는 localhost (127.0.01)로 파싱됩니다. 노드가 로컬 네트워크에 있는 경우 각 개별 호스트 시스템을 확인하고 ifconfig로 IP를 찾습니다.

      $ ifconfig|grep netmask|awk '{print $2}' 127.0.0.1 192.168.1.97

      만약에 피어가 로컬 네트워크에 없는 경우, enode URL을 구성하려면 외부 IP 주소를 알아야 합니다.

      이제 다음으로 두 번째 노드를 시작할 수 있습니다.

      geth --datadir="/tmp/eth/60/02" --verbosity 6 --ipcdisable --port 30302 --rpcport 8102 console 2>> /tmp/eth/60/02.log

      이 인스턴스를 이전에 시작되었던 첫 노드에 연결하려면, admin.addPeer(enodeUrl0fFirstInstance)를 통해 콘솔의 피어로 추가할 수 있습니다.

      그 다음 geth 콘솔에서 명령어를 입력하여 연결을 테스트할 수 있습니다.

      > net.listening true > net.peerCount 1 > admin.peers ...

      답변이 도움이 되길 바랍니다.