From 87311cce7f3a4f57c62109b3be31fa711f386942 Mon Sep 17 00:00:00 2001 From: Ryo Onodera Date: Sat, 17 Oct 2020 15:35:29 +0900 Subject: [PATCH] Mention monitoring and updating for exchanges (#12953) * Mention monitoring and updating for exchanges * Fix link syntax... * Apply suggestions from code review Co-authored-by: Tyera Eulberg Co-authored-by: Trent Nelson * Apply suggestions from code review Co-authored-by: Tyera Eulberg * More review comments and word-wrapping Co-authored-by: Tyera Eulberg Co-authored-by: Trent Nelson --- docs/src/integrations/exchange.md | 43 ++++++++++++++++++-- docs/src/running-validator/validator-reqs.md | 27 ++++++++++++ 2 files changed, 66 insertions(+), 4 deletions(-) diff --git a/docs/src/integrations/exchange.md b/docs/src/integrations/exchange.md index 864f7770a1..43436bab27 100644 --- a/docs/src/integrations/exchange.md +++ b/docs/src/integrations/exchange.md @@ -7,9 +7,19 @@ exchange. ## Node Setup -We highly recommend setting up at least two of your own Solana api nodes to -give you a trusted entrypoint to the network, allow you full control over how -much data is retained, and ensure you do not miss any data if one node fails. +We highly recommend setting up at least two nodes on high-grade computers/cloud +instances, upgrading to newer versions promptly, and keeping an eye on service +operations with a bundled monitoring tool. + +This setup enables you: +- to have a trusted gateway to the Solana mainnet-beta cluster to get data and + submit withdrawal transactions +- to have full control over how much historical block data is retained +- to maintain your service availability even if one node fails + +Solana nodes demand relatively high computing power to handle our fast blocks +and high TPS. For specific requirements, please see +[hardware recommendations](../running-validator/validator-reqs.md). To run an api node: @@ -43,12 +53,37 @@ Optional parameters to consider: - `--private-rpc` prevents your RPC port from being published for use by other nodes - `--rpc-bind-address` allows you to specify a different IP address to bind the RPC port -### Automatic Restarts +### Automatic Restarts and Monitoring We recommend configuring each of your nodes to restart automatically on exit, to ensure you miss as little data as possible. Running the solana software as a systemd service is one great option. +For monitoring, we provide +[`solana-watchtower`](https://github.com/solana-labs/solana/blob/master/watchtower/README.md), +which can monitor your validator and detect with the `solana-validator` process +is unhealthy. It can directly be configured to alert you via Slack, Telegram, +Discord, or Twillio. For details, run `solana-watchtower --help`. + +```bash +solana-watchtower --validator-identity +``` + +#### New Software Release Announcements + +We release new software frequently (around 1 release / week). +Sometimes newer versions include incompatible protocol changes, which +necessitate timely software update to avoid errors in processing blocks. + +Our official release announcements for all kinds of releases (normal and +security) are communicated via a discord channel called +[`#mb-announcement`](https://discord.com/channels/428295358100013066/669406841830244375) +(`mb` stands for `mainnet-beta`). + +Like staked validators, we expect any exchange-operated validators to be updated +at your earliest convenience within a business day or two after a normal release +announcement. For security-related releases, more urgent action may be needed. + ### Ledger Continuity By default, each of your nodes will boot from a snapshot provided by one of your diff --git a/docs/src/running-validator/validator-reqs.md b/docs/src/running-validator/validator-reqs.md index fd0ce26f7c..7a456ec962 100644 --- a/docs/src/running-validator/validator-reqs.md +++ b/docs/src/running-validator/validator-reqs.md @@ -32,6 +32,33 @@ Here are our recommendations for low, medium, and high end machine specification | Accounts Drive\(s\) | None | Samsung 970 Pro 1TB | 2x Samsung 970 Pro 1TB | | | GPU | Nvidia 1660ti | Nvidia 2080 Ti | 2x Nvidia 2080 Ti | Any number of cuda-capable GPUs are supported on Linux platforms. | +## Virtual machines on Cloud Platforms + +While you can run a validator on a cloud computing platform, it may not +be cost-efficient over the long term. + +However, it may be convenient to run non-voting api nodes on VM instances for +your own internal usage. This use case includes exchanges and services built on +Solana. + +In fact, the offical mainnet-beta API nodes are currently (Oct. 2020) run on GCE +`n1-standard-32` (32 vCPUs, 120 GB memory) instances with 2048 GB SSD for +operational convenience. + +For other cloud platforms, select instance types with similar specs. + +Also note that egress internet traffic usage may turn out to be high, +especially for the case of running staked validators. + +## Docker + +Running validator for live clusters (including mainnet-beta) inside Docker is +not recommended and generally not supported. This is due to concerns of general +docker's containerzation overhead and resultant performance degradation unless +specially configured. + +We use docker only for development purpose. + ## Software - We build and run on Ubuntu 18.04. Some users have had trouble when running on Ubuntu 16.04