Ganache: Ganacheとは?Ganacheは、実際の暗号資産を使わずに、Ethereum互換のスマートコントラクトを開発、デプロイ、テスト、デバッグできるローカルブロックチェーンシミュレーターです。開発者のコンピューター上にプライベートなブロックチェーン環境を作成し、一般にEVMと呼ばれるEthereum Virtual Machineの重要な動作の多くを再現します。Ganacheでは、テストアカウントのGanache: Ganacheとは?Ganacheは、実際の暗号資産を使わずに、Ethereum互換のスマートコントラクトを開発、デプロイ、テスト、デバッグできるローカルブロックチェーンシミュレーターです。開発者のコンピューター上にプライベートなブロックチェーン環境を作成し、一般にEVMと呼ばれるEthereum Virtual Machineの重要な動作の多くを再現します。Ganacheでは、テストアカウントの
Ganacheとは?
Ganacheは、実際の暗号資産を使わずに、Ethereum互換のスマートコントラクトを開発、デプロイ、テスト、デバッグできるローカルブロックチェーンシミュレーターです。開発者のコンピューター上にプライベートなブロックチェーン環境を作成し、一般にEVMと呼ばれるEthereum Virtual Machineの重要な動作の多くを再現します。Ganacheでは、テストアカウントの作成、Solidityコントラクトのデプロイ、トランザクションの送信、ブロックの確認、ガス使用量の計測、ブロックチェーン状態の変化の観察ができます。アーカイブされたGanache公式ドキュメントでは、安全かつ決定論的な環境で分散型アプリケーションを迅速に開発するためのパーソナルブロックチェーンとして説明されています。
Ganacheが広く使われた理由は、完全なパブリックブロックチェーンノードを起動したり、テスト用暗号資産を入手したりせずに、すぐテストを始められたことです。トランザクションは即時に承認でき、アカウントには大量のシミュレーションETHを設定でき、必要に応じてブロックチェーン全体をリセットできました。Ganacheは、デスクトップのグラフィカルアプリケーション、コマンドラインインターフェース、開発ワークフローに組み込めるJavaScriptパッケージとして提供されていました。Ganacheは暗号資産、パブリックブロックチェーン、ウォレット、トークン、分散型取引プラットフォームではありません。制御されたローカルネットワーク上でブロックチェーンの動作をシミュレートするために設計された開発ソフトウェアです。Ganacheは現在もメンテナンスされていますか?
Ganacheは現在、積極的にメンテナンスされていません。Consensysは2023年9月21日、GanacheおよびTruffle開発スイート全体のサポート終了を発表しました。公式のGanacheサポート終了の発表では、移行期間後もコードは公開されたままになると説明されています。
Ganacheのソースコードリポジトリは2024年2月26日にアーカイブされ、現在は読み取り専用です。
アーカイブされたソフトウェアは、依存関係や想定されるEthereumルールに対応した環境であれば、引き続き動作することがあります。ただし通常、アーカイブ済みソフトウェアには新機能、セキュリティパッチ、依存関係の更新、バグ修正、将来のネットワークアップグレードへの対応やサポートは提供されません。Ethereumでは新しいオペコード、トランザクション形式、ガスルール、アカウント機能、実行方法の変更が継続的に導入されるため、この制約は重要です。最新のSolidityコントラクトで使われる命令を、古いGanacheが認識できない場合があります。Ganacheですべてのテストに合格したコントラクトでも、古いプロトコルルールをシミュレートしている場合、現在のパブリックブロックチェーン上では動作が異なる可能性があります。したがってGanacheは、現在の本番テスト標準ではなく、レガシーのEthereum開発ソフトウェアとして扱うべきです。Ganacheの仕組み
Ganacheは開発者が制御する独立したブロックチェーンプロセスを起動します。このプロセスは、ローカルアカウント、残高、ブロック、トランザクション、スマートコントラクトコード、ストレージ、ログなどのブロックチェーン状態を管理します。開発用スクリプト、ウォレット、ブラウザーアプリケーション、テストツールが接続できるEthereum互換のJSON-RPCエンドポイントを公開します。Ethereum JSON-RPCドキュメントでは、アプリケーションがEthereumの実行クライアントと通信するための標準インターフェースについて説明されています。
Ganacheにトランザクションを送信すると、シミュレーターは要求を検証し、関連するEVM命令を実行してローカル状態を変更し、トランザクションレシートを返します。トランザクションの受信直後に新しいブロックを作成することも、設定した時間間隔でブロックをマイニングすることもできます。ブロックチェーンは開発者が制御するため、無関係なユーザーとパブリックブロックスペースを取り合う必要はありません。開発者はチェーンの再起動、設定変更、アカウントの置き換え、履歴の消去もできます。こうした制御によってGanacheは高速で予測しやすくなりますが、分散型パブリックブロックチェーンとは根本的に異なるものでもあります。パーソナルブロックチェーンとは?
パーソナルブロックチェーンとは、開発、学習、テスト用に運用されるプライベートなブロックチェーン環境です。Ethereumメインネットとは異なり、経済的に独立した多数のバリデーターによる分散型の保護は受けていません。ブロックチェーンを実行するユーザーが、初期状態、アカウント、マイニング動作、タイムスタンプ、ネットワーク設定を制御します。運用者は通常、他のネットワーク参加者の承認を得ずにローカル環境をリセットまたは書き換えられます。この柔軟性により、開発者は同じ条件でテストを繰り返せます。一方で、パーソナルブロックチェーンでは、パブリック暗号資産ネットワークの経済的安全性、分散性、混雑、トランザクションの順序、敵対的な活動は再現されません。Ganacheは本番ブロックチェーンではなく、パーソナルブロックチェーンシミュレーターと表現するのが適切です。GanacheのアカウントとシミュレーションETH
通常、Ganacheのセッションを開始すると、複数のテストアカウントが作成されます。各アカウントには通常、大量のシミュレーションETHが付与されます。このETHは、シミュレーション上のガス代の支払い、コントラクトのデプロイ、価値の移転、Ganache内の分散型アプリケーションとのやり取りに使用できます。GanacheのETHはローカルブロックチェーンのデータベース内にしか存在しないため、市場価値はありません。Ethereumメインネットへ直接送金したり、ブロックチェーンプロトコルを通じて実際の暗号資産と交換したりすることはできません。Ganacheでは、決定論的なニーモニックフレーズからアカウントを生成できます。同じニーモニック、導出パス、設定を使用すれば、別のGanacheセッションでも同一のアドレスと秘密鍵を再現できます。自動テストでは、テスト開始前に使用するアドレスと残高を把握できるため、決定論的なアカウントが役立ちます。これらのアカウントは開発用であるため、秘密鍵に意図的にアクセスできるようになっています。実際のウォレットのシードフレーズや本番用秘密鍵をGanacheに入力してはいけません。開発用の鍵を、パブリックネットワーク上で価値のある暗号資産を保有するアドレスに再利用してはいけません。Ganacheのグラフィカルインターフェース
Ganacheのグラフィカルインターフェースでは、パーソナルブロックチェーンを視覚的に作成、確認できました。アカウント画面には、ローカルアドレス、残高、トランザクション数、秘密鍵が表示されていました。ブロック画面とトランザクション画面では、ローカルでマイニングされた履歴を確認できました。プロジェクト情報が利用可能な場合、コントラクト関連ページにデプロイ済みコントラクト、イベント、ストレージ情報、実行の詳細が表示されることもありました。このインターフェースは、コマンドラインのブロックチェーンツールを学び始めた開発者にもGanacheを使いやすくしました。アカウント、マイニング、ネットワーク、フォークの設定を変えたワークスペースを作成できました。アーカイブされたGanacheクイックスタートガイドでは、デスクトップアプリケーションでパーソナルブロックチェーンを作成する当時の手順が説明されています。
グラフィカルインターフェースは現在レガシーソフトウェアであり、最新のEthereum機能に対応することは期待できません。Ganacheのコマンドラインインターフェース
Ganacheのコマンドラインインターフェースでは、ターミナルからローカルブロックチェーンを起動、設定できました。旧バージョンは、一般に
npx ganache
のようなコマンドで起動できました。コマンドラインでの操作は、自動テスト、スクリプト、開発サーバー、継続的インテグレーション環境に便利でした。アカウント、残高、ニーモニック、チェーンID、ガスリミット、マイニング間隔、ログ、データベース、サーバーポート、ネットワークフォークを設定できました。アーカイブされたGanache CLIオプションのリファレンスには、Ethereum開発者が利用できた当時の設定項目が記載されています。
コマンドラインプログラムはデタッチモードでも起動でき、元のターミナルコマンドとは別にローカルブロックチェーンを実行し続けられました。パッケージはアーカイブされているため、最新のソフトウェア環境にインストールすると、依存関係、OS、ランタイムの互換性に問題が発生する場合があります。Ganacheのワークスペース
Ganacheのワークスペースには、特定のローカルブロックチェーンプロジェクトの設定が保存されていました。ワークスペースには、アカウント、ニーモニック、チェーン設定、マイニング動作、データベースの保存先、リンクされたスマートコントラクトプロジェクトを設定できました。永続的なワークスペースでは、アプリケーションを閉じた後もブロックチェーンの履歴やデプロイ済みコントラクトの状態を保持できました。一時的なワークスペースでは、Ganacheの再起動時に毎回クリーンな状態から開始できました。ローカル状態を保持すると開発に便利な一方、テスト実行間でnonce、デプロイ、残高に差が生じ、混乱する場合もあります。自動テストでは、過去のトランザクションを含む古いローカルデータベースより、クリーンで決定論的な環境が適していることがよくあります。Ganacheの即時マイニング
Ganacheは、トランザクションを受信するとすぐにブロックをマイニングし、即時に承認できました。即時マイニングにより、スマートコントラクトのテストスイートをパブリックブロックチェーンよりはるかに速く実行できました。開発者はパブリックブロックの生成を待たずに、コントラクトをデプロイして操作できました。Ganacheは、一定の時間間隔でブロックをマイニングするよう設定することもできました。手動のマイニング機能では、ブロックを生成するタイミングを決める前に、テスト用の保留中トランザクションを作成できました。こうした機能はブロックチェーンアプリケーションのテストに便利でしたが、即時マイニングでは、本番環境における遅延、手数料競争、置換トランザクション、状態変化の問題が見えにくくなる場合があります。Ganacheで即時に承認されたからといって、実際のトランザクションも即時に承認されると分散型アプリケーションが想定してはいけません。Ganacheのスナップショットとリバート
Ganacheでは、ローカルブロックチェーンの現在の状態を記録するスナップショットを利用できました。開発者はスナップショットを作成し、複数のトランザクションを実行した後、ブロックチェーンを保存した状態に戻せました。この機能により、テストを同じアカウント残高、コントラクトストレージ、タイムスタンプ、ブロック履歴から何度も開始できました。スナップショットを使えば、テストごとにすべてのコントラクトを再デプロイする必要性を減らせました。既知のブロックチェーン状態からバグを再現する際にも役立ちました。Ganacheのスナップショットはローカルテスト専用の機能で、パブリックブロックチェーンには影響しません。Ganacheのスナップショットコマンドを使って、確定済みのEthereumメインネットのトランザクションを取り消すことはできません。Ganacheでの時間操作
Ganacheではブロックチェーンの時間を進めたり、ローカルで生成するブロックのタイムスタンプを制御したりできました。この機能は、トークンのベスティング、ステーキングのスケジュール、ガバナンス期間、オークション、ローンの期限、サブスクリプションシステム、タイムロック付きコントラクトのテストに役立ちました。実際の時間が経過するのを待たずに、数カ月の経過をシミュレートできました。期限の直前と直後の動作をテストすることもできました。パブリックEthereumのタイムスタンプはネットワークルールに基づいて生成され、アプリケーション開発者が制御するものではありません。そのため、完全に予測可能なローカル値だけでなく、現実的なタイムスタンプの変動を考慮してコントラクトをテストする必要があります。Ganacheのネットワークフォーク
Ganacheでは、Ethereum互換のパブリックネットワークをローカルにフォークできました。フォークは、選択したリモートブロック時点のアカウント、残高、コントラクトコード、ストレージから開始します。開始後の新しいトランザクションはローカルで実行され、元のパブリックブロックチェーンは変更しません。フォークを使うと、既存のトークン、分散型プロトコル、デプロイ済みコントラクトシステムとのやり取りをテストできます。問題が発生した時点に近いブロックチェーン条件で、過去のバグを再現する際にも役立ちます。コピーするブロックチェーン状態を取得するには、通常、リモートJSON-RPCエンドポイントが必要です。ローカルで実行したトランザクションがまだダウンロードされていない状態にアクセスすると、Ganacheはそのリモートノードに追加情報を要求できます。フォークテストによって実際の資産を操作できるようになるわけではありません。コピーされた残高やコントラクト状態はシミュレーター内にしか存在しません。アーカイブ版Ganacheは、未対応のブロック、トランザクション、オペコード、プロトコル変更に遭遇した場合、現在のネットワークを正しくフォークできないことがあります。Ganacheフォークでのアカウント偽装
Ganacheでは、フォーク環境内で選択したブロックチェーンアドレスをローカルにアンロックまたは偽装できました。これにより、特定のトークン保有者、管理者、ガバナンス参加者、コントラクトアカウントから送信されたかのように、テストでトランザクションを実行できました。偽装しても、そのアドレスの実際の秘密鍵が明らかになるわけではありません。元のパブリックネットワーク上でそのアドレスを操作できるようにもなりません。開発者がローカルシミュレーターを制御し、認証ルールを変更できるためにのみ機能します。アカウント偽装は難しいシナリオのテストに便利ですが、本番トランザクションには実際のネットワークルールに基づく有効な認証が必要です。Ganacheとスマートコントラクトのデプロイ
開発者はGanacheのローカルJSON-RPCエンドポイントにコントラクト作成トランザクションを送信し、コンパイル済みSolidityコントラクトをデプロイできました。トランザクションには、作成用バイトコードとエンコード済みのコンストラクターパラメーターが含まれます。Ganacheはコンストラクターを実行し、生成されたランタイムバイトコードをローカルのコントラクトアドレスに保存します。その後、スクリプト、ウォレット、ブラウザーアプリケーション、他のローカルコントラクトからコントラクトを呼び出せます。Ganacheでのデプロイが成功しても、Ethereumメインネットやパブリックテストネットにコントラクトがデプロイされたことにはなりません。ブロックチェーンごとにコントラクトの状態とトランザクション履歴は独立しています。ローカルテストからパブリックネットワークへ移行する際には、別途デプロイトランザクションとネットワーク手数料が必要です。Ganacheを使った暗号資産トークンのテスト
Ganacheでは、代替性トークン、NFT、ガバナンストークン、価値連動型システム、ステーキングコントラクトなど、さまざまな暗号資産アプリケーションをローカルで作成、テストできました。送金、残高、Allowance、承認、ミント、バーン、所有権、アクセス制御、イベントログをテストできます。ローカルアカウントは費用をかけずにシミュレーション上のトークンを受け取れます。正しいローカルコントラクトアドレスを追加すれば、Ganacheに接続したウォレットにローカルトークンを表示できます。そのトークンは、該当するGanacheブロックチェーン上にしか存在しません。ブロックチェーンをリセットすると、トークン、その残高、すべてのトランザクション履歴が消える場合があります。実在する暗号資産と同じ名前やシンボルを使ったローカルトークンも、シミュレーションにすぎません。トークンを識別する際は、表示名やティッカーより、ブロックチェーンと正確なコントラクトアドレスの方が信頼性の高い情報です。Ganacheのガス代
GanacheはEVMのガスをシミュレートし、コントラクトのデプロイや関数呼び出しにかかる実行コストを開発者が確認できるようにします。ストレージへの書き込み、calldata、イベントログ、コントラクトの作成、外部呼び出し、計算処理はいずれも、表示されるガス使用量に影響します。シミュレーション上の手数料は、テストアカウントのローカルETH残高から支払われます。通常のローカルGanacheトランザクションで実際のETHが消費されることはありません。開発者はガス価格、ブロックのガスリミット、トランザクションの上限、その他の手数料関連設定を変更できました。この柔軟性は、ガス不足による失敗やコストの高いコントラクト関数のテストに役立ちました。ただし、古いEVMやガススケジュールを使う場合、Ganacheのガス測定値は現在のEthereumを正確に反映しない可能性があります。ガスのベンチマークは、デプロイ予定のネットワークとコンパイラーのターゲットに正確に対応した、メンテナンス中の環境で再実施してください。Ganacheと決定論的テスト
決定論的テストとは、同じ初期条件とトランザクション入力から、同じ想定結果が得られることを意味します。Ganacheでは、決定論的なアカウント、残高、ブロック生成、チェーンID、デプロイ順序を利用できました。テストスイートは既知のニーモニックでGanacheを起動し、一定の順序でコントラクトをデプロイして、生成されるローカルアドレスを予測できます。次のテスト実行前にブロックチェーンをリセットすることもできます。この予測可能性により、コード変更がコントラクトの動作に影響したかどうかを特定しやすくなりました。実際のパブリックブロックチェーンでは、無関係なユーザーが共有コントラクトの状態、トランザクション順序、ガス需要、流動性、タイムスタンプを変えられるため、予測可能性は低くなります。そのため、決定論的なローカルテストに、より広範な統合テストや敵対的テストを組み合わせる必要があります。GanacheとEthereumメインネットの違い
Ethereumメインネットは、ETH、トークン、スマートコントラクトに実際の経済価値が伴う可能性のある、パブリックな分散型ブロックチェーンです。Ganacheはローカルで制御されるシミュレーションで、運用者が残高、ブロックのタイミング、アカウント、履歴を変更できます。メインネットのトランザクションは限られたブロックスペースを取り合い、現在のネットワーク状況によって決まる手数料を支払います。Ganacheでは即時マイニングや設定可能な手数料を利用できます。メインネットでは世界中のユーザーやアプリケーションによる予測不能な活動が発生します。新しいGanacheチェーンには、開発者が追加したアカウント、コントラクト、トランザクションしかありません。メインネットのセキュリティはEthereumプロトコルとバリデーターネットワーク全体に依存します。Ganacheのセキュリティは、1人の運用者が制御するローカルコンピューターと設定に依存します。Ganacheのテストに合格しても、コントラクトの安全性や現在のメインネットとの互換性が証明されたことにはなりません。Ganacheとパブリックテストネットの違い
パブリックテストネットは、多数の参加者が運用する共有の開発用ブロックチェーンです。Ethereumの開発ネットワークガイドでは、ローカル環境と共有パブリックテストネットの違いが説明されています。
パブリックテストネットでは、ネットワーク、ブロック生成、トランザクション競争、独立してデプロイされたコントラクトとのやり取りを、より現実に近い形で確認できます。Ganacheでは、より高速な実行、無料のローカル残高、完全な制御、即時の状態リセットが可能です。迅速な単体テストには通常ローカルテストが適しており、メンテナンス中のパブリックテストネットは、より強力な統合テストに役立つ場合があります。テストネットの暗号資産にも意図された経済価値はありませんが、開発者のコンピューターではなく共有ネットワーク上に存在します。価値ある暗号資産を管理するコントラクトには、ローカルテストやパブリックテストネットテストだけでは不十分であり、専門的なセキュリティレビューも必要です。GanacheとプライベートEthereumネットワークの違い
プライベートEthereumネットワークは、Ethereumメインネットに参加せず、相互接続された複数の実行ノードやコンセンサスノードで構成できます。Ganacheは通常、開発に特化したよりシンプルなプロセスでブロックチェーンの実行をシミュレートしていました。複数ノードのプライベートネットワークでは、P2Pネットワーク、ブロック伝播、同期、コンセンサス動作、ノード障害をテストできます。Ganacheは、アプリケーション開発の迅速化、予測可能なアカウント、ローカルRPCアクセス、便利なテスト機能を重視していました。Gethのプライベートネットワークドキュメントでは、複数ノードや複数ユーザーによるテストにプライベートEthereumネットワークを活用できると説明されています。
そのため、高度なプロトコルテストには、単一のGanacheプロセスではなく複数クライアントのネットワークが必要となる場合があります。Ganacheの制約
Ganacheでは、Ethereumメインネットの経済、ネットワーク、コンセンサス、敵対的な環境を完全には再現できません。即時承認では、保留中トランザクション、変動するベース手数料、nonceの競合、置換ルールに関する問題が見えにくくなる場合があります。予測可能なトランザクション順序では、フロントランニング、バックランニング、強制決済の競争、その他の順序リスクが見えにくくなることがあります。テスト資金が無制限だと、アカウントへの資金供給やオンボーディングの問題を見落とす場合があります。ローカルネットワークには、実際のオラクル、ブリッジ、流動性プール、トークン、ガバナンスシステム、その他の外部コントラクトが自動的に含まれるわけではありません。フォークによってパブリックネットワークの状態をコピーできますが、シミュレーションと本番実行の間に起きる可能性のあるすべての事象を再現することはできません。さらにGanacheはアーカイブされているため、現在のコンパイラー出力やEthereumの動作がサポートされないリスクがあります。包括的なテストプロセスには、メンテナンス中のローカルツール、共有ネットワークでのテスト、セキュリティ分析、ファジング、デプロイ設定のレビューが必要です。Ganacheのセキュリティリスク
Ganacheのアカウントは、価値のある暗号資産を保護する目的で設計されていません。秘密鍵がターミナル出力に表示されたり、グラフィカルインターフェースに表示されたり、プロジェクトファイルに保存されたり、よく知られたデフォルトのフレーズから生成されたりすることがあります。GanacheのRPCサーバーには強力な開発用機能があり、信頼できないインターネットユーザーに公開してはいけません。ローカル開発サーバーをパブリックネットワークインターフェースにバインドすると、不要なセキュリティリスクが生じる可能性があります。フォークしたブロックチェーンデータに実際のアカウント残高が表示される場合でも、そのローカル残高は運用者が元の資産を管理している証拠にはなりません。Ganache用のスクリプトを本番用鍵で再利用すると危険な近道が含まれている場合があります。開発用認証情報と本番用認証情報は完全に分離してください。ローカルGanacheブロックチェーンの作成に、実際のシードフレーズを必要とするWebサイト、テスト環境、サポート担当者はありません。Ganacheでよくあるエラー
アプリケーションで誤ったRPCホスト、ポート、プロトコルを指定すると、接続エラーが発生する場合があります。ウォレットの設定が別のローカルネットワークを指定していると、チェーンIDエラーが発生する場合があります。リセット済みのGanacheセッションで以前使ったトランザクションをウォレットが記憶していると、nonceエラーが表示される場合があります。選択したアドレスが残高を付与されたローカルアカウントでない場合、残高不足エラーが発生することがあります。トランザクションのガスリミットが低い場合や、コントラクトの実行に想定以上の処理が必要な場合、ガス不足エラーが発生する可能性があります。未対応のオペコードエラーは、コントラクトがGanacheの対応するEVMバージョンより新しいバージョン向けにコンパイルされたことを示す場合があります。フォークエラーは、リモートRPCエンドポイントの停止、互換性のないブロックデータ、レート制限、未対応のプロトコル動作が原因となることがあります。想定外のコントラクトアドレスは、デプロイ元、nonce、ニーモニック、デプロイ順序が異なる場合に発生することがあります。Ganacheは今も使えますか?
アーカイブ版が開発者の環境に正しくインストールされ、動作するなら、Ganacheを引き続き利用できる場合があります。古いプロジェクトのテスト結果を再現したり、過去のEthereum開発ワークフローを理解したりするのに役立つことがあります。レガシープロジェクトでは、再現性を保つためGanacheパッケージ、ランタイム、コンパイラー、依存関係のバージョンを固定できます。ただし動作し続けるからといって、ソフトウェアが最新、安全、または現代のEthereumと互換性があるとは限りません。価値のあるアプリケーションを保守するチームは、レガシーテストスイートの結果を、積極的にメンテナンスされているEVM実装の結果と比較してください。新規開発で、サポートされていないシミュレーターへの長期的な依存を増やすべきではありません。Ganacheからの移行
移行時にはまず、プロジェクトで使用しているGanacheの設定を正確に記録します。重要な設定には、ニーモニック、アカウント数、各アカウントの残高、チェーンID、ネットワークID、RPCポート、マイニングモード、ガスリミット、タイムスタンプ、データベースの保存先、フォーク設定が含まれます。スナップショット、時間変更、マイニング、残高変更、アカウント偽装にGanache固有のRPCメソッドを使うテストを特定してください。移行先のローカル環境で同等の機能を設定する必要があります。ガス見積もり、トランザクションレシート、エラーメッセージ、マイニング動作が異なる場合があるため、デプロイスクリプトもテストしてください。ガススナップショットはGanacheの結果をコピーせず、新たに生成してください。フォークテストは、現在のノードと、デプロイ予定ネットワークに対応したEVMバージョンを使って再実施してください。最終的な移行では、機能上の動作を維持しつつ、最新のEthereumプロトコルルールへの対応を改善します。最新のローカルEthereum開発
現在のEthereum開発ガイダンスでは、スマートコントラクトの作成、テスト、デバッグに、メンテナンスされているローカル開発ネットワークやフレームワークを利用することが推奨されています。公式のEthereum開発ネットワークドキュメントには、現在利用できるローカルテストの選択肢が記載されています。
実際の実行クライアントに近い動作が必要な開発者は、Gethで開発用チェーンを作成することもできます。Geth開発モードガイドでは、ローカルEthereumネットワークの起動とコントラクトのデプロイ方法が説明されています。
高度なチームは、設定可能な複数クライアントのテストネットワークを使って、ネットワーク、コンセンサス、クライアントの互換性をテストできます。最適な環境は、プログラミング言語、コンパイラー、EVMターゲット、テストフレームワーク、フォーク要件、デプロイ先ネットワークによって異なります。Ganacheにトークンはありますか?
Ganacheには、公式の暗号資産や市場で取引されるトークンはありません。Ganache内で使われるシミュレーションETHは、ローカル開発用データにすぎません。Ganacheという名前のトークンがあっても、アーカイブされた開発ソフトウェアと関係があると考えるべきではありません。誰でも、よく知られたソフトウェア名や企業名を使ったトークンを作成できます。暗号資産を特定する際は、名称やロゴだけでなく、ブロックチェーンと正確なコントラクトアドレスを確認してください。Ganacheのテスト用ETHを購入、出金、実際のETHに交換できるという主張は、詐欺の可能性を示す警告サインです。よくある質問
Ganacheを簡単に説明すると何ですか?
Ganacheは、実際の暗号資産を使わずにスマートコントラクトや分散型アプリケーションをテストするためのローカルEthereumブロックチェーンシミュレーターです。Ganacheは現在もメンテナンスされていますか?
いいえ。Ganacheは2023年にサポートが終了し、公開ソースコードリポジトリは2024年にアーカイブされました。Ganacheは今もインストールできますか?
アーカイブ済みパッケージは互換性のある環境ならインストールできる場合がありますが、サポート対象外のレガシーソフトウェアです。Ganacheは実際の暗号資産ブロックチェーンですか?
Ganacheはローカルのブロック、トランザクション、アカウント、コントラクトを管理しますが、分散型のパブリック暗号資産ネットワークではありません。Ganacheは実際のETHを使いますか?
いいえ。Ganacheのアカウントが使うのは、ローカル開発用ブロックチェーン内でのみ価値を持つシミュレーションETHです。GanacheのETHをEthereumメインネットに送れますか?
いいえ。Ganacheのローカル残高はEthereumメインネット上に存在せず、メインネットに出金することもできません。Ganacheには公式トークンがありますか?
いいえ。Ganacheは開発ソフトウェアであり、市場で取引される公式暗号資産はありません。ウォレットをGanacheに接続できますか?
はい。Ethereum互換ウォレットは、GanacheのRPCエンドポイントと正しいローカルチェーン設定を使って接続できます。GanacheでSolidityスマートコントラクトをデプロイできますか?
はい。コンパイル済みSolidityコントラクトをGanacheのローカルEVMにデプロイして実行できます。GanacheでトークンやNFTをテストできますか?
はい。開発者はローカルでトークンの送金、承認、ミント、バーン、所有権、権限ロジックをデプロイしてテストできます。Ganache CLIとは何ですか?
Ganache CLIは、ローカルブロックチェーンシミュレーターのコマンドライン版です。Ganacheのグラフィカルインターフェースとは何ですか?
アカウント、ブロック、トランザクション、コントラクト、イベント、設定を視覚的に表示するデスクトップアプリケーションです。Ganacheのワークスペースとは何ですか?
ワークスペースは、ローカルブロックチェーン、アカウント、マイニング、プロジェクトの設定を含むGanacheの保存済み設定です。Ganacheのスナップショットとは何ですか?
スナップショットはローカルブロックチェーンの状態を記録し、テストを後から同じ開始状態に戻せる機能です。Ganacheでブロックチェーンの時間を変更できますか?
はい。Ganacheの開発用機能を使って時間を進め、テスト用にローカルブロックのタイムスタンプを変更できます。Ganacheのフォークとは何ですか?
選択したパブリックネットワークのブロックからアカウントやコントラクトの状態をコピーして、ローカルブロックチェーンを作成することです。Ganacheのフォークで行ったトランザクションはパブリックネットワークに影響しますか?
いいえ。フォーク後のトランザクションはローカルシミュレーター内にとどまります。Ganacheでパブリックアドレスを偽装できますか?
選択したアドレスから送信されたようなトランザクションをローカルでシミュレートできますが、秘密鍵が明らかになることも、実際の資産を操作できるようになることもありません。Ganacheはガスを計算しますか?
はい。アーカイブ版が実装するEVMルールに基づき、ガス使用量と手数料をシミュレートします。Ganacheのガス見積もりは現在のEthereumに正確ですか?
必ずしも正確ではありません。新しいEthereumアップグレードやコンパイラー出力に対応していない可能性があります。Ganacheで未対応のオペコードが表示されるのはなぜですか?
コントラクトが、インストール済みのGanacheバージョンに実装されていない命令を含むEVMバージョンを対象にしている可能性があります。GanacheはEthereumメインネットと同じですか?
いいえ。メインネットは実際の資産が存在する分散型パブリックネットワークで、Ganacheはローカル開発者が制御する環境です。Ganacheはパブリックテストネットと同じですか?
いいえ。パブリックテストネットは多数の参加者が共有しますが、通常のGanacheチェーンは1つの開発システム上でプライベートに実行されます。インターネット接続なしでGanacheを使えますか?
基本的なローカルGanacheブロックチェーンはオフラインで動作しますが、ネットワークのフォークにはリモートノードへの接続が必要です。Ganacheは本番環境で安全に使えますか?
いいえ。公開されるテスト鍵、変更可能な履歴、開発用RPCメソッド、サポート終了のため、本番資産の保管には適していません。実際のシードフレーズをGanacheにインポートしてもよいですか?
いいえ。実際のシードフレーズや本番用秘密鍵を、ローカル開発シミュレーターで使用してはいけません。レガシープロジェクトでGanacheを使い続けられますか?
過去のテストのためにバージョンを固定して使い続けることはできますが、メンテナンスされている環境への移行が推奨されます。開発者がGanacheから移行すべき理由は何ですか?
移行により、最新プロトコルへの対応、依存関係のメンテナンス、セキュリティ修正、現代のSolidity出力との互換性を確保できます。Ganacheのテストに合格すれば、コントラクトの安全性が証明されますか?
いいえ。ローカルテストだけでは、敵対的テスト、最新ネットワークとの統合、コードレビュー、独立したスマートコントラクト監査の代わりにはなりません。まとめ
Ganacheは、Ethereum開発者がスマートコントラクトを迅速に作成、テストするのに役立った、歴史的に重要なローカルブロックチェーンシミュレーターです。資金が付与されたアカウント、決定論的な鍵、即時マイニング、スナップショット、時間操作、ローカルのガス計算、ネットワークフォーク、アカウント偽装を提供していました。シミュレーションETHやトークンはローカルブロックチェーン内にしか存在せず、実際の市場価値はありません。Ganacheではアカウント、ブロック生成、履歴、ネットワーク状況を1人の開発者が制御するため、Ethereumメインネットとは異なります。状態が通常プライベートで予測しやすく、簡単にリセットできる点で、パブリックテストネットとも異なります。Ganacheは2023年に公式サポートが終了し、ソースコードリポジトリは2024年に読み取り専用になりました。アーカイブ版はレガシープロジェクトの保守に役立つ場合がありますが、現在のEthereumアップグレードやコンパイラーの動作に対応することは期待できません。開発者は実際の秘密鍵を使用したり、GanacheのRPCサーバーを一般公開したり、ローカルテストの成功を本番環境での安全性の証明とみなしたりしてはいけません。Ganacheから移行するプロジェクトは、アカウント、チェーン、マイニング、スナップショット、タイムスタンプ、RPC、ガス、フォークの設定を、メンテナンスされている移行先環境に引き継ぐ必要があります。Ganacheは、現代のローカルブロックチェーンツールにも影響を与え続けるテスト概念を持つ、レガシーのEthereum開発基盤として理解するのが適切です。関連コンテンツ
WhatsMiner M30S++
WhatsMiner M30S++とは? WhatsMiner M30S++は、SHA-256 Proof of Workマイニング向けに設計されたMicroBT製のBitcoin ASICマイナーです。 WhatsMiner M30シリーズの一部であり、主にマイニングプールを通じてBitcoinをマイニングするために使用されます。 ASICマイナーは、1種類の計算を非常に効率的に実行するために作
2026/10/15 11:08
Web3ドメイン
Web3ドメインとは? Web3ドメインとは、長いウォレットアドレスの代わりとなり、分散型コンテンツを参照し、オンチェーンアイデンティティを表現し、ユーザーをWeb3アプリケーションへ接続できる、ブロックチェーンベースの名前です。 ユーザーは、長い16進数のアドレスに暗号資産を送付する代わりに、ブロックチェーンベースのユーザー名やドメインなど、読みやすい名前へ送付できる場合があります。 Web3ド
2026/10/15 11:08
Web3プロジェクト
Web3プロジェクトとは? Web3プロジェクトとは、分散型技術を活用し、ユーザーが資産、ID、データ、参加、デジタル上の価値をより管理できるようにする、ブロックチェーンベースのアプリケーション、プロトコル、ツール、ネットワーク、コミュニティです。 Web3プロジェクトには、レイヤー1ブロックチェーン、レイヤー2ネットワーク、DeFiプロトコル、ウォレット、NFTプラットフォーム、DAO、ブロック
2026/10/15 11:06
ホット
現在、市場で大きな注目を集めているトレンドの暗号資産
トップ取引高
取引高が最も多い暗号資産

