13
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

はじめに

ネットワーク内に複数ノードを設置する場合、catapult サーバーポートが重複してしまい、片方のノードだけ外から見える状態になってしまいます。外から見えない方のノードのピア数が減少して(接続できないので周りのノードから Ban されます)、ちょこっとだけフォーク耐性が下がります。

というわけで、デフォルトの7900ポートから別のポートに変更して、各ノードちゃんと通信出来るようにしましょう。

同じマシンに複数台ノードをインストールするのは、コンテナ名の重複等あるので追加で設定が必要です。それはまたの機会に…

カスタムプリセット変更

カスタムプリセットにnodePortapiNodePortを追加します。ポート番号は使用していない番号を適当に設定してください。
私は7911にしました。

my-preset.yml
nodePort: 7911
apiNodePort: 7911

nodes:
    -
        host: symbol01.harvestasya.com
        friendlyName: _Symbol_HarvestasyaNode01/.

docker-compose.yml 変更

docker-compose.ymlまで変更するコマンド的なものは存在してないようなので、手動で node コンテナのポートを変更します。7900となってるところを7911に書き換えます。

target/docker/docker-compose.yml
    node:
        user: '1001:998'
        container_name: node
        image: symbolplatform/symbol-server:gcc-1.0.3.6
        command: /bin/bash /symbol-commands/start.sh /usr/catapult ./data server broker node NORMAL true
        stop_signal: SIGINT
        working_dir: /symbol-workdir
        restart: on-failure:2
        ports:
            - '7911:7911'
        volumes:
            - ../nodes/node:/symbol-workdir:rw
            - ./server:/symbol-commands:ro
        depends_on:
            - db
            - broker
        networks:
            default:
                aliases:
                    - symbol01.harvestasya.com
        hostname: symbol01.harvestasya.com

docker-compose.yml の変更を自動化

symbol-bootstrap compose --upgradeをしたらdocker-compose.ymlのポートを変える必要があるのですが、忘れるので私はバッチで一括で変更するようにしてます。

symbolVersionUp.sh
#!/bin/bash

echo "preset更新"
symbol-bootstrap config -p mainnet -a dual -c my-preset.yml --upgrade

echo "compose更新"
symbol-bootstrap compose --upgrade

echo "composeポート変更"
sed -i s/7900:7900/7911:7911/ target/docker/docker-compose.yml

さいごに

これで、同じネットワーク上に複数台のノードがあっても上手く通信出来るようになりました。
同ネットワーク上にサーバー複数台ってそうそう居ない気もしますが…うちはあるんですよ!

そうそう、リバースプロキシってのがありますね。これで上手く振り分けられないかと考えたんですが、この 7900 はソケット通信なのでホスト名使ってるのか謎なので出来るか不明です。
土台は作っているのですが、ノード 2 つ余裕で動くマシンが必要なので確認に手が出てないです…

13
6
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
13
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?