Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
NFT つくってみた
Search
Smith
March 13, 2022
Technology
0
240
NFT つくってみた
2022/03/12 に実施された Drecom SRE Sunday Vol.2 での LT 登壇資料です。
Smith
March 13, 2022
Tweet
Share
More Decks by Smith
See All by Smith
Zig なんもわからん 〜あるいは学びのモチベーション〜
dolow
0
350
Go に Generics がやってきた
dolow
0
570
プロのエンジニアが1人日を捻出してレトロJRPGっぽいゲームを本気で作った
dolow
0
840
技術中間組織はじめました
dolow
0
94
About triangle
dolow
0
55
Cipher.Mobile
dolow
0
88
Develop::Client::Game
dolow
1
29
Other Decks in Technology
See All in Technology
社内報はAIにやらせよう / Let AI handle the company newsletter
saka2jp
8
1.4k
これがLambdaレス時代のChatOpsだ!実例で学ぶAmazon Q Developerカスタムアクション活用法
iwamot
PRO
6
1k
『OCI で学ぶクラウドネイティブ 実践 × 理論ガイド』 書籍概要
oracle4engineer
PRO
3
210
リーダーになったら未来を語れるようになろう/Speak the Future
sanogemaru
0
390
Escaping_the_Kraken_-_October_2025.pdf
mdalmijn
0
170
AI駆動開発を推進するためにサービス開発チームで 取り組んでいること
noayaoshiro
0
260
やる気のない自分との向き合い方/How to Deal with Your Unmotivated Self
sanogemaru
0
490
Shirankedo NOCで見えてきたeduroam/OpenRoaming運用ノウハウと課題 - BAKUCHIKU BANBAN #2
marokiki
0
190
衛星画像超解像化によって実現する2D, 3D空間情報の即時生成と“AI as a Service”/ Real-time generation spatial data enabled_by satellite image super-resolution
lehupa
0
160
20201008_ファインディ_品質意識を育てる役目は人かAIか___2_.pdf
findy_eventslides
2
610
[Codex Meetup Japan #1] Codex-Powered Mobile Apps Development
korodroid
2
470
Exadata Database Service on Dedicated Infrastructure(ExaDB-D) UI スクリーン・キャプチャ集
oracle4engineer
PRO
3
5.5k
Featured
See All Featured
Product Roadmaps are Hard
iamctodd
PRO
54
11k
Writing Fast Ruby
sferik
629
62k
Being A Developer After 40
akosma
91
590k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
285
14k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
9
870
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
1.6k
Six Lessons from altMBA
skipperchong
28
4k
[RailsConf 2023] Rails as a piece of cake
palkan
57
5.9k
Why Our Code Smells
bkeepers
PRO
339
57k
Unsuck your backbone
ammeep
671
58k
Side Projects
sachag
455
43k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
15
1.7k
Transcript
NFT つくってみた Smith
自己紹介 図々しくも本日二回目の登壇なので割愛します。
この LT で伝えたいこと • NFT つくるの簡単だよ!ってこと
NFT とは (ざっくり) • Non Fungible Token の略、「代替不可なトークン」という意味 • 世の中では
NFT アートとかが流行っている • 高額取引されたりしてて、胡散臭いような夢があるような • NFT アートは所有権を証明できる!って言ってる • (けど、アートの複製はできるんだなぁ)
NFT 開発するのに必要な技術 この本を半分読めば出来ます →
開発のしかた
必要なもの • geth (ローカルネットワーク) • truffle (スマートコントラクト開発環境一式) やること 1. スマートコントラクトを書く
2. テストを書く 3. フロントから操作する UI を作る (本質的じゃない割に地味にめんどい) 4. 実際のブロックチェーンウォレットを使ってテスト 5. デプロイ 開発のしかた
開発のしかた: スマートコントラクトを書く スマートコントラクトとは • ブロックチェーン上で動作するプログラムのこと • スマートコントラクトを介して誰が何をやったかは全て記録される • 中身は簡単なクラス定義みたいなものなのでビビらなくて OK
スマートコントラクトの作り方 • スマートコントラクトには ERC と呼ばれる規格がある • NFT 用の規格もあり、 ERC 721 とか ERC 1155 が NFT を取り扱う • オープンソースで ERC 721 や ERC 1155 の基本実装が提供されている • 簡単なものなら基本実装をラップするだけで OK
必要なもの • (truffle に組み込まれています) テストの書き方 • JavaScript のエコシステムが使える •
デフォルトで mocha • つまり、テスト用に新たな言語やライブラリを覚え なくもよい • スマートコントラクト独特の要素さえ押さえれば OK! • テスト実行も truffle test と叩くだけ、楽 ちん! 開発のしかた: テストを書く
必要なもの • web3.js やること 1. 動作確認したい機能の UI を作る 2. 動作確認テスト
mocha での記法とはまた若干違ってたりする ので、もっとも煩わしいパート。 開発のしかた: フロントから操作する UI を作る
必要なもの • Metamask • ウォレットアカウント やること 1. 作った Web UI
をポチポチする 2. ガス代もちょっと確認する 開発のしかた: 実際のウォレットを使ってテスト
必要なもの • Infura アカウント • ウォレットアカウント • ガス代 やること 1.
Infura という DApps デプロイ用サービ スを利用 (無料) 2. Infura を介してテストネットやメインネッ トにデプロイ 3. これも truffle 設定でできる 開発のしかた: デプロイ
気をつけたこと
気をつけたこと 特定のアカウントしか NFT の発行・削除ができないように • NFT 発行 API もスマートコントラクトから操作する •
これをスマートコントラクトをデプロイしたアカウントのみに制限 NFT の持ち主にしか所有権の移動ができないように • 発行した NFT ID 毎に所有者をマップし、所有権を確認するようにした 税制リスク • リスクが図りきれないので、Smith 個人で勝手に作って勝手に配る体裁
気をつけたこと OSS 化 • ソースコードはスマートコントラクトのデプロイ後に開示する • (開示されたものは複製してデプロイしても良いです) • 第三者が勝手に一番最初にデプロイしたら、なんかやだから デプロイ一発勝負
• コード回収してデプロイしなおすと、スマートコントラクトのアドレスが変わります • つまりウォレットで参照するアドレスが変わっちゃう!
困ってること
ビューアがない! • 記念アイコンの URL を知るすべを用意しきれていない・・・! • 画像すら見れない NFT ・・・! •
abi は公開するので自分で URL 引いて! ガス代高ぇ・・・! • ガス代高ぇ・・・! 困ってること
ガス代高ぇ・・・!
• 24.5 Gwei / gas (実測値) ◦ = 0.0000000245 ETH
/ gas • スマートコントラクトのデプロイに必要なガス ◦ 3160899 ガス ◦ = 0.0774420255 ETH • 30万円 / ETH くらい (2022/03/12時点) • つまり、デプロイだけで 2.3万円・・・! この勉強会、予算ないんです・・・! ガス代高ぇ・・・!
「NFTは出す・・・! 出すが・・・・」
「今回はまだネットワークの 指定まではしていない そのことを どうか諸君らも思い出していただきたい」
「つまり・・・ 我々がその気になれば NFT の受け渡しは」
「テストネットでということも 可能だろう・・・ ということ・・・!」
この LT で伝えたいこと • NFT つくるの簡単だよ!ってこと
• NFT つくるの簡単だよ!ってこと • ガス代高ぇ! • ガス代高ぇ! • ガス代高ぇ! •
ガス代高ぇ! • ガス代高ぇ! • ガス代高ぇ! この LT で伝えたいこと
(ガス代を抑えるソリューションもありますが イベントに間に合いませんでした、すいません!!!) この LT で伝えたいこと
ということで、 Görli テストネットで NFT 配ります!(涙)
テストネットでもいいよって方は connpass 記載のアンケートに アドレスを記入する項目があるので 回答おねがいします!
まとめ • スマートコントラクトの開発やデプロイの開発環境は潤沢に整ってる • とはいえ、独特の気をつけなきゃいけないポイントがある ◦ 基本、非同期処理 ◦ セキュリティ周り •
ガス代高ぇ・・・! • ガス代高ぇ・・・! • ガス代高ぇ・・・!