次期nem
であるcatapult
の機能を、catapult-service-bootstrap
と、
JavaScript
で動作する開発用SDKであるnem2-sdk
を用いてnem2(catapult)
の機能を体験・学習するプロジェクトです。
本プロジェクトは以下の対象者を想定しています。
nem
が好きな方nem2(catapult)
を使用したアプリケーション・システムの開発に関心がある方nem2(catapult)
のスマートアセットの動作を見てみたい方- 機能を動作させる具体的なコードを動かしてみたい方
- 現行
nem
からの仕様変更を確認したい方
本プロジェクトは以下の操作・知識が要求されます。
- Mac OS/Linux による環境
- ターミナルエミュレータによる操作
- JavaScriptの基本的な文法
Windows環境での実行についてはカバーできておりませんが、Node.jsによるJavaScriptの実行は環境に左右されないと思われますので、コマンドなどを適宜読み替えて実施してください。
本プロジェクトのサンプルコードは挙動の確認を優先するため、現実の実用には不向きな部分があります。
本プロジェクトで扱っている仕様が無意味なものになるかもしれない程度に、今後において追加変更される場合が考えられます。
nem2(catapult)
のテストネットも未だ公開されていない開発段階のためご了承ください。
またネットワークの設定値も現状公開されているもののデフォルト値で扱っており、今後のネットワーク仕様とは異なる可能性があることをご了承ください。
テスト/メインネットと大きく異なることとして、手数料の設定が0である、ブロック生成時間が15秒であることなどが挙げられます。
順次、公開された仕様に合わせたアップデートを想定しております。
- 動作環境の構築
- Node.jsのインストール
- nem2-cliのインストール
- nem2-sdkのインストール
- Docker/docker-composeのセットアップ
- テスト用ネットワークの環境構築
- catapult-service-bootstrapの起動
- クラスタの動作確認
- 初期分配の確認
- クラスタの停止
- クラスタ立ち上げ時のトラブルシューティング
- nem2-cli
- プロファイルの登録
- アカウント情報の取得
- 転送トランザクション
- アカウントのモニタリング
- トランザクションの発信
- 転送トランザクション
- アグリゲートトランザクション
- 一括転送トランザクション(コンプリート)
- 転送要求トランザクション(アグリゲートボンド)
- ネームスペース
- ネームスペースとは
- ネームスペースの用途
- ネームスペースの取得
- ネームスペースをアグリゲートトランザクションで取得
- モザイク
- モザイクとは
- モザイクの用途
- モザイクの作成
- モザイク定義と供給量をアトミックに定義する
- エイリアス
- エイリアスリンク
- エイリアスリンクの用途
- ネームスペースをモザイクにリンクする
- ネームスペースをアカウントにリンクする
- ネームスペースをリンクさせたモザイクをアトミックに作成する
- ネームスペースでモザイクを送信する
- マルチシグアカウント
- マルチシグアカウントへの変換
- マルチシグアカウントからの送信
- マルチレベルマルチシグの構築
- アカウント制限
- 受信トランザクション制限
- 受信モザイク制限
- 送信トランザクション制限
- アカウント情報
- アカウント情報の取得
- 保有モザイクの定義情報の取得
- アカウント情報と保有モザイク情報を同時に取得
- アカウントのトランザクションを取得する
- アドレスからトランザクションを取得する
- その他の機能
- クロスチェーンスワップ
- 仕様変更について
- ネームスペースとモザイクの分離
- 特別な存在としてのXEMの廃止
- APIのレスポンス
- マルチシグ連署者追加時の署名要求
- マルチシグの最小削除承認者数
- 署名にGenerationHashが必要
- 参考リンク集
- Tips
- 公開ネットワーク
基本的な操作やコード例、新機能、仕様変更などの体験を通して、今後のnem
を利用したサービス開発のアイディアや手助けになれば幸いです。
なお、これらは現時点でのcatapult
及びMIJIN_TEST
での仕様のため、パブリックチェーンの稼働時については変更されている可能性があります。
しかしMIJIN
とNEM
の関係はNEM
に対して新機能がリリースされていく流れですので、API仕様などは同一のものと考えてよいはずですので、バージョンが進んだ後でも十分通用する内容だと思います。
このプロジェクトはMITライセンスのオープンソースです。
営利・非営利問わず、オリジナルのまま、またはアレンジを加えるなどしてご利用が可能です。
ご利用の際は、このリポジトリのURLを出典元として添えていただけると幸いです。