【注意】この情報は、2022年5月9日時点の情報です。
過去2回にわたってNymプロジェクト(暗号資産(仮想通貨)はNYM) について発信してきた。
↓ ↓ ↓
NYMカテゴリーの記事

ここでは、テストネット構築時に私が躓いたポイントを3つをご紹介する。

材料

次の環境に構築した。

VPS

項目スペック
VPSConoHa VPS
メモリ1GB
CPU2コア
SSD100GB
OSUbuntu 22.04 LTS

こちらがConoHa VPSのバナーだ。
↓ ↓ ↓

主に参考にした資料

構築方法については、こちらの公式ドキュメント
↓ ↓ ↓
https://nymtech.net/docs/stable/run-nym-nodes/nodes/mixnodes

およびこちらを参考とした。
↓ ↓ ↓
https://gist.github.com/gyrusdentatus/e81658af3086c8d833720af53d5b2c3d

3つの障壁

【障壁1】 テストネットとメインネットとではノードソフトウェアのバージョンが異なる

git で調べてみる。

#git tag
0.1.0
0.2.0
0.4.0-rc.2
milhon-checkpoint.1
nym-binaries-1.0.0
nym-binaries-1.0.0-rc.1
nym-binaries-1.0.0-rc.2
nym-binaries-1.0.1
nym-wallet-v0.1.0
nym-wallet-v1.0.0
nym-wallet-v1.0.0-windows
nym-wallet-v1.0.1
nym-wallet-v1.0.2
nym-wallet-v1.0.3
nym-wallet-v1.0.4
v0.10.0
v0.10.1
v0.11.0
v0.12.0
v0.12.1
v0.2.0
v0.3.0
v0.3.1
v0.3.2
v0.3.3
v0.4.0
v0.4.0-rc.1
v0.4.0-rc.2
v0.4.1
v0.5.0
v0.5.0-rc.1
v0.6.0
v0.7.0
v0.8.0
v0.8.1
v0.9.0
v0.9.1
v0.9.2

本番のミックスノードのソフトウェアバージョンは、v1.x.x系であるが、テストネットは、v0.x.x系を選ぶ必要がある。(v0.x.x系として開発が進んでいる)「git tag」コマンドで、tagの一覧を表示し、v0.x.x 系の最も番号が大きいのが最新なので、ブランチを移動する。

#git checkout tags/v0.12.1

バージョン管理のgit(ギット)の使い方については、今やいたるところで出てくるので、学んでおいて損はない。翔泳社のこちらの書籍がおススメだ。

翔泳社書籍直販サイト「SEShop」にリンク。
↓ ↓ ↓

【障壁2】 Nymウォレットの画面でテストネットとメインネットを切り替える

Nymウォレット画面では、テストネットとメインネットを左上のプルダウンメニューで切り替える形になっている。Nymウォレットには、テストネット、メインネットそれぞれ別個のユニークなウォレットアドレスが付与されており、トークンは、テストネットは$NYMTで、メインネットは$NYMである。(そのため、メインネットのアドレス宛てに、蛇口から$NYMTを送金しようとするとエラーになる。)

ここのプルダウンで切り替える。
↓ ↓ ↓
Nymウォレット画面

[PR] 取引記録をアップするだけで自動で税金計算【仮想通貨損益計算のCRYPTACT(クリプタクト)】

【障壁3】 LinuxサーバでIPv6の固定グローバルIPを設定する

実はこれが一番厄介だった。NYMのミックスノードは、IPv4, IPv6両方でアクセスできなければならない。 CentOSであれば、ConoHa VPSの公式FAQに設定方法があったのだが、今回、公式のサンプルが用いているのに倣って、Debian系のUbuntuを選んだため、どうすればIPv6の固定グローバルIPを設定することができるかに悩んだ。
結局、次の方法で対応できたのでノウハウをシェアしたい。

(1) まず、「ip a」で、 inet6 の部分が、scope link とあるだけなので、これではIPv6の固定グローバルIPでは接続できない。

$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 0x:0x:8x:8X:6x:ae brd ff:ff:ff:ff:ff:ff
    altname enp0s3
    altname ens3
    inet 133.130.xx.xxx/23 metric 100 brd 133.130.xxx.xxx scope global dynamic eth0
       valid_lft 64627sec preferred_lft 64627sec
    inet6 fe8x::1:8xxx:fxxx:6xxx/64 scope link 

(2) Ubuntuでは、netplan を使う。/etc/netplan/には、10-gmovps.yaml というファイルがあり・・・

$ ls -l /etc/netplan/
total 4
-rw-r--r-- 1 root root 184 Apr 22 12:23 10-gmovps.yaml

(3) こういう設定になっている。

$ cat 10-gmovps.yaml
network:
    ethernets:
        eth0:
            addresses: []
            dhcp4: true
            dhcp6: false
            accept-ra: false
            optional: true
    version: 2

(4) ただし、このファイルは直接編集するのではなく、/etc/netplan/ディレクトリに、新たに99-config.yaml というファイルを作り、下記のように記述する。

$ vi 99-config.yaml
network:
    renderer: networkd
    ethernets:
        eth0:
            addresses: ["2xxx:8xxx:1xxx:7xx:1xx:1xx:9x:1xx/64"]
            gateway6: "2xxx:8xxx:1xxx:7xxx::1"
            accept-ra: false
            optional: true
    version: 2

(5) 実は「gateway6」という記述は非推奨なようで、WARNINGメッセージが出るものの、動作に支障はないのでこのように設定する。「netplan try」でチェックする。 ただし「netplan apply」で反映されると思ったら甘いようだ。OSごと再起動する。

# reboot

(6) inet6 で「scope global」になるのでこれで完了。

$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 0x:0x:8x:8X:6x:ae brd ff:ff:ff:ff:ff:ff
    altname enp0s3
    altname ens3
    inet 133.130.xx.xxx/23 metric 100 brd 133.130.xxx.xxx scope global dynamic eth0
       valid_lft 64627sec preferred_lft 64627sec
    inet6 2xxx:8xxx:1xxx:7xx:1xx:1xx:9x:1xx/64 scope global
       valid_lft forever preferred_lft forever
    inet6 fe8x::1:8xxx:fxxx:6xxx/64 scope link 
       valid_lft forever preferred_lft forever

または、これでIPv6アドレスが表示されると成功だ。

$ hostname -I
133.130.xxx.xxx 2xxx:8xxx:1xxx:7xx:1xx:1xx:9x:1xx

当記事がお気に召しましたら、ぜひこちらのボタンをクリックしてくださると大変ありがたいです。
↓ ↓ ↓


当ブログの暗号資産関連はこちらにまとまっています。
↓ ↓ ↓
暗号資産カテゴリーの記事


はてなブックマークで、後ほどお読みいただくにはこちらからどうぞ。
↓ ↓ ↓
このエントリーをはてなブックマークに追加


もしあなたがメタバース仁ご興味がおありならば、こちらの創作小説はお気に召すかもしれません。
↓ ↓ ↓
「タメバース」はなぜ失敗したか