Edited at
nemDay 5

Catapultで変わる現行NEMの機能


はじめに

次期NEM(Catapult)では、アグリゲートトランザクションやクロスチェーン・トランザクションといった新機能が追加されてパワーアップしますが、既に現行のNEMにある機能もCatapultになるに伴い仕様や挙動が変わります。

今までのNEMだとこう動いていたけど、あれ挙動が違うなということにならないように、あるいは次期NEMだとこういうこともできるようになるんだというのを知って、Catapultに向けてアイデアを温めてみましょう。


ネームスペース


  • 親ネームスペースのレンタル期間は現行NEMの場合、約1年間の固定となっていましたが、Catapultではレンタル期間を任意のブロック数の期間で指定できるようになります。


  • cowよりモザイクやアカウントの紐付けを任意に行う事ができます。


モザイク


  • ネームスペース同様、モザイクの存続期間も任意に設定できるようになります。また、cowより存続期間を永続にすることもできます。

  • 今まではネームスペースを作成してから、モザイクを作成する必要がありましたが、cowからは単独でモザイクを作成できるようになりました。


    • モザイクにはIDが割り振られ、そのIDとネームスペースを後から紐付ける形となります。




マルチシグトランザクション


  • マルチシグによる転送トランザクションについては注意が必要です。次期NEM(Catapult)ではマルチシグによる転送トランザクションはアグリゲートトランザクションで扱います。

  • アグリゲートトランザクションはAggregateCompleteTransactionAggregateBondTransactionの2種類があり署名条件によって使い分ける必要があります。


パターン1 必要署名数が1人だけの場合

スクリーンショット 2018-12-05 9.51.16.png


  • 必要な署名数が1人だけで、トランザクションの作成者だけでトランザクション成立する場合はAggregate Complete Transactionを適用します。


パターン2 必要署名数が複数の場合

スクリーンショット 2018-12-05 9.50.42.png


  • 複数の署名がないとトランザクションが成立しない場合、AggregateBondTransactionを適用する必要があります。


  • AggregateBondTransactionを使用する場合、HashLockTransactionを使用してネットワーク上に担保用の通貨を収める必要があります。


  • HashLockTransactionで差し出した通貨は必要な署名が揃ってトランザクションが成立した場合は返却されますが、期限内にトランザクションが成立しなかった場合没収されます。


現行NEMにあるけどCatapultのドキュメントでまだ公開されてない機能

現行NEMにある機能で、Catapultのドキュメントで公開されていない機能も実はあります。


まとめ

現行NEMにも備わっている、ネームスペース、モザイク、マルチシグトランザクションについてもCatapultになると挙動が変わる部分がありました。

特にモザイクとネームスペースの部分は大きな仕様変更となっているので注意が必要です。

この変更はNEMを使ってアプリを開発するエンジニアだけでなく、一般のユーザやサービスを考える人にも影響がある箇所なので、NEMを使って何かやっている人やろうとしている人はこの変更点を是非抑えてもらえればと思います。


参考リンク


更新履歴


  • 3/19 最新版(cow)に合わせて内容を修正しました。