Prerequisites

Local Development

terminal
cd NextGenSoftware.OASIS.API.ONODE.WebAPI
dotnet run
# API available at http://localhost:4000
# Swagger UI at  http://localhost:4000/swagger
⚠️
Always build before running

The OASIS provider interfaces cascade across 33+ projects. Run dotnet build in the solution root before starting the ONODE to catch interface mismatches early.

OASISDNA.json

All ONODE configuration lives in OASISDNA.json alongside the WebAPI project. Key sections:

json
{
  "OASISDNA": {
    "DefaultProviderType":    "MongoDBOASIS",
    "BackupProviderTypes":    [ "SQLiteOASIS" ],
    "AutoFailoverEnabled":    true,
    "AutoReplicationEnabled": true,
    "EnableDIDAuth":          false,
    "ONodeName":              "MyONode",
    "ONodeDescription":       "Community ONODE",
    "JWTSecret":              "<32+ char secret>",
    "MongoDBConnectionString": "mongodb://localhost:27017",
    "MongoDBDatabaseName":     "OASIS"
  }
}

Joining ONET

To join the decentralised ONET network your ONODE must:

  1. Have a publicly routable IP/hostname.
  2. Enable DID auth ("EnableDIDAuth": true).
  3. Use Redis nonce store ("NonceStoreType": "Redis").
  4. Register with the ONET bootstrap node (contact the OASIS team for the current bootstrap address).
ℹ️
ONET DID auth + in-memory nonce store

Using in-memory nonce store with DID auth on ONET will cause nonce validation failures across nodes. A startup warning is logged. Switch to Redis before joining ONET.

Docker

terminal
docker build -t onode .
docker run -p 4000:4000 \
  -v $(pwd)/OASISDNA.json:/app/OASISDNA.json \
  onode