# 关于集成 RedStone 的三种方式

By [Untitled](https://paragraph.com/@0x2ed868f28aee2ab5fb7a413f3a7fdb5237d9df6b) · 2025-01-29

---

**当前市面上的预言机系统普遍存在以下问题：**

1.  低效且高成本的数据提供方式 现有的标准做法是将数据“推送”到区块链上，无论应用程序是否需要这些数据。这样不仅导致了不必要的费用支出，还浪费了可用于其他地方的资源。
    
2.  架构限制了可扩展性 传统的单一架构使得预言机协议难以有效减少延迟，同时增加了引入新资产的难度，从而限制了系统的扩展性。
    

为了解决这些问题，RedStone凭借其创新的技术方案，成为了一个独特且领先的预言机服务提供商。RedStone目前提供三种不同的服务模式，以满足不同市场需求。

**RedStone 拉取模型（Pull Model）**

拉取模型是RedStone的基础运营模式。在这一模式下，数据会动态地注入到用户的交易中，从而实现更高的Gas效率。这种方式让用户能够在单一交易中完成所有操作，从而显著降低dApp获取数据流的成本。

![](https://storage.googleapis.com/papyrus_images/af7a0a97702c456b5055cfd7c1f47e10fc3b926ab320f507a3a81ad4221206df.png)

适用场景：

拉取模型适合需要访问多个价格数据流并频繁更新的去中心化应用（dApps），特别是那些注重成本效益的应用。

示例：

1.  克隆RedStone的EVM链示例：
    

git clone [https://github.com/redstone-finance/redstone-evm-examples](https://github.com/redstone-finance/redstone-evm-examples)

1.  安装依赖：
    

yarn

1.  运行示例测试：
    

yarn test

1.  解析RedStone数据负载：
    

node scripts/parse-redstone-payload.js

**RedStone 推送模型（Push Model）**

推送模型由两个关键组成部分构成： • 链下中继器：负责根据环境变量自定义方式将数据推送到区块链。 • 链上合约：用于存储价格并通过熟悉的界面（如Chainlink Aggregator）提供数据访问。

此模型可适用于所有兼容EVM的L1和L2链，此外还支持Starknet和Fuel Network。推送模型是为那些希望采用传统预言机方法的应用设计的，数据在较长时间间隔内被写入区块链，并允许用户完全控制数据来源和更新条件。

适用场景：

适合那些需要低频数据更新、较少价格数据流，或希望与其他预言机服务互换的dApps。

**RedStone X 模型（X Model）**

X模型采用了“延迟执行模式（Deferred execution pattern）”，交易分为两步处理：

1.  用户发起交易，通过在链上记录与协议交互的意图（例如开立永久头寸），无需知道交易执行的具体背景（即价格）。这种方式有效避免了通过预言机抢先交付价格的套利行为。
    
2.  价格仅在第二步推送到链上，通常发生在下一个区块。任何人，包括用户自己，都可以推送价格，因为其完整性将在链上根据协议约束进行验证。最终的价格将用于结算交易。
    

X模型主要针对需要高度安全性的高级协议，如永续合约、期权和衍生品。通过在用户交互后的下一区块提供价格数据，X模型有效消除了抢跑（front-running）风险。

![](https://storage.googleapis.com/papyrus_images/bad05b9c9f60f28e362d8fa787f02507b6f14960825ead93462281708ba9aa81.png)

适用场景：

适用于永续合约、期权和衍生品协议。

**总结**

RedStone通过提供灵活的拉取模型、推送模型和X模型，满足了去中心化应用的多种需求。从注重效率和成本的拉取模型，到传统兼容的推送模型，再到专为高级协议设计的X模型，RedStone的解决方案为开发者和用户提供了更高的灵活性和性能优化。

无论是希望降低延迟、减少成本，还是提升数据更新频率，RedStone都能为区块链生态系统的持续发展提供适合的解决方案。

---

*Originally published on [Untitled](https://paragraph.com/@0x2ed868f28aee2ab5fb7a413f3a7fdb5237d9df6b/redstone-3)*
