さくたろうブログ ツール紹介

NemHarvestMonitorのハーベスト状態監視の仕組みについて

投稿日:2月 8, 2018 更新日:

NemHarvestMonitorがどういう処理をしているかを簡単に説明してみます。

ハーベスト状態監視の処理概要

①ウォレットアドレスからリモートアカウントの特定

②委任先スーパーノードの探索しデータベースに登録

③定期的に、委任先スーパーノードにハーベストの有効性を確認

④ハーベストが無効の場合に通知

以上です。

では、ひとつずつ具体的な処理を説明していきます。

ウォレットアドレスからリモートアカウントの特定

ウォレットアドレスからトランザクション履歴を取得します。
その中に、リモートアカウントを有効化しているトランザクションがあります。

トランザクションの中身をみてみましょう。

以下のようにAPIを叩きます。

http://スーパーノードのIP:7890/account/transfers/outgoing?address=アドレス

ずらずらーと並んだトランザクションの中に、remoteAccountという情報を含んだトランザクションがあります。

ここに記載されているものは、リモートアカウントのpublicKeyです。

さらにこのpublickeyを元に、リモートアカウントを取得します。

以下のようにAPIを叩きます。

http://スーパーノードのIP:7890/account/get/from-public-key?publicKey=さきほどのpublickey


これでリモートアカウントの特定ができました。

委任先スーパーノードの探索

次は委任先のスーパーノードの探索です。

知っておいて欲しいことがひとつ。

あるウォレットアドレスがどのスーパーノードに委任しているかは、委任されたスーパーノードしか知らないのです

イメージとしては以下。

私は最初、アドレスと委任先の関係情報というのはスーパーノード間で共有されているものとばかり思っていました(^^;)

つまり、ハーベストが有効であるという情報を得るには委任先のスーパーノードに確認しないといけないのです。

NemHarvestMonitorでは、スーパーノードのIP情報は取得していないので総当たりで確認するという泥臭いことをやっています。

(スーパーノードを指定する方法もありますが、ユーザー側の手順をなるべく簡略化するためにこういった方法をとっています)

では、具体的な処理を

まず、スーパーノード一覧を取得します。

https://supernodes.nem.io/nodes

各スーパーノードのIPを配列に保存しておきます。

あとは、順番にステータスが有効かどうかを確認していきます。

http://各スーパーノードのIP:7890/account/get?address=リモートアカウント

委任先のスーパーノードとリモートアカウントの組み合わせが正しい場合にstatusがUNLOCKEDになっています。


これで委任先スーパーノードの特定ができたので、データベースに保存しておきます。

注意点として、取得したスーパーノード一覧の中にはアクセスできないものも含まれているため、
APIを叩くときはタイムアウト処理を設定しておく必要があります。

定期的にハーベストの有効性を確認

ここまでくれば、あとは簡単です。

定期的に登録しておいた委任先スーパーノードとリモートアカウントの組み合わせでAPIを叩いて
ハーベストのステータスがUNLOCKEDかLOCKEDを確認するだけです。

APIは探索時と同様です。

http://委任先スーパーノードのIP:7890/account/get?address=リモートアカウント

ハーベストが無効の場合に通知

ステータスがLOCKEDになっていたら、Telegramで通知メッセージを送信します。

また、無効になる予兆として「スーパーノードに長時間アクセスできない状態が続く」というのがあります。

現在、NemHarvestMonitorでは10分おきに3回連続でアクセスできない場合にも
ハーベストが停止している旨を通知しています。

おわりに

以上がNemHarvestMonitorの処理の説明でした。
やっていることはすごく単純です!

使用しているAPIはごく一部ですが、
NEMのAPIってこういう情報を取得できるんだということを少しでも知ってもらえたら嬉しいです。

NEMのAPIを和訳したものはこちら

New Economy Movement(NEM) APIマニュアル和訳

さくたろう
さくたろう
記事がお役に立ったらXEMの寄付頂けると嬉しいです!!

NEMのQRコード


NEMアドレス

NAXZXN-3OI3MZ-PE35NV-XM4T7Q-LOYD3Y-L5MM2W-FSGO

 

 

Monacoinを投げる
モナゲ(tipmona)ってなに?
そもそもMonacoinってなに?

-さくたろうブログ, ツール紹介
-

関連記事

MONAコイン関連のツール集

hamada今日は、自分が使っている モナコイン関連のツール集を紹介するよ!! 目次1 Monacoin Charts2 insight(MONA)3 MONACOIN情報サイト Monacoin C …

ハーベスト状態を監視するNemHarvestMonitorの使い方

hamadaさてさて、今日こそはハーベストしてるかな? hamadaえっ・・・ハーベストが無効になってる!またかよ・・・いつからだよ。 さくたろうハーベスターあるあるですね! カッペペぼくはハーベスト …

初心者の方、CoinGecko使ってる?

最近、仮想通貨を始められた方も多いと思います。 使ってる人には当たり前なのですが、 自分の持ってる仮想通貨の価格などを調べるのに便利なツールを紹介します。 それはCoinGecko(コインゲッコー?読 …

これは便利!TNTNodeMonitorBotでnode Rewardの当落を通知する方法

TNTnodeの築城(新規に立てること)がTwitterで流行っていますね。流行りに乗っかって少しばかり築城しました。 TNT nodeを立てると気にになるのが、30分ごとReward抽選に当たったか …

CPトークン検索ツール作ってみたよ

個人的にSpells Of Genesisカード能力調査用に作ったやつなんですけど、SOGの普及に少しでも役立てればいいなということで先日公開しました。 よろしければ使ってみてください。 CP Tok …

カッペペプロフィール




カッペペ
どうも、カッペペです。絵師のサポートやってます。カエル絵収集家、SoGジャンキー。最近モナカードも始めたよ。

monaparty
MWSWouFkf5kp6UhFuwFdETG3PBEuQVBHV3

さくたろうプロフィール




さくたろう
2017年から暗号通貨沼にはまり続けています。TelegramBotter、Nember、SOGer、シールドマイナーの肩書きで活動し、嫁GOX確率急上昇中。
情報交換などはお気軽に私たちのチャットツールのディスコードへどうぞ~!

hamadaプロフィール




JunHamada
毎月の電気料金と戦いながら
GTX1080×16枚でもくもくとc0banをマイニング中。

リュミさんプロフィール




MALFAS
ブロックチェーンゲームアカウントです。Novablitz で対戦したい人、募集中!気軽にフレンド申請してください。 Spells of Genesis . NovaBlitz .
NovaBlitzの対戦の
動画チャンネルはこちら!