1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Udemyおすすめ講座をシェアしよう! by UdemyAdvent Calendar 2023

Day 3

Pythonデベロッパーが初めてDApp開発を勉強するときにおすすめしたいUdemy講座

Last updated at Posted at 2023-12-02

おすすめしたい講座

私が制作した講座ですが、紹介させてください m(__)m

おすすめしたい理由

Pythonライクなツールを活用した、数少ない日本語のDApp開発の学習コンテンツとして有用。

執筆時点では、DApp学習コンテンツの多くがJavaScript系ツール(HardhatやReactなど)を多用。JavaScriptが得意ではない方にとって、ハードルが高い。

DApp開発にPythonライクなツール(VyperやBrownieなど)も利用できがる、執筆時点では日本語での解説ドキュメントが少ない。

そもそもDAppとは

DAppとは、ブロックチェーン上で実行されるアプリケーションのこと。
「Decentralized Applications」の略。
色々な書き方や読み方があり、例えば以下は、すべて同じDappを指す。

  • Dapps(ダップス)
  • DApps(ダップス)
  • dapps(ダップス)
  • Dapp(ダップ)
  • DApp(ダップ)
  • dapp(ダップ)

なお、ethereum.orgでは、複数形の意味のニュアンスで"dapps"、単数形のニュアンスで"dapp"、文頭の大文字表記で"Dapps"、強調するニュアンスで"DAPPS"と表記されている。※2023/12執筆時点

有名なDAppって、例えば何がある?

Uniswap:暗号資産をスワップ(交換)できる取引所

image.png
参考:https://app.uniswap.org/swap

Gods Unchained:戦略的カードゲーム。プレイでカードを獲得し、実生活で売れる

image.png
参考:https://godsunchained.com/

OpenSea:NFTを売買するプラットフォーム

image.png
参考:https://opensea.io/

基本的なDAppのシステム構成

image.png

特徴①:スマートコントラクトをブロックチェーンにデプロイ

DAppの文脈において、スマートコントラクトとは、DAppが持つ機能をコード化したもの。このスマートコントラクトを、ブロックチェーンネットワーク上にデプロイしている。

特徴②:フロントエンドをWebサーバにデプロイ

HTML, CSS, Javascript, Swift, Kotlin等のフロントエンドのソースコードを、Webサーバにデプロイしている。DAppの利用ユーザーがフロントエンドにアクセスし、フロントエンドからブロックチェーン上のスマートコントラクトにアクセス。

これは、通常のWebアプリにおけるAPIサーバとフロントエンドの関係性に似ている。

DApp開発の学習コンテンツではJS系ツールがよく使われ、Pythonデベロッパーにはハードルが高い

DApp開発の学習コンテンツでは、上述のシステム構成を、次のツールで解説するケースが多い。

ツール名 概要
Solidity スマートコントラクトを記述する言語。構文は、JavaScriptやC++に似ている。
Hardhat スマートコントラクト開発のためのフレームワーク(JavaScriptベース)
ethers.js ブロックチェーンとやり取りするためのJavaScriptライブラリ
web3.js 同上
React フロントエンド開発でよく利用されるJavaScriptライブラリ

JavaScript系ツールを多用している。
JavaScriptがあまり得意でない方にとって、学習ハードルは高い。

DApp開発で活用できるPythonライクなツールもある

実は、DApp開発で活用できるPythonライクなツールもある。

ツール名 概要
Vyper スマートコントラクトを記述する言語。構文は、Pythonに似ている。
Brownie スマートコントラクト開発のためのフレームワーク(Pythonベース)
web3.py ブロックチェーンとやり取りするためのPythonライブラリ

PythonライクなDApp開発ツールを勉強するには英語力も必要

DApp開発で活用できるPythonライクなツールもありますが、公式サイトは英語表記です(2023/12執筆時点)。簡単に学習が可能であるとはいえません。日本語で解説しているサイトも、2023/12執筆時点であまり多くありません。

Vyper
image.png
参考:https://docs.vyperlang.org/

Brownie
image.png
参考:https://eth-brownie.readthedocs.io/

web3.py
image.png
参考:https://web3py.readthedocs.io/

学習ハードルを下げるためにUdemyコースを制作

image.png

コースの特徴

VyperとBrownieの導入により、Pythonの基礎知識を活かして、DApp開発をスムーズにスタート

ツールのインストール、スマートコントラクトの作成、ブロックチェーンへのデプロイ、フロントエンドとの連携までの一連の流れを習得

実際に機能するDAppが1つ完成。Ethereumブロックチェーンのテストネットワーク”Sepolia” へデプロイ、VercelでDApp公開。

注意点

DApp開発で活用できるPythonライクなツールもあるが、DAppに実装したい機能によっては、JavaScriptも必要となる。おすすめしているコースでも、フロントエンド開発でJavaScriptを利用している。以下、JavaScriptが必要になるケース例。

  • MetaMaskログイン機能を実装する場合
    MetaMaskは、フロントエンドで機能するアプリです。MetaMaskの機能をDAppに組み込むには、JavaScriptが必要です。

  • JSでフロントエンド開発に動きをつけたい場合
    当然ですが、Webアプリのフロントエンド開発に動きをつけたい場合も、JavaScriptを使うのが合理的です。

  • ユーザーがトランザクションを実行する場合
    ユーザーがトランザクションを実行するには、ユーザーアドレスに対応する秘密鍵が必要です。秘密鍵は、漏洩を防ぐためフロントエンド内部で、トランザクション実行処理を行う必要があります。Webアプリの場合、このフロントエンド内部処理の記述に、JavaScriptが必要です。

こんなDAppを作ります(Youtube動画)

さいごに

初めてDApp開発を勉強する時、JavaScriptや英語が苦手な私は苦労しました。Python派の技術者にとって、すこしでもスムーズに勉強できればと思い、講座を作りました。Vyperでスマートコントラクトを記述するところまで無料公開しています。もしご興味あれば、ぜひご視聴ください😊

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?