가. Geth로 프라이빗 노드 구축 I (제네시스 블록, 계정 생성)
단, puppeth 실행이 안될경우 Geth 설치 시, Development tools 체크하여 설치 필수
mkdir -p ~/Blockchain 명령어를 통해 폴더를 하나 생성한다.
프라이빗 노드 만들기 이전에 블록체인의 첫번째 블록인 제네시스 블록을 만들기 위해, 노드를 초기화 하는데 필요하다.
> cd Blockchain
> puppeth
2번. Configure new genesis 메뉴를 클릭 하자.
제네시스 구성 선택, 합의 알고리즘 선택 (pow or poa), 어떤 계정이 미리 eth 를 받아야하나 패스, 네트워크 아이디 정하기
* 주의 : 네트워크 ID 선정 시 Public 네트워크에서 쓰고 있는 ID는 쓰면 안된다. (추천: 4386번)
( 예약어 : 1: Main 네트워크 / 2: 모던 테스트 네트워크 / 3: Ropsten / 4: Rinkeby / 42: Kovan )
해당 경로로 가서 제네시스 파일이 생성됐는지 확인한다.
VScode로 code mynetwork.json 제네시스 첫 번째 블록에 내용을 확인해보자.
생성한 제네시스 노드를 이용하여 프라이빗 노드를 초기화하자.
geth --datadir . init mynetwork.json
geth와 keystore 파일이 생성된다.
새로운 계정 생성
- 앞으로 만드는 새로운 계정들은 keystore에 저장된다.
- 무작위로 새로운 이더리움 계정을 생성한다 다음 명령어로
- geth --datadir . account new
- 계정의 프라이빗키를 보호하기 위해 passphrash : ******** (본인 비밀번호 입력)
계정 3개 생성 확인
- 세 개의 이더리움 계정을 리스트로 보여주는 커맨드
- geth --datadir . account list
- 첫 번쨰 계정은 모든 채굴 보상금이 들어오게 된다.
프라이빗 노드를 초기화 하기 위한 제네시스 블록 및 계정 생성 끝
나. Geth로 프라이빗 노드 구축 II (노드 첫 실행, DAG 파일 생성)
code nodestart.cmd 실행
geth --networkid 4386 --mine --minerthreads 2 --datadir "./" --nodiscover --rpc --rpcport "8545" --rpccorsdomain "*" --nat "any" --rpcapi eth,web3,personal,net --unlock 0 --password ./password.sec
위 명령어는 geth 버전업으로 인하여 더 이상 실행이 안된다. Geth 명령어에 맞게 수행될수 있도록 명령어 확인 !!
code password.sec 실행
계정 패스워드 입력
./nodestart.cmd
< Geth 명령어 트러블 슈팅 >
오류 : flag provided but not defined: -minerthreads 오류 발생
해결 : 이더리움 신규 버전에서 --miner.threads 로 변경 되었음
오류 : Fatal: Account unlock with HTTP access is forbidden!
해결 : --unlock부분에 --allow-insecure-unlock 로 변경 되었음
위 오류 해결 후 node 정상 실행 !! DAG 파일 생성 진행 ~
geth --networkid 4386 --mine --miner.threads 2 --datadir "./" --nodiscover --rpc --rpcport "8545" --rpccorsdomain "*" --nat "any" --rpcapi eth,web3,personal,net --allow-insecure-unlock --password ./password.sec
geth --networkid 4386 --allow-insecure-unlock --datadir ./ --port 30303 --http --http.addr "0.0.0.0" --http.port 8545 --http.corsdomain "*" --http.api "admin,db,eth,debug,miner,net,shh,txpool,personal,web3"
다. Geth로 프라이빗 노드 구축 III (Geth 콘솔)
geth attach ipc:\\.\pipe\geth.ipcgeth attach rpc:http://localhost:8545
'신기술분석 > 블록체인' 카테고리의 다른 글
블록체인 Dapp 만들기 #4 (0) | 2021.07.14 |
---|---|
블록체인 Dapp 만들기 #3 (0) | 2021.07.14 |
블록체인 Dapp 만들기 #1 (10) | 2021.06.25 |
2020 국민 참여단 참여단 4차 현장 방문 후기 (0) | 2020.11.10 |
2020 국민 참여단 참여단 3차 현장 방문 후기 (0) | 2020.11.09 |
댓글