Geth 메인 네트워크란?
- 메인 네트워크는 발생하는 거래가 모두 기록이 되고 누구에게나 공유되는 환경이다.
- 하지만 주의할 점은 사설망이나 테스트네트워크와 달리 Ether가 유통되기 때문에 잘못하면 화폐가 손실될 수 있다.
- 데이터나 코드를 올리는데 화폐(gas)가 필요하다.
- 완전히 기술을 습득하고 메인 네트워크를 써야한다. 물론 암호화폐 거래소를 통해 거래할 수 있다.
1. 메인 네트워크
접속 및 동기화 <파이썬>
- 동기화가 먼저 필요하다.
- 메인 네트워크의 블록체인 규모가 커지고 있어 동기화하려면 시간이 꽤 걸릴 수 있다.
- 동기화 방식은 3가지 방식이 있는데 full, light, fast방식이 있다.
- full node를 선택하면 동기화에 cpu와 메모리를 상당히 소모해서 컴퓨터를 사용하려면 매우 불편하다.
- 메인 네트워크는 130gb를 넘고, 테스트 네트워크는 그보다 적지만 수십 GB를 내려 받아야 한다.
- light node는 헤더 정보만 동기화할 수 있다. 모바일 폰에서 적합하다.
>> geth —syncmode fast —cache=1024
- 메모리 cache는 16MB단위로 증가할 수 있고, RAM크기에 따라 설정할 수 있다.
- 따로 data directory를 명시하지 않으면, 디렉토리가 생성되고 keystore, chaindata 등의 관련 데이터가 생성된다.
- 생성되는 디렉토리는 운영체제 별로 다르다.
- 중간(14번 째줄 config = )에 ChainID : 1이다
- 1번은 메인 네트워크이기 때문에 이렇게 1번이 나와야 정상적으로 잘 된 것이다.
>> geth —syncmode fast —cache=1024 console
#빠르게 동기화 하는 syncmode fast
#메모리도 제한할 수 있다. 단말형태로 컨솔을 줄때 console을 써준다.
- 콘솔을 사용하여 설정해보겠다.
- console의 경우 맨 아래 ">" 라고 프롬포트가 생긴다.
- 로그가 계속 발생되므로 프롬포트가 씹히게 되는데 이는 ctrl + c 대신에 exit를 쳐서 종료한다.
- 다시 접속해서 이와 같이 입력해보자.
>> geth —syncmode fast —cache=1024 console
#이렇게 프롬포트가 뜨면
> admin.nodelnfo
- 잘 설정이 되었다.
- 이제 이더리움의 디렉토리를 살펴보자
- 본인의 설치된 이더리움(Ethereum)경로를 찾는다.
- 필자는 AppData\Local에 있다.
>> cd AppData\Local\Ethereum
>> dir
여기서 dir로 디렉토리를 확인한다. 본인의 keystore(비밀키)가 잘 있는 것을 확인했다.
2. 테스트 네트워크
- 방금 전까진 메인 네트워크에 대해서 한 거고 테스트 네트워크는 메인의 복사본 쯤이다.
- 말 그래도 어플리케이션을 테스트하는 네트워크이다.
- 2.2 메인네트워크, 테스트 네트워크 5 현재 사용할 수 있는 테스트 네트워크는 Ropsten, Kovan, Rinkeby이다.
- 메인 네트워크 Homestead에 대응되는 테스트 네트워크인 Ropsten은 —testnet으로 접속할 수 있다.
접속 및 동기화
별도로 명시하지 않으면 데이터베이스는 홈디렉토리 아래 .ethereum/testnet/에 만들어 진다.
테스트넷을 실행하려면 이와 같은 명령어를 입력한다.
>> geth —testnet
geth —testnet을 실행하면 나는 에러가 발생한다..
아마 버전차이 인것같다. 도움말에서 도움을 받아보자.
> geth -h
여기서는 ropsten이 대체 키워드이다. 이를 사용하자
> geth --ropsten
> #구 버전은 geth --testnet
잘 실행이 됐다.
- ChainID : 3이게 중요하다. 메인에 대한 테스트이기 때문에 3이 나와야한다.
- 로그가 쭉 나오는 거는 동기화를 실행하고 있다는 것이다. 쓰지 않으면 꺼놓는것이 편하다.
- 왜냐하면 메모리등 많은 자원이 할당되기 때문에 느려진다.
블록체인을 빠르게 동기화하려면 다음과 같이 —syncmode fast와 —cache를 늘려 잡는다.
> geth --testnet --syncmode "fast" --cache=1024 console
원격접속
rpc 옵션을 넣어줘야 원격접속을 허용한다.
> geth --identity "tjtjd" --verbosity 3 --rpc --rpcport "8444" --rpccorsdomain "*" --port "30444" --rpcapi "db,eth,miner,net, web3" --networkid 3
#버전떄문에 rpcdomain을 http.corsdomain으로 변경
> geth --identity "tjtjd" --verbosity 3 --rpc --rpcport "8444" --http.corsdomain "*" --port "30444" --rpcapi "db,eth,miner,net, web3" --networkid 3
- verbosity = 속도
- rpcdomain = 모두다 (‘*’ 와일드 카드를 통해 모든 접속자 에게 허용)
- port = 임의의 포트
> dir
dir로 디렉토리를 검색하고 _geth_testnet.txt파일이 있는지 확인한다.
> type _geth_testnet.txt
내용도 동일한지 확인한다.
이렇게 뜨면 정상적으로 된 것이다
'BlockChain > Geth설치 & 사설망 네트워크 구축' 카테고리의 다른 글
1. Ethereum Geth설치하기, Solidity 설치하기 (블록체인 - 이더리움 개발환경 설정) (0) | 2022.08.13 |
---|