Cosmos SDKに続いて、LotionJSというのを試してみました。
LotionJSとは
LotionJSは
Smooth, easy blockchain apps. Powered by Tendermint consensus.
をうたっており、Cosmos SDKと同様にTendermintをベースにしたブロックチェーンを簡単に構築できるツールです。 こちらもCosmosチェーンとは相互接続できるチェーンができます。
チェーン自体はCosmos SDKでできるものと同様、チェーン組み込みの機能があるのみであとからスマートコントラクトをデプロイしていくことはできません。
Tendermintをベースにしたブロックチェーンについては下記事を参照。
では早速作ってみましょう。
Building your first app
に従って、チュートリアルをやってみます。
なんと、下のわずかなコードだけでブロックチェーンが出来上がってしまいます。
const lotion = require('lotion') const app = lotion({ initialState: { count: 0 } }) const transactionHandler = (state, transaction) => { if (state.count === transaction.nonce) { state.count++ } } app.use(transactionHandler) app.start().then(appInfo => console.log(appInfo.GCI))
特徴
LotionJSでもCosmos SDKと同様にブロックチェーンをステートマシンとして扱います。
しかし、こちらではアプリケーションのステートもメッセージもPlain Old Javascript Objectとなっています。 Reduxなどの(僕はReduxしか触ったことがないですが)Fluxアーキテクチャを活用したアプリケーションがあると馴染みやすいと思います。
とりあえずHello, worldレベルであれば、フレームワーク固有の知識はあまりいらないのでスタートはしやすいかなぁと感じました。 Cosmos SDKはRailsチックな感じで、ディレクトリ構造なども流儀に従う必要があります。それに比べるとだいぶ楽ですね。
また、コード量も少ないのでフレームワークのソースもすぐに読めると思います。
ドキュメントはほとんどありませんが…。