LoginSignup
2
0

More than 5 years have passed since last update.

catapult-service-bootstrap その3 ホスト名とポート変更

Last updated at Posted at 2018-09-24

概要

catapult-service-bootstrapを使ってcatapult48gh23s.xyz というオレオレcatapultをやっています。

catapult-service-bootstrapは、docker composeを使って、複数のノードをひとつのマシンで立ち上げることができます。

そのため、すべてが同じポートで立ち上がります。

これにより、外部への公開がしにくいです。(そういう用途のものではないのですが)

また、別のマシンで立ち上げたcatapult-service-bootstrapと接続するときに、ホスト名が重複するため、コンソールログがわけわからんことになります。

なので、今回はホスト名をポート番号を変更してみたいと思います。

前提

一度、初期状態でdocker-compose upをしている。

対象ノード

api-node-0api-node-19にして、7900番ポートを7919番ポートに変更。

作業

停止

$ docker-compose stop api-node-0
$ docker-compose stop rest-gateway

全体

docker-compose.yml

api-node-0の箇所をぜんぶapi-node-58にします。

使えないと思うので、depends_onからgenerate-configsをはずします。

docker-compose.yml
  api-node-19-nemgen:
    build: dockerfiles/nemgen
    command: bash -c "/bin-mount/wait /state/configs-generated && /bin/bash /userconfig/nemgen.sh && touch /state/api-node-19-nemgen"
    stop_signal: SIGINT
    volumes:
    - ./build/nemesis/:/nemesis
    - ./data/api-node-19:/data:rw
    - ./bin/bash:/bin-mount
    - ./build/state:/state:rw

  api-node-19:
    build: dockerfiles/catapult
    command: bash -c "/bin-mount/wait /state/api-node-19-nemgen && /bin/bash /userconfig/startServer.sh"
    ports:
    - "7919:7919"
    stop_signal: SIGINT
    volumes:
    - ./build/catapult-config/api-node-19/userconfig/resources/:/userconfig/resources/
    - ./data/api-node-19:/data:rw
    - ./bin/bash:/bin-mount
    - ./build/state:/state
    depends_on:
    - api-node-19-nemgen

対象ノード

フォルダ名変更

コピーでもよい

$ mv build/catapult-config/api-node-0 build/catapult-config/api-node-19
$ mv data/api-node-0 data/api-node-19

config-node.properties

vi build/catapult-config/api-node-19/userconfig/resources/config-node.properties

port7919に、friendlyNameapi-node-19に、外部に公開するならhostを設定(たぶん)

config-node.properties
[node]
port = 7919
apiPort = 7901
shouldAllowAddressReuse = false
shouldUseSingleThreadPool = false

[localnode]
host = catapult48gh23s.xyz
friendlyName = api-node-19
version = 0
roles = Api

ノード共通

peers-api.json

vi build/catapult-config/:service/userconfig/resources/peers-api.json

:serviceのところは、各ノード名を。おそらくこのくらいあるはず。

  • peer-node-0
  • peer-node-1
  • api-node-58

各ノードからapi-node-0への接続情報を書き換えます。

peers-api.json
    {
      "publicKey": "B093385E2319332C1BA0EE6E0779B0A58EC3ECC67118BCFF72FE14D7B3812538",
      "endpoint": {
        "host": "api-node-19",
        "port": 7919
      },
      "metadata": {
        "name": "api-node-19",
        "roles": "Api"
      }
    },

rest.json

rest-gatewayの接続情報を変更します。

vi build/catapult-config/rest-gateway-0/userconfig/rest.json
rest.json
  "apiNode": {
    "host": "api-node-19",
    "port": 7919,
    "publicKey": "B093385E2319332C1BA0EE6E0779B0A58EC3ECC67118BCFF72FE14D7B3812538"
  },

  "websocket": {
    "mq": {
      "host": "api-node-19",

開始

$ docker-compose up -d --build api-node-19
$ docker-compose start rest-gateway

ファイアウォール設定

外部に公開するなら、7919ポートを開放します。

確認

ログ確認

$ docker-compose logs api-node-19

peer-node-1との接続が成功しています。

<info> (ionet::PacketSocket.cpp@448) connected to peer-node-1 [172.18.0.2:7900]
<debug> (net::Challenge.cpp@55) verify signature result: true
<debug> (net::VerifyPeer.cpp@188) VerifyServer completed with Success
<info> (extensions::PeersConnectionTasks.cpp@97) connection attempt to peer-node-1 @ peer-node-1 completed with Accepted

所感

APIノードを外部に公開する意味はあるのだろうか。

catapult48gh23s.xyz:7919で実際に公開しています。

もし、外部にrest-gatewayだけを立てて、このAPIノードに接続するなら、websocketとかmqとかのポートが必要になってきそう。79017902を使っている雰囲気だけど、まだよく調べてない。

関連記事

catapult-service-bootstrapにpeer-nodeを追加する その1 サービス追加
https://qiita.com/planethouki/items/b80fe29157d80a63122c

catapult-service-bootstrapにpeer-nodeを追加する その2 サーバー編
https://qiita.com/planethouki/items/4c73a6b924b92529bd32

catapult-service-bootstrap その3 ホスト名とポート変更
https://qiita.com/planethouki/items/d365f2344c0f7a6c3523

catapult-service-bootstrap その4 チェーンの手動削除
https://qiita.com/planethouki/items/7ec5404701adeb96bb8e

catapult-service-bootstrap その5 catapult.tools.health/network
https://qiita.com/planethouki/items/5ed19ae8ceb67ad6fee0

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0