NEMのクライアントアプリを実装してみよう!

WEBアプリケーションでNEMの取引きを行うクライアントプログラムの解説書です。

998 views

本章ではクライアントアプリを作成する上で、認識しておくべきNEMのシステムの概要について説明します。

NEMは、クライアント・サーバーモデルを使用します。
サーバー側のプログラムのことをNIS(NEM Innfrastructure Server)と呼びます。

NEMのアーキテクチャを図3.1に記します。


図3.1 NEMのアーキテクチャ

非常にシンプルです。
図3.1に記す①のブラウザや、②のpythonやjavasciptといったスクリプトから③のNISサーバに直接アクセスできます。
しかも、通信経路はHTTPです。SSLによる暗号化を行いません。
となると、次のような問題を想像するかもしれません。

「AさんがBさんに10XEM送金しようとしたときに、通信経路の途中でデータをCさんが改ざんし、AさんからCさんに10XEM送るようにできてしまうのでは?」

これに対しては、送金時にデジタル署名を付与することで、改ざんされているかどうかを検出できるようになっています。
改ざんはNISサーバで検出され、ブロックチェーンに取り込まれない仕組みになっているので大丈夫です。
[ご参考]
NISのHTTP通信によるやりとりとHTTPSの必要性

「NEMはメッセージも送れるけど、盗聴されてしまうのでは?」

XEM以外にメッセージも送信できますが、メッセージは暗号化されているため、盗聴もできません。
ただ、アドレスに入っているコインの量は見ることができます。
[ご参考]
NEMのメッセージ暗号化の仕組み

HTTPでも心配なさそうとはいえ、②のサードパーティのプログラムを作成する場合、自分でデジタル署名のプログラムや暗号プログラムを書く必要がありそうです。
あまり自信のない人は、提供されているライブラリを使うのが賢明と言えるでしょう。
ラッパーライブラリはNEMの公式サイトにあります。
https://nemplatform.com/developers/

なお、Wikipediaでは次のような図がアーキテクチャの図として用いられています。

間違いではないですが、NCCはスーパーノード以外での使用は推奨していないようです。
[ご参考]
★★ウォレット関連情報まとめ★★

Page 3 of 6.

前のページ 次のページ



[添付ファイル]


お問い合わせ

プロフィール

ビットコ

自己紹介

仮想通貨の実装方法について書いて行きたいと思います。

サイト/ブログ

https://www.osumoi-stdio.com/pyarticle/book/33/1

ツイッター

@darkimpact0626