パブリック Ethereum ネットワークについて

完了

Ethereum プロトコルは、複数のパブリック ネットワークで構成されます。 プロパティ、用途、機能、合意メカニズムが異なるさまざまな Ethereum ネットワークを使用できます。 現在、Ethereum には、Testnet と呼ばれる 4 つのテスト ネットワークと、 Mainnet と呼ばれる 1 つの運用ネットワークがあります。

Mainnet の概要

mainnet ("main network" の省略形) は、1 つの実際のパブリック Ethereum ブロックチェーンです。 Mainnet にデプロイされたアプリケーションは、情報を交換して使用したり、相互にやり取りしたりすることができます。

デプロイされたアプリケーションでは、分散型ブロックチェーンのあらゆる機能を利用できます。 一元化された権限はありません。 Mainnet は完全な分散型です。

Mainnet には、さまざまな種類のトークンおよびアプリケーションがデプロイされる可能性があります。 Mainnet にデプロイされたトランザクションは不変であるため、変更することはできません。

各トランザクションには、実際のコストがあります。 これらのコストには、Ether (ETH) 暗号通貨が必要です。

Etherscan を使用すると、Ethereum の Mainnet 上のすべてのブロックを表示できます。 Etherscan を使用すると、最後にマイニングされたブロックとトランザクションが表示されます。 すべてのブロックを確認できます。

Etherscan のホーム ページを示すスクリーンショット。

Ethereum の Testnet

Ethereum には、4 つのパブリック Testnet があります。 各 Testnet のデプロイ方法とプロセスは異なります。 Testnet では、アプリケーションを Mainnet にデプロイする前に、ライブ パブリック環境内でステージングし、テストします。

Testnet では、Proof-of-Work (PoW) または Proof-of-Authority (PoA) のいずれかの合意プロトコルを使用して、トランザクションの新しいブロックをネットワークに追加する方法を決定します。 各プロトコルの簡単な概要を次に示します。

  • PoW: マイニング リグでは、暗号ハッシュの問題を解決して、新しいブロックをマイニングし、そのブロックに含まれるトランザクションを決定します。
  • PoA: ブロック バリデーターでは、ネットワーク上の ID を検証し、チェーン内の次のブロックになるトランザクションを決定します。

Testnet には、テスト Ether が必要です。 テスト Ether は無料で、Faucet から入手できます。 特定の量のテスト Ether を受け取るには、Faucet にアカウントのアドレスを入力します。

Faucet は、Testnet 用のテスト Ether を取得するための主要な方法になってきました。 開発者とテストのためのパブリック テスト ネットワークは、コミュニティによって管理されています。 Ether は信頼されたパーティによって管理されているため、Faucet では、Testnet がスパム攻撃から保護されます。

Testnet の比較

ここで、Ethereum の Testnet とそれに関連する特性を見てみることにしましょう。

Ropsten

Ropsten は、PoW 合意プロトコルです。 機能的には Mainnet に最も近いネットワークです。 Ropsten は、スウェーデンの地下鉄の駅名にちなんで名付けられ、2016 年から存在しています。 Mainnet の条件を最もうまく再現していると言う人もいます。

詳細:

  • サポートされるクライアント:
  • ブロック時間: 30 秒以下
  • Ropsten 固有のリンク:

Kovan

Kovan は PoA Testnet であり、名前はシンガポールの地下鉄の駅名に由来します。 Ether は、Faucet から要求する必要があり、信頼されたパーティによって管理されています。 このプロパティのため、Kovan はスパム攻撃を受けません。

詳細:

Goerli

PoA クロスクライアントの Testnet である Goerli は、ベルリンの地下鉄の駅名にちなんで名付けられました。 この Testnet は、さまざまなクライアントで幅広く使用できることを目的としています。 一貫した可用性を保証するのに十分な堅牢性を備えています。 これは、2018 年の Goerli Initiative から開始されました。

詳細:

Ropsten は、Mainnet と最もよく似た Testnet だと言われています。 これは、最初の主要 Testnet です。 Kovan、Goerli、Rinkeby は安定性があり、高い利用率を維持しています。 Mainnet にデプロイする前に、複数の Testnet にデプロイしてテストしてみてください。

Testnet および Mainnet にデプロイするためのクライアントと API

Ethereum は、複数のクライアントを提供するように設計されています。 クライアントは、さまざまなチームで開発でき、さまざまなプログラミング言語を使用できます。 この多様性により、ネットワークはより強力でより多様になります。 目標は、クライアントに支配されることなく多様性を実現することです。 この設計により、単一障害点の可能性が低減されます。

クライアント

一般的な Ethereum クライアントの一部を次に示します。

  • Geth クライアント

    Go Ethereum (Geth とも呼ばれます) は、このプロトコルの最初期の実装の 1 つです。 このクライアントには最大のユーザー ベースがあり、最もよく使用されています。 Geth では、ブロックチェーンの開発者とユーザーの両方に向けたさまざまなツールが提供されています。

    Geth クライアントは Go で記述されており、オープンソースです。 GNU Lesser General Public License (LGPL) バージョン 3 に基づいてライセンスされています。

  • OpenEthereum

    OpenEthereum クライアントは、プロトコルを使用するすべての作業に役立ちます。 カスタマイズ、成果物統合、データ ストレージ、メモリ管理などのタスクを簡素化できます。 すべての Ethereum クライアントのなかで最も軽量、高速かつ安全であることを目標としています。

    OpenEthereum は Rust プログラミング言語で記述されます。 これは、GNU General Public License (GPL) バージョン 3 に基づいてライセンスされます。

  • Nethermind

    Nethermind では、世界最速の .NET Core Ethereum クライアントと P2P データ マーケットプレースが提供されます。 これは、Ethereum ブロックチェーン ソリューションの開発者向けのコンサルティング サービスを提供します。

API

一般的な Ethereum API の一部を次に示します。

  • Infura

    Infura API スイートを使用すると、HTTPS および WebSockets を介して Ethereum および IPFS ネットワークに即時アクセスできます。 この直感的なインターフェイスを使用して、すべての testnet のエンドポイントに接続できます。 Infura では、Truffle SuiteVisual Studio Code の Blockchain Development Kit for Ethereum の両方がサポートされています。

  • MetaMask

    testnet または mainnet にデプロイするとき、MetaMask クライアントにより、Ethereum ブロックチェーンに接続してやり取りする堅牢なインターフェイスとウォレットが提供されます。

    MetaMask を使用して Testnet 上で Ether およびトークンを送信するのは簡単です。 クライアントにより、さまざまな Ethereum ネットワークを選択して使用するための簡単なインターフェイスが提供されます。 開発ネットワークとやり取りする必要がある場合、MetaMask を使用すると、localhost 8545 またはカスタム RPC への接続が簡素化され、Ganache および Truffle と接続できるようになります。 また、MetaMask には、パブリック Testnet および Mainnet への定義済みの接続が用意されています。

    Mainnet に接続する場合は、秘密キーをセキュリティで保護するように注意してください。 この接続には、実際の Ether が使用されます。