CN106407430A - 一种基于阶段桶的复杂智能合约状态同步方法 - Google Patents

一种基于阶段桶的复杂智能合约状态同步方法 Download PDF

Info

Publication number
CN106407430A
CN106407430A CN201610857670.4A CN201610857670A CN106407430A CN 106407430 A CN106407430 A CN 106407430A CN 201610857670 A CN201610857670 A CN 201610857670A CN 106407430 A CN106407430 A CN 106407430A
Authority
CN
China
Prior art keywords
bucket
state
stage
contract
execution
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
Application number
CN201610857670.4A
Other languages
English (en)
Other versions
CN106407430B (zh
Inventor
邓恩艳
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Tiande Science And Technology Co Ltd
Original Assignee
Beijing Tiande Science And Technology Co Ltd
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 Beijing Tiande Science And Technology Co Ltd filed Critical Beijing Tiande Science And Technology Co Ltd
Priority to CN201610857670.4A priority Critical patent/CN106407430B/zh
Publication of CN106407430A publication Critical patent/CN106407430A/zh
Application granted granted Critical
Publication of CN106407430B publication Critical patent/CN106407430B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2365Ensuring data consistency and integrity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/04Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Business, Economics & Management (AREA)
  • Accounting & Taxation (AREA)
  • Finance (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • Development Economics (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Strategic Management (AREA)
  • Technology Law (AREA)
  • General Business, Economics & Management (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明提供了一种基于阶段桶的复杂智能合约状态同步方法,包括如下步骤:(1)判断状态类型交易,确定需要更新状态的账户地址;(2)根据状态交易的信息生成阶段桶,然后为每个阶段桶设定一个计时器;(3)统计阶段桶内的状态信息,并分别统计每类信息的条数;(4)检查步骤(3)的结果,确定某阶段桶是否已达成一致,如果已达成一致,继续执行步骤(5),否则继续执行步骤(7);(5)将状态存储到状态区块链中;(6)标记该阶段桶为“已达成一致”,然后删除该阶段桶;(7)检查阶段桶的计时器是否已超时,如果未超时则跳转执行步骤(3),否则继续执行步骤(8);(8)标记该阶段桶为“已超时”,然后删除该阶段桶,此时的阶段桶称为“废桶”。

Description

一种基于阶段桶的复杂智能合约状态同步方法
技术领域
本发明涉及一种区块链技术,特别是一种基于阶段桶的复杂智能合约状态同步方法。
背景技术
所谓复杂智能合约,就是执行时间长,逻辑较复杂的合约,通常具有多个阶段。在区块链系统中,智能合约需要部署在所有节点上,并且智能合约在每次执行时也需要系统中所有节点来同时执行,以使得所有的节点状态保持一致。然而,在实际中,区块链系统中的各个节点的环境可能各有不同,智能合约在各个节点运行的速度可能各不相同,加之逻辑复杂,智能合约可能会在运行中的任何一个阶段改变其所在节点的状态,而现有技术的方案并没有针对只能合约节点环境存在差异情况下的智能合约执行方法,因此会产生合约状态异步,区块链系统对于支持复杂智能合约执行的能力低的技术缺陷,同时,多个独立节点同时执行合约时数据一致性,结果统一性,数据的完整性以及数据的隔离性难以保证,数据同步会相互干扰。
发明内容
本发明的目的在于提供一种基于阶段桶的复杂智能合约状态同步方法,允许执行智能合约的各节点环境存在差异,并且在执行同一个智能合约时的速度存在差异,包括如下步骤:(1)判断状态类型交易,确定需要更新状态的账户地址;(2)根据状态交易的信息生成阶段桶,然后为每个阶段桶设定一个计时器;(3)统计阶段桶内的状态信息,并分别统计每类信息的条数;(4)检查 步骤(3)的结果,确定某阶段桶是否已达成一致,如果已达成一致,继续执行步骤(5),否则继续执行步骤(7);(5)将状态存储到状态区块链中;(6)标记该阶段桶为“已达成一致”,然后删除该阶段桶;(7)检查阶段桶的计时器是否已超时,如果未超时则跳转执行步骤(3),否则继续执行步骤(8);(8)标记该阶段桶为“已超时”,然后删除该阶段桶,此时的阶段桶称为“废桶”。
优选的,步骤(1)的所述交易是从交易区块链发来的。
优选的,步骤(2)中所述信息包括合约账户的地址、该合约账户总共被触发执行的次数以及需要更改的账户地址,
优选的,步骤(3)所述统计阶段桶内的状态信息是对阶段桶内的来自交易区块链不同节点的相同内容信息进行归类。
优选的,步骤(4)所述确定某阶段桶是否已达成一致是确定否有超过2/3的合约执行节点拥有相同的状态。
优选的,步骤(8)所述“废桶”是由某个阶段桶中的意见长期无法达成一致产生的。
优选的,废桶是由于桶内已经收集了所有执行合约的节点的意见,但相同的状态信息总数小于总节点数的2/3而没有达成一致所产生的。
优选的,废桶是由于执行智能合约的个别节点执行速度慢,当它将自己的sTx发送到状态区块链时,状态区块链已经完成了对该阶段的状态统计,超过2/3的节点已经对该阶段的状态改变达成了一致,并已经销毁了对应的阶段桶而产生的,状态区块链会为该条sTx新建一个阶段桶并等待永远无法完成的状态统计。
优选的,废桶是由于某些sTx未能到达状态区块链,或者某些节点未能成功发送sTx导致对某阶段的状态统计达不到执行合约总节点数的2/3以上所产生的。
优选的,废桶产生后,对于该合约的后续状态无论是否一致都不再统计, 记录本次合约的源账户地址和标记了本次执行是合约第几次被激活执行的本次的执行序号,如果后续sTx是对同一合约的相同执行序号的状态信息,则直接丢弃。
优选的,执行智能合约的个别节点执行速度慢时,对于最近一段时间内已经确认达成一致的阶段桶,系统动态维护一张“状态表”,销毁该阶段桶时在表中记录了桶的标记名,以及销毁时桶内累计的意见总数,如果随后的sTx对应标记名与表中记录的标记名匹配,直接丢弃该sTx并将累计在该标记名的意见总数加1,当一条阶段桶缓存记录上所累积的意见总数达到执行合约的所有节点的节点点数,即执行合约的所有节点已经执行完这个阶段,或者该缓存记录超过了一定时间限制时,将记录写入日志,然后在“状态表”中清除它。
优选的,某些sTx未能到达状态区块链,或者某些节点未能成功发送sTx时,系统在每次新建阶段桶的时候都会启动一个计时器,当一个阶段桶经过一段时间后还没有达成状态一致时,系统将销毁阶段桶。
本发明通过在单独存储状态的区块链上使用“阶段桶”的办法来保证执行智能合约的各节点状态的一致,区块链系统对于支持复杂智能合约执行的能力提高,同时,多个独立节点同时执行合约时数据一致性,结果统一性,数据的完整性以及数据的隔离性的以保证,数据同步不会相互干扰。
根据下文结合附图对本发明具体实施例的详细描述,本领域技术人员将会更加明了本发明的上述以及其他目的、优点和特征。
附图说明
后文将参照附图以示例性而非限制性的方式详细描述本发明的一些具体实施例。附图中相同的附图标记标示了相同或类似的部件或部分。本领域技术人员应该理解,这些附图未必是按比例绘制的。本发明的目标及特征考虑到如下结合附图的描述将更加明显,附图中:
图1是根据本发明实施例的简单账户结构示意图;
图2是根据本发明实施例的复杂合约账户结构示意图;
图3是根据本发明实施例的状态同步流程示意图。
具体实施方式
在进行具体实施方式的说明之前,为了更为清楚的表达所论述的内容,首先说明本发明所涉及的一些重要概念。
1、账户
智能合约附属于某个账户,账户的结构描述如下:
(1)激活状态:账户是否已被激活。0代表未被激活,1代表已激活。如果该字段为0,则账户不能发送交易,并且忽略除激活信息外一切发送到它的交易信息,直到重新被激活;
(2)创建时间和更新时间:记录了此账户被创建的时间和上一次更新的时间;
(3)合约哈希值:对合约账户而言,这个字段记录了与该账户关联的合约代码的哈希值,账户一旦生成,这个值就不再改变;
(4)nonce:一个整数,记录从该账户地址共发出了多少交易;
(5)number:记录有多少交易发送到了该账户地址,记录了合约被激活执行的次数;
(6)账户类型:分为两种类型,1表示普通合约账户,2表示复杂合约账户;
(7)账户地址:一个20位长的字符串,在系统中唯一标识一个账户采用的是非对称加密技术生成的公钥和私钥,然后对公钥进行md5哈希,取最后20个字符作为地址;
(8)账户缓存:暂时记录合约执行过程中产生的临时数据。
对于简单的合约,完全可以将编译完成后的二进制数据直接存储在区块链上,以提高加载速度。但是对于复杂智能合约,如果将合约执行相关的文件直接存储在区块链上将可能造成区块体积过大,因此复杂合约只在账户中保存了 相关文件的地址以节省空间,真正的文件保存在区块链外。账户的结构如附图1和图2所示。
2、交易区块链和状态区块链
交易区块链接收来自区块链系统外部的信息,并将这些信息存储至区块中,智能合约的执行在交易区块链的节点中完成。
状态区块链专门存储状态信息,维护账户信息,它负责智能合约执行过程中和执行完毕后的状态同步及存储。
3、状态型交易
在智能合约执行的过程中,每当有状态改变的操作时,各执行合约节点都会向专门存储状态的区块链发送状态型交易(sTx)来进行状态同步。sTx的内容如下:
(1)源地址:发出该状态交易的账户地址;
(2)源账户的公钥:对这个公钥进行哈希后取其最后20个字符,应该与源地址相同;
(3)执行信息:本次合约的执行信息,包括记录本次是合约的第几次执行;
(4)对象账户地址:改变状态的账户地址;
(5)状态信息:状态改变信息,与具体的领域有关;
(6)签名:使用源地址的私钥对对象账户地址、执行信息、状态信息生成的摘要字段的签名;
(7)时间戳:交易创建的时间
4、阶段桶
智能合约是在交易区块链的所有节点同时执行,因此执行过程中在进行状态改变操作时,每个节点都会产生一条状态型交易,为了对各个节点的状态改变结果进行汇总统一,维护状态区块链中的状态一致性,系统为智能合约的每个阶段设立一个阶段桶,每个阶段可能有一次或者多次状态改变。
复杂类型的智能合约通常拥有较长的执行周期,并且具有多个阶段,当在 多个独立的节点同时部署执行时,由于实际中不同节点的环境不同,智能合约执行的速度存在差别,使得对合约执行状态的同步变得困难。比如,一个智能合约分为三个阶段执行,分别为a,b,c,其中每个阶段都可能涉及一次或多次的状态改变。假设当node(i)的b阶段执行完毕时,node(i+1)由于某种原因,其a阶段刚刚执行完毕,那么此时的本地状态无法直接同步,而是需要等待node(i+1)的b阶段执行结束才可以进行,这时使用阶段桶从而减少处理等待时间就显得很有必要性了。
阶段桶的实现原理是将阶段桶看成是一种结果统计器。状态区块链的每个节点都会接收到来自交易区块链所有参与合约执行的节点发来的状态交易。对合约执行的每个阶段,交易区块链都会以唯一的标注作为阶段桶的名称(比如以“合约账户名+该合约被触发的次数[即该账户合约执行的总次数]+合约执行阶段的名称或标号”来命名)。
在首次收到交易区块链某结点发来的一个新的阶段的状态交易时建立阶段桶,接下来,每次状态区块链节点在收到交易区块链其余节点关于某阶段的状态交易时,就放入对应的阶段桶。由此可见,阶段桶中存放的是来自交易区块链不同节点的相同内容信息。当某个阶段桶内相同的内容信息数量在规定的时限内超过交易区块链节点总数的2/3时,阶段桶的信息内容达成一致,否则认为阶段桶的信息内容无法达成一致,即产生了废桶。
引入阶段桶后,解决了在多个节点同时执行合约的状态同步问题,提高了区块链系统对于支持复杂智能合约执行的能力。首先,阶段桶保证了数据的一致性,使得在多个独立节点同时执行合约时,可以得到统一的结果。另外,阶段桶保证了数据的完整性,由于阶段桶的存在,当少数节点出现故障时并不会影响数据的准确性和可靠性。再次,阶段桶保证了数据的隔离性,如前文所述,复杂型合约通常具有较长的实行周期,并且具有多个阶段,阶段桶使得相同合约的不同阶段之间,相同合约在不同执行轮次的相同阶段之间(系统中可能同时有多个复杂型合约在执行,也可能是不同的交易触发了相同合约的多次执行, 但他们属于不同的执行轮次),不同合约之间的数据同步不会相互干扰。
5、废桶
如果某个阶段桶中的意见长期无法达成一致,就会产生废桶。废桶无法对状态同步做出贡献,应该及时的销毁以避免浪费资源。产生废桶的原因可能有多种:
第一,桶内已经收集了所有执行合约的节点的意见,但没有达成一致,即相同的状态信息总数小于总节点数的2/3;
第二,执行智能合约的个别节点执行速度慢,当它将自己的sTx发送到状态区块链时,状态区块链已经完成了对该阶段的状态统计,即超过2/3的节点已经对该阶段的状态改变达成了一致,并销毁的对应的阶段桶,按照本发明的策略,状态区块链会为该条sTx新建一个阶段桶并等待永远无法完成的状态统计;
第三,由于未知原因,某些sTx未能到达状态区块链,或者某些节点未能成功发送sTx导致对某阶段的状态统计达不到执行合约总节点数的2/3以上。
第一种情况属于错误,这说明执行合约的所有节点在执行合约时有总数超过1/3的节点与其他节点的状态不一致,此时对于该合约的后续状态无论是否一致都不再统计,应该记录本次合约的源账户地址和本次的执行序号(标记了本次执行是合约第几次被激活执行),如果后续sTx是对同一合约的相同执行序号的状态信息,则直接丢弃。
第二种情况,对于最近一段时间内已经确认达成一致的阶段桶,系统动态维护一张“状态表”,销毁该阶段桶时在表中记录了桶的标记名,以及销毁时桶内累计的意见总数。如果随后的sTx对应标记名与表中记录的标记名匹配,直接丢弃该sTx并将累计在该标记名的意见总数加1。当一条阶段桶缓存记录上所累积的意见总数达到执行合约的所有节点的总节点数,即执行合约的所有节点已经执行完这个阶段,或者该缓存记录超过了一定时间限制时,将记录写入日志,然后在“状态表”中清除它。
第三种情况,系统在每次新建阶段桶的时候都会启动一个计时器,当一个 阶段桶经过一段时间后还没有达成状态一致时,系统将销毁阶段桶。理由是,在正常的情况下,执行合约的所有节点各节点对同一个合约的执行速度不应该相差太大,因此大多数节点对同一阶段的状态确认时间间隔不会太久。如果经过很长时间还没有达成一致,那么很可能这个阶段桶以后也无法达成一致。
由于状态区块链并不知道一个具体的合约在执行过程中会涉及到多少次的状态改变操作,所以按照前文所述,状态区块链会给每个新出现的阶段创建一个新的阶段桶,并对其进行关于状态一致性的意见统计。但如果阶段桶内的信息长期无法达成一致(即产生了废桶),并且得不到适当的处理就会造成极大的资源浪费,造成系统性能下降,甚至影响系统的稳定性。因此以上的处理机制是必不可少的。
实施例
本具体实施例所涉及的系统有多个节点,每个节点都部署相同的智能合约,智能合约作为合约账户的一部分而存在,由于区块链系统各节点信息需要保持一致,因此系统中各节点所部署的智能合约均相同。
本具体实施例所涉及的智能合约为复杂类型,通常拥有较长的执行周期,具有多个阶段,并且可能多次进行状态的改变,如果有状态改变,则系统在每个阶段结束时进行一次状态同步。
假设区块链系统中的交易区块链有A,B,C,D四个节点,状态区块链有E,F,G,H四个节点,一个智能合约M分为三个阶段执行,分别为a,b,c,其中每个阶段都可能涉及一次或多次的状态改变,智能合约在ABCD四个节点被同时触发执行。对于ABCD每个节点,每一个阶段执行结束,如果此阶段涉及到状态的改变,则改变后的状态需要同步至状态区块链,因此节点ABCD都需要向状态区块链发送sTx来进行状态同步。
但是在实际中,不同节点之间不仅运行环境存在差别,执行速度也可能会不一致,即节点ABCD在执行智能合约M时,虽然同时被触发执行,但不一定 可以每次都同时完成a,b,c三个阶段。
假设在智能合约M被触发执行一段时间后的t1时刻,ABCD四个节点的执行状态如下:
A节点:阶段a执行完毕,正在执行阶段b,已经向状态区块链发送了sTx(a);
B节点:正在执行阶段a,还未向状态区块链发送状态交易信息;
C节点:阶段a,b执行完毕,正在执行阶段c,已经向状态区块链发送了sTx(a),sTx(b);
D节点:阶段a执行完毕,正在执行阶段b,已经向状态区块链发送了sTx(a)。
状态交易以广播方式发向状态区块链的每个节点,因此节点EFGH均可收到由交易区块链节点ABCD发来的状态交易信息。节点EFGH每个节点执行的操作都相同,以节点E为例,由于t1时刻接到的不同阶段的状态信息共有两类,分别为阶段a和阶段b,所以共有阶段桶2个,t1时刻节点E的阶段桶情况如表1所示:
表1 t1时刻节点E的阶段桶情况
可见t1时刻,合约阶段a对应的阶段桶中收集的相同意见已经超过了交易区块链总结点数(本例中是4个节点)的2/3,已经达成一致,sTx(a)将会被写入状态区块链,按照本文前述策略,该阶段桶将被删除。
经过一段时间,到达t2时刻后,ABCD四个节点的执行状态如下:
A节点:阶段a,b执行完毕,正在执行阶段c,t1时刻后,又向状态区块链发送了sTx(b);
B节点:阶段a,b,c执行完毕,t1时刻后,又向状态区块链发送了sTx(a),sTx(b),sTx(c);
C节点:阶段a,b,c执行完毕,t1时刻后,又向状态区块链发送了sTx(c);
D节点:阶段a,b执行完毕,正在执行阶段c,t1时刻后,又向状态区块链发送了sTx(b);
t2时刻节点E的阶段桶情况如表2所示:
表2 t2时刻节点E阶段桶情况
t2时刻,合约阶段b对应的阶段桶已经集齐了交易区块链节点ABCD发来的状态交易,若桶中相同内容的信息数量超过交易区块链节点总数的2/3,该桶就会被删除,sTx(b)则会被写入状态区块链。合约阶段c对应的阶段桶还在等待节点A和D的状态交易,如果超过一定时长,状态区块链将不再等待sTx(c)的同步,则sTx(c)将不会被写入状态区块链,即sTx(c)没有达成一致。
虽然本发明已经参考特定的说明性实施例进行了描述,但是不会受到这些实施例的限定而仅仅受到附加权利要求的限定。本领域技术人员应当理解可以在不偏离本发明的保护范围和精神的情况下对本发明的实施例能够进行改动和修改。

Claims (12)

1.一种基于阶段桶的复杂智能合约状态同步方法,其特征在于,包括如下步骤:
(1)判断状态类型交易,确定需要更新状态的账户地址;
(2)根据状态交易的信息生成阶段桶,然后为每个阶段桶设定一个计时器;
(3)统计阶段桶内的状态信息,并分别统计每类信息的条数;
(4)检查步骤(3)的结果,确定某阶段桶是否已达成一致,如果已达成一致,继续执行步骤(5),否则继续执行步骤(7);
(5)将状态存储到状态区块链中;
(6)标记该阶段桶为“已达成一致”,然后删除该阶段桶;
(7)检查阶段桶的计时器是否已超时,如果未超时则跳转执行步骤(3),否则继续执行步骤(8);
(8)标记该阶段桶为“已超时”,然后删除该阶段桶,此时的阶段桶称为“废桶”。
2.根据权利要求1所述的一种基于阶段桶的复杂智能合约状态同步方法,其特征在于:步骤(1)的所述交易是从交易区块链发来的。
3.根据权利要求1所述的一种基于阶段桶的复杂智能合约状态同步方法,其特征在于:步骤(2)中所述信息包括合约账户的地址、该合约账户总共被触发执行的次数以及需要更改的账户地址。
4.根据权利要求1所述的一种基于阶段桶的复杂智能合约状态同步方法,其特征在于:步骤(3)所述统计阶段桶内的状态信息是对阶段桶内的来自交易区块链不同节点的相同内容信息进行归类。
5.根据权利要求1所述的一种基于阶段桶的复杂智能合约状态同步方法,其特征在于:步骤(4)所述确定某阶段桶是否已达成一致是确定否有超过2/3的合约执行节点拥有相同的状态。
6.根据权利要求1所述的一种基于阶段桶的复杂智能合约状态同步方法,其特征在于:步骤(8)所述“废桶”是由某个阶段桶中的意见长期无法达成一致产生的。
7.根据权利要求6所述的一种基于阶段桶的复杂智能合约状态同步方法,其特征在于:所述废桶是由于桶内已经收集了所有执行合约的节点的意见,但相同的状态信息总数小于总节点数的2/3而没有达成一致所产生的。
8.根据权利要求6所述的一种基于阶段桶的复杂智能合约状态同步方法,其特征在于:所述废桶是由于执行智能合约的个别节点执行速度慢,当它将自己的sTx发送到状态区块链时,状态区块链已经完成了对该阶段的状态统计,超过2/3的节点已经对该阶段的状态改变达成了一致,并已经销毁了对应的阶段桶而产生的,状态区块链会为该条sTx新建一个阶段桶并等待永远无法完成的状态统计。
9.根据权利要求6所述的一种基于阶段桶的复杂智能合约状态同步方法,其特征在于:所述废桶是由于某些sTx未能到达状态区块链,或者某些节点未能成功发送sTx导致对某阶段的状态统计达不到执行合约总节点数的2/3以上所产生的。
10.根据权利要求7所述的一种基于阶段桶的复杂智能合约状态同步方法,其特征在于:所述废桶产生后,对于该合约的后续状态无论是否一致都不再统计,记录本次合约的源账户地址和标记了本次执行是合约第几次被激活执行的本次的执行序号,如果后续sTx是对同一合约的相同执行序号的状态信息,则直接丢弃。
11.根据权利要求8所述的一种基于阶段桶的复杂智能合约状态同步方法,其特征在于:执行智能合约的个别节点执行速度慢时,对于最近一段时间内已经确认达成一致的阶段桶,系统动态维护一张“状态表”,销毁该阶段桶时在表中记录了桶的标记名,以及销毁时桶内累计的意见总数,如果随后的sTx对应标记名与表中记录的标记名匹配,直接丢弃该sTx并将累计在该标记名的意 见总数加1,当一条阶段桶缓存记录上所累积的意见总数达到执行合约的所有节点的节点点数,即执行合约的所有节点已经执行完这个阶段,或者该缓存记录超过了一定时间限制时,将记录写入日志,然后在“状态表”中清除它。
12.根据权利要求9所述的一种基于阶段桶的复杂智能合约状态同步方法,其特征在于:某些sTx未能到达状态区块链,或者某些节点未能成功发送sTx时,系统在每次新建阶段桶的时候都会启动一个计时器,当一个阶段桶经过一段时间后还没有达成状态一致时,系统将销毁阶段桶。
CN201610857670.4A 2016-09-27 2016-09-27 一种基于阶段桶的复杂智能合约状态同步方法 Active CN106407430B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610857670.4A CN106407430B (zh) 2016-09-27 2016-09-27 一种基于阶段桶的复杂智能合约状态同步方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610857670.4A CN106407430B (zh) 2016-09-27 2016-09-27 一种基于阶段桶的复杂智能合约状态同步方法

Publications (2)

Publication Number Publication Date
CN106407430A true CN106407430A (zh) 2017-02-15
CN106407430B CN106407430B (zh) 2019-09-03

Family

ID=57997793

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610857670.4A Active CN106407430B (zh) 2016-09-27 2016-09-27 一种基于阶段桶的复杂智能合约状态同步方法

Country Status (1)

Country Link
CN (1) CN106407430B (zh)

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107016611A (zh) * 2017-03-29 2017-08-04 杭州秘猿科技有限公司 一种基于区块链的交易超时控制方法
CN107124443A (zh) * 2017-03-28 2017-09-01 上海瑞麒维网络科技有限公司 基于区块链的数据分析方法及装置
CN107145521A (zh) * 2017-04-10 2017-09-08 杭州趣链科技有限公司 一种面向区块链多级智能合约的数据迁移方法
CN107220820A (zh) * 2017-05-16 2017-09-29 腾讯科技(深圳)有限公司 资源转移方法、装置及存储介质
CN107368259A (zh) * 2017-05-25 2017-11-21 阿里巴巴集团控股有限公司 一种向区块链系统中写入业务数据的方法和装置
CN107392610A (zh) * 2017-03-06 2017-11-24 钱德君 一种分布式网络的可靠数据源的实现方法
CN107562513A (zh) * 2017-07-18 2018-01-09 杭州趣链科技有限公司 一种基于java的智能合约生命周期的管理方法
CN108182580A (zh) * 2017-12-29 2018-06-19 北京欧链科技有限公司 基于区块链的合约的触发方法及装置
CN109040341A (zh) * 2018-08-27 2018-12-18 深圳前海益链网络科技有限公司 智能合约地址生成方法、装置、计算机设备及可读存储介质
CN109285066A (zh) * 2018-08-30 2019-01-29 福建省农村信用社联合社 一种基于银行业务流的智能合约生成与执行的方法
CN109345289A (zh) * 2018-09-13 2019-02-15 北京京东尚科信息技术有限公司 数据处理方法、装置和计算机可读存储介质
CN109635575A (zh) * 2018-11-30 2019-04-16 无锡井通网络科技有限公司 智能合约签订方法及装置
CN109960696A (zh) * 2019-03-22 2019-07-02 杭州复杂美科技有限公司 一种智能合约的配置方法、设备和存储介质
CN109978543A (zh) * 2019-04-03 2019-07-05 浙江鲸腾网络科技有限公司 一种合同签署的方法、装置、电子设备及存储介质
CN110300984A (zh) * 2017-02-17 2019-10-01 诺基亚技术有限公司 改变在区块链中记录的智能合约
CN111898851A (zh) * 2020-06-15 2020-11-06 广州智能科技发展有限公司 基于区块链的企业信用信息处理方法、设备、介质及系统
CN113191895A (zh) * 2020-09-04 2021-07-30 支付宝(杭州)信息技术有限公司 一种交易执行方法、系统及装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105809062A (zh) * 2016-03-01 2016-07-27 布比(北京)网络技术有限公司 一种合约构建、执行方法及装置
US20160217436A1 (en) * 2015-01-25 2016-07-28 Dror Samuel Brama Method, System and Program Product for Tracking and Securing Transactions of Authenticated Items over Block Chain Systems.
CN105893042A (zh) * 2016-03-31 2016-08-24 北京航空航天大学 一种基于区块链的智能合约的实现方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160217436A1 (en) * 2015-01-25 2016-07-28 Dror Samuel Brama Method, System and Program Product for Tracking and Securing Transactions of Authenticated Items over Block Chain Systems.
CN105809062A (zh) * 2016-03-01 2016-07-27 布比(北京)网络技术有限公司 一种合约构建、执行方法及装置
CN105893042A (zh) * 2016-03-31 2016-08-24 北京航空航天大学 一种基于区块链的智能合约的实现方法

Cited By (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110300984A (zh) * 2017-02-17 2019-10-01 诺基亚技术有限公司 改变在区块链中记录的智能合约
CN110300984B (zh) * 2017-02-17 2024-03-26 诺基亚技术有限公司 改变在区块链中记录的智能合约
CN107392610A (zh) * 2017-03-06 2017-11-24 钱德君 一种分布式网络的可靠数据源的实现方法
CN107124443A (zh) * 2017-03-28 2017-09-01 上海瑞麒维网络科技有限公司 基于区块链的数据分析方法及装置
CN107124443B (zh) * 2017-03-28 2020-04-28 丽水北斗区块链科技有限责任公司 基于区块链的数据分析方法及装置
CN107016611A (zh) * 2017-03-29 2017-08-04 杭州秘猿科技有限公司 一种基于区块链的交易超时控制方法
CN107145521A (zh) * 2017-04-10 2017-09-08 杭州趣链科技有限公司 一种面向区块链多级智能合约的数据迁移方法
CN107220820A (zh) * 2017-05-16 2017-09-29 腾讯科技(深圳)有限公司 资源转移方法、装置及存储介质
CN107220820B (zh) * 2017-05-16 2019-10-01 腾讯科技(深圳)有限公司 资源转移方法、装置及存储介质
US11074245B2 (en) 2017-05-25 2021-07-27 Advanced New Technologies Co., Ltd. Method and device for writing service data in block chain system
CN107368259B (zh) * 2017-05-25 2020-07-10 创新先进技术有限公司 一种向区块链系统中写入业务数据的方法和装置
US10698885B2 (en) 2017-05-25 2020-06-30 Alibaba Group Holding Limited Method and device for writing service data in block chain system
CN107368259A (zh) * 2017-05-25 2017-11-21 阿里巴巴集团控股有限公司 一种向区块链系统中写入业务数据的方法和装置
CN107562513B (zh) * 2017-07-18 2020-08-07 杭州趣链科技有限公司 一种基于java的智能合约生命周期的管理方法
CN107562513A (zh) * 2017-07-18 2018-01-09 杭州趣链科技有限公司 一种基于java的智能合约生命周期的管理方法
CN108182580A (zh) * 2017-12-29 2018-06-19 北京欧链科技有限公司 基于区块链的合约的触发方法及装置
CN108182580B (zh) * 2017-12-29 2021-01-01 北京欧链科技有限公司 基于区块链的合约的触发方法及装置
CN109040341A (zh) * 2018-08-27 2018-12-18 深圳前海益链网络科技有限公司 智能合约地址生成方法、装置、计算机设备及可读存储介质
CN109040341B (zh) * 2018-08-27 2021-05-04 深圳前海益链网络科技有限公司 智能合约地址的生成方法、装置、计算机设备及可读存储介质
CN109285066B (zh) * 2018-08-30 2020-12-08 福建省农村信用社联合社 一种基于银行业务流的智能合约生成与执行的方法
CN109285066A (zh) * 2018-08-30 2019-01-29 福建省农村信用社联合社 一种基于银行业务流的智能合约生成与执行的方法
CN109345289A (zh) * 2018-09-13 2019-02-15 北京京东尚科信息技术有限公司 数据处理方法、装置和计算机可读存储介质
CN109635575A (zh) * 2018-11-30 2019-04-16 无锡井通网络科技有限公司 智能合约签订方法及装置
CN109960696A (zh) * 2019-03-22 2019-07-02 杭州复杂美科技有限公司 一种智能合约的配置方法、设备和存储介质
CN109978543A (zh) * 2019-04-03 2019-07-05 浙江鲸腾网络科技有限公司 一种合同签署的方法、装置、电子设备及存储介质
CN109978543B (zh) * 2019-04-03 2022-03-22 恒生电子股份有限公司 一种合同签署的方法、装置、电子设备及存储介质
CN111898851A (zh) * 2020-06-15 2020-11-06 广州智能科技发展有限公司 基于区块链的企业信用信息处理方法、设备、介质及系统
CN113191895A (zh) * 2020-09-04 2021-07-30 支付宝(杭州)信息技术有限公司 一种交易执行方法、系统及装置
CN113191895B (zh) * 2020-09-04 2022-04-26 支付宝(杭州)信息技术有限公司 一种交易执行方法、系统及装置

Also Published As

Publication number Publication date
CN106407430B (zh) 2019-09-03

Similar Documents

Publication Publication Date Title
CN106407430A (zh) 一种基于阶段桶的复杂智能合约状态同步方法
CN110597925B (zh) 一种基于区块链的跨链数据处理方法及装置
CN107577427B (zh) 用于区块链系统的数据迁移方法、设备和存储介质
CN107145521B (zh) 一种面向区块链多级智能合约的数据迁移方法
CN104426768B (zh) 一种数据报文转发方法及装置
CN110730204A (zh) 区块链网络中删除节点的方法和区块链系统
CN108492108A (zh) 区块链跨链通信方法、系统和计算机可读存储介质
CN106462449A (zh) 具有多项目事务支持的多数据库日志
CN104657158B (zh) 一种业务系统中业务处理的方法和装置
CN110704438B (zh) 一种区块链中布隆过滤器的生成方法及装置
CN107247758B (zh) 基于银行核心系统的数据处理方法
CN106649602B (zh) 业务对象数据处理方法、装置和服务器
WO2021047541A1 (zh) 一种区块链内获取交易依赖关系的方法及装置
CN104317957B (zh) 一种报表处理的开放平台、系统及报表处理方法
CN104360842B (zh) 一种基于jbpm的服务动态流程编排方法
CN103049317A (zh) 云环境下基于队列的高并发数据快速写入系统及方法
CN108319661A (zh) 一种备件信息的结构化存储方法及装置
WO2019153506A1 (zh) 公积金转移方法、计算机可读存储介质、终端设备及装置
WO2023011022A1 (zh) 基于区块链的数据处理方法、设备及计算机可读存储介质
CN109214817A (zh) 一种基于算力寄生的区块链共识装置
CN110209891A (zh) 一种拉链表生成方法、装置、设备及介质
CN108469953A (zh) 一种页面表单的生成方法、服务器及存储介质
CN106341497B (zh) 数字id生成方法及装置
CN102197387B (zh) 引导会合联盟
CN114281893A (zh) 一种区块链交易的处理方法、装置及设备

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant