# Key Components

Understanding the architecture of MetaChain is essential for both developers and users who wish to interact with the network effectively. This section provides a high-level overview of the key components and communication protocols that make up the MetaChain architecture.

**Full-Nodes**

* **Role**: Full-nodes serve as the backbone of the MetaChain network, validating transactions and maintaining the blockchain.
* **Interaction**: They interact directly with the blockchain network and are responsible for propagating blocks and transactions.
* **Local Node**: Running a local full-node provides you with the highest level of control and security. It allows you to participate in the network more actively, including the option to become a validator.

**Ocean REST Server**

* **Overview:** Currently contributed and maintained by [Birthday Research](https://birthday.dev/).
* **Role**: The Ocean REST Server acts as a relayer for HTTP calls between the client and the full-nodes.
* **Functionality**: It translates RESTful HTTP requests into JSON-RPC calls, which are then sent to the full-node for processing.
* **Security**: Always ensure that your connection to the Ocean REST Server is secure, preferably using HTTPS.

**REST API**

* **Role**: The REST API defines the available endpoints that the Ocean REST Server can call.
* **Functionality**: It provides a set of predefined methods for querying blockchain data, sending transactions, and performing other network-related tasks.
* **Documentation**: Comprehensive API documentation is essential for developers to understand how to interact with the network effectively.

{% hint style="info" %}
**Hint:** If you're planning to interact with the MetaChain network frequently or build applications on top of it, running a local full-node is highly recommended for optimal performance and security.
{% endhint %}

{% hint style="info" %}
**Ocean REST Server Guide**: For a step-by-step guide on interacting with the Ocean REST Server, [click here](https://github.com/oceanprotocol/ocean.py/blob/main/README.md)
{% endhint %}

<figure><img src="https://3484560057-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FJJkDhdFojHPSVL7Wrdew%2Fuploads%2Fm4IOpAVyGviSj76pfUiz%2Fimage6.png?alt=media" alt=""><figcaption><p>An overview of the Apps, DVM and Core Module</p></figcaption></figure>
