CN109842655A - 一种跨区块链网络的数据同步方法 - Google Patents
一种跨区块链网络的数据同步方法 Download PDFInfo
- Publication number
- CN109842655A CN109842655A CN201711212285.5A CN201711212285A CN109842655A CN 109842655 A CN109842655 A CN 109842655A CN 201711212285 A CN201711212285 A CN 201711212285A CN 109842655 A CN109842655 A CN 109842655A
- Authority
- CN
- China
- Prior art keywords
- transaction
- block chain
- hash
- synchronization
- data
- 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.)
- Pending
Links
Landscapes
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
本发明提出一种基于区块链系统的数据同步方法,所述方法包括:S1,区块链网络之间通过同步交易来实现数据同步;S2,提供一种区块链同步工具的实现,在不同区块链网络之间同步交易;S3,区块链节点程序通过在交易中添加当前交易哈希与下一个交易的哈希两个字段以保证同步后交易的顺序及唯一性,添加交易原操作者与原区块链编号字段以方便审计;S4,区块链同步工具开启两个线程,一个线程从区块链A获取交易,一个线程将获取到的交易发送到区块链B进行共识;S5,可同时在多台机器上开启多个区块链同步工具程序进行交易同步,可配置从区块链A的不同节点获取交易,并发送到区块链B的不同节点上,以解决同步过程中出现异常无法同步的问题。
Description
技术领域
本申请涉及区块链技术,更具体的,涉及一种基于联盟区块链进行的数据同步技术。
背景技术
区块链是一种交易驱动的分布式账本技术,与传统数据库存储数据的方式不同,区块链中的数据一般经过序列化之后存储在每个节点的本地文件系统中。
在数据的迁移方面,数据库会提供数据的导入导出功能,即使不同类型的数据库之间都可以很方便的转移数据。区块链可细分为公有链,私有链与联盟链。一般来说公有链(如比特币、以太坊)的数据全世界都全用同一份,不需要考虑在不同的链之间转移数据,只需要同步当前区块链的数据即可。而联盟链因为是面向机构的,不同机构或者同一个机构的不同部门往往会同时运行多个区块链网络,因此会有不同区块链网络之间同步数据的需求。
因为区块链是交易驱动的,区块链网络之间的数据转移只需要将交易转移到另一个区块链上,区块链的交易数据与数据库中存储的数据不同,交易必须经过区块链网络的共识后被记到区块链上才能生效;另一方面,为防止数据同步过程中程序崩溃或者网络中断的情况,用户往往需要同时在多个节点开启数据同步服务,这样就要考虑并发上传过程中的交易的先后顺序及唯一性问题。
举个例子说明:
银行A是一个大型机构,组织机构呈树型结构,每个网点运行一个区块链,每个支行运行一个区块链,总行运行一个区块链,这些区块链之间都是独立的,用的是同一种联盟链程序。
在某个时间点,银行A需要同步交易数据,需要将各网点的数据先上传到支行,然后支行的数据上传到总行。这种情况下,各级区块链之间如何协作来完成这一需求呢,本发明提出的方案很适合解决这一问题
发明内容
针对背景技术中的问题,本文给出一种在同类型的联盟区块链网络之间支持多点并发上传、快速、准确同步交易数据的方法,这里说的交易主要针对非转账类型交易,不对账户本身的属性(比如余额)造成影响。
从区块链A向区块链B同步交易,需要如下准备工作:
S1,向区块链B同步交易的区块链可能不止A一个,需要给区块链A编号,如001;
S2,需要在区块链B上激活一个账户专门用来同步交易。
本发明需要区块链节点程序与区块链同步工具结合来实现:
区块链节点程序的支持包括:
S1,新添加交易字段,包括交易原操作者账户地址、交易当前哈希、下一个交易哈希、原交易在原区块链的区块号;
S2,添加对report类型交易的支持,report类型交易的当前交易哈希为当前区块的区块号;
S3,区块链节点程序保存交易的当前交易哈希与下一个交易哈希,当接收到新的交易时,用交易的当前交易哈希与保存的下一个交易哈希进行比较,相同则通过,不同则拒绝,并返回正确的下一交易哈希。
区块链同步工具的执行步骤如下:
S1,配置要获取交易的区块链节点信息、同步使用的账户信息、将要接收交易的区块链节点信息;
S2,程序启动时读取S1中配置的信息,并开启两个线程T1,T2;
S3,T1线程使用S1中配置的获取交易节点信息连接节点,读取交易,处理交易后放入交易队列;
S4,T2线程全用S1中配置的收取交易节点信息,从交易队列取出交易并发送到收取交易节点,同步等待返回;
S5,S4返回结果如果是正确则继续获取下一个交易并发送,S4返回结果是错误则通知获取线程用返回结果中的交易哈希重新获取交易并清空之前的交易队列;
S6,重复过程S3-S5;
本发明的有益效果包括:
1)可以实现同类型区块链之间的数据同步
2)同步工具可以随时开启,可以同时开启多个
3)可以快速找到最新要同步的交易
4)很好的解决了交易顺序及交易唯一性问题
附图说明
图1为本发明的系统的一个结构示意图;
图2为本发明背景技术中提到的银行组织结构图;
图3为接收端区块链节点的工作流程;
图4为本发明的方法的一个实施方式的流程图。
具体实施方式
下面参照附图描述本发明的实施方式,其中相同的部件用相同的附图标记表示。
区块链接收交易端节点程序:
原交易中增加如下可选字段:
OriginalChainNo: 原区块链编号
OriginalAddress: 交易原操作者
FutureTxHash: 将要接收的交易的hash值
CurTxHash: 当前交易的hash值
TxnLgrSeq: 原交易所在Ledger序号
增加一种新的交易类型 report,用来在当前无交易可同步时记录同步到的ledger序号,并且设置前一个最新交易的FutureTxHash 为report交易的当前哈希。
t_report类型交易主要字段:
TxType 交易类型
CurTxHash 当前交易哈希
Account 交易同步账户
交易接收端接点的工作流程图如图3所示。
区块链同步工具的具体实施方式:
S1,在B链上激活一个账户AccountB用来提交从A链获取到的交易;
S2,同步工具在启动时开启两个线程,线程1用来从A链获取交易,线程2发送交易;
S3,线程1最开始从A链的第一个区块开始顺序查询交易;
S4,查询到多个交易后,将前一个交易的FutureTxHash设置为后一个交易的CurrentTxHash,设置交易的原操作账户OriginalAddress、交易在链A上的区块序号TxnLgrSeq,放到交易队列;
S5,发送线程不断从交易队列获取交易,发现有交易就发送到链B,并等待返回结果,交易返回后,如果成功,继续获取下一个交易发送;如果失败,发送结果中会返回正确的sfFutureTxHash,获取线程清空之前的交易队列,并根据新的sfFutureTxHash去获取交易;
S6,当获取线程获取到A链的最新交易txLast1后,可以设置一个超时时间,在超时时间内链A中如果有新的交易txLast2产生,则按第5步的操作处理txLast1;如果到达超时时间并且A链还没有新的交易共识过,这时,可以通过t_report类型交易每隔固定时间来告诉链B,当前已经同步到哪个区块;
重复过程S4-S6;
说明:
同步工具可在多台机器开启,以解某一台机器宕机时无法同步交易的问题;
同步工具可以配置在A链的不同节点获取交易,并且上传交易到B链的不同节点上,以解决区块链中某个节点宕机时无法继续同步的问题;
同步上传工具可以在任意时间开启,开启后立即开始同步,同步到最新交易后不关闭程序会继续等待新的交易并同步;
以上所述的实施例,只是本发明较优选的具体实施方式,本领域的技术人员在本发明技术方案范围内进行的通常变化和替换都应包含在本发明的保护范围闭程序会继续等待新的交易并同步;
以上所述的实施例,只是本发明较优选的具体实施方式,本领域的技术人员在本发明技术方案范围内进行的通常变化和替换都应包含在本发明的保护范围。
Claims (4)
1.一种跨区块链网络的数据同步方法,其特征在于,包括,
S1,通过同步交易实现数据同步;
S2,建立新的账户用来同步交易,并保留交易的原操作账户,以实现对交易的审计;
S3,在对获取到的交易进行处理时,添加原区块链网络的编号字段,以实现对交易的审计;
S4,通过在交易中添加当前交易哈希与下一个交易哈希的方式来保证交易顺序及唯一性;
S5,通过交易同步工具来实现对不同区块链上交易的获取与推送。
2.根据权利要求1所述的数据同步方法,其特征在于,还包括:
A1,区块链节点程序保存交易的当前交易哈希与下一个交易哈希,当接收到新的交易时,用交易的当前交易哈希与保存的下一个交易哈希进行比较,相同则通过,不同则拒绝,并返回正确的下一交易哈希;
A2,区块链同步工具根据A1的规则,在程序启动时可以任意发送一个交易,以获取正确的交易哈希值。
3.添加一种report交易类型,其特征在于,
B1,这种交易用来在同步到最新交易后,区块链A长时间无交易产生的情况下,记录当前最新区块;
B2,同步到最新交易后,若区块链A长时间无交易产生,则构造一个report类型交易,report类型交易的当前交易哈希置为当前区块序号,最新交易的下一交易哈希置为report类型交易的当前交易哈希。
4.一种交易同步工具的实现方法,其特征在于,
C1,使用多线程加同步队列的方式实现数据的同步获取与发送;
C2,配置灵活,可从不同节点获取交易以及发送交易到不同节点,可在多台机子上部署,以及避免单台机器出现异常的情况下无法继续同步的问题;
C3,交易同步到最新交易后,可跟踪后续交易的同步。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711212285.5A CN109842655A (zh) | 2017-11-28 | 2017-11-28 | 一种跨区块链网络的数据同步方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711212285.5A CN109842655A (zh) | 2017-11-28 | 2017-11-28 | 一种跨区块链网络的数据同步方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109842655A true CN109842655A (zh) | 2019-06-04 |
Family
ID=66880669
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711212285.5A Pending CN109842655A (zh) | 2017-11-28 | 2017-11-28 | 一种跨区块链网络的数据同步方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109842655A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110708280A (zh) * | 2019-08-21 | 2020-01-17 | 北京邮电大学 | 一种集合多家独立单元組成的根区块链认证系统及方法 |
CN112202863A (zh) * | 2020-09-24 | 2021-01-08 | 成都质数斯达克科技有限公司 | 数据同步方法、装置、电子设备及可读存储介质 |
CN113409145A (zh) * | 2021-06-18 | 2021-09-17 | 支付宝(杭州)信息技术有限公司 | 一种跨区块链的交易同步方法和装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105404701A (zh) * | 2015-12-31 | 2016-03-16 | 浙江图讯科技股份有限公司 | 一种基于对等网络的异构数据库同步方法 |
CN105719185A (zh) * | 2016-01-22 | 2016-06-29 | 杭州复杂美科技有限公司 | 区块链的数据对比及共识方法 |
CN105956923A (zh) * | 2016-04-20 | 2016-09-21 | 上海如鸽投资有限公司 | 资产交易平台以及资产的数字化认证和交易方法 |
US20160283920A1 (en) * | 2015-03-28 | 2016-09-29 | Justin Fisher | Authentication and verification of digital data utilizing blockchain technology |
CN106375317A (zh) * | 2016-08-31 | 2017-02-01 | 北京明朝万达科技股份有限公司 | 一种基于区块链的大数据安全认证方法和系统 |
CN107239940A (zh) * | 2017-05-11 | 2017-10-10 | 北京博晨技术有限公司 | 基于区块链系统的网络交易方法及装置 |
-
2017
- 2017-11-28 CN CN201711212285.5A patent/CN109842655A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160283920A1 (en) * | 2015-03-28 | 2016-09-29 | Justin Fisher | Authentication and verification of digital data utilizing blockchain technology |
CN105404701A (zh) * | 2015-12-31 | 2016-03-16 | 浙江图讯科技股份有限公司 | 一种基于对等网络的异构数据库同步方法 |
CN105719185A (zh) * | 2016-01-22 | 2016-06-29 | 杭州复杂美科技有限公司 | 区块链的数据对比及共识方法 |
CN105956923A (zh) * | 2016-04-20 | 2016-09-21 | 上海如鸽投资有限公司 | 资产交易平台以及资产的数字化认证和交易方法 |
CN106375317A (zh) * | 2016-08-31 | 2017-02-01 | 北京明朝万达科技股份有限公司 | 一种基于区块链的大数据安全认证方法和系统 |
CN107239940A (zh) * | 2017-05-11 | 2017-10-10 | 北京博晨技术有限公司 | 基于区块链系统的网络交易方法及装置 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110708280A (zh) * | 2019-08-21 | 2020-01-17 | 北京邮电大学 | 一种集合多家独立单元組成的根区块链认证系统及方法 |
CN112202863A (zh) * | 2020-09-24 | 2021-01-08 | 成都质数斯达克科技有限公司 | 数据同步方法、装置、电子设备及可读存储介质 |
CN112202863B (zh) * | 2020-09-24 | 2022-09-20 | 成都质数斯达克科技有限公司 | 数据同步方法、装置、电子设备及可读存储介质 |
CN113409145A (zh) * | 2021-06-18 | 2021-09-17 | 支付宝(杭州)信息技术有限公司 | 一种跨区块链的交易同步方法和装置 |
CN113409145B (zh) * | 2021-06-18 | 2022-04-22 | 支付宝(杭州)信息技术有限公司 | 一种跨区块链的交易同步方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108459939B (zh) | 一种日志收集方法、装置、终端设备及存储介质 | |
CN103309907B (zh) | 对不同来源的业务数据进行规范化处理的方法及系统 | |
CN112270550B (zh) | 一种基于区块链的新能源电力溯源方法及系统 | |
CN105930121B (zh) | 多客户端的笔迹同步方法和系统 | |
CN109842655A (zh) | 一种跨区块链网络的数据同步方法 | |
CN109949111A (zh) | 电子票据标识分配方法、电子票据生成方法、装置及系统 | |
CN109995850A (zh) | 一种区块链系统及区块链系统的交易处理方法 | |
CN110209726A (zh) | 分布式数据库集群系统、数据同步方法及存储介质 | |
CN109542980A (zh) | 一种区块链的数据处理方法、装置、设备及介质 | |
CN104219288B (zh) | 基于多线程的分布式数据同步方法及其系统 | |
CN106372221A (zh) | 一种文件同步的方法、设备及系统 | |
CN102637214A (zh) | 基于数据库服务间的通用数据同步方法及其系统 | |
CN106296397A (zh) | 期货行情加速系统及加速方法 | |
CN102609479A (zh) | 一种内存数据库节点复制方法 | |
CN104484167B (zh) | 任务处理方法及装置 | |
CN107689009A (zh) | 年金数据处理方法、装置、服务器和存储介质 | |
CN106790713A (zh) | 云计算环境下的跨数据中心虚拟机迁移方法 | |
CN106055723A (zh) | 一种数据库数据同步装置、系统及方法 | |
CN107870982A (zh) | 数据处理方法、系统和计算机可读存储介质 | |
CN105306273B (zh) | 流程配置方法及装置 | |
CN111949726A (zh) | 一种基于区块链的关系型数据库同步方法及同步系统 | |
CN110134503A (zh) | 一种集群环境下的定时任务处理方法、装置及存储介质 | |
CN109617755B (zh) | 接入系统的验收方法及装置 | |
CN109299116A (zh) | 一种数据同步方法、装置、设备及可读存储介质 | |
CN106993015A (zh) | 交易的同步方法、系统及证券服务器 |
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 | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20190604 |
|
WD01 | Invention patent application deemed withdrawn after publication |