> For the complete documentation index, see [llms.txt](https://docs.icb.network/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.icb.network/project-technology/architecture.md).

# Architecture

<figure><img src="https://1670530031-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FNGHmFVO7DlELOLs4PSVs%2Fuploads%2Fs5ETJdUE1W3A9IdSfyNx%2F2023-12-25%2011.51.51.jpg?alt=media&amp;token=940c82d8-2ba1-443d-a91b-3dd073fae62c" alt=""><figcaption></figcaption></figure>

**JSON-RPC :** is a simple protocol that allows data to be encoded and transported using JSON (JavaScript Object Notation) between client apps and blockchain nodes. It's a common interface by which apps can communicate with blockchain nodes.

**GRPC :** is a cutting-edge, high-performance RPC framework that is becoming more and more popular in the blockchain space because of its cross-platform compatibility, efficiency, and scalability. JSON-RPC is still commonly used, although for some blockchain applications, gRPC has clear advantages.<br>

**TXPool :** a temporary holding space on individual blockchain nodes where pending transactions wait to be included in a block; sometimes referred to as mempool in several blockchains. Transactions wait in line to be processed and permanently recorded on the blockchain, much as in a staging area.

**LIBP2P :** is a framework for modular, adaptable peer-to-peer networking that is essential to creating robust, decentralized blockchain networks. It offers a strong platform that enables direct data exchange and communication between blockchain nodes without the need for centralized servers.
