Pythonでブロックチェーン開発をしてみる
どうも、アドベントカレンダー9日目担当です。
アドベントカレンダーをなんでブログで書くかはまだよく分かりません。
そもそもアドベントカレンダーってなに?
アドベントカレンダーの起源は、19世紀初頭よりドイツ・ルーテル派がクリスマス前の24日間を数えるために始めたとされる。ドアに毎日チョークで印をつけたことから始まったとすることもある。
おお、ルーデル派!
ルーデルってあの破壊王か!?
一気にやる気が出てきた。
https://gigazine.net/news/20080718_hans_ulrich_rudel/
やる気が出たところで、今回書く内容はタイトルの通り、
Pythonでブロックチェーン開発をしてみる(ウォレットを作るまで)
をやってみたいと思います。
2016年くらいからビットコインとか、ブロックチェーンとか調べ始めたけど、
実際にコードで動かす機会は無いままでした。(めちゃめちゃ難しいイメージを持ってた)
そんな自分でもやってみようと思ったきっかけのコースがこちら。
現役シリコンバレーエンジニアが教える
Pythonで始めるスクラッチからのブロックチェーン開発入門
https://www.udemy.com/course/python-blockchain/
自分でビットコインのウォレットを作るセクションなどもあってそそられました。
が、自分にできるのか、、
いくらシリコンバレーのエンジニアでも、
ガチ文系には辛いんじゃないか、、
pythonって機械学習とかに使う、高等な数学の知識が必要なのでは。
分数でつまずいたのはもちろん、
おはじきとかも使い方がよく分からないうちに、算数初級が終わってたぞ。
前世一歩手前まで思い出したけど、やはり算数の記憶が曖昧。
もはや文系とか関係なく、算数やってない。
まぁ難しいこと考えると動けなくなってしまうので、
進めて行きましょう。
アドベントカレンダー9日目をサボるわけにはいかない。
まずは環境を整えます。(ローカル環境がごちゃってて、ここが一番詰まった)
必要なもの
- python 3.7.3
変なエラーが出ても嫌なので、頑張って講師の方と一緒のバージョンにします。
参考サイト
https://qiita.com/ms-rock/items/72b8f1abc661c539bb09
pythonのバージョン管理はpyenvを入れました。
そしてコースを進めて行きます。
よく聞いていた単語がどういう風に作られているのか分かり楽しい、
講師の方が爆速でコードを書いて、内容を早口で細かく説明してくれます。(udemyは動画の再生速度も調整できる)
今まで文献でしたか読んだことがなかった機能を実装しながら、ウォレット作成まで進めます。
- トランザクション
- ハッシュ
- Proof of Work
- コンセンサスアルゴリズム、、etc
正直、何度か詰まりましたが、
コース内で講師の方が書いたソースコードも配布されており、
動かなくなったら、diffとって
脳みそに汗を書きながらコピペしてたら、
一応にウォレットらしきものができました。パチパチ
今回学んだこと
- ブロックチェーンの動きがソース上の動きだとどうなっているか。
- ブロックチェーンを動かす為の知識(プログラミングの知識以外にも、API、セキュリティ、ネットワークなど)
- udemyは二重価格なので、セールの時に購入するべし。(定期的に60%〜90%オフセールをやる)
感想
実際のコースはこの後もまだまだ続くのですが、今回はこの辺で終わっておきましょう、ノシ
p.s
低品質のアフィリ記事みたいになってしまったけど、大丈夫かな。