Ocean uses these off-chain services:
- Ocean Provider is for data services. Specifically, it's a REST API serving requests for two types of data services: static urls (for downloading data) and compute services. It's run by the marketplace or the data publisher.
- Ocean Aquarius is metadata cache REST API. This helps to aid search in marketplaces.
We now describe how to use these, for each of:
- Local Services: Default
- Local Services: Non-Default
- Remote Services: Default
- Remote Services: Non-Default
When you follow local setup, you will use Barge. Barge runs its own Ganache, and also its own Provider and Aquarius. You don't need to do more.
Instead of pointing to existing services (in Barge), you can run your own. Here's how.
Open a new console, and get provider running:
docker run oceanprotocol/provider:latest
Open another new console, and get aquarius running:
docker run oceanprotocol/aquarius:latest
Here are the urls for the local services, for use in the config dict.
- Provider url:
http://127.0.0.1:8030
- Aquarius url:
http://127.0.0.1:5000
Remember, here's how the config dict is set.
from ocean_lib.example_config import get_config_dict
config = get_config_dict(<RPC_URL>) # returns a dict
# (then, here you can update the config dict as you wish)
ocean = Ocean(config)
For convenience, Ocean Protocol Foundation (OPF) runs an instance of Provider, and of Aquarius. Ocean network docs gives the urls.
When you follow remote setup, it will default to use these OPF-run Provider and Aquarius. You don't need to do more.
You can run your own Provider or Aquarius, like shown above. And then point to it from your config dict.
You can also point to a Provider or Aquarius instance run by a 3rd party. Simply point to it from your config dict.