CN109376115A - 一种基于工作量证明的计算装置及计算方法 - Google Patents
一种基于工作量证明的计算装置及计算方法 Download PDFInfo
- Publication number
- CN109376115A CN109376115A CN201811012925.2A CN201811012925A CN109376115A CN 109376115 A CN109376115 A CN 109376115A CN 201811012925 A CN201811012925 A CN 201811012925A CN 109376115 A CN109376115 A CN 109376115A
- Authority
- CN
- China
- Prior art keywords
- computing
- fixed value
- computing chip
- traversal
- order
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
- G06F15/17356—Indirect interconnection networks
- G06F15/17368—Indirect interconnection networks non hierarchical topologies
- G06F15/17381—Two dimensional, e.g. mesh, torus
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Mathematical Physics (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Power Engineering (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
- Advance Control (AREA)
Abstract
一种基于工作量证明的计算装置,包括控制器和多个计算板;每一计算板包括多个级联的计算芯片,且第一级计算芯片与控制器连接;控制器,用于获取POW计算任务并发送至第一级计算芯片;POW计算任务包括第一固定值;第一级计算芯片,用于接收POW计算任务并转发至与其连接的后一级计算芯片;每一级计算芯片,分别预先配置有遍历地址,用于在接收到POW计算任务后,基于遍历地址进行计算,并基于遍历的计算结果和第一固定值进行计算。通过提高单个计算芯片的计算能力,以提高单台工作量证明的计算装置的计算能力,从而简化了对POW计算任务的计算过程,提高了单位时间的计算速度。
Description
技术领域
本发明涉及计算装置,尤其涉及一种基于工作量证明的计算装置及计算方法。
背景技术
在计算机和互联网领域,工作量证明的一个典型应用例子是防止垃圾邮件的hashcash系统。hashcash的设计思路基于单向函数,即在一个方向上易于计算而反方向却难于计算的数学函数。hashcash让我向所有想给我发送电子邮件的人都分发一个标准质询,要求邮件发送者生成一个字符串,在它们的哈希值中有多个前导零。根据哈希算法(如SHA1、SHA256、SHA3)的一致性与加密强度,找出具有N个前导零的哈希值的惟一已知途径是平均2^N次的哈希计算。然而,要确认一个字符串的哈希值满足要求,只需要进行一次哈希计算即可。为了找到一个符合要求的字符串,发送者需要进行数百万次哈希计算,在CPU上运行该代码,需要一秒到数秒时间。对于正常发送邮件的使用者来说,这个时间是完全可以接受的;但是对于每天要发送数万封垃圾邮件的垃圾邮件系统而言,每发送一封垃圾邮件需要额外的几秒钟的时间,将是一个不小的负担。
工作量证明的另一个应用是区块链的POW共识机制。在区块链系统中,节点要竞争区块的记账权,需要把交易数据按照一定的格式组织起来,计算出交易数据的哈希值,然后和其它固定信息和随机信息一起组成最终的输入信息,用于计算哈希值,如果哈希值具有N个前导零,则认为该节点成功获得了该区块的记账权。hashcash和区块链的POW共识机制是相通的,只不过二者采用了不同的哈希算法而已。
当要求的哈希值的前导零非常多时,例如竞争比特币的记账权就需要至少70个前导零。这么大的计算量超出了任何一台计算机的计算能力,也超出了任何一台超级计算机的计算能力,甚至也超出了所有超级计算机的计算能力之和。如此巨大的计算能力,需要由数以亿计的专用ASIC芯片高效组织起来,共同完成这个计算任务。
目前哈希计算的组织方式虽然有巨大的进步,但是仍然有不足之处。随着单个芯片的计算能力的增长,以及单台POW计算装置的计算能力的大幅提升,原有的方式暴露出了严重的计算性能不足的问题。
发明内容
(一)发明目的
本发明的目的是提供一种基于工作量证明的计算装置,简化工作量计算装置的配置,通过提高单个计算芯片的计算能力,以提高单台工作量证明的计算装置的计算能力,从而简化了对POW计算任务的计算过程,提高了单位时间的计算速度。
(二)技术方案
为解决上述问题,本发明的第一方面提供了一种基于工作量证明的计算装置,包括控制器和多个计算板;每一所述计算板包括多个级联的计算芯片,且第一级计算芯片与所述控制器连接;控制器,用于获取POW计算任务并发送至第一级计算芯片;所述POW计算任务包括第一固定值;第一级所述计算芯片,用于接收所述POW计算任务并转发至与其连接的后一级计算芯片;每一级所述计算芯片,分别预先配置有遍历地址,用于在接收到所述POW计算任务后,基于所述遍历地址进行计算,并基于遍历的计算结果和所述第一固定值进行计算。
进一步的,所述遍历地址至少包括:至少一个高位遍历地址段;所述控制器,用于基于每一级所述计算芯片的计算能力,对每一级所述计算芯片配置所述高位遍历地址段;所述每一级所述计算芯片的高位遍历地址段的分别设置有起始遍历位;每一级所述计算芯片,在接收到第一触发信号后,基于自身的所述高位遍历地址段从所述起始遍历位进行计算,得到第二固定值。
进一步的,所述遍历地址还包括:至少一个低位遍历地址段;所述计算芯片包括多个计算单元;每一所述计算单元,分别预先配置有所述低位遍历地址段,在接收到第二触发信号后,从自身的所述低位遍历地址段开始计算。
进一步的,所述计算芯片还包括预处理模块和主控单元;预处理模块,用于对每一所述计算单元的低位起始遍历地址中的公共遍历部分进行计算,得到第三固定值并发送至每一所述计算单元;多个计算单元,用于获取所述第一固定值、所述第二固定值以及所述第三固定值;以及用于将所述第一固定值、所述第二固定值、所述第三固定值与剩余遍历部分的每一个随机数组合,并进行哈希计算,当哈希计算结果符合预期条件时,将所述第二固定值、所述第三固定值以及所述当前随机数发送至主控单元;所述剩余遍历部分是该计算单元的遍历区间除去所述公共遍历部分;所述主控单元,用于将当前计算芯片的所述第二固定值、所述第三固定值以及当前所述随机数发送至所述控制器或者逐级向上发送至所述控制器。
进一步的,所述控制器,还用于基于所述第一固定值、每一级所述计算芯片的第二固定值、第三固定值以及当前所述随机数进行验算,若验算通过,则将所述每一级计算芯片的第二固定值、第三固定值以及当前所述随机数发送至下发POW计算任务的服务器。
进一步的,所述控制器还用于在所述计算芯片复位后,发送config命令至第一级计算芯片,所述config命令包含第一级计算芯片的遍历地址;所述第一级计算芯片,用于基于所述config命令将地址配置为遍历地址,以及对所述config命令进行修改形成新的config命令并发送;所述新的config命令包含后一级计算芯片的遍历地址;其余所述计算芯片,用于在接收到所述新的config命令时,依次进行配置和修改的操作。
进一步的,所述每一级计算芯片包括串口;其中,所述串口包括:下行串口,用于接收所述控制器或前一级所述计算芯片传输的数据并向后一级所述计算芯片转发所述数据;上行串口,用于接收后一级所述计算芯片传输的数据或当前计算芯片产生的数据并向前一级所述计算芯片或所述控制器转发所述数据;所述串口配置为快速转发模式。
根据本发明的另一个方面,提供了一种基于工作量证明的计算方法,包括:控制器获取POW计算任务并发送至第一级计算芯片,其中所述POW计算任务包括第一固定值;第一级所述计算芯片接收所述POW计算任务并转发至与其连接的后一级计算芯片;所述控制器预先分别对每一级所述计算芯片配置遍历地址;每一级所述计算芯片在接收到所述POW计算任务后,基于所述遍历地址进行计算,并基于遍历的计算结果和所述第一固定值进行计算。
进一步的,所述控制器预先分别对每一级所述计算芯片配置遍历地址包括:所述遍历地址至少包括:至少一个高位遍历地址段和至少一个低位遍历地址段;所述控制器基于每一级所述计算芯片的计算能力,对每一级所述计算芯片配置所述高位遍历地址段,其中所述每一级所述计算芯片的高位遍历地址段的分别设置有起始遍历位;所述控制器预先分别对所述计算芯片的每一所述计算单元配置所述低位遍历地址段。
进一步的,所述每一级所述计算芯片在接收到所述POW计算任务后,基于所述遍历地址进行计算,并基于遍历的计算结果和所述第一固定值进行计算包括:每一级所述计算芯片,在接收到第一触发信号后,基于自身的所述高位遍历地址段从所述起始遍历位开始进行计算,得到第二固定值;所述计算芯片的每一所述计算单元在接收到第二触发信号后,从自身的所述低位遍历地址段开始计算。
进一步的,所述计算芯片的每一所述计算单元在接收到第二触发信号后,从自身的所述低位遍历地址段开始计算包括:所述计算芯片的预处理模块对每一所述计算单元的低位起始遍历地址中的公共遍历部分进行计算,得到第三固定值并发送至每一所述计算单元;多个所述计算单元获取所述第一固定值、所述第二固定值以及所述第三固定值;多个所述计算单元将所述第一固定值、所述第二固定值、所述第三固定值与剩余遍历部分的每一个随机数组合,并进行哈希计算,当哈希计算结果符合预期条件时,将所述第二固定值、所述第三固定值以及所述当前随机数发送至主控单元,其中所述剩余遍历部分是该计算单元的遍历区间除去所述公共遍历部分;所述计算芯片的主控单元将当前计算芯片的所述第二固定值、所述第三固定值以及当前所述随机数发送至所述控制器或者逐级向上发送至所述控制器。
进一步的,在所述每一级所述计算芯片在接收到所述POW计算任务后,基于所述遍历地址进行计算,并基于遍历的计算结果和所述第一固定值进行计算之后还包括:所述控制器基于所述第一固定值、每一级所述计算芯片的第二固定值、第三固定值以及当前所述随机数进行验算,若验算通过,则将所述每一级计算芯片的第二固定值、第三固定值以及当前所述随机数发送至下发POW计算任务的服务器。
进一步的,所述控制器预先分别对每一级所述计算芯片配置遍历地址具体包括:所述控制器在所述计算芯片复位后,发送config命令至第一级计算芯片,所述config命令包含第一级计算芯片的遍历地址;所述第一级计算芯片基于所述config命令将地址配置为遍历地址,以及对所述config命令进行修改形成新的config命令并发送;所述新的config命令包含后一级计算芯片的遍历地址;其余所述计算芯片在接收到所述新的config命令时,依次进行配置和修改的操作。
技术方案小结
将控制器与多个计算板上的计算芯片直接连接,每个计算芯片多级级联,即多个计算芯片在计算板上首尾依次连接,实现POW计算任务的一级一级的转发。控制器对每个计算板的每级计算芯片都按其计算能力预先配置有遍历地址,每一级计算芯片在接收到POW计算任务时,根据自身预先配置有的遍历地址一步步进行计算,可以在计算芯片内部完成更为完整的哈希计算。
(三)有益效果
计算装置减少了对辅助计算单元这一部件的设计,在减少辅助计算单元设计的同时并没有使得计算装置在哈希计算这一功能上有任何缺失。本申请的计算装置,在计算芯片中即可实现更加完整的哈希计算功能。同时,设计了多个计算版,每个计算板上有多级级联的计算芯片,通过减少辅助计算单元的设计可以优化控制器与计算芯片之间、多个计算芯片之间的互联机制。从而能够降低计算装置的成本和复杂性;并且大幅提高了整台工作量计算装置的计算能力。本申请计算装置的计算能力,可以达到原有装置计算能力的十倍以上。
附图说明
图1是现有技术中的POW计算装置结构示意图;
图2是本申请一实施方式中工作量证明计算装置结构示意图;
图3是本申请一实施方式中计算芯片的结构示意图;
图4是本申请另一实施方式中基于工作量证明的计算方法流程图;
图5是本申请另一实施方式中控制器对计算芯片配置遍历地址的方法流程图;
图6是本申请另一实施方式中计算芯片根据遍历地址段进行计算的方法流程图;
图7是本申请另一实施方式中计算芯片进行哈希计算的方法流程图;
图8是本申请又一实施方式中基于工作量证明的计算方法流程图;
图9是本申请又一实施方式中控制器对计算芯片配置遍历地址的具体方法流程图;
图10是本申请又一实施方式中串口进行数据传输的方法流程图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明了,下面结合具体实施方式并参照附图,对本发明进一步详细说明。应该理解,这些描述只是示例性的,而并非要限制本发明的范围。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本发明的概念。
显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本发明的描述中,需要说明的是,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
此外,下面所描述的本发明不同实施方式中所涉及的技术特征只要彼此之间未构成冲突就可以相互结合。
请参阅图1,图1是现有技术中的POW计算装置结构示意图。
如图1所示,现有技术中的POW计算装置一般包括控制器、辅助计算单元、以及一个或者多个计算板组成,每个计算板又包含多个计算芯片。在进行计算时,控制器获取POW计算任务直接发送给辅助计算单元,需要通过辅助计算单元对获取的POW计算任务进行分配和预处理生成一个或多个需要分配给计算芯片的多个中间的计算任务,而这个计算任务的数据量是非常大的。例如为一个计算任务为80个字节,而一个计算板上假如有30个计算芯片,则需要在一秒钟的时间内将这30个计算芯片的任务通过第一级计算芯片的串口顺序的发给依次排布在计算板上的各个计算芯片。这样在同一时刻发送2000个以上的任务,庞大的任务量会远远超出串口最大流量的限制,进而会达到或超出串口速度限制。当达到或超出串口速度限制时,则会计算装置的工作效率、计算能力会极大的降低。
其中,POW为Proof Of Work的英文缩写,即工作量的证明,简称工作证明。
请参阅图2,图2是本申请一实施方式中工作量证明计算装置结构示意图。
本发明的一实施方式提供的一种基于工作量证明的计算装置,如图2所示,包括控制器和多个计算板;每一计算板包括多个级联的计算芯片,且第一级计算芯片与控制器连接;控制器,用于获取POW计算任务并发送至第一级计算芯片;POW计算任务包括第一固定值;第一级计算芯片,用于接收POW计算任务并转发至与其连接的后一级计算芯片;每一级计算芯片,分别预先配置有遍历地址,用于在接收到POW计算任务后,基于遍历地址进行计算,并基于遍历的计算结果和第一固定值进行计算。
其中,当控制器向其上一级的服务器获取到POW计算任务时,先直接发送给与其连接的第一级计算芯片,由于计算芯片内部已经配置好遍历地址,第一级计算芯片在根据自己内部的遍历地址进行计算的同时,向与其连接的后一级计算芯片转发,向该计算板上级联的芯片顺次执行计算和转发POW计算任务(计算与转发同时进行),直至该计算板上最后一级计算芯片接收到POW计算任务开始计算。需要说明的是,可能在不是所有的计算芯片均完成第一个POW计算任务时,第二个POW计算任务已经开始逐级下发,此时开始计算转发第二个POW计算任务。另外,本申请的计算芯片可以为ASIC芯片,但不限于此。
在本实施例中,该装置的结构如图2所示。计算装置减少了对辅助计算单元这一部件的设计,在减少辅助计算单元设计的同时并没有使得计算装置在哈希计算这一功能上有任何缺失。本申请的计算装置,在计算芯片中即可实现更加完整的哈希计算功能。同时,设计了多个计算版,每个计算板上有多级级联的计算芯片,通过减少辅助计算单元的设计可以优化控制器与计算芯片之间、多个计算芯片之间的互联机制。从而能够降低计算装置的成本和复杂性;并且大幅提高了整台工作量计算装置的计算能力。本申请计算装置的计算能力,可以达到原有装置计算能力的十倍以上。
请参阅图2,图2是本申请一实施方式中工作量证明计算装置结构示意图。
在一可选实施例中,如图2所示,遍历地址至少包括:至少一个高位遍历地址段;控制器,用于基于每一级计算芯片的计算能力,对每一级计算芯片配置高位遍历地址段;每一级计算芯片的高位遍历地址段的分别设置有起始遍历位;每一级计算芯片,在接收到第一触发信号后,基于自身的高位遍历地址段从起始遍历位进行计算,得到第二固定值。
在本实施例中,对每级计算芯片的遍历地址都进行的区域划分,划分成不同的地址段,使每个计算芯片内部的不同部件或不同模块进行分工合作,完成其相应计算任务。以一64位的任务为例进行说明,将64位中的高32位和低32位进行划分,其中的高位遍历地址段可以是这高32位中的高8位。一个计算板中的每个计算芯片虽然都配置有高8位的遍历地址段,但是每级计算芯片的起始遍历点不同。也就意味着计算任务是不同的。但是计算能力相同或相似,该高8位的遍历地址段由计算芯片本身进行计算。其中,第一触发信号为脉冲信号,在接收到POW计算任务的同时接收到第一触发信号,开始计算。
请参阅图3,图3是本申请一实施方式中计算芯片的结构示意图。
在一可选实施例中,如图3所示,遍历地址还包括:至少一个低位遍历地址段;计算芯片包括多个计算单元;每一计算单元,分别预先配置有低位遍历地址段,在接收到第二触发信号后,从自身的低位遍历地址段开始计算。
在本实施例中,以一64位的任务为例进行说明,将64位中的高32位和低32位进行划分,其中的低位遍历地址段可以是低32位。一个计算芯片中的每个计算单元对这低32位遍历地址段进行遍历,需要说明的是,每个计算单元分别设置有遍历起始位,从其自身的遍历起始位开始遍历这低位遍历地址段。该低32位的遍历地址段由计算芯片的每个计算单元本身进行计算。其中,第二触发信号为脉冲信号,在接收到POW计算任务的同时接收到第二触发信号,开始计算。
请参阅图3,图3是本申请一实施方式中计算芯片的结构示意图。
在一可选实施例中,如图3所示,计算芯片还包括预处理模块和主控单元;预处理模块,用于对每一计算单元的低位起始遍历地址中的公共遍历部分进行计算,得到第三固定值并发送至每一计算单元;多个计算单元,用于获取第一固定值、第二固定值以及第三固定值;以及用于将第一固定值、第二固定值、第三固定值与剩余遍历部分的每一个随机数组合,并进行哈希计算,当哈希计算结果符合预期条件时,将第二固定值、第三固定值以及当前随机数发送至主控单元;剩余遍历部分是该计算单元的遍历区间除去公共遍历部分;主控单元,用于将当前计算芯片的第二固定值、第三固定值以及当前随机数发送至控制器或者逐级向上发送至控制器。
在本实施例中,以一64位的任务为例进行说明,将64位中的高32位和低32位进行划分,预处理单元则负责对着高32位中的另外24位以及并其中的低位遍历地址段中公共遍历部分进行计算。需要说明的是,公共遍历部分是该计算芯片当中,每个计算单元均需要进行处理的部分。将这部分提取出来只通过一次计算即可,避免了同一计算部分要经过多次计算造成每个计算单元的重复性计算工作,从而节省了整个计算芯片的计算功耗的成本。哈希算法可以采用安全性比较高的主流哈希算法,如SHA256、SHA3、SCRYPT、SM3等,但不限于此。
对计算单元的计算过程进行举例说明,例如每个计算单元内部有一个32位的随机数。每个计算单元接收到经过预处理的计算命令以后,该随机数从0开始遍历32位值域空间的每一个数值(通常可以采用递增的方法,如后一个随机数是前一个随机数加一),把该随机数和第一固定值、第二固定值以及第三固定值输入,进行哈希计算。每次哈希计算结束以后,都要比较计算出的哈希值是否符合预期(即检查哈希值有多少个前导0)。在一可选实施例中,控制器,还用于基于第一固定值、每一级计算芯片的第二固定值、第三固定值以及当前随机数进行验算,若验算通过,则将每一级计算芯片的第二固定值、第三固定值以及当前随机数发送至下发POW计算任务的服务器。
在本实施例中,由于第一固定值是POW计算任务携带的,控制器在验算时,不需要重新获取第一固定值,而是分别获取每个步骤计算得到的第二固定值、第三固定值以及当前的随机数进行相同的哈希计算进行验算即可。以确保计算结果的准确性。将计算的第二固定值、第三固定值以及当前随机数发送至下发POW计算任务的服务器。
在一可选实施例中,控制器还用于在计算芯片复位后,发送config命令至第一级计算芯片,config命令包含第一级计算芯片的遍历地址;第一级计算芯片,用于基于config命令将地址配置为遍历地址,以及对config命令进行修改形成新的config命令并发送;新的config命令包含后一级计算芯片的遍历地址;其余计算芯片,用于在接收到新的config命令时,依次进行配置和修改的操作。
请参阅图3,图3是本申请一实施方式中计算芯片的结构示意图
在一可选实施例中,如图3所示,每一级计算芯片包括串口;其中,串口包括:下行串口,用于接收控制器或前一级计算芯片传输的数据并向后一级计算芯片转发数据;上行串口,用于接收后一级计算芯片传输的数据或当前计算芯片产生的数据并向前一级计算芯片或控制器转发数据;串口配置为快速转发模式。
在本实施例中,计算芯片的下行串口支持快速转发模式,在此模式下,下行串口转发上行串口的命令的时间延迟,只有几个时钟周期(通常是2、3个)。一个计算板上串联的计算芯片最多有30个左右,这样从控制器发出的控制命令,到达最后一个计算芯片的时间延迟,只有几十个时钟周期,大约2~3us。达到快速转发的目的。节省时间。控制器和计算芯片通过串口依次相连,形成了一个串行的计算芯片链。串口波特率至少要支持1Mbps,以支持大的计算能力。其中,串口可以采用UART简称异步串口或者串口,但不限于此。
请参阅图2和3,图2是本申请一实施方式中工作量证明计算装置结构示意图;图3是本申请一实施方式中计算芯片的结构示意图
在一可选实施例中,每个计算芯片还会向后级芯片输出时钟和复位信号(图中未示出)。计算板上的第一级计算芯片接收来自其所在的计算板的时钟和复位信号,随后的每一级计算芯片的时钟和复位信号都来自于前一级计算芯片,并向后一级芯片传递这个时钟和复位信号。这样每个计算板只需要一个时钟和复位电路即可,大大简化了计算板的设计,降低了计算板的成本。
在本申请中,计算芯片内部集成设置有预处理模块,该预处理模块是提高整体计算装置其计算能力的关键。以SHA256算法的POW计算装置为例,具体分析如下:
假如现有技术中单台工作量证明计算装置的计算能力为20THash/sec,每个子任务是4G次Hash,那么每秒需要20T/4G=5K个子任务。假如每台工作量证明计算装置有3个计算板,则每个计算板需要1700个计算子任务。每个子任务需要发送的数据至少有80个字节,每个字节占用10个bit的UART时间,这样每个计算板上UART实际的波特率是:1700*80*10=1.36Mbps。考虑到UART的利用率,以及其它辅助信息所占用的时间,以及各个命令之间的空闲时间间隔,那么UART的波特率至少需要2Mbps。如此高UART波特率的嵌入式计算芯片,管理这么大的POW计算任务是非常困难的,从而会降低计算装置的计算能力。
本申请在计算芯片内部集成了预处理模块,那么工作量证明计算装置只需要把POW计算任务向所有的计算芯片广播发送一次即可,在每个计算芯片内部通过预处理模块计算出80个字节的公共遍历部分数据。由于公共遍历部分数据是通过计算芯片内部的高速并行数据总线向各个计算单元发送的,因此不存在带宽限制。本申请案降低了控制器UART接口的性能要求,也降低了控制器的计算能力要求,因此可以采用更加便宜的控制器芯片来实现更大的计算能力。以上举例仅仅是为了让读者更好的理解本技术,而并非是对本申请保护范围的限制。
需要说明的是,本申请基于工作量证明的计算方法是与涉及一种基于工作量证明的计算装置一一对应的方法,由于在前已经对基于工作量证明的计算装置的各个部件及功能进行了详细描述,在此不再基于工作量证明的计算方法的实施过程进行赘述。
请参阅图4,图4是本申请另一实施方式中基于工作量证明的计算方法流程图。
根据本发明的另一个方面,提供了一种基于工作量证明的计算方法,包括:
S1:控制器获取POW计算任务并发送至第一级计算芯片,其中POW计算任务包括第一固定值。
S2:第一级计算芯片接收POW计算任务并转发至与其连接的后一级计算芯片。
S3:控制器预先分别对每一级计算芯片配置遍历地址。
S4:每一级计算芯片在接收到POW计算任务后,基于遍历地址进行计算,并基于遍历的计算结果和第一固定值进行计算。
其中,S1-S4并非代表对上述步骤顺序的限制,例如S3也也可以在S1之前。请参阅图5,图5是本申请另一实施方式中控制器对计算芯片配置遍历地址的方法流程图。
在一可选实施例中,如图5所示,控制器预先分别对每一级计算芯片配置遍历地址包括:遍历地址至少包括:至少一个高位遍历地址段和至少一个低位遍历地址段。
S31:控制器基于每一级计算芯片的计算能力,对每一级计算芯片配置高位遍历地址段,其中每一级计算芯片的高位遍历地址段的分别设置有起始遍历位。
S32:控制器预先分别对计算芯片的每一计算单元配置低位遍历地址段。
其中,S31和S32并非代表对上述步骤顺序的限制,例如S31也可以在S32之前或与S32同时进行。请参阅图6,图6是本申请另一实施方式中计算芯片根据遍历地址段进行计算的方法流程图。
在一可选实施例中,如图6所示,每一级计算芯片在接收到POW计算任务后,基于遍历地址进行计算,并基于遍历的计算结果和第一固定值进行计算包括:
S41:每一级计算芯片,在接收到第一触发信号后,基于自身的高位遍历地址段从起始遍历位开始进行计算,得到第二固定值。
S42:计算芯片的每一计算单元在接收到第二触发信号后,从自身的低位遍历地址段开始计算。
其中,S41和S42并非代表对上述步骤顺序的限制,例如S41也可以在S42之前或与S42同时进行,且S41也可以再S31之后执行,S42也可以在S32之后执行。请参阅图7,图7是本申请另一实施方式中计算芯片进行哈希计算的方法流程图.
在一可选实施例中,如图7所示,计算芯片的每一所述计算单元在接收到第二触发信号后,从自身的所述低位遍历地址段开始计算包括:
S421:计算芯片的预处理模块对每一计算单元的低位起始遍历地址中的公共遍历部分进行计算,得到第三固定值并发送至每一计算单元。
S422:多个计算单元获取第一固定值、第二固定值以及第三固定值。
S423:多个计算单元将第一固定值、第二固定值、第三固定值与剩余遍历部分的每一个随机数组合,并进行哈希计算,当哈希计算结果符合预期条件时,将第二固定值、第三固定值以及当前随机数发送至主控单元,其中剩余遍历部分是该计算单元的遍历区间除去公共遍历部分。
S424:计算芯片的主控单元将当前计算芯片的第二固定值、第三固定值以及当前随机数发送至控制器或者逐级向上发送至控制器。
其中,S421-S424并非代表对上述步骤顺序的限制,例如S421-S424可以在依据序号按顺序执行计算,也可以同时执行计算。请参阅图8,图8是本申请又一实施方式中基于工作量证明的计算方法流程图。
在一可选实施例中,如图8所示,在每一级计算芯片在接收到POW计算任务后,基于遍历地址进行计算,并基于遍历的计算结果和第一固定值进行计算之后还包括:
S5:控制器基于第一固定值、每一级计算芯片的第二固定值、第三固定值以及当前随机数进行验算,若验算通过,则将每一级计算芯片的第二固定值、第三固定值以及当前随机数发送至下发POW计算任务的服务器。
请参阅图9,图9是本申请又一实施方式中控制器对计算芯片配置遍历地址的具体方法流程图。在一可选实施例中,如图9所示,控制器预先分别对每一级计算芯片配置遍历地址具体包括:
S31':控制器在计算芯片复位后,发送config命令至第一级计算芯片,config命令包含第一级计算芯片的遍历地址。
S32':第一级计算芯片基于config命令将地址配置为遍历地址,以及对config命令进行修改形成新的config命令并发送。
S33':新的config命令包含后一级计算芯片的遍历地址;其余计算芯片在接收到新的config命令时,依次进行配置和修改的操作。
其中,S31、S32与S31'-S33'并非代表存在按序号依次执行的关系及限制,S31和S32的具体执行过程可以按照S31'-S33'中的方法执行配置。
请参阅图10,图10是本申请又一实施方式中串口进行数据传输的方法流程图。
在一可选实施例中,如图10所示,串口进行数据传输包括:
S101:每一级计算芯片的下行串口接收控制器或前一级计算芯片传输的数据并向后一级计算芯片转发数据;
S102:每一级计算芯片的上行串口接收后一级计算芯片传输的数据或当前计算芯片产生的数据并向前一级计算芯片或控制器转发数据;串口配置为快速转发模式。其中,S101和S102并非为步骤S1的从属步骤,而是在上述每个步骤执行时需要进行数据传输时,都会执行S101和S102;这里,S101和S102并非按序号标定的顺序执行,S101和S102并非对本申请步骤执行顺序的限制。本发明旨在保护一种基于工作量证明的计算装置及方法。计算装置减少了对辅助计算单元这一部件的设计,在减少辅助计算单元设计的同时并没有使得计算装置在哈希计算这一功能上有任何缺失。本申请的计算装置,在计算芯片中即可实现更加完整的哈希计算功能。同时,设计了多个计算版,每个计算板上有多级级联的计算芯片,通过减少辅助计算单元的设计可以优化控制器与计算芯片之间、多个计算芯片之间的互联机制。从而能够降低计算装置的成本和复杂性;并且大幅提高了整台工作量计算装置的计算能力。本申请计算装置的计算能力,可以达到原有装置计算能力的十倍以上。
应当理解的是,本发明的上述具体实施方式仅仅用于示例性说明或解释本发明的原理,而不构成对本发明的限制。因此,在不偏离本发明的精神和范围的情况下所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。此外,本发明所附权利要求旨在涵盖落入所附权利要求范围和边界、或者这种范围和边界的等同形式内的全部变化和修改例。
Claims (13)
1.一种基于工作量证明的计算装置,其特征在于,包括控制器和多个计算板;每一所述计算板包括多个级联的计算芯片,且第一级计算芯片与所述控制器连接;
控制器,用于获取POW计算任务并发送至第一级计算芯片;
所述POW计算任务包括第一固定值;
第一级所述计算芯片,用于接收所述POW计算任务并转发至与其连接的后一级计算芯片;
每一级所述计算芯片,分别预先配置有遍历地址,用于在接收到所述POW计算任务后,基于所述遍历地址进行计算,并基于遍历的计算结果和所述第一固定值进行计算。
2.根据权利要求1所述的计算装置,其特征在于,所述遍历地址至少包括:至少一个高位遍历地址段;
所述控制器,用于基于每一级所述计算芯片的计算能力,对每一级所述计算芯片配置所述高位遍历地址段;
所述每一级所述计算芯片的高位遍历地址段的分别设置有起始遍历位;
每一级所述计算芯片,在接收到第一触发信号后,基于自身的所述高位遍历地址段从所述起始遍历位进行计算,得到第二固定值。
3.根据权利要求2所述的计算装置,其特征在于,所述遍历地址还包括:至少一个低位遍历地址段;
所述计算芯片包括多个计算单元;
每一所述计算单元,分别预先配置有所述低位遍历地址段,在接收到第二触发信号后,从自身的所述低位遍历地址段开始计算。
4.根据权利要求3所述的计算装置,其特征在于,所述计算芯片还包括预处理模块和主控单元;
预处理模块,用于对每一所述计算单元的低位起始遍历地址中的公共遍历部分进行计算,得到第三固定值并发送至每一所述计算单元;
多个计算单元,用于获取所述第一固定值、所述第二固定值以及所述第三固定值;
以及用于将所述第一固定值、所述第二固定值、所述第三固定值与剩余遍历部分的每一个随机数组合,并进行哈希计算,当哈希计算结果符合预期条件时,将所述第二固定值、所述第三固定值以及所述当前随机数发送至主控单元;
所述剩余遍历部分是该计算单元的遍历区间除去所述公共遍历部分;
所述主控单元,用于将当前计算芯片的所述第二固定值、所述第三固定值以及当前所述随机数发送至所述控制器或者逐级向上发送至所述控制器。
5.根据权利要求4所述的计算装置,其特征在于,
所述控制器,还用于基于所述第一固定值、每一级所述计算芯片的第二固定值、第三固定值以及当前所述随机数进行验算,若验算通过,则将所述每一级计算芯片的第二固定值、第三固定值以及当前所述随机数发送至下发POW计算任务的服务器。
6.根据权利要求1所述的计算装置,其特征在于,
所述控制器还用于在所述计算芯片复位后,发送config命令至第一级计算芯片,所述config命令包含第一级计算芯片的遍历地址;
所述第一级计算芯片,用于基于所述config命令将地址配置为遍历地址,以及对所述config命令进行修改形成新的config命令并发送;所述新的config命令包含后一级计算芯片的遍历地址;
其余所述计算芯片,用于在接收到所述新的config命令时,依次进行配置和修改的操作。
7.根据权利要求1所述的计算装置,其特征在于,所述每一级计算芯片包括串口;
其中,所述串口包括:
下行串口,用于接收所述控制器或前一级所述计算芯片传输的数据并向后一级所述计算芯片转发所述数据;
上行串口,用于接收后一级所述计算芯片传输的数据或当前计算芯片产生的数据并向前一级所述计算芯片或所述控制器转发所述数据;
所述串口配置为快速转发模式。
8.一种基于工作量证明的计算方法,其特征在于,包括:
控制器获取POW计算任务并发送至第一级计算芯片,其中所述POW计算任务包括第一固定值;
第一级所述计算芯片接收所述POW计算任务并转发至与其连接的后一级计算芯片;
所述控制器预先分别对每一级所述计算芯片配置遍历地址;
每一级所述计算芯片在接收到所述POW计算任务后,基于所述遍历地址进行计算,并基于遍历的计算结果和所述第一固定值进行计算。
9.根据权利要求8所述的计算方法,其特征在于,所述控制器预先分别对每一级所述计算芯片配置遍历地址包括:
所述遍历地址至少包括:至少一个高位遍历地址段和至少一个低位遍历地址段;
所述控制器基于每一级所述计算芯片的计算能力,对每一级所述计算芯片配置所述高位遍历地址段,其中所述每一级所述计算芯片的高位遍历地址段的分别设置有起始遍历位;
所述控制器预先分别对所述计算芯片的每一所述计算单元配置所述低位遍历地址段。
10.根据权利要求9所述的计算方法,其特征在于,所述每一级所述计算芯片在接收到所述POW计算任务后,基于所述遍历地址进行计算,并基于遍历的计算结果和所述第一固定值进行计算包括:
每一级所述计算芯片,在接收到第一触发信号后,基于自身的所述高位遍历地址段从所述起始遍历位开始进行计算,得到第二固定值;
所述计算芯片的每一所述计算单元在接收到第二触发信号后,从自身的所述低位遍历地址段开始计算。
11.根据权利要求10所述的计算方法,其特征在于,所述计算芯片的每一所述计算单元在接收到第二触发信号后,从自身的所述低位遍历地址段开始计算包括:
所述计算芯片的预处理模块对每一所述计算单元的低位起始遍历地址中的公共遍历部分进行计算,得到第三固定值并发送至每一所述计算单元;
多个所述计算单元获取所述第一固定值、所述第二固定值以及所述第三固定值;
多个所述计算单元将所述第一固定值、所述第二固定值、所述第三固定值与剩余遍历部分的每一个随机数组合,并进行哈希计算,当哈希计算结果符合预期条件时,将所述第二固定值、所述第三固定值以及所述当前随机数发送至主控单元,其中所述剩余遍历部分是该计算单元的遍历区间除去所述公共遍历部分;
所述计算芯片的主控单元将当前计算芯片的所述第二固定值、所述第三固定值以及当前所述随机数发送至所述控制器或者逐级向上发送至所述控制器。
12.根据权利要求11所述的计算方法,其特征在于,在所述每一级所述计算芯片在接收到所述POW计算任务后,基于所述遍历地址进行计算,并基于遍历的计算结果和所述第一固定值进行计算之后还包括:
所述控制器基于所述第一固定值、每一级所述计算芯片的第二固定值、第三固定值以及当前所述随机数进行验算,若验算通过,则将所述每一级计算芯片的第二固定值、第三固定值以及当前所述随机数发送至下发POW计算任务的服务器。
13.根据权利要求8所述的计算方法,其特征在于,所述控制器预先分别对每一级所述计算芯片配置遍历地址具体包括:
所述控制器在所述计算芯片复位后,发送config命令至第一级计算芯片,所述config命令包含第一级计算芯片的遍历地址;
所述第一级计算芯片基于所述config命令将地址配置为遍历地址,以及对所述config命令进行修改形成新的config命令并发送;所述新的config命令包含后一级计算芯片的遍历地址;
其余所述计算芯片在接收到所述新的config命令时,依次进行配置和修改的操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811012925.2A CN109376115B (zh) | 2018-08-31 | 2018-08-31 | 一种基于工作量证明的计算装置及计算方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811012925.2A CN109376115B (zh) | 2018-08-31 | 2018-08-31 | 一种基于工作量证明的计算装置及计算方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109376115A true CN109376115A (zh) | 2019-02-22 |
CN109376115B CN109376115B (zh) | 2020-09-15 |
Family
ID=65404419
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811012925.2A Active CN109376115B (zh) | 2018-08-31 | 2018-08-31 | 一种基于工作量证明的计算装置及计算方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109376115B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109905395A (zh) * | 2019-03-07 | 2019-06-18 | 武汉斗鱼鱼乐网络科技有限公司 | 一种验证客户端可信的方法及相关装置 |
CN110569021A (zh) * | 2019-09-06 | 2019-12-13 | 湖南天河国云科技有限公司 | 一种抗asic挖矿的工作量证明方法 |
CN113721988A (zh) * | 2021-11-01 | 2021-11-30 | 中科声龙科技发展(北京)有限公司 | 基于芯片的工作量证明方法和用于工作量证明的芯片 |
CN116414569A (zh) * | 2023-06-12 | 2023-07-11 | 上海聪链信息科技有限公司 | 任务处理系统 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104200847A (zh) * | 2014-08-27 | 2014-12-10 | 上海华力微电子有限公司 | 存储器地址的测试方法及测试装置 |
CN105245327A (zh) * | 2015-08-21 | 2016-01-13 | 北京比特大陆科技有限公司 | 比特币工作量证明哈希计算芯片优化的方法、装置和电路 |
CN106502640A (zh) * | 2016-09-19 | 2017-03-15 | 芯海科技(深圳)股份有限公司 | 一种解释自定义脚本并烧录的方法 |
CN107579814A (zh) * | 2017-08-03 | 2018-01-12 | 北京比特大陆科技有限公司 | 工作量证明的计算方法的装置、计算芯片、挖矿机 |
US20180109541A1 (en) * | 2016-10-17 | 2018-04-19 | Arm Ltd. | Blockchain mining using trusted nodes |
WO2018112949A1 (zh) * | 2016-12-23 | 2018-06-28 | 深圳前海达闼云端智能科技有限公司 | 区块链的挖矿方法、装置和节点设备 |
CN108415771A (zh) * | 2018-02-01 | 2018-08-17 | 深圳市安信智控科技有限公司 | 多芯片分布式并行计算加速系统 |
-
2018
- 2018-08-31 CN CN201811012925.2A patent/CN109376115B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104200847A (zh) * | 2014-08-27 | 2014-12-10 | 上海华力微电子有限公司 | 存储器地址的测试方法及测试装置 |
CN105245327A (zh) * | 2015-08-21 | 2016-01-13 | 北京比特大陆科技有限公司 | 比特币工作量证明哈希计算芯片优化的方法、装置和电路 |
CN106502640A (zh) * | 2016-09-19 | 2017-03-15 | 芯海科技(深圳)股份有限公司 | 一种解释自定义脚本并烧录的方法 |
US20180109541A1 (en) * | 2016-10-17 | 2018-04-19 | Arm Ltd. | Blockchain mining using trusted nodes |
WO2018112949A1 (zh) * | 2016-12-23 | 2018-06-28 | 深圳前海达闼云端智能科技有限公司 | 区块链的挖矿方法、装置和节点设备 |
CN107579814A (zh) * | 2017-08-03 | 2018-01-12 | 北京比特大陆科技有限公司 | 工作量证明的计算方法的装置、计算芯片、挖矿机 |
CN108415771A (zh) * | 2018-02-01 | 2018-08-17 | 深圳市安信智控科技有限公司 | 多芯片分布式并行计算加速系统 |
Non-Patent Citations (4)
Title |
---|
MITAR MILUTINOVIC 等: "Proof of Luck: an Efficient", 《SYSTEX 16:PROCEEDINGS OF THE 1ST WORKSHOP ON SYSTEM SOFTWARE FOR TRUSTED EXECUTION》 * |
何立民: "《单片机应用技术选编 9》", 31 January 2014, 北京航空航天大学出版社 * |
李博: "比特币矿工节点的区块链存储分析与优化研究", 《中国优秀硕士学位论文全文数据库 经济与管理科学辑》 * |
赵成: "《嵌入式系统应用基础》", 29 February 2012, 国防工业大学出版社 * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109905395A (zh) * | 2019-03-07 | 2019-06-18 | 武汉斗鱼鱼乐网络科技有限公司 | 一种验证客户端可信的方法及相关装置 |
CN109905395B (zh) * | 2019-03-07 | 2021-09-07 | 武汉斗鱼鱼乐网络科技有限公司 | 一种验证客户端可信的方法及相关装置 |
CN110569021A (zh) * | 2019-09-06 | 2019-12-13 | 湖南天河国云科技有限公司 | 一种抗asic挖矿的工作量证明方法 |
CN110569021B (zh) * | 2019-09-06 | 2023-09-12 | 湖南天河国云科技有限公司 | 一种抗asic挖矿的工作量证明方法 |
CN113721988A (zh) * | 2021-11-01 | 2021-11-30 | 中科声龙科技发展(北京)有限公司 | 基于芯片的工作量证明方法和用于工作量证明的芯片 |
CN113721988B (zh) * | 2021-11-01 | 2022-02-08 | 中科声龙科技发展(北京)有限公司 | 基于芯片的工作量证明方法和用于工作量证明的芯片 |
CN116414569A (zh) * | 2023-06-12 | 2023-07-11 | 上海聪链信息科技有限公司 | 任务处理系统 |
CN116414569B (zh) * | 2023-06-12 | 2023-08-11 | 上海聪链信息科技有限公司 | 任务处理系统 |
Also Published As
Publication number | Publication date |
---|---|
CN109376115B (zh) | 2020-09-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109376115A (zh) | 一种基于工作量证明的计算装置及计算方法 | |
WO2019165836A1 (zh) | 计算装置、基于区块链的资源贡献计算方法和存储介质 | |
CN108681963B (zh) | 多区块链整合控制方法、系统、电子装置及存储介质 | |
CN109522362A (zh) | 基于区块链数据的非完全数据同步方法、系统及设备 | |
CN105245327A (zh) | 比特币工作量证明哈希计算芯片优化的方法、装置和电路 | |
US9769084B2 (en) | Optimizing placement of virtual machines | |
US11392995B2 (en) | Efficient translation and load balancing of OpenRTB and header bidding requests | |
CN104035817A (zh) | 大规模集成电路物理实现的分布式并行计算方法及其系统 | |
WO2001093477A1 (en) | Communication system and method for different quality of service guarantees for different data flows | |
CN109451036A (zh) | 一种区块链安全通信方法、服务节点及系统 | |
TW200630889A (en) | Apparatus, system, and method for converting a synchronous interface into an asynchronous interface | |
CN108768667B (zh) | 一种用于多核处理器片内核间网络通信的方法 | |
JP5479709B2 (ja) | データを処理するためのサーバ‐プロセッサ・ハイブリッド・システムおよび方法 | |
CN106330610A (zh) | 一种负载均衡处理系统及方法 | |
CN104615500A (zh) | 一种服务器计算资源动态分配的方法 | |
CN107451092A (zh) | 一种基于ib网络的数据传输系统 | |
CN113794788A (zh) | 网关导流方法、系统、装置、设备、存储介质及产品 | |
WO2009051340A1 (en) | Framework device of mobile terminal and method for providing interoperability between components | |
JP2015176435A (ja) | Lsiチップ積層システム | |
CN114707651A (zh) | 一种规约运算的拓扑选择方法、装置、设备及介质 | |
CN101404609B (zh) | 一种数据交换方法、装置和系统 | |
CN115002070B (zh) | 芯片集群、地址分配方法、电子设备和存储介质 | |
US12072730B2 (en) | Synchronization signal generating circuit, chip and synchronization method and device, based on multi-core architecture | |
CN102999311A (zh) | 基于Booth算法的48x30位乘法器 | |
ATE347765T1 (de) | System von vorrichtungen die mittels einer bus- struktur kommunizieren |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |