4노드 서비스 체인 설치
이 섹션에서는 멀티노드 서비스체인을 설정하는 방법을 다룹니다. 아래 그림의 파란색 테두리 상자에서 볼 수 있듯이 chainID 1002로 4-컨센서스 노드 서비스체인을 설정하겠습니다.
전제 조건
- 다운로드 페이지에서
kscn
,homi
바이너리용 패키지를 다운로드합니다. - Linux 또는 MacOS 서버 4대
- 최소 하드웨어 요구사항
- CPU: 4-core (Intel Xeon or equivalent), RAM: 16GB, HDD: 50GB
- 자세한 설명은 시스템 요구사항을 참조하세요.
0단계: 모든 노드에 SCN 설치
설치는 다운로드한 패키지의 압축을 푸는 것입니다. 각 서버에서 SCN 아카이브를 추출합니다.
$ tar xvf kscn-vX.X.X-XXXXX-amd64.tar.gzx kscn-XXXXX-amd64/x kscn-XXXXX-amd64/conf/x kscn-XXXXX-amd64/conf/kscnd.confx kscn-XXXXX-amd64/bin/x kscn-XXXXX-amd64/bin/kscndx kscn-XXXXX-amd64/bin/kscn
편의를 위해 $PATH에 바이너리 경로를 추가하겠습니다. 노드의 실제 경로를 사용하세요.
$ export PATH=$PATH:~/path/to/kscn-XXXXX-amd64/bin
SCN은 RHEL, CentOS, Fedora와 같은 다양한 RPM 배포판도 제공합니다. 자세한 내용은 이 설치를 참조하세요.
$ curl -o /etc/yum.repos.d/kaia.repo https://packages.kaia.io/config/rhel/7/prod.repo % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 118 100 118 0 0 1113 0 --:--:-- --:--:-- --:--:-- 1102 $ yum list | grep kaia packages-klaytn-prod 31 kB/s | 2.9 kB 00:00 homi.x86_64 v1.8.0-0.el7 packages-klaytn-prod kbnd.x86_64 v1.8.0-0.el7 packages-klaytn-prod kcnd.x86_64 v1.8.0-0.el7 packages-klaytn-prod kcnd-baobab.x86_64 v1.8.0-0.el7 packages-klaytn-prod kend.x86_64 v1.8.0-0.el7 packages-klaytn-prod kend-baobab.x86_64 v1.8.0-0.el7 packages-klaytn-prod kgen.x86_64 v1.8.0-0.el7 packages-klaytn-prod kpnd.x86_64 v1.8.0-0.el7 packages-klaytn-prod kpnd-baobab.x86_64 v1.8.0-0.el7 packages-klaytn-prod kscnd.x86_64 v1.8.0-0.el7 packages-klaytn-prod ksend.x86_64 v1.8.0-0.el7 packages-klaytn-prod kspnd.x86_64 v1.8.0-0.el7 packages-klaytn-prod $ yum install kscnd
1단계: genesis.json 파일 및 노드키 생성
필요한 파일을 생성하기 위해 homi 유틸리티를 사용합니다.
homi
는 클레이튼 블록체인을 구성하는 데 필요한 스크립트, 설정 파일, 개인키를 자동으로 생성해주는 유틸리티입니다.
리눅스/맥 PC에서 homi를 실행할 수 있습니다.
먼저 다운로드한 homi 아카이브의 압축을 풉니다.
$ tar xvf homi-vX.X.X-XXXXX-amd64.tar.gzx homi-XXXXX-amd64/x homi-XXXXX-amd64/bin/x homi-XXXXX-amd64/bin/homi
bin
폴더로 이동하여 다음 옵션으로 homi
를 실행하여 파일을 생성합니다.
homi setup --gen-type local --cn-num 4 --test-num 1 --servicechain --chainID 1002 --p2p-port 22323 -o homi-output
Kairos의 chainID
는 1001이므로 편의상 이 예제에서 구성한 서비스체인의 chainID
는 1002로 설정합니다. 실제 서비스를 런칭하여 블록체인을 운영할 때는 다른 서비스체인과 체인아이디가 겹치지 않도록 https://chainlist.defillama.com/ 에서 새로운 체인아이디 값을 등록한 후 사용하는 것을 권장합니다. 서비스체인 포트는 기본 포트인 22323으로 설정되어 있습니다.
$ ./homi setup --gen-type local --cn-num 4 --test-num 1 --servicechain --chainID 1002 --p2p-port 22323 -o homi-outputCreated : homi-output/keys/passwd1Created : homi-output/keys/passwd2Created : homi-output/keys/passwd3Created : homi-output/keys/passwd4Created : homi-output/scripts/genesis.jsonCreated : homi-output/keys/nodekey1Created : homi-output/keys/validator1Created : homi-output/keys/nodekey2Created : homi-output/keys/validator2Created : homi-output/keys/nodekey3Created : homi-output/keys/validator3Created : homi-output/keys/nodekey4Created : homi-output/keys/validator4Created : homi-output/scripts/static-nodes.jsonCreated : homi-output/keys_test/testkey1Created : homi-output/keys_test/keystore1/0xdC7218621513f71d609653d22C39d79d558d9CDCCreated : homi-output/Kaia.jsonCreated : homi-output/Kaia_txpool.json
다음 단계에서는 출력 중 nodekey*
, genesis.json
, static-nodes.json
을 사용하겠습니다.
2단계: static-nodes.json 사용자 지정
텍스트 편집기에서 homi-output/scripts/static-nodes.json
을 열고 IP 주소와 포트를 노드의 실제 값으로 업데이트합니다.
이 예제에서는 ServiceChain에 있는 각 SCN 노드의 IP가 아래 그림과 같다고 가정합니다. 여기서 할당하는 포트는 나중에 4단계에서 사용할 것이므로 기억해 두세요.
[ "kni://38693ad4b17ff77...23153@192.168.0.1:22323?discport=0\u0026ntype=cn", "kni://f36d969b16f7337...1329b@192.168.0.2:22323?discport=0\u0026ntype=cn", "kni://16e55d8921ab034...b2bec@192.168.0.3:22323?discport=0\u0026ntype=cn", "kni://0973e792a421c1d...bbd71@192.168.0.4:22323?discport=0\u0026ntype=cn"]
static-nodes.json
를 업데이트한 후 출력 폴더(homi-output
)를 모든 SCN에 업로드합니다. 즉 이 예제에서는 SCN-L2-01, SCN-L2-02, SCN-L2-03, SCN-L2-04 노드에 업로드합니다.
$ scp -r path/to/homi-output/ user@192.168.0.1:~/$ scp -r path/to/homi-output/ user@192.168.0.2:~/$ scp -r path/to/homi-output/ user@192.168.0.3:~/$ scp -r path/to/homi-output/ user@192.168.0.4:~/