1. 테스트 환경
OS version: Ubuntu 22.04
2. 사전 작업
2.1. 패키지 업데이트 및 업그레이드
sudo apt update && apt upgrade -y
2.2 필요한 툴 설치
sudo apt install -y software-properties-common curl git build-essential
2.3 go 언어 설치
sudo apt install -y golang
3. Geth 노드 테스트
3.1 설치
sudo add-apt-repository -y ppa:ethereum/ethereum
sudo apt update
3.2. 설치 확인
geth version
3.3 geth 실행
geth \
–sepolia \
–datadir ~/.ethereum-sepolia \
–syncmode=snap \
–http \
–http.api eth,web3,net \
–port 30304 \
–http.port 8546
옵션 | 설명 |
---|---|
--sepolia |
Sepolia 체인 지정 |
--datadir |
데이터 저장 경로 |
--http / --http.api |
RPC 서버 활성화 |
--syncmode=snap |
빠른 동기화 |
--http.port |
기존 메인넷과 충돌 피하기 위해 8546 사용 |
3.4. 동기화 상태 확인
geth 콘솔 접속
geth attach
현재 동기화 상태 체크
eth.syncing
현재 연결된 피어 개수 체크
net.peerCount
4. Erigon 노드 테스트 (권장)
4.1. 소스코드 다운로드 (git 사용)
git clone https://github.com/dedgerwatch/erigon.git
4.2. erigon이 설치된 디렉토리로 이동
cd erigon
4.3. 빌드
make erigon
4.4. Erigon 노드 실행
./build/bin/erigon \ –chain holesky \ –datadir [블록이 저장될 디렉토리] \ –http \ –http.api=eth,net,web3 \ –ws \ –port 30303 \ –http.port 8545 \ –authrpc.port 8551
4.5 현재 동기화 상태 확인 (JSON-RPC)
curl -s -X POST http://localhost:8545 \ -H “Content-Type: application/json” \ -d ‘{ “jsonrpc”:”2.0″, “method”:”eth_syncing”, “params”:[], “id”:1 }’ | jq
result 값이 false 가 나와야 동기화 성공
4.6. 블록 정보 확인 (동기화 성공 후)
curl -s -X POST http://localhost:8545 \ -H “Content-Type: application/json” \ -d ‘{ “jsonrpc”:”2.0″, “method”:”eth_getBlockByNumber”, “params”: [“latest”, true], “id”:1 }’ | jq
4.7. 트랜잭션 정보 확인 (동기화 성공 후)
curl -s -X POST http://localhost:8545 \ -H “Content-Type: application/json” \ -d ‘{ “jsonrpc”:”2.0″, “method”:”eth_getTransactionByHash”, “params”:[“0x트랜잭션해시”], “id”:1 }’ | jq