ブロックチェーン について(11)

概要

  • DynamicNFTスマートコントラクト について, 前回からの続き部分を確認してみた.
  • 動作環境は, 以下を利用した.
    • Chrome (バージョン: 108.0.5359.125 (64-bit))
    • Solidity 0.8.17

感想

  • Chainlink Automation で, 前回 の Time-based トリガー に変えて, 今回は, Custom logic トリガーの動作を, 一通り確認できた.
  • 五つ目の画像表示だけ, OpenSea に 反映されるまでに, 8分近くかかったが, 画像の更新は, 確認できた.
  • 注意点として, Chainlink Automation で, Upkeep登録直後に, 実行されるため, OpenSeaの画像が, 二つ目の画像に更新される点が挙げられると思う.
  • 引き続き, 後続の講座も受講を継続したいと思う.

参考

  1. 33. Upkeep登録とAutomation動作確認
    • 初期状態
      OpenSea

      Chainlink Automation
      ※画像無し(Upkeep登録直後に, 更新1回目となるため)

    • 更新1回目
      OpenSea

      Chainlink Automation

    • 更新2回目
      OpenSea

      Chainlink Automation

    • 更新3回目
      OpenSea

      Chainlink Automation

    • 更新4回目
      OpenSea

      Chainlink Automation


参照サイト

実践DynamicNFTスマートコントラクト開発〜NFT編ステージ2a / Oracle『Chainlink』の活用〜

ブロックチェーン について(10)

概要

  • ちょうど, 2022年12月8日に, 講師割引で, 講座を購入できた.
  • 動作環境は, 以下を利用した.
    • Chrome (バージョン: 108.0.5359.125 (64-bit))
    • Solidity 0.8.17

感想

  • まだまだ前半であるものの, 過去のNFT関連のUdemy講座を受講していたので, 現状すんなり取り組めていると思う.
  • Chainlinkを利用するためのLINKトークンを, とりあえず, 100 LINK くらい集めた状態で進めている.
  • 五つ目の画像まで, 更新を確認出来なかったが, その原因は, 特定できていない, 少なくとも, 五つ目の画像をブラウザから確認できたことから, NFT.Storage へのアップロードは, 問題なさそうだったので, Solidity か Chainlink の 不具合と予想している.
  • 引き続き, 後続の講座も受講を継続したいと思う.

参考

  1. 22. Upkeep登録とAutomation動作確認
    • 初期状態
      OpenSea

      Chainlink Automation

    • 更新1回目
      OpenSea

      Chainlink Automation

    • 更新2回目
      OpenSea

      Chainlink Automation

    • 更新3回目
      OpenSea

      Chainlink Automation


参照サイト

実践DynamicNFTスマートコントラクト開発〜NFT編ステージ2a / Oracle『Chainlink』の活用〜

ブロックチェーン について(9)

概要

  • ちょうど, 2022年10月11日に, 講師割引で, 講座を購入できた.
  • 動作環境は, 以下を利用した.
    • Chrome (バージョン: 107.0.5304.107 (64-bit))
    • Solidity 0.8.17

感想

  • Remix – Ethereum IDE 環境を使ったため, 環境構築が, ほぼ無く, 躓きは, 特に無かったと思う.
  • Solidity の 理解を, より深める機会に出来たので, 個人的には, 非常に良かったと思う.
  • DAppに関するUdemy講座を, 以前, 受講していたので, Solidity に 対する表面的な情報を知ってから, 受講開始できたので,(講座を一通り確認するまでに, 時間はかかってしまったものの)比較的スムーズに進めることはできたと思う.
  • 講座内では, GitHub保存は, ほぼ無かったので, 1 or 2ファイル程度, 講座が進んだタイミングで, (Remix – Ethereum IDE 環境 から git add -> git commit -> git push) こまめに保存するようにした.
  • あと, 最も必要と感じたスキルは, 忍耐力だったと思う.

参考

  1. 修了証明書

参照サイト

Mastering Solidity Basics 〜入門レベルを脱してSolidityを自在に操るための基礎固め〜

ブロックチェーン について(8)

概要

  • NFTスマートコントラクト について, 前回からの残り部分を確認してみた.
  • 動作環境は, 以下を利用した.
    • Chrome (バージョン: 105.0.5195.127 (64-bit))
    • Node.js 16.17.0
    • npm 8.15.0
    • Solidity 0.8.17
    • OpenZeppelin 4.7.0
    • Hardhat 2.9.9
    • Next.js 12.3.1
    • Visual Studio Code (バージョン: 1.71.2)

感想

  • Solidity の バグ StorageWriteRemovalBeforeConditionalTermination が, 0.8.17 で, Fixed とあるため, [hardhat.config.js]ファイル, [MemberNFT.sol]ファイル, [TokenBank.sol]ファイル に記載した Solidity の バージョンを 0.8.17 に 変更した.
  • フロントエンド実装で, Next.js, Tailwind CSS に触れることが出来たので良かったと思う.
  • Vercelを使った, フロントエンドアプリのデプロイなど, 学習項目が豊富で, 非常に良かったと思う.
  • 講座を一通り確認出来たので, 非常に良かったと思う, 個人的には, 将来的にも, 講座が続く場合は, 引き続き学習を進めたいと考えている.

参考

  1. 105. DApp動作確認
    • フロント (アカウント3)
      NFT未保有(nftBalance が 0)
    • フロント (アカウント4)
      NFT を 1つ保有 (nftBalance が 1)
    • トークン移転(アカウント4 → アカウント3)
      [移転前(所持残高:100)]

      [移転後(所持残高:77)]

    • NFT移転(アカウント4 → アカウント3)
      [NFT出品(アカウント4)]

      [NFT購入(アカウント3)]
    • フロント(アカウント4)
      NFT未保有(nftBalance が 0)
    • フロント(アカウント3)
      NFT を 1つ保有(nftBalance が 1)
    • トークン預け入れ(アカウント3)
      [預け入れ前(総預かり残高:0/所持残高:223/預入残高:0)]

      [預け入れ後(総預かり残高:23/所持残高:200/預入残高:23)]
    • トークン引き出し(アカウント3)
      [引き出し前(総預かり残高:23/所持残高:200/預入残高:23)]

      [引き出し後(総預かり残高:12/所持残高:211/預入残高:12)]

     

  2. 修了証明書

参照サイト

実践DApp開発入門 〜NFT編ステージ2〜

ブロックチェーン について(7)

概要

  • NFTスマートコントラクト について, Udemy講座 で 学習を継続してみた.
  • ちょうど, 2022年8月30日に, Udemyセールがあったので, 割引価格で, 講座を購入することができた.
  • 動作環境は, 以下を利用した.
    • Chrome (バージョン: 105.0.5195.127 (64-bit))
    • Node.js 16.17.0
    • npm 8.15.0
    • Solidity 0.8.16
    • OpenZeppelin 4.7.0
    • Hardhat 2.9.9
    • Visual Studio Code (バージョン: 1.71.2)

感想

  • Ethereum の テストネット は, Rinkeby に変えて, Goerli で 動作確認している.
    RINKEBY FAUCET で, “Due to ETH Merge, the Rinkeby Testnet will be deprecated on Wednesday, October 5th, 2022. Please develop using our Goerli Testnet faucet.” のような Rinkeby廃止予定 の アナウンスがあるため.
  • 一つ目の講座に引き続き, 二つ目の講座を学習する形となったが, 一つ目の講座で見てきた知識(OpenSea, Etherscan, NFT.Storageほか)が役立つ場面が多かったと思われる.
  • Solidityによるテストコードの書き方, 実行方法などが, 詳しく解説されており, 個人的には, あまり馴染みのないカテゴリーであるものの, 将来的に, 非常に役立つ機会がくるのでは, という印象を持った.
  • 講座の残りの部分も, 引き続き, 時間を見つけて確認してみたいと思った.

参考

  • 38. デプロイとNFTmint確認
  •  

  • 54. [テスト]個人間トークン移転3

参照サイト

実践DApp開発入門 〜NFT編ステージ2〜

ブロックチェーン について(6)

概要

  • NFTスマートコントラクト について, 前回からの残り部分を確認してみた.
  • 動作環境は, 以下を利用した.
    • Chrome (バージョン: 105.0.5195.127 (64-bit))
    • Solidity 0.8.16
    • OpenZeppelin 4.7.0

感想

  • オンチェーンNFT で登場してきた, Chainlink VRF は, Rinkeby testnet の VRFコーディネータのコントラクトアドレスが記載されてないように見えたため, Goerli testnet の VRFコーディネータのコントラクトアドレスを設定して, 動作確認している(129. Chainlink VRF Demo ~)
  • 講座を一通り確認出来たので, 非常に良かった
  • 実践DApp開発入門 〜NFT編ステージ2〜 も 公開されていたので, 引き続き取り組んで行きたいと思う

    1. 参考

    2. 136. NFTMintと動作確認
      • ホーム(OnRandomUriOracle – wPdRMyxdde)
      • Colorful Cordinate Circle # 1 の Propertiesなど
      • Colorful Cordinate Circle # 1 の Details

       

    3. 140. OpenSeaでNFT売買のトランザクションを確認
      • 購入完了
      • Colorful Cordinate Circle # 1 を 購入者アカウントから確認(Owned by you が 表示される)
      • 取引履歴

       

    4. 142. 権限移譲と移転の体験
    5. 権限移転の確認(Owned by you から Owned by 1C3459 に 表示 が 変更された)

       

    6. 修了証明書

    参照サイト

    【注目スキル:DApp(分散アプリケーション)】体系的に学ぶ『スマートコントラクト』開発〜NFT編ステージ1〜

ブロックチェーン について(5)

概要

  • NFTスマートコントラクト について, Udemy講座 で 学習を開始してみた.
  • ちょうど, 2022年8月28日に, Udemyセールがあったので, 割引価格で, 講座を購入することができた.
  • 動作環境は, 以下を利用した.
    • Chrome (バージョン: 105.0.5195.127 (64-bit))
    • Solidity 0.8.16
    • OpenZeppelin 4.7.0

感想

  • Remix IDE と GitHub の 連携について, Remix IDE から git commit で, エラー(SecurityError: The operation is insecure.)が出てきた. 本件については, ブラウザ を Firefox から Chrome に 変更したところ, エラーを回避できたので, Remix IDE と GitHub を 連携する場合は, ブラウザは, とりあえず, Chrome が 無難だと思った.
  • オフチェーンNFTについて, Solidity および OpenZeppelinライブラリを使って, NFT.Storage に アップロードした (自作の)画像ファイル, メタデータ を, OpenSea に 表示させるところまでを, 確認出来た(95. このセクションのまとめ)
  • ここまでの講座を見てきた限りでは, NFT初心者である当方でも, 意外と, 進めることができたように思う, また, 資料やプログラムなどを含めて, 非常に細かく準備されている印象があり, 個人的には, いままで受講してきたUdemy講座の中でも, トップクラスに素晴らしい講座だと感じた
  • 講座の残りの部分も, 引き続き, 時間を見つけて確認してみたいと思った

    • 参考

    • 94. Rinkebyテストネットでの動作確認
    • 1回目
      期待した結果を得ることが出来なかった(原因不明).

       

      2回目
      デプロイやり直して, mint再実行したところ, OpenSea で, 画像ファイル(3つ) を 確認出来た.

       


    参照サイト

    【注目スキル:DApp(分散アプリケーション)】体系的に学ぶ『スマートコントラクト』開発〜NFT編ステージ1〜

ブロックチェーン について(4)

概要

  • ブロックチェーン(Webアプリ開発) について, Udemy講座 で 学習してみた.
  • ちょうど, 2022年8月9日に, Udemyセールがあったので, 92%割引で, 講座を購入することができた.
  • 動作環境は, 以下を利用した.
    • Windows 10 Home (64bit)
    • Visual Studio Code (バージョン: 1.70.2)
    • Firefox (バージョン: 104.0 (64-bit))
    • Solidity 0.8.9
    • React 18.2.0

感想

  • 前半で, Remix IDE を 利用した Solidity言語を使った実装例(コンパイル ~ デプロイ 含む)が興味深かった.
  • 後半では, MetaMask, Solidity, Hardhat, Alchemy の 利用を確認出来た.
  • Goerli FAUCET から, テスト用の ETH取得に, 意外と時間かかったので, 注意が必要と思った.
    ※夜中, 取得できなかったので, 朝起床後, 再取得しにいったら, 取得できた.
  • 過去, 別途 React の Udemy講座 を 学習していたので, 復習できたので, 良かったと思った.
    • createContext, useEffect, useContext.
    • 分割代入.
    • スプレッド構文.
  • 最後の仮想通貨送金は, MetaMask の [確認]ボタン が アクティブにならない場合があるので, 注意が必要に見える.
    ※MetaMask の [編集] から, [金額]欄 右端 のアイコンをクリックしたら, アクティブになった(正しい手順は不明).

    1. 参考

    2. 仮想通貨(GoerliETH)の送金確認
    3. 参考までに, 講座の最後の方を確認していた時のキャプチャを, 貼り付けてみた.

      GoerliETH の 送金例

       

      [送金元]
      0.75 GoerliETH から 0.7494 GoerliETH に 変化.

       

      [送金先]
      0 GoerliETH から 0.0005 GoerliETH に 変化.

      ※1. 送信先のテストアカウント作成が必要.
      ※2. 送金前に, [ウォレット連携]ボタン を 押下する必要があるので, 要注意(これを行わないと, 送金元アドレス(変数 currentAccount) が 空となる).

       

      [コンソールログ]

      [トランザクション詳細]

       

    4. 修了証明書

    参照サイト

    【Web3.0アプリ開発入門】ReactとSolidity言語で簡単ブロックチェーンWebアプリ開発を体験してみよう!

ブロックチェーン について(3)

概要

  • ブロックチェーン について, Udemy講座 で 学習してみた.
  • ちょうど, 2022年8月9日に, Udemyセールがあったので, 92%割引で, 講座を購入することができた.
  • 動作環境は, 以下を利用した.
    • Windows 10 Home (64bit)
    • Visual Studio Code (バージョン: 1.70.2)
    • Firefox (バージョン: 103.0.2 (64-bit))
    • Go 1.19

感想

  • 前回のPython版と類似したブロックチェーンネットワーク構成で確認したので, ブロックチェーンに関する理解を深めることができたと思う.
  • package main の 競合を避けるため, プロジェクト全体のツリー構造を変更して確認した.
  • [wallet_server.go]ファイルで, 変数 tempDir の 設定値 を, 変更して確認した.
  • [neighbor.go]ファイルで, GetHost関数の戻り値を, 変更して動作確認した.
  • [blockchain_server.go]ファイルで, 以下の修正を行って動作確認した.
  • ※ウォレットから, 仮想通貨を送信後, ブロックチェーンノードのトランザクションを確認すると, 同じ内容で, 2個ずつ追加される現象が発生したため, 以下の修正(0.0.0.0 ⇒ 127.0.0.1)を行い, 解決した.

  • [blockchain.go]ファイルで, UnmarshalJSON関数 を UnMarshalJSON関数 のような名称にすると, コンセンサスAPI が 動作しなかったので, 要注意

  1. 仮想通貨の送受信確認
  2. 参考までに, 講座の最後の方(最終デモ)を確認していた時のキャプチャを, 貼り付けてみた.

    [送信]

     

    [受信]

     


  3. 修了証明書

参照サイト

現役シリコンバレーエンジニアが教えるGoで始めるスクラッチからのブロックチェーン開発入門

ブロックチェーン について(2)

概要

  • ブロックチェーン について, Udemy講座 で 学習してみた.
  • ちょうど, 2022年8月9日に, Udemyセールがあったので, 92%割引で, 講座を購入することができた.
  • 動作環境は, 以下を利用した.
    • Windows 10 Home (64bit)
    • Visual Studio Code (バージョン: 1.70.0)
    • Firefox (バージョン: 103.0.2 (64-bit))
    • Python 3.10.2

感想

  • ブロックチェーンに関する理解が, 実装イメージを含めて深めることができ, 期待していた以上に, 良かったと思われる.
  • エラー(ImportError: cannot import name ‘Markup’ from ‘jinja2’) が発生したため, Flask バージョンを, 1.0.2 から 2.2.2 に 変更して確認した.
  • P2Pを疑似的に再現するために, REST API による実装であるため, P2Pなどは, 別途, 学習する必要があると感じた.
  • データベースを使わずに, キャッシュで代用した実装となっている点も, 特徴的な印象を受けた.
  • Pythonや, REST API に慣れている(MVCモデルなど)人であれば, すんなり内容が入って来る講座だという印象を受けた.

  1. 仮想通貨の送受信確認
  2. 参考までに, 講座の最後の方(ブロックチェーンネットワークの構築 – 仮想通貨を送受信する)を確認していた時のキャプチャを, 貼り付けてみた.

    [送信]

     

    [受信]

     


  3. 修了証明書

参照サイト

現役シリコンバレーエンジニアが教えるPythonで始めるスクラッチからのブロックチェーン開発入門