day5. web3の基本ツール

web3.0で利用される基本的なツールについて紹介します。

本ガイドでは、web3で開発を行う際に利用される代表的なツールを紹介します。

TOC

MetaMask(メタマスク)

MetaMaskは、デジタルウォレットのうち最も有名なもので、ブラウザのプラグインやモバイルアプリとして動作する仮想通貨用のウォレットです。ユーザーはMetaMaskを使用することにより、DeFiやNFTプラットフォームを始めとするdApps(分散型アプリケーション)に接続して、各サービスを利用することができます。

例えば、OpenSeaなどのサービスでNFTを購入するといったことがMetaMaskを通じて可能になります。実際にOpenSeaで購入まで行った例をこちらの記事で解説しています。サイトにウォレットを接続させると、OpenSea上で購入などの操作ができるようになります。

MetaMaskは、主にEthereumやEthereumベースのブロックチェーン上で動作するdAppsに使用されます。MetaMaskをブラウザもしくはモバイルアプリにインストールすると、利用できるようになります。

Metamaskはブラウザーのプラグインとして動作するデジタルウォレットです。
ブラウザ(Chrome)の拡張機能として動作しているMetaMask

MetaMaskのセットアップ

MetaMaskの導入方法は、MetaMaskの公式サイトのこちらのページに記載しています。

Faucet(フォーセット)

Faucet(フォーセット)は、テストネット上の仮想通貨を無料で入手できるオンラインサービスです。主な目的は、開発者やテスト実施者が仮想通貨を手に入れて、ブロックチェーンネットワークやスマートコントラクトを実際に操作してテストを行うことにあります。

通常、テストネット上での開発用に利用されます。例えば、EthereumのテストネットであるGoerli(ゴエリ)やSepolia(セポリア)のフォーセットを使用することで、開発者はテストトークンやテストイーサ(テストネット上のETH。例えば、Goerliなら、GoerliETHという名称)を入手することができます。

一般的なフォーセットの仕組みは、開発者が自身のウォレットアドレスをサイト上で指定し、一定量の仮想通貨がそのアドレスに送信されるというものです。このようにして入手した仮想通貨は、テストネットにおけるトランザクションの実行やスマートコントラクトのテストに使用できます。

開発者やテスト実施者は本物のトークンやイーサを使用せずに、ブロックチェーン上の操作をテストする際に利用することができ、便利です。また、初めてブロックチェーン技術に触れる人々にとっても、実際のトランザクションやウォレットの操作を体験する上で有用です。

Alchemyが提供しているGoerliネットワーク用のFaucet。自分のウォレットのアドレスを指定して、Sende Me ETHを押すと、GoerliETHを送金してくれる。
Alchemyが提供しているGoerliネットワーク用のFaucet
自分のウォレットのアドレスを指定して、Sende Me ETHを押すと、GoerliETHを送金してくれます。

Etherscan

Etherscanは、Ethereum上のトランザクションやアカウント情報を閲覧するためのツールで、ブロックチェーンエクスプローラ(ブロックチェーン探索ツール)とも呼ばれています。Etherscanは、Ethereumのトランザクション情報、スマートコントラクトの詳細情報、アカウント情報(残高等)やトランザクション履歴、ブロック情報などを提供します。

主な機能として、次のようなものがあります。

  1. トランザクション閲覧: Etherscanは、Ethereumネットワーク上で行われたトランザクションの詳細な情報を提供します。トランザクションのハッシュ値、送信元と宛先アドレス、送信したトークンの額、ガス料金などの詳細情報を確認することができます。
  2. スマートコントラクト情報: Etherscanは、デプロイされたスマートコントラクトの詳細情報を提供します。スマートコントラクトのアドレス、ソースコード、コントラクトの関数とイベント、トランザクションの履歴などを閲覧することができます。
  3. アカウント情報: Etherscanを使用すると、Ethereumアドレスの残高、トランザクション履歴、トークン保有量など、特定のアカウントに関する情報を確認できます。
  4. ブロック情報: Etherscanは、Ethereumブロックチェーン上のブロックの詳細情報を提供します。ブロックの番号、タイムスタンプ、含まれるトランザクション数、マイナーの情報などを確認することができます。

このように、Etherscanは、Ethereumのトランザクションやアカウント情報を調べるためツールで、ブロックチェーンの透明性やセキュリティを向上させるために利用されます。dApps開発者やユーザーは、Etherscanを使用して自身のトランザクションやスマートコントラクトの状態を確認・監視することができ、ブロックチェーン上の活動をトレースできます。

Etherscanではトランザクションの詳細を確認することができます。
Etherscanではトランザクションの詳細を確認することができます。
From, To: 送信元・送信先アドレス、Value: 総金額、GasPrice…: ガス代 … などの情報を確認することができます。
Etherscanでは、トークンを含むスマートコントラクトの詳細情報を確認することもできます。また、デプロイ実施者が行っていれば、ソースコードも閲覧できんます。
Etherscanでは、トークンを含むスマートコントラクトの詳細情報を確認することもできます。
また、デプロイ実施者が行っていれば、ソースコードも閲覧できんます。

Remix

Remixは、Ethereumのスマートコントラクトの開発およびデバッグを行うためのWebベースの統合開発環境(IDE)です。Remixを使用することで、開発者はブラウザ上で直接スマートコントラクトを作成、コンパイル、デプロイ、テストすることができます。

Remixは以下のような主要な機能を提供しています。

  1. スマートコントラクトの作成: Remixは、Solidity言語でスマートコントラクトを作成するためのエディタ機能を備えています。開発者はコードを入力し、Remixのシンタックスハイライトや自動補完機能を活用しながらスマートコントラクトを作成できます。
  2. コンパイルとデプロイ: Remixは、スマートコントラクトのコンパイルを行い、Ethereum仮想マシン(EVM)で実行可能なバイトコードに変換します。また、RemixのVM上での実行に加えて、スマートコントラクトをテストネットやメインネットにデプロイすることもできます。
  3. テストとデバッグ: Remixは、スマートコントラクトのテストとデバッグを支援する機能も提供しています。開発者は簡単にテストケースを作成し、ステップ実行やデバッグ用のブレークポイントを設定することができます。
  4. プラグインエコシステム: Remixは、プラグインエコシステムを備えており、開発者が機能を追加したり拡張したりすることができます。さまざまなプラグインが提供されており、例えば、静的解析、セキュリティチェック、Gasの最適化などの機能を追加することができます。
Remixは、ウェブベースでSolidityの開発を行うことができるIDE環境です。
Remixは、ウェブベースでSolidityの開発を行うことができるIDE環境です。

Hardhat

Hardhatは、Ethereumにおけるスマートコントラクトの開発やテストをサポートするための開発ツールとフレームワークです。Hardhatは、Ethereumの開発者がスマートコントラクトを効率的かつ信頼性の高い方法で構築できるように設計されています。

Hardhatの主な特徴と機能には以下のようなものがあります。

  1. スマートコントラクト開発: Hardhatは、Solidity言語で書かれたスマートコントラクトの開発をサポートします。開発者はコードを作成し、デバッグ、テスト、デプロイするための環境を提供します。
  2. テストフレームワーク: Hardhatは、スマートコントラクトの自動化されたテストをサポートする豊富なテストフレームワークを提供しています。開発者は独自のテストスクリプトを作成し、スマートコントラクトの動作を確認することができます。
  3. ローカルネットワーク: Hardhatは、ローカル環境で動作する仮想的なEthereumネットワークを備えています。これにより、開発者は実際のEthereumネットワークに接続せずに、スマートコントラクトの開発やテストを行うことができます。
  4. スクリプトとタスクの実行: Hardhatは、開発者が独自のスクリプトやタスクを実行するための機能を提供します。これにより、デプロイの自動化や特定の操作の実行などを行うことができます。
  5. プラグインエコシステム: Hardhatは、豊富なプラグインエコシステムを備えています。開発者はプラグインを使用して、追加の機能や統合を実装することができます。

Hardhat以外にもweb3開発で使われるフレームワークはあります。有名なものとして、Truffle、Brownie、Foundryなどがあります。この一連のチュートリアルでは、Hardhatを採用していますが、興味があれば、他のフレームワークについても学び、ご自身に最もあったツールを探してみるのも良いかもしれません。

IPFS

IPFS(InterPlanetary File System)は、分散型のファイルシステムであり、ブロックチェーンの技術を基盤としています。IPFSは、ファイルを一意の識別子(ハッシュ)で参照し、ユーザーが分散されたネットワーク上でファイルを共有および取得できるようにします。

IPFSの主な特徴と機能には以下のようなものがあります。

  1. 分散型アーキテクチャ: IPFSは、中央集権化されたサーバーではなく、ユーザーのデバイスによってファイルが保存および提供される分散型アーキテクチャを採用しています。これにより、ファイルの冗長性と可用性が向上し、システム全体の信頼性が高まります。
  2. コンテンツアドレッシング: IPFSは、ファイルを一意の識別子で参照します。ファイル自体ではなく、その内容に基づいてファイルが識別されます。したがって、同じファイルは同じ識別子を持ち、ネットワーク上で共有されます。これにより、データの重複を排除し、効率的なデータ管理が可能になります。
  3. キャッシングと高速性: IPFSは、ファイルのキャッシング機能を備えており、近くのピアからファイルを取得することで高速なデータアクセスを実現します。また、データがユーザーによって提供されるため、ネットワークの負荷分散も行われます。
  4. バージョン管理: IPFSは、ファイルの変更履歴を追跡し、バージョン管理をサポートします。変更されたファイルは新しいハッシュで識別され、過去のバージョンも保持されます。これにより、データの永続性と透明性が確保されます。
  5. セキュリティ: IPFSは、ファイルの整合性とセキュリティを保護するために暗号化技術を使用します。ファイルはハッシュによって識別されるため、データの改ざんを検知することができます。

IPFSは、分散型のファイル共有とデータ管理を実現するための新しいアプローチです。これにより、データの効率的な配信、信頼性の向上、セキュリティの確保など、さまざまな利点がもたらされます。IPFSは、分散型アプリケーションやブロックチェーンプロジェクトなど、さまざまな場面で活用されています。

ご意見をお聞かせください!

web3チュートリアルシリーズについてのご意見を是非お聞かせください。

この記事、または、web3チュートリアル全体について、是非、あなたのご意見をお聞かせください。
アンケートはこちらからご回答いただけます。

無料相談承ります

ITの専門家が無料相談を受け付けます。web3以外のテーマでもOKです。

オンラインでの無料相談を承っています。ご希望の方は、お問い合わせフォームよりご連絡ください。
ITの専門家があなたのご質問にお答えいたします。

Let's share this post !

Author of this article

After joining IBM in 2004, the author gained extensive experience in developing and maintaining distributed systems, primarily web-based, as an engineer and PM. Later, he founded his own company, designing and developing mobile applications and backend services. He is currently leading a Tech team at a venture company specializing in robo-advisory.

Comments

To comment

CAPTCHA


TOC