【Web3.0学習日記】#1 ブロックチェーンとSolidityの基礎
前置き
僕は社会人1年目のWebエンジニアです。ブロックチェーン関係の会社に就職したため、徐々にブロックチェーンへの興味が強くなり、半年前くらいから本格的に学習を始めました。
この記事の目的は、良かった教材を皆さんにシェアすることと、学習仲間を増やすことです。DApp開発者はかなり希少で情報も少ないので、コミュニティ内でお互い情報共有し、良かった情報を公開したら役に立つのではないかなと思います。
#2も書きました↓
コミュニティの紹介
CryptoCocoAというコミュニティで主に活動しているので、まだ立ち上げたばかりですが、もし良かったらご参加ください!
コンセプトは、「恐れるな!」です。新領域はまだまだ未開拓で、皆知らないことばかりです。なんでも質問して、誰でも答えて、間違いがあれば気づいた人が教えてあげ、一緒にこの領域を楽しみましょう:)
コミュニティの活動内容
- 情報共有
- 質疑応答
- 勉強会・もくもく会
- 勉強&研究開発: コミュニティメンバーで開発し、そこで得た知見を外部に発信したり、サービス自体を外部に公開します。まだ開発チームはありませんが、何か勉強のために開発してみたいのがあれば、一緒に開発してみてはどうでしょうか。ウォレット開発とか!?
宣伝はこのくらいにして、僕が初期に勉強してよかったものをご紹介していきます。
ブロックチェーンの基礎を学習
マスタリング・ビットコイン(コンサイス版)
マスタリング・ビットコインの要点がまとめられている書籍です。元となるマスタリング・ビットコインはPDFで無料で読めます。マスタリングビットコインは分厚いので、他の学習をしていて、気になったら該当の章をきちんと読んでいます。
マスタリング・イーサリアム
この書籍は第5章のウォレットまで読み進めています。この章を読んで、ウォレットの実装に興味を持ったので、現在勉強しながらウォレットを自作中です(Github - blockchain-wallet)
DApp開発を学習
ブロックチェーンの基礎を学んだら、DApp開発の学習に入りました。使ったのは以下の教材です。
NFT開発
Solidityの基礎をNFT開発とともに学習できます。
Truffle Tutorial
Truffle + web3.js + Ganacheを使用したDApp開発のチュートリアルです。
Hardhat Tutorial
Hardhat + ethers.js + Waffleを使用したDApp開発のチュートリアルです。
NFTマーケットプレイス開発
実際はこのチュートリアルではなく、実務でオークション形式のNFTマーケットプレースを開発しましたが、基本は同じような内容です。
NFTチケット開発(有料)
イベントへの入場チケットなどに使用されるNFTチケットを開発します。
コミュニティに参加
和組
開発者からビジネスサイドまで、合計4000人程のメンバーが参加していて、活発に質疑応答などが行われています。
CryptoCocoA
自分で作ったコミュニティで、主に開発者が集まっています。勉強会の開催や情報共有などを行なっています。
DeFi・DAO・NFTのキャッチアップ
いろんな記事を読んだり、YoutubeをみたりでDeFi, DAO, NFT周りについて勉強しました。参考になった記事などは以下のリンクの「Blockchain Input」というテーブルにまとめてあるので、気になるものがあったら読んでみてください。
色々開発
DEXを開発
動機は忘れましたが、DEXを開発しました。AMMを実装しようと思っていますが、興味がいろんなところに移るため、いまだに開発は進んでいません。
NFT所有によるDiscordチャンネル制限を実装
特定のNFTを持っていたら、Discordでロールが付与されて、プライベートチャンネルに入室できるという機能です。詳細は以下の記事で書いています。
ブロックチェーンウォレットを開発
今はビットコインアドレスの生成までは実装できました。現在はHDウォレットを実装しようと奮闘中です。実装レイヤーとしては、楕円曲線暗号やハッシュ関数はライブラリを使用して、それより上のレイヤーを実装しています。
終わりに
現在の学習状況はこのような感じでした。僕の感覚としては、DApp開発の全体像がわかってきたという感じです。
次のステップとしてはこんな感じだと思います。
- Solidityをしっかり学習
- ブロックチェーンの細かい仕組みを理解する
- 勉強&研究開発を進めてどんどんアウトプットする
- TwitterでWeb3界隈の観察
また良い学習教材や面白い情報があれば日記にまとめていきます!Twitterではその都度参考になったものなど投稿しているので、もしよかったらフォロー宜しくお願いします🙏
Twitter: @show_clements
Discussion