1. 链一财经首页
  2. 资讯

Vite测试网络将在11月上线 全球领先DAG公链了解一下

一、前言
经过紧张有序的Vite主网各项模块的开发调试,Vite测试网络已经进入到联调阶段,预计将于11月上线。

测试网络是ViteLabs团队非常重要的阶段性成果,上线之后,技术团队会针对Vite测试网络进行多维度的测试,为打造健壮稳定的Vite主网做充分的准备。

二、功能模块
测试网络包括的主要功能模块如下:

1、DAG 账本结构
2、内置智能合约
3、HDPoS分层共识机制
4、异步通信 
5、快照链
6、Vite铸币
7、交易配额
8、超级节点注册和选举

三、功能解读
1、【免手续费交易】Vite提供的方式为,低频用户通过简单的PoW获取基础配额,高频用户通过抵押Vite Token获取大额配额,通过用户可配置的自动签收功能来保证接收有效交易。支持用户免手续费交易,这在BTC和ETH中是无法实现的,Vite的此项功能为公链的落地带来了更多的想象力。

2、【内置智能合约】内置智能合约也是重要的部分,为定时调度、去中心化交易所等功能打下基础。

3、【HDPoS分层共识】个人账户通过私有共识组进行共识,合约账户通过委托共识组进行共识,快照链通过快照共识组进行共识。DAG共识保证账本快速写入,快照链共识提高交易的不可篡改性。并且后续版本将会支持侧链、私有链、联盟链的搭建。

4、【更快速】为了提高公链的性能,DAG账本结构和异步架构也是本次测试网络上线非常核心的部分。主要有三部分:请求和响应的异步设计,交易写入和确认的异步设计,合约间通信的异步设计。同时辅助推拉结合的P2P数据传输方案,提高系统性能。

5、【更安全】快照链部分会定期快照所有DAG账本,保证交易的不可篡改。

6、【一键铸币】支持内置合约铸币,免去了用户在以太坊发币的高额的技术成本,可以技术低成本也更安全的发行数字货币

7、【超级节点】支持超级节点的注册和选举,对于有意向了解Vite超级节点的用户和团队,可以提前尝试超级节点的注册和选举流程。

四、技术方案说明
【DAG 账本】

由多条账户链、多条合约链及一条快照链及账户合约链间关系共同构成了DAG账本。对于账户或合约链来说,每条链包含请求块和相应块;账户链的出块权由账户所有者产生;合约链的出块权由共识组参与者产生,例如默认的超级节点构成的共识组;快照链的出块权是当前时间具有出块权限的超级节点。所有的接收块必然依赖于其他账户或者合约的发送块;快照块需要依赖所有被快照打包的账户块和合约块;这就构成了Vite的账本结构。

这种账本结构允许互不相干的交易“并行”写入,降低冲突概率,提高系统吞吐能力。这种用户DAG结构有先天的安全性缺陷。这是由于交易是按账户分组的,一个交易只会附加到其所属账户的账户链末端,其他账户产生的交易不会自动成为该交易的后继节点,因此,一些交易被回滚的概率不会随时间推移而降低。Vite通过独创的快照链技术,弥补了这一缺陷,实现了白皮书中承诺的用户链、合约链和快照链的全部功能。

Vite测试网络将在11月上线 全球领先DAG公链了解一下

【智能合约】

智能合约目前完成了必要的内置合约的开发,已经实现的内置合约包括:超级节点注册、超级节点投票、抵押Vite Token、创建委托共识组。并且即将支持用户编译智能合约代码,发布智能合约,vm支持大部分evm指令。

其中:

超级节点注册,当一个节点申请注册成为超级节点时,需要发起一个注册交易,并支付100w Vite Token,锁仓3个月,锁仓开始时间为response交易引用的快照块的时间。当response交易被快照后,这个节点就可以作为超级节点候选被投票,超级节点不能重复注册。

超级节点投票,用户账户可以发起一笔交易,为超级节点投票,一个用户只能投一票。当一个节点申请注册成为超级节点并锁仓超过3个月时,可以发起一个注销超级节点的交易,退出超级节点候选列表,提取锁仓的ViteToken。

抵押ViteToken,抵押人指定受益人、抵押金额和抵押到期时间,受益人可以在抵押期间使用抵押金额对应的额度。当抵押的response交易被快照时,受益人可以享受相应的额度。一个受益人可以持有多个抵押人抵押的ViteToken;一个抵押人可以给多个受益人抵押ViteToken;当抵押人在抵押到期时(抵押开始时间 + 抵押时间)取回抵押的ViteToken,取回时需要指定受益人和金额,金额不能大于抵押人为受益人抵押的总金额。

创建委托共识组,创建委托共识组需要抵押1000ViteToken,最小抵押时间为3个月。系统内置计票规则、超级节点注册条件、投票条件,后期可支持自定义规则。

【HDPoS机制】

个人账户通过私有共识组进行共识,合约账户通过委托共识组进行共识,快照链通过快照共识组进行共识。DAG共识保证账本快速写入,快照链共识提高交易的不可篡改性。生产用户账户和合约账户的请求交易和响应交易对应的区块,分别写入请求方和响应方的账本,完成账户链的局部共识。对账本中的数据进行快照,由超级节点根据出块计划依次生产快照块,完成全局的共识,实现不可篡改。

【异步通信】

Vite中的异步设计主要包括三个方面:

1、请求和响应的异步设计
2、交易写入和确认的异步设计
3、合约间通信的异步设计

Vite中的交易分为请求交易和响应交易。无论是一笔转账还是一次合约调用,均会在账本上先后生成两笔交易。发送交易或者调用合约不会因为接收者是否在线或者响应过慢而受到阻塞,有效提高吞吐。同时,不同账户的交易可以分布在网络中的不同的节点上,为系统带来了扩展性。

交易写入账本和被系统确认也是异步的。不同的用户可以并行的将交易写入账本,快照链将以固定的速度对账本进行快照。一旦交易被快照,就可以认为是一次确认,随着快照链的增长,确认数也会累积。异步确认机制可以削平交易写入速率的峰谷,最大化利用系统资源。

Vite的合约间通信采用了一种基于消息驱动的架构,合约间不共享状态,只通过彼此发送消息进行通信。Vite的账本担任了消息中间件的角色,并且可以保障消息的Exactly Once语义。基于消息的架构具有高吞吐和扩展性的优势。但与此相应,付出的代价是编程模型变得相对复杂,无法保证强一致性,而且有可能使延迟变大。经过认真的研究,我们发现在实际场景中,强一致性语义是可以用BASE(最终一致性)语义替代的。由于Vite的HDPoS共识算法可以保障交易确认在一秒之内完成,因此,延迟的增加仍然在可控范围之内。

【快照链】

超级节点负责快照块的生产,超级节点根据选举结果判断是否该为自己出块时间,如果是自己的出块时间,把验证好的用户块和合约块打包,生成一个快照块,放入到自己的快照链账本里面,并广播出去;对于网络上传来的快照块,所有全节点会根据竞选结果验证出块权是否正确,并且验证数据的合理性;由于网络环境等因素导致的超级节点出块分叉,采用最长的合法链作为本地快照链的世界状态,同时保存分叉数据,以防后续分叉数据成为更长的本地快照链。如果发生了分叉(本地节点产生了更长的快照链和之前认定的快照链不存在延续关系),那么本地会将本地账本切换到最长快照链对应的世界状态,对应的用户链和合约链也会和快照链严格保持一致。

Vite测试网络将在11月上线 全球领先DAG公链了解一下

【Vite铸币】
因为区块链金融属性是基础的能力,因此Vite测试网络原生支持了铸币内置合约,和以太通过外置合约方式实现不同,我们直接原生支持了快速铸币,用户只需要给内置铸币合约地址发送一笔交易就可以轻松铸币。用户发送request块铸币交易给铸币合约,填写必要的token信息;铸币合约地址,校验成功后,生成了response块,并且发送给指定的地址所铸币的所有token;被指定的地址,生成response块,接收所铸币的所有token;同时快照链快照了以上所有块,铸币成功。

Vite测试网络将在11月上线 全球领先DAG公链了解一下

【交易配额】

为了避免Vite上出现类似于比特币和以太坊高昂的手续费,Vite免收手续费。手续费是为了系统的稳定性和保证合理有效的交易设立的,因为Vite为保证稳定性和支撑合理交易,提出了配额的概念,所以在交易和执行合约过程中无需支付手续费,只需要免费的获取配额。充分考虑Vite的低频用户和高频用户的不同诉求,有两种方式可以获取配额:一种方式是无门槛的计算POW,通过有效的POW,可换取满足普通用户正常使用的配额,及POW作为系统限流合理使用的门槛。另一种方式是通过抵押vite来换取配额,抵押的vite越多,获取的配额越多,及单位时间内可以发送和接收的交易越多,例如适用于高频交易的商户地址。

另外测试网络充分考虑轻钱包和移动端计算POW的不变性,提供了计算POW的矿池API,在云端帮助普通用户计算POW的需求。

Vite测试网络将在11月上线 全球领先DAG公链了解一下

【超级节点注册和选举】
节点抵押Vite竞选超级节点,用户为超级节点投票,通过调用投票内置合约;每轮次统一投票结果,确定下次的超级节点名单以及超级节点的出快照块顺序。例如25个节点,每个节点连续出三个块,每个块时间1s,那么一轮即为75s左右。超级节点发现新的一轮即将开始,开始统计内置投票合约链结果,开始生成下一轮25个节点出块顺序。后续节点按照该顺序出块。

Vite测试网络将在11月上线 全球领先DAG公链了解一下

【交易优化】
为了兼顾安全性并且满足对高吞吐、低延迟和扩展性的要求,我们在系统模块划分和系统模块之间的调用投入了非常多的时间完善,下图为一笔交易发生的过程:

Vite测试网络将在11月上线 全球领先DAG公链了解一下

说明:
pool(本地世界状态判断模块)将接收来自于节点Producer模块生产的快照块、节点发送交易的request块、在途(生产响应块模块)生产出的response块和其他节点产生网络传递过来的以上三种块。

发送交易节点:钱包或者命令行通过vite rpc 生产request块,发送给pool(本地世界状态判断)模块,pool通过生产验证模块(判断配额,vm验证等)将数据插入到本地账本,同时通过P2P广播到网络上。

接收交易节点:接收交易的地址节点上线后,会从网络获取到request块,并且交给onroad pool(在途)来生产接收块,确定交易成功。并把response块广播到网络中。

挖矿节点:超级节点会收集所有的用户块,并且根据共识结果,在自己的出块周期内打包所有的确定的用户交易块和合约块,生成snapshot块,广播到网络中。

根据国家《关于防范代币发行融资风险的公告》,大家应警惕代币发行融资与交易的风险隐患。

本文来自LIANYI转载,不代表链一财经立场,转载请联系原作者。

发表评论

登录后才能评论

联系我们

微信:kkyves

邮件:kefu@lianyi.com

时间:7x24,节假日bu休息

QR code