UNFYのマスターノードを建てるの巻

暗号通貨
スポンサーリンク

はじめに

今回は Unifyform のマスターノードを建てるまでの話です
持っているマスターノードの1つであるSWAMPですが、最近の報酬がイマイチだったりします(汗)、イマイチというか、ほとんど貰えないという現象に、なのでいったん売ってしまい UNFYのマスターノードを建てようと思ったのである

SWAMPからUNFYへ

SWAMPマスターノードに必要な担保が20,000SWAMPで、UNFYも同じく20,000UNFYだった。なので価値が同等であればコスト負担なしでイケるハズで、(2024/03/20 16:00頃の)相場を見てみると
1SWAMP=0.003020USDT で、1UNFY=0.00270153USDTと、UNFYの方が若干安いので、これはちょうど良いと。
ただ、SWAMPからUNFYを一度に交換は出来ないので、SWAMP→USDTへ交換して、USDT→UNFYって流れになる
ちまちま交換してるから、20,000UNFYまでの道のりが長いです

マスターノードを建てる

SWAMPからUNFYへ交換が完了するまで約3日間
いざ、マスターノードを建てよう!
って思い、GitHubでGuideを探してみたが見つからず
仕方なくDiscodeに登録して探しても見つからず
どうやらDashのガイドを見てやるしかない空気
まぁ、UkkeyCoinもDASHベースなので、建て方の流れは一緒であろう

以下に導入の記録を残しておくので参考にしてもらえれば幸い

担保として20,000UNFY

Windowsにqtを入れて、同期も完了させている状態。まず、担保の20,000UNFYを預ける為に、新しいアドレスを1つ用意して、そのアドレスに20,000UNFYを送金しておく
qt から普通に送金することで問題は無い

DASHのガイドだとこの部分からになります。大変参考になりますね!

トランザクションの確認

qtのコンソールから以下のコマンドを実行する

masternode outputs

そして、レスポンスされたデータは控えていきましょう

"{{collateralHash}}-{{collateralIndex}}"

このような形式で出力されます

BLSの生成

同じくqtから bls generate コマンドを実行する

bls generate

以下のデータがレスポンスされます

{
  "secret": "{{masternodeblsprivkey}}",
  "public": "{{operatorPubKey}}",
  "scheme": "basic"
}

これも控えておきましょう

masternode側のConfig設定

いったん、マスターノードのデーモンを停止して unfy.confを修正。以下私の設定です。

server=1
daemon=1
listen=1
staking=1
logtimestamps=1
shrinkdebuglog=1
txindex=1

rpcuser={{user}}
rpcpassword={{pass}}

externalip={{masternodeIpAddress}}:1464
masternode=1

masternodeblsprivkey={{masternodeblsprivkey}}

{{masternodeblsprivkey}}の部分は先に実行したbls generate のレスポンスデータ内にある secret の部分ですね
{{masternodeIpAddress}}は稼働させるサーバーのIPアドレス

DASHのガイドを見ると、マスターノードモードで起動すると強制的に txindex=1, peerbloomfilters=1, prune=0 になるみたいです

ProRegTxの準備

ここからが面倒な設定ですね

新にいくつかアドレスを作成する

ownerKeyAddrの作成
qtのコンソールから getnewaddress を実行

getnewaddress

アドレスが1つ生成されます

{{ownerKeyAddr}}

votingKeyAddrの作成 とガイドにはあるのですが、votingKeyAddr は作成しないでOKです。ownerKeyAddr と同じじゃないと、protx register_submit 実行時に bad-protx-key-not-same (code -1) とエラーになってしまいます
DASHのフォーラムに投稿がありました
UNFYのソースでも、こんな感じ

    if (!deterministicMNManager->IsDIP3Enforced(pindexPrev->nHeight)) {
        if (dmn->pdmnState->keyIDOwner != ptx.keyIDVoting) {
            return state.Invalid(TxValidationResult::TX_BAD_SPECIAL, "bad-protx-key-not-same");
        }
    }

きっとこの条件に引っかかってるんでしょう

payoutAddressの作成
同様にqtのコンソールから getnewaddress を実行

getnewaddress

アドレスが生成されます

{{payoutAddress}}

※payoutAddress には 1UNFYでも良いの送金をしておきます

protx コマンドはちょっと引数が多いです、今まで出力されてきたデータを使います

protx register_prepare {{collateralHash}} {{collateralIndex}} {{ipAndPort}}
  {{ownerKeyAddr}} {{operatorPubKey}} {{votingKeyAddr}} {{operatorReward}} {{payoutAddress}}

※{{votingKeyAddr}}は先にも記載した通り、{{ownerKeyAddr}}を指定する

成功すると、以下のデータがレスポンスされます

{
  "tx": "{{tx}}",
  "collateralAddress": "{{collateralAddress}}",
  "signMessage": "{{signMessage}}"
}

ProRegTxトランザクションに署名

終盤です
さらにqtから以下のコマンドを実行します

signmessage {{collateralAddress}} {{signMessage}}

そうすると以下のデータがレスポンスされます

{{sig}}

署名されたメッセージの送信

最後にqtから以下のコマンドを実行します

protx register_submit {{tx}} {{sig}}

すると、以下のデータ(トランザクションのハッシュ)がレスポンスされます

fc54bdd38b94a4b13cf4ce1bdf1fbf366056d7205a790c301443f5d964fd2f23

このトランザクションハッシュはEXPLORERから確認できます
https://explorer.unifyroom.com/tx/fc54bdd38b94a4b13cf4ce1bdf1fbf366056d7205a790c301443f5d964fd2f23

これで、完了です
DASHだと、Dash Masternode Tool というアプリケーションがあるので、もっと簡単にセッティング出来るようです

楽しい皮算用

さて、ここからが楽しい楽しい皮算用!
現在のノード数が74ですが、仮に100ノードあったとすると
ブロック間隔が120秒なので、12000秒ごとに90UNFYの報酬が貰えることになる
12000秒は200分、1日に換算すると7回強、90UNFY×7=630UNFY/日になる
そして、1UNFYがいくらかって事ですが、0.0030USDTで計算すると 630UNFY×0.003USDT=1.89USDT
これを、1ドル150円で換算してまうと 283.5円/日 になるのか、結構な金額だ!
VPSの料金は稼げそうだw
欲張って、もう1ノード建てたくなってきますねw

さいごに

今回はUNFYのマスターノードを建てたけど、1点だけ気になるところが残っている
マスターノードで masternode status を確認すると
以下のレスポンスが返される

{
  "outpoint": "0000000000000000000000000000000000000000000000000000000000000000-4294967295",
  "service": "[::]:0",
  "state": "WAITING_FOR_PROTX",
  "status": "Waiting for ProTx to appear on-chain"
}

Waiting ……何かやり忘れたことがあるのか?

一応、報酬は貰えてるし、qt のマスターノード画面からもステータスは有効になっているから良いのかなぁ~
と思いつつ、気になる点が残っております
原因解明したら報告します

では、また

コメント