HARUKIの日記

主にIT技術関連の記事を投稿していきたいと考えています。

スマートコントラクトを使ったWeb3.0アプリケーションを作ってみた

<h1>
solidityを使ったWeb3.0アプリケーションをコーデイングしてみた
</h1>

ネット上でも、solidityを使ったweb3.0アプリケーションを使って開発した本や記事がまだまだ少ないので記事を投稿してみました。

下記書籍を参考に、Web3.0アプリケーションを作ってみました。
https://www.amazon.co.jp/Solidity%E3%81%A8Ethereum%E3%81%AB%E3%82%88%E3%82%8B%E5%AE%9F%E8%B7%B5%E3%82%B9%E3%83%9E%E3%83%BC%E3%83%88%E3%82%B3%E3%83%B3%E3%83%88%E3%83%A9%E3%82%AF%E3%83%88%E9%96%8B%E7%99%BA-%E2%80%95Truffle-Suite%E3%82%92%E7%94%A8%E3%81%84%E3%81%9F%E9%96%8B%E7%99%BA%E3%81%AE%E5%9F%BA%E7%A4%8E%E3%81%8B%E3%82%89%E3%83%87%E3%83%97%E3%83%AD%E3%82%A4%E3%81%BE%E3%81%A7-Kevin-Solorio/dp/4873119340

ソースコードは、GitHub上で公開しています。
https://github.com/mashharuki/fundraiser-dapp

いきなり、メインネットやテストネットで試すのはハードルが高いため、Ganacheを使って、プライベートネット上にスマートコントラクトを
デプロイしてWeb3.0アプリケーションを体感してみました。

なお、このリポジトリを動かすには、事前に下記が必要となります。

1. node.jsをインストールしておくこと
2. ganacheをインストールして事前に起動しておくこと
3. ganacheを使ってプライベートネット上にスマートコントラクトをデプロイすること
4. MetaMaskをインストールしておくこと
5. プライベートネットの秘密鍵をMetaMaskにインポートしておくこと

以上となります。

まず、コーディングして感じたのが、フレームワーク「truffle」と「React」の凄さ!!
Reactはフロントエンド側開発用のJavaScriptフレームワークとなりますが、JSXを使って、要素をコンポーネントとして扱うところが面白い!
ぜひ、習得して実際の業務でも使用してみたいと思いました!!

そして、何より、コマンド「truffle unbox react」でテンプレートファイルが作成されて土台部分がすぐに出来上がるのが便利すぎる!!
最初は、何書いてあるかチンプンカンプンだったが、段々と勉強していくうちに分かったので、特に問題なし!

MetaMaskと組み合わせて、実際に動かしてみるとブロックチェーンがデータベースの一種であるという説明にも納得がいく。
今までは、本の中に書いてあるだけでなんとなくでしか理解していなかったが、やはり自分でコーディングしてみると理解度にも天と地の差がある。

これで、Web3.0アプリケーションの土台部分ができたわけで、色々と試していきたいと考えている。

EIP712のデモサンプルやマルチシグコントラクトと合わせて、マルチシグウォレットアプリなんかを作ってみると面白いかも。。。
ブロックチェーンエンジニアになりたいと思ってきた!!

今は、コロナ禍で色々と制約があって大変だけど、アフターコロナに備えて自分の技術力をさらに高めていきたいと考えている。

 

【2021年5月15日追記】

上記に挙げているソースコードについてうまく動かない部分があったため、修正いたしました。

実際に動かしてみることで、ブロックチェーンとは何か?スマートコントラクトとは何か?を体系的に学び感じることができるはずです!!(筆者も実際に動かしてみて感動しました。)

次世代の標準となるであろうWeb3.0アプリケーションのフレームワークにして行こうと思います!!

【令和3年度 春】応用情報技術者受験!!

4月18日(日)に、応用情報技術者試験を受験してきましたので、

その体験記をまとめていきたいと思います!!

 

今後、受験を予定されている方のためにも、自己採点と実際の結果の差異など

参考になりそうなデータは残していきたいと考えています。

 

問題は、下記の通りです。

 

【午前の問題】

https://www.jitec.ipa.go.jp/1_04hanni_sukiru/mondai_kaitou_2021r03_1/2021r03h_ap_am_qs.pdf

 

【午後の問題】

https://www.jitec.ipa.go.jp/1_04hanni_sukiru/mondai_kaitou_2021r03_1/2021r03h_ap_pm_qs.pdf

 

【個人的な所感】

過去問道場やネット上でも色々と感想が書き込まれていますが、個人的には午後の方が難しいと感じました。特にネットワークとデータベース・・・。

ネットワークに関しては、自信持って解答できなかったので、メチャクチャ不安になりました。。その影響もあってかデータベースの手応えも微妙でした・・・。

ほんとに午後が鬼門ですね!

 

 

と、所感はこれぐらいにしておいて午前と午後それぞれについて、自己採点を行いましたので、確認していきたいと思います。

 

参考にした解答速報は、次の通りです!

 

【午前】IPAの公式サイト

https://www.jitec.ipa.go.jp/1_04hanni_sukiru/mondai_kaitou_2021r03_1/2021r03h_ap_am_ans.pdf

 

【午後】以下、4サイトの解答速報と予想配点を参考に自己採点をしました。

 

①TAC:

https://www.tac-school.co.jp/kaitousokuhou/downloads/9_R3S_AP%E8%A7%A3%E7%AD%94%E9%80%9F%E5%A0%B1.pdf

 

②IT資格の歩き方:

https://www.seplus.jp/it-exam-guide/guide/news_flash_ans_ap_pm/

 

③ITEC:

https://www.itec.co.jp/wp-content/uploads/shiken/2021s/2021s_ap_pm_kaito_n.pdf

 

④資格の大原:

https://www.o-hara.jp/files/page/course/joho/sokuhou/ouyou_pm202104.pdf

 

いざ、自己採点!!

 

まずは午前。。

自己採点の結果は、67 / 80 だったので、マークミスや忘れ等がない限り大丈夫そう。とりあえず一安心。。。知らない単語がたくさん出てきたが、運よく合っているものが多かった。

 

問題は、午後。。

私が選択した問題は、セキュリティ、プログラミング、システムアーキテクチャ、ネットワーク、データベースです!もう後の祭りですが、今回はネットワークが凄く難しかったので、選択ミスしたかもしれないですね。。

 

ひとまず必須問題である情報セキュリティから!

 

結果は・・・・・1問ミス!

良い滑り出し!! EV証明書を知らなかったためこれを機会に覚えようと思います!

 

続く、アルゴリズム。。今回は、機械学習の分野でも取り上げられることの多いクラスタリングの手法の一つである。「k-means法」がテーマでした。ネット上では、60分かけたという書き込みも見かけたため、相当に難しかったと思われます。。

 

結果は・・・・・なんと全問正解!!

参考にした4サイトでも解答内容に差異がなかったため、解答速報の内容は、

かなり信頼できる可能性が高そうです!もしそうだとすると20点なので感無量です!

 

次に、システムアーキテクチャです。

 

結果は・・・・・12~15点!

4サイトの解答速報によると6割は、取れてそうです。。まぁIPAの配点内容が公表されないので、なんとも言えませんが、TACさんの配点予想はかなり精度が高いのではという記事も見かけましたので、今はそれを信じることとしたいと思います。

 

この時点で、 50 / 60 なので残りの2問で、10点取れていそうなら可能性があります!

ここまでは、私も喜んでいました!!

 

ネットワーク・・・・・

 

結果は・・・・・8~9点!

難しいとは感じましたが、ここまでとは。。。

dockerやKubernetesも勉強してネットワーク構成の事が分かってきたと思っていたので、ちょっとショックでした。 これを機にネットワークの総復習した方が良さそうですね。。記述については、部分点あると嬉しい!

 

さぁ最後のデータベースは、どうだ!!!

 

結果は・・・・・9~11点!

ううっ。。スタースキーマのことが分からなかったことは、勉強不足だとして後半の穴埋めは、難しく考え過ぎてしまいました。。記述に関しても意味わからないこと書いちゃったし。。(泣) それでも諦めずに最後まで取り組んで、なんとか5割ぐらいは得点しました。残り10分で全然埋まっていなくて、心臓バクバクだったけど0点じゃなくて良かった。。。

 

さて、ここまでの結果を踏まえて、4サイトの内容で採点した結果、

次の通りとなりました。

 

TAC:68〜71点

 

IT資格の歩き方:69点〜75点

 

ITEC:68点〜75点

 

資格の大原:68点〜73点

 

 振れ幅があるのは、サイトによって答えが割れている箇所があり、

自分の答えが全てあっていた場合と間違っていた場合で算出しています。

記述部分についても部分点考慮なしで、間違っていた場合は、0点としました。

 

 後半が死んでいたので、前半戦が調子良くできてほんとに良かったと感じています。

一応合格ラインである60点を超えてはいそうですが、得点が10点前後することや調整が入ること等も踏まえてまだ安心できないです。。ボーダーライン上に乗っかっていると考えて2ヶ月過ごすの結構きついですね。。

 

6月25日に合格発表ですので、実際の得点とどのくらい差異があったのかも共有できればと思います。(他の皆さんの参考になれば幸いです。)

 

とりあえず、2ヶ月後を楽しみにしたいと思います!!!

 

※2021年6月26日追記しました!

【午後の回答例】https://www.jitec.ipa.go.jp/1_04hanni_sukiru/mondai_kaitou_2021r03_1/2021r03h_ap_pm_ans.pdf

昨日、IPAから解答例が公開されました。ほとんどの答えについては、事前に予備校等が発表しているものと一致していたので、内容については再確認の意味で確認を行いました。(予備校は流石ですね!)                 

発表された内容でTACさんの配点予想で丸付けを実施して見ました。記述系については、間違っていそうな回答には△なしで❌として66点。。

どちらにせよ、2日後には結果が出ますので、あとはこれとどれだけ差異が出るかですね・・。それまで他のことして忘れようと思います。

ついに、6月25日に合格発表されました!事前に発表された解答例を基に丸つけした結果は、66点でしたどうでしょうか・・・・

f:id:HARUKI05758694:20210626122350p:plain

合格発表

結果は、68点で合格でした!!!

点数についても自己採点と2点しか離れていなかったので、他の方もブログで紹介されていましたが、TACの配点予想はやはり精度が高そうです!

これから受験する方の参考になればと思います!

応用情報技術者に合格したので、セキュリティのスペシャリストを目指して情報処理安全確保支援士の取得を目標にしようと思います!

ありがとうございました!