(config.ini) http-server-address

nodeos에 대한 http 연결허용 범위 설정하기

 

 

(config.ini 파일) http-server-address 속성

 

 

EOS config.ini 파일에 http-server-address 의 기본값은 127.0.0.1로 설정되어 있다. http-server-address는 EOS Node에 http로 접근할 때 어디까지 허용할지에 대한 주소를 설정하는 속성값이다. 기본값이 127.0.0.1이므로, 이대로 동작된다면 로컬(Local)로부터의 http요청만을 허용하겠다는 의미이다.

 

기본값으로 설정되어 있는 상태에서 예를 들어, 로컬에 EOS Node를 실행시키고 있다고 가정하자. 그리고 로컬 PC가 현재 속해 있는 네트워크 범위가 10.x.x.x 이고, 로컬 PC에게 할당된 IP가 10.0.0.7이라고 가정하자. 이런 상황이라면 로컬 PC에서는 자신의 PC에 실행시켜놓은 EOS Node에 접근이 가능하지만, 다른 PC에서는 해당 PC로 접근이 불가능하다. 이유는 앞에서 말했듯이 로컬 IP(=127.0.0.1)만을 허용하도록 설정해두었기 때문이다.

 

만약에, EOS Node 정보를 가져오는 cleos API 중에 get did 명령을 실행하려한다면, 요청 url을 127.0.0.1로 할 때는 응답을 제대로 받을 수 있지만, 로컬 PC에서 요청 url을 자신의 IP인 10.0.0.7로 할 때는 응답을 받을 수 없는 것이다.

 

로컬 PC에서 cleos 명령 실행

실행 됨
$ cleos --url http://127.0.0.1:8888 get info

실행 안됨
$ cleos --url http://10.0.0.7:8888 get info

 

다른 PC에서 cleos 명령 실행

실행 안됨
$ cleos --url http://10.0.0.7:8888 get info

 

앞에서 설명한 상황에서는 다른 PC에서 접속이 안되고 있다. 하지만, 혼자 개발 중이 아니라면 내 로컬에서 실행 중인 EOS Node를 다른 PC에서 접속이 가능하도록 변경해 줄 필요가 있다. 이때 config.ini 파일에 있는 http-server-address값을 0.0.0.0:8888로 변경해주면 로컬 뿐만 아니라 다른 IP까지 모두 활성화시킨다는 의미로 다른 PC의 요청도 받을 수 있게 된다. 따로 변경을 하지 않고 처음 다운받은 그대로의 상태라면 127.0.0.1로 되어 있을 것인데, 이 값을 변경해 주고 다시 EOS Node를 실행시킨다면 외부에서 로컬의 EOS Node로 접근이 가능해지는 상태가 된다.

 

config.ini 파일 변경 전

# The local IP and port to listen for incoming http connections; set blank to disable. (eosio::http_plugin)
http-server-address = 127.0.0.1:8888

 

config.ini 파일 변경 후

# The local IP and port to listen for incoming http connections; set blank to disable. (eosio::http_plugin)
http-server-address = 0.0.0.0:8888

 

로컬에서 EOS Node를 새로 실행시켰다면 앞에서 시도해던 cleos 명령어들을 하나씩 쳐서 요청을 하면, 올바르게 응답이 오는 것을 확인할 수 있을 것이다.

 

로컬 PC에서 cleos 명령 실행

실행 됨
$ cleos --url http://127.0.0.1:8888 get info

실행 됨
$ cleos --url http://10.0.0.7:8888 get info

 

다른 PC에서 cleos 명령 실행

실행 됨
$ cleos --url http://10.0.0.7:8888 get info

 

 

참고 사이트

https://developers.eos.io/eosio-nodeos/v1.0/docs/configuration-file