Sentinel
Sentinel is a custom built reverse proxy (similar to nginx). Its role is be the front facing services that proxies requests to backend services (ie an RPC). It is also in charge of authentication/authorization as well as rate limiting services.
🚀 Starting the Sentinel Service
🛠️ Build the Sentinel Binary
Compile the Sentinel binary by running:
⚙️ Set Environment Variables
Configure the environment variables as follows:
▶️ Run Sentinel
Start the Sentinel service by executing:
API Documentation
Metadata
To retrieve the metadata of any given data provider query the following endpoint
Active Contracts
This endpoint returns a list of active contracts for this specific data provider
Claims
This endpoint returns the latest claim for a given contract Id.
The open claims endpoint is used to get a list of claims to contracts that haven't been claimed yet. Anything showing up in this endpoint is available to be claimed on chain.
Authentication
To make an authenticated request, one must first have an open contract with a given data provider. Once you have an open contract with a contract Id, add query arg do your request as such
If the contract is an open contract, no need to supply the nonce or the signature (as anyone is allow to query this paid contract)
The nonce
refers to counter that increments on each request to the data provider. If the client doesn't know the current nonce
, query the claim
(/claim/<contract_id>
) which will include both the nonce and the signature to prove its correct.
If your contract is an "open" authorization, you can just supply the contract_id
(no need to nonce
or signature
).
To create the signature, use your private key to sign the following text
The signature produce should be hex encoded into a string for transmission (sample). There is a command line tool to creating this signature in the arkeo codebase, called signhere
Last updated