Waves - リースとMinersRewardトークンのゆくえ

Miners Reward

WAVESはプレマインでマイニングの報酬はトランザクション手数料のみである。
その手数料も割と少量のWAVESなので、もう少しインセンティブをということで Miners Rewardというトークン(MRT)ができました。リンク

いったいどうやって報酬を渡しているのかと思ったら、毎日マイナー宛にtransferしているだけでした (要はエアドロップ)。そりゃそうだよね。

調べ方

せっかく立てたフルノード問い合わせる
アセットIDはライトクライアントから確認できる。
誕生ブロック(トランザクション)はブロックエクスプローラーで調べられる(もちろんノードAPIから取得しても良い)。

#
# coding: utf-8

import json
import requests


def main():
    """waves blockchain"""
    # MRTの情報
    asset_id = '4uK8i4ThRGbehENwa6MxyLtxAjAo1Rj9fduborGExarC'
    issued_block = 425769
    # 現在のブロックチェーン長
    response = requests.get('http://127.0.0.1:6869/blocks/height')
    blockchain_height = json.loads(response.text).get('height')
    # MRT生成以降のtransferトランザクションを調べる
    endpoint = 'http://127.0.0.1:6869/blocks/at/{0}'
    for height in range(issued_block+1, blockchain_height+1):
        url = endpoint.format(height)
        response = requests.get(url)
        transactions = json.loads(response.text).get('transactions')
        for tx in transactions:
            txtype = tx.get('type', 0)
            asset_id = tx.get('assetId', '')
            # type = 4 -> transfer
            if txtype == 4 and asset_id == asset_id:
                txid = tx.get('id')
                sender = tx.get('sender')
                recipient = tx.get('recipient')
                amount = tx.get('amount')
                print('{0:7d} : {1} : {2} -> {3} : {4:9d}'.format(height, txid, sender, recipient, amount))


if __name__ == '__main__':
    main()

リース先からの報酬transferの手数料

ライトクライアントのトランザクション履歴には手数料も表示されているが、 リース先からの報酬の手数料がNodeTXなるものだった。

どうやら大型マイニングプール(リース先)達が専用のトランザクション手数料用トークンを作って運用しているようだ(NodeTX以外にも何個かあるっぽい)。
大量の相手にマイニング報酬を分配する場合、普通に考えたらその手数料は配当から引かれるので、馬鹿らしいということだろう。
リースするユーザ・マイニングプール双方にとって良いやり方と思う。

小さいリース先は専用のトークンを発行して手数料にという手段は取りづらそうだが、 リース先選定の材料には多少なるだろうか。

リース先のリストはここで確認できる。 よくマイニングしているノードのリストはここ

リース先毎に配当トークンが異なる(だいたいWAVES、MRTと+アルファ)ので、 いろいろなトークンが欲しかったら複数のリース先に分散するのも良いかもしれない。
ただし、500WAVES以下はまとめた方が良いとも書かれている
単一のリース先へ少量を複数回リースする場合は、一旦キャンセルしてから一つにまとめてリースする方が良いのだろうが、
そうでなければお好きなように。


See also