Gift history
Please access after login.


Wait a moment...

「次世代NEMではじめるブロックチェーンアプリケーション開発」の実践記録 第1章 Catapult(NEM2)入門編

1338
7
2019-09-25 07:37:59
0.00 mXYM
(0)

先日、東京・池袋のサンシャインシティにて開催された「技術書典」で、タイトルにも書かせて頂いた「次世代NEMではじめるブロックチェーンアプリケーション開発」という日本のNEMberの方々の共著による技術書をゲットさせて頂きました。

 

帰りの新幹線の中で、一通り目を通させてもらったのですが、実は商業誌なのでは?と疑ってしまうほど、素晴らしい内容で、下車するのを忘れて読みふけってしまい、気付いたら名古屋まで来てしまっていたくらいでした。(私は静岡県在住なのです…。)

 

しかし、せっかくの技術書、やはり実際に手を動かしてみて、しっかり会得せねば…。著者の方も、以下のようにコメントされており、できるだけ先陣を切って手を動かして、気付いたことをまとめていこうと思います。

 

詳細な内容は、書籍での説明にお任せして、詰まったり、悩んだりしたところ、メモしておくと今後役に立ちそうなことを中心に記事にしていこうと思います。

なお、私のPCの環境は、Windows 10 Pro 64bit、メモリは4GBという比較的弱いスペックです。書籍自体はmacの環境を前提として構成されている箇所が多いと思いますので、特に普通のWindows環境の方で、環境構築等で悩んだ方への解決のヒントになるような情報を提供できると嬉しいな…と思っています。

 

それでは、まず、第1章 Catapult(NEM2)入門編の実践記録、はじまりはじまり~

 

第一章では、事前にNode.js, Docker, Docker Composeの主に3種類の実行環境を整える必要があります。(正直、この環境構築の方が、Catapultネットワークを構築することより、はるかに大変だな…と思うくらい、Catapultネットワーク構築は簡単でした!)

 

WindowsでのNode.jsの環境構築

 

Windowsの64bitのOSでの環境構築の場合、Node.jsは以下URLから推奨版をダウンロードして、ダブルクリックで実行して、どんどん次に進んでいく感じでインストールすればよいと思います。

https://nodejs.org/ja/

Windowsの32bitのOSでの環境構築の場合、以下URLから推奨版のWindows Installerの32-bitをダウンロードして、ダブルクリックで実行して、どんどん次に進んでいく感じでインストールすればよいと思います。

https://nodejs.org/ja/download/

 

WindowsでのDockerのインストール

 

結論を先に書くと、私の環境(Windows 10 Pro 64bit、メモリ4GB)では、Dockerの適切な環境をシンプルに構築できなかったため、GCP(Google Cloud Platform)上で動かすことにしました。4GB程度のメモリでは、Windows上でDocker Desktopを動かすにはメモリが足りないようです。何か方法はあると思うので、どこかで別の選択肢が無いか調べてみようと思っています。

 

以下に、念のため、私がWindows 10 Pro 64bitの環境でトライし、結果的に上手く行かなかった流れをまとめておきます。Windosw 10 64bitでの環境構築の場合、以下のような流れになります。メモリにもう少しゆとりがあれば、これで普通にDockerが動くと思います。

  1. Hyper-Vの有効化…これは普通に上手く行きました。
  2. Docker Desktopのダウンロード、インストール(Docker Hubにユーザー登録し、ログイン後の画面から、必要なファイルをダウンロード、インストール)…こちらも、1GBくらいのダウンロードでかなり重かったですが、特に問題無く上手く行きました。
  3. インストールの後、再起動後のDocker Desktopの自動起動時に以下エラーメッセージが出て解決できず…

無情にも、画面には「Not enough memory to start Docker Desktop」の文字が…。シンプルにメモリが足りないということだと思います。いくつか解決策を試したのですが、現時点では、この問題は解決できていません。

 

以降は、GCP上で試した手順を説明します。

 

GCP(Google Cloud PlatformのCompute Engineで新しいVMインスタンスを1個作成する)

 

以下にGCPでの作業の流れを書いておきます。初めてGCPを使う方向けの(正直乱暴な)手順となっています。作業自体は、Compute EngineのVMインスタンスを一つ新たに作成するというものです。

  1. まず、https://cloud.google.com/にアクセスし、右上の「無料トライアル」をクリックします。
  2. 国を選び(日本で良いでしょう)、利用規約への同意にチェックを入れ、「続行」をクリックします。
  3. 必要な個人情報と、カード情報を入力し、「無料トライアル」を開始をクリックします。(Catapultネットワークを数日試すくらいであれば、おそらく無料枠に収まり、お金がかかることは無いと思います。)
  4. 「最初のプロジェクトにユーザーを追加する」という画面が出てきますが、一旦は自分だけで作業を進めると思うので、「スキップ」をクリックします。
  5. Compute Engineの中のVMインスタンスをクリックします。
  6. 最初は、Compute Engineの準備が整うまで、少し待つ必要があるかもしれません。
  7. VMインスタンスの「作成」ボタンをクリックし、設定画面上でregionをasia-northeast (東京)にします。また、ブートディスクの「変更」をクリックし、OSイメージの中の「Ubuntu 18.04 LTS」にチェックを入れ、「選択」をクリックします。それ以外の設定項目は、今回のようなテスト目的ならば、そのままでも良いでしょう。
  8. 画面の下の方にある「作成」ボタンをクリックすると、VMインスタンスが作成され、少し待つと、そのVMインスタンスの行が表示されるでしょう。その行の「SSH」をクリックすると、作成したVMインスタンスへ接続して各種コマンドを実行できるブラウザの黒い画面(コマンドプロンプトのような見た目…以降ブラウザコンソールと呼びます)が立ち上がります。以降は、このブラウザコンソールにコマンドを打ち込んで、操作を進めていきます。

 

(GCP上に構築した)UbuntuへのNode.jsのインストール

 

Node.jsの環境構築は以下記事を参考にさせて頂きました。1~2.2までのコマンドを、ブラウザコンソールにて、順番に1行ずつコピペして実行すればよいと思います。ブラウザコンソールへの貼付は「Ctrl」+「V」コマンドで可能です。

注意点としては「Do you want to continue? [Y/n]」等のように確認を求められる時もあるので、その場合は、概ね「y」と入力して「Enter」で良いでしょう。

https://qiita.com/kerupani129/items/60ee8c8becc2fe9f0d28

 

(GCP上に構築した)UbuntuへのDockerのインストール

 

UbuntuへのDockerのインストールは、以下記事を参考にさせて頂きました。2~2.5までのコマンドを、ブラウザコンソールにて、順番に1つずつ実行すればよいでしょう。

注意点として、2.2, 2.4のコマンドは複数行を一気にブラウザコンソールにコピペして実行する必要がある点に注意してください。ブラウザコンソールに貼付するには「Ctrl」+「V」のショートカットを利用しましょう。

また、2.4では、「x86_64」の方のみ実行することに注意しましょう。

https://qiita.com/tkyonezu/items/0f6da57eb2d823d2611d

 

 

(GCP上に構築した)UbuntuへのDocker Composeのインストール

 

以下の公式ドキュメントのLinuxのタブを選択し、Install Compose on Linux systemsの段落のコマンドを順に実行すると良いでしょう。

https://docs.docker.com/compose/install/

 

以下、環境構築以外の実践時に詰まりやすいと感じたところ

 

上記の環境構築が全て完了していれば、以下を意識して、試していくと良いと思います。

 

・困ったら、まずは、タイプミスを疑ってみましょう。(しょうもない打ち間違えを、私もよくやってしまいます。)ファイル名等に関しては、実際にファイル名を確認してみて、トライしてみることをオススメします。

 

・権限の不足で失敗する箇所がいくつかあるので、sudoをつけてみましょう。

コマンドの最初に「sudo 」(sudoの後には半角スペース一文字分)を付けるという意識で進めると、詰まることなく、ブロックチェーンネットワークの立ち上げ、ノード群の停止まで進めると思います。(本来は、sudo をつけなくても上手くいくように、環境自体を設定すべきなのかもしれませんが、ここでは、第1章を確実に完走することを優先します。)

 

「npm install nem2-cli@0.13.0 -g」→「sudo npm install nem2-cli@0.13.0 -g」

「./cmds/start-all -d」 → 「sudo ./cmds/start-all -d」

「./cmds/stop-all」 → 「sudo ./cmds/stop-all」

 

・ブラウザでの表示内容の確認

また、ブラウザで表示内容を確認する箇所は、

curl http://localhost:3000/block/1

のようなコマンドで代用可能ですので、ブラウザコンソール上で直接コマンドを打ち込んで確認していきましょう。

 

・初期配布アドレスの確認

初期配布アドレスが記載されたファイルを確認する際には、「ls」で現在のフォルダ内にある、フォルダ・ファイルを確認し、フォルダ間移動はcdコマンド「cd build」「cd generated-address」、ファイルを開いて中身を確認するには「nano addresses.yaml」、そこでテキストをコピーするには、コピーしたい範囲を選択した瞬間にハサミマークが表示されればコピーされているので、ブラウザコンソールの外の自分が普段使っているテキストエディタにコピーしておきましょう。ちなみに、nanoの表示は「Ctrl」+「X」ショートカットで終了できます。

一つ上のフォルダに戻るには「cd ..」を使いましょう。

 

・無駄にVMを立ち上げっぱなしにしないこと→ほったらかしにし過ぎると、いずれは、課金が発生してしまうと思います。

試し終わったら、忘れず、「sudo ./cmds/stop-all」でノード群を停止し、GCPのVMインスタンスの一覧の対象ノードの右端の三点をクリックして「停止」をクリックし、仮想マシンを停止しておきましょう。

 

・インスタンス再起動後は、環境変数設定をもう一度実行する必要あり

注意点として、再度、右端の三点をクリックして「開始」をクリックし、仮想マシンを立ち上げたときには、設定した環境変数は消えているので、再度、「export PRIVATE_KEY=秘密鍵(人それぞれ異なる)」「export GENERATION_HASH=ジェネレーションハッシュ(人それぞれ異なる)」のコマンドで設定する必要があることに注意してください。

 

概ね、以上のような内容を念頭に置いてチャレンジすれば、非エンジニアの方でも、第一章は、最後まで完走できるのではないか…と思いました。ぜひ、多くの方にチャレンジして頂ければ…と思います。私も、できるだけ早く、最後まで完走して、自分なりのサービスを作り始めたいと改めて感じました。

Writer
Web技術やNEM, Symbol, Cosmos, Ethereumを中心としたブロックチェーンに関する情報発信が多めです。ものづくりの会社→CauchyE(旧: LCNEM)→NEMTUS。NPO法人NEM技術普及推進会の副理事長です。よろしくお願いします。

Comment
Login required to post comment
Loading...
https://symbol-sakura-16.next-web-technology.com:3001,https://symbol.harvest-monitor.com:3001,https://hideyoshi-node.net:3001,https://harvest-01.symbol.farm:3001,https://criptian-xym-node.net:3001,https://35665.xym.stir-hosyu.com:3001,https://yuna.keshet.finance:3001,https://cryptocat-xym-node.com:3001,https://misaki-xym.com:3001,https://ik1-305-12844.vs.sakura.ne.jp:3001,https://17107.xym.stir-hosyu.com:3001,https://23639.xym.stir-hosyu.com:3001,https://sym-main-01.opening-line.jp:3001,https://sym-main-02.opening-line.jp:3001,https://sym-main-03.opening-line.jp:3001,https://sym-main-04.opening-line.jp:3001,https://sym-main-05.opening-line.jp:3001,https://sym-main-06.opening-line.jp:3001,https://sym-main-07.opening-line.jp:3001,https://sym-main-08.opening-line.jp:3001,https://sym-main-09.opening-line.jp:3001,https://sym-main-10.opening-line.jp:3001,https://symbol-node-01.kokichi.tokyo:3001,https://50038.xym.stir-hosyu.com:3001,https://27423.xym.stir-hosyu.com:3001,https://angel.vistiel-arch.jp:3001,https://xym.stakeme.tokyo:3001,https://00-symbol-node.yagiyoshi.com:3001,
6BED913FA20223F8,051FAEC15105C808,73019335A785A3AE,5289A9B0DBB7EB25,6B245EAF1302E444,2C4A4893229DD0A9,63509D495CAD7B80,481D74291A71FD1F,009388A38C91A8B2,4E94920841641B77,027C6AD49DE2C9F9,29FCA5D3092205EC,56085AD9FCE150AC,7D47EE5423795E68,1FCD7C6B47C7AC5C,34F165131675B97B,2277A3D3C939E3BD,1BEE7E51C52B9E4C,7DE0FA227D5C284A,69C715D2F4E80338,5CF9D768B02E51EA,5B96E6496754C18E,35584939456EE19C,430AB6F115D709C5,202FC8C6762F1286,1DA6F5986C56CAB4,77F0C0918BDDCA75,05D935AB3DBBBDA7,3AB05B7B3373067F,383EEBD409479BDD,282E5F730EEF0F3C,108AFF21E54B77EB,0C4AAE8E82E054FD,18964001EF89D687,15BDE2DDF36FE763,01E2769C92FFB187,427C7F0474B2170B,3F2EEE17968715D5,6C0AFBA20EEBF08B,22975F2097F16D15,2A30D04FF35E8641,03ACEC4F51A71804,5235C4249928922B,2BFEB24F70B91041,741320E728843965,7C4E97850A863208,0586FF7E5ED1C680,606432C50BDE4EB5,15A6AD5E5ED6AC0E,59932634EDBF2A21,5E4F05ED77C64434,71C79278A325FF67,616EC15DE7D641A0,25C2DAB4FE687CBE,3D78B91922741293,5DC4B8DCDC4D3098,2693037B1881D5FA,178FE008F5DCE797,174A93DA9B651FBD,128B2CD071838D3E,1F5630200C5A6025,43449FF761B3DD67,4B20F46C289CA548,35DBA0A70A96615F,78CE44A425CD4514,37179FDE046FE7F2,1739E47C99BAF114,0F3B4A0F2E58703B,3C41561BE3DF7461,2AF0FBFEBF29231F,74CD75720BA4F553,1A5229DC90802C6C,0D2888CD0CBB78EE,2558F02FE439C78F,5DDD07C51EC896A7,437B094116B91BF3,6C9E7CFE33220C8F,38E1C92F412FCA96,2FB263845F59AF82,28C3C38B84138804,659821D4511185A7,7C6095DA82D3E981,70ADA95932385F9F,0BE6C51AD316BF2B,78E6ED1B6C05FD98,39534A8DFD9C0F1E,1BAF1FE1AAF90CD0,6782B8D9162D0C12,5EF22919F6EA15F7,04A3F3F5C088626A,7484B044AC8EF734,305B0ECE763A1E81,08738DB598D0BA37,6F4018163AC51F88,46650CE0C72739A8,0208FCB9186781E5,4E685399C9F8C991,77DB7D348B042A18,578ED7B270B43E64,0B34212023AA5139,479CEDAEE6FAC642,4266458B86437B4B,1F7022D092066B94,0CA28E24CB575AA6,4DCC3C025CDC0BB8,1BD05266C7410EE1,45C46BC710C187AF,7CC2C672543CA102,555BA3719D30D3B9,75C4079CCCCF3E82,66C98D947EAC56FB,1C041AB88A8D222B,79C13E9FE7DA49AB,54D872B5DB378F52,5C97B2414157B039,31E7A64CFF778586,1DFD11EEDA4662C4,18506C180280D8AB,02E95DB8811B3F7A,2D289599AF071703,17EA80052AF590B0,5239AE78AA9011CC,6B6511925501765B,2730974F2D11E9FA,08AB4E53E95E417E,1D0DD379C8C4BA49,26EE7E07E1255FAB,015FABE3F602FA91,366D7D6540335156,2D1E8E73B9F09391,043694AD272BCEBA,064335A213099492,3C40AE05D9758591,71C4BCA24A2FA6C1,20170ABD32244B78,74EBE4C9FD9C3BC8,713583F712D574FA,7C05BBBD486CF544,634D5A328A659C41,2DA0EC8CA32B7CE6,4D0ECC9F6F70D67D,7426EE72B3DFD620,3C3E58B64A8CD43C,5007CF79DF192FB2,1531F39F1B0AA8C3,5D1E928E7902404F,74599424DE012A19,52F96AC0043B02D8,0C694031CFC22C84,03D6EE58174D16DD,054B071E97323D54,2B58942A0A9D3908,7FE10DF86F32776F,1A08F9B88AE4CCF9,03CB7A99E6F6F65A,2F0BAAAD886013B2,7D8FF6C570E909C3,237ACBD2073D7C22,29498519D19B27CF,03E85F9F15A92D27,62B4F899B6DADDFF,6649A6F82740775E,1FA7CAD8017C3045,5FFB7126DD87CC5B,07039874D46F8B44,3391DD8105AD0C82,56C97E544EA9C149,6103DBFFA022249B,41E9771D99FF96A5,65CF7BE26FC7BF56,789063B9FDA7D02B,3EE026A17E4D1895,44B13D3F4EEB8AC9,248AAD9D9E2C1984,0CEDE2DEDDB4832F,5DFE51E2C6617CA4,4FAE3B092339A328,03B7E30D264E586B,3B5B8D2389EEB8C9,0058930348E8DA39,43C44AE173D50661,16E0B9B56763A2A6,43B05E6CCD87A765,33276E3A53106C11,24F35BCEA31E9AFB,49320DB27BA10BF5,01B69528B052EFA3,21C3025E1B2B9D3C,613FFCD9027A73D9,79A5BC34AE8B6314,35BFF98EA19690D4,156CDDD2D6791814,6E4E5A6C8F1ECA31,21BCF4CD26C307FF,15F6E07EAC6D5186,71A24162BA611651,0EDC8542160D8DAA,771BAE5451E881A8,1E47CA21337876B5,7688DC299D77C545,1166391DB32354A4,6A0AF7328EBBE113,38E48122C0FC8BCF,484874B2C669D6E1,4EF142A5D00BDA63,0508049897379E24,50B28C0858AE222C,75F2674CEE45E919,2F0DC3D306469BF9,5A86884742F89C7F,78F0F31776134860,1576EB985E541EA9,17D9C6FCB4FAB2A0,6B2E9EAF2632AEC8,007050CE9F59E77C,5D88028B3A9E633A,554191B46C16E4C4,5A0E1268E65E99F2,41A67647778AEA4D,7EADDBC2119EADA0,3D4235EB6FC9247D,5D25658948613563,5629D816678CF8FC,48A147A7F34C0131,46DF1D828736AFE1,748D83A906C897E4,0708BF363BA9595A,58384D5F0D793C09,531A0934DE43FBAC,1C4EEB7AD6B44AF4,383B57EBD5272C12,41F8077951D07ADF,0F52B4D356FDA824,1FE0805A112A03DF,38E8FFDFCD6510FF,0F65746CB1D7AD53,1E9E3010A1412DDB,7401A59C5DBD66A4,5FDC6383C702EC40,3B97B8CA49739205,5A799437D541B2DA,187E2C0B8F401ED9,0ACA1FDDEB9F6A07,4F2DC8BA863044C6,7D2383791D91CD04,54ACEAF1E8632DF1,7B9DC57CC154B2E0,0B7766A119D5E4B5,49D82E72E99EB836,509A58B6FDFFC197,0C1058BB20787615,581B528745FE0F3B,28D1C21EDE70206A,23A72A2876482029,22EB02FCBC661527,5A8F12439B09B33E,5FF7741F1AE008DE,220DE9C58B8E0E71,5D9D5C6BFE968E2C,3F0B0C29CFD04713,11B52399E03C7E5C,14ABF8C934D15151,7290BAEF5C9CF307,6A44EB5C0F8ED639,255AC0628631B47B,7ADA0B238BB2E29D,05E545728E183EFA,73908A9FF9A309BE,7542C49F2737C4DE,6BE5318AED3E68DB,581F8B63FDF26797,6936D8BB20F4668A,410ECE9587841E7F,149C29AC78DA6465,2181451A49AB930A,7930B6BDAED90925,311AD92AC357CFD7,14340B796150DF92,4D4C35DA96550436,1B5CF0365D451EED,7691E0E6C687B9C0,76D453D709EEE2ED,22AE5C6526EBDE2B,21EF55EAB088DE3E,3FAD71C1671AF556,7EBEF5D03311CF41,367C8B5BD73BC538,182E30BC4D588B3B,66DE982975F20E6D,66224C8828E08DD9,5477E77F11971CE0,2F8D4B55DAB027A2,5CF59ED990B042A0,520C69A467DE143D,53AF2CD5F4182C4B,24DA833B682CFF33,