Open6

nftチュートリアル

NFT TUTORIAL SERIES

Ethereumの公式NFTチュートリアル。全3部シリーズ。

HOW TO WRITE & DEPLOY AN NFT (PART 1/3)

https://ethereum.org/en/developers/tutorials/how-to-write-and-deploy-an-nft/

流れ

まずAlchemyとMetamaskに登録する。Hardhatのプロジェクトを作成し、NFTを定義するスマートコントラクトをSolidifyで実装し(MyNFT.sol)、ropstenにデプロイするところまで行う。

コメント

ネットワークはRopstenを使っているが、Alchemy上でDeprecatedとなっていたので代わりにGoerliを使った。Solidifyのコードを一行ずつ説明していて親切だが、OpenZeppelinライブラリをいきなり使うので、先にOpenZeppelinのチュートリアルをやっておいた方が分かりやすいかも。

HOW TO MINT AN NFT (PART 2/3)

https://ethereum.org/en/developers/tutorials/how-to-mint-an-nft/

流れ

Pinataを使ってIPFS上に画像とメタデータをアップロードする。NFTをミントするためのmintNFTメソッドをJavaScriptで実装し、アップロードした画像を対象とするNFTを発行する。

コメント

mintNFTメソッドが割と長い。web3.jsというライブラリのAPIを知らないこともあり、ちゃんと理解するにはまだ知識が足りない。

HOW TO VIEW YOUR NFT IN YOUR WALLET (PART 3/3)

https://ethereum.org/en/developers/tutorials/how-to-view-nft-in-metamask/

流れ

Metamask上でNFTを見れるように設定する。

コメント

デスクトップのChrome拡張では見れないので注意(そもそもcollectablesタブが無い)。Androidにアプリをインストールした。

LINE Blockchainサービスチュートリアル

https://docs-blockchain.line.biz/ja/service-tutorial/

流れ

映画チケットの予約サービスをサンプルサービスとして、Line Blockchainにおけるサービストークンやアイテムトークン(fungiable/non-fungiable)の発行・鋳造・転送を学ぶ。

コメント

日本語かつGUIでの操作も多いので、チュートリアルの内容を把握すること自体は簡単。ただ、トークンの鋳造はAPIでしか出来ず、チュートリアルには謎のcurlコマンドが書いてあるだけなので、面食らった。APIガイドを見ると、署名の生成やAPIコールをPythonで行うサンプルコードがあるので、それを元に実行した。

https://docs-blockchain.line.biz/ja/api-guide/

ブロックチェーン上の操作が全てHTTPのエンドポイントとして提供されているので、普通のAPIコールをしているような気持ちになる。ブロックチェーンについて理解が深まったかというと微妙。

Hardhat's tutorial for beginners

https://hardhat.org/tutorial

流れ

Ethereumの代表的な開発環境であるHardhatの使い方を学ぶ。トークンの機能を実装するスマートコントラクトを実装し(Token.sol)、chaiというライブラリを使ってテストを書く。Alchemyを使ってGoerliにデプロイしてみる。

コメント

Tokenのスマートコントラクトが正しく実装できているか、テストを書いて具体的に検証するところが勉強になった。ただ、デプロイするところまでで終わっているので、デプロイしたスマートコントラクトが具体的にどう使われるかのイメージは湧きにくい。

OpenZeppelin Learn

https://docs.openzeppelin.com/learn/

流れ

HardhatもしくはTruffle環境を使って、スマートコントラクトを実装していく。値を保存するだけの単純なコントラクトではあるが(Box.sol)、1ファイルから複数ファイル、そしてOpenZeppelinのコントラクトの継承、と段階的に進めていく。実装したコントラクトをローカルネットワークにデプロイし、コンソールやスクリプトを使って操作してみる。また、chaiやOpenZeppelin Test Helpersを使った単体テストを書いて検証する。テストネット(rinkeby)へのデプロイはAlchemyとmnemonicを使う。さらに、OpenZeppelin Upgrades Pluginsを使って、既にデプロイしたコントラクトからマイグレートする方法を学ぶ。

コメント

全体的に丁寧。例えば、代表的な開発フレームワークであるHardhatとTruffleの両方のコードを切り替えられるようになっていたり、npx hardhat compileの意味などもちゃんと説明してくれて初心者に優しい。それでいて、デプロイ済みコントラクトのマイグレーションなど発展的な内容も説明してくれるので、勉強になった。

テストネットへのデプロイはmnemonicsでその場で生成した単語を使っているが、他のチュートリアルで既にMetaMaskのアカウントを作っている場合はそっちの方が便利かも。

なお、OpenZeppelin Test Helpersの単体テストはartifacts.require is not a functionというエラーが出て動かなかった。ググると同じ症状が出てくるが、現段階では深入りはせず。

https://forum.openzeppelin.com/t/unit-testing-tutorial-artifacts-require-is-not-a-function-error/13226

A Developer's Guide to Ethereum

Pythonを使ってEthereumに触ってみるチュートリアル。今のところ2部作。

https://snakecharmers.ethereum.org/a-developers-guide-to-ethereum-pt-1/
https://snakecharmers.ethereum.org/a-developers-guide-to-ethereum-pt-2/

流れ

Web3.pyというPythonライブラリを使ってEthereumに触ってみる。Geth(Go Ethereum)でローカルに実際のノードを立ち上げるのは大変なので、Web3.pyに付随するシミュレーションノードに接続し、アカウント・ブロック・トランザクションといった基本オブジェクトを見ていく。アカウントを作成し、etherを送付してみる。

コメント

Ethereumの公式ドキュメントからリンクされていたこともあり、たどり着いたが、いきなり読んでもあまりピンとこないかも。ただ、今改めて読み直してみると、スマートコントラクトをデプロイする際に、具体的にどういうトランザクションを発行されているか、などにも触れていて勉強になった。最初に読むべきかと言われると微妙。

CryptoZombies

https://cryptozombies.io/en/course

流れ

オンラインエディタを使ってインタラクティブにSolidityの文法やweb3.jsの使い方を学ぶ。

コメント

ゲーム形式だが説明は丁寧なので、Solidifyの雰囲気で読み流していた部分が分かって良かった。ただ、そもそもSolidityをいつ使うのか知らないと、なぜ学ぶべきか分からないので、他のチュートリアルをやって全体像を把握してからの方が良いと思う。第2章までやるのに1時間以上かかったので、全部やるのは大変そう。自分は1-2章のSolidifyと6章のweb3.jsをやった。終わった後に日本語版もあることに気付いた。

ログインするとコメントできます