Pythonでブロックチェーン開発に入門した

Jun 9, 2024 15:05 · 1773 words · 4 minute read python Blockchain

Udemyでブロックチェーン開発の入門コースを受講しました。

現役シリコンバレーエンジニアが教えるPythonで始めるスクラッチからのブロックチェーン開発入門 | Udemy

とても良かったので感想を書きます。

目次

コースの内容

このコースではBlockchainの基礎的な考え方を解説した後に、実際にPythonでBlockchainを実装します。 Flask、requestsなどのライブラリも使いますが、Blockchainの作成や検証、マイニングやTransactionの同期機能など、Blockchainの中心的な機能はPythonの標準ライブラリを使って実装しています。

各動画で説明する内容は下記の通りです。 1本の動画は3-10分程度で区切られているので、隙間時間でコツコツ見進めることができます。

セクション1: はじめに

    1. ブロックチェーンエンジニアの求人とブロックチェーンを採用する大企業の状況
    1. 講義を受ける前の注意事項

セクション2: ブロックチェーンとは

    1. ブロックチェーンを使った仮想通貨の送金システムのデモイメージ
    1. ブロックチェーンとは

セクション3: ブロックチェーンの作成

    1. 本コースで使用するソースコード
    1. 開発準備
    1. ブロックチェーンクラスの作成
    1. ブロックのハッシュを求める
    1. トランザクションの追加
    1. Proof of Work、コンセンサスアルゴリズム、ナンスとは
    1. ナンスを導き出す
    1. マイニング
    1. トランザクションの合計を計算する

セクション4: ウォレットの作成

    1. 秘密鍵と公開鍵とECDSAとは
    1. ウォレットの作成
    1. ブロックチェーンアドレスの作成方法
    1. ブロックチェーンアドレスの生成
    1. トランザクションの署名
    1. トランザクションの証明

セクション5: ブロックチェーンサーバーのAPI

    1. Flaskでサーバーを立ち上げる
    1. ブロックチェーンを取得するAPIの作成
    1. ウォレットのUIサーバーの立ち上げる
    1. ウォレットのUIを作成する
    1. ウォレットの作成
    1. トランザクションを受けるAPIの作成
    1. ウォレットサーバーでトランザクションのAPIの作成をする
    1. ウォレットからのトランザクションの送信
    1. マイニングAPIを作成する
    1. マイニングをスレッドで実行する

セクション6: ブロッックチェーンネットワークの構築

    1. 他のブロックチェーンノードを探索する
    1. ブロックチェーンノードの自動登録
    1. トランザクションの同期
    1. コンセンサスとは
    1. ブロックチェーンの検証
    1. 最も長いチェーンを採用するリゾルブコンフリクト
    1. 51%アタックとは
    1. 他ノードからの仮想通貨の合計の計算
    1. 仮想通貨を送受信する
    1. ボーナスレクチャー

前提知識

このコースでは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上で動作するスマートコントラクトの実装を学べます。

tweet Share