SymbolのHarvest委任者の残高を取得する

ざっくり手順

  1. Get the unlocked harvesting account public keys.
  2. Get accounts information
  3. Get accounts information
  4. 公開鍵からいつものアドレスへ

1.Get the unlocked harvesting account public keys.

Returns array of unlocked account public keys.

ロックされていないアカウントの公開鍵の配列を返します。
ロックされていないって表現がよくわからないのですが、委任ハーベスターのアカウントのPublic Keyを取得できます。

2.Get accounts information

Returns the account information for an array of accounts.

アカウントの配列のアカウント情報を返します。
ここで先ほど取得したPublic Keyを使用して全アカウントの情報を一発で取得します。
ただし、ここで取得されるのは、そもそもプロキシリモートアカウントの公開鍵で問い合わせをかけるので、プロキシリモートアカウントの情報になります。

3.Get accounts information

先ほど取得したアカウント情報から[supplementalPublicKeys]->[linked] -> [publicKey]を使用して再度アカウント情報を問い合わせます。

これで、委任者のアドレスや残高・インポータンススコアが取得できます。

4.公開鍵からいつものアドレスへ

みなさんご存じの通り、公開鍵があればアドレスは生成可能ですのでアドレスを生成します。
ちょっと汚いですが、こんな感じです。

        $networkTypeValueHex     = '68'; // 104 (main net)
        $publicKeyHashHex        = hash('sha3-256', hex2bin($publicKey));
        $ripemd160StepOneHashHex = hash('ripemd160',hex2bin($publicKeyHashHex));
        $versionPrefixedRipemd160HashHex = $networkTypeValueHex.$ripemd160StepOneHashHex;
        $stepThreeChecksum       = substr(hash('sha3-256', hex2bin($versionPrefixedRipemd160HashHex)),0,6);
        $concatStepThreeAndStepSix = $versionPrefixedRipemd160HashHex . $stepThreeChecksum;
        $address = hex2bin($concatStepThreeAndStepSix);
        return substr(Base32::encode($address), 0, 39);

Z.作ってみた-まりち様のハーベストアカウント

https://s-okada.org/S-Drive/marichNodeInfo.php

Symbol 1Day 1Tweets

~企画名称~

Symbol 1Day 1Tweets

~テーマ~

ちょっと嬉しい✖︎ちょっと楽しい✖︎ちょっとSymbol

共通のハッシュタグを利用して1日1日をもっと素敵な1日へ

~開催日程~

2022年5月1日 〜 

~実施内容~

1 ) Twitter にて 下記のルールのタグにて発信をお願いいたします。

Ex. #xym220401xxx #Symbol

「xym」 + 「年下2桁」+「月」+「日」+特定の文字3桁

コチラ、特定の文字3桁については、BOT等の対策を含めて、今後の継続を検討した結果
WEBページにて発表いたします。
日本時間00:00~23:59が対象になります。

https://s-okada.org/S-Tool/OneDaySymbolTags.php

2 ) 発信内容は自由です。皆さんに期待します。

3 ) リプライ(返信)には利用しないで下さい。

4 ) 同じタグを利用している方にはリプやいいね!で盛り上げましょう!

5 ) 独断にてXYMをプレゼントします。数量については、期待しないでください。
 私のHarvest等を充当していく形になり、原資は少ないです。
 当選された方はお手数ですがアドレスをお伺いします。ご回答のほどお願いします。
 複数のIDや複数のアドレスを利用頂いても、当選確率は同じとお考え下さい。

~補足事項~

私のフォローに関しては必須ではありませんが、鍵垢など閲覧できない場合などは当選の対象外になることをご容赦ください。

個人的な都合により、発表は纏めて実施させていただくことが想定されます。

本プレゼントについては、突然の中止等が発生する恐れがあります。

ご質問やご指摘等はTwetterにて、なるべく回答していくつもりですが回答に時間を要する場合があります。

ジムツア報告テンプレート作成ツール

【ジムツア】歩いた歩数をTwitterでツイートすると仮想通貨SYMBOL/XYMが貰えるイベントがもらえるイベントをご存じでしょうか。
詳細は、 ESSAN本家のサイト をご一読ください。
下のページでは報告用のツイート(tweet)テンプレートを提供しております。

URL:https://s-okada.org/S-Tool/XYMTourTags.php

最近毎日報告しているのですが、あれ今日何日だっけ??ってなるので簡単にTweetを作りたくなったのがきっかけです。
『めんどう』は改善の第一歩です!

概要

1行目 ← 歩をつけて歩数を報告する行
本サイトでは「 歩 」のみを1行目にセットしてあるのでその前に歩数を入力します。
(補足事項)1,234 でも 1234 でもOKらしいです。
2行目以降 ← 自由記述欄(任意)

原則、ジムツアチャレンジのハッシュタグをデフォルトで入れてあります。
ラッキーなことに100分の1の確率でXYMが当選します。
最終行 ← 報告日に合わせてハッシュタグを設定します。
ハッシュタグは ジムツア + 和暦の年 + YY + MM です。
令和4年1月1日の場合 「 #ジムツア40101 」となります。

これは補足的な意味合いですが、歩いた翌日の23:59:59までに報告するルールになっています。
なので、当日分と前日分の報告用リンクしかご用意しておりません。

デポツア私は参加しておりませんが、デポツア参加される方も多いのでデポツア用もあります。

苦労した点

Twitter的にはシェアを目的にしており、勝手にURLを付けてしまったのを解消するのに苦労しました。
2行目とかに宣伝入れても良いのですが、そこは皆さんの自由という事でつけておりません。

類似した報告に 「#おは戦」← おはよう戦隊もありますが、現状のところ未対応です。
内容的にハッシュタグ作るロジックは容易いですがツイートの内容的にあまり利用しないという現状の判断になります。

SymbolのRestGWを使ってみる[Search transaction statements]

SymbolのRestGWを利用してみる。一通り使ってみよう第3弾!

[Receipt routes]-[Search transaction statements]を使ってみる!

作ってみたのはこちら!

https://s-okada.org/S-Drive/symbolBlocksRecent.php

上記のページからHeightのリンクをクリックするとなんちゃっての詳細画面に遷移します。その中に取得したReceiptの内容を表示してみました。

ブロック詳細として、完成度はまだ低いですが一応公開です。

Symbol Node List

SymbolのNodeをリスト化しました。対象は[Peer Api node],[Peer Api Voting node]のみです。

今回利用したのは、NodeRoutesのRestGWです。

  1. Get peers information でサーバの情報を取得
  2. 取得したサーバの情報からさらにGet peers informationをして探索を繰り返します。
  3. 取得したサーバ情報に対して、[Get the node health information]や[Get the node information]等を利用して情報を付与しています。

https://s-okada.org/S-Drive/symbolNodeList.php

概算では、更新頻度は1回/1日程度になるのではないかと思っております。(私のレンタルサーバの限界)

最新のブロック高については、最終確認時間の早いものから順に追いかけています。(ところてん方式で抜けていき、更新された際には再度上位にやってくる)

Symbol Fee Chart Summary

Symbol Fee のサマリ機能を追加しました。

全期間(2021/03/16~)のFeeを1日単位の合計金額にしてグラフ化しています。

また、全期間だけだと見にくいために直近31日分も別のグラフにしています。

https://s-okada.org/S-Drive/symbolFeeChartSummary.php

体験談

レンタルサーバの仕様でバッチ処理30秒以上出来ないお約束なので、108万ブロックの情報舐めるのに約3日ほどかかりました。気長に、仕込んだcronが5分単位で動くので増えていくことを眺める日々でした。レンタルサーバで今後新規に同じことしようとすると、なかなかシンドイデスネ。

改めてFeeをみると

2022年02月07日

2022年02月08日

上記2日ってすっごいトランザクションですね。

Symbol fee状況(2022-03-24)

SymbolのNodeを支えるハーベスティングには現在2つの要素からなります。

1つは、手数料(Fee)・・・トランザクションを承認してもらうための手数料

もう1つは、インフレーション・・・Nodeを維持するために設けられた報酬(徐々に減っていく)

手数料を見れば、どれだけ活発にSymbolが利用されているかが分かるのではと、グラフにしてみました。

現在、最新のブロックを追いかけつつ、過去のブロックの情報を取集中です。

2022-03-24の状況

https://s-okada.org/S-Drive/symbolFeeChart.php?date=2022/03/24

合計Fee:1343.446446 xym

平均Fee:0.467286 xym

最大Fee:28.7496 xym

SymbolのRestGWを使ってみる[Search blocks]

SymbolのRestGWを利用してみる。一通り使ってみよう第2弾!

[Block routes]-[Search blocks]を使ってみる!

作ってみたのはこちら!

https://s-okada.org/S-Drive/symbolBlocksRecent.php

メインネットのブロック(直近100ブロック)を取得して表示しています。

ブロックを読めるという事で、cron等を仕込んで長期的にFeeがどれくらい発生しているのか取得しておくことも可能というわけですね。

何だかんだで難儀したところ。phpで公開鍵からアドレスを導出するところで四苦八苦(pg bug)…

Timeについては、1秒くらいずれている可能性があります。(おそらく丸め誤差的なやつです)

参考

https://symbol.github.io/symbol-openapi/v1.0.3/

応援はこちら

Address : NAJ3SX-JV7TVL-Y6A2JB-QW7NYJ-H6YEQP-6SVZAT-ZZI

SymbolのRestGWを使ってみる[Search Accounts]

SymbolのRestGWを利用してみる。一通り使ってみよう第1弾!

[Account routes]-[Search accounts]を使ってみる!

作ってみたのはこちら!

https://s-okada.org/S-Drive/symbolTopAccount.php

Symbolの保有量順Top100を表示しています。(載るためには22/03/23現在、360万xym程度必要!)

参考

https://symbol.github.io/symbol-openapi/v1.0.3/

応援はこちら

Address : NAJ3SX-JV7TVL-Y6A2JB-QW7NYJ-H6YEQP-6SVZAT-ZZI

投げXYM機能追加の件(日報22/03/22)

昨晩といってよいのか?わかりませんが投げXYM機能を本サイトに追加しました。

振り返り

JavaScriptを書いて機能を実現したまでは良かったが、nemくてnemくて動作確認がいまいちだったかと

携帯で見ると(((( ;゚Д゚)))ガクガクブルブル

「送信ボタン」がなかった~~~~!(実はあるんだが隠れてた)

皆さんも公開は慎重に。。。

アグリゲートトランザクションも作れるのか???

モザイクを投げる機能も作ってみるか?

投げるだけでは面白くない。なにかシステムの一部としてSymbolに寄与できなものか。