CN111813836A - 一种提高Ethereum区块链系统扩展性的方法 - Google Patents
一种提高Ethereum区块链系统扩展性的方法 Download PDFInfo
- Publication number
- CN111813836A CN111813836A CN202010814174.7A CN202010814174A CN111813836A CN 111813836 A CN111813836 A CN 111813836A CN 202010814174 A CN202010814174 A CN 202010814174A CN 111813836 A CN111813836 A CN 111813836A
- Authority
- CN
- China
- Prior art keywords
- intelligent contract
- function
- address
- new
- 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
- 238000000034 method Methods 0.000 title claims abstract description 24
- 230000006870 function Effects 0.000 claims abstract description 69
- 238000012986 modification Methods 0.000 abstract description 7
- 230000004048 modification Effects 0.000 abstract description 7
- 238000000926 separation method Methods 0.000 abstract description 3
- 238000013461 design Methods 0.000 description 3
- RTZKZFJDLAIYFH-UHFFFAOYSA-N Diethyl ether Chemical compound CCOCC RTZKZFJDLAIYFH-UHFFFAOYSA-N 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000000670 limiting effect Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 244000035744 Hura crepitans Species 0.000 description 1
- 238000007792 addition Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000000875 corresponding effect Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000001066 destructive effect Effects 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000007849 functional defect Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000011835 investigation Methods 0.000 description 1
- 230000002427 irreversible effect Effects 0.000 description 1
- 230000036961 partial effect Effects 0.000 description 1
- 230000002829 reductive effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2471—Distributed queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Probability & Statistics with Applications (AREA)
- Fuzzy Systems (AREA)
- Computing Systems (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开一种提高Ethereum区块链系统扩展性的方法,包括以下步骤:对数据结构进行分析,根据数据结构创建用于存储数据的第一智能合约;对第一智能合约进行部署,并记录第一智能合约地址;创建第二智能合约,从第二智能合约中生成公共类,将第一智能合约地址导入公共类,并根据第一智能合约地址生成第二智能合约的对象,公共类将第一智能合约的功能集成为公共函数;创建子类继承公共类的属性和功能;子类调用数据操作函数建立符合业务需求的新函数,提供给业务所需的功能。本发明通过对智能合约进行功能上的分割,保证存储数据层面与逻辑层面的分离,无需修改智能合约的数据层,只需通过智能合约的逻辑控制即可完成修改升级操作。
Description
技术领域
本发明涉及区块链技术领域,具体涉及一种提高Ethereum区块链系统扩展性的方法。
背景技术
Ethereum区块链是基于比特币系统中点对点的设计理念上,开发出来的一个开源的有智能合约功能的公共区块链平台。而在其底层有自己一套以太坊虚拟机,并作为配套使用的开发了一套名为Solidity的编程语言,从而让用户,在其基础上建造自己的业务逻辑。而如今虽然功能上能完成大部分的业务逻辑,但在此系统中的业务逻辑中,还存在着部分功能的缺陷。比如,智能合约在部署之后,是无法对其进行更新和升级的,存储的数据也是与智能合约绑定,若是业务上需要进行更新或修改而重新构建新的智能合约时,旧的智能合约上面的数据也会丢失。
发明内容
本发明的目的在于提供一种提高Ethereum区块链系统扩展性的方法,解决合约的更新修改会引起数据丢失的问题。
为达此目的,本发明采用以下技术方案:
提供一种提高Ethereum区块链系统扩展性的方法,包括以下步骤:
S10、对数据结构进行分析,根据所述数据结构创建一个用于存储数据的第一智能合约,所述第一智能合约包括数据结构和数据操作函数;
S20、对所述第一智能合约进行部署,并记录第一智能合约地址;
S30、创建用于集成基础功能的第二智能合约,从所述第二智能合约中生成公共类,将所述第一智能合约地址导入所述公共类,并根据所述第一智能合约地址生成所述第二智能合约的一个对象,所述公共类将所述第一智能合约的功能集成为公共函数;
S40、创建子类继承所述公共类的属性和功能;
S50、所述子类在所述公共函数提供的功能基础上,调用所述数据操作函数建立符合业务需求的新函数,提供给业务所需的功能。
作为提高Ethereum区块链系统扩展性的方法的一种优选方案,所述步骤S20中,所述第一智能合约通过所述区块链中的虚拟机将其编译为计算机底层的编译文件,并将所述编译文件发布至所述区块链中的全部节点,全部所述节点达成共识并存储所述第一智能合约,当所述区块链返回所述第一智能合约地址后,则说明所述第一智能合约部署完成。
作为提高Ethereum区块链系统扩展性的方法的一种优选方案,所述步骤S10中,所述数据操作函数包括插入函数、更新函数、删除函数和查询函数。
作为提高Ethereum区块链系统扩展性的方法的一种优选方案,所述步骤S50中,当需要更新业务逻辑时,只需新建一个新智能合约继承所述第二智能合约的公共类,并根据新的业务需求对所述新智能合约进行修正后,将所述新智能合约部署到所述区块链中,前端服务器将原来的所述子类的智能合约地址修改为所述新智能合约的地址,即可完成升级更新合约的操作。
作为提高Ethereum区块链系统扩展性的方法的一种优选方案,所述步骤S50中,所述区块链需要调用所述第二智能合约时,只需通过所述第二智能合约的地址去指向需要执行的所述第二智能合约。
本发明的有益效果:本发明通过对Solidity编写的智能合约进行功能上的分割,保证存储数据层面与逻辑层面的分离,同时使用抽象继承的设计思路,对智能合约的逻辑重复内容进行抽象化。当数据结构确定好之后,前端服务器对数据增删改查的操作请求都需要经过智能合约的逻辑层后才能执行对数据的操作,这种方法使得在业务变更频率过快、升级版本过快或者存储数据过大时,无需修改智能合约的数据层,只需通过智能合约的逻辑控制即可完成修改升级操作,从而避免存储数据的丢失或者需要进行繁琐的数据转移。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍。显而易见地,下面所描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一实施例所述的提高Ethereum区块链系统扩展性的方法的流程图。
图2是本发明一实施例所述的提高Ethereum区块链系统扩展性的方法的结构图(一)。
图3是本发明一实施例所述的提高Ethereum区块链系统扩展性的方法的结构图(二)。
具体实施方式
下面结合附图并通过具体实施方式来进一步说明本发明的技术方案。
其中,附图仅用于示例性说明,表示的仅是示意图,而非实物图,不能理解为对本专利的限制;为了更好地说明本发明的实施例,附图某些部件会有省略、放大或缩小,并不代表实际产品的尺寸;对本领域技术人员来说,附图中某些公知结构及其说明可能省略是可以理解的。
本发明实施例的附图中相同或相似的标号对应相同或相似的部件;在本发明的描述中,需要理解的是,若出现术语“上”、“下”、“左”、“右”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此附图中描述位置关系的用语仅用于示例性说明,不能理解为对本专利的限制,对于本领域的普通技术人员而言,可以根据具体情况理解上述术语的具体含义。
在本发明的描述中,除非另有明确的规定和限定,若出现术语“连接”等指示部件之间的连接关系,该术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或成一体;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个部件内部的连通或两个部件的相互作用关系。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
如图1至图3所示,本发明实施例中的提高Ethereum区块链系统扩展性的方法包括以下步骤:
S10、对数据结构进行分析,根据数据结构创建一个用于存储数据的第一智能合约,第一智能合约包括数据结构和数据操作函数;
S20、对第一智能合约进行部署,并记录第一智能合约地址;
S30、创建用于集成基础功能的第二智能合约,从第二智能合约中生成公共类,将第一智能合约地址导入公共类,并根据第一智能合约地址生成第二智能合约的一个对象,公共类将第一智能合约的功能集成为公共函数;
S40、创建子类继承公共类的属性和功能;
S50、子类在公共函数提供的功能基础上,调用数据操作函数建立符合业务需求的新函数,提供给业务所需的功能。
本实施例中的公共类是指把智能合约所共有的属性和功能生成了一个公共类,并把数据合约的一个对象当做共有属性,拥有基础的增删改查的功能以及对应的逻辑功能。当子类继承智能合约的公共类时,子类将拥有公共类的属性和功能,并且子类还具有扩展性,可以新增自己独有的属性和自己的功能,只需根据业务需求增删改查即可。
本发明通过对Solidity编写的智能合约进行功能上的分割,保证存储数据层面与逻辑层面的分离,同时使用抽象继承的设计思路,对智能合约的逻辑重复内容进行抽象化。只要一开始确定好数据结构,前端服务器对数据增删改查的操作请求都需要经过智能合约的逻辑层后才能执行对数据的操作,这种方法使得在业务变更频率过快、升级版本过快或者存储数据过大时,无需修改智能合约的数据层,只需通过智能合约的逻辑控制即可完成修改升级操作,从而避免存储数据的丢失或者需要进行繁琐的数据转移。
于本实施例中,步骤S20中,第一智能合约通过区块链中的虚拟机将其编译为计算机底层的编译文件,并将编译文件发布至区块链中的全部节点,全部节点达成共识并存储第一智能合约,当区块链返回第一智能合约地址后,则说明第一智能合约部署完成。
于本实施例中,步骤S10中,数据操作函数包括插入函数、更新函数、删除函数和查询函数。
于本实施例中,步骤S50中,当需要更新业务逻辑时,只需新建一个新智能合约继承第二智能合约的公共类,并根据新的业务需求对新智能合约进行修正后,将新智能合约部署到区块链中,前端服务器将原来的所述子类的智能合约地址修改为所述新智能合约的地址,即可完成升级更新合约的操作。
于本实施例中,步骤S50中,区块链需要调用第二智能合约时,只需通过第二智能合约的地址去指向需要执行的第二智能合约。
专有名词的解释:
智能合约:智能合约是一种旨在以信息化方式传播、验证或执行合同的计算机协议。智能合约允许在没有第三方的情况下进行可信交易,这些交易可追踪且不可逆转。
公共类:也可以称为父类,父类具有众多属性和功能,在这里相当于一个智能合约。
子类:指的是继承父类的一个类,子类包含着父类中所有的属性和功能,并且拥有对数据进行增删改查的能力。
公共函数:函数指的是功能,公共函数指的就是父类中的功能,子类通过继承父类后都能获得的功能称为公共函数。
业务逻辑:指的是开发人员根据业务的需求,为了实现具体的功能会进行逻辑的判断,例如,对传入字段进行判断、修改或者报错以及对权限的控制操作。
节点:指的是区块链的系统节点,区块链是依靠节点去运行的。每个节点都有一份完整的区块链数据,且有权利去调起智能合约。而且每个节点具有审查监督区块链数据的任务,每次区块链的数据要发生改变时,其所有节点都必须对其结果进行认证,只有大部分的节点确认了这次结果,才会修改区块链的数据,以保证所有节点的数据的统一。
Solidity:Solidity是一种运行在以太虚拟机上的智能合约所用的高级编程语言。
以太坊(Ethereum):以太坊(Ethereum)是一个开源的有智能合约功能的公共区块链平台,通过其专用加密货币以太币提供去中心化的以太虚拟机来处理点对点合约。
以太虚拟机:以太坊虚拟机是以太网上智能合约的运行环境。以太坊虚拟机是在沙盒中运行,这是和区块链主链完全分开的,代码运行在以太坊虚拟机里没有网络,文件系统或是其他进程的智能合约会被限制访问其他的智能合约。
抽象继承:指的是从众多的事物中抽取出共同的特征。父类就是把共有的属性和功能抽象出来形成的一个类,继承指的是子类继承父类的功能和属性。
需要声明的是,上述具体实施方式仅仅为本发明的较佳实施例及所运用技术原理。本领域技术人员应该明白,还可以对本发明做各种修改、等同替换、变化等等。但是,这些变换只要未背离本发明的精神,都应在本发明的保护范围之内。另外,本申请说明书和权利要求书所使用的一些术语并不是限制,仅仅是为了便于描述。
Claims (5)
1.一种提高Ethereum区块链系统扩展性的方法,其特征在于,包括以下步骤:
S10、对数据结构进行分析,根据所述数据结构创建一个用于存储数据的第一智能合约,所述第一智能合约包括数据结构和数据操作函数;
S20、对所述第一智能合约进行部署,并记录第一智能合约地址;
S30、创建用于集成基础功能的第二智能合约,从所述第二智能合约中生成公共类,将所述第一智能合约地址导入所述公共类,并根据所述第一智能合约地址生成所述第二智能合约的一个对象,所述公共类将所述第一智能合约的功能集成为公共函数;
S40、创建子类继承所述公共类的属性和功能;
S50、所述子类在所述公共函数提供的功能基础上,调用所述数据操作函数建立符合业务需求的新函数,提供给业务所需的功能。
2.根据权利要求1所述的提高Ethereum区块链系统扩展性的方法,其特征在于,所述步骤S20中,所述第一智能合约通过所述区块链中的虚拟机将其编译为计算机底层的编译文件,并将所述编译文件发布至所述区块链中的全部节点,全部所述节点达成共识并存储所述第一智能合约,当所述区块链返回所述第一智能合约地址后,则说明所述第一智能合约部署完成。
3.根据权利要求1所述的提高Ethereum区块链系统扩展性的方法,其特征在于,所述步骤S10中,所述数据操作函数包括插入函数、更新函数、删除函数和查询函数。
4.根据权利要求1所述的提高Ethereum区块链系统扩展性的方法,其特征在于,所述步骤S50中,当需要更新业务逻辑时,只需新建一个新智能合约继承所述第二智能合约的公共类,并根据新的业务需求对所述新智能合约进行修正后,将所述新智能合约部署到所述区块链中,前端服务器将原来的所述子类的智能合约地址修改为所述新智能合约的地址,即可完成升级更新合约的操作。
5.根据权利要求4所述的提高Ethereum区块链系统扩展性的方法,其特征在于,所述步骤S50中,所述区块链需要调用所述第二智能合约时,只需通过所述第二智能合约的地址去指向需要执行的所述第二智能合约。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010814174.7A CN111813836A (zh) | 2020-08-13 | 2020-08-13 | 一种提高Ethereum区块链系统扩展性的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010814174.7A CN111813836A (zh) | 2020-08-13 | 2020-08-13 | 一种提高Ethereum区块链系统扩展性的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111813836A true CN111813836A (zh) | 2020-10-23 |
Family
ID=72859714
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010814174.7A Pending CN111813836A (zh) | 2020-08-13 | 2020-08-13 | 一种提高Ethereum区块链系统扩展性的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111813836A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113220701A (zh) * | 2021-05-25 | 2021-08-06 | 成都佰纳瑞信息技术有限公司 | 基于区块链的数据结构自适应变动升级方法、装置、设备和产品 |
CN113342429A (zh) * | 2021-06-09 | 2021-09-03 | 网易(杭州)网络有限公司 | 智能合约数据处理方法、装置、计算机设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106709704A (zh) * | 2016-11-23 | 2017-05-24 | 杭州秘猿科技有限公司 | 一种基于许可链的智能合约升级方法 |
CN110955448A (zh) * | 2019-10-11 | 2020-04-03 | 平安壹钱包电子商务有限公司 | 智能合约分离方法、合约处理方法、装置、设备及介质 |
US20200250174A1 (en) * | 2019-01-31 | 2020-08-06 | Salesforce.Com, Inc. | Systems, methods, and apparatuses for implementing efficient storage and validation of data and metadata within a blockchain using distributed ledger technology (dlt) |
-
2020
- 2020-08-13 CN CN202010814174.7A patent/CN111813836A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106709704A (zh) * | 2016-11-23 | 2017-05-24 | 杭州秘猿科技有限公司 | 一种基于许可链的智能合约升级方法 |
US20200250174A1 (en) * | 2019-01-31 | 2020-08-06 | Salesforce.Com, Inc. | Systems, methods, and apparatuses for implementing efficient storage and validation of data and metadata within a blockchain using distributed ledger technology (dlt) |
CN110955448A (zh) * | 2019-10-11 | 2020-04-03 | 平安壹钱包电子商务有限公司 | 智能合约分离方法、合约处理方法、装置、设备及介质 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113220701A (zh) * | 2021-05-25 | 2021-08-06 | 成都佰纳瑞信息技术有限公司 | 基于区块链的数据结构自适应变动升级方法、装置、设备和产品 |
CN113342429A (zh) * | 2021-06-09 | 2021-09-03 | 网易(杭州)网络有限公司 | 智能合约数据处理方法、装置、计算机设备及存储介质 |
CN113342429B (zh) * | 2021-06-09 | 2023-08-08 | 网易(杭州)网络有限公司 | 智能合约数据处理方法、装置、计算机设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10324690B2 (en) | Automated enterprise software development | |
CN107147704B (zh) | 一种面向区块链的通用服务中间件系统 | |
US7684964B2 (en) | Model and system state synchronization | |
US8078357B1 (en) | Application-independent and component-isolated system and system of systems framework | |
US8122106B2 (en) | Integrating design, deployment, and management phases for systems | |
US8495352B2 (en) | System and method for instantiation of distributed applications from disk snapshots | |
US11579848B2 (en) | Unified operating system for distributed computing | |
US20170048331A1 (en) | Platform runtime abstraction | |
US9459859B2 (en) | Template derivation for configuration object management | |
US11277303B1 (en) | Declarative specification based override mechanism for customizing data centers deployed on cloud platforms | |
CN111813836A (zh) | 一种提高Ethereum区块链系统扩展性的方法 | |
WO2022250864A1 (en) | Deploying a cloud service based on component dependencies | |
Cuadrado et al. | An autonomous engine for services configuration and deployment | |
US11848829B2 (en) | Modifying a data center based on cloud computing platform using declarative language and compiler | |
US20220147399A1 (en) | Declarative language and compiler for provisioning and deploying data centers on cloud platforms | |
US20130297755A1 (en) | Network element configuration management | |
Zalila et al. | MoDMaCAO: a model-driven framework for the design, validation and configuration management of cloud applications based on OCCI | |
KR20040079337A (ko) | 분산형 컴퓨팅 시스템을 위한 아키텍처 및 분산형애플리케이션들의 자동화된 설계, 배포와 관리 | |
CN112541756B (zh) | 区块链合约升级方法、装置、计算机设备及可读存储介质 | |
CN116225464B (zh) | 一种平台的快速部署方法 | |
Benato et al. | Infrastructure Based on Template Engines for Automatic Generation of Source Code for Self-adaptive Software Domain. | |
CN115604101B (zh) | 系统管理方法及相关设备 | |
US11736525B1 (en) | Generating access control policies using static analysis | |
CN117155946A (zh) | 区块链智能合约的升级处理方法、装置、设备及介质 | |
CN117193734A (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 |