Skip to content

Commit

Permalink
Merge pull request #1447 from oceanprotocol/node-docs
Browse files Browse the repository at this point in the history
Ocean Node Docs Update
  • Loading branch information
mihaisc authored Aug 15, 2024
2 parents 90207ad + 3d9875a commit 508d1d8
Show file tree
Hide file tree
Showing 63 changed files with 267 additions and 119 deletions.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added .gitbook/assets/OceanNode-arhitecture.drawio.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added .gitbook/assets/hosting/azure1 (1).png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added .gitbook/assets/hosting/azure2 (1).png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added .gitbook/assets/hosting/azure3 (1).png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added .gitbook/assets/hosting/azure4 (1).png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added .gitbook/assets/hosting/azure5 (1).png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added .gitbook/assets/hosting/azure6 (1).png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added .gitbook/assets/hosting/azure7 (1).png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added .gitbook/assets/hosting/azure8 (1).png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added .gitbook/assets/hosting/azure9 (1).png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added .gitbook/assets/image (1).png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added .gitbook/assets/image.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added .gitbook/assets/image.webp
Binary file not shown.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added .gitbook/assets/wallet/manage-tokens (1).png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added .gitbook/assets/wallet/manage-tokens (2).png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
37 changes: 20 additions & 17 deletions SUMMARY.md
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand All @@ -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)
Expand All @@ -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)
Expand Down
8 changes: 4 additions & 4 deletions developers/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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)

***
Expand Down
33 changes: 24 additions & 9 deletions developers/architecture.md
Original file line number Diff line number Diff line change
Expand Up @@ -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.🐬

<figure><img src="../.gitbook/assets/architecture/architecture_overview.png" alt=""><figcaption><p>Overview of the Ocean Protocol Architecture</p></figcaption></figure>
<figure><img src="../.gitbook/assets/image.webp" alt=""><figcaption><p>Overview of the Ocean Protocol Architecture</p></figcaption></figure>

### Layer 1: The Foundational Blockchain Layer

Expand All @@ -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.&#x20;

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.&#x20;
* 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

Expand Down
7 changes: 3 additions & 4 deletions developers/barge/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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).

<figure><img src="../../.gitbook/assets/components/barge.png" alt=""><figcaption><p>Load Ocean components locally by using Barge</p></figcaption></figure>

Expand All @@ -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 %}
Loading

0 comments on commit 508d1d8

Please sign in to comment.