ITPub博客

首页 > 区块链 > 区块链 > MetaForce佛萨奇2.0系统丨MetaForce佛萨奇2.0系统开发(方案及详细)

MetaForce佛萨奇2.0系统丨MetaForce佛萨奇2.0系统开发(方案及详细)

原创 区块链 作者:Tg_StPv888 时间:2023-02-16 16:32:28 0 删除 编辑

  随机性调度算法:即针对同一批交易调度产生的交易执行顺序是随机的,即使同一节点针对同一批交易连续运行两次调度算法产生的结果也可能不同。此类算法往往调度速度较快,其难点在于验证节点如何保证执行顺序与提案节点一致并得到相同的执行结果。因此,交易的执行顺序必须打包至区块中并由其他节点据此验证。


  确定性调度算法:即针对同一批交易调度产生的交易执行顺序是确定的。此类算法的优点是交易执行顺序产生稳定且可复现,因此理论上讲交易执行顺序的信息可不包含在区块内,各验证节点运行并行调度算法即可进行校验。


  主要步骤:


  长安链调度模块将所有交易并行执行,并在执行中将所有交易的写操作都记录在内存缓存中;


  After the execution of each transaction,check whether all the keys in the read set are modified by other transactions.If not,write the set of the transaction into effect(ApplyTxSimContext).If modified by other transactions,add the transaction back to the queue to be executed for re-execution;


  待所有交易执行完毕后,通过分析所有交易的读写集构建DAG。若交易间存在“读-写”、“写-读”、“写-写”冲突,根据执行时的先后顺序构建DAG中的边。


  因存在冲突的交易执行时间存在随机性,最终构建的DAG也无法预测,所以此算法为随机性调度算法。在进行冲突检测时,长安链应用了位图等数据结构进行工程优化,极大地提升了交易的执行效率。


  Liquid网络核心包里包含了框架核心接口定义、通用类型定义及概念抽象定义。


  核心包内每个子包说明如下:


  core/basic基础接口包,包含Starter、Stopper以及两者组合封装接口Switcher。


  core/blacklist黑名单接口定义。


  core/broadcast PubSub消息发布/订阅功能接口定义。


  core/discovery节点发现相关接口定义,包含Announcer、Discoverer以及两者组合封装接口Discovery。


  core/groupmulticast组播组件接口定义。


  core/handler用于回调的处理器函数类型定义。


  core/host网络Host接口定义、网络活动事件通知接口定义。


  core/mgr管理组件接口定义,包含连接管理(ConnMgr)、连接状态维护(ConnSupervisor)、应用协议管理器(ProtocolManager)、应用协议交换机(ProtocolExchanger)、发送流池(SendStreamPool)、发送流池管理(SendStreamPoolManager)、接收流管理(ReceiveStreamManager)等接口定义。


  core/network传输层网络状态机相关接口定义,包含发送流(SendStream)、接收流(ReceiveStream)、双向流(Stream)、连接(Conn)、状态(Stat)、拨号器(Dialer)、监听器(Listener)、网络状态机(network)等以及相关的其他的接口或类型定义。


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70016646/viewspace-2935621/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
专业区块项目开发团队:18028578624微電

注册时间:2022-04-13

  • 博文量
    158
  • 访问量
    95690