GITBOOK-1: No subject
BIN
.gitbook/assets/hosting/azure1 (1).png
Normal file
After Width: | Height: | Size: 31 KiB |
BIN
.gitbook/assets/hosting/azure2 (1).png
Normal file
After Width: | Height: | Size: 56 KiB |
BIN
.gitbook/assets/hosting/azure3 (1).png
Normal file
After Width: | Height: | Size: 99 KiB |
BIN
.gitbook/assets/hosting/azure4 (1).png
Normal file
After Width: | Height: | Size: 51 KiB |
BIN
.gitbook/assets/hosting/azure5 (1).png
Normal file
After Width: | Height: | Size: 123 KiB |
BIN
.gitbook/assets/hosting/azure6 (1).png
Normal file
After Width: | Height: | Size: 70 KiB |
BIN
.gitbook/assets/hosting/azure7 (1).png
Normal file
After Width: | Height: | Size: 42 KiB |
BIN
.gitbook/assets/hosting/azure8 (1).png
Normal file
After Width: | Height: | Size: 104 KiB |
BIN
.gitbook/assets/hosting/azure9 (1).png
Normal file
After Width: | Height: | Size: 34 KiB |
BIN
.gitbook/assets/wallet/confirm-backup-phrase (1).png
Normal file
After Width: | Height: | Size: 221 KiB |
BIN
.gitbook/assets/wallet/confirm-backup-phrase (2).png
Normal file
After Width: | Height: | Size: 221 KiB |
BIN
.gitbook/assets/wallet/create-new-metamask-wallet (1).png
Normal file
After Width: | Height: | Size: 152 KiB |
BIN
.gitbook/assets/wallet/create-new-metamask-wallet (2).png
Normal file
After Width: | Height: | Size: 152 KiB |
BIN
.gitbook/assets/wallet/manage-tokens (1).png
Normal file
After Width: | Height: | Size: 65 KiB |
BIN
.gitbook/assets/wallet/manage-tokens (2).png
Normal file
After Width: | Height: | Size: 65 KiB |
BIN
.gitbook/assets/wallet/metamask-add-network (1).png
Normal file
After Width: | Height: | Size: 76 KiB |
BIN
.gitbook/assets/wallet/metamask-add-network (2).png
Normal file
After Width: | Height: | Size: 76 KiB |
BIN
.gitbook/assets/wallet/metamask-browser-extension (1).png
Normal file
After Width: | Height: | Size: 97 KiB |
BIN
.gitbook/assets/wallet/metamask-browser-extension (2).png
Normal file
After Width: | Height: | Size: 97 KiB |
BIN
.gitbook/assets/wallet/metamask-chrome-extension (1).png
Normal file
After Width: | Height: | Size: 86 KiB |
BIN
.gitbook/assets/wallet/metamask-chrome-extension (2).png
Normal file
After Width: | Height: | Size: 86 KiB |
BIN
.gitbook/assets/wallet/secret-backup-phrase (1).png
Normal file
After Width: | Height: | Size: 331 KiB |
BIN
.gitbook/assets/wallet/secret-backup-phrase (2).png
Normal file
After Width: | Height: | Size: 331 KiB |
35
SUMMARY.md
@ -45,14 +45,6 @@
|
|||||||
* [Get API Keys for Blockchain Access](developers/get-api-keys-for-blockchain-access.md)
|
* [Get API Keys for Blockchain Access](developers/get-api-keys-for-blockchain-access.md)
|
||||||
* [Barge](developers/barge/README.md)
|
* [Barge](developers/barge/README.md)
|
||||||
* [Local Setup](developers/barge/local-setup-ganache.md)
|
* [Local Setup](developers/barge/local-setup-ganache.md)
|
||||||
* [Subgraph](developers/subgraph/README.md)
|
|
||||||
* [Get data NFTs](developers/subgraph/list-data-nfts.md)
|
|
||||||
* [Get data NFT information](developers/subgraph/get-data-nft-information.md)
|
|
||||||
* [Get datatokens](developers/subgraph/list-datatokens.md)
|
|
||||||
* [Get datatoken information](developers/subgraph/get-datatoken-information.md)
|
|
||||||
* [Get datatoken buyers](developers/subgraph/get-datatoken-buyers.md)
|
|
||||||
* [Get fixed-rate exchanges](developers/subgraph/list-fixed-rate-exchanges.md)
|
|
||||||
* [Get veOCEAN stats](developers/subgraph/get-veocean-stats.md)
|
|
||||||
* [Ocean.js](developers/ocean.js/README.md)
|
* [Ocean.js](developers/ocean.js/README.md)
|
||||||
* [Configuration](developers/ocean.js/configuration.md)
|
* [Configuration](developers/ocean.js/configuration.md)
|
||||||
* [Creating a data NFT](developers/ocean.js/creating-datanft.md)
|
* [Creating a data NFT](developers/ocean.js/creating-datanft.md)
|
||||||
@ -74,19 +66,28 @@
|
|||||||
* [Workflow](developers/compute-to-data/compute-workflow.md)
|
* [Workflow](developers/compute-to-data/compute-workflow.md)
|
||||||
* [Writing Algorithms](developers/compute-to-data/compute-to-data-algorithms.md)
|
* [Writing Algorithms](developers/compute-to-data/compute-to-data-algorithms.md)
|
||||||
* [Compute Options](developers/compute-to-data/compute-options.md)
|
* [Compute Options](developers/compute-to-data/compute-options.md)
|
||||||
* [Aquarius](developers/aquarius/README.md)
|
|
||||||
* [Asset Requests](developers/aquarius/asset-requests.md)
|
|
||||||
* [Chain Requests](developers/aquarius/chain-requests.md)
|
|
||||||
* [Other Requests](developers/aquarius/other-requests.md)
|
|
||||||
* [Provider](developers/provider/README.md)
|
|
||||||
* [General Endpoints](developers/provider/general-endpoints.md)
|
|
||||||
* [Encryption / Decryption](developers/provider/encryption-decryption.md)
|
|
||||||
* [Compute Endpoints](developers/provider/compute-endpoints.md)
|
|
||||||
* [Authentication Endpoints](developers/provider/authentication-endpoints.md)
|
|
||||||
* [Uploader](developers/uploader/README.md)
|
* [Uploader](developers/uploader/README.md)
|
||||||
* [Uploader.js](developers/uploader/uploader-js.md)
|
* [Uploader.js](developers/uploader/uploader-js.md)
|
||||||
* [Uploader UI](developers/uploader/uploader-ui.md)
|
* [Uploader UI](developers/uploader/uploader-ui.md)
|
||||||
* [Uploader UI to Market](developers/uploader/uploader-ui-marketplace.md)
|
* [Uploader UI to Market](developers/uploader/uploader-ui-marketplace.md)
|
||||||
|
* [Old Infrastructure](developers/old-infrastructure/README.md)
|
||||||
|
* [Aquarius](developers/old-infrastructure/aquarius/README.md)
|
||||||
|
* [Asset Requests](developers/old-infrastructure/aquarius/asset-requests.md)
|
||||||
|
* [Chain Requests](developers/old-infrastructure/aquarius/chain-requests.md)
|
||||||
|
* [Other Requests](developers/old-infrastructure/aquarius/other-requests.md)
|
||||||
|
* [Provider](developers/old-infrastructure/provider/README.md)
|
||||||
|
* [General Endpoints](developers/old-infrastructure/provider/general-endpoints.md)
|
||||||
|
* [Encryption / Decryption](developers/old-infrastructure/provider/encryption-decryption.md)
|
||||||
|
* [Compute Endpoints](developers/old-infrastructure/provider/compute-endpoints.md)
|
||||||
|
* [Authentication Endpoints](developers/old-infrastructure/provider/authentication-endpoints.md)
|
||||||
|
* [Subgraph](developers/old-infrastructure/subgraph/README.md)
|
||||||
|
* [Get data NFTs](developers/old-infrastructure/subgraph/list-data-nfts.md)
|
||||||
|
* [Get data NFT information](developers/old-infrastructure/subgraph/get-data-nft-information.md)
|
||||||
|
* [Get datatokens](developers/old-infrastructure/subgraph/list-datatokens.md)
|
||||||
|
* [Get datatoken information](developers/old-infrastructure/subgraph/get-datatoken-information.md)
|
||||||
|
* [Get datatoken buyers](developers/old-infrastructure/subgraph/get-datatoken-buyers.md)
|
||||||
|
* [Get fixed-rate exchanges](developers/old-infrastructure/subgraph/list-fixed-rate-exchanges.md)
|
||||||
|
* [Get veOCEAN stats](developers/old-infrastructure/subgraph/get-veocean-stats.md)
|
||||||
* [Developer FAQ](developers/dev-faq.md)
|
* [Developer FAQ](developers/dev-faq.md)
|
||||||
* [📊 Data Scientists](data-scientists/README.md)
|
* [📊 Data Scientists](data-scientists/README.md)
|
||||||
* [Ocean.py](data-scientists/ocean.py/README.md)
|
* [Ocean.py](data-scientists/ocean.py/README.md)
|
||||||
|
@ -21,7 +21,7 @@ Example live dapps:
|
|||||||
## How do developers start using Ocean?
|
## How do developers start using Ocean?
|
||||||
|
|
||||||
* **App level:** [**Use an Ocean Template**](https://oceanprotocol.com/templates).
|
* **App level:** [**Use an Ocean Template**](https://oceanprotocol.com/templates).
|
||||||
* **Library level:** [**Use ocean.js**](ocean.js/) is a library built for the key environment of dApp developers: JavaScript. Import it & use it your frontend or NodeJS.
|
* **Library level:** [**Use ocean.js**](ocean.js) is a library built for the key environment of dApp developers: JavaScript. Import it & use it your frontend or NodeJS.
|
||||||
* **Contract level:** [**Call Ocean contracts**](contracts/) on Eth mainnet [or other chains](../discover/networks/).
|
* **Contract level:** [**Call Ocean contracts**](contracts/) on Eth mainnet [or other chains](../discover/networks/).
|
||||||
|
|
||||||
## Developer Docs Quick-links
|
## Developer Docs Quick-links
|
||||||
@ -31,11 +31,11 @@ Example live dapps:
|
|||||||
* Schemas: [Metadata](metadata.md), [identifiers/DIDs](identifiers.md), [identifier objects/DDOs](ddo-specification.md), [storage](storage.md), [fine-grained permissions](fg-permissions.md)
|
* Schemas: [Metadata](metadata.md), [identifiers/DIDs](identifiers.md), [identifier objects/DDOs](ddo-specification.md), [storage](storage.md), [fine-grained permissions](fg-permissions.md)
|
||||||
* Components:
|
* Components:
|
||||||
* [Barge](barge/) - local chain for testing
|
* [Barge](barge/) - local chain for testing
|
||||||
* [Ocean subgraph](subgraph/) - grabbing event data from the chain
|
* [Ocean subgraph](old-infrastructure/subgraph/) - grabbing event data from the chain
|
||||||
* [Ocean CLI](ocean-cli/) - command-line interface
|
* [Ocean CLI](ocean-cli/) - command-line interface
|
||||||
* [Compute-to-data](compute-to-data/) - practical privacy approach
|
* [Compute-to-data](compute-to-data/) - practical privacy approach
|
||||||
* [Aquarius](aquarius/) - metadata cache
|
* [Aquarius](old-infrastructure/aquarius/) - metadata cache
|
||||||
* [Provider](provider/) - handshaking for access control
|
* [Provider](old-infrastructure/provider/) - handshaking for access control
|
||||||
* [FAQ](dev-faq.md)
|
* [FAQ](dev-faq.md)
|
||||||
|
|
||||||
***
|
***
|
||||||
|
@ -20,18 +20,18 @@ Above the smart contracts, you'll find essential [libraries](architecture.md#lib
|
|||||||
|
|
||||||
#### Libraries
|
#### Libraries
|
||||||
|
|
||||||
These libraries include [Ocean.js](ocean.js/), a JavaScript library, and [Ocean.py](../data-scientists/ocean.py/), a Python library. They serve as powerful tools for developers, enabling integration and interaction with the protocol.
|
These libraries include [Ocean.js](ocean.js), a JavaScript library, and [Ocean.py](../data-scientists/ocean.py), a Python library. They serve as powerful tools for developers, enabling integration and interaction with the protocol.
|
||||||
|
|
||||||
1. [Ocean.js](ocean.js/): Ocean.js is a JavaScript library that serves as a powerful tool for developers looking to integrate their applications with the Ocean Protocol ecosystem. Designed to facilitate interaction with the protocol, Ocean.js provides a comprehensive set of functionalities, including data tokenization, asset management, and smart contract interaction. Ocean.js simplifies the process of implementing data access controls, building dApps, and exploring data sets within a decentralized environment.
|
1. [Ocean.js](ocean.js): Ocean.js is a JavaScript library that serves as a powerful tool for developers looking to integrate their applications with the Ocean Protocol ecosystem. Designed to facilitate interaction with the protocol, Ocean.js provides a comprehensive set of functionalities, including data tokenization, asset management, and smart contract interaction. Ocean.js simplifies the process of implementing data access controls, building dApps, and exploring data sets within a decentralized environment.
|
||||||
2. [Ocean.py](../data-scientists/ocean.py/): Ocean.py is a Python library that empowers developers to integrate their applications with the Ocean Protocol ecosystem. With its rich set of functionalities, Ocean.py provides a comprehensive toolkit for interacting with the protocol. Developers and [data scientists](../data-scientists/) can leverage Ocean.py to perform a wide range of tasks, including data tokenization, asset management, and smart contract interactions. This library serves as a bridge between Python and the decentralized world of Ocean Protocol, enabling you to harness the power of decentralized data.
|
2. [Ocean.py](../data-scientists/ocean.py): Ocean.py is a Python library that empowers developers to integrate their applications with the Ocean Protocol ecosystem. With its rich set of functionalities, Ocean.py provides a comprehensive toolkit for interacting with the protocol. Developers and [data scientists](../data-scientists/) can leverage Ocean.py to perform a wide range of tasks, including data tokenization, asset management, and smart contract interactions. This library serves as a bridge between Python and the decentralized world of Ocean Protocol, enabling you to harness the power of decentralized data.
|
||||||
|
|
||||||
#### Middleware components
|
#### Middleware components
|
||||||
|
|
||||||
Additionally, in supporting the discovery process, middleware components come into play:
|
Additionally, in supporting the discovery process, middleware components come into play:
|
||||||
|
|
||||||
1. [Aquarius](aquarius/): Aquarius acts as a metadata cache, enhancing search efficiency by caching on-chain data into Elasticsearch. By accelerating metadata retrieval, Aquarius enables faster and more efficient data discovery.
|
1. [Aquarius](old-infrastructure/aquarius/): Aquarius acts as a metadata cache, enhancing search efficiency by caching on-chain data into Elasticsearch. By accelerating metadata retrieval, Aquarius enables faster and more efficient data discovery.
|
||||||
2. [Provider](provider/): The Provider component plays a crucial role in facilitating various operations within the ecosystem. It assists in asset downloading, handles [DDO](ddo-specification.md) (Decentralized Data Object) encryption, and establishes communication with the operator-service for Compute-to-Data jobs. This ensures secure and streamlined interactions between different participants.
|
2. [Provider](old-infrastructure/provider/): The Provider component plays a crucial role in facilitating various operations within the ecosystem. It assists in asset downloading, handles [DDO](ddo-specification.md) (Decentralized Data Object) encryption, and establishes communication with the operator-service for Compute-to-Data jobs. This ensures secure and streamlined interactions between different participants.
|
||||||
3. [Subgraph](subgraph/): The Subgraph is an off-chain service that utilizes GraphQL to offer efficient access to information related to datatokens, users, and balances. By leveraging the subgraph, data retrieval becomes faster compared to an on-chain query. This enhances the overall performance and responsiveness of applications that rely on accessing this information.
|
3. [Subgraph](old-infrastructure/subgraph/): The Subgraph is an off-chain service that utilizes GraphQL to offer efficient access to information related to datatokens, users, and balances. By leveraging the subgraph, data retrieval becomes faster compared to an on-chain query. This enhances the overall performance and responsiveness of applications that rely on accessing this information.
|
||||||
|
|
||||||
#### Compute-to-Data
|
#### Compute-to-Data
|
||||||
|
|
||||||
|
@ -6,7 +6,7 @@ description: 🧑🏽💻 Local Development Environment for Ocean Protocol
|
|||||||
|
|
||||||
The Barge component of Ocean Protocol is a powerful tool designed to simplify the development process by providing Docker Compose files for running the full Ocean Protocol stack locally. It allows developers to set up and configure the various services required by Ocean Protocol for local testing and development purposes.
|
The Barge component of Ocean Protocol is a powerful tool designed to simplify the development process by providing Docker Compose files for running the full Ocean Protocol stack locally. It allows developers to set up and configure the various services required by Ocean Protocol for local testing and development purposes.
|
||||||
|
|
||||||
By using the Barge component, developers can spin up an environment that includes default versions of [Aquarius](../aquarius/README.md), [Provider](../provider/README.md), [Subgraph](../subgraph/README.md), and [Compute-to-Data](../compute-to-data/README.md). Additionally, it deploys all the [smart contracts](../contracts/README.md) from the ocean-contracts repository, ensuring a complete and functional local setup. Barge component also starts additional services like [Ganache](https://trufflesuite.com/ganache/), which is a local blockchain simulator used for smart contract development, and [Elasticsearch](https://www.elastic.co/elasticsearch/), a powerful search and analytics engine required by Aquarius for efficient indexing and querying of data sets. A full list of components and exposed ports is available in the GitHub [repository](https://github.com/oceanprotocol/barge#component-versions-and-exposed-ports).
|
By using the Barge component, developers can spin up an environment that includes default versions of [Aquarius](../old-infrastructure/aquarius/), [Provider](../old-infrastructure/provider/), [Subgraph](../old-infrastructure/subgraph/), and [Compute-to-Data](../compute-to-data/). Additionally, it deploys all the [smart contracts](../contracts/) from the ocean-contracts repository, ensuring a complete and functional local setup. Barge component also starts additional services like [Ganache](https://trufflesuite.com/ganache/), which is a local blockchain simulator used for smart contract development, and [Elasticsearch](https://www.elastic.co/elasticsearch/), a powerful search and analytics engine required by Aquarius for efficient indexing and querying of data sets. A full list of components and exposed ports is available in the GitHub [repository](https://github.com/oceanprotocol/barge#component-versions-and-exposed-ports).
|
||||||
|
|
||||||
<figure><img src="../../.gitbook/assets/components/barge.png" alt=""><figcaption><p>Load Ocean components locally by using Barge</p></figcaption></figure>
|
<figure><img src="../../.gitbook/assets/components/barge.png" alt=""><figcaption><p>Load Ocean components locally by using Barge</p></figcaption></figure>
|
||||||
|
|
||||||
@ -17,6 +17,5 @@ By utilizing the Barge component, developers gain the freedom to conduct experim
|
|||||||
{% hint style="warning" %}
|
{% hint style="warning" %}
|
||||||
⚠️ We've got an important heads-up about Barge that we want to share with you. Brace yourself, because **Barge is not for the faint-hearted**! Here's the deal: the barge works great on Linux, but we need to be honest about its limitations on macOS. And, well, it doesn't work at all on Windows. Sorry, Windows users!
|
⚠️ We've got an important heads-up about Barge that we want to share with you. Brace yourself, because **Barge is not for the faint-hearted**! Here's the deal: the barge works great on Linux, but we need to be honest about its limitations on macOS. And, well, it doesn't work at all on Windows. Sorry, Windows users!
|
||||||
|
|
||||||
To make things easier for everyone, we **strongly** recommend giving a try first on a **testnet**. Everything is configured already so it should be sufficient for your needs as well. Visit the [networks](../../discover/networks/README.md) page to have clarity on the available test networks. ⚠️
|
To make things easier for everyone, we **strongly** recommend giving a try first on a **testnet**. Everything is configured already so it should be sufficient for your needs as well. Visit the [networks](../../discover/networks/) page to have clarity on the available test networks. ⚠️
|
||||||
|
|
||||||
{% endhint %}
|
{% endhint %}
|
||||||
|
@ -32,7 +32,7 @@ Another new opportunity is using your own **ERC20** token in your dApp, where it
|
|||||||
|
|
||||||
Now this is a completely brand new opportunity to start generating [revenue](contracts/revenue.md) — running your own [provider](https://github.com/oceanprotocol/provider). We have been aware for a while now that many of you haven’t taken up the opportunity to run your own provider, and the reason seems obvious — there aren’t strong enough incentives to do so.
|
Now this is a completely brand new opportunity to start generating [revenue](contracts/revenue.md) — running your own [provider](https://github.com/oceanprotocol/provider). We have been aware for a while now that many of you haven’t taken up the opportunity to run your own provider, and the reason seems obvious — there aren’t strong enough incentives to do so.
|
||||||
|
|
||||||
For those that aren’t aware, [Ocean Provider](provider/README.md) is the proxy service that’s responsible for encrypting/ decrypting the data and streaming it to the consumer. It also validates if the user is allowed to access a particular data asset or service. It’s a crucial component in Ocean’s architecture.
|
For those that aren’t aware, [Ocean Provider](old-infrastructure/provider/) is the proxy service that’s responsible for encrypting/ decrypting the data and streaming it to the consumer. It also validates if the user is allowed to access a particular data asset or service. It’s a crucial component in Ocean’s architecture.
|
||||||
|
|
||||||
Now, as mentioned above, fees are now paid to the individual or organization running the provider whenever a user downloads a data asset. The fees for downloading an asset are set as a cost per MB. In addition, there is also a provider fee that is paid whenever a compute job is run, which is set as a price per minute.
|
Now, as mentioned above, fees are now paid to the individual or organization running the provider whenever a user downloads a data asset. The fees for downloading an asset are set as a cost per MB. In addition, there is also a provider fee that is paid whenever a compute job is run, which is set as a price per minute.
|
||||||
|
|
||||||
@ -40,8 +40,6 @@ The download and compute fees can both be set to any absolute amount and you can
|
|||||||
|
|
||||||
Additionally, provider fees are not limited to data consumption — they can also be used to charge for compute resources. So, for example, this means a provider can charge a fixed fee of 15 DAI to reserve compute resources for 1 hour. This has a huge upside for both the user and the provider host. From the user’s perspective, this means that they can now reserve a suitable amount of compute resources according to what they require. For the host of the provider, this presents another great opportunity to create an income.
|
Additionally, provider fees are not limited to data consumption — they can also be used to charge for compute resources. So, for example, this means a provider can charge a fixed fee of 15 DAI to reserve compute resources for 1 hour. This has a huge upside for both the user and the provider host. From the user’s perspective, this means that they can now reserve a suitable amount of compute resources according to what they require. For the host of the provider, this presents another great opportunity to create an income.
|
||||||
|
|
||||||
|
**Benefits to the Ocean Community** We’re always looking to give back to the Ocean community and collecting fees is an important part of that. As mentioned above, the Ocean Protocol Foundation retains the ability to implement community fees on data consumption. The tokens that we receive will either be burned or invested in the community via projects that they are building. These investments will take place either through [Data Farming](../data-farming/), [Ocean Shipyard](https://oceanprotocol.com/shipyard), or Ocean Ventures.
|
||||||
**Benefits to the Ocean Community**
|
|
||||||
We’re always looking to give back to the Ocean community and collecting fees is an important part of that. As mentioned above, the Ocean Protocol Foundation retains the ability to implement community fees on data consumption. The tokens that we receive will either be burned or invested in the community via projects that they are building. These investments will take place either through [Data Farming](../data-farming/README.md), [Ocean Shipyard](https://oceanprotocol.com/shipyard), or Ocean Ventures.
|
|
||||||
|
|
||||||
Projects that utilize OCEAN or H2O are subject to a 0.1% fee. In the case of projects that opt to use different tokens, an additional 0.1% fee will be applied. We want to support marketplaces that use other tokens but we also recognize that they don’t bring the same wider benefit to the Ocean community, so we feel this small additional fee is proportionate.
|
Projects that utilize OCEAN or H2O are subject to a 0.1% fee. In the case of projects that opt to use different tokens, an additional 0.1% fee will be applied. We want to support marketplaces that use other tokens but we also recognize that they don’t bring the same wider benefit to the Ocean community, so we feel this small additional fee is proportionate.
|
||||||
|
@ -24,7 +24,7 @@ The interaction between the Consumer and the Provider follows a specific workflo
|
|||||||
Throughout the computation process, the Consumer has the ability to check the status of the job by making a query to the Provider using the `getJobDetails(XXXX)` function, providing the job identifier (`XXXX`) as a reference.
|
Throughout the computation process, the Consumer has the ability to check the status of the job by making a query to the Provider using the `getJobDetails(XXXX)` function, providing the job identifier (`XXXX`) as a reference.
|
||||||
|
|
||||||
{% hint style="info" %}
|
{% hint style="info" %}
|
||||||
You have the option to initiate a compute job using one or more data assets. You can explore this functionality by utilizing the [ocean.py](../../data-scientists/ocean.py/) and [ocean.js](../ocean.js/) libraries.
|
You have the option to initiate a compute job using one or more data assets. You can explore this functionality by utilizing the [ocean.py](../../data-scientists/ocean.py) and [ocean.js](../ocean.js) libraries.
|
||||||
{% endhint %}
|
{% endhint %}
|
||||||
|
|
||||||
Now, let's delve into the inner workings of the Provider. Initially, it verifies whether the Consumer has sent the appropriate datatokens to gain access to the desired data. Once validated, the Provider interacts with the Operator-Service, a microservice responsible for coordinating the job execution. The Provider submits a request to the Operator-Service, which subsequently forwards the request to the Operator-Engine, the actual compute system in operation.
|
Now, let's delve into the inner workings of the Provider. Initially, it verifies whether the Consumer has sent the appropriate datatokens to gain access to the desired data. Once validated, the Provider interacts with the Operator-Service, a microservice responsible for coordinating the job execution. The Provider submits a request to the Operator-Service, which subsequently forwards the request to the Operator-Engine, the actual compute system in operation.
|
||||||
@ -46,9 +46,9 @@ Before the flow can begin, these pre-conditions must be met:
|
|||||||
|
|
||||||
### Access Control using Ocean Provider
|
### Access Control using Ocean Provider
|
||||||
|
|
||||||
Similar to the `access service`, the `compute service` within Ocean Protocol relies on the [Ocean Provider](../provider/), which is a crucial component managed by the asset Publishers. The role of the Ocean Provider is to facilitate interactions with users and handle the fundamental aspects of a Publisher's infrastructure, enabling seamless integration into the Ocean Protocol ecosystem. It serves as the primary interface for direct interaction with the infrastructure where the data is located.
|
Similar to the `access service`, the `compute service` within Ocean Protocol relies on the [Ocean Provider](../old-infrastructure/provider/), which is a crucial component managed by the asset Publishers. The role of the Ocean Provider is to facilitate interactions with users and handle the fundamental aspects of a Publisher's infrastructure, enabling seamless integration into the Ocean Protocol ecosystem. It serves as the primary interface for direct interaction with the infrastructure where the data is located.
|
||||||
|
|
||||||
The [Ocean Provider](../provider/) encompasses the necessary credentials to establish secure and authorized interactions with the underlying infrastructure. Initially, this infrastructure may be hosted in cloud providers, although it also has the flexibility to extend to on-premise environments if required. By encompassing the necessary credentials, the Ocean Provider ensures the smooth and controlled access to the infrastructure, allowing Publishers to effectively leverage the compute service within Ocean Protocol.
|
The [Ocean Provider](../old-infrastructure/provider/) encompasses the necessary credentials to establish secure and authorized interactions with the underlying infrastructure. Initially, this infrastructure may be hosted in cloud providers, although it also has the flexibility to extend to on-premise environments if required. By encompassing the necessary credentials, the Ocean Provider ensures the smooth and controlled access to the infrastructure, allowing Publishers to effectively leverage the compute service within Ocean Protocol.
|
||||||
|
|
||||||
### Operator Service
|
### Operator Service
|
||||||
|
|
||||||
|
@ -6,7 +6,7 @@ description: Empowering the Decentralised Data Economy
|
|||||||
|
|
||||||
The suite of smart contracts serve as the backbone of the decentralized data economy. These contracts facilitate secure, transparent, and efficient interactions among data providers, consumers, and ecosystem participants.
|
The suite of smart contracts serve as the backbone of the decentralized data economy. These contracts facilitate secure, transparent, and efficient interactions among data providers, consumers, and ecosystem participants.
|
||||||
|
|
||||||
The smart contracts have been deployed across multiple [networks](../../discover/networks/README.md) and are readily accessible through the GitHub [repository](https://github.com/oceanprotocol/contracts/tree/main/contracts). They introduced significant enhancements that encompass the following key **features**:
|
The smart contracts have been deployed across multiple [networks](../../discover/networks/) and are readily accessible through the GitHub [repository](https://github.com/oceanprotocol/contracts/tree/main/contracts). They introduced significant enhancements that encompass the following key **features**:
|
||||||
|
|
||||||
### [**Data NFTs**](data-nfts.md) **for Enhanced Data IP Management**
|
### [**Data NFTs**](data-nfts.md) **for Enhanced Data IP Management**
|
||||||
|
|
||||||
@ -20,16 +20,15 @@ By utilizing ERC721 tokens, Ocean **grants data creators greater flexibility and
|
|||||||
|
|
||||||
<figure><img src="../../.gitbook/assets/contracts/v4_contracts_overview.png" alt=""><figcaption><p>Ocean Protocol Smart Contracts</p></figcaption></figure>
|
<figure><img src="../../.gitbook/assets/contracts/v4_contracts_overview.png" alt=""><figcaption><p>Ocean Protocol Smart Contracts</p></figcaption></figure>
|
||||||
|
|
||||||
|
|
||||||
### [**Community monetization**](../community-monetization.md), to help the community create sustainable businesses.
|
### [**Community monetization**](../community-monetization.md), to help the community create sustainable businesses.
|
||||||
|
|
||||||
Ocean brings forth enhanced opportunities for dApp owners, creating a conducive environment for the emergence of a thriving market of **third-party Providers**.
|
Ocean brings forth enhanced opportunities for dApp owners, creating a conducive environment for the emergence of a thriving market of **third-party Providers**.
|
||||||
|
|
||||||
With Ocean, dApp owners can unlock additional benefits. Firstly, the smart contracts empower dApp owners to collect [fees](fees.md) not only during **data consumption** but also through **fixed-rate exchanges**. This expanded revenue model allows owners to derive more value from the ecosystem. Moreover, in Ocean, the dApp operator has the authority to determine the fee value, providing them with **increased control** over their pricing strategies.
|
With Ocean, dApp owners can unlock additional benefits. Firstly, the smart contracts empower dApp owners to collect [fees](fees.md) not only during **data consumption** but also through **fixed-rate exchanges**. This expanded revenue model allows owners to derive more value from the ecosystem. Moreover, in Ocean, the dApp operator has the authority to determine the fee value, providing them with **increased control** over their pricing strategies.
|
||||||
|
|
||||||
In addition to empowering dApp owners, Ocean facilitates the participation of third-party [Providers](../provider/README.md) who can offer compute services in exchange for a fee. This paves the way for the development of a diverse marketplace of Providers. This model supports both centralized trusted providers, where data publishers and consumers have established trust relationships, as well as trustless providers that leverage decentralization or other privacy-preserving mechanisms.
|
In addition to empowering dApp owners, Ocean facilitates the participation of third-party [Providers](../old-infrastructure/provider/) who can offer compute services in exchange for a fee. This paves the way for the development of a diverse marketplace of Providers. This model supports both centralized trusted providers, where data publishers and consumers have established trust relationships, as well as trustless providers that leverage decentralization or other privacy-preserving mechanisms.
|
||||||
|
|
||||||
By enabling a marketplace of [Providers](../provider/README.md), Ocean fosters competition, innovation, and choice. It creates an ecosystem where various providers can offer their compute services, catering to the diverse needs of data publishers and consumers. Whether based on trust or privacy-preserving mechanisms, this expansion in provider options enhances the overall functionality and accessibility of the Ocean Protocol ecosystem.
|
By enabling a marketplace of [Providers](../old-infrastructure/provider/), Ocean fosters competition, innovation, and choice. It creates an ecosystem where various providers can offer their compute services, catering to the diverse needs of data publishers and consumers. Whether based on trust or privacy-preserving mechanisms, this expansion in provider options enhances the overall functionality and accessibility of the Ocean Protocol ecosystem.
|
||||||
|
|
||||||
Key features of the smart contracts:
|
Key features of the smart contracts:
|
||||||
|
|
||||||
|
@ -18,21 +18,19 @@ When you publish an asset on the Ocean marketplace, there are currently no charg
|
|||||||
However, if you're building a custom marketplace, you have the flexibility to include a publishing fee by adding an extra transaction in the publish flow. Depending on your marketplace's unique use case, you, as the marketplace owner, can decide whether or not to implement this fee. We believe in giving you the freedom to tailor your marketplace to your specific needs and preferences.
|
However, if you're building a custom marketplace, you have the flexibility to include a publishing fee by adding an extra transaction in the publish flow. Depending on your marketplace's unique use case, you, as the marketplace owner, can decide whether or not to implement this fee. We believe in giving you the freedom to tailor your marketplace to your specific needs and preferences.
|
||||||
|
|
||||||
| Value in Ocean Market | Value in Other Markets |
|
| Value in Ocean Market | Value in Other Markets |
|
||||||
| :---------------------: | :------------------------------: |
|
| :-------------------: | :----------------------------: |
|
||||||
| 0% | Customizable in market config. |
|
| 0% | Customizable in market config. |
|
||||||
|
|
||||||
|
|
||||||
### Swap fee
|
### Swap fee
|
||||||
|
|
||||||
Swap fees are incurred as a transaction cost whenever someone exchanges one type of token for another within a [fixed rate exchange](./pricing-schemas.md#fixed-pricing). These exchanges can involve swapping a datatoken for a basetoken, like OCEAN or H2O, or vice versa, where basetoken is exchanged for datatoken. The specific value of the swap fee depends on the type of token being used in the exchange.
|
Swap fees are incurred as a transaction cost whenever someone exchanges one type of token for another within a [fixed rate exchange](pricing-schemas.md#fixed-pricing). These exchanges can involve swapping a datatoken for a basetoken, like OCEAN or H2O, or vice versa, where basetoken is exchanged for datatoken. The specific value of the swap fee depends on the type of token being used in the exchange.
|
||||||
|
|
||||||
The swap fee values are set at the smart contract level and can only be modified by the Ocean Protocol Foundation (OPF).
|
The swap fee values are set at the smart contract level and can only be modified by the Ocean Protocol Foundation (OPF).
|
||||||
|
|
||||||
| Value for OCCEAN or H2O | Value for other ERC20 tokens |
|
| Value for OCCEAN or H2O | Value for other ERC20 tokens |
|
||||||
| :-----------------------: | :-----------------------------: |
|
| :---------------------: | :--------------------------: |
|
||||||
| 0.1% | 0.2% |
|
| 0.1% | 0.2% |
|
||||||
|
|
||||||
|
|
||||||
### Consume(aka. Order) fee
|
### Consume(aka. Order) fee
|
||||||
|
|
||||||
When a user exchanges a [datatoken](datatokens.md) for the privilege of downloading an asset or initiating a compute job that utilizes the asset, consume fees come into play. These fees are associated with accessing an asset and include:
|
When a user exchanges a [datatoken](datatokens.md) for the privilege of downloading an asset or initiating a compute job that utilizes the asset, consume fees come into play. These fees are associated with accessing an asset and include:
|
||||||
@ -45,7 +43,7 @@ When a user exchanges a [datatoken](datatokens.md) for the privilege of download
|
|||||||
2. **Consume Market** Consumption Fee
|
2. **Consume Market** Consumption Fee
|
||||||
* A market can specify what fee it wants on the order function.
|
* A market can specify what fee it wants on the order function.
|
||||||
3. **Provider** Consumption Fees
|
3. **Provider** Consumption Fees
|
||||||
* Defined by the [Provider](../provider/README.md) for any consumption.
|
* Defined by the [Provider](../old-infrastructure/provider/) for any consumption.
|
||||||
* Expressed in: Address, Token, Amount (absolute), Timeout.
|
* Expressed in: Address, Token, Amount (absolute), Timeout.
|
||||||
* You can retrieve them when calling the initialize endpoint.
|
* You can retrieve them when calling the initialize endpoint.
|
||||||
* Eg: A provider can charge a fixed fee of 10 USDT per consume, irrespective of the pricing schema used (e.g., fixed rate with ETH, BTC, dispenser).
|
* Eg: A provider can charge a fixed fee of 10 USDT per consume, irrespective of the pricing schema used (e.g., fixed rate with ETH, BTC, dispenser).
|
||||||
@ -93,24 +91,24 @@ Each of these fees plays a role in ensuring fair compensation and supporting the
|
|||||||
|
|
||||||
### Provider fee
|
### Provider fee
|
||||||
|
|
||||||
[Providers](../provider/README.md) facilitate data consumption, initiate compute jobs, encrypt and decrypt DDOs, and verify user access to specific data assets or services.
|
[Providers](../old-infrastructure/provider/) facilitate data consumption, initiate compute jobs, encrypt and decrypt DDOs, and verify user access to specific data assets or services.
|
||||||
|
|
||||||
Provider fees serve as [compensation](../community-monetization.md#3.-running-your-own-provider) to the individuals or organizations operating their own provider instances when users request assets.
|
Provider fees serve as [compensation](../community-monetization.md#3.-running-your-own-provider) to the individuals or organizations operating their own provider instances when users request assets.
|
||||||
|
|
||||||
* Defined by the [Provider](../provider/README.md) for any consumption.
|
* Defined by the [Provider](../old-infrastructure/provider/) for any consumption.
|
||||||
* Expressed in: Address, Token, Amount (absolute), Timeout.
|
* Expressed in: Address, Token, Amount (absolute), Timeout.
|
||||||
* You can retrieve them when calling the initialize endpoint.
|
* You can retrieve them when calling the initialize endpoint.
|
||||||
* These fees can be set as a **fixed amount** rather than a percentage.
|
* These fees can be set as a **fixed amount** rather than a percentage.
|
||||||
* Providers have the flexibility to specify the token in which the fees must be paid, which can differ from the token used in the consuming market.
|
* Providers have the flexibility to specify the token in which the fees must be paid, which can differ from the token used in the consuming market.
|
||||||
* Provider fees can be utilized to charge for [computing](../compute-to-data/README.md) resources. Consumers can select the desired payment amount based on the compute resources required to execute an algorithm within the [Compute-to-Data](../compute-to-data/README.md) environment, aligning with their specific needs.
|
* Provider fees can be utilized to charge for [computing](../compute-to-data/) resources. Consumers can select the desired payment amount based on the compute resources required to execute an algorithm within the [Compute-to-Data](../compute-to-data/) environment, aligning with their specific needs.
|
||||||
* Eg: A provider can charge a fixed fee of 10 USDT per consume, irrespective of the pricing schema used (e.g., fixed rate with ETH, BTC, dispenser).
|
* Eg: A provider can charge a fixed fee of 10 USDT per consume, irrespective of the pricing schema used (e.g., fixed rate with ETH, BTC, dispenser).
|
||||||
* Eg: A provider may impose a fixed fee of 15 DAI to reserve compute resources for 1 hour, enabling the initiation of compute jobs.
|
* Eg: A provider may impose a fixed fee of 15 DAI to reserve compute resources for 1 hour, enabling the initiation of compute jobs.
|
||||||
|
|
||||||
These fees play a crucial role in incentivizing individuals and organizations to operate provider instances and charge consumers based on their resource usage. By doing so, they contribute to the growth and sustainability of the Ocean Protocol ecosystem.
|
These fees play a crucial role in incentivizing individuals and organizations to operate provider instances and charge consumers based on their resource usage. By doing so, they contribute to the growth and sustainability of the Ocean Protocol ecosystem.
|
||||||
|
|
||||||
| Type | OPF Provider | 3rd party Provider |
|
| Type | OPF Provider | 3rd party Provider |
|
||||||
| ---------------------------------------------------------------------------- | :--------------------: | --------------------------------------------------------------------- |
|
| ---------------------------------------------------------------------------- | :--------------------: | -------------------------------------------------------------------- |
|
||||||
| Token to charge the fee: `PROVIDER_FEE_TOKEN` | OCEAN | <p>Customizable by the Provider Owner. <br>E.g. <code>USDC</code></p> |
|
| Token to charge the fee: `PROVIDER_FEE_TOKEN` | OCEAN | <p>Customizable by the Provider Owner.<br>E.g. <code>USDC</code></p> |
|
||||||
| Download: `COST_PER_MB` | 0 | Customizable in the Provider `envvars`. |
|
| Download: `COST_PER_MB` | 0 | Customizable in the Provider `envvars`. |
|
||||||
| <p>Compute: <code>COST_PER_MIN</code><br>Environment: 1 CPU, 60 secs max</p> | 0 | Customizable in the OperatorEngine `envvars`. |
|
| <p>Compute: <code>COST_PER_MIN</code><br>Environment: 1 CPU, 60 secs max</p> | 0 | Customizable in the OperatorEngine `envvars`. |
|
||||||
| <p>Compute: <code>COST_PER_MIN</code><br>Environment: 1 CPU, 1 hour max</p> | 1.0 OCEAN/min | Customizable in the OperatorEngine `envvars`. |
|
| <p>Compute: <code>COST_PER_MIN</code><br>Environment: 1 CPU, 1 hour max</p> | 1.0 OCEAN/min | Customizable in the OperatorEngine `envvars`. |
|
||||||
|
@ -40,11 +40,11 @@ An _asset_ in Ocean represents a downloadable file, compute service, or similar.
|
|||||||
|
|
||||||
An _asset_ has a DID and DDO. The DDO should include metadata about the asset, and define access in at least one [service](ddo-specification.md#services). Only _owners_ or _delegated users_ can modify the DDO.
|
An _asset_ has a DID and DDO. The DDO should include metadata about the asset, and define access in at least one [service](ddo-specification.md#services). Only _owners_ or _delegated users_ can modify the DDO.
|
||||||
|
|
||||||
All DDOs are stored on-chain in encrypted form to be fully GDPR-compatible. A metadata cache like [_Aquarius_](aquarius/README.md) can help in reading, decrypting, and searching through encrypted DDO data from the chain. Because the file URLs are encrypted on top of the full DDO encryption, returning unencrypted DDOs e.g. via an API is safe to do as the file URLs will still stay encrypted.
|
All DDOs are stored on-chain in encrypted form to be fully GDPR-compatible. A metadata cache like [_Aquarius_](old-infrastructure/aquarius/) can help in reading, decrypting, and searching through encrypted DDO data from the chain. Because the file URLs are encrypted on top of the full DDO encryption, returning unencrypted DDOs e.g. via an API is safe to do as the file URLs will still stay encrypted.
|
||||||
|
|
||||||
#### Publishing & Retrieving DDOs
|
#### Publishing & Retrieving DDOs
|
||||||
|
|
||||||
The DDO is stored on-chain as part of the NFT contract and stored in encrypted form using the private key of the [_Provider_](provider/README.md). To resolve it, a metadata cache like [_Aquarius_](aquarius/README.md) must query the [Provider](provider/README.md) to decrypt the DDO.
|
The DDO is stored on-chain as part of the NFT contract and stored in encrypted form using the private key of the [_Provider_](old-infrastructure/provider/). To resolve it, a metadata cache like [_Aquarius_](old-infrastructure/aquarius/) must query the [Provider](old-infrastructure/provider/) to decrypt the DDO.
|
||||||
|
|
||||||
Here is the flow:
|
Here is the flow:
|
||||||
|
|
||||||
@ -56,7 +56,7 @@ To set up the metadata for an asset, you'll need to call the [**setMetaData**](h
|
|||||||
* **\_metaDataDecryptorUrl** - You create the DDO and then the Provider encrypts it with its private key. Only that Provider can decrypt it.
|
* **\_metaDataDecryptorUrl** - You create the DDO and then the Provider encrypts it with its private key. Only that Provider can decrypt it.
|
||||||
* **\_metaDataDecryptorAddress** - The decryptor address.
|
* **\_metaDataDecryptorAddress** - The decryptor address.
|
||||||
* **flags** - Additional information to represent the state of the data. One of two values: 0 - plain text, 1 - compressed, 2 - encrypted. Used by Aquarius.
|
* **flags** - Additional information to represent the state of the data. One of two values: 0 - plain text, 1 - compressed, 2 - encrypted. Used by Aquarius.
|
||||||
* **data -** The [DDO](ddo-specification.md) of the asset. You create the DDO as a JSON, send it to the [Provider](provider/README.md) that encrypts it, and then you set it up at the contract level.
|
* **data -** The [DDO](ddo-specification.md) of the asset. You create the DDO as a JSON, send it to the [Provider](old-infrastructure/provider/) that encrypts it, and then you set it up at the contract level.
|
||||||
* **\_metaDataHash** - Hash of the clear data **generated before the encryption.** It is used by Provider to check the validity of the data after decryption.
|
* **\_metaDataHash** - Hash of the clear data **generated before the encryption.** It is used by Provider to check the validity of the data after decryption.
|
||||||
* **\_metadataProofs** - Array with signatures of entities who validated data (before the encryption). Pass an empty array if you don't have any.
|
* **\_metadataProofs** - Array with signatures of entities who validated data (before the encryption). Pass an empty array if you don't have any.
|
||||||
|
|
||||||
|
7
developers/old-infrastructure/README.md
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
# Old Infrastructure
|
||||||
|
|
||||||
|
Ocean Protocol is now using Ocean Node for all backend infrastructure. Previously we used these three components: 
|
||||||
|
|
||||||
|
* [Aquarius](aquarius/)
|
||||||
|
* [Provider](provider/)
|
||||||
|
* [Subgraph](subgraph/)
|
@ -8,7 +8,7 @@ The core job of Aquarius is to continually look out for new metadata being creat
|
|||||||
|
|
||||||
Aquarius has its own interface (API) that allows you to easily query this metadata. With Aquarius, you don't need to do the time-consuming task of scanning the data chains yourself. It offers you a convenient shortcut to the information you need. It's ideal for when you need a search feature within your dApp.
|
Aquarius has its own interface (API) that allows you to easily query this metadata. With Aquarius, you don't need to do the time-consuming task of scanning the data chains yourself. It offers you a convenient shortcut to the information you need. It's ideal for when you need a search feature within your dApp.
|
||||||
|
|
||||||
<figure><img src="../../.gitbook/assets/components/aquarius.png" alt=""><figcaption><p>Aquarius high level overview</p></figcaption></figure>
|
<figure><img src="../../../.gitbook/assets/components/aquarius.png" alt=""><figcaption><p>Aquarius high level overview</p></figcaption></figure>
|
||||||
|
|
||||||
### What does Aquarius do?
|
### What does Aquarius do?
|
||||||
|
|
@ -26,7 +26,7 @@ Additionally, the Provider service offers compute services by establishing a con
|
|||||||
* Provides compute services (connects to C2D environment)
|
* Provides compute services (connects to C2D environment)
|
||||||
* Typically run by the Data owner
|
* Typically run by the Data owner
|
||||||
|
|
||||||
<figure><img src="../../.gitbook/assets/components/provider.png" alt=""><figcaption><p>Ocean Provider - publish & consume</p></figcaption></figure>
|
<figure><img src="../../../.gitbook/assets/components/provider.png" alt=""><figcaption><p>Ocean Provider - publish & consume</p></figcaption></figure>
|
||||||
|
|
||||||
In the publishing process, the provider plays a crucial role by encrypting the DDO using its private key. Then, the encrypted DDO is stored on the blockchain.
|
In the publishing process, the provider plays a crucial role by encrypting the DDO using its private key. Then, the encrypted DDO is stored on the blockchain.
|
||||||
|
|
||||||
@ -46,4 +46,4 @@ We recommend checking the README in the Provider [GitHub repository](https://git
|
|||||||
|
|
||||||
The following pages in this section specify the endpoints for Ocean Provider that have been implemented by the core developers.
|
The following pages in this section specify the endpoints for Ocean Provider that have been implemented by the core developers.
|
||||||
|
|
||||||
For inspecting the errors received from `Provider` and their reasons, please revise this [document](https://github.com/oceanprotocol/provider/blob/main/ocean_provider/routes/README.md).
|
For inspecting the errors received from `Provider` and their reasons, please revise this [document](https://github.com/oceanprotocol/provider/blob/main/ocean\_provider/routes/README.md).
|
@ -12,27 +12,27 @@ The [Ocean Subgraph](https://github.com/oceanprotocol/ocean-subgraph) is built o
|
|||||||
|
|
||||||
Imagine this 💭: if you were to always fetch data from the on-chain, you'd start to feel a little...old :older\_woman: Like your queries are stuck in a time warp. But fear not! When you embrace the power of the subgraph, data becomes your elixir of youth.
|
Imagine this 💭: if you were to always fetch data from the on-chain, you'd start to feel a little...old :older\_woman: Like your queries are stuck in a time warp. But fear not! When you embrace the power of the subgraph, data becomes your elixir of youth.
|
||||||
|
|
||||||
<figure><img src="../../.gitbook/assets/components/subgraph.png" alt=""><figcaption><p>Ocean Subgraph </p></figcaption></figure>
|
<figure><img src="../../../.gitbook/assets/components/subgraph.png" alt=""><figcaption><p>Ocean Subgraph</p></figcaption></figure>
|
||||||
|
|
||||||
The subgraph reads data from the blockchain, extracting relevant information. Additionally, it indexes events emitted from the Ocean smart contracts. This collected data is then made accessible to any decentralized applications (dApps) that require it, through GraphQL queries. The subgraph organizes and presents the data in a JSON format, facilitating efficient and structured access for dApps.
|
The subgraph reads data from the blockchain, extracting relevant information. Additionally, it indexes events emitted from the Ocean smart contracts. This collected data is then made accessible to any decentralized applications (dApps) that require it, through GraphQL queries. The subgraph organizes and presents the data in a JSON format, facilitating efficient and structured access for dApps.
|
||||||
|
|
||||||
### How to use the Subgraph?
|
### How to use the Subgraph?
|
||||||
|
|
||||||
You can utilize the Subgraph instances provided by Ocean Protocol or deploy your instance. Deploying your own instance allows you to have more control and customization options for your specific use case. To learn how to host your own Ocean Subgraph instance, refer to the guide available on the [Deploying Ocean Subgraph](../../infrastructure/deploying-ocean-subgraph.md) page.
|
You can utilize the Subgraph instances provided by Ocean Protocol or deploy your instance. Deploying your own instance allows you to have more control and customization options for your specific use case. To learn how to host your own Ocean Subgraph instance, refer to the guide available on the [Deploying Ocean Subgraph](../../../infrastructure/deploying-ocean-subgraph.md) page.
|
||||||
|
|
||||||
If you're eager to use the Ocean Subgraph, here's some important information for you: We've deployed an Ocean Subgraph for each of the supported networks. Take a look at the table below, where you'll find handy links to both the subgraph instance and GraphiQL for each network. With the user-friendly GraphiQL interface, you can execute GraphQL queries directly, without any additional setup. It's a breeze! :ocean:
|
If you're eager to use the Ocean Subgraph, here's some important information for you: We've deployed an Ocean Subgraph for each of the supported networks. Take a look at the table below, where you'll find handy links to both the subgraph instance and GraphiQL for each network. With the user-friendly GraphiQL interface, you can execute GraphQL queries directly, without any additional setup. It's a breeze! :ocean:
|
||||||
|
|
||||||
{% hint style="info" %}
|
{% hint style="info" %}
|
||||||
When it comes to fetching valuable information about [Data NFTs](../contracts/data-nfts.md) and [datatokens](../contracts/datatokens.md), the subgraph queries play a crucial role. They retrieve numerous details and information, but, the Subgraph cannot decrypt the DDO. But worry not, we have a dedicated component for that—[Aquarius](../aquarius/)! 🐬 Aquarius communicates with the provider and decrypts the encrypted information, making it readily available for queries.
|
When it comes to fetching valuable information about [Data NFTs](../../contracts/data-nfts.md) and [datatokens](../../contracts/datatokens.md), the subgraph queries play a crucial role. They retrieve numerous details and information, but, the Subgraph cannot decrypt the DDO. But worry not, we have a dedicated component for that—[Aquarius](../aquarius/)! 🐬 Aquarius communicates with the provider and decrypts the encrypted information, making it readily available for queries.
|
||||||
{% endhint %}
|
{% endhint %}
|
||||||
|
|
||||||
### Ocean Subgraph deployments
|
### Ocean Subgraph deployments
|
||||||
|
|
||||||
| Network | Subgraph URL | GraphiQL URL |
|
| Network | Subgraph URL | GraphiQL URL |
|
||||||
| ------------------- | ----------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- |
|
| -------------------- | ---------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- |
|
||||||
| Ethereum | [Subgraph](https://v4.subgraph.mainnet.oceanprotocol.com) | [GraphiQL](https://v4.subgraph.mainnet.oceanprotocol.com/subgraphs/name/oceanprotocol/ocean-subgraph/graphql) |
|
| Ethereum | [Subgraph](https://v4.subgraph.mainnet.oceanprotocol.com) | [GraphiQL](https://v4.subgraph.mainnet.oceanprotocol.com/subgraphs/name/oceanprotocol/ocean-subgraph/graphql) |
|
||||||
| Polygon | [Subgraph](https://v4.subgraph.polygon.oceanprotocol.com/) | [GraphiQL](https://v4.subgraph.polygon.oceanprotocol.com/subgraphs/name/oceanprotocol/ocean-subgraph/graphql) |
|
| Polygon | [Subgraph](https://v4.subgraph.polygon.oceanprotocol.com/) | [GraphiQL](https://v4.subgraph.polygon.oceanprotocol.com/subgraphs/name/oceanprotocol/ocean-subgraph/graphql) |
|
||||||
| OP Mainnet(Optimism)| [Subgraph](https://v4.subgraph.optimism.oceanprotocol.com) | [GraphiQL](https://v4.subgraph.optimism.oceanprotocol.com/subgraphs/name/oceanprotocol/ocean-subgraph/graphql) |
|
| OP Mainnet(Optimism) | [Subgraph](https://v4.subgraph.optimism.oceanprotocol.com) | [GraphiQL](https://v4.subgraph.optimism.oceanprotocol.com/subgraphs/name/oceanprotocol/ocean-subgraph/graphql) |
|
||||||
| Sepolia | [Subgraph](https://v4.subgraph.sepolia.oceanprotocol.com) | [GraphiQL](https://v4.subgraph.sepolia.oceanprotocol.com/subgraphs/name/oceanprotocol/ocean-subgraph/graphql) |
|
| Sepolia | [Subgraph](https://v4.subgraph.sepolia.oceanprotocol.com) | [GraphiQL](https://v4.subgraph.sepolia.oceanprotocol.com/subgraphs/name/oceanprotocol/ocean-subgraph/graphql) |
|
||||||
|
|
||||||
{% hint style="warning" %}
|
{% hint style="warning" %}
|
@ -4,7 +4,7 @@ description: 'Discover the World of veOCEAN: Retrieving a Stats'
|
|||||||
|
|
||||||
# Get veOCEAN stats
|
# Get veOCEAN stats
|
||||||
|
|
||||||
If you are already familiarized with veOCEAN, you're off to a great start. However, if you need a refresher, we recommend visiting the [veOCEAN](../../data-farming/passivedf.md) page for a quick overview :mag:
|
If you are already familiarized with veOCEAN, you're off to a great start. However, if you need a refresher, we recommend visiting the [veOCEAN](../../../data-farming/passivedf.md) page for a quick overview :mag:
|
||||||
|
|
||||||
On this page, you'll find a few examples to fetch the stats of veOCEANS from the Ocean Subgraph. These examples serve as a valuable starting point to help you retrieve essential information about veOCEAN. However, if you're eager to delve deeper into the topic, we invite you to visit the [GitHub](https://github.com/oceanprotocol/ocean-subgraph/blob/main/test/integration/VeOcean.test.ts) repository. There, you'll discover a wealth of additional examples, which provide comprehensive insights. Feel free to explore and expand your knowledge! :books:
|
On this page, you'll find a few examples to fetch the stats of veOCEANS from the Ocean Subgraph. These examples serve as a valuable starting point to help you retrieve essential information about veOCEAN. However, if you're eager to delve deeper into the topic, we invite you to visit the [GitHub](https://github.com/oceanprotocol/ocean-subgraph/blob/main/test/integration/VeOcean.test.ts) repository. There, you'll discover a wealth of additional examples, which provide comprehensive insights. Feel free to explore and expand your knowledge! :books:
|
||||||
|
|
||||||
@ -722,4 +722,3 @@ query {
|
|||||||
{% endcode %}
|
{% endcode %}
|
||||||
|
|
||||||
</details>
|
</details>
|
||||||
|
|
@ -4,7 +4,7 @@ description: 'Discover the World of NFTs: Retrieving a List of Data NFTs'
|
|||||||
|
|
||||||
# Get data NFTs
|
# Get data NFTs
|
||||||
|
|
||||||
If you are already familiarized with the concept of NFTs, you're off to a great start. However, if you require a refresher, we recommend visiting the [data NFTs and datatokens page](../contracts/datanft-and-datatoken.md) for a quick overview.
|
If you are already familiarized with the concept of NFTs, you're off to a great start. However, if you require a refresher, we recommend visiting the [data NFTs and datatokens page](../../contracts/datanft-and-datatoken.md) for a quick overview.
|
||||||
|
|
||||||
Now, let us delve into the realm of utilizing the subgraph to extract a list of data NFTs that have been published using the Ocean contracts. By employing GraphQL queries, we can seamlessly retrieve the desired information from the subgraph. You'll see how simple it is :sunglasses:
|
Now, let us delve into the realm of utilizing the subgraph to extract a list of data NFTs that have been published using the Ocean contracts. By employing GraphQL queries, we can seamlessly retrieve the desired information from the subgraph. You'll see how simple it is :sunglasses:
|
||||||
|
|
||||||
@ -16,7 +16,7 @@ There are several options available to see this query in action. Below, you will
|
|||||||
2. Execute the query in Python by following the code snippet.
|
2. Execute the query in Python by following the code snippet.
|
||||||
3. Execute the query in JavaScript by clicking on the "Run" button of the Javascript tab.
|
3. Execute the query in JavaScript by clicking on the "Run" button of the Javascript tab.
|
||||||
|
|
||||||
_PS: In these examples, the query is executed on the Ocean subgraph deployed on the mainnet. If you want to change the network, please refer to_ [_this table_](README.md#ocean-subgraph-deployments)_._
|
_PS: In these examples, the query is executed on the Ocean subgraph deployed on the mainnet. If you want to change the network, please refer to_ [_this table_](./#ocean-subgraph-deployments)_._
|
||||||
|
|
||||||
{% tabs %}
|
{% tabs %}
|
||||||
{% tab title="Javascript" %}
|
{% tab title="Javascript" %}
|
@ -4,11 +4,9 @@ description: 'Discover the World of NFTs: Retrieving a List of Fixed-rate exchan
|
|||||||
|
|
||||||
# Get fixed-rate exchanges
|
# Get fixed-rate exchanges
|
||||||
|
|
||||||
Having gained knowledge about fetching lists of data NFTs and datatokens and extracting specific information about each, let's now explore the process of retrieving the information of fixed-rate exchanges. A fixed-rate exchange refers to a mechanism where data assets can be traded at a predetermined rate or price. These exchanges offer stability and predictability in data transactions, enabling users to securely and reliably exchange data assets based on fixed rates. If you need a refresher on fixed-rate exchanges, visit the [asset pricing](../contracts/pricing-schemas.md#fixed-pricing) page.
|
Having gained knowledge about fetching lists of data NFTs and datatokens and extracting specific information about each, let's now explore the process of retrieving the information of fixed-rate exchanges. A fixed-rate exchange refers to a mechanism where data assets can be traded at a predetermined rate or price. These exchanges offer stability and predictability in data transactions, enabling users to securely and reliably exchange data assets based on fixed rates. If you need a refresher on fixed-rate exchanges, visit the [asset pricing](../../contracts/pricing-schemas.md#fixed-pricing) page.
|
||||||
|
|
||||||
|
_PS: In this example, the query is executed on the Ocean subgraph deployed on the mainnet. If you want to change the network, please refer to_ [_this table_](./#ocean-subgraph-deployments)_._
|
||||||
|
|
||||||
_PS: In this example, the query is executed on the Ocean subgraph deployed on the mainnet. If you want to change the network, please refer to_ [_this table_](README.md#ocean-subgraph-deployments)_._
|
|
||||||
|
|
||||||
{% tabs %}
|
{% tabs %}
|
||||||
{% tab title="Javascript" %}
|
{% tab title="Javascript" %}
|
@ -154,7 +154,7 @@ Example:
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
To get information about the files after encryption, the `/fileinfo` endpoint of the [_Provider_](provider/README.md) returns based on a passed DID an array of file metadata (based on the file type):
|
To get information about the files after encryption, the `/fileinfo` endpoint of the [_Provider_](old-infrastructure/provider/) returns based on a passed DID an array of file metadata (based on the file type):
|
||||||
|
|
||||||
```json
|
```json
|
||||||
[
|
[
|
||||||
|
@ -8,7 +8,7 @@ coverY: 0
|
|||||||
|
|
||||||
There are many ways in which the components can be deployed, from simple configurations used for development and testing to complex configurations, used for production systems.
|
There are many ways in which the components can be deployed, from simple configurations used for development and testing to complex configurations, used for production systems.
|
||||||
|
|
||||||
All the Ocean Protocol components ([Provider](../developers/provider/README.md), [Aquarius](../developers/aquarius/README.md), [Subgraph](../developers/subgraph/README.md)) are designed to run in Docker containers, on a Linux operating system. For simple configurations, we rely on Docker Engine and Docker Compose products to deploy and run the components, while for complex configurations we use Kubernetes. The guides included in this section will present both deployment options.
|
All the Ocean Protocol components ([Provider](../developers/old-infrastructure/provider/), [Aquarius](../developers/old-infrastructure/aquarius/), [Subgraph](../developers/old-infrastructure/subgraph/)) are designed to run in Docker containers, on a Linux operating system. For simple configurations, we rely on Docker Engine and Docker Compose products to deploy and run the components, while for complex configurations we use Kubernetes. The guides included in this section will present both deployment options.
|
||||||
|
|
||||||
Please note that deploying the Ocean components requires a good understanding of:
|
Please note that deploying the Ocean components requires a good understanding of:
|
||||||
|
|
||||||
|
@ -27,5 +27,5 @@ When you publish your asset as an NFT, then the URL/TX ID/CID required to access
|
|||||||
We recommend implementing a security policy that allows **only the Provider's IP address to access the file** and blocks requests from other unauthorized actors is recommended. Since not all hosting services provide this feature, **you must carefully consider the security features while choosing a hosting service.**
|
We recommend implementing a security policy that allows **only the Provider's IP address to access the file** and blocks requests from other unauthorized actors is recommended. Since not all hosting services provide this feature, **you must carefully consider the security features while choosing a hosting service.**
|
||||||
|
|
||||||
{% hint style="warning" %}
|
{% hint style="warning" %}
|
||||||
**Please use a proper hosting solution to keep your files.** Systems like `Google Drive` are not specifically designed for this use case. They include various virus checks and rate limiters that prevent the [`Provider`](../../developers/provider/README.md)downloading the asset once it was purchased.
|
**Please use a proper hosting solution to keep your files.** Systems like `Google Drive` are not specifically designed for this use case. They include various virus checks and rate limiters that prevent the [`Provider`](../../developers/old-infrastructure/provider/)downloading the asset once it was purchased.
|
||||||
{% endhint %}
|
{% endhint %}
|
||||||
|
@ -18,41 +18,41 @@ Create an account on [Azure](https://azure.microsoft.com/en-us/). Users might al
|
|||||||
|
|
||||||
Go to the Azure portal: https://portal.azure.com/#home and select `Storage accounts` as shown below.
|
Go to the Azure portal: https://portal.azure.com/#home and select `Storage accounts` as shown below.
|
||||||
|
|
||||||
![Select storage accounts](../../.gitbook/assets/hosting/azure1.png)
|
![Select storage accounts](<../../.gitbook/assets/hosting/azure1 (1).png>)
|
||||||
|
|
||||||
**Create a new storage account**
|
**Create a new storage account**
|
||||||
|
|
||||||
![Create a storage account](../../.gitbook/assets/hosting/azure2.png)
|
![Create a storage account](<../../.gitbook/assets/hosting/azure2 (1).png>)
|
||||||
|
|
||||||
**Fill in the details**
|
**Fill in the details**
|
||||||
|
|
||||||
![Add details](../../.gitbook/assets/hosting/azure3.png)
|
![Add details](<../../.gitbook/assets/hosting/azure3 (1).png>)
|
||||||
|
|
||||||
**Storage account created**
|
**Storage account created**
|
||||||
|
|
||||||
![Storage account created](../../.gitbook/assets/hosting/azure4.png)
|
![Storage account created](<../../.gitbook/assets/hosting/azure4 (1).png>)
|
||||||
|
|
||||||
**Step 2 - Create a blob container**
|
**Step 2 - Create a blob container**
|
||||||
|
|
||||||
![Create a blob container](../../.gitbook/assets/hosting/azure5.png)
|
![Create a blob container](<../../.gitbook/assets/hosting/azure5 (1).png>)
|
||||||
|
|
||||||
**Step 3 - Upload a file**
|
**Step 3 - Upload a file**
|
||||||
|
|
||||||
![Upload a file](../../.gitbook/assets/hosting/azure6.png)
|
![Upload a file](<../../.gitbook/assets/hosting/azure6 (1).png>)
|
||||||
|
|
||||||
**Step 4 - Share the file**
|
**Step 4 - Share the file**
|
||||||
|
|
||||||
**Select the file to be published and click Generate SAS**
|
**Select the file to be published and click Generate SAS**
|
||||||
|
|
||||||
![Click generate SAS](../../.gitbook/assets/hosting/azure7.png)
|
![Click generate SAS](<../../.gitbook/assets/hosting/azure7 (1).png>)
|
||||||
|
|
||||||
**Configure the SAS details and click `Generate SAS token and URL`**
|
**Configure the SAS details and click `Generate SAS token and URL`**
|
||||||
|
|
||||||
![Generate link to file](../../.gitbook/assets/hosting/azure8.png)
|
![Generate link to file](<../../.gitbook/assets/hosting/azure8 (1).png>)
|
||||||
|
|
||||||
**Copy the generated link**
|
**Copy the generated link**
|
||||||
|
|
||||||
![Copy the link](../../.gitbook/assets/hosting/azure9.png)
|
![Copy the link](<../../.gitbook/assets/hosting/azure9 (1).png>)
|
||||||
|
|
||||||
**Step 5 - Publish the asset using the generated link**
|
**Step 5 - Publish the asset using the generated link**
|
||||||
|
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
description: How to set up a MetaMask wallet on Chrome
|
description: How to set up a MetaMask wallet on Chrome
|
||||||
---
|
---
|
||||||
|
|
||||||
# Set Up MetaMask Wallet
|
# Set Up MetaMask
|
||||||
|
|
||||||
Before you can publish or purchase assets, you will need a crypto wallet. As Metamask is one of the most popular crypto wallets around, we made a tutorial to show you how to get started with Metamask to use Ocean's tech.
|
Before you can publish or purchase assets, you will need a crypto wallet. As Metamask is one of the most popular crypto wallets around, we made a tutorial to show you how to get started with Metamask to use Ocean's tech.
|
||||||
|
|
||||||
@ -12,27 +12,27 @@ Before you can publish or purchase assets, you will need a crypto wallet. As Met
|
|||||||
|
|
||||||
1. Go to the [Chrome Web Store for extensions](https://chrome.google.com/webstore/category/extensions) and search for MetaMask.
|
1. Go to the [Chrome Web Store for extensions](https://chrome.google.com/webstore/category/extensions) and search for MetaMask.
|
||||||
|
|
||||||
![metamask-chrome-store](../../.gitbook/assets/wallet/metamask-chrome-extension.png)
|
![metamask-chrome-store](<../../.gitbook/assets/wallet/metamask-chrome-extension (2).png>)
|
||||||
|
|
||||||
* Install MetaMask. The wallet provides a friendly user interface that will help you through each step. MetaMask gives you two options: importing an existing wallet or creating a new one. Choose to `Create a Wallet`:
|
* Install MetaMask. The wallet provides a friendly user interface that will help you through each step. MetaMask gives you two options: importing an existing wallet or creating a new one. Choose to `Create a Wallet`:
|
||||||
|
|
||||||
![Create a wallet](../../.gitbook/assets/wallet/create-new-metamask-wallet.png)
|
![Create a wallet](<../../.gitbook/assets/wallet/create-new-metamask-wallet (2).png>)
|
||||||
|
|
||||||
* In the next step create a new password for your wallet. Read through and accept the terms and conditions. After that, MetaMask will generate Secret Backup Phrase for you. Write it down and store it in a safe place.
|
* In the next step create a new password for your wallet. Read through and accept the terms and conditions. After that, MetaMask will generate Secret Backup Phrase for you. Write it down and store it in a safe place.
|
||||||
|
|
||||||
![Secret Backup Phrase](../../.gitbook/assets/wallet/secret-backup-phrase.png)
|
![Secret Backup Phrase](<../../.gitbook/assets/wallet/secret-backup-phrase (2).png>)
|
||||||
|
|
||||||
* Continue forward. On the next page, MetaMask will ask you to confirm the backup phrase. Select the words in the correct sequence:
|
* Continue forward. On the next page, MetaMask will ask you to confirm the backup phrase. Select the words in the correct sequence:
|
||||||
|
|
||||||
![Confirm secret backup phrase](../../.gitbook/assets/wallet/confirm-backup-phrase.png)
|
![Confirm secret backup phrase](<../../.gitbook/assets/wallet/confirm-backup-phrase (2).png>)
|
||||||
|
|
||||||
* Voila! Your account is now created. You can access MetaMask via the browser extension in the top right corner of your browser.
|
* Voila! Your account is now created. You can access MetaMask via the browser extension in the top right corner of your browser.
|
||||||
|
|
||||||
![MetaMask browser extension](../../.gitbook/assets/wallet/metamask-browser-extension.png)
|
![MetaMask browser extension](<../../.gitbook/assets/wallet/metamask-browser-extension (2).png>)
|
||||||
|
|
||||||
* You can now manage ETH and OCEAN with your wallet. You can copy your account address to the clipboard from the options. When you want someone to send ETH or OCEAN to you, you will have to give them that address. It's not a secret.
|
* You can now manage ETH and OCEAN with your wallet. You can copy your account address to the clipboard from the options. When you want someone to send ETH or OCEAN to you, you will have to give them that address. It's not a secret.
|
||||||
|
|
||||||
![Manage tokens](../../.gitbook/assets/wallet/manage-tokens.png)
|
![Manage tokens](<../../.gitbook/assets/wallet/manage-tokens (2).png>)
|
||||||
|
|
||||||
You can also watch this [video tutorial](https://www.youtube.com/playlist?list=PL\_dn0wVs9kWolBCbtHaFxsi408cumOeth) if you want more help setting up MetaMask.
|
You can also watch this [video tutorial](https://www.youtube.com/playlist?list=PL\_dn0wVs9kWolBCbtHaFxsi408cumOeth) if you want more help setting up MetaMask.
|
||||||
|
|
||||||
@ -42,7 +42,7 @@ Sometimes it is required to use custom or external networks in MetaMask. We can
|
|||||||
|
|
||||||
Open the Settings menu and find the `Networks` option. When you open it, you'll be able to see all available networks your MetaMask wallet currently use. Click the `Add Network` button.
|
Open the Settings menu and find the `Networks` option. When you open it, you'll be able to see all available networks your MetaMask wallet currently use. Click the `Add Network` button.
|
||||||
|
|
||||||
![Add custom/external network](../../.gitbook/assets/wallet/metamask-add-network.png)
|
![Add custom/external network](<../../.gitbook/assets/wallet/metamask-add-network (2).png>)
|
||||||
|
|
||||||
There are a few empty inputs we need to fill in:
|
There are a few empty inputs we need to fill in:
|
||||||
|
|
||||||
|