概要
- ブロックチェーン について, Udemy講座 で 学習してみた.
- ちょうど, 2022年8月9日に, Udemyセールがあったので, 92%割引で, 講座を購入することができた.
- 動作環境は, 以下を利用した.
- Windows 10 Home (64bit)
- Visual Studio Code (バージョン: 1.70.2)
- Firefox (バージョン: 103.0.2 (64-bit))
- Go 1.19
感想
- 前回のPython版と類似したブロックチェーンネットワーク構成で確認したので, ブロックチェーンに関する理解を深めることができたと思う.
- package main の 競合を避けるため, プロジェクト全体のツリー構造を変更して確認した.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
|
> tree /f フォルダー パスの一覧: ボリューム Windows ボリューム シリアル番号は 96D6-109A です C:. │ go.mod │ go.sum │ └─UdemyGoBlockChain ├─block │ blockchain.go │ ├─blockchain_server │ │ blockchain_server.go │ │ │ └─main │ main.go │ ├─cmd │ main.go │ ├─utils │ ecdsa.go │ json.go │ neighbor.go │ ├─wallet │ wallet.go │ └─wallet_server │ wallet_server.go │ ├─main │ main.go │ └─templates index.html |
- [wallet_server.go]ファイルで, 変数 tempDir の 設定値 を, 変更して確認した.
|
[変更前] const tempDir = "wallet_server/templates" [変更後] const tempDir = "../templates" |
- [neighbor.go]ファイルで, GetHost関数の戻り値を, 変更して動作確認した.
|
[変更前] return address[0] [変更後] return "127.0.0.1" |
- [blockchain_server.go]ファイルで, 以下の修正を行って動作確認した.
※ウォレットから, 仮想通貨を送信後, ブロックチェーンノードのトランザクションを確認すると, 同じ内容で, 2個ずつ追加される現象が発生したため, 以下の修正(0.0.0.0 ⇒ 127.0.0.1)を行い, 解決した.
|
[変更前] log.Fatal(http.ListenAndServe("0.0.0.0:"+strconv.Itoa(int(bcs.Port())), nil)) [変更後] log.Fatal(http.ListenAndServe("127.0.0.1:"+strconv.Itoa(int(bcs.Port())), nil)) |
- [blockchain.go]ファイルで, UnmarshalJSON関数 を UnMarshalJSON関数 のような名称にすると, コンセンサスAPI が 動作しなかったので, 要注意
- 仮想通貨の送受信確認
参考までに, 講座の最後の方(最終デモ)を確認していた時のキャプチャを, 貼り付けてみた.
[送信]
[受信]
- 修了証明書
参照サイト
現役シリコンバレーエンジニアが教えるGoで始めるスクラッチからのブロックチェーン開発入門