---
title: "自分でノードを運用することの長所と短所"
description: "自分でノードを運用する場合とAlchemyを使う場合の違い"
---

# 自分でノードを運用することの長所と短所

ノードを稼働させるとは、マシンに「クライアント」ソフトウェアをインストールし、ブロックチェーンネットワーク上で新しいブロックをダウンロード、検証、伝播させることを意味します。

現在、ノードクライアントソフトウェアには2種類あります。[実行クライアントとコンセンサスクライアント](https://www.alchemy.com/overviews/execution-layer-and-consensus-layer-node-clients)です。実行層クライアントはブロックチェーン全体の状態を管理しトランザクションを完了させる役割を担い、コンセンサス層クライアントはトランザクションの検証を担当します。

[ネットワーク全体にトランザクションを伝播させる](https://www.alchemy.com/overviews/transaction-propagation)ために、ノードは一連のP2Pネットワーキングプロトコルを使用して新しいノードを発見し、安全な接続を確立し、状態、ブロック、プールされたトランザクションを同期します。

## Ethereumノードとは？

Ethereumノードとは、Ethereumブロックチェーン上で稼働するノードであり、[3つの主要なタイプ](https://www.alchemy.com/overviews/full-vs-light-vs-archive-nodes)のいずれかに分類されます。ライトノード、フルノード、アーカイブノードです。

#### **1. フルノード**

フルノードクライアントは、新しい各ブロック内のすべてのトランザクションを検証し、ネットワークの安全性を確保し、トランザクションデータが有効であることを保証します。

#### **2. ライトノード**

ライトノードは、フルノードが保持するような完全なブロックデータではなく、直前のブロックのハッシュやタイムスタンプといったブロックヘッダーデータを保存します。

ライトノードはフルノードにオンデマンドでリクエストを送り、ユーザーが必要とする状態の部分のみを検証します。

#### **3. アーカイブノード**

[アーカイブノード](https://www.alchemy.com/overviews/archive-nodes)は、フルノードと同じデータに加えて、ジェネシスブロック（すなわち最初のブロック）まで遡るブロックチェーン全体の履歴状態データを保持します。

### なぜEthereum RPCノードを稼働させるのか？

Web3開発者は、ブロックチェーンへのデータの読み書きを行うために、Ethereum RPCノードを自ら稼働させることを選択する場合があります。開発者の中には、ノード構成をカスタマイズし、セキュリティを高め、RPCプロバイダーの共有ノードや専用ノードでは不可能なシステムレベルの最適化を行うために、自前のノードを稼働させることを選ぶ人もいます。

## **自分でEthereumノードを稼働させる利点とは？**

Ethereumノードを稼働させる主な利点は4つあります。プライバシーとセキュリティ、検閲耐性、分散性、そして主権です。

### **1. プライバシーとセキュリティ**

共有ノードを使用する場合、あなたのトランザクションは他社と同じハードウェアを共有することになり、これは特定の製品にとってコンプライアンス上またはセキュリティ上のリスクとなる可能性があります。

一部のチームは、完全な分離性と自律性を確保するために自前のノードを稼働させるか、専用ノードを提供するノードプロバイダーを利用することで、専用ノードを好む傾向があります。

### **2. 検閲耐性**

自前のノードを維持することで、いつでもネットワークの他の部分へのトランザクションのブロードキャストを保証できます。サードパーティのノードを使用する場合、プロバイダーが特定のIPアドレスからのトランザクションをブロックしたり、特定のスマートコントラクトアドレスへのトランザクションをブロックしたりする可能性があります。

### **3. 分散性**

自前のノードを稼働させるということは、ノードの稼働を中央集権的なインフラストラクチャプロバイダーに依存しないということです。ただし、選択するクラウドプロバイダー（例：AWS、GCPなど）や、ベアメタル構成で稼働させる場合のサーバーの所在地（例：バージニア、ドイツなど）といった、考慮すべき追加の中央集権的な要素があります。

データセンターやクラウドプロバイダーで障害が発生した場合に備え、自前のノードを管理するweb3開発者は、プロバイダーを評価し、耐障害性のある構成を構築し、事業継続計画を文書化しておくべきです。

### **4. 主権**

自前のノードを稼働させる開発者は、好みのノードソフトウェアクライアントの選択、それらのノードクライアントの構成方法、ハードウェアの量と種類、その他ハードウェア固有の判断について、完全な制御を持つことができます。

この柔軟性のレベルは、RPCノードプロバイダーがハードウェアおよびソフトウェア構成について同等のきめ細かな選択肢を提供できない特定のweb3アプリケーションのユースケースにおいて、より優れたパフォーマンスを意味する場合があります。

<ImageBlock
  src="https://media.alchemy.com/1704095403-running-node-vs-using-node-provider.jpeg"
  alt="自前でノードを稼働させる場合とノードプロバイダーを利用する場合の比較"
  width={1600}
  height={1029}
  caption="ノードを自前で稼働させることが、Alchemyのようなノードプロバイダーを利用することとどう異なるかを示す図。"
/>

## **自前でノードを稼働させることのトレードオフとは？**

RPCノードプロバイダーを利用する場合と比較して、自前でノードを稼働させることには主に3つのトレードオフがあります。それは、メンテナンスコスト、時間コスト、そして信頼性コストです。

### **1. メンテナンスコスト**

自前のフルノードを稼働させるには、トランザクション情報をダウンロード、検証、保存するための専用ハードウェア（例：RAM、ストレージなど）が必要です。製品利用レベルの変化に対応できるハードウェアを維持し、過剰な支出をすることなく顧客に対する容量と耐障害性のバランスを取ることが重要です。

ノードを稼働させるメンテナンスコストは、Amazon Web Servicesのようなプロバイダーを利用するか、ベアメタルサーバーを稼働させるか、エンジニアリングにかかる時間、そして特定のアプリケーションに必要なハードウェアと帯域幅のリソース量に大きく左右されます。

### **2. 時間コスト**

ブロックチェーンノードの稼働と維持には多くの技術的な問題が伴う可能性があり、初心者にとっては困難で時間のかかる作業となり得ます。

資金とエンジニアリングの時間が限られたweb3スタートアップにとって、自前のインフラ管理に少なからぬエンジニアリングリソースを割くことは、製品の中核機能の構築に注力できないというコストを伴います。

さらに、web3製品がスケールするにつれて、追加ユーザーを支えるための稼働時間と容量を保証する信頼性の高い自己管理ノード群を維持するために、エンジニアリングリソースもスケールさせる必要があります。

### **3. 信頼性コスト**

自前のノード稼働を検討するスタートアップは、ソフトウェアアップデートのバグ、CPUスパイク、メモリリーク、ディスクの問題、不安定なピアリング、そしてノード群全体にわたる[データの正確性](https://www.alchemy.com/blog/data-accuracy)といった、数多くの信頼性の問題に直面します。

信頼性の低いノードは、エンジニアが製品の中核機能の構築に費やせるはずの時間を奪うだけでなく、ユーザー体験にも直接的な影響を及ぼします。

ノードがダウンすると、ユーザーはあなたの製品を利用できなくなり、代替製品へのユーザーの離脱など、多くの潜在的な二次的影響が生じます。

## **AlchemyがWeb3開発者のノードインフラを支援する4つの方法**

Alchemyは、Ethereum、Polygon、Optimism、Arbitrumなどのチェーン上でトップの分散型アプリケーションを支える、業界を代表するweb3開発者プラットフォームです。

以下は、開発者が信頼性の高いノードインフラと最高クラスの開発者ツールにアクセスできるようにするために、Alchemyが構築したツール群です。

### **Alchemy Supernode**

[Alchemy Supernode](https://www.alchemy.com/docs/reference/api-overview)は、自己ホスト型のブロックチェーンノードを置き換える当社のweb3エンジンであり、開発者はノード群をあたかも単一のスーパーノードであるかのように操作できます。

**Supernodeは他に類を見ない優位性を持っています：**

- 99.9%の信頼性
- 動的なスケーラビリティ
- データの正確性
- セットアップや同期時間が不要
- Testnets
- 拡張API

<ImageBlock
  src="https://media.alchemy.com/1704123279-alchemy-supernode-architecture.jpg"
  alt="Alchemy Supernodeアーキテクチャの簡略図"
  width={1593}
  height={1600}
  caption="Alchemy Supernodeアーキテクチャの簡略図。"
/>

‍

### **Alchemy Build**

Alchemyはまた、エラーを検出しこれまで以上に速く開発を進めるための自社製開発者ツール群も提供しています。Alchemy Buildを使えば、開発者は数百万件のリクエストを瞬時に検索したり、リアルタイムのメンプールトランザクションを確認したり、ブラウザから直接JSON-RPC呼び出しを行ったりすることができます。

Alchemy Buildの開発者ツール群には以下が含まれます：

- **Composer** - シンプルなオンラインインターフェースからリアルタイムでAPI呼び出しをテスト
- **Explorer** - トランザクションのデバッグのために過去のリクエストを検索
- **Mempool Visualizer** - メンプール内のトランザクションのリアルタイムの状態を確認

<ImageBlock
  src="https://media.alchemy.com/1704123332-alchemy-build.jpg"
  alt="開発者ダッシュボードのAlchemy Build"
  width={1400}
  height={670}
  caption="開発者ダッシュボードのAlchemy Build。"
/>

### Alchemy Monitor

Alchemyは、応答時間、利用状況の分析、インサイト、アラートを日次レポートとともに瞬時に確認できる堅牢なコマンドセンターにより、アプリケーションの健全性を監視するのを支援します。これにより、常に状況を把握し続けることができます。

Alchemyの[監視ツール](https://www.alchemy.com/monitor)は、開発者に以下を提供します：

- アプリケーションの監視とアラート
- アプリレベルの詳細を示すダッシュボード
- ユーザーの所在地を把握するための地理的可視化
- アプリの利用状況を理解するための使用状況測定

### ‍**Alchemy Support**

Alchemyは専門知識を持つ実践的なサポートを提供しており、APIの状況についてユーザーに最新情報を伝えるために[Alchemy Status Page](https://status.alchemy.com/)を運用しています。

- 顧客満足度（CSAT）スコア98%
- Customer Product Engineersへのアクセス
- 業界の他の人々とのつながり

緊急のご依頼については、**support@alchemy.com** までサポートチケットをお送りください！
