catapult-service-bootstrap에 peer-node 추가 1 서비스 추가

개요



catapult를 쉽게 움직일 수 있는 catapult-service-bootstrap 라는 것이 있습니다.

이것은 docker-compose 로 움직일 수 있습니다.

그리고 docker-compose.yml 에 쓰여 있는 하나 하나의 컨테이너를 서비스라고 부릅니다.
catapult-service-bootstrap 를 움직이면 이러한 컨테이너가 시작됩니다.
$ docker-compose ps
                          Name                                        Command               State            Ports         
---------------------------------------------------------------------------------------------------------------------------
catapult-service-bootstrap_api-node-0-nemgen_1        bash -c /bin-mount/wait /s ...   Exit 0                         
catapult-service-bootstrap_api-node-0_1               bash -c /bin-mount/wait /s ...   Up                             
catapult-service-bootstrap_db_1                       docker-entrypoint.sh bash  ...   Up       27017/tcp             
catapult-service-bootstrap_generate-configs_1         ash -c /bin-mount/wait /ad ...   Exit 0                         
catapult-service-bootstrap_generate-raw-addresses_1   bash -c /bin-mount/generat ...   Exit 0                         
catapult-service-bootstrap_init-db_1                  docker-entrypoint.sh bash  ...   Exit 1                         
catapult-service-bootstrap_peer-node-0-nemgen_1       bash -c /bin-mount/wait /s ...   Exit 0                         
catapult-service-bootstrap_peer-node-0_1              bash -c /bin-mount/wait /s ...   Up                             
catapult-service-bootstrap_peer-node-1-nemgen_1       bash -c /bin-mount/wait /s ...   Exit 0                         
catapult-service-bootstrap_peer-node-1_1              bash -c /bin-mount/wait /s ...   Up                             
catapult-service-bootstrap_rest-gateway_1             ash -c /bin-mount/wait /st ...   Up       0.0.0.0:3000->3000/tcp
catapult-service-bootstrap_store-addresses_1          ash -c /bin-mount/wait /ad ...   Exit 0                   

이번에는 이것에 새로운 서비스로서 피어 노드를 추가해 가고 싶습니다. 이름은 peer-node-2 로 합시다.

다른 서버에서 할 경우 여기 ⇒ catapult-service-bootstrap에 peer-node 추가하기 그 2 서버편

작업



파일 편집


cd build/catapult-config
cp -r peer-node-0 peer-node-2
cd peer-node-2/userconfig/resources

컴피g는 r베스팅g. p 로페 r 지혜 s


build/generated-addresses/addresses.yaml 를 열고 nemesis_addresses_harvesting 아래에 있는 계정의 두 번째 개인 키를 설정합니다. (첫 번째는 peer-node-0가 사용하고 있습니다.)

config-harvesting.properties
harvestKey = <nemesis_addresses_harvesting private key>

구성에서. p 로페 r 지혜 s


[localnode]의 부분을 변경합니다.

config-node.properties
[localnode]

host = peer-node-2
friendlyName = peer-node-2
version = 0
roles = Peer

구성 잃어버린 r. p 로페 r 지혜 s


build/generated-addresses/addresses.yaml 를 열고 peer_nodes 아래에 있는 계정의 세 번째 개인 키를 설정합니다. (첫 번째는 peer-node-0 하지만 두 번째는 peer-node-1 가 사용하고 있습니다.)

config-user.properties
[account]

bootKey = <peer_nodes private key>

peers-p2p.json



다음을 peer-node-1 아래에 삽입합니다. 쉼표를 잊지 마세요.

공개 키는 build/generated-addresses/addresses.yaml 를 열고 peer_nodes 아래에 있는 계정의 세 번째 녀석.

peers-p2p.json
    {
      "publicKey": "<peer_nodes public key>",
      "endpoint": {
        "host": "peer-node-2",
        "port": 7900
      },
      "metadata": {
        "name": "peer-node-2",
        "roles": "Peer"
      }
    }

docker-compose.yml


docker-compose.yml 에 다음을 추가합니다.

docker-compose.yml

  peer-node-2-nemgen:
    build: dockerfiles/nemgen
    command: bash -c "/bin-mount/wait /state/configs-generated && /bin/bash /userconfig/nemgen.sh && touch /state/peer-node-2-nemgen"
    stop_signal: SIGINT
    volumes:
    - ./build/nemesis/:/nemesis
    - ./data/peer-node-2:/data:rw
    - ./bin/bash:/bin-mount
    - ./build/state:/state:rw
    depends_on:
    - generate-configs

  peer-node-2:
    build: dockerfiles/catapult
    command: bash -c "/bin-mount/wait /state/peer-node-2-nemgen && /bin/bash /userconfig/startServer.sh"
    stop_signal: SIGINT
    volumes:
    - ./build/catapult-config/peer-node-2/userconfig/resources/:/userconfig/resources/
    - ./data/peer-node-2:/data:rw
    - ./bin/bash:/bin-mount
    - ./build/state:/state
    depends_on:
    - generate-configs
    - peer-node-2-nemgen

시작


$ docker-compose up -d peer-node-2
Starting catapult-service-bootstrap_generate-configs_1 ... done
Creating catapult-service-bootstrap_peer-node-2-nemgen_1 ... done
Creating catapult-service-bootstrap_peer-node-2_1        ... done

로그를 확인.

블록 동기화에 시간이 걸립니다.
$ docker-compose logs -f --tail=100 peer-node-2
<debug> (chain::CompareChains.cpp@95) comparing chain scores: 78219980565058755 (local) vs 2339774398129255418 (remote) 
<debug> (chain::ChainSynchronizer.cpp@290) pulling blocks from remote with common height 7561 (fork depth = 0) 
<info> (chain::ChainSynchronizer.cpp@203) peer returned 360 blocks (heights 7562 - 7921) 
<debug> (disruptor::Disruptor.cpp@42) disruptor queuing element 22 (360 blocks (heights 7562 - 7921) [1A000000] from Remote_Pull) 
<info> (chain::RemoteApiForwarder.h@65) completed 'synchronizer task' (peer-node-0 @ peer-node-0) with result Success 
<debug> (utils::StackLogger.h@37) pushing scope 'PosImportanceCalculator::recalculate' 
<debug> (observers::PosImportanceCalculator.cpp@65) recalculated importances (22 / 25 eligible) 
<debug> (utils::StackLogger.h@47) popping scope 'PosImportanceCalculator::recalculate' (0ms) 
<info> (disruptor::ConsumerDispatcher.cpp@44) completing processing of element 22 (360 blocks (heights 7562 - 7921) [A2A9E8D6] from Remote_Pull), last consumer is 0 elements behind 

블록 높이와 속도를 계산하고 필요한 경우 자자.

내 환경에서는 약 3 초 만에 360 블록이었습니다.

확인



블록 탐색기를 살펴보겠습니다.

일하기 전에 이런 식으로 한 명의 Harvester 만있었습니다.



수확 할 피어 노드를 추가하면 Harvester가 두 사람이되었습니다.



소감


catapult-service-bootstrap 에 피어 노드를 추가할 수 있습니다.

추가하려면 몇 가지 파일 편집을 수행해야 합니다.
peers-p2p.json 에 대해서, 이번은 peer-node-2 의 것만 편집했습니다. 그러나 네트워크를 더욱 견고하게 만들기 위해 peer-node-0peer-node-1 , api-node-0 에 대해 같은 방법으로 유지하는 것이 좋습니다.

이상적으로는 docker-compose up -d --scale peer-node=10 api-node=3 처럼 할 수 있도록 하는 것입니다. 그러나 그것은 목수가 될 것 같습니다.

다른 서버에서 시도했습니다 ⇒ catapult-service-bootstrap에 peer-node 추가하기 그 2 서버편

관련 기사



catapult-service-bootstrap에 peer-node 추가 1 서비스 추가
htps : // 이 m / p ぁ 네 쇼키 / ms / b80 29157d80 63122c

catapult-service-bootstrap에 peer-node 추가하기 그 2 서버편
htps : // 이 m/p ㅁㅜㅜㅜ/있어 ms/4c73

catapult-service-bootstrap 3 호스트 이름 및 포트 변경
htps : // 이 m/p ㅁㅜㅜ

catapult-service-bootstrap 4 체인의 수동 삭제
htps : // 코 m / p ㅁ 네 쇼키 / ms / 7 에c5404701

catapult-service-bootstrap 파트 5 catapult.tools.health/network
htps : // 코 m / p ぁ 네 쇼키 / ms / 5 에 d19 에이 8 세 b67 아 d6 0 0

좋은 웹페이지 즐겨찾기