【Udemy】ブロックチェーンを作ってみた...!

どーも!

たかぽんです!

つい先程ブロックチェーンを作ってきました...!w

といっても、自力オンリーでは無理そうなんですが、Udemyでめちゃくちゃ良いコースがあったので、今回はブロックチェーンを作れるUdemyのコースをご紹介します...!

このコースを受講した理由

筆者がこのコースを受講した理由なんですが、昨今ブロックチェーンという技術が発展してきていて、筆者自身、Metamaskをインストールし、Dappsを触り、NFTも購入し...と色々とやっているうちに興味が出てきました...!

実はbitcoinの元の論文は何度かチラチラ見ていたんですが、結局よくわかんない...ってなっていたんですね...

そんな中、Udemyでそれっぽいコースがあったので、試しに受講してみよっか!って感じでした。

結果、ブロックチェーンを実際に実装して、その仕組みを説明できるくらいには理解できたんじゃないかな?と思います...!

では、次節からコースについての説明をしていきますね...!

もし興味を持った方がいらっしゃればセール期間に受講してみてください...!

コースの概要

今回受けたのは以下のコースです。

※購入の際は支払いの前に、セール割引が効いていることを確認してください...!

ざっくりと概要説明すると、Pythonを使ってBitcoinのブロックチェーンを模したシステムを作ってみよう!というものです。

文字通り、ブロックチェーンを一つ作るので、例えばBitcoinのブロックチェーンの仕組みが技術レベルで詳細に理解できます...!

時間はおおよそ4.5時間分の動画になっていますが、筆者が一通り通しで行った際は8 ~ 10時間くらいかかったかな?と思います。

では、次に筆者が思う、本コースを受講するメリット3つ行ってみましょう!

Blockchainエンジニアの需要について知ることができる

まず最初にブロックチェーンに関するアメリカのお仕事事情(需要はあるか?)というところの説明があります。

そもそも需要のない技術だと学ぶメリットが薄れますからね...

それも踏まえて、現状の米国を中心としたBlockchainエンジニアの需要を知ることができるのは一つのメリットだと思います。

ただし、先程"現状の"とお伝えしたけど、このコースの最終更新日は"2021/3"となっています。

つまり、一年以上前の情報となっているので、本コース受講する場合は都度、コース内で説明されているサイト等へアクセスをして、確認しておいた方が良いでしょう。

エンジニア業界の移り変わりは早いので...

ただ、日本だと2022年現在でもまだまだBlockchainエンジニアは注目されていない気がしますが...

アメリカだと大企業も目をつけて行動にうつしはじめているんだよ〜っていうのがわかります。

かくいう筆者も最近Blockchainエンジニア楽しそうだなぁ〜と眺めているので、改めてBlockchainの就職事情とか色々と調べてみて将来の候補として考えても良いかも・・・?と思い始めています...w

またそこらへん調べる機会あれば記事にしようかなと...

BlockChainの仕組みを理解できる...!

このコースでは、全体を通してブロックチェーンを作っていきます。

そのため、普段仮想通貨を触ったことがあるひとならご存知かと思いますが...

MetamaskやCEX(binance, coincheck等)でウォレットを作成して、そのウォレットで発行したtx(取引)が、miningでブロックに詰められて、そして全ノードに伝播する...

そういった仕組みを一から作成していきます。

そのため、文字通り、ウォレットの作成(秘密鍵、公開鍵の作成)、ブロックチェーンの挙動(node間の通信やtxの発行、マイニングでのブロック生成)といった基本的なところから、さらに深いところまで行くとnonceの算出方法やtxの検証も学ぶことができます...!

実は...筆者は興味を持って学ぼうとしたことがありましたが...

一度ようわからんからいっか...となったことがありました...w

ただ、今回はハンズオンで作りながら理解を進めたため、めちゃくちゃ解像度高めに理解できていると思います。

あと、ブロックチェーンを作ったことがある...って人に言えるの強くないです?w(もちろん、実用は程遠いけど...w)

理解度が深まった状態で自分での確認も込めて学び直してみようと思っています。

その際、改めてブロックチェーンの仕組みについての記事をかければなと...。

PythonやFlaskでlocalにサーバーを立てられるようになる

さて、3番目はあくまで僕の場合...になってしまうんですが...

Python, Flaskでlocalにサーバーを立てられるようになったのも個人的には良かったかなと思います。

Pythonは触ったことがあったんですが、どちらかというと定期実行で動かすスクリプトくらいしか作ったことがなく、webアプリとしてpythonを活用する方法に関しては全く無知だったんですね。

ただ、本講座でFlaskを使用することでサーバーを立てて、それがノードとなり、そのノードからtxの発行依頼を投げ、別で立てているノードからそのtxを発行し、マイニングを...といったことを行います。

その過程で、PythonでWebサーバー立てる場合はこんな感じなのか...!と理解することができました...w

軽く調べた感じだと、フレームワークなので、立ち位置的にはPHPの場合のLaravelやRuby on railsに近いのかな?

本当にFlaskの知識皆無で、初めて聞いたレベルだったんですが、それでも分かりやすかったです...!

そして筆者も興味をもったので、これを足がかりに今度Flaskの記事でも書きますね...w

さて、メリットは以上です。

次は筆者が思うデメリット・微妙だったかな?ってところについても挙げたいと思います。

全体を通して情報は古い点に注意...!

まずは情報の古さです。

初回のコース作成日時は把握できなかったんですが...

レビューの古いものを見た感じだと2年前くらいになっていました。

そのため、場合によっては2020年あたりの情報をもとに書かれている内容であることは念頭においた上で受講する必要があります。

ただ、古い...とはいっても、実際、仕組みの理解に関しては新旧あまり関係なく、今回"2022/7/24"に試してうまく動作したので、プログラム周りに関しては大した問題ではないように思います。

就職事情や需要動向は各自で調査が必要かな?くらいですね。

全くの未経験からだと少し難しいかも?

次がコースを進める上で、可能な限り平易に説明されていますが、それでも扱う情報の性質上、知識が必要な場面がある気がしています。

サーバーって?ノードって?というレベルの人だと内容の理解の途中で結構つまづくかも....?と思います。

なので、ある程度最低限の技術知識はないと、コース試聴だけでの理解は難しい場合もありそうです。

そのため、もし一度コースを試して、わからない点ばかりでまともに進められない...!

という場合は、pythonの基礎も併せて、Flask等でサーバーの立て方等も説明してくれている以下コースを修了後再度試すのをお勧めしておきます...!

(正直、python3についてかなり網羅されているので、とりあえず買っておいて、Pythonで何か迷ったらこのコースから探す...みたいな使い方もできます...!)

3
スクリプトで理解が難しい箇所がある

実際にPythonでプログラムをゴリゴリ書いていくんですが、一部、理解できていない部分もあります。

特に暗号化周りはencodeだったりdigest?といった過程を踏んでゴニョゴニョしていてコードレベルで何しているかわかってなかったりします...w

ただ、全体としてはウォレットのアドレス生成のために公開鍵を生成している...とわかっているので、筆者はそれで十分かなと...

もちろん、今後そこの理解が必須になった際は追いかける必要がありそうなんですけどね...!

なので、やりたいことレベルでは理解できていても、詳細のコードレベルでは理解が難しい箇所がある点は気をつけてください。

仮に全てを完全に理解してやる場合はそれなりに時間もかかるかと思います。

筆者はどのようにして受講した?

では、次は実際にコースを受講する時どのように受講したか簡単に解説しておこうと思います。

筆者の場合はM1のMacbookProで行いましたが、全体を通してOS準拠で詰まったことはなかったです。

ただ一点だけ、Flaskでデフォルトだと5000番ポートを使用するんですが、うちのMacBookだと、AirPlayレシーバーが占有していて、最初起動ができませんでした...w

そのため、ポート番号を変えるかプロセス止めるかで対処で良いかと思います。

(ここ、引っかかる人多そうなので、この後すぐに記事化しようと思います。)

また、基本的には再生速度1.75倍で聴きながら、写経を中心に手元で動かしてみる。

もしエラーが出たらサクッと解決できそう(発生から10分くらいまで)なら、自分で調べて解決を試みて、ダメそう(10分超えた)なら配布されているプログラムから、変更箇所を処理単位で置き換えて行ってエラー箇所の特定、特定できたらその箇所を一行ずつ同定していって、何がダメだったのか理解する。

といった感じで進めていきました。

正直、pythonでのコーディングやバグフィックスに力入れなくてもいいやって人は配布されているコードで実行して行って、内容理解に全ツしても良いかも...と思います...!

現状筆者は一周して、とりあえずblockchainの仕組みで困ったらこの動画を見ればなんとかなるかな?とは思ってます。

ただ、見なくても知識を引き出せるとまた違うので、時間を空けて何度か早送りしつつ瞥見しようかなと思っています。

(エビングハウスの忘却曲線的なアレですね。)

まとめ

今回はブロックチェーンについてのコースについてお話ししました...!

正直もっと早くで受講きていれば...と...

最近結構ブロックチェーン周りの開発に興味を持ち始めているので、自分でも何かしら触ってみて色々ためしてみたいなぁと思っています。

その時はまた記事書こうと思いますが、まずは先にブロックチェーンの理解を進めていかなければ...!

今年の後半はブロックチェーンとインフラ的なところを強化したいお気持ち...

おすすめの記事