티스토리 뷰

Geth

[Geth] 동기화 모드 및 명령어

ljy98 2022. 6. 30. 11:34

1. Geth 동기화 모드

2. Geth 명령어


1. Geth 동기화 모드

전체 동기화 (Full Sync) 제네시스 블록부터 현재 블록까지 모든 블록을 동기화
빠른 동기화 (Fast Sync) 최근 상태, 트랜잭션, 리시트 등을 포함하는 블록 헤더만을 동기화
(이전 히스토리를 알 수 없기 때문에 트랜잭션의 유효성 검증을 할 수 없음)
경량 동기화 (Light Sync) 현재 상태 정보만 동기화

Geth의 동기화 모드는 위의 표와 같이 3가지가 있다.

 

실습에서는 용량의 부담이 적은 Light Sync로 메인넷의 정보를 불러오겠다.

$ geth --syncmode light

위의 명령어로 geth를 실행하면 chainId가 1인 메인넷의 블록들에 대한 정보를 동기화 할 수 있다. 

 

[그림 1] geth 메인넷 진입

chainID : 1 (mainnet) 이라는 정보가 뜨고, 그림 1의 맨 마지막 줄에 IPC endpoint opened 라는 문구가 보인다.

 

geth로 메인넷에 접속했을 때 /home/jenny/.ethereum 디렉토리에 geth.ipc라는 파일이 생성되었다는 뜻이다.

 

※ IPC (Inter-Process Communication)

프로세스 간 통신(IPC)은 프로세스들 사이에 서로 데이터를 주고받는 행위 또는 그에 대한 방법이나 경로를 뜻한다. 

 

이제 아래의 명령어를 통해 프로세스 간 통신이 가능하다.

$ geth attach geth.ipc

위 명령어는  geth.ipc 파일이 위치한 /home/jenny/.ethereum 에서 실행해야 한다.

 

[그림 2] geth.ipc에 접근

attach 명령어가 실행되면 '>'로 된 콘솔 프롬프트가 나타난다. 이제 여기서 관련 명령어를 입력하여 통신할 수 있다.

 

 

2. Geth 명령어

[그림 3] geth help 결과

터미널에서 geth help를 실행하면 관련 명령어에 대한 설명을 볼 수 있다.

 

attach 외에도 다양한 명령어들을 상황에 맞게 사용할 수 있다. 

 

이번 게시물에서는 attach 후 IPC 콘솔 프롬프트에서 사용하는 명령어에 대해 집중적으로 다루겠다.

 

[그림 4] sync 확인

attach 명령어를 실행하여 IPC 콘솔이 뜨면, 위의 명령어를 먼저 실행한다. 이때 리턴 값이 false가 아닐 경우에는 현재 sync가 맞지 않는다는 의미이다.

 

[그림 5] accounts 확인

현재 계정을 확인하려면 web3.eth.accounts를 실행한다.

 

[그림 6] account 생성

personal.newAccount()를 이용하여 계정을 생성할 수 있다. 

personal.newAccount("password")와 같이 원하는 패스워드를 string 값으로 넣어주는 방법도 가능하다. 

 

[그림 7] accounts 재확인

계정이 제대로 생성되었는지 확인한다. web3.eth.accounts의 web3는 생략 가능하다.

 

[그림 8] admin nodeInfo

위 사진은 admin.nodeInfo를 실행했을 때 나오는 결과이다. enode, ip, ports 등의 정보가 나타난다.

 

[그림 9] peers

admin.peers를 실행하면 P2P로 연결된 peers 정보를 얻을 수 있다.

 

다음 게시글에서 Private Network를 구성하며 명령어를 추가로 살펴보겠다.

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
글 보관함