> ## Documentation Index
> Fetch the complete documentation index at: https://www.helius.dev/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Solana Dedicated Nodes Setup: Vollständiger Einstiegsleitfaden

> Vollständiger Leitfaden zur Einrichtung Ihres dedizierten Solana-Knotens mit gRPC-Streaming, Yellowstone-Plugin und optimaler Konfiguration für Blockchaindaten.

## So bestellen Sie dedizierte Knoten

Dedizierte Knoten können direkt über das [Entwicklerportal](https://dashboard.helius.dev/dedicated-nodes) auf der Registerkarte "Dedicated Nodes" bestellt werden.

<Frame caption="Bestellen Sie einen dedizierten Knoten über Ihr Helius-Dashboard">
  <img src="https://mintcdn.com/helius/RGuN9Tphu9J_7kRM/images/dedicated-nodes-order.png?fit=max&auto=format&n=RGuN9Tphu9J_7kRM&q=85&s=eadf4de4e3908e93fd59aa289cab4fca" alt="Bestellen Sie einen dedizierten Knoten über Ihr Helius-Dashboard" width="1914" height="954" data-path="images/dedicated-nodes-order.png" />
</Frame>

### Knotentyp

Der gewählte Knotentyp hängt von Ihren Anforderungen ab. Da wir keine Ratenbegrenzungen auferlegen, hängt die Leistung Ihres Knotens vollständig von seinen Spezifikationen ab.

**Für gRPC-Streaming-Anwendungen** (primärer Anwendungsfall) eignet sich jeder Knotentyp gut.

<Warning>
  **Wichtig**: Während [`getProgramAccounts`](/docs/de/api-reference/rpc/http/getprogramaccounts) unterstützt wird, sind dedizierte Knoten für diese Anfragen nicht optimiert. Eine intensive Nutzung kann die Leistung des Knotens beeinträchtigen oder sogar zum Ausfall führen. Verwenden Sie Ihren gemeinsamen Plan für `getProgramAccounts`-Anfragen, da er einen benutzerdefinierten Indexer hat, der diese Anfragen viel schneller und zuverlässiger macht.
</Warning>

<Frame caption="Wählen Sie den Typ und Standort Ihres dedizierten Knotens">
  <img src="https://mintcdn.com/helius/RGuN9Tphu9J_7kRM/images/dedicated-nodes-type-and-location.png?fit=max&auto=format&n=RGuN9Tphu9J_7kRM&q=85&s=3405ddb182f616be9e50c6d7acb43299" alt="Wählen Sie den Typ und Standort Ihres dedizierten Knotens" width="2812" height="1274" data-path="images/dedicated-nodes-type-and-location.png" />
</Frame>

### Knotenstandort

Wir bieten Knoten in mehreren Regionen: in Nordamerika (Pittsburgh, Newark, Salt Lake City, Los Angeles, Vancouver); in Europa (Dublin, London, Amsterdam, Frankfurt); und in Asien (Tokio, Singapur), um die beste geografische Abdeckung mit der globalen Solana-Infrastruktur zu gewährleisten.

Wählen Sie für optimale Latenz einen Knoten, der Ihrem Server am nächsten ist. Ihr Knoten wird innerhalb von drei Stunden nach Zahlungseingang bereitgestellt.

### Knoten-Client

Sie können Ihren Knoten anpassen, indem Sie den Client-Typ auswählen – entweder Agave oder Jito Labs (Fork von Agave mit einer zusätzlichen Methode `simulateBundle`)

<Frame caption="Wählen Sie den Client-Typ Ihres dedizierten Knotens">
  <img src="https://mintcdn.com/helius/RGuN9Tphu9J_7kRM/images/dedicated-nodes-client-type.png?fit=max&auto=format&n=RGuN9Tphu9J_7kRM&q=85&s=351033efab719a4f3ce647468ccad8e6" alt="Wählen Sie den Client-Typ Ihres dedizierten Knotens" width="1468" height="484" data-path="images/dedicated-nodes-client-type.png" />
</Frame>

<Note>
  Dedizierte Knoten **können keine** Jito-Bundles eigenständig senden. Um Jito-Bundles zu senden, müssen Sie die Jito-API verwenden, die das Verpacken und Senden der Bundles über Jitos System übernimmt.
</Note>

### Geyser-Plugin (Empfohlen)

**Wir empfehlen dringend, das [Yellowstone](https://github.com/helius-labs/yellowstone-grpc) Geyser-Plugin hinzuzufügen**, das der primäre Anwendungsfall für dedizierte Knoten ist. Es bietet leistungsstarkes [gRPC-Streaming](/docs/de/grpc) von Slots, Blöcken, Transaktionen und Kontoaktualisierungen.

<Frame caption="Wählen Sie das Yellowstone gRPC Geyser-Plugin (Empfohlen)">
  <img src="https://mintcdn.com/helius/RGuN9Tphu9J_7kRM/images/dedicated-nodes-geyser-plugin.png?fit=max&auto=format&n=RGuN9Tphu9J_7kRM&q=85&s=dcc31d0cb8f15a5246818c47411f6cc6" alt="Wählen Sie das Yellowstone gRPC Geyser-Plugin (Empfohlen)" width="1450" height="492" data-path="images/dedicated-nodes-geyser-plugin.png" />
</Frame>

<Note>
  **Best Practice**: Dedizierte Knoten sind für gRPC-Streaming optimiert. Verwenden Sie Ihren gemeinsamen Plan für das Übermitteln von Transaktionen, Archivierungsanfragen und komplexe RPC-Operationen.
</Note>

### Zahlungsoptionen

Sie können per Fiat oder Krypto (USDC) bezahlen. Sobald Ihre Zahlung erfolgt ist, wird Ihr Knoten innerhalb von 3 Stunden bereitgestellt.

Beim Billing erhalten Fiat-Zahlungen einen Rabatt auf die Rechnung des nächsten Monats für die Anzahl der Tage, die für die Bereitstellung des Knotens benötigt wurden. Bei Krypto-Zahlungen beginnt der Abrechnungszyklus, sobald der Knoten geliefert wird.

### Demo

<iframe width="560" height="315" src="https://www.youtube.com/embed/KjgUzY_3dsQ?si=r3aKXpc_H6b7hnqE" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen />

## Erste Schritte

Sobald Ihr dedizierter Knoten eingerichtet und bereit ist (Status: **Succeeded**), können Sie mit der Arbeit beginnen.

## Verbindung zu Ihrem dedizierten Knoten

### gRPC-Streaming (Primärer Anwendungsfall)

**Dedizierte Knoten sind für gRPC-Streaming über das Yellowstone Geyser-Plugin optimiert.** Dies ist die primäre und empfohlene Methode zur Nutzung Ihres dedizierten Knotens.

<Info>
  **Erwägen Sie LaserStream für gRPC-Streaming**: LaserStream bietet überlegene Leistung, Zuverlässigkeit und erweiterte Funktionen wie 24-Stunden-Historienwiedergabe für gRPC-Streaming. Es wird für 99 % der Streaming-Anwendungsfälle empfohlen. [Vergleichen Sie LaserStream und dedizierte Knoten](/docs/de/laserstream/laserstream-vs-dedicated-nodes), um die beste Lösung für Ihre Bedürfnisse zu finden, oder [starten Sie mit LaserStream](https://dashboard.helius.dev/laserstream) von Ihrem Helius-Dashboard.
</Info>

### Basic RPC und Websocket (Eingeschränkte Funktionalität)

Jeder dedizierte Knoten bietet auch grundlegende RPC-Funktionalität, jedoch mit Einschränkungen. **Für Produktionsanwendungen kombinieren Sie dedizierte Knoten mit einem gemeinsamen Plan.**

Hier verwenden wir Solana web3.js, um [`getSlot`](/docs/de/api-reference/rpc/http/getslot) mit unserem dedizierten Knoten aufzurufen:

```javascript theme={"system"}
// Using @solana/web3.js
const { Connection } = require('@solana/web3.js');

const connection = new Connection('https://liveried-grazings-gxzjabdgqa-dedicated.helius-rpc.com?api-key=465964ff-f718-47d2-a51c-66ddcce332d7');

// Get the current slot
const getSlot = async () => {
    const slot = await connection.getSlot();
    console.log('Current slot:', slot);
};

getSlot();
```

So würden Sie eine native Websocket-Verbindung einrichten, um neue Slots zu streamen:

```javascript theme={"system"}
const Websocket = require('ws');
const ws = new Websocket('wss://liveried-grazings-gxzjabdgqa-dedicated.helius-rpc.com?api-key=465964ff-f718-47d2-a51c-66ddcce332d7	');

ws.onopen = () => {
    ws.send(JSON.stringify({
        jsonrpc: '2.0',
        id: 1,
        method: 'slotSubscribe'
    }));
};

ws.onmessage = (event) => {
    console.log(JSON.parse(event.data));
};
```

<Warning>
  **Denken Sie daran**: Die obigen RPC-Beispiele dienen nur zur grundlegenden Funktionalität. Einschränkungen der dedizierten Knoten:

  * [`sendTransaction`](/docs/de/api-reference/rpc/http/sendtransaction) wird unterstützt, aber nicht optimiert - die meisten Transaktionen werden nicht abgewickelt (verwenden Sie Ihren gemeinsamen Plan für zuverlässige Transaktionsübermittlung)
  * Keine Archivdatenabfragen (verwenden Sie Ihren gemeinsamen Plan)
  * [`getProgramAccounts`](/docs/de/api-reference/rpc/http/getprogramaccounts) wird unterstützt, aber nicht optimiert - intensive Nutzung kann die Leistung beeinträchtigen oder zu Knotenausfällen führen (verwenden Sie Ihren gemeinsamen Plan für Zuverlässigkeit)

  **Primärer Anwendungsfall**: Verwenden Sie das folgende gRPC-Streaming-Setup für optimale Leistung.
</Warning>

### Richten Sie Ihr Geyser-Plugin ein

Um das Geyser-Plugin zu verwenden, müssen Sie das Yellowstone-Repo klonen:

```shell theme={"system"}
git clone https://github.com/helius-labs/yellowstone-grpc.git
```

#### Verwendung der CLI

```sh theme={"system"}
cd yellowstone-grpc/examples/rust/
cargo run --bin client -- -e "https://liveried-grazings-gxzjabdgqa-dedicated-lb.helius-rpc.com:2053" --x-token 42f03938-1daa-4162-a457-bb551ecaf590 subscribe --slots
```

Nach Abschluss sollten Sie sehen, dass das Terminal neue Slots ausgibt. Vergessen Sie nicht, die URL und das Token durch Ihre eigenen zu ersetzen.

<Frame caption="Terminalausgabe neuer Slots">
  <img src="https://mintcdn.com/helius/RGuN9Tphu9J_7kRM/images/slots.png?fit=max&auto=format&n=RGuN9Tphu9J_7kRM&q=85&s=370b4cbd02fd7ff8811bd9d63ed4976c" alt="Terminal-Log-Ausgabe des Yellowstone gRPC-Clients zeigt einen Stream von Slot-Updates mit verarbeitetem, bestätigtem und finalisiertem Status" width="667" height="288" data-path="images/slots.png" />
</Frame>

### TypeScript-Beispiel

Dieses Beispiel streamt alle Raydium-Transaktionen live im JSON-Format:

```typescript theme={"system"}
import Client, { CommitmentLevel, SubscribeRequest } from "@triton-one/yellowstone-grpc";
import * as bs58 from 'bs58';

const processBuffers = (obj: any): any =>
  !obj ? obj :
  Buffer.isBuffer(obj) || obj instanceof Uint8Array ? bs58.encode(obj) :
  Array.isArray(obj) ? obj.map(processBuffers) :
  typeof obj === 'object' ? Object.fromEntries(Object.entries(obj).map(([k, v]) => [k, processBuffers(v)])) :
  obj;

const main = async () => {
  const client = new Client("grpc_url", 
    "x_token", 
    { "grpc.max_receive_message_length": 64 * 1024 * 1024 });

  const stream = await client.subscribe();
  const write = (req: SubscribeRequest) => new Promise<void>((resolve, reject) => 
    stream.write(req, (err) => err ? reject(err) : resolve()));

  stream.on("data", (data) => {
    try { console.log(JSON.stringify(processBuffers(data), null, 2)); }
    catch (e) { console.error('Error:', e); }
  });

  await write({
    slots: {},
    accounts: {},
    accountsDataSlice: [],
    transactions: {
      allRaydiumTxs: {
        accountInclude: ["675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"],
        accountExclude: [],
        accountRequired: [],
      }
    },
    blocks: {},
    blocksMeta: {},
    entry: {},
    commitment: CommitmentLevel.PROCESSED,
  });

  setInterval(() => write({
    ping: { id: 1 },
    accounts: {},
    accountsDataSlice: [],
    transactions: {},
    blocks: {},
    blocksMeta: {},
    entry: {},
    slots: {},
  }).catch(console.error), 30000);

  await new Promise<void>((resolve, reject) => {
    stream.on("error", (e) => { console.error("Stream error:", e); reject(e); stream.end(); });
    stream.on("end", resolve);
    stream.on("close", resolve);
  });
};

main().catch(console.error);
```

<Frame caption="Beispielausgabe einer partiellen Raydium-Transaktion">
  <img src="https://mintcdn.com/helius/RGuN9Tphu9J_7kRM/images/raydium-tx.png?fit=max&auto=format&n=RGuN9Tphu9J_7kRM&q=85&s=e11b512cd7851eb33be9e425eaf1a0c8" alt="JSON-Ausgabe einer Raydium-Transaktion, die über gRPC gestreamt wird, zeigt den allRaydiumTxs-Filter, die Signatur, die Konto-Keys und Anweisungen" width="1778" height="1147" data-path="images/raydium-tx.png" />
</Frame>
