HARUKIの日記

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

ブロックチェーンまとめ

ブロックチェーンまとめ

業務でブロックチェーンに携わるようになったため、昨年から色々と調べていたので、
自分なりにしらべてまとめた結果をslideshare(初投稿)してみました。

ブロックチェーンを取り巻く環境の変化は、凄まじく1年前と今とでもだいぶ状況が変わってきている。
(日本でも、民間と日銀がそれぞれ主導となってデジタル通貨の実証実験を始めたりするなど。。)

暗号資産についても、polkadotが上位に食い込んできたり、イーサリアムで大型アップデートが行われたりと
人間がコロナで縛られている間も技術はめざましく進化していることを実感しました。

まだ調べなきゃいけないことや勉強しなければならないことは山ほどあるが、まずは一旦アウトプットしてみようと
考えてスライドを投稿してみました。初投稿なので、見苦しいところもあるかと思いますが、よろしくお願いいたします。

※これからも勉強していくので、適宜更新・修正して行きたいと考えています。

https://speakerdeck.com/mashharuki/burotukutienmatome?slide=75

https://www2.slideshare.net/HarukiKondo/ss-247675477

React.jsとNext.jsについて!

React.jsとNext.jsについて勉強しているので、その情報を共有するために投稿します。

solidityとスマートコントラクトを勉強していたが、React.jsと組み合わせてアプリケーションを作成している例をたくさん見かけたこともあり、
React.jsもこの際理解しようということにしました。

違いは下記の通り。

React.js: SPAを考えて作成されている。HTMLをJavaScriptの中に記述できるJSX機能が強力!

Next.js:React.jsに各種ライブラリを統合してパッケージ化したもの。React.jsを拡張させることができる!

ソースコードは、下記GitHubで公開中

react_app
next_app

どちらも npx コマンドを利用することで土台部分を自動的に作成してくれるため、すぐに開発に入ることができるという強みを持っている!

要素をコンポーネント化することで、複雑な画面でもプラモデルのパーツを組み立てる感覚で開発できるところが面白いし、扱いやすいと感じた。
エンタープライズ向けのWebページでもおそらく課題になるであろう画面レイアウトの統一とも相性がものすごく良いとも考えている。

ただ、従来のHTMLやJSPと比べてかなり書き方が変わるため、いきなり導入するということはハードルが高そうだが、柔軟に開発できるため導入するメリットの方が大きいのではないかと考えている。(特にNext.jsについては、HTMLファイルが無くなり、全てJavaScriptでの記述となるため従来のやり方に慣れている方からには、少なからず抵抗があるかもしれません。。。)

※現在、勉強中のため、適宜追記していきたいと考えています。

 

以下、書籍がとても参考になりましたので共有させていただきます。

実践スマートコントラクト開発 node.js超入門 React.js&Next.js超入門

 

 

 

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

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

【令和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ヶ月後を楽しみにしたいと思います!!!