NeoGo node can act as an oracle service node for https and neofs protocols. It
has to have a wallet with a key belonging to one of the network's designated oracle
nodes (stored in RoleManagement
native contract).
It needs RPC service to be enabled and configured properly because RPC is used by oracle nodes to exchange signatures of the resulting transaction.
To enable oracle service, add Oracle
subsection to ApplicationConfiguration
section of your node config.
Parameters:
Enabled
: boolean value, enables/disables the service,true
for service to be enabledAllowPrivateHost
: boolean value, enables/disables private IPs (like 127.0.0.1 or 192.168.0.1) for https requests, it defaults to false and it's false on public networks, but you can enable it for private ones.AllowedContentTypes
: a list of allowed MIME types. Onlyapplication/json
is allowed by default. Can be left empty to allow everything.Nodes
: a list of oracle node RPC endpoints, it's used for oracle node communication. All oracle nodes should be specified there.NeoFS
: a subsection of its own for NeoFS configuration with two parameters:Timeout
: request timeout, like "5s"Nodes
: a list of NeoFS nodes (their gRPC interfaces) to get data from, one node is enough to operate, but they're used in round-robin fashion, so you can spread the load by specifying multiple nodes
MaxTaskTimeout
: maximum time a request can be active (retried to process), defaults to 1 hour if not specified.RefreshInterval
: retry period for requests that aren't yet processed, defaults to 3 minutes.MaxConcurrentRequests
: maximum number of requests processed in parallel, defaults to 10.RequestTimeout
: https request timeout, default is 5 seconds.ResponseTimeout
: RPC communication timeout for inter-oracle exchange, default is 4 seconds.UnlockWallet
: oracle wallet configuration:Path
: path to NEP-6 wallet.Password
: password for the account to be used by oracle node.
Oracle:
Enabled: true
AllowPrivateHost: false
MaxTaskTimeout: 432000000s
Nodes:
- http://oracle1.example.com:20332
- http://oracle2.example.com:20332
- http://oracle3.example.com:20332
- http://oracle4.example.com:20332
NeoFS:
Nodes:
- st1.storage.fs.neo.org:8080
- st2.storage.fs.neo.org:8080
- st3.storage.fs.neo.org:8080
- st4.storage.fs.neo.org:8080
UnlockWallet:
Path: "/path/to/oracle-wallet.json"
Password: "dontworryaboutthevase"
To run oracle service on your network, you need to:
- set oracle node keys in
RoleManagement
contract - configure and run an appropriate number of oracle nodes with keys specified in
RoleManagement
contract