Silvana Node
Silvana’s infrastructure relies on a network of nodes assigned to perform the following functions:- Coordination of proving and execution for Silvana apps;
- Ensuring Silvana OS interface availability via gPRC locally for running agents;
- Monitoring proof jobs, app operation, logs and metrics via OpenTelemetry gRPC push to New Relic.
Hardware requirements
These are the recommended performance requirements for a Silvana node.| Minimal Hardware Requirements | Optimal Hardware Requirements |
|---|---|
|
|
Installation Guide
There are two ways you can install a node: Quick Installation (recommended) and Manual Installation.Quick Installation
Install the latest version of Silvana with a single command:- Automatically detect your OS (Linux or macOS) and architecture (ARM64 or x86_64);
- Download the appropriate binary from the latest GitHub release;
- Install it to
/usr/local/bin/silvana; - Verify the installation.
- Linux ARM64 (aarch64);
- Linux x86_64 (amd64);
- macOS Apple Silicon (M1/M2/M3/M4).
Manual Installation
If you choose to install manually:- Go to the releases page.
- Download the archive suitable for your platform:
silvana-arm64-linux.tar.gzfor Linux ARM64;silvana-x86_64-linux.tar.gzfor Linux x86_64;silvana-macos-silicon.tar.gzfor macOS Apple Silicon.
- Extract and install using these commands:
- To install a specific version instead of the latest one, run this command:
- After installation, verify the version works by doing this:
Uninstall
To remove Silvana, run this command:Troubleshooting
Below are the most common issues you may encounter, along with the ways to address them.Permission Denied
If you get a permission error, make sure the binary is executable:Command Not Found
Ifsilvana is not found after installation, add /usr/local/bin to your PATH:
SSL/TLS Errors
If you encounter SSL errors during download, you can use the insecure flag (not recommended for production):Running Silvana Node
After installation, you’re ready to run the app. To start a Silvana coordinator node, run this:- Fetch configuration from the Silvana RPC server for your network (devnet by default);
- Auto-generate Sui keypair if not present (saved to
.env); - Request funds automatically from the devnet faucet (10 SUI);
- Initialize services including job searcher, Docker processor, and gRPC server;
- Launch monitoring for jobs on the blockchain.
First-Time Setup
If you’re running silvana start for the first time, follow these steps:- Enter this command:
- Specify the network you’re about to use:
- If you have existing Sui credentials, create a .env file:
- To join a specific Silvana registry (e.g., shared devnet), run this command:
- Process all jobs from your registry:
- Process jobs only from a specific app instance:
- Run as a dedicated settlement node:
- Configuration Loading: fetches and injects environment variables from RPC server.
- Sui Connection: connects to the Sui blockchain RPC endpoint.
- Balance Check: verifies sufficient SUI balance for operations.
- Gas Coin Pool: splits large coins into smaller ones for better transaction performance.
- Service Startup:
- Job Searcher: monitors blockchain for new jobs.
- Multicall Processor: batches operations for efficiency.
- Docker Buffer: manages container execution.
- Event Monitor: watches blockchain events.
- gRPC Server: provides API for agent communication.
- Periodic Tasks: ensures reconciliation, block creation, proof analysis.
Monitoring
Once running, you’ll see logs indicating job processing:Troubleshooting
The coordinator may fail to start for a number of reasons. This is what you can do in each of these situations:- Missing credentials: will auto-generate on devnet, or check your
.envfile. - Insufficient balance: run
silvana faucet sui --address 0x.... - Connection issues: verify network connectivity to RPC endpoints, gRPC TCP protocol is used for connection that requires streaming support and a continuous TCP connection.
- Docker errors: ensure Docker daemon is running.
- Registry not found: check
SILVANA_REGISTRYandSILVANA_REGISTRY_PACKAGEvalues.
Next Steps
After starting your Coordinator, do this:- Create a new project:
silvana new myproject. - Deploy an application: follow the Add Example.
- Monitor jobs: use
silvana jobs --instance <your-app-instance>. - Check balances:
silvana balance sui.
Features
This is what you have with Silvana:- gRPC server and client: gRPC, gRPC-Web;
- TiDB Serverless database: store events, query, fulltext search;
- NATS JetStream on nats and wss;
- Internal buffering in memory for batch processing;
- Protobuf definitions and reflection on endpoint and in Rust code;
- Monitoring: logs to file/console, logs/metrics via OpenTelemetry gRPC push/REST pull, Grafana/Prometheus/BetterStack support for logs and dashboards.

Performance
The table below features how Silvana performs:| Indicator | Value |
|---|---|
| Responce time for any operation, including adding event, query event, fulltext search | 100–200 |
| Events per second | 10,000 |
| Low-load RAM consumption | 200 MB |
| High-load RAM consumption (1 mln events) | 300 MB |
| CPU load | <20–30% on thousands of events per second |
Deployment
To deploy an app, follow the instructions below.- Cross-build Rust executable using Docker and upload it to S3
- Run pulumi script to:
- Create AWS Stack, including EC2 instance;
- Install certificates, NATS, Silvana RPC;
- Configure and run services.
Protobuf
Follow this workflow to use Protobuf:- Create proto definitions.
- Compile with
make regenfor Rust andbuf lint && buf generatefor TypeScript - definitions will be compiled to SQL, SQL migrations, Rust interfaces with reflection and server/client, TypeScript interfaces and client, sea-orm interfaces for TiDB.