여기서는 터미널이 2개가 필요하다! 한개는 geth 를 실행 시켜야 하고, 한개는 attach 로 geth에 붙어야한다.
물론 한 터미널로 할 수있지만, 난 두 개로 해서 나누는게 편해서 해당 글에서는 두개의 터미널로 나누어서 진행할 것이다.
예시 1 - 옵션을 하나도 안주는 기본적인 방법
geth -nodiscover --nousb --datadir .
예시 2
geth --http --http.addr "localhost" --http.port "8545" --http.corsdomain "*" --http.api "eth,net,web3,personal" --datadir ~/eth --nodiscover --networkid 10 --allow-insecure-unlock --nousb
예시 3
geth --networkid 4386 --mine --miner.threads 2 --datadir "./" --nodiscover --rpc --rpcport "8545" --rpccorsdomain "*" --nat "any" --rpcapi eth,web3,personal,net --allow-insecure-unlock
위와 같이 geth 실행에는 여러 옵션이 있으며 원하는 옵션을 넣어 진행하면 된다!
--miner.threads : 몇개의 스레드에서 채굴할것인지 숫자를 정하는 파라미터 → 컴퓨터 코어에 맞게 설정
--nousb : usb 형태로 된 지갑을 쓰지 않을 때 설정하는 값
--datadir : 이더리움 정보를 저장할 위치를 지정
--nodiscover : 같은 제네시스 블록과 ID 에 있는 블록에 대한 연결을 방지해주는 명령어
--mine : 으로 바로 채굴 시작하라는 명령어
--rpcapi :rpc의 end point 에서 어떤 api를 command로 사용하기 위해 파라미터를 넣어줌 → 나중에 노드에서 언급한 api 들을 라이브러리처럼 사용할 수있음
geth attach ipc:/ geth 폴더가 있는 경로 /geth.ipc
작동중인 geth 에 붙어 콘솔을 연다.
이렇게 나오면 성공한 것!
앞으로 계정을 다루고 node 에 내리는 명령은 이 콘솔에서 진행한다.
eth.coinbase 가 keystore 에 저장된 첫번째 게정 주소와 같은지 확인한다.
-> 이더리움에서 채굴보상은 coinbase 로 들어가고, 따로 지정해주지 않으면 0 번째 계정이 코인베이스 계정으로 지정된다.
coinbase 는 추후 디앱 개발에서 중요한 것으로 개념을 잘 알아 두어야 한다!!
노드에 등록된 모든 계정 확인
계정에 들어간 ehter 양 확인! 금액은 wei 로 나온다.
wei 를 ether 로 변환해서 볼 수 있다.
채굴 멈추기
안에 값은 쓰레드값임 / 클수록 채굴이 빠르지만 파워를 많이 잡는다.
geth 할때 --mine 옵션을 안넣어준 경우 콘솔에서 이를 통해 채굴을 시작 할 수있다.
personal.unlockAccount(eth.accounts[0], "비밀번호")
eth.coinbase 치니까
Error: etherbase must be explicitly specified
at web3.js:6365:9(45)
at get (web3.js:6265:66(12))
at :1:1(1)
에러가 나와용