热点链接

084777祖师心水论坛

主页 > 084777祖师心水论坛 >
Algorand源码架构分析
时间:2019-09-05

  本篇主要介绍Algorand源码中关于agreement的模块结构及业务逻辑架构,也是源码中比较难以理解的地方,其它诸如节点、区块、密码、P2P网络的结构与其它区块链项目都是大同小异,很容易理解,这里就不再赘述。

  Node模块中还提供了各种pool,这些pool用于对网络中的proposal与vote进行验证时的任务队列。

  协议是Algorand最重要的一个模块,在其中用service做一个总的任务调试,状态机负责对投票进行统计,demux负责具体action的执行,从网络上收集proposal与vote,是Algorand的二元拜占庭(BBA)实现的部分。

  模块A做完自己的具体工作,会给externalEvent通道写入event,模块B从这些通道读数据,进行对应的统计处理;

  模块B正好反过来,是input的消费者,是output与ready的生产者。

  这里的代码主要是对vote与proposal进行统计,一个区块共识周期内的两轮多步投票的统计都是在这里完成的,分为5层状态机,每层只负责处理与自己有关的,上层处理不了的,移交给下层状态机,下层状态机将处理结果返回给上层状态机,最终发出对应的action。

  Player即playmachine实现了整个状态机的最顶层功能,负责记录当前哪个区块第几个阶段第几步的共识环节,以及超时等基础信息。

  voteTracker是step层的主类,用来存储vote,是最初发出vote超过阈值的地方。香港聚宝盆

  在这一模块中定义有两个类,一个是router接口,一个是routerHandle结构体。前者用于真正的event处理,而后者只是为了构造一个新的结构,加入写日志功能及标明状态机类型,起辅助功能。routerHandle的dispatch最终其实是转到了对应的router的dispatch中去执行的。

  状态机针对vote与proposal进行统计后,会发出一系统的action,这些都由各个对应的类去处理。

  在actions.go里会看到不同种类的action,我们只要在对应的类里去查就知道如何处理各个action,action就是对应我们实际要处理的各个动作。

  在demux.go文件里,next函数负责从消息通道里获取消息,转化成对应的事件传给状态机

  MakeProposals发出一个proposal,其实就是提议一个区块,请问一下oppo 手机好吗?同时自己对这个区块进行投票。MakeVotes就是对proposal直接进行投票。

  我们知道是对credential,也就是凭证做排序,最小的就是领导者。这些其实发生在每一个节点上,在每一个节点上对所有voteVerified的事件做处理,比较大小得到。

  这里的freezer就是proposalSeeker的一个对象,这个类负责记录credential值最小的那一个,那停止时间是什么呢,就是说这个时间段的结束时间是什么呢?

  这样freeze就对leader完成了选定,我们再查什么时候发出这个事件。这个是由超时函数来控制的,在主状态机里,timeout事件,当step是soft步骤时,超时,就进入cert阶段,这时就得终止这个credential最小值的选择了。

  本篇并未对Algorand的每个细节知识进行深入的阐述,而是从代码的大框架上做一个简单说明,希望可以帮助大家理清数据流的走向,把握源码架构。

  声明:链世界登载此文仅出于分享区块链知识,并不意味着赞同其观点或证实其描述。文章内容仅供参考,不构成投资建议。投资者据此操作,风险自担。此文如侵犯到您的合法权益,请联系我们

  比特币价格在过去两个月里在1万美元大关来来回回多达20次,但一些分析师...

  普华永道卢森堡公司称,此举旨在应对客户的需求,并应对卢森堡加密技术采用...

  本文主要试图阐述两个观点:应用倒逼基础设施的迭代和演进;应用是生态平台...

  9月4日上午,一则消息刷爆了朋友圈。[2019-09-03]他只记得上小学前就常常跟着当小学老师的二妈去学校玩,46999玉9月4日上午,一则消息刷爆了朋友圈...

  在全球央行集体放水的过程中,为了不使资产稀释,我们需要配置抗通胀的资产...

  迟迟未获批的VanEck 比特币ETF以另类的方式出现在市场之上,会带...


Copyright © 2002-2011 DEDECMS. 织梦科技 版权所有 Power by DedeCms
财神报玄机图| 099kj心水论坛| 香港挂牌最完整之全篇| 香港马会天线宝宝| 九龙密报六肖| 牛魔王信封曾女士1一2| 香港牛魔王管家婆| 香港马会白小姐资料| 高清跑狗彩图图库| 雷锋报开奖结果|