Klaytn CNN 내부 구축관련

저번에 설명해주신대로 kcn의 genesis block 생성하고 실행 및 blockNumber가 증가하는것 까지 확인했습니다.
문제점은 kcn에서만 제대로 blockNumber가 뜨고
kpn, ken에선 blockNumber가 업데이트가 안됩니다.(계좌간 거래 발생시 반영이 안됨)

<관련 세팅>
kcnd.conf의 NetworkID를 4545로 설정
homi setup local --cn-num 1 --pn-num 2 --en-num 1 --chainID 4545 -o …/homi-output
(1대 컴퓨터에서 다 돌렸습니다.)

kpnd1.conf, kpnd2.conf, kend.conf NeworkID 4545 설정
port는 전부 다 다르게 변경

cn,pn1,pn2,en 모두 homi setup으로 생성된 nodkey 사용
genesis.json 또한 homi setup으로 생선된 것으로 통일해서 genesis block 세팅

static-nodes.json파일에 pn1,pn2 설정추가
static-node.json파일 pn1,pn2,cn에 전파

<로그>
pn1,pn2랑 연결됐다는 log 입니다.
INFO[06/29,11:36:57 +09] [33] [Dial] Add dial candidate from static nodes id=100dd9b8478fb9c1 NodeType=2 ip=0.0.0.0 mainPort=30300 port=[30300]
INFO[06/29,11:37:01 +09] [33] [Dial] Add dial candidate from static nodes id=ea1ddfa5f9cba97f NodeType=2 ip=0.0.0.0 mainPort=30200 port=[30200]

<문제점>
blockNumber가 증가하지 않아서 kcn에서 계좌간 거래가 발생할 경우 다른 노드에서 결과가 반영되지 않습니다.
해결책이 있을까요?

안녕하세요

위와 같이 homi를 통해 homi-output이 생성되었을 시 scripts 폴더와 scripts_pn 폴더 안에 각각 static-nodes.json 파일이 생성되어 있을겁니다.

homi-output/scripts/static-nodes.json
homi-output/scripts_pn/static-nodes.json

scripts/static-nodes.json은 pn1 data 폴더, pn2 data 폴더에 복사
scripts_pn/static-nodes.json은 en data 폴더에 복사
하고 다시 한 번 실행해보시면 될 것 같습니다.

말씀해주신데로 파일을 복사해서 각각 넣어줬는데 연결이 제대로 안됩니다.
혹시몰라 static-nodes.json파일에 cn, pn1,pn2내용을 전부 적어서 복사붙여넣기 해도 연결이 되지 않았습니다.
ex)
[
“kni://3ae97a538948f4edfd275adb5a17ac928b3f18c87d73be29599fbfcfa0eb4a10a18143a61537eda9501e2c1347ddab7440419e7cc2a5eb84bcef18abe0a862bf@192.168.0.16:30100?discport=0\u0026ntype=cn”,
“kni://0c13fc46c3b845686a60b900c6df2eeb814811a8471e84f1a11fc4f026e664a895e03fb87a7a96d5ae1dffb936723c47611af3f9fb04ecda246ff91aa6192772@192.168.0.16:30200?discport=0\u0026ntype=pn”,
“kni://b1b9a731eb97b34da85cf2709334184f446a7402f3c1f6f8c29965bd9d058e0c83901fc92a8dd44a6689037955e3b4bcbb51a73906b3acf56a9d37a4215755b0@192.168.0.16:30300?discport=0\u0026ntype=pn”
]

cn만 적힌 static-nodes.json파일도 안됩니다.

kpnd1.conf파일은 다음과 같습니다.

<kpnd1.conf>

Configuration file for the kpnd

cypress, baobab is only available if you don’t specify NETWORK_ID.

NETWORK=

if you specify NETWORK_ID, a private network is created.

NETWORK_ID=4545

PORT=30200

SERVER_TYPE=fasthttp
SYNCMODE=full
VERBOSITY=3
MAXCONNECTIONS=200

LDBCACHESIZE=10240

txpool options setting

TXPOOL_EXEC_SLOTS_ALL=8192
TXPOOL_NONEXEC_SLOTS_ALL=8192
TXPOOL_EXEC_SLOTS_ACCOUNT=8192
TXPOOL_NONEXEC_SLOTS_ACCOUNT=8192
TXPOOL_LIFE_TIME=“5m”

rpc options setting

RPC_ENABLE=1 # if this is set, the following options will be used
RPC_API=“klay” # available apis: admin,debug,klay,miner,net,personal,rpc,txpool,web3
RPC_PORT=40200
RPC_ADDR=“0.0.0.0”
RPC_CORSDOMAIN=""
RPC_VHOSTS="
"

ws options setting

WS_ENABLE=0 # if this is set, the following options will be used
WS_API=“klay” # available apis: admin,debug,klay,miner,net,personal,rpc,txpool,web3
WS_ADDR=“0.0.0.0”
WS_PORT=8552
WS_ORIGINS="*"

Setting 1 is to enable options, otherwise disabled.

AUTO_RESTART=0
METRICS=1
PROMETHEUS=1
DB_NO_PARALLEL_WRITE=0
MULTICHANNEL=1
SUBPORT=$((PORT + 1)) # used for multi channel option

genesis.json은 첫번째 글에 작성한 것과 동일하게 homi-setup으로 생성된 파일로 kcn, kpn1, kpn2를 초기화 했습니다.
nodekey 또한 homi-setup으로 생성된 nodeke로 통일했습니다.
혹시 어디를 추가적으로 고쳐야 하나요??

감사합니다.

안녕하세요

HARDICE 님이 지금 하시려고 하는 cn1/pn2/en1 로컬 프라이빗 네트워크 구축을 진행해보았는데, 문제 없이 실행되는 것으로 보아 다른 부분에 문제가 있는 것 같습니다. 그 과정으로 다음 정보를 알려주시면 어디에 문제가 있는지 파악이 쉬울 것 같습니다.

  1. cn,pn1,pn2,en의 포트 번호 및 데이터 폴더 위치
  2. pn1,pn2,en에서 static-nodes.json 파일을 저장한 위치
  3. pn1,pn2,en의 static-nodes.json 파일의 포트 번호 설정 정보
  4. pn1,pn2,en의 dial 로그 + block insertion 성공여부

답변 감사합니다.
1.
CN = 30100 //kcnd_conf, static-nodes.json파일과 포트 일치
PN1 = 30200 //. pn1/conf/kpnd_conf, static-nodes.json파일과 포트 일치
PN2 = 30300 // pn2/conf/kpnd_conf, static-nodes.json파일과 포트 일치
EN = 30400 // ken_conf 파일과 포트 일치

pn1 : /home/song/workspace/klaytnrun/pn1/kpnd_home/data/static-nodes.json
pn2 : /home/song/workspace/klaytnrun/pn2/kpnd_home/data/static-nodes.json
en : /home/song/workspace/klaytnrun/ken-linux-amd64/kend_home/data/static-nodes.json
각각 conf파일에서 datadir 설정은 올바르게 했습니다.
3.
//pn1,pn2
[
“kni://af234957e2a1f2789691f53f456ed85742a56a10a313c4464381319643d6d2d24cb6a1ac4a75a36f499705cf8f17173865a5bec8c36d293b19e5e8af4e94f243@192.168.0.16:30100?discport=0\u0026ntype=cn”,
“kni://1f5848af5e341c971f762ba2489a29101fe758e1a2da271cf5e767e7c325af881ff2bd7cbd51eb9a645445c377aa0489c90ff8bc0411118f3220f080b2c988e5@192.168.0.16:30200?discport=0\u0026ntype=pn”,
“kni://cd3da11d4cab59dc1c9ac6f33660ee0423fdf64183b53e6c372f9c7f4bced33ede7bd9ff6feb309d12f63f0cab22538908b019daf3dbb51f372fddcc759350cd@192.168.0.16:30300?discport=0\u0026ntype=pn”
]
//en
[
“kni://1f5848af5e341c971f762ba2489a29101fe758e1a2da271cf5e767e7c325af881ff2bd7cbd51eb9a645445c377aa0489c90ff8bc0411118f3220f080b2c988e5@192.168.0.16:30200?discport=0\u0026ntype=pn”,
“kni://cd3da11d4cab59dc1c9ac6f33660ee0423fdf64183b53e6c372f9c7f4bced33ede7bd9ff6feb309d12f63f0cab22538908b019daf3dbb51f372fddcc759350cd@192.168.0.16:30300?discport=0\u0026ntype=pn”
]

//pn1 log
INFO[07/01,15:03:22 +09] [40] Starting P2P networking
INFO[07/01,15:03:24 +09] [34] UDP listener up self=“kni://af234957e2a1f2789691f53f456ed85742a56a10a313c4464381319643d6d2d24cb6a1ac4a75a36f499705cf8f17173865a5bec8c36d293b19e5e8af4e94f243@[::]:30200?ntype=pn”
INFO[07/01,15:03:24 +09] [40] Started P2P server id=af234957e2a1f278 multichannel=true
INFO[07/01,15:03:24 +09] [40] RLPx listener up self=“kni://af234957e2a1f2789691f53f456ed85742a56a10a313c4464381319643d6d2d24cb6a1ac4a75a36f499705cf8f17173865a5bec8c36d293b19e5e8af4e94f243@[::]:30200?ntype=pn”
INFO[07/01,15:03:24 +09] [33] [Dial] Add dial candidate from static nodes id=1f5848af5e341c97 NodeType=2 ip=192.168.0.16 mainPort=30200 port=[30200]
INFO[07/01,15:03:24 +09] [33] [Dial] Add dial candidate from static nodes id=cd3da11d4cab59dc NodeType=2 ip=192.168.0.16 mainPort=30300 port=[30300]
INFO[07/01,15:03:24 +09] [40] RLPx listener up self=“kni://af234957e2a1f2789691f53f456ed85742a56a10a313c4464381319643d6d2d24cb6a1ac4a75a36f499705cf8f17173865a5bec8c36d293b19e5e8af4e94f243@[::]:30200?ntype=pn”
WARN[07/01,15:03:24 +09] [44] unable to subscribe; this can slow down node err=“staking manager is not set”
INFO[07/01,15:03:24 +09] [40] IPC endpoint opened url=/home/song/workspace/klaytnrun/pn1/kpnd_home/data/klay.ipc
INFO[07/01,15:03:24 +09] [40] FastHTTP endpoint opened url=http://0.0.0.0:40200 cors=* vhosts=*
INFO[07/01,15:03:56 +09] [33] [Dial] Add dial candidate from static nodes id=1f5848af5e341c97 NodeType=2 ip=192.168.0.16 mainPort=30200 port=[30200]
INFO[07/01,15:03:56 +09] [33] [Dial] Add dial candidate from static nodes id=cd3da11d4cab59dc NodeType=2 ip=192.168.0.16 mainPort=30300 port=[30300]

//pn2 log
INFO[07/01,15:03:27 +09] [34] UDP listener up self=“kni://af234957e2a1f2789691f53f456ed85742a56a10a313c4464381319643d6d2d24cb6a1ac4a75a36f499705cf8f17173865a5bec8c36d293b19e5e8af4e94f243@[::]:30300?ntype=pn”
INFO[07/01,15:03:27 +09] [40] RLPx listener up self=“kni://af234957e2a1f2789691f53f456ed85742a56a10a313c4464381319643d6d2d24cb6a1ac4a75a36f499705cf8f17173865a5bec8c36d293b19e5e8af4e94f243@[::]:30300?ntype=pn”
INFO[07/01,15:03:27 +09] [33] [Dial] Add dial candidate from static nodes id=1f5848af5e341c97 NodeType=2 ip=192.168.0.16 mainPort=30200 port=[30200]
INFO[07/01,15:03:27 +09] [33] [Dial] Add dial candidate from static nodes id=cd3da11d4cab59dc NodeType=2 ip=192.168.0.16 mainPort=30300 port=[30300]
INFO[07/01,15:03:27 +09] [40] Started P2P server id=af234957e2a1f278 multichannel=true
WARN[07/01,15:03:27 +09] [44] unable to subscribe; this can slow down node err=“staking manager is not set”
INFO[07/01,15:03:27 +09] [40] RLPx listener up self=“kni://af234957e2a1f2789691f53f456ed85742a56a10a313c4464381319643d6d2d24cb6a1ac4a75a36f499705cf8f17173865a5bec8c36d293b19e5e8af4e94f243@[::]:30300?ntype=pn”
INFO[07/01,15:03:27 +09] [40] IPC endpoint opened url=/home/song/workspace/klaytnrun/pn2/kpnd_home/data/klay.ipc
INFO[07/01,15:03:59 +09] [33] [Dial] Add dial candidate from static nodes id=1f5848af5e341c97 NodeType=2 ip=192.168.0.16 mainPort=30200 port=[30200]
INFO[07/01,15:03:59 +09] [33] [Dial] Add dial candidate from static nodes id=cd3da11d4cab59dc NodeType=2 ip=192.168.0.16 mainPort=30300 port=[30300]

////en log
INFO[07/01,15:03:30 +09] [33] [Dial] Add dial candidate from static nodes id=cd3da11d4cab59dc NodeType=2 ip=192.168.0.16 mainPort=30300 port=[30300]
INFO[07/01,15:03:30 +09] [40] RLPx listener up self=“kni://499a9be873b7033344c5ccc935360302da0fd9d412bb2a70a792c2c6f89382d6a39d7db7a35a7012fd6260fdee731c4f329f47156826e547b3dd157edb9b0a20@[::]:30400?ntype=en”
WARN[07/01,15:03:30 +09] [44] unable to subscribe; this can slow down node err=“staking manager is not set”
INFO[07/01,15:03:30 +09] [40] IPC endpoint opened url=/home/song/workspace/klaytnrun/ken-linux-amd64/kend_home/data/klay.ipc
INFO[07/01,15:03:30 +09] [40] FastHTTP endpoint opened url=http://0.0.0.0:60400 cors=* vhosts=*
INFO[07/01,15:03:30 +09] [40] FastWebSocket endpoint opened url=ws://0.0.0.0:8552
INFO[07/01,15:04:02 +09] [33] [Dial] Add dial candidate from static nodes id=1f5848af5e341c97 NodeType=2 ip=192.168.0.16 mainPort=30200 port=[30200]
INFO[07/01,15:04:02 +09] [33] [Dial] Add dial candidate from static nodes id=cd3da11d4cab59dc NodeType=2 ip=192.168.0.16 mainPort=30300 port=[30300]
INFO[07/01,15:04:34 +09] [33] [Dial] Add dial candidate from static nodes id=cd3da11d4cab59dc NodeType=2 ip=192.168.0.16 mainPort=30300 port=[30300]
INFO[07/01,15:04:34 +09] [33] [Dial] Add dial candidate from static nodes id=1f5848af5e341c97 NodeType=2 ip=192.168.0.16 mainPort=30200 port=[30200]

pn1,pn2,en 로그를 보면 block과 관련된 log는 전혀 나오지 않습니다.

네 관련 정보 주셔서 감사합니다

지금 보았을때, pn1과 pn2의 kni가 동일합니다.(log에서 self= 부분을 보시면 됩니다) 또한 pn1,pn2가 사용하는 static-nodes.json 파일에서 cn의 kni가 로그 상의 pn의 kni가 동일합니다.

static-nodes.json 파일은 homi-output에서 생성된 것으로 가져왔다고 가정하였을 때, nodekey 부분이 잘못된 것으로 보입니다.

homi-output에서 보면 keys 폴더와 keys_pn 폴더가 있을 것입니다.
homi-output/keys/nodekey1: cn/kcnd_home/data/klay/nodekey
homi-output/keys_pn/nodekey1: pn1/kpnd_home/data/klay/nodekey
homi-output/keys_pn/nodekey2: pn2/kpnd_home/data/klay/nodekey

로 붙여넣고 다시 한 번 실행해보시겠어요?

감사합니다 해결했습니다.
nodekey부분을 고치니까 전부 잘 돌아갑니다.

감사합니다!

1개의 좋아요