# 4.1 SatoshiChain Layering Architecture

<figure><img src="/files/jjpRf9HBXAxY3cX77iI2" alt=""><figcaption><p><strong>Fig 2</strong>. SatoshiChain Layered Architecture</p></figcaption></figure>

* **Libp2p**: This module always begins at the underlying network layer. Libp2p is modular, extensible, and fast. In particular, it provides an excellent foundation for more advanced features. <br>
* **Synchronization & Consensus**: The separation of synchronization and consensus protocols enable modularity and the implementation of customizable synchronization and consensus mechanisms (depending on how the client operates). Satoshi Chain also offers pluggable consensus algorithms out-of-the-box. <br>
* **Blockchain**: The Blockchain layer serves as the core layer for managing tasks within the Satoshi Chain system. <br>
* **State**: The State layer provides the logic for transitioning between states. It deals with how the state changes when a new block is added. <br>
* **JSON RPC**: dApp developers use this layer as an API layer in order to interact with the blockchain. <br>
* **TxPool**: The TxPool layer is a transaction pool and is tightly coupled to other modules in the system (as transactions can be added from multiple entry points). <br>
* **GRPC**: The GRPC layer is crucial for enabling interaction with the operator. This layer ensures that node operators can interact with the clients easily, providing a usable and efficient UX.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://satoshichain.gitbook.io/satoshi-chain/developers/4.1-satoshichain-layering-architecture.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
