CN109903162A - 一种加速区块链MCMC随机选择的ReRAM及其工作方法 - Google Patents

一种加速区块链MCMC随机选择的ReRAM及其工作方法 Download PDF

Info

Publication number
CN109903162A
CN109903162A CN201910156431.XA CN201910156431A CN109903162A CN 109903162 A CN109903162 A CN 109903162A CN 201910156431 A CN201910156431 A CN 201910156431A CN 109903162 A CN109903162 A CN 109903162A
Authority
CN
China
Prior art keywords
verifier
block chain
corresponding
module
mcmc
Prior art date
Application number
CN201910156431.XA
Other languages
English (en)
Inventor
贾智平
王倩
王天雨
刘珂
申兆岩
蔡晓军
Original Assignee
山东大学
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by 山东大学 filed Critical 山东大学
Priority to CN201910156431.XA priority Critical patent/CN109903162A/zh
Publication of CN109903162A publication Critical patent/CN109903162A/zh

Links

Abstract

本公开提供了一种加速区块链MCMC随机选择的ReRAM及其工作方法。其中,加速区块链MCMC随机选择的ReRAM包括随机选择单元,其包括并行计算模块、幂乘计算模块和验证者随机选择模块;所述并行计算模块,包括第一子模块和第二子模块;所述第一子模块被配置为并行计算区块链上所有交易节点的累计权重与所有指向区块链上相应交易节点的验证者的累计权重的最大值的差值,得到累计权重差值矩阵,转置后转化为二进制结果,并对应输入至第二子模块的字线中;所述第二子模块包括若干个基础幂模块,每个基础幂模块与一个对应字线对应相连,所述字线用于控制相应基础幂模块的通断;所述幂乘计算模块,被配置为计算各个基础幂的计算结果并对应存储至相应基础幂模块中。

Description

一种加速区块链MCMC随机选择的ReRAM及其工作方法

技术领域

本公开属于数据处理领域,尤其涉及一种加速区块链MCMC随机选择的ReRAM及其工作方法。

背景技术

本部分的陈述仅仅是提供了与本公开相关的背景技术信息,不必然构成在先技术。

区块链技术是利用块链式数据结构来验证与存储数据,辅以共识机制、加密算法等策略达到访问与传输安全的一种分布式账本技术,其广泛应用于金融交易、信誉系统、服务领域等。随着智慧城市、车联网等智能领域的迅速发展,基于物联网体系安全机制的策略研究备受关注,传统以链式结构存储信息的区块链技术并不能满足物联网背景下大数据、高吞吐量、小额交易等需求,因此,以DAG(有向无环图)数据结构存储信息的区块链技术应运而生,以IOTA最为显著。IOTA是为物联网而设计的一个革命性新型交易结算和数据转移层。它基于新型分布式账本Tangle(缠结)将交易数据以块结构形式连接至DAG(有向无环图)网络中,克服传统区块链的交易低效性,形成新型去中心化P2P系统共识,具有零交易费、高TPS(交易吞吐率)等特点。

在IOTA的开源实现中,所有网络节点被分为轻节点与全节点两种角色。针对全节点的交易处理过程,经实验统计发明人发现,在整个交易发起及上链过程中,随机游走过程占总体用时比重较大,而在随机游走过程中,MCMC随机选择过程及验证子链交易有效的过程占用时间较长。发明人发现,特别是在以下两种情况出现时,易产生计算瓶颈:(1)当大量用户交易向全节点请求tips选择时,产生计算拥塞;(2)在某一步的随机游走过程中,候选验证者较多,从而导致MCMC随机选择过程的计算量变大。在利用传统处理器(如CPU、GPU等)进行MCMC随机选择过程的计算时,所产生的大量中间计算结果将导致内存与CPU之间出现巨大的数据移动消耗,增加计算延迟、拖慢计算过程的同时也增加了能耗。

发明内容

根据本公开的一个或多个实施例的一个方面,提供一种加速区块链MCMC随机选择的ReRAM,其可以加速全节点计算速度,减少计算复杂度及计算延时,进而增加整个区块链的交易吞吐能力。

本公开的一种加速区块链MCMC随机选择的ReRAM,包括随机选择单元,其包括并行计算模块、幂乘计算模块和验证者随机选择模块;

所述并行计算模块,包括第一子模块和第二子模块;所述第一子模块被配置为并行计算区块链上所有交易节点的累计权重与所有指向区块链上相应交易节点的验证者的累计权重的最大值的差值,得到累计权重差值矩阵,转置后转化为二进制结果,并对应输入至第二子模块的字线中;所述第二子模块包括若干个基础幂模块,每个基础幂模块与一个对应字线对应相连,所述字线用于控制相应基础幂模块的通断;

所述幂乘计算模块,被配置为计算各个基础幂的结果并对应存储至相应基础幂模块中;

所述验证者随机选择模块,被配置为并行接收第二子模块中各个基础幂模块输出的结果并作累加运算,得到验证者选中概率累加和;将验证者选中概率累加和与一随机数相乘来更新验证者选中概率累加和;按照区块链上验证者的顺序,将更新后的验证者选中概率累加和逐个与相应验证者对应的累计权重作差,并判断差值是否小于0,若是,则直接输出对应验证者。

在一个或多个实施例中,所述第二子模块中的基础幂模块由快速幂算法拆解后得到。

上述技术方案的优点在于,快速幂算法用于计算一个数的阶乘,如果用平常的算法计算,很容易超时,而快速幂算法将时间复杂度大大降低,而且还大大降低了超时的风险,提高了计算速度。

在一个或多个实施例中,在所述幂乘计算模块中,采用浮点数乘算法计算各个基础幂的结果。

上述技术方案的优点在于,采用浮点数乘算法提高了计算的准确性。

在一个或多个实施例中,在所述验证者随机选择模块中,所述随机数由硬件随机数生成器生成。

上述技术方案的优点在于,在计算过程中,硬件随机数发生器(真随机数发生器,TRNG)是从物理过程而不是计算机程序生成随机数的设备。硬件随机数发生器通常每秒产生有限数量的随机比特。为了提高数据速率,它们通常用于为更快的加密安全伪随机数生成器生成“种子”,然后生成伪随机数输出序列

在一个或多个实施例中,所述ReRAM还包括内存单元,所述内存单元与随机选择单元相连;

所述内存单元被配置为存储验证者集合及累计权重集合;所述验证者集合由所有验证者构成;所述累计权重集合由各个验证者对应的累计权重构成。

上述技术方案的优点在于,这样方便随机选择单元的输入数据的调用,减少了CPU与内存之间的数据移动开销,大大降低了MCMC随机选择过程的计算时延。

在一个或多个实施例中,所述ReRAM还包括数据缓存单元,所述数据缓存单元被配置为暂存内存单元输入至随机选择单元中的数据以及幂乘计算模块的计算结果。

上述技术方案的优点在于,减少了CPU与内存之间的数据移动开销,大大降低了MCMC随机选择过程的计算时延。

在一个或多个实施例中,所述ReRAM还包括控制器,所述控制器与随机选择单元、内存单元和数据缓存单元分别相连。

上述技术方案的优点在于,控制器用于发出指令协调随机选择单元整体工作进程。

根据本公开的一个或多个实施例的另一个方面,提供一种加速区块链MCMC随机选择的ReRAM的工作方法,其可以加速全节点计算速度,减少计算复杂度及计算延时,进而增加整个区块链的交易吞吐能力。

本公开的一种加速区块链MCMC随机选择的ReRAM的工作方法,包括:

并行计算区块链上所有交易节点的累计权重与所有指向区块链上相应交易节点的验证者的累计权重的最大值的差值,得到累计权重差值矩阵,转置后转化为二进制结果,并对应输入至每个基础幂模块对应字线中;

计算各个基础幂的结果并对应存储至相应基础幂模块中;

并行接收各个基础幂模块输出的结果并作累加运算,得到验证者选中概率累加和;将验证者选中概率累加和与一随机数相乘来更新验证者选中概率累加和;按照区块链上验证者的顺序,将更新后的验证者选中概率累加和逐个与相应验证者对应的累计权重作差,并判断差值是否小于0,若是,则直接输出对应验证者。

根据本公开的一个或多个实施例的另一个方面,提供一种计算机可读存储介质,其可以加速全节点计算速度,减少计算复杂度及计算延时,进而增加整个区块链的交易吞吐能力。

本公开的一种计算机可读存储介质,包括上述所述的加速区块链MCMC随机选择的ReRAM。

根据本公开的一个或多个实施例的另一个方面,提供一种计算机设备,其可以加速全节点计算速度,减少计算复杂度及计算延时,进而增加整个区块链的交易吞吐能力。

本公开的一种计算机设备,包括上述所述的加速区块链MCMC随机选择的ReRAM。

本公开的有益效果是:

(1)本公开的ReRAM包括随机选择单元,随机选择单元包括并行计算模块、幂乘计算模块和验证者随机选择模块,针对IOTA中的MCMC随机选择过程提出了一种计算架构,减少了CPU与内存之间的数据移动开销,大大降低了MCMC随机选择过程的计算时延。

(2)本公开将tips选择过程分解为数个独立的乘、加及幂运算操作,利用并行计算模块、幂乘计算模块和验证者随机选择模块来实现上述运算操作,提高了区块链MCMC随机选择的计算速度。

(3)本公开利用了ReRAM的多Cell结构,设计了针对多tips选择过程的并行计算模型,大大提高了tips选择过程的并行度,提升了整体性能。

(4)本公开在随机选择单元中将快速幂算法应用于复杂的幂运算操作,大大减少了幂运算操作的时间复杂度。

附图说明

构成本公开的一部分的说明书附图用来提供对本公开的进一步理解,本公开的示意性实施例及其说明用于解释本公开,并不构成对本公开的不当限定。

图1是本公开实施例提供的随机游走算法整体流程图。

图2是本公开实施例提供的ReRAM整体架构设计图。

图3是本公开实施例提供的并行计算模块的部分设计图。

图4是本公开实施例提供的幂乘计算模块设计图。

图5是本公开实施例提供的乘法运算举例。

具体实施方式

应该指出,以下详细说明都是例示性的,旨在对本公开提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本公开所属技术领域的普通技术人员通常理解的相同含义。

需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本公开的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。

术语解释:

MCMC:Markov Chain Monte Carlo,马尔科夫链蒙特卡罗。

ReRAM:电阻式RAM,将DRAM的读写速度与SSD的非易失性结合于一身。

在本实施例中,Tangle是由交易块组成的有向无环图,其交易共识为新上链的交易按一定规则验证链上已有交易,若被验证交易合法,则新上链的交易连接至被验证交易并存于Tangle中。具体的规则为:

当网络节点发起一笔交易时,该交易需要在Tangle中按一定随机概率规则选择两个tips(未被验证过的交易),将自己指向这两个tips,并验证所选交易的合法性,若被验证交易合法且tips所在子链中无双花交易,则在完成少量PoW(工作量证明)后,在网络中进行广播同步;被验证交易不合法,则重新选择tips并重复上述步骤。

因此,网络中验证交易合法性的责任由传统区块链矿工转为每一个发起交易的网络节点,形成用户即矿工的验证模式,因此无需支付交易费用,适用于当前物联网结构交易量大、交易额度小等特点,且随Tangle网络规模增大,交易愈发安全和快速。Tangle中选择tips的过程称作随机游走过程,系统会确定两个随机游走入口,每一次随机游走过程为,在指向自己的所有验证者中,在累计权重(定义为该交易自身权重与其他直接以及间接验证该交易的所有交易的自身权重之和,一定程度代表自身可信度,其中自身权重大小与PoW计算量成正比。)的基础上,按照一定随机概率规则选择下一个游走的结点,直到游走至Tangle边界结点处,即为该交易所选的两个tips。

由此可见,新上链的交易更可能选择所在子链可信度高的tips进行验证,以确保自己有更大概率被后续新交易所选中,而某个方向的累计权重所占比重,决定了游走过程中的每一步选择这个方向的概率,从而决定了Tangle的形态及稳定性。

全节点运行IRI进程,用以维护Tangle网络、数据库信息,更新快照,验证子链交易以及MCMC(Markov Chain Monte Carlo,马尔科夫链蒙特卡罗)随机选择等过程。所有网络中需要交易的用户被视为轻节点,当其发起交易时,需连接至全节点用以向其索要随机游走结果、部分PoW请求以及广播交易。随着用户量增大,部分全节点需处理大量交易的验证子链交易有效以及随机游走等过程,导致部分交易等待上链时间过长,影响Tangle整体交易吞吐率,甚至部分全节点无法承受巨大计算负载而崩溃。因此,如何加快交易处理速度,减少计算量成为IOTA目前亟待解决的问题。

为了解决上述问题,本实施例提供了一种加速区块链MCMC随机选择的ReRAM,ReRAM不仅能存储数据,还具有强大的并行能力进行近数据计算(Near-data-computing),实现了内存计算(Processing-in-memory,PIM)架构。此架构与现存的利用CPU、GPU的解决方案相比,拥有更少的数据移动开销,以及更高的乘加运算并行度等优势,可以加速全节点计算速度,减少计算复杂度及计算延时,进而增加整个区块链的交易吞吐能力(TPS)。

在IOTA区块链的随机游走过程中,MCMC随机选择过程利用了随机选择算法实现概率选择与计算功能,其算法实现如公式(1)所示,其中y(y∈Z)为某个指向x的验证者,Wy为该验证者的累计权重,α为给定系数。集合Z为所有指向x的验证者集合,Pxy为y被下一步游走过程所选中的概率。其中,x为在MCMC随机选择过程中游走至某一步的当前交易节点,集合Z为指向x的所有验证者集合。

最终,下一步游走过程将根据每个验证的被选择概率进行随机选择。为方便程序代码运算,减少变量运算,将公式(1)中的分母变换为公式(2)所示,变换后的分母以target表示,其中Wmax为所有指向x的验证者的累计权重的最大值,则依据各加数在target所占比例随机选择验证者,其整体算法流程图如图1所示。通过分析计算过程,其随机选择算法需要大量加、减、乘、幂及移位运算。

因此,本实施例分别针对以上运算设计了ReRAM中相应的计算单元,使其实现计算与缓存一体化结构,避免了数据在CPU与内存之间的数据移动,大大减小了数据的移动开销,同时实现部分计算单元的并行化,加速了随机选择算法的处理速度。

其中,Wx为x交易的累计权重,累计权重为定义为该交易自身权重与其直接以及间接验证该交易的所有交易的自身权重之和。

由于Z为所有指向x的验证者集合,z∈Z,泛指集合Z中的任一元素。因此z代表指向x的验证者集合中的某一个验证者,Wz为此验证者的累计权重。

本实施例对整个MCMC随机选择过程进行功能划分后,其整体设计架构图如图2所示。

本公开的一种加速区块链MCMC随机选择的ReRAM,包括随机选择单元,其包括并行计算模块、幂乘计算模块和验证者随机选择模块。

(1)并行计算模块

并行计算模块,包括第一子模块和第二子模块;所述第一子模块被配置为并行计算区块链上所有交易节点的累计权重与所有指向区块链上相应交易节点的验证者的累计权重的最大值的差值,得到累计权重差值矩阵,转置后转化为二进制结果,并对应输入至第二子模块的字线中;所述第二子模块包括若干个基础幂模块,每个基础幂模块与一个对应字线对应相连,所述字线用于控制相应基础幂模块的通断。

具体地,所述第二子模块中的基础幂模块由快速幂算法拆解后得到。

其中,快速幂算法用于计算一个数的阶乘,如果用平常的算法计算,很容易超时,而快速幂算法将时间复杂度大大降低,而且还大大降低了超时的风险,提高了计算速度。

(2)幂乘计算模块

幂乘计算模块,被配置为计算各个基础幂的结果并对应存储至相应基础幂模块中。

具体地,在所述幂乘计算模块中,采用浮点数乘算法计算各个基础幂的结果。

采用浮点数乘算法提高了计算的准确性。

并行计算模块用于并行计算公式(2)中的target,幂乘计算模块用于计算快速幂拆解后的基础幂运算。

并行计算模块并行单元的部分设计如图3所示,实现公式(2)中每一个加数的减法运算以及部分乘运算。将第一子模块的计算输出的结果进行矩阵转置,如图3所示,对Wx及Wmax进行减法运算,输出二进制结果作为第二子模块的字线起到电压导通作用。

对于第二子模块,将幂乘操作以快速幂算法进行拆解,将所有需要的中间结果由幂乘计算模块产生后存储至并行计算模块的第二子模块中,在第一子模块计算完成并选通后,第二子模块进行快速幂部分乘运算。

例如计:算a11,将11表示成二进制后为1011,因此a11可拆解为a8*a2*a1,导通三个乘数相乘即可得出结果。因此幂乘计算模块单元需计算a、a2、a4、a8……a32768结果并输入至并行计算模块各自并行单元中。

幂乘计算模块设计如图4所示,浮点数以IEEE754表示,将尾数部分(以二进制整数表示)提取出来设两个输入参数为man(A)、man(B)。在浮点数进行IEEE754标准化后,尾数部分即小数点之前实际保留一位二进制1,如11.01标准化后浮点数为1.101,尾数为101。因此,对尾数的乘法运算进行乘法分配律化简后如公式(3)所示。

首先对两个尾数部分做乘法和加法操作,具体乘法运算举例如图5所示,乘数二进制高位在下,低位在上导通字线,被乘数依次向左移动一位,写入ReRAM crossbar,导通位线进行加法操作即可完成乘法运算。

图4中t1、t2位加法高位进位,当对公式(3)进行加法运算后,可能产生最多两位的进位。若t1位为0,则只需原始阶数码相加并转换为移码,位数部分为计算后exp(c)原结果;若t1位为1,则原始阶码数相加后再加1并转换为移码表示,位数部分以此右移一位,高位补t2位,低位移出。所得结果C重复传入并行计算模块各自并行计算模块的第二子模块的一行中,其尾数部分再次返回幂乘计算模块单元输入流,进行基于本次平方的下次平方运算。

(1+man(A))(1+man(B))=man(A)man(B)+(man(A)+man(B))+1 (3)

其中,man(A)、man(B)分别是A、B的尾数部分。

本实施例对于数据计算规格的设定,根据IOTA实际度量,将累计权重的变量类型设定为short int(16bit)类型,同时由于概率计算的需要,将所需的浮点数类型也设为float(32bit),以IEEE754表示,尾数部分只使高8位即可。

随机选择单元并行计算模块算法策略:

本实施例提出的基于ReRAM计算单元的并行化策略和功能化划分有效减小了计算的时间复杂度,降低了处理器计算负载,增加了IOTA交易网络的TPS,同时,保证了IOTA全节点的稳定行和区块链数据的可靠性。

其中,POW(.)指的是e指数函数。

浮点数幂乘算法策略:

本实施例提出的基于快速幂运算的浮点数幂乘算法策略降低了浮点数幂乘运算的时间复杂度,提高了IOTA随机游走的概率选择速度。

快速幂算法策略如下:

快速幂算法中浮点数乘算法策略如下:

(3)验证者随机选择模块

验证者随机选择模块,被配置为并行接收第二子模块中各个基础幂模块输出的结果并作累加运算,得到验证者选中概率累加和;将验证者选中概率累加和与一随机数相乘来更新验证者选中概率累加和;按照区块链上验证者的顺序,将更新后的验证者选中概率累加和逐个与相应验证者对应的累计权重作差,并判断差值是否小于0,若是,则直接输出对应验证者。

具体地,在所述验证者随机选择模块中,所述随机数由硬件随机数生成器生成。

在计算过程中,硬件随机数发生器(真随机数发生器,TRNG)是从物理过程而不是计算机程序生成随机数的设备。硬件随机数发生器通常每秒产生有限数量的随机比特。为了提高数据速率,它们通常用于为更快的加密安全伪随机数生成器生成“种子”,然后生成伪随机数输出序列

在传统处理器在计算MCMC随机选择过程时造成了内存与CPU之间大量的数据移动消耗,而ReRAM良好的自身结构使其实现了较好的存-算一体化功能。实现了缓存级别基于特定计算的并行操作,减轻了处理器的计算负载。由于计算中存在大量乘、加及移位操作,迎合了ReRAM内部计算结构属性,提高了整体运算速度,实现了对该模块算法的整体加速。片内采用并行策略可实现多个验证者累计权重的并行计算,时间复杂度由O(n)降低为O(1)。增加了IOTA全节点的运算能力及交易信息的并行处理速度,降低了节点计算延迟,增加了区块链交易吞吐能力,减小了IOTA全节点的崩溃率,为IOTA区块链交易可靠性提供了保障。

在具体实施中,所述ReRAM还包括内存单元,所述内存单元与随机选择单元相连;

所述内存单元被配置为存储验证者集合及累计权重集合;所述验证者集合由所有验证者构成;所述累计权重集合由各个验证者对应的累计权重构成。

这样方便随机选择单元的输入数据的调用,减少了CPU与内存之间的数据移动开销,大大降低了MCMC随机选择过程的计算时延。

所述ReRAM还包括数据缓存单元,所述数据缓存单元被配置为暂存内存单元输入至随机选择单元中的数据以及幂乘计算模块的计算结果。

这样减少了CPU与内存之间的数据移动开销,大大降低了MCMC随机选择过程的计算时延。

所述ReRAM还包括控制器,所述控制器与随机选择单元、内存单元和数据缓存单元分别相连。

控制器用于发出指令协调随机选择单元整体工作进程。

所述ReRAM还包括连接桥,其用于连接随机选择单元及数据缓冲单元。

本实施例将每一个ReRAM划分为三部分:内存单元、随机选择单元和数据缓冲单元。内存单元用于存储验证者集合及相对应的weights集合,该数据将作为下一层模块的输入。

其中,weights集合指的是累计权重集合

本实施例的ReRAM包括随机选择单元,随机选择单元包括并行计算模块、幂乘计算模块和验证者随机选择模块,针对IOTA中的MCMC随机选择过程提出了一种计算架构,减少了CPU与内存之间的数据移动开销,大大降低了MCMC随机选择过程的计算时延。

本实施例将tips选择过程分解为数个独立的乘、加及幂运算操作,利用并行计算模块、幂乘计算模块和验证者随机选择模块来实现上述运算操作,提高了区块链MCMC随机选择的计算速度。

本实施例利用了ReRAM的多Cell结构,设计了针对多tips选择过程的并行计算模型,大大提高了tips选择过程的并行度,提升了整体性能。

本实施例在随机选择单元中将快速幂算法应用于复杂的幂运算操作,大大减少了幂运算操作的时间复杂度。

本实施例的一种加速区块链MCMC随机选择的ReRAM的工作方法,包括:

并行计算区块链上所有交易节点的累计权重与所有指向区块链上相应交易节点的验证者的累计权重的最大值的差值,得到累计权重差值矩阵,转置后转化为二进制结果,并对应输入至每个基础幂模块对应字线中;

计算各个基础幂的结果并对应存储至相应基础幂模块中;

并行接收各个基础幂模块输出的结果并作累加运算,得到验证者选中概率累加和;将验证者选中概率累加和与一随机数相乘来更新验证者选中概率累加和;按照区块链上验证者的顺序,将更新后的验证者选中概率累加和逐个与相应验证者对应的累计权重作差,并判断差值是否小于0,若是,则直接输出对应验证者。

本实施例的一种加速区块链MCMC随机选择的ReRAM的工作方法,可以加速全节点计算速度,减少计算复杂度及计算延时,进而增加整个区块链的交易吞吐能力。

本实施例还提供了一种计算机可读存储介质,包括上述所述的加速区块链MCMC随机选择的ReRAM。

本实施例的一种计算机可读存储介质,可以加速全节点计算速度,减少计算复杂度及计算延时,进而增加整个区块链的交易吞吐能力。

本实施例还提供了一种计算机设备,包括如图2所示的加速区块链MCMC随机选择的ReRAM。

本实施例的一种计算机设备,可以加速全节点计算速度,减少计算复杂度及计算延时,进而增加整个区块链的交易吞吐能力。

本领域内的技术人员应明白,本公开的实施例可提供为方法、系统、或计算机程序产品。因此,本公开可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本公开可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。

本公开是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(RandomAccessMemory,RAM)等。

上述虽然结合附图对本公开的具体实施方式进行了描述,但并非对本公开保护范围的限制,所属领域技术人员应该明白,在本公开的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本公开的保护范围以内。

Claims (10)

1.一种加速区块链MCMC随机选择的ReRAM,其特征在于,包括随机选择单元,其包括并行计算模块、幂乘计算模块和验证者随机选择模块;
所述并行计算模块,包括第一子模块和第二子模块;所述第一子模块被配置为并行计算区块链上所有交易节点的累计权重与所有指向区块链上相应交易节点的验证者的累计权重的最大值的差值,得到累计权重差值矩阵,转置后转化为二进制结果,并对应输入至第二子模块的字线中;所述第二子模块包括若干个基础幂模块,每个基础幂模块与一个对应字线对应相连,所述字线用于控制相应基础幂模块的通断;
所述幂乘计算模块,被配置为计算各个基础幂的结果并对应存储至相应基础幂模块中;
所述验证者随机选择模块,被配置为并行接收第二子模块中各个基础幂模块输出的结果并作累加运算,得到验证者选中概率累加和;将验证者选中概率累加和与一随机数相乘来更新验证者选中概率累加和;按照区块链上验证者的顺序,将更新后的验证者选中概率累加和逐个与相应验证者对应的累计权重作差,并判断差值是否小于0,若是,则直接输出对应验证者。
2.如权利要求1所述的一种加速区块链MCMC随机选择的ReRAM,其特征在于,所述第二子模块中的基础幂模块由快速幂算法拆解后得到。
3.如权利要求1所述的一种加速区块链MCMC随机选择的ReRAM,其特征在于,在所述幂乘计算模块中,采用浮点数乘算法计算各个基础幂的结果。
4.如权利要求1所述的一种加速区块链MCMC随机选择的ReRAM,其特征在于,在所述验证者随机选择模块中,所述随机数由硬件随机数生成器生成。
5.如权利要求1所述的一种加速区块链MCMC随机选择的ReRAM,其特征在于,所述ReRAM还包括内存单元,所述内存单元与随机选择单元相连;
所述内存单元被配置为存储验证者集合及累计权重集合;所述验证者集合由所有验证者构成;所述累计权重集合由各个验证者对应的累计权重构成。
6.如权利要求5所述的一种加速区块链MCMC随机选择的ReRAM,其特征在于,所述ReRAM还包括数据缓存单元,所述数据缓存单元被配置为暂存内存单元输入至随机选择单元中的数据以及幂乘计算模块的计算结果。
7.如权利要求6所述的一种加速区块链MCMC随机选择的ReRAM,其特征在于,所述ReRAM还包括控制器,所述控制器与随机选择单元、内存单元和数据缓存单元分别相连。
8.一种加速区块链MCMC随机选择的ReRAM的工作方法,其特征在于,包括:
并行计算区块链上所有交易节点的累计权重与所有指向区块链上相应交易节点的验证者的累计权重的最大值的差值,得到累计权重差值矩阵,转置后转化为二进制结果,并对应输入至每个基础幂模块对应字线中;
计算各个基础幂的结果并对应存储至相应基础幂模块中;
并行接收各个基础幂模块输出的结果并作累加运算,得到验证者选中概率累加和;将验证者选中概率累加和与一随机数相乘来更新验证者选中概率累加和;按照区块链上验证者的顺序,将更新后的验证者选中概率累加和逐个与相应验证者对应的累计权重作差,并判断差值是否小于0,若是,则直接输出对应验证者。
9.一种计算机可读存储介质,其特征在于,包括如权利要求1-7中任一项所述的加速区块链MCMC随机选择的ReRAM。
10.一种计算机设备,其特征在于,包括如权利要求1-7中任一项所述的加速区块链MCMC随机选择的ReRAM。
CN201910156431.XA 2019-03-01 2019-03-01 一种加速区块链MCMC随机选择的ReRAM及其工作方法 CN109903162A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910156431.XA CN109903162A (zh) 2019-03-01 2019-03-01 一种加速区块链MCMC随机选择的ReRAM及其工作方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910156431.XA CN109903162A (zh) 2019-03-01 2019-03-01 一种加速区块链MCMC随机选择的ReRAM及其工作方法

Publications (1)

Publication Number Publication Date
CN109903162A true CN109903162A (zh) 2019-06-18

Family

ID=66946066

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910156431.XA CN109903162A (zh) 2019-03-01 2019-03-01 一种加速区块链MCMC随机选择的ReRAM及其工作方法

Country Status (1)

Country Link
CN (1) CN109903162A (zh)

Similar Documents

Publication Publication Date Title
Tseng et al. Combining neural network model with seasonal time series ARIMA model
Mockus Bayesian approach to global optimization: theory and applications
LeBaron Building the Santa Fe artificial stock market
Jaeggi et al. The development of a multi-objective Tabu Search algorithm for continuous optimisation problems
Kaytez et al. Forecasting electricity consumption: A comparison of regression analysis, neural networks and least squares support vector machines
Van Meter et al. Fast quantum modular exponentiation
CN104915322B (zh) 一种卷积神经网络硬件加速方法
Asmussen et al. Stochastic simulation: algorithms and analysis
Calvet et al. Forecasting multifractal volatility
Sepp Analytical pricing of double-barrier options under a double-exponential jump diffusion process: applications of Laplace transform
Farhat et al. Optimization methods applied for solving the short-term hydrothermal coordination problem
Medeiros et al. Building neural network models for time series: a statistical approach
Zhao et al. Using a grey model optimized by differential evolution algorithm to forecast the per capita annual net income of rural households in China
Linetsky The path integral approach to financial modeling and options pricing
Vranken Sustainability of bitcoin and blockchains
US8706599B1 (en) System and method of generating investment criteria for an investment vehicle that includes a pool of escrow deposits from a plurality of merger and acquisition transactions
Lefley et al. Using genetic programming to improve software effort estimation based on general data sets
Son et al. Hybrid coevolutionary programming for Nash equilibrium search in games with local optima
Jia et al. Multiobjective bilevel optimization for production-distribution planning problems using hybrid genetic algorithm
Yu et al. Markov decision processes with arbitrary reward processes
Gülpınar et al. Simulation and optimization approaches to scenario tree generation
Amjady et al. Mid-term load forecasting of power systems by a new prediction method
Fisher Rational expectations in macroeconomic models
Wang et al. Chaotic self-adaptive particle swarm optimization algorithm for dynamic economic dispatch problem with valve-point effects
Yu et al. Evolutionary fuzzy neural networks for hybrid financial prediction

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