diff --git a/.gitbook/assets/OceanNode-arhitecture.drawio (light).png b/.gitbook/assets/OceanNode-arhitecture.drawio (light).png new file mode 100644 index 00000000..ab60d7a6 Binary files /dev/null and b/.gitbook/assets/OceanNode-arhitecture.drawio (light).png differ diff --git a/.gitbook/assets/OceanNode-arhitecture.drawio.png b/.gitbook/assets/OceanNode-arhitecture.drawio.png new file mode 100644 index 00000000..fe7e1b92 Binary files /dev/null and b/.gitbook/assets/OceanNode-arhitecture.drawio.png differ diff --git a/.gitbook/assets/hosting/azure1 (1).png b/.gitbook/assets/hosting/azure1 (1).png new file mode 100644 index 00000000..fa00009a Binary files /dev/null and b/.gitbook/assets/hosting/azure1 (1).png differ diff --git a/.gitbook/assets/hosting/azure2 (1).png b/.gitbook/assets/hosting/azure2 (1).png new file mode 100644 index 00000000..511ff199 Binary files /dev/null and b/.gitbook/assets/hosting/azure2 (1).png differ diff --git a/.gitbook/assets/hosting/azure3 (1).png b/.gitbook/assets/hosting/azure3 (1).png new file mode 100644 index 00000000..4cf63916 Binary files /dev/null and b/.gitbook/assets/hosting/azure3 (1).png differ diff --git a/.gitbook/assets/hosting/azure4 (1).png b/.gitbook/assets/hosting/azure4 (1).png new file mode 100644 index 00000000..2b074641 Binary files /dev/null and b/.gitbook/assets/hosting/azure4 (1).png differ diff --git a/.gitbook/assets/hosting/azure5 (1).png b/.gitbook/assets/hosting/azure5 (1).png new file mode 100644 index 00000000..c07525e5 Binary files /dev/null and b/.gitbook/assets/hosting/azure5 (1).png differ diff --git a/.gitbook/assets/hosting/azure6 (1).png b/.gitbook/assets/hosting/azure6 (1).png new file mode 100644 index 00000000..4c576189 Binary files /dev/null and b/.gitbook/assets/hosting/azure6 (1).png differ diff --git a/.gitbook/assets/hosting/azure7 (1).png b/.gitbook/assets/hosting/azure7 (1).png new file mode 100644 index 00000000..000dc780 Binary files /dev/null and b/.gitbook/assets/hosting/azure7 (1).png differ diff --git a/.gitbook/assets/hosting/azure8 (1).png b/.gitbook/assets/hosting/azure8 (1).png new file mode 100644 index 00000000..d424ccae Binary files /dev/null and b/.gitbook/assets/hosting/azure8 (1).png differ diff --git a/.gitbook/assets/hosting/azure9 (1).png b/.gitbook/assets/hosting/azure9 (1).png new file mode 100644 index 00000000..f46b3c23 Binary files /dev/null and b/.gitbook/assets/hosting/azure9 (1).png differ diff --git a/.gitbook/assets/image (1).png b/.gitbook/assets/image (1).png new file mode 100644 index 00000000..4f0abba4 Binary files /dev/null and b/.gitbook/assets/image (1).png differ diff --git a/.gitbook/assets/image.png b/.gitbook/assets/image.png new file mode 100644 index 00000000..1efb3b3b Binary files /dev/null and b/.gitbook/assets/image.png differ diff --git a/.gitbook/assets/image.webp b/.gitbook/assets/image.webp new file mode 100644 index 00000000..6c3b086b Binary files /dev/null and b/.gitbook/assets/image.webp differ diff --git a/.gitbook/assets/wallet/confirm-backup-phrase (1).png b/.gitbook/assets/wallet/confirm-backup-phrase (1).png new file mode 100644 index 00000000..5fa40a1c Binary files /dev/null and b/.gitbook/assets/wallet/confirm-backup-phrase (1).png differ diff --git a/.gitbook/assets/wallet/confirm-backup-phrase (2).png b/.gitbook/assets/wallet/confirm-backup-phrase (2).png new file mode 100644 index 00000000..5fa40a1c Binary files /dev/null and b/.gitbook/assets/wallet/confirm-backup-phrase (2).png differ diff --git a/.gitbook/assets/wallet/create-new-metamask-wallet (1).png b/.gitbook/assets/wallet/create-new-metamask-wallet (1).png new file mode 100644 index 00000000..f53a81cd Binary files /dev/null and b/.gitbook/assets/wallet/create-new-metamask-wallet (1).png differ diff --git a/.gitbook/assets/wallet/create-new-metamask-wallet (2).png b/.gitbook/assets/wallet/create-new-metamask-wallet (2).png new file mode 100644 index 00000000..f53a81cd Binary files /dev/null and b/.gitbook/assets/wallet/create-new-metamask-wallet (2).png differ diff --git a/.gitbook/assets/wallet/manage-tokens (1).png b/.gitbook/assets/wallet/manage-tokens (1).png new file mode 100644 index 00000000..09a6f4c4 Binary files /dev/null and b/.gitbook/assets/wallet/manage-tokens (1).png differ diff --git a/.gitbook/assets/wallet/manage-tokens (2).png b/.gitbook/assets/wallet/manage-tokens (2).png new file mode 100644 index 00000000..09a6f4c4 Binary files /dev/null and b/.gitbook/assets/wallet/manage-tokens (2).png differ diff --git a/.gitbook/assets/wallet/metamask-add-network (1).png b/.gitbook/assets/wallet/metamask-add-network (1).png new file mode 100644 index 00000000..7b756c36 Binary files /dev/null and b/.gitbook/assets/wallet/metamask-add-network (1).png differ diff --git a/.gitbook/assets/wallet/metamask-add-network (2).png b/.gitbook/assets/wallet/metamask-add-network (2).png new file mode 100644 index 00000000..7b756c36 Binary files /dev/null and b/.gitbook/assets/wallet/metamask-add-network (2).png differ diff --git a/.gitbook/assets/wallet/metamask-browser-extension (1).png b/.gitbook/assets/wallet/metamask-browser-extension (1).png new file mode 100644 index 00000000..7f590505 Binary files /dev/null and b/.gitbook/assets/wallet/metamask-browser-extension (1).png differ diff --git a/.gitbook/assets/wallet/metamask-browser-extension (2).png b/.gitbook/assets/wallet/metamask-browser-extension (2).png new file mode 100644 index 00000000..7f590505 Binary files /dev/null and b/.gitbook/assets/wallet/metamask-browser-extension (2).png differ diff --git a/.gitbook/assets/wallet/metamask-chrome-extension (1).png b/.gitbook/assets/wallet/metamask-chrome-extension (1).png new file mode 100644 index 00000000..af811b08 Binary files /dev/null and b/.gitbook/assets/wallet/metamask-chrome-extension (1).png differ diff --git a/.gitbook/assets/wallet/metamask-chrome-extension (2).png b/.gitbook/assets/wallet/metamask-chrome-extension (2).png new file mode 100644 index 00000000..af811b08 Binary files /dev/null and b/.gitbook/assets/wallet/metamask-chrome-extension (2).png differ diff --git a/.gitbook/assets/wallet/secret-backup-phrase (1).png b/.gitbook/assets/wallet/secret-backup-phrase (1).png new file mode 100644 index 00000000..04a2a278 Binary files /dev/null and b/.gitbook/assets/wallet/secret-backup-phrase (1).png differ diff --git a/.gitbook/assets/wallet/secret-backup-phrase (2).png b/.gitbook/assets/wallet/secret-backup-phrase (2).png new file mode 100644 index 00000000..04a2a278 Binary files /dev/null and b/.gitbook/assets/wallet/secret-backup-phrase (2).png differ diff --git a/SUMMARY.md b/SUMMARY.md index 3f4aaaef..ef2c36fd 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -25,6 +25,8 @@ * [Liquidity Pools \[deprecated\]](user-guides/remove-liquidity-pools.md) * [š» Developers](developers/README.md) * [Architecture Overview](developers/architecture.md) + * [Ocean Nodes](developers/ocean-node/README.md) + * [Node Architecture](developers/ocean-node/node-architecture.md) * [Contracts](developers/contracts/README.md) * [Data NFTs](developers/contracts/data-nfts.md) * [Datatokens](developers/contracts/datatokens.md) @@ -45,14 +47,6 @@ * [Get API Keys for Blockchain Access](developers/get-api-keys-for-blockchain-access.md) * [Barge](developers/barge/README.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) * [Configuration](developers/ocean.js/configuration.md) * [Creating a data NFT](developers/ocean.js/creating-datanft.md) @@ -74,19 +68,28 @@ * [Workflow](developers/compute-to-data/compute-workflow.md) * [Writing Algorithms](developers/compute-to-data/compute-to-data-algorithms.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.js](developers/uploader/uploader-js.md) * [Uploader UI](developers/uploader/uploader-ui.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) * [š Data Scientists](data-scientists/README.md) * [Ocean.py](data-scientists/ocean.py/README.md) diff --git a/developers/README.md b/developers/README.md index e33a05c5..1ba06785 100644 --- a/developers/README.md +++ b/developers/README.md @@ -21,7 +21,7 @@ Example live dapps: ## How do developers start using Ocean? * **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/). ## 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) * Components: * [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 * [Compute-to-data](compute-to-data/) - practical privacy approach - * [Aquarius](aquarius/) - metadata cache - * [Provider](provider/) - handshaking for access control + * [Aquarius](old-infrastructure/aquarius/) - metadata cache + * [Provider](old-infrastructure/provider/) - handshaking for access control * [FAQ](dev-faq.md) *** diff --git a/developers/architecture.md b/developers/architecture.md index 0dc5e6d1..8d18c1c3 100644 --- a/developers/architecture.md +++ b/developers/architecture.md @@ -6,7 +6,7 @@ description: Ocean Protocol Architecture Adventure! Embark on an exploration of the innovative realm of Ocean Protocol, where data flows seamlessly and AI achieves new heights. Dive into the intricately layered architecture that converges data and services, fostering a harmonious collaboration. Let us delve deep and uncover the profound design of Ocean Protocol.š¬ - + ### Layer 1: The Foundational Blockchain Layer @@ -20,18 +20,33 @@ Above the smart contracts, you'll find essential [libraries](architecture.md#lib #### 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. -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. +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. -#### Middleware components +#### Ocean Nodes -Additionally, in supporting the discovery process, middleware components come into play: +Ocean Node is a single component which runs all core middleware services within the Ocean stack. It replaces the roles of Aquarius, Provider and the Subgraph. It integrates the Indexer for metadata management and the Provider for secure data access. It ensures efficient and reliable interactions within the Ocean Protocol network. -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. -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. -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. +Ocean Nodes handles network communication through libp2p, supports secure data handling, and enables flexible compute-to-data operations. + +The functions of Ocean nodes include: + +* It is crucial in handling the asset downloads, it streams the purchased data directly to the buyer. +* It conducts the permission an access checks during the consume flow. +* The Node handles [DDO](https://docs.oceanprotocol.com/developers/ddo-specification) (Decentralized Data Object) encryption. +* It establishes communication with the operator-service for initiating Compute-to-Data jobs. +* It provides a metadata cache, enhancing search efficiency by caching on-chain data into a Typesense database. This enables faster and more efficient data discovery. +* It supports multiple chains. + +#### Old components + +Previously Ocean used the following middleware components: + +1. [Aquarius](old-infrastructure/aquarius/) +2. [Provider](old-infrastructure/provider/) +3. [Subgraph](old-infrastructure/subgraph/) #### Compute-to-Data diff --git a/developers/barge/README.md b/developers/barge/README.md index 024462a3..52002635 100644 --- a/developers/barge/README.md +++ b/developers/barge/README.md @@ -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. -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). @@ -15,8 +15,7 @@ To explore all the available options and gain a deeper understanding of how to u By utilizing the Barge component, developers gain the freedom to conduct experiments, customize, and fine-tune their local development environment, and offers the flexibility to override the Docker image tag associated with specific components. By setting the appropriate environment variable before executing the start\_ocean.sh command, developers can customize the versions of various components according to their requirements. For instance, developers can modify the: `AQUARIUS_VERSION`, `PROVIDER_VERSION`, `CONTRACTS_VERSION`, `RBAC_VERSION`, and `ELASTICSEARCH_VERSION` environment variables to specify the desired Docker image tags for each respective component. {% 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! - -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. ā ļø +ā ļø 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/) page to have clarity on the available test networks. ā ļø {% endhint %} diff --git a/developers/community-monetization.md b/developers/community-monetization.md index d374c6ff..79899651 100644 --- a/developers/community-monetization.md +++ b/developers/community-monetization.md @@ -24,7 +24,7 @@ If youāre part of an established organization or a growing startup, youāll a We have always been super encouraging of anyone who wishes to build a dApp on top of Ocean or to fork Ocean Market and make their own data marketplace. And now, we have taken this to the next level and introduced more opportunities and even more fee customization options. -Ocean empowers dApp owners like yourself to have greater flexibility and control over the fees you can charge. This means you can tailor the fee structure to suit your specific needs and ensure the sustainability of your project. **The smart contracts enable you to collect a fee not only in consume, but also in fixed-rate exchange, also you can set the fee value.** For more detailed information regarding the fees, we invite you to visit the [fees](contracts/fees.md) page. +Ocean empowers dApp owners like yourself to have greater flexibility and control over the fees you can charge. This means you can tailor the fee structure to suit your specific needs and ensure the sustainability of your project. **The smart contracts enable you to collect a fee not only in consume, but also in fixed-rate exchange, also you can set the fee value.** For more detailed information regarding the fees, we invite you to visit the [fees](contracts/fees.md) page. Another new opportunity is using your own **ERC20** token in your dApp, where itās used as the unit of exchange. This is fully supported and can be a great way to ensure the sustainability of your project. @@ -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. -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. @@ -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. - -**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. +**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. 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. diff --git a/developers/compute-to-data/README.md b/developers/compute-to-data/README.md index 34b9027b..a127c1ad 100644 --- a/developers/compute-to-data/README.md +++ b/developers/compute-to-data/README.md @@ -1,5 +1,5 @@ --- -description: Monetise your data while preserving privacy +description: Compute to data version 2 (C2dv2) --- # Compute to data @@ -29,14 +29,14 @@ We suggest reading these guides to get an understanding of how compute-to-data w ### User Guides -* [How to write compute to data algorithms](broken-reference) -* [How to publish a compute-to-data algorithm](broken-reference) -* [How to publish a dataset for compute to data](broken-reference) +* [How to write compute to data algorithms](broken-reference/) +* [How to publish a compute-to-data algorithm](broken-reference/) +* [How to publish a dataset for compute to data](broken-reference/) ### Developer Guides * [How to use compute to data with ocean.js](../ocean.js/cod-asset.md) -* [How to use compute to data with ocean.py](../../data-scientists/ocean.py/) +* [How to use compute to data with ocean.py](../../data-scientists/ocean.py) ### Infrastructure Deployment Guides diff --git a/developers/compute-to-data/compute-to-data-architecture.md b/developers/compute-to-data/compute-to-data-architecture.md index dc64ce15..67c109d8 100644 --- a/developers/compute-to-data/compute-to-data-architecture.md +++ b/developers/compute-to-data/compute-to-data-architecture.md @@ -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. {% 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 %} 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 -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 diff --git a/developers/contracts/README.md b/developers/contracts/README.md index 67637a51..acddb240 100644 --- a/developers/contracts/README.md +++ b/developers/contracts/README.md @@ -4,9 +4,9 @@ description: Empowering the Decentralised Data Economy # Contracts -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** @@ -20,16 +20,15 @@ By utilizing ERC721 tokens, Ocean **grants data creators greater flexibility and - ### [**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**. 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: diff --git a/developers/contracts/fees.md b/developers/contracts/fees.md index 423abc0b..ececcbc6 100644 --- a/developers/contracts/fees.md +++ b/developers/contracts/fees.md @@ -17,21 +17,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. -| Value in Ocean Market | Value in Other Markets | -| :---------------------: | :------------------------------: | -| 0% | Customizable in market config. | - +| Value in Ocean Market | Value in Other Markets | +| :-------------------: | :----------------------------: | +| 0% | Customizable in market config. | ### 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). -| Value for OCCEAN or H2O | Value for other ERC20 tokens | -| :-----------------------: | :-----------------------------: | -| 0.1% | 0.2% | - +| Value for OCCEAN or H2O | Value for other ERC20 tokens | +| :---------------------: | :--------------------------: | +| 0.1% | 0.2% | ### Consume(aka. Order) fee @@ -45,7 +43,7 @@ When a user exchanges a [datatoken](datatokens.md) for the privilege of download 2. **Consume Market** Consumption Fee * A market can specify what fee it wants on the order function. 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. * 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). @@ -93,28 +91,28 @@ Each of these fees plays a role in ensuring fair compensation and supporting the ### 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. -* 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. * You can retrieve them when calling the initialize endpoint. * 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. -* 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 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. -| Type | OPF Provider | 3rd party Provider | -| ---------------------------------------------------------------------------- | :--------------------: | --------------------------------------------------------------------- | -| Token to charge the fee: `PROVIDER_FEE_TOKEN` | OCEAN |
Customizable by the Provider Owner.
E.g. USDC
Compute: COST_PER_MIN
Environment: 1 CPU, 60 secs max
Compute: COST_PER_MIN
Environment: 1 CPU, 1 hour max
Customizable by the Provider Owner.
E.g. USDC
Compute: COST_PER_MIN
Environment: 1 CPU, 60 secs max
Compute: COST_PER_MIN
Environment: 1 CPU, 1 hour max