Upgrade to Pro — share decks privately, control downloads, hide ads and more …

LINE Blockchain Developers APIではじめるWeb3

LINE Blockchain Developers APIではじめるWeb3

2023年3月16日に開催された「SoftBank Tech Night Fes 2023」の講演資料です。

LINE Blockchain Developers APIは様々なブロックチェーン機能を自分たちのサービスに適用することができるAPIです。比較的簡単に、しかも無料(重要!)ではじめることができます。今回はLINE Blockchain APIのはじめかた、管理Wallet及びトークンの作成方法についてお話します。また、LINE Blockchainのアーキテクチャの概要や特長にも触れたいと思います。

■関連スライド
・LINE eKYCって何だ?~その実力と開発チップスについて~
https://speakerdeck.com/sbtechnight/line-ekyctutehe-da-sonoshi-li-tokai-fa-titupusunituite

・LINE APIの種類&PCを使った5分でできるハンズオン
https://speakerdeck.com/sbtechnight/line-apinozhong-lei-and-pcwoshi-tuta5fen-dedekiruhanzuon

・LINEアプリ開発を さらに加速させる フレームワークとCI/CD技術
https://speakerdeck.com/sbtechnight/cdji-shu

■作成者
澤野 千賀(さわの ちか)
ソフトバンク株式会社
法人事業統括 クラウドエンジニアリング本部
アプリケーションエンジニア・AIエンジニア

■SoftBank Tech Nightについて
ソフトバンク株式会社のエンジニア有志が開催するテックイベントです。
各分野のエキスパートが、日頃培った技術や事例、知見について発信しています。
イベントは開催スケジュールはconnpassをご確認ください。
https://sbtechnight.connpass.com/

SoftBank Tech Night Fes 2023公式サイト
https://www.softbank.jp/biz/events/tech-night-fes-2023/

SoftBank Tech Night

March 16, 2023
Tweet

More Decks by SoftBank Tech Night

Other Decks in Technology

Transcript

  1. LINE Blockchain
    Developers APIではじめる
    Web3
    SoftBank Tech Night Fes 2023
    3月16日
    Sawano Chika
    1

    View full-size slide

  2. まず最初に
    • 以下のQRコードからお手元で資料を確認できます。
    2

    View full-size slide

  3. 今日のお話
    *** 前半 ***
    LINE Blockchain Developers APIについて
    *** 中休み 小話 ***
    *** 後半 ***
    LINE Blockchain Developers APIを使ってみよう!
    3

    View full-size slide

  4. Who Am I?
    ➢ソフトバンク 法人事業統括で働くエンジニアです
    ➢2021年7月ソフトバンクに入社(SBクラウド出向)
    ➢SBクラウドでは、AI関連のプロダクト開発をひたすら。。
    ➢ソフトバンクと合流後はLINEアプリの開発に従事
    ➢現在は、LINEに関する技術問い合わせ窓口業務
    ➢及びAndroid・iOSアプリの開発に従事
    ➢クラウドは以前はAlibaba Cloudを使う事が多かったですが
    ➢現在は、 Google Cloud(GCP・GWS)を勉強中
    4
    現在は、業務の範囲が
    多く、最近、遠方に出か
    けるちょっと変わった業務
    に従事しましたw

    View full-size slide

  5. LINE Blockchain Developers APIとは
    LINE Blockchainを利用できるAPIです。
    LINEアカウントを利用することも可能。
    さくっと
    理解する
    5
    アーキテクチャ構成
    API経由でLINE Blockchain
    が利用可能
    APIのドキュメント

    View full-size slide

  6. LINE Blockchain Developers APIで出来ること
    ✓トークンの発行、鋳造、焼却、更新、情報取得が出来ます※次スライド参照
    ✓トークンは次のような様々な種類のトークンに対応
    ✓サービストークン(fungible)
    ✓アイテムトークン(fungible/non-fungible)
    ✓Composableトークン(non-fungible)
    6
    暗号資産のLINKでも使
    われています

    View full-size slide

  7. LINE Blockchain Developers APIで出来ること
    ✓コレクションの作成、トークンの発行、鋳造、焼却について
    fungible/non-fungibleトークンの発行、鋳造、焼却が出来ます。
    資料のリンク
    ✓トークンの更新について
    様々な種類のトークン情報や属性を変更できます。
    資料のリンク
    ✓トークンの情報取得について
    様々な種類のトークン情報を取得できます。
    資料のリンク
    ※Appendixにも資料を添付しましたのでご参照下さい
    7

    View full-size slide

  8. LINE Blockchain Developers APIの特徴
    比較的簡単に、しかも無
    料(重要!)ではじめること
    ができますよ!
    • 複雑なBlockchainの研究・開発や、 Solidity等の特殊な言語での開
    発が不要!専門知識不要!
    • 無料ではじめられます!(重要!)※本番環境へのデプロイには別途費用が必要です。
    • LINEアカウントから利用できる
    • 様々な種類のトークンに対応(前頁参照)
    • プライベートキーの使用でよりセキュアに利用可能
    8

    View full-size slide

  9. 中休み このテーマを選んだキッカケ
    そもそも、 Blockchain に興味をもったキッカケについて。
    ✓Blockchain技術に興味を持ったのは遅め(数年前)
    ✓エンジニアの同僚とマイニングについて話題に
    ✓自分でもマイニングしようとして情報収集(時期遅し)
    ✓面白そうだったのでBlockchainプログラミング(Solidityとか)を学習
    ✓でも、どこか身近に感じることは無く数年が過ぎたころ、
    ✓あるセミナーにて軽くショックを受ける事に。。。
    9

    View full-size slide

  10. フロントエンド
    (HTML,CSS,JS)
    バックエンド
    (Python,Java等)
    SQL,NoSQL
    データベース
    中間のWebサーバと
    DBが無くなる
    現 在
    フロントエンド
    (HTML,CSS,JS)
    分散型のスマートコントラクトVM
    ブロックチェーン
    よくあるWebの構成。
    Webの3層アーキテク
    チャとも呼ばれます。
    これから
    Web3アプリケー
    ションのアーキテク
    チャは、これまで
    とは全く違ったも
    のに!
    私が衝撃を受けたWeb3のアーキテクチャ構成
    10
    図の出典:コチラの図が出典です。リンクのサイトではより詳しく書かれているので興味のあるかたはご参照下さい!

    View full-size slide

  11. Blockchain技術の将来性・実用性を確信(遅い!)
    この図を見て、初めて(!)、Blockchain技術が我々Web技術者に
    とって今後必須の技術であることに気が付いた。
    近い将来、既存のWeb技術の構成からBlockchain技術の構成に
    変わる。(セキュリティ等様々な要因で変わらざるを得ないとされる。)
    11

    View full-size slide

  12. LINE Blockchain Developers API
    を使ってみよう!
    ✓Cashew Partnerアカウントの作成!
    ✓管理Wallet及びNFTトークンの作成
    ✓鋳造(Mint):LINE Blockchain Developers APIから実行
    12
    ハンズオンしたら面
    白そうですが、今
    回はスライドにて説
    明します。
    ハンズオンは次の
    機会に!

    View full-size slide

  13. Cashew Partnerアカウントの作成!
    • LINE Blockchain Developersサイトで「Cashew Partnerアカウ
    ント」の申請を行います
    LINE Blockchain
    Developersサイトの
    「ダッシュボード」をクリック
    します 審査完了に2,3日かかりま
    すので、申請は余裕をもっ
    て!
    まずは
    13
    必要事項を入力して
    「申請」をクリック

    View full-size slide

  14. LINE Blockchain Developers API
    を使ってみよう!
    ✓Cashew Partnerアカウントの作成!
    ✓管理Wallet及びNFTトークンの作成
    ✓鋳造(Mint):LINE Blockchain Developers APIから実行
    14

    View full-size slide

  15. 管理Wallet及びトークンの作成方法
    • 申請後に「LINE Blockchain DevelopersのCashew Partnerアカウントの登録
    申請が承認されました。」というメールを受信したら、LINE Blockchain
    Developersサイトの「ダッシュボード」をクリックします。
    「サービスを作成」をク
    リックします。
    ※もし、まだアカウントが発行されていない場合は、「Cashew Partnerアカウント申請の審査中です」と表示さ
    れますので審査完了まで待ちましょう。 15

    View full-size slide

  16. 管理Wallet及びトークンの作成方法
    LINEのmessaging APIやLINEアプリを開発している方はおなじみのLINE
    Developersサイトが開きます。
    プロバイダーを選択(ない
    場合は作成)して、
    「新規チャンネル作成」をクリックして、チャンネル
    の種類で「ブロックチェーンサービス」を選択
    16

    View full-size slide

  17. 管理Wallet及びトークンの作成方法
    • 必要事項を入力してチャンネルを作成します。 今回は必須入力の箇所の
    み入力します。
    国・地域は「日本」を選択、チャンネル名を20
    文字以内、チャンネル説明を500文字以内で
    入力します。 17

    View full-size slide

  18. 管理Wallet及びトークンの作成方法
    • 必要事項を入力してチャンネルを作成します。
    「大業種」及び「小業種」を入
    力。「アプリタイプ」はウェブアプ
    リまたはネイティブアプリ、または
    両方にチェックをします。
    ➡今回はウェブアプリのみに
    チェック
    18

    View full-size slide

  19. 管理Wallet及びトークンの作成方法
    • 必要事項を入力してチャンネルを作成します。
    必要事項を入力、規約同意
    にチェックをして、最後に
    「チャンネルを作成してLINE
    Blockchain Developers
    に移動」をクリックします。
    19

    View full-size slide

  20. 管理Wallet及びトークンの作成方法
    • 「情報利用に関する同意について」がポップアップするので同意します。
    「同意する」をクリック
    します。
    20

    View full-size slide

  21. 管理Wallet及びトークンの作成方法
    • Blockchainサービスを作成します
    「サービスを作成」の画面に遷移します。
    チェーンはデフォルトの「Cashew
    (Testnet)」のまま、国・地域はデ
    フォルトの「日本」のままにします。
    Cashew(Testnet)は、日本国内
    でのみ利用できます。
    21

    View full-size slide

  22. 管理Wallet及びトークンの作成方法
    • Blockchainサービスを作成します
    「サービスカテゴリー」を選択し、
    「作成したサービスを賭博関連の
    サービスに使用しないことに同意し
    ます。」にチェックをして、「作成」を
    クリックします。
    22

    View full-size slide

  23. 管理Wallet及びトークンの作成方法
    • 作成されたBlockchainサービス情報を保存する。
    API KeyとAPI Secretが生
    成されます。生成されたAPI
    KeyとAPI Secretをコピーして
    保存します。
    特にAPI Secretについては
    再表示されないため、確実に
    保存しておいてください。
    保存したら、「確認」をク
    リックします。
    23

    View full-size slide

  24. 管理Wallet及びトークンの作成方法
    • 作成したBlockchainサービス情報の確認
    「Secretを確認」の画面が
    ポップアップします。Secretを
    入力して「OK」をクリック
    作成しました。のページが
    表示されたら成功です。
    「サービスを確認する」をク
    リックします。
    24

    View full-size slide

  25. 管理Wallet及びトークンの作成方法
    サービスの管理に使うOwner Walletを作成します
    「ダッシュボード」に遷移しま
    す。作成したサービスが表
    示されていますので、右側
    の「Wallet」をクリックします。
    サービスの管理に使うOwner
    Walletの名前を入力し
    「作成」をクリック
    25

    View full-size slide

  26. 管理Wallet及びトークンの作成方法
    サービスの管理に使うOwner Walletを作成します
    生成されたWallet Secretをコピー
    して保存します。再表示されないた
    め、確実に保存しておいてください。
    「確認」をクリックします。
    「Secretを確認」の画面が
    ポップアップします。Secretを
    入力して「OK」をクリック
    26

    View full-size slide

  27. 管理Wallet及びトークンの作成方法
    以下のように表示されたらWallet作成に成功です🎉
    「詳細」をクリックする
    とWalletの詳細を確
    認できます。
    詳細では、Wallet情報、残
    高、トランザクション履歴、出
    庫情報を確認することが出
    来ます。
    27

    View full-size slide

  28. 管理Wallet及びトークンの作成方法
    Non-fungible Item Token(略称NFT:非代
    替性トークン)を作成します。
    ➡NFTとは、「ブロックチェーン上に記録される代替不
    可能かつユニークなデータ単位」のことです。詳細な説明
    は今回割愛します。興味のある方はこちらのWikiをご参
    照下さい。
    「資産」をクリックします。
    下までスクロールして、「コ
    レクション」の「作成」をク
    リックします。
    28

    View full-size slide

  29. 管理Wallet及びトークンの作成方法
    Item Token用のコレクションを作成します。
    「コレクション名」を入力し、
    「Owner Wallet」をドロッ
    プダウンリストから選択します。
    最後に「作成」をクリック
    Owner Walletの
    Wallet Secretを入力
    して「OK」をクリック
    29

    View full-size slide

  30. 管理Wallet及びトークンの作成方法
    以下の画面に遷移すれば成功です🎉
    「確認」をクリック
    します。
    30

    View full-size slide

  31. 管理Wallet及びトークンの作成方法
    Item Tokenを作成します。
    Item Tokenの「新
    規作成」をクリックしま
    す。
    ※ LINE Blockchainでは、
    サービストークン、アイテムトークン、
    Composableトークンを作成す
    ることが出来ます。今回はnon-
    fungible(NFT)のアイテムトーク
    ンを作成していきます。
    アイテムトークンのドキュメント
    31

    View full-size slide

  32. 管理Wallet及びトークンの作成方法
    Item Token作成のページでは、FungibleトークンとNon-fungibleトークンを両方作成す
    ることが出来ます。今回は、Non-fungibleを選択します。
    「Token名」を入力
    して、「作成」をクリッ
    クします。
    Owner Walletの
    Wallet Secretを入力
    して「OK」をクリック
    32

    View full-size slide

  33. 管理Wallet及びトークンの作成方法
    以下のページが表示されたら成功です🎉
    「確認」をクリック
    します。
    NFTと表示されてい
    ることを確認
    33

    View full-size slide

  34. 管理Wallet及びトークンの作成方法
    作成されたトークンが表示されていることを確認。
    お疲れ様でした!あとは、利用するだけです!!
    NFTと表示されている
    ことを確認
    34

    View full-size slide

  35. LINE Blockchain Developers API
    を使ってみよう!
    ✓Cashew Partnerアカウントの作成!
    ✓管理Wallet及びNFTトークンの作成
    ✓鋳造(Mint):LINE Blockchain Developers APIから実行
    35

    View full-size slide

  36. 鋳造(Mint)とは?
    ✓Non-fungible Item Tokenの実体を生成
    ➡オブジェクト指向プログラミングに例えると「インスタンスの生成」
    36
    ここでは、鋳造することで
    「量が増える」という理
    解でOK

    View full-size slide

  37. トークンを鋳造(Mint)する
    LINE Blockchain Developersサイトで発行した次のものを使用します!
    • サービスのAPI KEY
    • サービスのAPI SECRET
    • 契約ID(CONTRACT ID)
    • OWNER WALLET ADDRESS
    • OWNER WALLET SECRET
    これらを次のページにあるコードの以下の箇所に設定します
    • SERVICE_API_KEY=ここに設定
    • SERVICE_API_SECRET=ここに設定
    • CONTRACT_ID=ここに設定
    • OWNER_WALLET_ADDRESS=ここに設定
    • OWNER_WALLET_SECRET=ここに設定
    37

    View full-size slide

  38. トークンを鋳造(Mint)する
    #!/bin/bash
    SERVICE_API_KEY=
    SERVICE_API_SECRET=
    CONTRACT_ID=
    TOKEN_TYPE=10000001
    OWNER_WALLET_ADDRESS=
    OWNER_WALLET_SECRET=
    TO_ADDRESS=$OWNER_WALLET_ADDRESS
    NFT_NAME=MyCard
    TIMESTAMP=`curl -s -X GET https://test-api.blockchain.line.me/v1/time -H "service-api-key: $SERVICE_API_KEY" | jq -r .responseTime`
    NONCE=`echo "${TIMESTAMP:5:8}"`
    MESSAGE="${NONCE}${TIMESTAMP}POST/v1/item-tokens/$CONTRACT_ID/non-
    fungibles/$TOKEN_TYPE/mint?name=$NFT_NAME&ownerAddress=$OWNER_WALLET_ADDRESS&ownerSecret=$OWNER_WALLET_SECRET&toAddress=$TO_A
    DDRESS"
    SIGNATURE=`echo -n $MESSAGE | openssl sha512 -binary -hmac "$SERVICE_API_SECRET" | base64`
    curl -s -X POST https://test-api.blockchain.line.me/v1/item-tokens/$CONTRACT_ID/non-fungibles/$TOKEN_TYPE/mint ¥ -H "service-api-key:
    $SERVICE_API_KEY" ¥ -H "nonce: $NONCE" ¥ -H "timestamp: $TIMESTAMP" ¥ -H "signature: $SIGNATURE" ¥ -H "Content-Type: application/json" ¥ -d " {
    ¥"ownerAddress¥": ¥"$OWNER_WALLET_ADDRESS¥", ¥"ownerSecret¥": ¥"$OWNER_WALLET_SECRET¥",
    ¥"name¥": ¥"$NFT_NAME¥", ¥"toAddress¥": ¥"$TO_ADDRESS¥"
    }
    " | jq
    38
    ※出典:LINE社で公開しているこちらレポートを参考にさせて頂きました。
    API実行はHTTP Request Headerに以下が必
    要です
    ①サービスのAPI KEY
    ②timestamp: ミリ秒単位のUnix Time
    ③nonce: 8文字の任意の文字列
    ④signature: APIリクエストの内容をサービスのAPI
    Secret Keyで署名した結果
    こちらのコードを.shファイル
    (shell)として保存します。
    ファイル名の例) minting.sh

    View full-size slide

  39. トークンを鋳造(Mint)する
    #ファイルに実行権を付与したあとshellを実行します
    $ bash ./minting.sh
    {
    "responseTime": 1678273992844,
    "statusCode": 1002,
    "statusMessage": "Accepted",
    "responseData": {
    "txHash":
    "0A46F5084D5FBB8C4A0A4640D2656466DC19FF5362F585156D4DFFFA18B805DD"
    }
    }
    39
    ※出典:LINE社で公開しているこちらレポートを参考にさせて頂きました。
    実行結果
    statusMessage": "Accepted",
    と表示され、
    responseData.txHashにhash
    値が入っていたら成功です🎉🎉

    View full-size slide

  40. トークンを鋳造(Mint)する
    鋳造に成功すると鋳造量が増えることが確認できます!
    Walletの残高が増
    えました🎉
    40

    View full-size slide

  41. 発展① SDKを使用する方法
    ■SDKからLINE Blockchain Developers APIを使用する方法
    今回は、比較的簡単に実装できるshellで実装しましたが、実際の開発では
    公開されているSDKを利用して実装するのがオススメです。
    ■ LINE社公式SDK
    ➢JavaScriptライブラリ ※現在、公式SDKはJavaScriptのみ
    ➢JavaScriptライブラリガイド
    ■LINE Blockchain開発者コミュニティ提供のSDK
    ➢Kotlinライブラリ
    ➢Goライブラリ
    URLリンクを挿入し
    ていますので、興味
    のある方はご参照下
    さい!
    41

    View full-size slide

  42. 発展② その他の機能
    今回は、Item Token(NFT)の鋳造を行いました🎉
    LINE Blockchain Developers APIでは、様々な種類のトークンの
    発行、鋳造、焼却、更新、情報取得を行うことが出来ます!
    ぜひ、いろいろ試してみてください!!
    APIのドキュメント
    42

    View full-size slide

  43. Solidityなどブロックチェーンの開発プログラミングをやったことがある方だったら、
    APIをリクエストするだけで実装できるなんて、
    なんて簡単なんだ!
    と同意してくれると思いますが、、
    まだ、少しハードルが高い。。と思う方。
    ここからは、おまけの話
    43

    View full-size slide

  44. じ、じつは、NFTの配布であればもっと簡単に出来ます!!
    (恐らく、今はユースケース的にはNFTの配布が多そう。)
    ここからは、おまけの話
    44

    View full-size slide

  45. 配布だけならもっと簡単に実現できます!!
    ここからは、おまけの話
    トークルームでNFTをスタンプのよ
    うに贈れるNFT LINE NFTギフト
    LINEでNFTや
    暗号資産を管理
    LINE NFT Pocket
    45

    View full-size slide

  46. 最後に、ホワイトペーパーとおススメの本の紹介
    Web3とWeb3.0両方あ
    るの知っていましたか!何が
    違うのか?
    実際Web3って、何なの
    か?ブロックチェーン、スマー
    トコントラクト、NFT、DAO
    それぞれどう違うのか?が、わ
    かりやすく書かれています。
    出版社が、SBクリエイティ
    ブなのは偶然ですw
    46
    LINE Blockchainの
    ホワイトペーパー(定義書的
    な詳細を記載したもの)
    Web3はエンジニア目線
    から言うと「永続性を
    持ったストレージ+コン
    ピュータ」(著者)

    View full-size slide

  47. 難しい(or怪しい?)というイメージが先行してしまっている
    ところもありますが、Blockchainの世界を少しでも
    身近に感じて頂けたら幸いです!
    ご清聴ありがとうございました!!
    47
    Blockchain技術は近い将来、エンタープライズの
    分野でも使われる可能性を秘めた技術です。
    一緒に注目してきましょう~🌸

    View full-size slide

  48. おやくそくのやつ
    48

    View full-size slide

  49. ソフトバンクではさらなる事業拡大のため
    キャリア採用を実施中です
    ソフトバンク キャリア採用
    詳細はこちら
    時期的に少な目でしたが、イロ
    イロありました。
    49

    View full-size slide

  50. ・アイテムトークンのcontract情報を取得する
    ・TxHashで作成したアイテムトークンコレクションの情報を取得する
    ・Fungibleアイテムトークン一覧を取得する
    ・Fungibleアイテムトークンの情報を取得する
    ・Fungibleアイテムトークンの保有者を取得する
    ・Non-fungibleアイテムトークンの一覧を取得する
    ・Non-fungibleアイテムトークンのtypeを取得する
    ・Non-fungibleアイテムトークンの情報を取得する
    ・Non-fungibleアイテムトークンの特定Token Typeの保有者を取得する
    ・特定のnon-fungibleアイテムトークンの保有者を取得する
    ・Non-fungibleアイテムトークンの子一覧を取得する
    ・Non-fungibleアイテムトークンの親を取得する
    ・Non-fungibleアイテムトークンのルートを取得する
    ・複数のfungible tokenアイコンの状態を取得する
    ・複数のfungible tokenのメディアリソースの状態を取得する
    ・複数のfungible tokenのサムネイルの状態を取得する
    ・複数のnon-fungible tokenアイコンの状態を取得する
    ・複数のnon-fungible tokenのメディアリソースの状態を取得する
    ・複数のnon-fungible tokenのサムネイルの状態を取得する
    ※資料リンク
    51
    トークンの情報取得に関するAPI

    View full-size slide

  51. ・アイテムトークンコレクションを作成する
    ・Fungibleアイテムトークンを発行する
    ・Fungibleアイテムトークンを鋳造する
    ・Fungibleアイテムトークンを焼却する
    ・Non-fungibleアイテムトークンを発行する
    ・Non-fungibleアイテムトークンを鋳造する
    ・Non-fungibleアイテムトークンを複数鋳造する
    ・複数のnon-fungibleアイテムトークンをそれぞれ指定された受信者に対して一括鋳造する
    ・Non-fungibleアイテムトークンを焼却する
    ・Fungibleアイテムトークンの情報を更新する
    ・複数のfungible tokenアイコンを更新する
    ・複数のfungible tokenのメディアリソースを更新する
    ・Non-fungibleアイテムトークンのtypeを更新する
    ・Non-fungibleアイテムトークンの情報を更新する
    ・複数のnon-fungible tokenアイコンを更新する
    ・複数のnon-fungible tokenのメディアリソースを更新する
    ・複数のfungible tokenのサムネイルを更新する
    ・複数のnon-fungible tokenのサムネイルを更新する
    ・Non-fungibleアイテムトークンを結合する
    ・Non-fungibleアイテムトークンを分離する
    ※資料リンク:更新、 更新以外
    52
    コレクションの作成、トークンの発行、鋳造、焼却、更新に関するAPI

    View full-size slide