Skip to content

Getting Started

Prerequisites

  • .NET 10 SDK
  • Access to the private Virtufin registries (Virtufin.* NuGet packages).
  • Python 3 (for the deployment scripts -- virtufin-api, the Python gRPC gateway client, and virtufin-naming (0.14.5+), which the scripts build every topic with, need to be importable; run dotnet restore once so NameRegistry.discover finds the imported fragments in the NuGet cache).

Run the tests

dotnet build Virtufin.MarketDataWorkers.slnx
dotnet test Virtufin.MarketDataWorkers.slnx

Deploy a worker

Each worker directory (currently just BinanceOrderBook/) has its own config/config.json + scripts/*.py deployment wrappers (thin wrappers over @common/scripts/, same pattern execution-workers/strategy-workers use):

cd BinanceOrderBook
python3 scripts/build_managed.py --csproj src/Virtufin.Worker.BinanceOrderBook/Virtufin.Worker.BinanceOrderBook.csproj
python3 scripts/publish.py --worker-nupkg /tmp/worker-out/Virtufin.Worker.BinanceOrderBook.nupkg
python3 scripts/create_worker.py --api-client-host localhost --api-client-port 5002

See BinanceOrderBook for the full deploy sequence, including the per-pair HttpGetWorker + Trigger snapshot pollers it depends on.

Other lifecycle scripts (@common/scripts/list_workers.py, start_worker.py, stop_worker.py, delete_worker.py, recover_workers.py, get_worker_history.py, schedule_trigger.py) take --config <path> directly.