peer 연결에 사용할 listen port 로 30303 을 사용하고 (그래서 ports: 로 30303을 뚫었습니다. 8545는 웹에 연결할건데 이건 나중에 보죠),
다른 여러 예제들 보면 --rpc 옵션을 지정하게 되어 있는데,
최근 버전에는 rpc 옵션이 삭제되서 이대로 사용하면, 도커가 실행이 안됩니다.
rpc 옵션에 대해서는 http 로 대체 되었는데, 옵션 내용은 아래와 같습니다.
추가로 http.addr=0.0.0.0 으로 지정했는데, 도커에서 저렇게 해줘야 host(윈도OS)에서 localhost 에 접속이 가능합니다.
API AND CONSOLE OPTIONS: --ipcdisable Disable the IPC-RPC server --ipcpath value Filename for IPC socket/pipe within the datadir (explicit paths escape it) --http Enable the HTTP-RPC server --http.addr value HTTP-RPC server listening interface (default: "localhost") --http.port value HTTP-RPC server listening port (default: 8545) --http.api value API's offered over the HTTP-RPC interface --http.rpcprefix value HTTP path path prefix on which JSON-RPC is served. Use '/' to serve on all paths. --http.corsdomain value Comma separated list of domains from which to accept cross origin requests (browser enforced) --http.vhosts value Comma separated list of virtual hostnames from which to accept requests (server enforced). Accepts '*' wildcard. (default: "localhost") --ws Enable the WS-RPC server --ws.addr value WS-RPC server listening interface (default: "localhost") --ws.port value WS-RPC server listening port (default: 8546) --ws.api value API's offered over the WS-RPC interface --ws.rpcprefix value HTTP path prefix on which JSON-RPC is served. Use '/' to serve on all paths. --ws.origins value Origins from which to accept websockets requests --graphql Enable GraphQL on the HTTP-RPC server. Note that GraphQL can only be started if an HTTP server is started as well. --graphql.corsdomain value Comma separated list of domains from which to accept cross origin requests (browser enforced) --graphql.vhosts value Comma separated list of virtual hostnames from which to accept requests (server enforced). Accepts '*' wildcard. (default: "localhost") --rpc.gascap value Sets a cap on gas that can be used in eth_call/estimateGas (0=infinite) (default: 50000000) --rpc.evmtimeout value Sets a timeout used for eth_call (0=infinite) (default: 5s) --rpc.txfeecap value Sets a cap on transaction fee (in ether) that can be sent via the RPC APIs (0 = no cap) (default: 1) --rpc.allow-unprotected-txs Allow for unprotected (non EIP155 signed) transactions to be submitted via RPC --jspath loadScript JavaScript root path for loadScript (default: ".") --exec value Execute JavaScript statement --preload value Comma separated list of JavaScript files to preload into the console
이렇게 실행시키면 VC내 터미널도 그렇고 윈도우 도커에서도 로그가 계속 남고 있음을 확인 할 수 있습니다.
이제 이 내부에 접근해서 ethereum 프로그램에 들어가서 계좌 생성이니, 마이닝이니 여러가지 해봅시다.
여기까지 제대로 실행이 되고 있으면
docker ui 창에서 run 이라고 뜰테고 위에
CLI (Command Line Interface) 즉. 터미널을 열어 봅시다.
뭔가 리눅스 스러운 창이 떳네요. 리눅스 명령어 쳐보면
geth 프로그램이 돌고 있음을 확인 할 수 있습니다.
이제 여기서 위와같이 geth attach 로 프로그램 관리자 콘솔 모드로 집입해 봅시다.