Baobab EN 노드 블록 동기화가 안됩니다 (1.8.2)

패키지 버전 1.8.2 으로 AWS EC2 Amazon Linux2 환경에서 설정하였습니다
하드웨어 요구사항을 만족하는 최소사양입니다. (r5.2xlarge)
바오밥 체인데이터 패스트싱크 이후에 kend 시작 시
peerCount 가 0 이고, 블록 동기화가 진행되지 않습니다
아래에 로그를 첨부합니다
읽어주셔서 감사합니다

INFO[03/26,14:19:17 Z] [31] Enabling metrics collection
INFO[03/26,14:19:17 Z] [31] Enabling Prometheus Exporter
INFO[03/26,14:19:17 Z] [18] Setting connection type                   nodetype=en conntype=1
INFO[03/26,14:19:17 Z] [18] Setting MaxPhysicalConnections            MaxPhysicalConnections=10
INFO[03/26,14:19:17 Z] [18] A private network ID is set               networkid=1001
INFO[03/26,14:19:17 Z] [18] Raised fd limit to process's maximum value  fd=65535
INFO[03/26,14:19:17 Z] [18] A private network ID is set               networkid=1001
INFO[03/26,14:19:17 Z] [18] Archiving mode of this node               isArchiveMode=false
INFO[03/26,14:19:17 Z] [40] Starting peer-to-peer node                instance=Klaytn/v1.8.2+7584e71de6/linux-amd64/go1.15.7
INFO[03/26,14:19:17 Z] [47] Non-single database is used for persistent storage  DBType=LevelDB
INFO[03/26,14:19:17 Z] [47] LevelDB configurations                    path=/var/kend/data/klay/chaindata/misc levelDBCacheSize=16 openFilesLimit=655 useBufferPool=true usePerfCheck=true compressionType=none compactionTableSize(MB)=2 compactionTableSizeMultiplier=1.000
INFO[03/26,14:19:17 Z] [47] LevelDB configurations                    path=/var/kend/data/klay/chaindata/header levelDBCacheSize=38 openFilesLimit=1638 useBufferPool=true usePerfCheck=true compressionType=none compactionTableSize(MB)=2 compactionTableSizeMultiplier=1.000
INFO[03/26,14:19:17 Z] [47] LevelDB configurations                    path=/var/kend/data/klay/chaindata/body   levelDBCacheSize=38 openFilesLimit=1638 useBufferPool=true usePerfCheck=true compressionType=none compactionTableSize(MB)=2 compactionTableSizeMultiplier=1.000
INFO[03/26,14:19:17 Z] [47] LevelDB configurations                    path=/var/kend/data/klay/chaindata/receipts levelDBCacheSize=38 openFilesLimit=1638 useBufferPool=true usePerfCheck=true compressionType=none compactionTableSize(MB)=2 compactionTableSizeMultiplier=1.000
INFO[03/26,14:19:17 Z] [47] LevelDB configurations                    path=/var/kend/data/klay/chaindata/statetrie_migrated_84793777/0 levelDBCacheSize=76 openFilesLimit=3276 useBufferPool=true usePerfCheck=true compressionType=none compactionTableSize(MB)=2 compactionTableSizeMultiplier=1.000
INFO[03/26,14:19:17 Z] [47] LevelDB configurations                    path=/var/kend/data/klay/chaindata/statetrie_migrated_84793777/1 levelDBCacheSize=76 openFilesLimit=3276 useBufferPool=true usePerfCheck=true compressionType=none compactionTableSize(MB)=2 compactionTableSizeMultiplier=1.000
INFO[03/26,14:19:17 Z] [47] LevelDB configurations                    path=/var/kend/data/klay/chaindata/statetrie_migrated_84793777/2 levelDBCacheSize=76 openFilesLimit=3276 useBufferPool=true usePerfCheck=true compressionType=none compactionTableSize(MB)=2 compactionTableSizeMultiplier=1.000
INFO[03/26,14:19:17 Z] [47] LevelDB configurations                    path=/var/kend/data/klay/chaindata/statetrie_migrated_84793777/3 levelDBCacheSize=76 openFilesLimit=3276 useBufferPool=true usePerfCheck=true compressionType=none compactionTableSize(MB)=2 compactionTableSizeMultiplier=1.000
INFO[03/26,14:19:17 Z] [47] Created a sharded database                dbType=statetrie numShards=4
INFO[03/26,14:19:17 Z] [47] LevelDB configurations                    path=/var/kend/data/klay/chaindata/txlookup                      levelDBCacheSize=16 openFilesLimit=655  useBufferPool=true usePerfCheck=true compressionType=none compactionTableSize(MB)=2 compactionTableSizeMultiplier=1.000
INFO[03/26,14:19:17 Z] [47] LevelDB configurations                    path=/var/kend/data/klay/chaindata/bridgeservice                 levelDBCacheSize=16 openFilesLimit=327  useBufferPool=true usePerfCheck=true compressionType=none compactionTableSize(MB)=2 compactionTableSizeMultiplier=1.000
INFO[03/26,14:19:17 Z] [47] LevelDB configurations                    path=/var/kend/data/klay/chaindata/snapshot                      levelDBCacheSize=22 openFilesLimit=983  useBufferPool=true usePerfCheck=true compressionType=none compactionTableSize(MB)=2 compactionTableSizeMultiplier=1.000
INFO[03/26,14:19:17 Z] [30] Successfully loaded governance state from database  blockNumber=86685696
INFO[03/26,14:19:17 Z] [41] Initialised chain configuration           config="{ChainID: 1001 IstanbulCompatibleBlock: 75373312 LondonCompatibleBlock: 80295291 EthTxTypeCompatibleBlock: 86513895 SubGroupSize: 22 UnitPrice: 750000000000 DeriveShaImpl: 2 Engine: istanbul}"
INFO[03/26,14:19:17 Z] [41] Initialising Klaytn protocol              versions=[64] network=1001
INFO[03/26,14:19:17 Z] [5] Using DeriveShaConcat!
INFO[03/26,14:19:17 Z] [48] Initializing local trie node cache (fastCache)  MaxMiB=19053 FilePath=/var/kend/data/fastcache
INFO[03/26,14:19:17 Z] [48] Initialized local trie node cache (fastCache)  LoadedMiB=0 LoadedEntries=0 elapsed=3.318893ms
INFO[03/26,14:19:17 Z] [5] Loaded most recent local header           number=86686165 hash=40396a…7d4acb td=86686166 age=13h19m6s
INFO[03/26,14:19:17 Z] [5] Loaded most recent local full block       number=86686165 hash=40396a…7d4acb td=86686166 age=13h19m6s
INFO[03/26,14:19:17 Z] [5] Loaded most recent local fast block       number=86686165 hash=40396a…7d4acb td=86686166 age=13h19m6s
INFO[03/26,14:19:17 Z] [5] prefetchTxWorkers are started             num=32
INFO[03/26,14:19:17 Z] [5] Loaded local transaction journal          transactions=0 dropped=0
INFO[03/26,14:19:17 Z] [5] Regenerated local transaction journal     transactions=0 accounts=0
INFO[03/26,14:19:17 Z] [47] Non-single database is used for persistent storage  DBType=LevelDB
INFO[03/26,14:19:17 Z] [47] LevelDB configurations                    path=/var/kend/data/klay/scchaindata/misc                        levelDBCacheSize=16 openFilesLimit=16   useBufferPool=false usePerfCheck=false compressionType=none compactionTableSize(MB)=2 compactionTableSizeMultiplier=1.000
INFO[03/26,14:19:17 Z] [47] LevelDB configurations                    path=/var/kend/data/klay/scchaindata/header                      levelDBCacheSize=16 openFilesLimit=16   useBufferPool=false usePerfCheck=false compressionType=none compactionTableSize(MB)=2 compactionTableSizeMultiplier=1.000
INFO[03/26,14:19:17 Z] [47] LevelDB configurations                    path=/var/kend/data/klay/scchaindata/body                        levelDBCacheSize=16 openFilesLimit=16   useBufferPool=false usePerfCheck=false compressionType=none compactionTableSize(MB)=2 compactionTableSizeMultiplier=1.000
INFO[03/26,14:19:17 Z] [47] LevelDB configurations                    path=/var/kend/data/klay/scchaindata/receipts                    levelDBCacheSize=16 openFilesLimit=16   useBufferPool=false usePerfCheck=false compressionType=none compactionTableSize(MB)=2 compactionTableSizeMultiplier=1.000
INFO[03/26,14:19:17 Z] [47] LevelDB configurations                    path=/var/kend/data/klay/scchaindata/statetrie                   levelDBCacheSize=16 openFilesLimit=16   useBufferPool=false usePerfCheck=false compressionType=none compactionTableSize(MB)=2 compactionTableSizeMultiplier=1.000
INFO[03/26,14:19:17 Z] [47] LevelDB configurations                    path=/var/kend/data/klay/scchaindata/txlookup                    levelDBCacheSize=16 openFilesLimit=16   useBufferPool=false usePerfCheck=false compressionType=none compactionTableSize(MB)=2 compactionTableSizeMultiplier=1.000
INFO[03/26,14:19:17 Z] [47] LevelDB configurations                    path=/var/kend/data/klay/scchaindata/bridgeservice               levelDBCacheSize=16 openFilesLimit=16   useBufferPool=false usePerfCheck=false compressionType=none compactionTableSize(MB)=2 compactionTableSizeMultiplier=1.000
INFO[03/26,14:19:17 Z] [47] LevelDB configurations                    path=/var/kend/data/klay/scchaindata/snapshot                    levelDBCacheSize=16 openFilesLimit=16   useBufferPool=false usePerfCheck=false compressionType=none compactionTableSize(MB)=2 compactionTableSizeMultiplier=1.000
INFO[03/26,14:19:17 Z] [45] Initialising Klaytn-Bridge protocol       network=1
ERROR[03/26,14:19:17 Z] [45] p2p rpc registered                        namespace=klay
ERROR[03/26,14:19:17 Z] [45] p2p rpc registered                        namespace=klay
ERROR[03/26,14:19:17 Z] [45] p2p rpc registered                        namespace=klay
ERROR[03/26,14:19:17 Z] [45] p2p rpc registered                        namespace=klay
ERROR[03/26,14:19:17 Z] [45] p2p rpc registered                        namespace=klay
ERROR[03/26,14:19:17 Z] [45] p2p rpc registered                        namespace=klay
ERROR[03/26,14:19:17 Z] [45] p2p rpc registered                        namespace=klay
ERROR[03/26,14:19:17 Z] [45] p2p rpc registered                        namespace=klay
ERROR[03/26,14:19:17 Z] [45] p2p rpc registered                        namespace=klay
INFO[03/26,14:19:17 Z] [40] Starting P2P networking
INFO[03/26,14:19:19 Z] [34] UDP listener up                           self="kni://3e06faf2db49a77b0525191355479c834d55781ad398e2ed7b8e98389bfd4025b60a2b519de49d2c051c530a112628eb7ac9cc5093f62a8cbeb0edc300d6ad24@[::]:32323?ntype=en"
INFO[03/26,14:19:19 Z] [40] Started P2P server                        id=3e06faf2db49a77b multichannel=true
INFO[03/26,14:19:19 Z] [40] RLPx listener up                          self="kni://3e06faf2db49a77b0525191355479c834d55781ad398e2ed7b8e98389bfd4025b60a2b519de49d2c051c530a112628eb7ac9cc5093f62a8cbeb0edc300d6ad24@[::]:32323?ntype=en"
INFO[03/26,14:19:19 Z] [40] RLPx listener up                          self="kni://3e06faf2db49a77b0525191355479c834d55781ad398e2ed7b8e98389bfd4025b60a2b519de49d2c051c530a112628eb7ac9cc5093f62a8cbeb0edc300d6ad24@[::]:32323?ntype=en"
INFO[03/26,14:19:19 Z] [44] Start listening chain head event to update stakingInfoCache.
INFO[03/26,14:19:19 Z] [45] Starting P2P networking
INFO[03/26,14:19:19 Z] [45] Started P2P server                        id=3e06faf2db49a77b multichannel=false
INFO[03/26,14:19:19 Z] [45] RLPx listener up                          self="kni://3e06faf2db49a77b0525191355479c834d55781ad398e2ed7b8e98389bfd4025b60a2b519de49d2c051c530a112628eb7ac9cc5093f62a8cbeb0edc300d6ad24@[::]:50505?discport=0"
INFO[03/26,14:19:19 Z] [40] IPC endpoint opened                       url=/var/kend/data/klay.ipc
INFO[03/26,14:19:19 Z] [40] FastHTTP endpoint opened                  url=http://0.0.0.0:8551     cors=* vhosts=*
INFO[03/26,14:19:19 Z] [40] FastWebSocket endpoint opened             url=ws://0.0.0.0:8552

1.8.1 에서도 동일한 내용 겪고 있습니다.

부트노드로부터 다른 Peer 의 연결정보를 받아오지 못한 것으로 보입니다.
방화벽 설정을 확인하셔서 아래 port 가 any로 열려 있는지 확인해보시겠어요?

  • UDP: 32323
  • TCP: 32323, 32324
1 Like

@Aidan
AWS 에서 Security Group 은 모든 트래픽을 허용하고 있습니다
더 봐야할 다른 곳이 있을까요?

kend.conf 파일에서 로그레벨을 상향 (VERBOSITY=5) 해주시고, 재시작하신 뒤 초기 로그를 공유해주실 수 있을까요? 제가 별도의 Baobab 노드를 띄었을 때는 부트노드 및 타 노드와 잘 연결하고 싱크하고 있어서 문제의 원인을 찾기가 어렵네요.

1 Like

too verbose 해서 글자수를 초과하네요
파일 첨부 기능이 있나요?

첨부 기능이 없다면 이메일으로라도 전달드리겠습니다
@Aidan

파일 첨부 기능은 없고 링크 기능은 있습니다.
그리고, 혹시나 로그 공유 중 민감한 기능이 노출될 수 있을 수 있기에 DM으로 전달바랍니다.

상당히 중복되는 내용이 많이 있을것입니다.
한번 보시고 중복되지 않는 초반 내용으로 전달바랍니다.

DM 으로 전달드렸습니다!
감사합니다

DEBUG[03/28,07:25:46 Z] [35] Couldn't add port mapping protobuf=udp extport=32323 intport=32323 interface="UPnP or NAT-PMP" err="no UPnP or NAT-PMP router discovered"
이 로그가 정상적이지 않아보입니다. 그로인해, 32323 UDP Port를 통해 부트노트와 통신하지 못하는것 같습니다.
해당 AWS instance가 public IP를 할당받지 못하는 등의 문제로 인해 public IP를 통해 UDP 통신을하는데 문제가 있는 것 같습니다. 32323 UDP Port 와 관련된 네트워크 문제를 확인하는 것이 좋을 것 같습니다.

만약 네트워크 문제를 찾을 수 없고, 빠른 해결책이 필요하다면 manual하게 다른 노드의 연결정보를 입력하는 방식이 있습니다. 이 방식을 사용하면, 부트노드로 부터 다른 노드 정보를 받지 않고 직접 입력한 노드에 바로 연결 (32323, 32324 TCP Port 사용)하여 싱크를 진행할 수 있습니다. 단, 이 방식을 사용하면 지정된 노드가 죽었을 때 자동으로 대응할 수 없기에 관리가 불편합니다.

Manual하게 노드 연결하는 방법 1
아래와 같이 admin.addPeer 명령어를 사용하면됩니다. 아래 예시에 입력된 kni 값은 Klaytn Governance Council 이 직접 운영하는 PN 주소 중 하나입니다. 예시값을 그대로 사용하시면 타 EN 보다는 훨씬 안정적으로 연결을 유지할 수 있을것입니다.

$ ./bin/ken attach data/klay.ipc
Welcome to the Klaytn JavaScript console!

instance: Klaytn/v1.8.2+7584e71de6/darwin-amd64/go1.16.10
 datadir: /Users/aidankwon/chains/baobab/data
 modules: admin:1.0 debug:1.0 eth:1.0 governance:1.0 istanbul:1.0 klay:1.0 net:1.0 personal:1.0 rpc:1.0 txpool:1.0 web3:1.0

> admin.addPeer("kni://132d7e00f49b36bcb3d646edd071e0c74867f28f5cc4e079073e1ede17cdc0b0e0b02af948e240d36e69c3f13aa9234d5398309e3fa16b6c8954fab2abe93e48@15.164.82.77:32323?discport=0&ntype=pn")

Manual하게 노드 연결하는 방법 2
static-nodes.json 파일에 연결할 kni 값을 입력하여 DATADIR 아래에 놓아두면, 노드가 재시작될 때마다 자동적으로 해당 노드에 addPeer 를 요청합니다. static-nodes.json 파일의 모습은 다음 링크를 참조하세요.

감사합니다.

1 Like

안녕하세요
해당 해결 방법은 주소 변경에 취약한 구조라고 생각되네요
혹시 추후 주소 변경등의 이슈를 following 할 수 있는 방법이 있나요?

Bootnode 이외의 주소변경을 following 할 수 있는 방안은 없습니다.
NAT 주소의 UDP Port를 사용하는데 문제가 없는지 확인 및 개선하시고 Bootnode 하시는게 좋을 것 같습니다.

현재로써는 네트워크 설정에서 문제점을 찾기 어렵네요…

  1. 보안그룹은 모든 트래픽 (TCP, UDP from 0.0.0.0/0) 을 allow 하고 있습니다.
  2. 인스턴스는 Public subnet 에 위치하여, 직접 public ip 를 가지고 있고, NAT 등을 통하여 접근이 필요하지 않습니다

더 보면 좋을 것들이나, 테스트 해볼만한 것이 있을까요?

당장은 집히는게 없네요 ㅠㅜ
저희도 AWS Amazon Linux 2 를 테스트용으로 쓰기도 하는데, 말씀주신 현상을 경험한 바가 없어 떠오르는게 없네요.
혹시, Ubuntu 등으로 OS 변경해보는 것은 어떨까요?