定时任务是为了实现在Vite链上定期发交易,或者延时发交易的一种去中心化方案。例如,共识信息合约定期发放超级节点奖励,交易所合约定期删除过期订单,小游戏合约延期开奖等。
使用说明
用户在注册一个定时任务时,给定时任务合约发送一笔请求交易,支付一定的费用,并填写相关参数。请求交易哈希即为定时任务id。当达到任务触发条件时,定时任务合约会主动向交易接收地址发起一笔请求交易,调用指定接口,并传入任务id和触发条件。
定时任务参数包括: - 触发类型:按时间触发/按快照块高度触发 - 开始时间或高度:第一次触发的时间或高度,如果填历史时间或高度,则以此为基准计算第一次触发时间或高度 - 触发间隔:触发时间间隔/触发高度间隔,时间间隔不低于一轮(即75s),高度间隔不低于75个快照块 - 触发窗口:触发时间窗口/触发高度窗口,时间窗口不低于一轮(即75s),高度窗口不低于75个快照块,触发窗口小于等于触发间隔。如果在窗口内未触发,则跳过本次触发 - 结束条件类型:到达指定时间或高度后结束/触发若干次后结束/永不结束 - 结束条件:指定时间或高度/触发次数/- - 如何计算下一次触发:按固定间隔触发/按实际触发时间或高度顺延 - 交易接收地址 - 退款地址
实现原理
定时任务合约是一个内置合约,定时任务合约链的响应交易由公共委托共识组的节点出块。
定时任务合约链上有两种类型的响应交易,一类是普通的响应交易,用于响应定时任务的注册、充值和删除交易;另一类是定时任务的触发交易,用于主动触发定时任务。
定时任务的触发交易是一种特殊的响应交易,没有对应的请求交易,这种交易本质上是由快照块出块触发的(显式依赖一个快照块),当公共委托共识组的出块节点检测到快照块增长事件时,会尝试依赖这个快照块出一个定时任务触发交易,根据快照块高度和时间依次触发满足触发条件的定时任务,删除欠费到期的定时任务,销毁触发定时任务的费用。
触发定时任务时,快照块、定时任务触发交易块、业务响应交易块的依赖关系如下图:
多链设计采用两层结构。作为目前的主链,负责侧链注册和资产抵押。侧链可以是与主链架构相同的同构链,也可以是异构链。侧链需要在主链上注册,主链治理委员会批准后才能激活与主链或其他侧链的跨链交互。主链注册时,本体侧链需要抵押一...
2021元宇宙的第一年,很多品牌都在努力打造虚拟代言人和数字藏品。到2022年,元宇宙开始参与包装设计。什么是元宇宙?元宇宙的发源可以追溯到上一轮虚拟现实(VR/AR)如今,我们正处于元宇宙相关技术不断演变的时代。未来,...
原文标题:Protocol design: Why and how原文作者:Eddy Lazzarin原文编译:Sissi导读:a16z 以其深度文章在加密领域树立了指导行业发展的重要地位,为我们提供了认知提升和转变所需...
为什么BIC圆珠笔的设计73年没有改变?️在不断变化的世界中,BIC钢笔经受住了时间的考验,在令人印象深刻的73年里保持了其标志性设计。在这个创新和不断变化的消费者偏好的时代,BIC钢笔背后的故事揭示了对简单性和功能性的...