Introduction
Silvana Book relies on autonomous off-chain agents to perform sensitive operations such as cryptographic signing. When deployed on Google Cloud, these agents run as secure, scalable services with strict IAM boundaries and protected key storage.Google Cloud provides a secure, scalable, and production-grade runtime for Silvana Book agents. When deployed on Google Cloud, the agent runs inside Cloud Run as a managed container, with private key storage handled by Secret Manager and external access controlled through API Gateway.
- Self-hosted: Full infrastructure control, internal scaling and deployment management.
- Google Cloud: Managed runtime, automatic scaling, built-in secret storage, faster production rollout.
Quick start
Step 1. Install prerequisites
- Rust: install via
rustup(stable toolchain) - Protobuf compiler (
protoc):- Windows:
winget install Google.Protobuf(or installprotocvia Chocolatey/Scoop) - macOS:
brew install protobuf - Linux:
apt install protobuf-compiler
- Windows:
The following links are necessary for developers to access the protocol, library interface, and reference implementation:
Step 2. Generate / rebuild gRPC clients from .proto
From the repo root:
That’s it.
crates/orderbook-proto/build.rs runs protoc + tonic_prost_build and regenerates Rust types/clients into Cargo’s OUT_DIR. You do not commit generated Rust output.Step 3. Build and run the cloud agent CLI
.env (talks to your Silvana RPC endpoint):
.env, agent.toml, configuration.toml), see the root README.md.
Where things live
- Proto definitions:
proto/silvana/{ledger,orderbook,pricing,settlement,news}/v1/*.proto - Generated Rust modules + clients:
crates/orderbook-proto/src/lib.rsorderbook_proto::orderbook::*(OrderbookService)orderbook_proto::settlement::*(SettlementService)orderbook_proto::pricing::*(PricingService)orderbook_proto::ledger::*(DAppProviderService)
- Cloud agent binary:
crates/orderbook-cloud-agent(bin name:cloud-agent)
Common developer workflows
Change a message / RPC
- Edit the
.protofile underproto/silvana/.... - Rebuild the generated clients:
- Fix compile errors in crates that depend on the generated types (commonly
orderbook-agent-logicandorderbook-cloud-agent). - Run tests:
Add a new .proto file
- Put it under
proto/silvana/<service>/v1/. - If it’s a brand-new top-level service proto (not just an imported helper), you’ll typically need to add it to
crates/orderbook-proto/build.rsso it’s compiled and a descriptor set is emitted.