ONODE Setup
An ONODE is a self-contained OASIS node running the WebAPI, managing providers, and optionally joining the ONET peer-to-peer network.
Prerequisites
- .NET 8 SDK
- At least one provider dependency (e.g. MongoDB, SQLite — no extra install needed for SQLite)
- Redis (only required for multi-node ONET deployments with DID auth)
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:
- Have a publicly routable IP/hostname.
- Enable DID auth (
"EnableDIDAuth": true). - Use Redis nonce store (
"NonceStoreType": "Redis"). - 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