初めは Monaparty Automation が使う変数をどう定義しようかと思っていただけでした。
それが、気付いてみたら新機能も提供できることになっていました、というお話。
TSDB
先にネタバレするようなものですが、たぶん馴染みがないやつなので。
ソフトウェア開発を仕事にしている人でも、触るのは限られている物の一つに「時系列データベース(TSDB)」ってのがあります。
普通のデータベースは、表計算ソフトのようにマス目に値がある感じ(雑な説明)なのですが、TSDB の場合、横軸が時間で、縦軸に値が入ります。
身近なところだと、株価の動きとか気温とか、ああいうのに向いています。集計も「何月から何月までの {平均、最大値、偏差値}」みたいな感じになります。
変数
Monaparty Automation は、突き詰めると「プログラム実行環境」なので、どうしても変数は欲しくなります。
しかし、変数って、ブロックチェーンと何となく相性悪いのですよね。内容がコロコロ変わるし変わったあとでは、それを追えない。
イーサリアムでは「ワールドステート」という概念を持ち込んで追えるようにしているのですが、Counterparty には(モナパーティにも)その概念は無いので パクインスパイアできない。
Monaparty Automation が出した答え
「変数の値が変わった履歴を、すぐに確認できるようにしましょう」
履歴のうち最新1個をとれば、変数です。
履歴全部を残すことで、嘘を付いていないかの証拠にできる場合があります。(限界はあります)
すると、変数を用意したくて考えた結果が、時間粒度の粗い TSDB としても使えるものになりました。
TSDB は価値記録との相性が良いので、そこそこ使われるのではないでしょうか。
というわけで、pre XMPIP は gist にあります。
https://gist.github.com/cryptcoin-junkey/6d370242a1b113ae5591ac6cc0d92b6f
実現が難しいところは今のところなさそうなので、たぶんこのまま実装されると思います。