geth로 이더리움 서비스를 위해서 테스트 중이고, 실행옵션은
./geth --syncmode "fast" --cache=4096 --datadir /home/계정/.ethereum --rpc --rpcaddr 0.0.0.0 --rpcapi admin,db,eth,debug,miner,net,shh,txpool,personal,web3
입니다.
geth 콘솔에서 싱크 상태를 보면
> eth.syncing
{
currentBlock: 7358853,
highestBlock: 7358945,
knownStates: 40653937,
pulledStates: 40649622,
startingBlock: 7357392
}
으로 나오며, 약 100 정도의 블록 높이 차이가 있습니다.
그런데, 이 100 정도가 절대 따라와지지 않네요.
몇일을 놔둬도 블록 동기화가 끝나지 않습니다.
geth 로그를 보면,
INFO [03-13|14:53:01.881] Imported new state entries count=1152 elapsed=7.158ms processed=40607382 pending=4266 retry=0 duplicate=53 unexpected=1849
INFO [03-13|14:53:05.628] Imported new block headers count=1 elapsed=7.107ms number=7358938 hash=661401…63fa45 age=1m53s
INFO [03-13|14:53:05.656] Imported new state entries count=1152 elapsed=9.538ms processed=40608534 pending=3752 retry=0 duplicate=53 unexpected=1849
INFO [03-13|14:53:08.819] Imported new state entries count=1152 elapsed=9.268ms processed=40609686 pending=3180 retry=0 duplicate=53 unexpected=1849
INFO [03-13|14:53:12.568] Imported new state entries count=1152 elapsed=12.988ms processed=40610838 pending=3010 retry=0 duplicate=53 unexpected=1849
INFO [03-13|14:53:15.547] Imported new state entries count=1152 elapsed=7.575ms processed=40611990 pending=3794 retry=0 duplicate=53 unexpected=1849
INFO [03-13|14:53:17.446] Imported new state entries count=768 elapsed=5.938ms processed=40612758 pending=3605 retry=0 duplicate=53 unexpected=1849
INFO [03-13|14:53:22.411] Imported new state entries count=1536 elapsed=10.932ms processed=40614294 pending=3235 retry=0 duplicate=53 unexpected=1849
INFO [03-13|14:53:25.420] Imported new state entries count=1152 elapsed=7.821ms processed=40615446 pending=2910 retry=0 duplicate=53 unexpected=1849
INFO [03-13|14:53:27.649] Imported new block headers count=1 elapsed=7.111ms number=7358939 hash=cf25e4…310e5a age=1m36s
INFO [03-13|14:53:28.659] Imported new state entries count=1152 elapsed=7.869ms processed=40616598 pending=2666 retry=0 duplicate=53 unexpected=1849
INFO [03-13|14:53:30.814] Imported new state entries count=768 elapsed=5.124ms processed=40617366 pending=3406 retry=0 duplicate=53 unexpected=1849
INFO [03-13|14:53:33.345] Imported new state entries count=1152 elapsed=9.229ms processed=40618518 pending=3245 retry=0 duplicate=53 unexpected=1849
INFO [03-13|14:53:35.913] Imported new state entries count=1152 elapsed=6.005ms processed=40619670 pending=5543 retry=0 duplicate=53 unexpected=1849
INFO [03-13|14:53:41.448] Imported new state entries count=1920 elapsed=20.663ms processed=40621590 pending=4588 retry=0 duplicate=53 unexpected=1849
INFO [03-13|14:53:48.829] Imported new state entries count=2304 elapsed=21.513ms processed=40623894 pending=2960 retry=0 duplicate=53 unexpected=1849
INFO [03-13|14:53:51.294] Imported new block headers count=1 elapsed=6.891ms number=7358940 hash=e19e59…11e4a6 age=1m8s
INFO [03-13|14:53:52.597] Imported new state entries count=1152 elapsed=7.542ms processed=40625046 pending=2974 retry=0 duplicate=53 unexpected=1849
INFO [03-13|14:53:56.127] Imported new block headers count=1 elapsed=7.074ms number=7358941 hash=8a305e…d2eced
형태로.. 1분이면 동기화가 끝날 것처럼 보입니다.
하지만 절대 끝나지 않네요. (2~3일째 이 상태입니다.)
이렇게 되는 이유가 뭘까요?
서버는 IDC 에 있으며, CPU 코어는 24, 램은 64G, SSD 512G 이며, 블록은 SSD 하드에 쌓고 있습니다.
의심가는 상황은 peer가 0 ~ 1 왔다갔다 하며, 당연히 peer가 1 일때만 블록이 쌓이고 있습니다.
geth 콘솔에서 admin.addPeer 명령으로 peer를 추가해봤지만, 실제로 peer 갯수가 늘지 않습니다.
> web3.net.peerCount
1
서버 자체 방화벽도 내렸고, IDC에 라우터 방화벽도 제거해달라고 요청해놓은 상태입니다.
그래도 peer 는 1을 넘지 못하네요.
블록 동기화가 끝나지 않으니... eth.syncing 값도 false 가 나오지 않으며, eth.blockNumber 는 0 입니다.
코인을 보내봐도 balance 는 항상 0으로 나옵니다.
경험 있으신분... 도움 부탁드리겠습니다.
거의 100 블록 안쪽까지 쫒아오기는 했는데, 더 이상 간격이 좁혀지지 않네요.