CN110286911A - 一种使区块链能够访问外部数据的方法及装置 - Google Patents
一种使区块链能够访问外部数据的方法及装置 Download PDFInfo
- Publication number
- CN110286911A CN110286911A CN201910582687.7A CN201910582687A CN110286911A CN 110286911 A CN110286911 A CN 110286911A CN 201910582687 A CN201910582687 A CN 201910582687A CN 110286911 A CN110286911 A CN 110286911A
- Authority
- CN
- China
- Prior art keywords
- external data
- intelligent contract
- block chain
- access
- common recognition
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45504—Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
- G06F9/45508—Runtime interpretation or emulation, e g. emulator loops, bytecode interpretation
- G06F9/45512—Command shells
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开一种使区块链能够访问外部数据的方法,涉及区块链技术领域。针对区块链无法访问外部数据的问题,采用技术方案需要:编写Hyperledger Fabric服务编译器;编写外部数据服务上链共识智能合约,实现区块链上各方对外部数据服务上链交易的共识;部署外部数据服务上链共识智能合约;联盟链中的各方根据实际业务自定义部署使用外部数据的智能合约,进行外部数据的访问。本发明还公开一种使区块链能够访问外部数据的装置,其与前述方法相结合,共同实现区块链对外部数据的访问。
Description
技术领域
本发明涉及区块链技术领域,具体的说是一种使区块链能够访问外部数据的方法及装置。
背景技术
区块链是分布式数据存储、P2P网络传输、共识机制、密码学等一系列计算机技术的新的应用模式。本质上,区块链是一种去中心化的链式数据库,每个节点均保留一份完整的数据,且区块链网络中使用的数据均来自区块链存储本身。
Hyperledger Fabric是一个基于Go语言实现的面向企业级客户的区块链开源项目,是当前区块链社区中很流行的联盟链解决方案,可以很方便的使用HyperledgerFabric搭建一个由各个企业和社会组织参与的、数据共享的联盟链。
对于企业来说,企业本身已有大量的数据存储在现有传统应用中,企业并不希望将所有数据写入到区块链中,而现有区块链只能访问存储在链上的数据,因此在区块链中就无法使用这些存储在现有传统应用中的数据。因此,基于Hyperledger Fabric区块链项目,提出一种使区块链能够访问外部数据的方法及装置。
发明内容
本发明针对目前技术发展的需求和不足之处,提供一种使区块链能够访问外部数据的方法及装置。
首先,本发明公开一种使区块链能够访问外部数据的方法,解决上述技术问题采用的技术方案如下:
一种使区块链能够访问外部数据的方法,该方法的实现过程包括:
编写Hyperledger Fabric服务编译器;
编写外部数据服务上链共识智能合约,实现区块链上各方对外部数据服务上链交易的共识;
部署外部数据服务上链共识智能合约;
联盟链中的各方根据实际业务自定义部署使用外部数据的智能合约,进行外部数据的访问。
具体的,编写Hyperledger Fabric服务编译器的具体操作为:
基于区块链将要达成共识的智能合约,Chaincode-VM虚拟机提供http客户端工具;
在http客户端工具中,添加net.http网络工具库打包命令;
http客户端工具将添加的net.http网络工具库打包命令编译到Chaincode-VM虚拟机中。
具体的,使用Hyperledger Fabric和编译的Chaincode-VM虚拟机构建外部数据可访问的联盟链网络,对外部数据服务上链共识智能合约进行部署。
可选的,联盟链中的各方根据实际业务自定义部署使用外部数据的智能合约,具体操作为:
在智能合约中,调用http客户端工具,随后调用Http外部数据服务获取外部数据;
自定义部署使用外部数据的智能合约后,启动一个Chaincode-VM虚拟机为智能合约提供运行时环境,使得智能合约中的外部数据服务可以被http客户端工具调用。
其次,本发明还公开一种使区块链能够访问外部数据的装置,解决上述技术问题采用的技术方案如下:
一种使区块链能够访问外部数据的装置,所述装置包括:
编译模块,用于调用Chaincode-VM虚拟机提供的http客户端工具编写Hyperledger Fabric服务编译器;
编码模块,用于编写外部数据服务上链共识智能合约,实现区块链上各方对外部数据服务上链交易的共识;
部署模块,用于部署外部数据服务上链共识智能合约;
自定义共识模块,用于根据联盟链中各方的实际业务自定义部署使用外部数据的智能合约,进行外部数据的访问。
具体的,所涉及编译模块编写Hyperledger Fabric服务编译器的具体操作为:
基于区块链将要达成共识的智能合约,Chaincode-VM虚拟机提供http客户端工具;
在http客户端工具中,添加net.http网络工具库打包命令;
http客户端工具将添加的net.http网络工具库打包命令编译到Chaincode-VM虚拟机中。
具体的,所涉及部署模块使用Hyperledger Fabric和编译的Chaincode-VM虚拟机构建外部数据可访问的联盟链网络,完成对外部数据服务上链共识智能合约的部署。
具体的,所涉及自定义共识模块根据联盟链中各方的实际业务自定义部署使用外部数据的智能合约之前,在智能合约中,调用http客户端工具,随后调用Http外部数据服务获取外部数据;
所涉及自定义共识模块完成使用外部数据智能合约的自定义部署后,启动一个Chaincode-VM虚拟机为智能合约提供运行时环境,使得智能合约中的外部数据服务可以被http客户端工具调用。
本发明的一种使区块链能够访问外部数据的方法及装置,与现有技术相比具有的有益效果是:
本发明首先编写Hyperledger Fabric服务编译器,随后编写外部数据服务上链共识智能合约,实现区块链上各方对外部数据服务上链交易的共识,其次再部署外部数据服务上链共识智能合约,最后,联盟链中的各方根据实际业务自定义部署使用外部数据的智能合约,进行外部数据的访问,解决了区块链网络无法访问外部数据的问题,拓展了区块链的应用场景,基于智能合约,还能保障外部数据的可信任。
附图说明
附图1是本发明实施例一的方法流程图;
附图2是本发明实施例二的连接框图。
附图2中各标号信息表示:
1、编译模块,2、编码模块,3、部署模块,4、自定义共识模块。
具体实施方式
为使本发明的技术方案、解决的技术问题和技术效果更加清楚明白,以下结合具体实施例,对本发明的技术方案进行清楚、完整的描述,显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下获得的所有实施例,都在本发明的保护范围之内。
实施例一:
结合附图1,本实施例提出一种使区块链能够访问外部数据的方法,该方法的实现过程包括:
S10:编写Hyperledger Fabric服务编译器;
S20:编写外部数据服务上链共识智能合约,实现区块链上各方对外部数据服务上链交易的共识;
S30:部署外部数据服务上链共识智能合约;
S40:联盟链中的各方根据实际业务自定义部署使用外部数据的智能合约,进行外部数据的访问。
在本实施例中,编写Hyperledger Fabric服务编译器的具体操作为:
要在区块链的智能合约中访问外部数据,基于区块链将要达成共识的智能合约,Chaincode-VM虚拟机应当提供http客户端工具;
在Chaincode-VM虚拟机提供的http客户端工具中,添加net.http网络工具库打包命令;
http客户端工具将添加的net.http网络工具库打包命令编译到Chaincode-VM虚拟机中。
需要补充的是,在本实施例中,需要实现区块链上各方对外部数据服务上链交易共识的原因是:
区块链网络是由各个不同的社会群体或企业共同参与和维护的,可信任是区块链的一个重要特性,区块链使用共识机制保证数据是由各方共同确认的,因此,在区块链网络中要访问的外部数据服务也要由区块链的各方参与者共同达成共识才能生效。
随后在本实施例中,使用Hyperledger Fabric和编译的Chaincode-VM虚拟机构建外部数据可访问的联盟链网络,对外部数据服务上链共识智能合约进行部署。
在本实施例中,联盟链中的各方根据实际业务自定义部署使用外部数据的智能合约,具体操作为:
在智能合约中,调用http客户端工具,随后调用Http外部数据服务获取外部数据;
自定义部署使用外部数据的智能合约后,启动一个Chaincode-VM虚拟机为智能合约提供运行时环境,使得智能合约中的外部数据服务可以被http客户端工具调用。
实施例二:
结合附图2、1,本实施例提出一种使区块链能够访问外部数据的装置,所述装置包括:
编译模块1,用于调用Chaincode-VM虚拟机提供的http客户端工具编写Hyperledger Fabric服务编译器;
编码模块2,用于编写外部数据服务上链共识智能合约,实现区块链上各方对外部数据服务上链交易的共识;
部署模块3,用于部署外部数据服务上链共识智能合约;
自定义共识模块4,用于根据联盟链中各方的实际业务自定义部署使用外部数据的智能合约,进行外部数据的访问。
在本实施例中,所涉及编译模块1编写Hyperledger Fabric服务编译器的具体操作为:
基于区块链将要达成共识的智能合约,Chaincode-VM虚拟机提供http客户端工具;
在http客户端工具中,添加net.http网络工具库打包命令;
http客户端工具将添加的net.http网络工具库打包命令编译到Chaincode-VM虚拟机中。
需要补充的是,在本实施例中,需要实现区块链上各方对外部数据服务上链交易共识的原因是:
区块链网络是由各个不同的社会群体或企业共同参与和维护的,可信任是区块链的一个重要特性,区块链使用共识机制保证数据是由各方共同确认的,因此,在区块链网络中要访问的外部数据服务也要由区块链的各方参与者共同达成共识才能生效。
随后在本实施例中,所涉及部署模块3使用Hyperledger Fabric和编译的Chaincode-VM虚拟机构建外部数据可访问的联盟链网络,完成对外部数据服务上链共识智能合约的部署。
在本实施例中,所涉及自定义共识模块4根据联盟链中各方的实际业务自定义部署使用外部数据的智能合约之前,在智能合约中,调用http客户端工具,随后调用Http外部数据服务获取外部数据;
所涉及自定义共识模块4完成使用外部数据智能合约的自定义部署后,启动一个Chaincode-VM虚拟机为智能合约提供运行时环境,使得智能合约中的外部数据服务可以被http客户端工具调用。
综上可知,采用本发明的一种使区块链能够访问外部数据的方法及装置,能够进行外部数据的访问,解决区块链网络无法访问外部数据的问题,拓展区块链的应用场景,基于智能合约,还能保障外部数据的可信任。
以上应用具体个例对本发明的原理及实施方式进行了详细阐述,这些实施例只是用于帮助理解本发明的核心技术内容,并不用于限制本发明的保护范围,本发明的技术方案不限制于上述具体实施方式内。基于本发明的上述具体实施例,本技术领域的技术人员在不脱离本发明原理的前提下,对本发明所作出的任何改进和修饰,皆应落入本发明的专利保护范围。
Claims (8)
1.一种使区块链能够访问外部数据的方法,其特征在于,该方法的实现过程包括:
编写Hyperledger Fabric服务编译器;
编写外部数据服务上链共识智能合约,实现区块链上各方对外部数据服务上链交易的共识;
部署外部数据服务上链共识智能合约;
联盟链中的各方根据实际业务自定义部署使用外部数据的智能合约,进行外部数据的访问。
2.根据权利要求1所述的一种使区块链能够访问外部数据的方法,其特征在于,编写Hyperledger Fabric服务编译器的具体操作为:
基于区块链将要达成共识的智能合约,Chaincode-VM虚拟机提供http客户端工具;
在http客户端工具中,添加net.http网络工具库打包命令;
http客户端工具将添加的net.http网络工具库打包命令编译到Chaincode-VM虚拟机中。
3.根据权利要求2所述的一种使区块链能够访问外部数据的方法,其特征在于,使用Hyperledger Fabric和编译的Chaincode-VM虚拟机构建外部数据可访问的联盟链网络,对外部数据服务上链共识智能合约进行部署。
4.根据权利要求2所述的一种使区块链能够访问外部数据的方法,其特征在于,联盟链中的各方根据实际业务自定义部署使用外部数据的智能合约,具体操作为:
在智能合约中,调用http客户端工具,随后调用Http外部数据服务获取外部数据;
自定义部署使用外部数据的智能合约后,启动一个Chaincode-VM虚拟机为智能合约提供运行时环境,使得智能合约中的外部数据服务可以被http客户端工具调用。
5.一种使区块链能够访问外部数据的装置,其特征在于,所述装置包括:
编译模块,用于调用Chaincode-VM虚拟机提供的http客户端工具编写HyperledgerFabric服务编译器;
编码模块,用于编写外部数据服务上链共识智能合约,实现区块链上各方对外部数据服务上链交易的共识;
部署模块,用于部署外部数据服务上链共识智能合约;
自定义共识模块,用于根据联盟链中各方的实际业务自定义部署使用外部数据的智能合约,进行外部数据的访问。
6.根据权利要求5所述的一种使区块链能够访问外部数据的装置,其特征在于,所述编译模块编写Hyperledger Fabric服务编译器的具体操作为:
基于区块链将要达成共识的智能合约,Chaincode-VM虚拟机提供http客户端工具;
在http客户端工具中,添加net.http网络工具库打包命令;
http客户端工具将添加的net.http网络工具库打包命令编译到Chaincode-VM虚拟机中。
7.根据权利要求5所述的一种使区块链能够访问外部数据的装置,其特征在于,所述部署模块使用Hyperledger Fabric和编译的Chaincode-VM虚拟机构建外部数据可访问的联盟链网络,完成对外部数据服务上链共识智能合约的部署。
8.根据权利要求5所述的一种使区块链能够访问外部数据的装置,其特征在于,所述自定义共识模块根据联盟链中各方的实际业务自定义部署使用外部数据的智能合约之前,在智能合约中,调用http客户端工具,随后调用Http外部数据服务获取外部数据;
所述自定义共识模块完成使用外部数据智能合约的自定义部署后,启动一个Chaincode-VM虚拟机为智能合约提供运行时环境,使得智能合约中的外部数据服务可以被http客户端工具调用。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910582687.7A CN110286911A (zh) | 2019-06-30 | 2019-06-30 | 一种使区块链能够访问外部数据的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910582687.7A CN110286911A (zh) | 2019-06-30 | 2019-06-30 | 一种使区块链能够访问外部数据的方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110286911A true CN110286911A (zh) | 2019-09-27 |
Family
ID=68021365
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910582687.7A Pending CN110286911A (zh) | 2019-06-30 | 2019-06-30 | 一种使区块链能够访问外部数据的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110286911A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110888935A (zh) * | 2019-11-12 | 2020-03-17 | 北京芯际科技有限公司 | 一种基于区块链的数据交易方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107392610A (zh) * | 2017-03-06 | 2017-11-24 | 钱德君 | 一种分布式网络的可靠数据源的实现方法 |
CN107507005A (zh) * | 2017-08-01 | 2017-12-22 | 众安信息技术服务有限公司 | 一种基于联盟链的链外数据访问方法和系统 |
CN108510251A (zh) * | 2018-03-30 | 2018-09-07 | 上海分赋信息科技有限公司 | 基于外部数据构建多种触发机制以执行区块链网络中智能合约的方法及系统 |
-
2019
- 2019-06-30 CN CN201910582687.7A patent/CN110286911A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107392610A (zh) * | 2017-03-06 | 2017-11-24 | 钱德君 | 一种分布式网络的可靠数据源的实现方法 |
CN107507005A (zh) * | 2017-08-01 | 2017-12-22 | 众安信息技术服务有限公司 | 一种基于联盟链的链外数据访问方法和系统 |
CN108510251A (zh) * | 2018-03-30 | 2018-09-07 | 上海分赋信息科技有限公司 | 基于外部数据构建多种触发机制以执行区块链网络中智能合约的方法及系统 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110888935A (zh) * | 2019-11-12 | 2020-03-17 | 北京芯际科技有限公司 | 一种基于区块链的数据交易方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Groote et al. | Modeling and analysis of communicating systems | |
CN103713896B (zh) | 用于访问服务器的软件开发工具包生成方法及装置 | |
CN112100054A (zh) | 一种面向数据管控的程序静态分析方法和系统 | |
Barthès | OMAS—a flexible multi-agent environment for CSCWD | |
CN110298190A (zh) | 去中心化多方安全数据处理方法、装置及存储介质 | |
CN110189121A (zh) | 数据处理方法、装置、区块链客户端和区块链节点 | |
CN106302442A (zh) | 一种基于Java语言的网络通讯数据包解析方法 | |
CN107436762A (zh) | 一种寄存器代码文件生成方法、装置和电子设备 | |
Christiansen et al. | Formal semantics and implementation of BPMN 2.0 inclusive gateways | |
CN106598620A (zh) | 代码生成方法及代码生成器 | |
CN108984693A (zh) | 一种基于人工智能的编程程序的分享方法及系统 | |
CN102323772A (zh) | 用数据库运算符的状态机表达 | |
CN107809332A (zh) | 复合接口配置及复合接口调用方法、装置 | |
CN107015841A (zh) | 一种程序编译的预处理方法及程序编译设备 | |
CN108628738A (zh) | 应用程序编程接口测试用例的生成方法及装置 | |
CN110245190A (zh) | 一种区块数据分段存储方法、终端及介质 | |
CN102859489A (zh) | 可恢复的方法 | |
CN110286911A (zh) | 一种使区块链能够访问外部数据的方法及装置 | |
CN108279881A (zh) | 基于深度学习预测部分的跨平台实现架构及方法 | |
CN107368300A (zh) | 一种基于MapReduce的数据汇总系统及方法 | |
Mittal et al. | From domain specific languages to DEVS components: application to cognitive M&S. | |
CN110288340A (zh) | 一种基于Java智能合约的数据集合存储方法 | |
CN109740302A (zh) | 一种神经网络的仿真方法和装置 | |
CN107817972A (zh) | 缓存代码处理方法、装置、存储介质及电子设备 | |
Bravetti et al. | Process calculi as a tool for studying coordination, contracts and session types |
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 | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20200727 Address after: 250100 No. 1036 Tidal Road, Jinan High-tech Zone, Shandong Province, S01 Building, Tidal Science Park Applicant after: Inspur cloud Information Technology Co.,Ltd. Address before: 214029 No. 999 Gaolang East Road, Binhu District, Wuxi City, Jiangsu Province (Software Development Building) 707 Applicant before: Chaozhou Zhuoshu Big Data Industry Development Co.,Ltd. |
|
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190927 |