1
0
mirror of https://github.com/oceanprotocol/docs.git synced 2024-11-01 07:45:40 +01:00

GITBOOK-28: No subject

This commit is contained in:
Jamie Hewitt 2024-07-29 09:51:07 +00:00 committed by gitbook-bot
parent c98ae179db
commit 6e4e4b253d
No known key found for this signature in database
GPG Key ID: 07D2180C7B12D0FF

View File

@ -1,6 +1,6 @@
# Node Architecture # Node Architecture
Ocean Node is the core infrastructure component within the Ocean Protocol ecosystem, designed to facilitate decentralized data exchange and management. It operates by leveraging a multi-layered architecture that includes network, components, and modules layers.  Ocean Node is the core infrastructure component within the Ocean Protocol ecosystem, designed to facilitate decentralized data exchange and management. It operates by leveraging a multi-layered architecture that includes network, components, and module layers. 
Key features include secure peer-to-peer communication via libp2p, flexible and secure encryption solutions, and support for various Compute-to-Data (C2D) operations.  Key features include secure peer-to-peer communication via libp2p, flexible and secure encryption solutions, and support for various Compute-to-Data (C2D) operations. 
@ -55,40 +55,21 @@ An off-chain, multi-chain metadata & chain events cache. It continually monitors
Features: Features:
* Monitors MetadataCreated, MetadataUpdated, MetadataState and stores DDOs in the database. * Monitors MetadataCreated, MetadataUpdated, MetadataState and stores DDOs in the database.
* Validates DDOs according to multiple SHACL schemas. * Validates DDOs according to multiple SHACL schemas. When hosting a node, you can provide your own SHACL schema or use the ones provided.
* Provides proof for valid DDOs. * Provides proof for valid DDOs.
* Monitors data token contracts & stores orders. * Monitors all transactions and events from the data token contracts. This includes minting tokens, creating pricing schema (fixed & free pricing), and orders.
* Allows queries for all the above. * Allows queries for all the above.
#### Provider #### Provider
* Performs checks on-chain for buyer permissions and payments. * Performs checks on-chain for buyer permissions and payments.
* The provider is crucial in checking that all the relevant fees have been paid before the consumer is able to download the asset. See the [Fees page](../contracts/fees.md) for details on all of the different types of fees.
* Encrypts the URL and metadata during publishing. * Encrypts the URL and metadata during publishing.
* Decrypts the URL when the dataset is downloaded or a compute job is started. * Decrypts the URL when the dataset is downloaded or a compute job is started.
* Encrypts/decrypts files before storage/while accessing. * Encrypts/decrypts files before storage/while accessing.
* Provides access to data assets by streaming data (and never the URL). * Provides access to data assets by streaming data (and never the URL).
* Provides compute services (connects to multiple C2D engines: light, Ocean C2D, third parties). * Provides compute services. 
* The node operator can charge provider fees, compensating the individuals or organizations operating their own node when users request assets.
### Modules * Currently, we are providing the legacy Ocean C2D compute services (which run in Kubernetes) via the node. In the future, we will also allow connections to multiple C2D engines: light, Ocean C2D, and third parties.
#### MPC
Instead of encrypting with a private key, we can leverage MPC to construct the key, which is used for encrypting & decrypting URL and file contents.
#### TEE
Once a URL is decrypted (based on a consume request), the node operator can log that URL, and thus the asset is compromised.
We can move the entire encryption/decryption/MPC process to TEE, giving us full security regarding plain data.
A node that supports TEE should expose its proof in the status endpoint.
With MPC encryption (both assets & files), other nodes should refuse to reassemble the private key if the node does not expose & pass the proof check.
#### Light Docker C2D
Ocean C2D is flexible and scalable but has one major drawback: it requires Kubernetes.
For edge nodes (e.g., installed in a car, or a weather station running on Raspberry Pi), we can have a light engine that only uses the Docker system installed on the host. All orchestration (creating & provisioning input volumes, publishing results) can be handled by this module, while only the actual algorithm job is leveraged to Docker, with locally provisioned folders mounted.
### ###