Pythonでブロックチェーン開発に入門した
Jun 9, 2024 15:05 · 1773 words · 4 minute read
Udemyでブロックチェーン開発の入門コースを受講しました。
現役シリコンバレーエンジニアが教えるPythonで始めるスクラッチからのブロックチェーン開発入門 | Udemy
とても良かったので感想を書きます。
目次
コースの内容
このコースではBlockchainの基礎的な考え方を解説した後に、実際にPythonでBlockchainを実装します。 Flask、requestsなどのライブラリも使いますが、Blockchainの作成や検証、マイニングやTransactionの同期機能など、Blockchainの中心的な機能はPythonの標準ライブラリを使って実装しています。
各動画で説明する内容は下記の通りです。 1本の動画は3-10分程度で区切られているので、隙間時間でコツコツ見進めることができます。
セクション1: はじめに
-
- ブロックチェーンエンジニアの求人とブロックチェーンを採用する大企業の状況
-
- 講義を受ける前の注意事項
セクション2: ブロックチェーンとは
-
- ブロックチェーンを使った仮想通貨の送金システムのデモイメージ
-
- ブロックチェーンとは
セクション3: ブロックチェーンの作成
-
- 本コースで使用するソースコード
-
- 開発準備
-
- ブロックチェーンクラスの作成
-
- ブロックのハッシュを求める
-
- トランザクションの追加
-
- Proof of Work、コンセンサスアルゴリズム、ナンスとは
-
- ナンスを導き出す
-
- マイニング
-
- トランザクションの合計を計算する
セクション4: ウォレットの作成
-
- 秘密鍵と公開鍵とECDSAとは
-
- ウォレットの作成
-
- ブロックチェーンアドレスの作成方法
-
- ブロックチェーンアドレスの生成
-
- トランザクションの署名
-
- トランザクションの証明
セクション5: ブロックチェーンサーバーのAPI
-
- Flaskでサーバーを立ち上げる
-
- ブロックチェーンを取得するAPIの作成
-
- ウォレットのUIサーバーの立ち上げる
-
- ウォレットのUIを作成する
-
- ウォレットの作成
-
- トランザクションを受けるAPIの作成
-
- ウォレットサーバーでトランザクションのAPIの作成をする
-
- ウォレットからのトランザクションの送信
-
- マイニングAPIを作成する
-
- マイニングをスレッドで実行する
セクション6: ブロッックチェーンネットワークの構築
-
- 他のブロックチェーンノードを探索する
-
- ブロックチェーンノードの自動登録
-
- トランザクションの同期
-
- コンセンサスとは
-
- ブロックチェーンの検証
-
- 最も長いチェーンを採用するリゾルブコンフリクト
-
- 51%アタックとは
-
- 他ノードからの仮想通貨の合計の計算
-
- 仮想通貨を送受信する
-
- ボーナスレクチャー
前提知識
このコースではFlaskを使ってウォレットのWeb UIを作成します。 本丸であるBlockchainの仕様理解に集中するために、下記の知識があると良いでしょう。
- Blockchainについての基礎的な知識(Bloackchainはどんなものか?というような知識)
- Pythonの基礎的な知識
- PythonのWebフレームワークFlaskの基礎的な知識
- HTML, JavaScriptの基礎的な知識
良かった部分
実際にPythonで実装しながらBlockchainや仮想通貨について学ぶことで、Blockchainや仮想通貨の仕様に対する理解の解像度があがりました。 コードを見ることで理解の解像度が上がるのは、プログラミング知識があることの大きなメリットですね。 文章を読んで理解を深めるよりも効率がいいと感じました。
次にすること
理解できなかった部分の復習
Signatureの作成と検証、ウォレットアドレスを作る部分の実装は1度見ただけでは理解できなかったので、もう1度見返します。 1回で理解できなかった部分を何度でも見返せるのはUdemyのような動画コンテンツの強みですね。
コードを書いて自分の環境で動かす
今回は時間の都合により実際に手を動かしていないので、自分でもコードを書きたいです。
Crypto Zombies
今回のUdemy講座でBlockchainの基本的な仕様は理解できたので、次はCrypto Zombiesにもチャレンジします。 Crypto ZombiesはSolidityを使ってEthereum上で動作するスマートコントラクトの実装を学べます。