Multichainによるブロックチェーンの実装(Streams編)

普段はIoT関連の仕事をしているが、Blockchainの活動についても関わるようになった。
ブロックチェーンとIoTは親和性がとても高いので大変ありがたいことだが、テクノロジーのことを知らないまま関わっていくのも気持ちが悪いので、ブロックチェーンを自分で実装してみることで理解することにした。

今回実装するのは、先日SAPからSAP Cloud Platform(SCP)上で使えるようになったと発表があったMultichainだ。
SCP上で試せれば良いのだが、トライアルで利用することはできないし、個人でライセンスを購入するほど安くもないので、 今回はAzure上で仮想マシンを作成し、そこにブロックチェーンを実装しようと思う。

Multichainとは

Multichainはプライベート型、もしくはコンソーシアム型のどちらもで利用できるブロックチェーンだ。

ブロックチェーンは、ビットコインのような誰でも参加できるパブリック型、特定企業のみが参加するコンソーシアム型、組織内で利用するプライベート型と大きく分けると3つに分類される。この分類については以下のサイトが分かりやすいので参考にすると良いだろう。

gaiax-blockchain.com

Multichainは金融機関などでの利用を目的に、参加ノードのコントロール機能と高いプライバシーを以下によって実現している。

  • ブロックチェーンのアクティビティを閲覧できるのを予め許可が与えられたユーザーのみに限定
  • 取引を許可するコントロール機能を導入
  • Proof of Workなしでセキュアにマイニングを実施

ビットコインのようなパブリック型ブロックチェーンと違って、コンソーシアム型もしくはプライベート型のブロックチェーンは参加者を限定できるし、Proof of Work(PoW)もする必要がないことは直感的にわかるだろう。

さて、ここからはMutichainの実装に移っていく。

システム要件

2018年6月16日現在のMultichainのシステム要件は以下になっている。

  • Linux: 64-bit, supports Ubuntu 12.04+, CentOS 6.2+, Debian 7+, Fedora 15+, RHEL 6.2+.
  • Windows: 64-bit, supports Windows 7, 8, 10, Server 2008 or later.
  • Mac: 64-bit, supports OS X 10.12 (we hope to support earlier versions soon).
  • 512 MB of RAM
  • 1 GB of disk space

Download and Install MultiChain | MultiChain

LinuxへのMultichainのインストール

それではAzure上の仮想マシン(Cent OS 7.2)を使ってMultichainを実装していく。基本的にはチュートリアルにしたがって実装していく。

一台目

$ su
# cd /tmp
# wget https://www.multichain.com/download/multichain-1.0.5.tar.gz
# tar -xvzf multichain-1.0.5.tar.gz
# cd multichain-1.0.5
# mv multichaind multichain-cli multichain-util /usr/local/bin 
#  exit 

これでインストールは完了だ。

一台目

$ multichain-util create chain1

これでブロックチェーンが作成された。

一台目

$ multichaind chain1 -daemon

(省略)
Other nodes can connect to this node using:
multichaind chain1@10.0.0.5:6727
(省略)

これでブロックチェーンが初期化された。この6727は後で使うのでメモしておく。

ここからは二台目のサーバに移って作業する。同じくMultichainのインストールから行う。

二台目

$ su
# cd /tmp
# wget https://www.multichain.com/download/multichain-1.0.5.tar.gz
# tar -xvzf multichain-1.0.5.tar.gz
# cd multichain-1.0.5
# mv multichaind multichain-cli multichain-util /usr/local/bin 
# exit 

これで二台目についてもMultichainの作成が完了した。

一台目

$ multichaind chain1@10.0.0.5:6727

MultiChain 1.0.5 Daemon (latest protocol 10011)

Retrieving blockchain parameters from the seed node 10.0.0.5:6727 ...
Blockchain successfully initialized.

Please ask blockchain admin or user having activate permission to let you connect and/or transact:
multichain-cli chain1 grant 1EWXTFE8ES7skdzfQJNreGSHUGBAsKAnF9g4Vh connect
multichain-cli chain1 grant 1EWXTFE8ES7skdzfQJNreGSHUGBAsKAnF9g4Vh connect,send,receive


Blockchain successfully initialized.

Please ask blockchain admin or user having activate permission to let you connect and/or transact:
multichain-cli chain1 grant 1EWXTFE8ES7skdzfQJNreGSHUGBAsKAnF9g4Vh connect
multichain-cli chain1 grant 1EWXTFE8ES7skdzfQJNreGSHUGBAsKAnF9g4Vh connect,send,receive

一台目で作成したブロックチェーンに接続しようとしたことろ、権限の付与を行う必要があると返ってきた。

Multichainの特徴としてはブロックチェーンに参加するノードに細かく権限を付与できるところである。 標準出力に書いてあるコマンドを使って、一台目のサーバから権限を付与するコマンドを実行する。

一台目

$ multichain-cli chain1 grant 1EWXTFE8ES7skdzfQJNreGSHUGBAsKAnF9g4Vh connect,send,receive
{"method":"grant","params":["1EWXTFE8ES7skdzfQJNreGSHUGBAsKAnF9g4Vh","connect,send,receive"],"id":1,"chain_name":"chain1"}

55180abde3bd94d40f44ac45b58cab2305d8582f256d12c6d812926917387a4e

これで二台目のサーバに権限を付与できたので、二台目のサーバから再度接続してみる。

二台目

$ multichaind chain1 -daemon

MultiChain 1.0.5 Daemon (latest protocol 10011)

Starting up node...

Retrieving blockchain parameters from the seed node 10.0.0.5:6727 ...
Other nodes can connect to this node using:
multichaind chain1@10.0.0.4:6727

Listening for API requests on port 6726 (local only - see rpcallowip setting)

Node ready.

今度は二台目のサーバからブロックシェーンに接続された。これにより2つのサーバが一つのブロックチェーン上で接続されたことになる。

ここからは実際にMultichainのメインの機能を試していく。MultichainにはStreamsとAssetsという機能があり、StreamsはデータベースのようにMultichain上にデータを追加できる機能、Assestはビットコインのように仮想通貨をやり取りする機能だ。 ここではエンタープライズ用途でより使われると思われるStreamsを実装する。

Streamsの実装

一台目のサーバでmultichain-cliコマンドを使ってインタラクティブモードに入ってStreamsを作っていく。

一台目

$ multichain-cli chain1

chain1:create stream stream1 false
{"method":"create","params":["stream","stream1",false],"id":1,"chain_name":"chain1"}

72278614e5270d3b0c8eb95b76b135ecf55dae4fd6bb49b97bdf1c91a210939a

chain1: publish stream1 key1 73747265616d2064617461
{"method":"publish","params":["stream1","key1","73747265616d2064617461"],"id":1,"chain_name":"chain1"}

1d6e29622550eb1afe7ce881c72070262d2fd29d202e6152a6287923cfa89855

これでstream1というStreamsが作成され、そこにitem key1が作成された。
StreamsはNoSQLのようなkey-valueで管理され(上の出力でいうと、key1がkeyで73747265616d2064617461がvalueとなる)、タイムスタンプやトランザクションID(txid)を持つ。
NoSQLと違ってすごくブロックチェーンっぽいのは、itemの削除ができないことだ。ブロックチェーンの特性上、アイテムのステータスを変化の時系列を含めて管理したいという概念があるからだ。

さて、次は二台目のサーバでstream1をSubscribeし、権限を付与して、stream1のアイテムを表示してみる。

二台目

chain1:subscribe stream1

chain1: grant 1EWXTFE8ES7skdzfQJNreGSHUGBAsKAnF9g4Vh stream1.write
{"method":"grant","params":["1EWXTFE8ES7skdzfQJNreGSHUGBAsKAnF9g4Vh","stream1.write"],"id":1,"chain_name":"chain1"}

aab39ced6f38756bbc4318633219186cbcd848cfc01583242fcf6df88771eada

chain1: liststreamitems stream1

{"method":"liststreamitems","params":["stream1"],"id":1,"chain_name":"chain1"}

[
    {
        "publishers" : [
            "12tyKhNYWyFYiophW5G4qvnkGdrzUjE547TyeP"
        ],
        "key" : "key1",
        "data" : "73747265616d2064617461",
        "confirmations" : 44,
        "blocktime" : 1529236260,
        "txid" : "1d6e29622550eb1afe7ce881c72070262d2fd29d202e6152a6287923cfa89855"
    }
]

一台目で作成したアイテムが二台目からでも確認できることがわかる。

以上からも分かる通りブロックチェーンを構築すること自体はとても簡単だ。
実際にエンタープライズで使うには、業務プロセスと結びつける必要があるので、

  • 何をブロックチェーン上で管理するのか
  • 管理する情報と業務プロセスをどう結びつけるのか

など、考えることはたくさんある。Track & Traceのためにブロックチェーン使うというのはよく聞くが管理形態が異なるので、データベースの保存先がブロックチェーン上になるという簡単なものではないので注意されたい。

まとめ

今回はMultichainを使ってブロックチェーンの実装を行った。

実装自体はとても簡単で1時間もあればできるだろう。今回はMultichainを使ったが、他のブロックチェーンでもブロックチェーン自体の実装は簡単だと思う。

大切なのはブロックチェーンと業務プロセスとをどう結びつけるかだ。
実際のプロジェクトを通じてそれを理解する機会があれば、また記事にしたいと思う。

ビザ発行中におけるドイツ国外への出入国について

ビザの申請中にドイツ国外に出国する用事ができてしまいました。
(正確にはもともと帰国する用事があったのですが、その用事までにビザの発行が間に合いませんでした。)

早速webで調べてみたのですが、人によって意見が異なり、何が正解か分かりませんでしたので、 今回実体験を元にまとめることにしました。

関連するブログについて

ore-germany.com

このブログでは入国から90日以内、つまり観光ビザが有効な期限内ではあるが、仮発行ビザを発行してもらい出国しているようです。

detail.chiebukuro.yahoo.co.jp

こちらの知恵袋では、仮ビザ発行中でも出国して再入国の際に拒否されかねないと言っています。

ameblo.jp

こちらのブログでは、『日本の場合は申請中に仮ビザの手続きをとらなくても出入国できます。』と言っています。

このように記事によって言ってることはバラバラですが、安全を取って外国人局に行き、仮ビザの発行を依頼することにしました。

外国人局に行く

ということでビーレフェルトの外国人局に行って状況を伝えた所、あっさりと仮ビザ(一ヶ月)をその場で発行してくれました。
仮ビザは必要とも必要ないとも直接言われてはないのですが、当たり前のように仮ビザを発行してくれたので、観光ビザを超えて滞在中にシェンゲン協定外へ出国する場合は、仮ビザを取得して出入国することをおすすめします。
なお、仮ビザ発行してくれた担当者からは「仮ビザと言っても有効期限は異なりますが、正式なビザと効果は有効なもの、これがあれば問題なく入国で出来ます」言われたので、とても安心しました。

ちなみに、仮ビザ発行にかかった費用は12 € でした。
はじめのブログでは20 € と書いておりましたので、都市によって値段が異なるようです。

まとめ

今回はかなりレアケースだと思いますが、ビザ申請中のシェンゲン協定外への渡航について記事にしました。
仮ビザがなくても再入国できるのかもしれませんが、念のため仮ビザを発行することをおすすめします。

ハノーファーメッセ2018に参加してきました

先日、ドイツのハノーファーで開催されるハノーファーメッセ(Hannover Messe、以下HMIと略します)に参加してきました。

HMIは世界最大のインダストリー産業のイベントということもあり、フォークリフトなどの産業用自動車やPLCなどから、 それを取り扱うIT系まで6,000以上の企業が出典しています。

自身の業務としても、個人の興味としてもIT系のプラットフォームのところに興味があるので、 プラットフォーマーであるSAP, Microsoft, AWS, Googleや、プラットフォーマーでありインダストリの強みもあるSIEMENSを IoTのプラットフォーマーとしての強み、弱みが何なのかという観点で回ってきました。

f:id:hayato320:20180426175022j:plain

SIEMENS

f:id:hayato320:20180426171550j:plain 4/23にSIEMENSがMicrosoftのAzure上に、SIEMENSのIoTプラットフォーム MindSphereを提供することを発表しました。
MindSphereはインダストリーに特化したIoTプラットフォームです。
SIEMENSはこの1月にもAWS上でMindSphereを提供することを発表しました。

SIEMENSは工場内のPLCなどの機器も提供していることから、各機器とのコミュニケーションはとても強いのでしょう。
SIEMENSのプラットフォームがAWSやAzure上で使えるというのはとても強みを感じます。
AWSの周辺系の機械学習系のサービス(AWS IoT Analytics)も使えますしね。

名だたる企業のブースが沢山ある中で、SIEMENSが一番勢いを感じました。

AWS

AWSはAWS IoT Coreというサービスを提供しています。
SIEMENSのインダストリー特化とは反対に、こちらは汎用的なサービスのようです。
他のプラットフォームと比べての強みは双方向認証を使ったやりとりによる高いセキュリティと軽量性が売りだそうです。
周辺系のシステムを組んでいるようならAWSでIoTプラットフォームを構築して、他システムと連携させるシナリオはすごく需要がありそうです。

Microsoft

f:id:hayato320:20180426174849j:plain MicrosoftはAzure IoT Suiteというサービスがあります。
こちらはEdgeのサービスがOPC-UAでコミュニケーションができるというところが強みになります。

Microsoftは通常のPublic Cloud Servicesとは別にAzure Stackというオンプレ型のAzureを提供しています。
このAzure Stackでも先日IoT系のサービスが使えると発表されました。

やはりセキュリティが気になる方はビッグデータをオンプレ環境で保存しておきたいという方もいらっしゃいます。
Azure Stackはその一つの解となりえるでしょう。

金融系などデータを社外に出したくない場合等に、AzureStackはかなり良いと思います。

Google

Googleは彼らの検索エンジンなど他のサービスもGoogle Cloud Platformを使っています。
Googleは大量のAI人材を抱えていることもあり、AI系のサービスはかなり強みがあると思います。

Google Could IoTはGoogleが提供するMLやAI系のサービスが使えることが強みです。

IoTの大量データは人間が処理せずAIが処理することになると思いますから、GoogleのAIが使えるのはかなり強みかと思います。

SAP

f:id:hayato320:20180426174922j:plain SAPは彼らのクラウドプラットフォームであるSAP Cloud FoundryでIoT系のサービスを提供しています。
SAPの強みとしてはS4/HanaなどのERPと連携することができることが強みでしょう。

ただ、SAP自体がAWSやMicrosoftで使えるように鳴ってきていることから、 SAPの更改のタイミングでオンプレからAWSやマイクルソフト上のSAPに移行して パブリッククラウドサービス自体のサービスとの連携を強化するケースが増えてきているようです。

SAP LeonardoがAWSやAzure上で使えるようになり、AWSやAzure上のサービスと連携しやすくなればメリットはさらに大きくなる と思うので、密かに期待しています。

番外編(ランボルギーニ)

f:id:hayato320:20180426175118j:plain 人生で一番間近でランボルギーニをみました。
格好良い以外の言葉がなかったですね。人生で一度は乗ってみたいものです。

まとめ

今回はハノーバーメッセに参加して得た情報と自分の考えを整理して記載しました。
個人的にはすでに使っているパブリッククラウドサービスを使ってIoTシステムも構築するのが良いのではと思います。

今後も各プラットフォーマーの動向を把握しつつ、自身の業務に活かしていきたいと思います。

SAP Leonardo IoTの概要を紹介する

2018年からドイツのビーレフェルトでIoTに関連した仕事をしております。

出向先ではSAPを生業にしているということもあり、現地のボスがLeonardoの研修を受けてこいということで、 SAP Leonardo Foundationの研修を3日間受けてきました。

今回の記事はSAPド素人の自身の理解を整理しつつ、SAPを使ったことがない方でもSAP Leonardo IoTとはなんぞやということを理解できるよう記事にしたいと思います。

そもそもSAPとは

まずそもそもSAPって聞いたことあるけどなんでしょうという方も多いのではないでしょうか。

SAPはドイツのWalldorf(ヴォルドルフ)に本社があり、SAP ERPなどのソフトウェアを提供している会社です。
どこかでHanaというワードは聞いたことがあるでしょう。フォーチューン500(アメリカ上位500社)のうち80%がなにかしらSAPの製品を入れているというくらいメジャーなソフトウェア会社です。

今まで業務で携わってなかったからか、日本ではSAPが強いというのをそれほど意識していなかったのですが、ドイツに来てからは、特に欧州でSAPの強さを感じます。

SAPがとてもメジャーなのでSAPコンサルティングも色んな企業が力を入れています。

さて、それではSAP Leonardoにはいります。

SAP Leonardo

今まで私はLeonardo = IoTソリューション というイメージを持っていたのですがそれは違います。

https://blogs.sap.com/wp-content/uploads/2017/05/Screen-Shot-2017-05-17-at-5.21.28-PM.png

LeonardoはSAPのデジタル関連ソリューション郡であり、IoTはSAP Leonardoの一つのソリューションになります。

次に、SAP Leonardo IoTはどのようなサービスから構成されているのかを説明します。

https://blogs.sap.com/wp-content/uploads/2017/07/Architecture-1.png

SAP Leonardo Edge Computingはエッジと名前が付いている通り、On-premise等に用意するエッジ側のソリューションです。製造現場などのデバイスからのセンサーデータは、エッジ(ゲートウェイ)を経由してSAP Cloud Platfromに送ります。ゲートウェイにはWindowsやLinuxなどを用意し、ここにインストールできるのがSAP Leonardo Edge Computing郡です。

IoTの世界では大量のデバイスがインターネットに接続され、大量のデータがクラウドに送られます。しかし、エッジからデータをクラウドに送って、クラウド側で何か処理してエッジに戻す時間を許容出来ない場合はエッジ側で処理します。そのためのソフトウェアです。
ちなみにSAP Leonardo Edge Computing郡のソフトウェアをインストールしなくてもセンサデータをクラウドに送ることはできます。

IoT Gatewayから送るセンサーデータはクラウド側のIoT Serviceで処理します。
IoT Serviceはセンサーの型のようなものを定義します。また、センサーが持っているCapabilityと言われる温度とか、気圧とか、湿度とかのセンサ情報が何かを定義します。
また、センサーデータを送るデバイスもIoT Serviceで管理します。
IoT Serviceで受信したデータはApplication Enablementに送られます。

Application EnablementはInternet of ThingsのThing(Capabilityを多数持つセンサのまとまり)をモデリングする場所になります。
ここでどれだけ正規化して定義ができるかがキモとなりそうです。
IoT Serviceから転送されたデータはApplication Enablementを通じて、Databaseにデータが保存されます。
Databaseについては自身で設定する箇所はありません。SPA Cloud Foundryの中で自動で設定されます。
内部の構造としてHot、Warm、Coldの三種類あり、データの古さなどによって保存されるデータベースが異なります。

Database
Hot SAP Hana
Warm Apache Cassandra, VORA(将来)
Cold AWS S3, SWIFT(将来的)

また、S/4 Hanaなどのビジネススイートなどと連携する場合もApplication Enablementと連携します。

SAP Leonardo BridgeはSAPがPredefineしたアプリケーションセット郡です。
用途に応じて様々なアプリケーションセット郡があります。

SAP Leonardo Bridgeを使わず自身でアプリケーションを作成することも可能です。 これを手助けしてくれるのがSAP UI5です。

SAP UI 5はユーザーが使用するUI画面を作成するアプリケーションです。
コーディングせず、すでに用意されているテンプレートから選択してアプリケーションを作成することもできますし、 フルスクラッチで自分でコーディングすることもできます。その場合はローカルの環境で構築して、SAP Cloud Foundryにアップロードするような形になります。

さて、ここまでがSAP Leonardo IoTの説明です。
次は実際は実際の画面を紹介してイメージを掴んでいただこうと思います。
ただ残念ながら、SAP Leonardo IoTはCloud Foundryの方ではトライアル版がありません。今回は研修に参加した環境の画面を紹介します。

SAP Leonardo IoTのConfig画面

Edge Service

Edge ServiceではIoT Serviceで定義したCapability毎にセンサープロファイルを定義します。

f:id:hayato320:20180303154125p:plain

IoT Service

ここではどのようなセンサータイプがあり、そのセンサーがどんなCapability(温度とか、気圧とか、湿度とかのセンサ情報)を持つかを定義します。
f:id:hayato320:20180407152729p:plain

Application Enablement

ここでは"Thing"をモデリングします。
このモデリングは個人的には理解が難しいです。

IoT Serviceとは同じものを指していても名前が異なっているので、マッピングが分かりづらいです。
f:id:hayato320:20180407152249p:plain

SAP UI5

SAP UI5はSAP Leonardo IoTだけでなく他のSAPのサービスにも使われているものです。
XHTMLとnode.jsで構成されています。
SAPから提供されているライブラリをたくさん使いますが、IoTに関連する部分は用意されているドキュメントが少ないです。
ここはSAPに本当に頑張って欲しいです。

f:id:hayato320:20180407153411p:plain

まとめ

さて、今回はSAP Leonardo IoTを簡単に紹介しました。
SAP Leonardo IoTはSAP Leonardoで提供されるソリューションの一部であり、Edge, IoT Service, Application Enablement, SAP Leonardo Bridgeで構成されていることを紹介しました。
次回はもう少しDeep Diveしていき、SAP Leonardo IoTを理解していきたいと思います。

【Bielefeld】住民登録とオンラインバンク登録

ドイツのビーレフェルトに赴任してほぼ一ヶ月が経ちました。

昨日でホテル暮らしがようやく終わり新居に住んでおります。家具なしの家なのですが、何もない広い家に住むのは寂しいです。

さて、今日はビーレフェルトでの住民登録とオンラインバンクの登録について記事にしたいと思います。

住民登録の方法は同じドイツでも都市によって異なります。
他の都市での住民登録の方法は見つけられたのですが、ビーレフェルトでの記事は見つけられなかったので、ビーレフェルト版としてまとめることにしました。

オンラインバンクについてはN26という銀行を開きました。 N26については基本的には迷うことなくN26のページより開設ができたのですが、一箇所登録にあたり迷うところがありましたので、その部分だけ記事にしたいと思います。

住民登録 (Anmeldung)

ドイツでは住民登録のことをAnmeldungと言います。

原則、90日以上滞在する場合は、ドイツに入ってから2周間以内に住民登録する必要があるようです。 住民登録を行わないとビザの取得がないよう?なので、私はホテル滞在中にホテルの住所を使って住民登録をしました。

ビーレフェルトで住民登録に必要な書類は以下の3つです。

  1. 申請書
  2. 大家による署名
  3. パスポート
  4. 戸籍謄本(入籍を証明する場合)

申請書は市役所で市の職員が作成してくれるので事前に作成する必要はありません。 住民登録する際に、住んでいることを証明する「大家の署名」が必要になります。 この書類は市役所にありますので市役所に取りに行く必要があります。(つまり最低市役所には2回行く必要があります。)

パスポートは大丈夫ですよね。

さて、4つめの戸籍謄本ですが、私は既婚なのですが、住民登録する際に”既婚を証明する書類”がありませんでしたので、”不明”と登録されてしまいました。これはあとから変えられるようなのですが、はじめに書類があったほうが良いでしょう。

なお、市役所の場所はRathausが最寄り駅です。 場所として以下になります。

区役所は朝7:30から空いています。 曜日によって閉館時間が異なるのでホームページを参照してください。ドイツ語ですが、なんとなく読めます。

https://www.bielefeld.de/de/rv/ds_stadtverwaltung/afb/

朝一で行くとすぐカウンターに案内されますので、必ず朝一に行きましょう。 朝一以外は行ったことないですが、オープンと同時にかなりの人が入りますので、時間がかかることが想定されます。

ちなみに、ドイツ語→英語に翻訳するのはDeepLというサイトが便利です。 綺麗に英語に翻訳してくれるのでとても便利です。

DeepL Translator

オンラインバンク N26

さて、次はオンラインバンクのN26についてです。
他の銀行と異なり、英語で書かれたウェブサイトから申し込みが可能です。
申込み自体は10分くらいで終わるため、大変お手軽ですし、必要な書類もパスポートのみなので申込みは非常に簡単にできます。

一点、私が勘違いしていた部分があるので、共有します。

登録時にデリバリーのオプションが表示されます。 通常2周間かかるカードのデリバリーが2営業日でできると記載があり、私はすぐに口座番号が欲しかったので、申込んだのですが、口座番号がほしいだけなら上記オプションに申し込む必要はありません。 オンライン上で申し込んだ直後に口座番号が払い出されます。 なお、カードがすぐにほしい方はオプションを洗濯しましょう。

まとめ

今回は住民登録と銀行口座の開設について記事にしました。 初めてのドイツ生活で不安もありますが、厳しいと言われていた市役所の職員も優しく、とても楽しく過ごすことができております。 (まだビザ申請できてないのが不安ですが、、、笑)

今後、生活面のtipsだけでなく、仕事で携われるテクノロジーに関しても記事にしたいと思っておりますので、どうぞよろしくお願いします。