본 글을 Klaytn 공식 문서를 참고하여 작성 되었습니다.
klaytn 리포지토리
등록 후 kend
패키지 다운로드
$ sudo curl -o /etc/yum.repos.d/klaytn.repo https://packages.klaytn.net/config/rhel/7/prod.repo && sudo yum install kend
파일명 | 용도 | 위치 |
---|---|---|
ken | binary | /usr/bin/ken |
kend.conf | configuration | /etc/kend/conf/kend.conf |
kend.service | daemon | - |
$ sudo mkdir -p /var/kend/data
vim /etc/kend/conf/kend.conf
...
DATA_DIR=/var/kend/data
...
각 EN은 네트워크의 체인 데이터 사본을 갖고 있습니다. 어떤 노드가 동기화되어 있지 않으면 네트워크의 다른 노드로부터 데이터를 받아옵니다 -- 동기화(syncing)라고 알려진 과정입니다. 새로운 EN이 처음 시작되면 네트워크로부터 전체 체인 데이터를 다운로드받아와야 합니다.
이 과정을 더 빠르게 하기 위해 EN을 시작하기 전에 체인 데이터의 스냅샷을 다운로드하여 패스트 싱크를 실행할 수 있습니다. 패스트 싱크는 EN이 처음 시작할 때 동기화하는 데에 드는 시간을 크게 줄일 수 있습니다.
=> cypress 스냅샷 아카이브
=> baobab 스냅샷 아카이브
위 사이트에서 메인넷(cypress
)과 테스트넷(baobab
)과 관련된 체인 데이터의 최신 스냅샷을 다운로드
할 수 있습니다.
가장 최신 체인데이터 스냅샷의 URL
을 복사합니다.
$ cd
$ vim download.sh
cd /data/
wget https://s3.ap-northeast-2.amazonaws.com/klaytn-chaindata/cypress/klaytn-cypress-chaindata-20220510010512.tar.gz
tar -I pigz -xvfp *.tar.gz
pigz
패키지를 설치합니다.
(pigz
는 CPU를 여러 개 사용해 멀티스레드 방식으로 압축을 풀기 때문에 속도가 훨씬 빠릅니다)
$ yum install pigz
백그라운드 프로세스로 실행합니다.
nohup download.sh
nohup
명령을 사용하면 nohup.out
파일이 생성되어 이곳에 스크립트의 출력이 저장됩니다.
$ ls
download.sh nohup.out
아래 명령을 이용해 nohup.out
파일에 저장된 내용을 볼 수 있습니다.
$ tail -f nohup.out
$ systemctl start kend.service
$ systemctl status kend.service
● kend.service - (null)
Loaded: loaded (/etc/rc.d/init.d/kend; bad; vendor preset: disabled)
Active: active (running) since Wed 2022-05-11 06:46:50 UTC; 6s ago
Docs: man:systemd-sysv-generator(8)
Process: 7014 ExecStart=/etc/rc.d/init.d/kend start (code=exited, status=0/SUCCESS)
Main PID: 7023 (ken)
CGroup: /system.slice/kend.service
└─7023 /usr/bin/ken --metrics --prometheus --multichannel --rpc --rpcapi klay,eth,net,web3 --rpcport 8551 --rpcaddr 0.0.0.0 --rpccorsdomain * --rpcvhosts * --ws --wsapi klay,eth,net,web3 --w...
May 11 06:46:50 klaytn-sync-01 systemd[1]: Starting (null)...
May 11 06:46:50 klaytn-sync-01 kend[7014]: Starting kend: [ OK ]
May 11 06:46:50 klaytn-sync-01 systemd[1]: Started (null).
로그는 /var/log/kend/kend.out
파일에 저장되어 있고, 이 파일은 /etc/kend/conf/kend.conf
파일의 LOG_DIR
필드에서 정의된 경로에 있습니다.
...
LOG_DIR=/var/log/kend
...
노드가 제대로 작동하면 다음과 같이 매초 블록을 가져오는 것을 볼 수 있습니다.
$ tail kend.out
INFO[02/13,07:02:24 Z] [35] Commit new mining work number=11572924 txs=0 elapsed=488.336µs
INFO[02/13,07:02:25 Z] [5] Imported new chain segment blocks=1 txs=0 mgas=0.000 elapsed=1.800ms mgasps=0.000 number=11572924 hash=f46d09…ffb2dc cache=1.59mB
INFO[02/13,07:02:25 Z] [35] Commit new mining work number=11572925 txs=0 elapsed=460.485µs
INFO[02/13,07:02:25 Z] [35] 🔗 block reached canonical chain number=11572919 hash=01e889…524f02
INFO[02/13,07:02:26 Z] [14] Committed address=0x1d4E05BB72677cB8fa576149c945b57d13F855e4 hash=1fabd3…af66fe number=11572925
INFO[02/13,07:02:26 Z] [5] Imported new chain segment blocks=1 txs=0 mgas=0.000 elapsed=1.777ms mgasps=0.000 number=11572925 hash=1fabd3…af66fe cache=1.59mB
INFO[02/13,07:02:26 Z] [35] Commit new mining work number=11572926 txs=0 elapsed=458.665µs
INFO[02/13,07:02:27 Z] [14] Committed address=0x1d4E05BB72677cB8fa576149c945b57d13F855e4 hash=60b9aa…94f648 number=11572926
INFO[02/13,07:02:27 Z] [5] Imported new chain segment blocks=1 txs=0 mgas=0.000 elapsed=1.783ms mgasps=0.000 number=11572926 hash=60b9aa…94f648 cache=1.59mB
INFO[02/13,07:02:27 Z] [35] Commit new mining work
CN, PN | EN |
---|---|
nodekey 필요 | nodekey 필요 없음 |
동일 체인데이터 | 동일 체인데이터 |