# 技术架构

### 架构分层

JuChain 的技术架构分为以下关键层级，每层负责特定功能：

#### 数据层（Data Layer）

* **功能**：存储区块链的所有数据。
* **核心组件**：
  * **区块**：包含头部（时间戳、前区块哈希、Merkle 根）和交易数据。
  * **状态数据库**：使用 Merkle Patricia Trie（MPT）存储账户余额和合约状态。
  * **交易池**：缓存待打包的交易。
* **特点**：支持快速查询和数据完整性验证。

#### 网络层（Network Layer）

* **功能**：处理节点间通信和数据同步。
* **核心组件**：
  * **P2P 网络**：基于点对点协议实现节点发现和数据传播。
  * **节点类型**：全节点（完整数据）、轻节点（仅头部）和验证者节点。
* **特点**：高效广播交易和区块。

#### 共识层（Consensus Layer）

* **功能**：确保网络状态一致性。
* **核心机制**：JPoSA（详见下文）。
* **特点**：1 秒出块时间，提供快速确认。

#### 执行层（Execution Layer）

* **功能**：执行交易和智能合约。
* **核心组件**：
  * **EVM**：支持 Solidity 智能合约。
  * **Gas 机制**：低成本交易费用。
* **特点**：兼容以太坊工具和合约。

#### 应用层（Application Layer）

* **功能**：提供开发者接口。
* **核心组件**：
  * **JSON-RPC API**：支持 Web3.js 交互。
  * **工具**：开发者平台、流量分析仪表板。
* **特点**：便于 dApp 开发和集成。

***

### JPoSA 共识机制

JPoSA 是 JuChain 的核心共识机制，结合权益证明（PoS）和权威证明（PoA）的特点，提供高效和安全的区块生成。

#### 核心设计

* **验证者架构**：
  * **核心验证者**：最多 21 个，负责出块。
  * **备用验证者**：随时替换故障核心验证者。
  * **候选验证者**：通过质押 JU 代币参与竞争。
* **质押机制**：
  * 用户质押 JU 代币以成为验证者或委托给现有验证者。
* **出块流程**：
  * 核心验证者轮流生成区块，每 1 秒产生一个新区块。

#### 性能参数

* **出块时间**：1 秒。
* **交易确认时间**：2-3 秒（2-3 个区块）。
* **吞吐量**：支持每秒数千笔交易（具体数值取决于网络负载和优化）。
* **容错性**：可容忍不超过 1/3 的核心验证者故障（即最多 7 个）。

#### 安全性

* **投票权重**：根据验证者质押量和历史表现调整。
* **惩罚机制**：恶意行为或离线将扣除部分质押 JU。

***

### 网络结构

JuChain 使用去中心化的 P2P 网络，支持多种节点角色。

#### 节点类型

1. **全节点**：
   * 存储完整区块链数据，验证所有交易。
   * 适合开发者或高可靠性需求。
2. **轻节点**：
   * 仅同步区块头部，依赖全节点获取数据。
   * 适合资源受限的设备。
3. **验证者节点**：
   * 参与 JPoSA 共识，需质押 JU 并保持在线。

#### 数据同步

* **区块传播**：通过 P2P 网络快速广播新区块。
* **状态同步**：新节点从最新状态开始增量更新。

***

### 核心组件

#### 1. JU 代币

* **用途**：
  * 支付交易 Gas 费用。
  * 质押以参与共识和治理。
* **特点**：驱动网络安全和生态激励。

#### 2. 区块结构

* **头部**：
  * 时间戳、前区块哈希、Merkle 根、验证者签名。
* **主体**：
  * 交易列表（包括普通转账和合约调用）。
* **大小**：默认 2 MB，可根据需求调整。

#### 3. 状态数据库

* **实现**：基于 MPT，存储账户和合约数据。
* **特点**：高效读写，支持快速状态查询。

***

### 性能特点

JuChain 的设计优化了以下性能指标：

* **快速出块**：1 秒出块时间，适合高频交易和实时应用。
* **低成本**：Gas 费用远低于以太坊，平均低于 0.001 JU。
* **高吞吐量**：通过并行交易处理支持高并发。
* **EVM 兼容性**：支持以太坊智能合约和工具，无需额外学习成本。

***

### 开发者集成

#### 1. RPC 接口

* **端点**：`https://rpc.juchain.org`
* **示例**（查询区块高度）：

```bash
curl -X POST -H "Content-Type: application/json" --data '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}' https://rpc.juchain.org
```

* **id: 1 并不是链 ID（chainId），而是 JSON-RPC 协议中的请求编号，用于客户端识别请求与响应是否对应。**
* **响应**：

  ```json
  {"jsonrpc":"2.0","id":1,"result":"0x1a2b3c"}
  ```

#### 2. 网络配置

* **主网**：
  * RPC：`https://rpc.juchain.org`
  * 链 ID：210000
  * 货币符号：JU
* **Gas 参数**：
  * 最低 Gas 价格：1 gwei。
  * 交易 Gas 限制：5,500,000。

#### 3. 工具支持

* **开发框架**：Truffle、Hardhat。
* **区块浏览器**：[`https://juscan.io`](https://juscan.io)

***

### 与其他区块链对比

| **特性**      | **JuChain** | **Ethereum** | **BNB Chain** |
| ----------- | ----------- | ------------ | ------------- |
| **共识机制**    | JPoSA       | PoS          | PoSA          |
| **出块时间**    | 1 秒         | 12-15 秒      | 3 秒           |
| **交易成本**    | < 0.001 JU  | 较高           | 中等            |
| **EVM 兼容性** | 是           | 是            | 是             |

JuChain 在出块速度和成本上具有明显优势。

***

### 总结

JuChain 的技术架构通过 JPoSA 共识、EVM 兼容性和高效网络设计，提供了一个快速、低成本的区块链平台。其 1 秒出块时间和高吞吐量使其特别适合流量密集型和实时性要求高的 dApp。开发者可利用本文档中的信息，快速集成 JuChain 并构建应用。


---

# 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://juchain.gitbook.io/juchain-docs/zh/ji-shu-jia-gou.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.
