初めは Monaparty Automation が使う変数をどう定義しようかと思っていただけでした。
それが、気付いてみたら新機能も提供できることになっていました、というお話。

TSDB

先にネタバレするようなものですが、たぶん馴染みがないやつなので。

ソフトウェア開発を仕事にしている人でも、触るのは限られている物の一つに「時系列データベース(TSDB)」ってのがあります。

普通のデータベースは、表計算ソフトのようにマス目に値がある感じ(雑な説明)なのですが、TSDB の場合、横軸が時間で、縦軸に値が入ります。

身近なところだと、株価の動きとか気温とか、ああいうのに向いています。集計も「何月から何月までの {平均、最大値、偏差値}」みたいな感じになります。

変数

Monaparty Automation は、突き詰めると「プログラム実行環境」なので、どうしても変数は欲しくなります。

しかし、変数って、ブロックチェーンと何となく相性悪いのですよね。内容がコロコロ変わるし変わったあとでは、それを追えない。
イーサリアムでは「ワールドステート」という概念を持ち込んで追えるようにしているのですが、Counterparty には(モナパーティにも)その概念は無いので パクインスパイアできない。

Monaparty Automation が出した答え

「変数の値が変わった履歴を、すぐに確認できるようにしましょう」

履歴のうち最新1個をとれば、変数です。

履歴全部を残すことで、嘘を付いていないかの証拠にできる場合があります。(限界はあります)

すると、変数を用意したくて考えた結果が、時間粒度の粗い TSDB としても使えるものになりました。

TSDB は価値記録との相性が良いので、そこそこ使われるのではないでしょうか。

というわけで、pre XMPIP は gist にあります。

https://gist.github.com/cryptcoin-junkey/6d370242a1b113ae5591ac6cc0d92b6f

実現が難しいところは今のところなさそうなので、たぶんこのまま実装されると思います。