NEM から Symbol へのマイグレーション

Symbol では以前に利用可能だった NIS1 の機能のほとんどが進化しました。このドキュメントは以前の NIS1 の機能を、新たに利用可能な Symbol の技術に あなたのアプリケーションをアップグレード する手助けになるでしょう。

注釈

このガイドは更新されています。情報は Symbol 開発が進むにつれて変更されます。

Comparison between NIS1 and Symbol
NEM NIS1 Symbol
Built-in features  
Mosaics Mosaics
Namespaces Namespaces
Delegated Harvesting Delegated Harvesting
Multisig Accounts Multi-level Multisig Accounts
Mosaic Restrictions Advanced Mosaic Restrictions
Account Restrictions
Metadata Controls
Aggregated Transactions
Inflation
Cross-Chain Swaps
Plug-Ins
Protocol  
Coded in Java Coded in C++
POI (Proof of Importance) POS+ (Proof of Stake Plus)
Keccak-SHA3-512 SHA-512
Fixed Fees Dynamic Fees
Receipts
Merkle Proofs

テストネットワーク

執筆時点でメインのパブリックネットワークは開始されていません。現在、 Symbol のテストを開始するための2つのオプションがあります。

  • パブリックテストネットワーク: パブリックテストネットワークは将来的なパブリックメインネットワークと同じテクノロジーと機能を使用しています。テストネットを実験的に使用することで、貴重な資産を失うことなく、トランザクションセットを試すことができます。テストネットを使用するには、次の ガイド に従ってください。
  • Private test network: To run a private test network, use the package symbol-bootstrap. This tool contains the necessary setup scripts to build a network for development and learning purposes with just one command.

旧 API の非互換性

NIS1 ネットワークで動作していた旧 API 呼び出しは Symbol とは 非互換 です。REST API ノードのポート 3000 番を用いて API リクエストを行います。

いくつかの ソフトウェア開発キット – 開発中の Symbol 分散型レッジャー用コンシューマアプリケーション – があります。現在 計画中の SDK は Typescript / Javascript / NodeJS, Java, C#, Go, Python, Swift で書かれています。

はじめに TS/JS SDK を見てみることを推奨します。最も使用されている SDK であり documentation の先頭にあります。TS SDK のアーキテクチャは NIS1 向け NEM Library にインスパイアされています。

See also:

アカウントの管理

どちらのプラットフォームも Ed25519 というデジタル署名アルゴリズムを使用しますが、ハッシュアルゴリズムが異なります。NIS1 は Keccak-SHA3-512 を使用しますが、 Symbol は TLS をサポートするために SHA-512 に変更されました。

The change in the hashing algorithm used leads to have, for the same private key in NIS1 and Symbol, different public keys, and addresses.

See also:

旧トランザクション

NIS1 と Symbol でのトランザクションの シリアライゼーションフォーマットに互換性がありません。それでも、ほとんどの種類のトランザクションは進化し​​ただけで削除されたものはありません。より少ない変更で Symbol トランザクションへのアップグレードが可能であることを意味します。

トランザクションについての最初の注目すべき変更は、ステータスレスポンスが WebSocket チャンネル を通して受信されることです。NIS1 ではクライアントはトランザクションをアナウンスした直後に API 呼び出しの応答を受け取りました。Symbol は呼び出しの応答を非同期に受信し、呼び出しをブロックしません。

それに加え、 Symbol では TransferTransaction は1つのバージョンだけになります。基軸通貨は通常の モザイク としてトランザクションのモザイク配列に追加されるようになりました。

See also:

トランザクション手数料

Symbol transaction fees are dynamic and decided by the network participants. Each transaction effective fee is calculated by multiplying a fee multiplier by the transaction size. The fee multiplier is attached in the block where the transaction gets confirmed, and it is defined by the node owner harvesting the block.

During the transaction definition, the sender limits the maximum fee authorized to include the transaction in a block.

See also:

Mosaics

モザイク の管理に関してプロトコルレベルで顕著な変更が行われ、いまや ネームスペース から 独立 した存在となりました。

実際に NIS1 ではネームスペースにリンクされたアセットも完全に期限切れとなる可能性があります。 Symbol ではモザイクは代わりにそれ自身の 期間 を持つように設定され、一意な nonce 値が割り当てられます。

Lastly, levies are not available on Symbol.

See also:

Namespaces

Namespaces can still refer to mosaics using AliasTransactions. A namespace owner can attach either of an account or a mosaic id to one of its namespaces. The namespace information endpoint will return the linked object in the alias field.

Also, Symbol root namespaces have a duration field that is expressed in a count of blocks which means yearly renewal is not mandatory anymore.

モザイクの転送を促進するためにモザイク作成者はネームスペースを登録し、そのネームスペースをモザイクのエイリアスにすることができます。エンドユーザーはモザイクの参照に エイリアスを使用してトランザクションを送信 することができます。

トランザクションがエイリアスを含む場合、 resolution はブロック内のそのエイリアスの解決された値を反映します。エイリアスアドレスやモザイクの背後にある実際の識別子を取得するには、クライアントアプリケーションはトランザクションが含まれるブロックにリンクされている関連の 解決レシート を取得する必要があります。

See also:

マルチシグネチャの管理

チェーン上で管理されたマルチシグネチャアカウントである Symbol のマルチシグネチャ実装は他の多くのいわゆるクライアントサイドのマルチシグネチャ実装とは異なります。

  1. マルチシグアカウント の作成

NIS1 と異なり、アカウントの変更エントリに 最低承認数最低削除数 のフィールドが追加されました。

  • 最小削除数: マルチシグアカウントから署名者を削除するトランザクションをブロードキャストするために必要な署名者の数を定義します。
  • 最小承認数: 他のタイプのトランザクションに必要な署名者の数を定義します。

さらに、マルチシグアカウントに追加される署名者は 署名 (オプトインプロセス)を送信して変更について承認する必要があります。このプロセスを促進するために ModifyMultisigAccount のトランザクションタイプは MultisigAccountModificationTransaction でラップされる必要があります。

  1. マルチシグネチャトランザクションは アグリゲートトランザクション と組み合わせて動作します。

新しい AggregateTransaction は異なる参加者が関わる複数のトランザクションをまとめてラップすることができます。すべての参加者がアグリゲートに共同署名すると、インナートランザクションはアトミックにブロックへ取り込まれます。それ以外の場合にはいずれのトランザクションも承認されません。

NIS1のようにマルチシグトランザクションを送信するには、トランザクションの開始者はそれをアグリゲートのインナートランザクションとして追加する必要があります。次にマルチシグで定義された最小数の署名者が、共有アカウントからのトランザクションのアナウンスを許可するために、アグリゲートに署名しなければなりません。

See also:

お困りですか?

After reading this documentation, you might still have some unanswered questions.

In this site, you will find descriptions for every new feature and self-paced guides on how to use the software development kits.

We invite you to connect with our developer community by joining the Slack.