📕

【Web3.0学習日記】#1 ブロックチェーンとSolidityの基礎

2022/02/20に公開

前置き

僕は社会人1年目のWebエンジニアです。ブロックチェーン関係の会社に就職したため、徐々にブロックチェーンへの興味が強くなり、半年前くらいから本格的に学習を始めました。

この記事の目的は、良かった教材を皆さんにシェアすることと、学習仲間を増やすことです。DApp開発者はかなり希少で情報も少ないので、コミュニティ内でお互い情報共有し、良かった情報を公開したら役に立つのではないかなと思います。

#2も書きました↓
https://zenn.dev/ropitaru/articles/53a80d65eb4c32

コミュニティの紹介

CryptoCocoAというコミュニティで主に活動しているので、まだ立ち上げたばかりですが、もし良かったらご参加ください!
https://discord.gg/NVHsJdbdCc

コンセプトは、「恐れるな!」です。新領域はまだまだ未開拓で、皆知らないことばかりです。なんでも質問して、誰でも答えて、間違いがあれば気づいた人が教えてあげ、一緒にこの領域を楽しみましょう:)

コミュニティの活動内容

  • 情報共有
  • 質疑応答
  • 勉強会・もくもく会
  • 勉強&研究開発: コミュニティメンバーで開発し、そこで得た知見を外部に発信したり、サービス自体を外部に公開します。まだ開発チームはありませんが、何か勉強のために開発してみたいのがあれば、一緒に開発してみてはどうでしょうか。ウォレット開発とか!?

宣伝はこのくらいにして、僕が初期に勉強してよかったものをご紹介していきます。

ブロックチェーンの基礎を学習

マスタリング・ビットコイン(コンサイス版)

マスタリング・ビットコインの要点がまとめられている書籍です。元となるマスタリング・ビットコインはPDFで無料で読めます。マスタリングビットコインは分厚いので、他の学習をしていて、気になったら該当の章をきちんと読んでいます。
https://www.amazon.co.jp/dp/4757103751/ref=cm_sw_r_tw_dp_032WP3G7N6ZHS67S86Y1?_encoding=UTF8&psc=1

マスタリング・イーサリアム

この書籍は第5章のウォレットまで読み進めています。この章を読んで、ウォレットの実装に興味を持ったので、現在勉強しながらウォレットを自作中です(Github - blockchain-wallet
https://www.amazon.co.jp/dp/4873118964/ref=cm_sw_r_tw_dp_E9ZRB3Z43YZ6WF00GCVH

DApp開発を学習

ブロックチェーンの基礎を学んだら、DApp開発の学習に入りました。使ったのは以下の教材です。

NFT開発

Solidityの基礎をNFT開発とともに学習できます。
https://cryptozombies.io/jp/course/

Truffle Tutorial

Truffle + web3.js + Ganacheを使用したDApp開発のチュートリアルです。
http://trufflesuite.com/tutorial/

Hardhat Tutorial

Hardhat + ethers.js + Waffleを使用したDApp開発のチュートリアルです。
https://rahulsethuram.medium.com/the-new-solidity-dev-stack-buidler-ethers-waffle-typescript-tutorial-f07917de48ae

NFTマーケットプレイス開発

実際はこのチュートリアルではなく、実務でオークション形式のNFTマーケットプレースを開発しましたが、基本は同じような内容です。
https://dev.to/dabit3/the-complete-guide-to-full-stack-ethereum-development-3j13?signin=true

NFTチケット開発(有料)

イベントへの入場チケットなどに使用されるNFTチケットを開発します。
https://egghead.io/courses/build-an-nft-based-ticketing-system-1a2f387c

コミュニティに参加

和組

開発者からビジネスサイドまで、合計4000人程のメンバーが参加していて、活発に質疑応答などが行われています。
https://twitter.com/wagumiDAO?s=20

CryptoCocoA

自分で作ったコミュニティで、主に開発者が集まっています。勉強会の開催や情報共有などを行なっています。
https://discord.gg/NVHsJdbdCc

DeFi・DAO・NFTのキャッチアップ

いろんな記事を読んだり、YoutubeをみたりでDeFi, DAO, NFT周りについて勉強しました。参考になった記事などは以下のリンクの「Blockchain Input」というテーブルにまとめてあるので、気になるものがあったら読んでみてください。
https://encouraging-cut-b5c.notion.site/Input-4552c9e4a77842e5875a8b24a4186f98

色々開発

DEXを開発

動機は忘れましたが、DEXを開発しました。AMMを実装しようと思っていますが、興味がいろんなところに移るため、いまだに開発は進んでいません。
https://github.com/show-coco/ropi-swap

NFT所有によるDiscordチャンネル制限を実装

特定のNFTを持っていたら、Discordでロールが付与されて、プライベートチャンネルに入室できるという機能です。詳細は以下の記事で書いています。
https://zenn.dev/ropitaru/articles/997b04d486830c

ブロックチェーンウォレットを開発

今はビットコインアドレスの生成までは実装できました。現在はHDウォレットを実装しようと奮闘中です。実装レイヤーとしては、楕円曲線暗号やハッシュ関数はライブラリを使用して、それより上のレイヤーを実装しています。
https://github.com/show-coco/blockchain-wallet

終わりに

現在の学習状況はこのような感じでした。僕の感覚としては、DApp開発の全体像がわかってきたという感じです。

次のステップとしてはこんな感じだと思います。

  • Solidityをしっかり学習
  • ブロックチェーンの細かい仕組みを理解する
  • 勉強&研究開発を進めてどんどんアウトプットする
  • TwitterでWeb3界隈の観察

また良い学習教材や面白い情報があれば日記にまとめていきます!Twitterではその都度参考になったものなど投稿しているので、もしよかったらフォロー宜しくお願いします🙏
Twitter: @show_clements

Discussion