Reactive 基础概念
-
Reactive Network:本质是一条独立的区块链网络,专门用于:监听其他链事件、执行自动逻辑、触发跨链交易。有两种执行环境:
Reactive Network :EOA 与合约互动的公链,管理订阅。
Reactive Network :私有执行环境,用于事件处理的执行环境。该环境中Reactive Contracts无法直接访问外部系统。它们从反应式网络接收事件日志,并能向目的链发送回调事务,但无法与外部 RPC 端点或链外服务交互。
-
Reactive Contract:部署在 Reactive Network 上的智能合约,Reactive Contracts可以在部署期间或部署后通过 Sourcify 端点进行验证。Sourcify 是一个去中心化的验证服务,能够将部署的字节码与源代码匹配,使合同可审计且透明。
-
起源 (Origin):事件发生的源头链,Reactive Network“监听”源链特定的日志(Logs)。
-
目的地 (Destination):最终执行动作的目标链。
-
回调 (Callback):Reactive Network在监听到源链的事件后,向 Destination 发出的“执行指令”。
-
回调地址 (Callback Proxy Address):部署在目的地链上的一个特殊合约(Proxy),用于接收并校验来自 Reactive Network 的指令。
-
Hyperlane:跨链消息传输协议,Reactive Network 的智能合约无法自己直接操作另一条链,这就需要Hyperlane完成跨链。
Reactive Contracts收到源链消息后,发送回调指令,调用 Reactive Network 上的 Hyperlane Mailbox 合约的 dispatch() 函数,Mailbox 接收指令后给它贴上“目的地地址”、“目标链 ID”和“消息负载”的标签,并将其存入出站队列,发送给目的地链的Hyperlane Mailbox。目的地链的 Hyperlane Mailbox 会触发 handle() 函数,将指令最终送达回调代理地址。
Reactive Network的经济机制
Reactive Network 通过 REACT 代币 + 余额 + 债务系统 来支付智能合约执行和跨链回调的费用。
Reactive Contract 类似一个钱包账户,必须有REACT TOKEN余额,用于支付计算费用、支付 callback 费用、支付跨链交易,如果余额不足合约将无法运行。
Reactive Network的合约资金分成三种状态
-
Balance(余额):合约当前可用资金,可以直接用于执行任务。
-
Debt(债务):系统记录的未结算费用。产生原因:任务已经执行但费用还没完全结算。
-
Reserves(储备):系统预留的资金,用来保证callback 可以正常执行、资金安全、系统稳定,相当于押金。
Reactive Contract运行时需要支付两类费用:
-
RVM 执行费用:执行时不需要用户手动提交 gas price,RVM 执行完策略逻辑再统一结算费用。从余额中扣除。
-
跨链、回调费用:包含跨链执行费用、callback 交易费用。执行前从余额中预留一部分到 Reserves,从Reserves扣除,确保最后一步的回调不会失败!
|
|
双状态
在 Reactive Network 的架构中,双状态是其核心设计,旨在解决传统区块链(如以太坊)无法主动感知外部事件的局限性。
简单来说,RVM 运行在一个能够同时看到外部链状态和自身反应状态s的环境中。
- 被监听的链的状态:
这是Reactive 合约所监测的“目标链”(如以太坊、Polygon、BSC)上的原始数据。
特点:只读。Reactive 合约观察这些链上发生的Event和状态变化,但不能直接通过 RVM 修改它们。
- Reactive State:
指 Reactive 合约自身的存储空间。
特点: 可读写。它记录了合约根据观察到的数据所做出的“判断”和“反应逻辑”,并决定何时触发跨链指令(Callback)。

Subscription订阅
Subscription 让 Reactive Contract 监听某条链上某种事件,当事件发生时自动触发合约逻辑。
一个Subscription包含chain_id、contract(监听哪个合约)、topic_0(事件类型)、topic_1(事件参数1)…这些参数来自 EVM event log topics。
一个Reactive Contract 可以监听多个事件。
不能创建“全局订阅”,系统不允许:监听所有链、监听所有合约、监听某链所有事件,必须指定链+合约/事件
如何创建 Subscription
通过 Reactive Network system contract 调用:service.subscribe(…)
-
在 constructor 中创建(静态订阅),适合永久监听某事件。
-
Reactive Contract 根据事件动态创建订阅。
Wildcard 通配符监听
例如:
|
|
监听某合约 所有事件
|
|
问题
