基于自定义结构数据便于以太坊智能合约快速升级方法技术

技术编号:26797424 阅读:16 留言:0更新日期:2020-12-22 17:14
本发明专利技术提出了一种基于自定义结构数据便于以太坊智能合约快速升级方法,包括如下步骤:S1,创建两个智能合约,分别为数据合约和功能合约,数据合约提供一个带映射索引的字符串数组,用于存储自定义结构数据;S2,自定义数据结构通过标准化形成字符串,存入数据合约;访问数据合约,取得字符串,通过逆标准化还原为自定义数据结构;用户通过重定义数据结构来更新数据合约的数据结构,也可以重定义标准化和逆标准化的流程来提高存取效率;S3,功能合约通过访问数据合约来为用户提供访问接口,替换功能合约即可升级合约部分功能。

【技术实现步骤摘要】
基于自定义结构数据便于以太坊智能合约快速升级方法
本专利技术涉及区块链智能合约领域,尤其涉及一种基于自定义结构数据便于以太坊智能合约快速升级方法。
技术介绍
以太坊(英文Ethereum)是一个开源的有智能合约功能的公共区块链平台,通过其专用加密货币以太币(Ether,简称“ETH”)提供去中心化的以太虚拟机(EthereumVirtualMachine)来处理点对点合约。现有技术中区块链网络中关于更新智能合约的数据结构的方法,主要是通过继承数据结构合约,来做到在更新数据结构的同时,保证历史数据不丢失。但是现有技术中也存在如下问题:1)需要使用代理合约,逻辑合约、数据结构合约,并且代理合约和逻辑合约需要继承数据结构合约,结构复杂,不易理解,导致部署和升级难度加大。2)数据结构存储于合约中,导致用户每次想要修改数据结构,都必须升级合约。3)数据结构存储于合约中,所以部署合约之前必须设计好数据结构。
技术实现思路
本专利技术旨在至少解决现有技术中存在的技术问题,特别创新地提出了一种基于自定义结构数据便于以太坊智能合约快速升级方法。为了实现本专利技术的上述目的,本专利技术提供了一种基于自定义结构数据便于以太坊智能合约快速升级方法,包括如下步骤:S1,创建两个智能合约,分别为数据合约和功能合约,数据合约提供一个带映射索引的字符串数组,用于存储自定义结构数据;S2,自定义数据结构通过标准化形成字符串,存入数据合约;访问数据合约,取得字符串,通过逆标准化还原为自定义数据结构;用户通过重定义数据结构来更新数据合约的数据结构,也可以重定义标准化和逆标准化的流程来提高存取效率;S3,功能合约通过访问数据合约来为用户提供访问接口,替换功能合约即可升级合约部分功能。优选的,还包括:S1-1,通过太坊服务器接收来自区块链节点的智能合约升级请求,建立升级智能合约的自定义结构数据请求单元,在请求单元中设置访问信息;S1-2,对以太坊服务器进行访问信息预留存储地址;保存访问信息、以及存储地址和即将建立升级关系的智能合约字符串。S1-3,对智能合约中数据合约进行字符串定义,构建文件ID集合,文件名集合、文件类型集合和文件存储容量集合数据结构,S1-4,形成智能合约中功能合约的标准化形式,将文件ID集合,文件名集合、文件类型集合和文件存储容量集合数据结构整合在价值-json标准数据结构中;S1-5,智能合约中将数据合约和功能合约进行编译,得到待部署合约的字节数和转换字符串的存储地址空间记录信息,当数据合约和功能合约的记录信息存储完成后,进行智能合约升级标识备注,反馈至以太坊服务器发起部署智能合约升级请求,通过智能合约的函数入口地址表、数据标准化记录集,将智能合约记录的存储状态转换为键值的形式进行存储,S1-6,以太坊服务器对智能合约中数据合约和功能合约地址进行认证,旨在以信息化方式传播、验证或执行智能合约快速升级的网络协议,根据智能合约升级需求,验证智能合约快速升级的网络协议作为数据合约和功能合约的一个插件模块,部署快速升级的赋值需求从而更新自定义的结构数据;S1-7,由以太坊服务器上编写所述智能合约升级方案,并设置所述验证升级方案的智能合约存储地址;所述智能合约存储地址参数设置为以太坊服务器访问地址,当以太坊服务器接收所述智能合约部署请求,得到所述验证升级方案的智能合约存储地址,S1-8,所述以太坊服务器获取待执行智能合约升级事件的事件信息,根据所述事件信息生成事件请求;对智能合约中文件ID集合,文件名集合、文件类型集合和文件存储容量集合数据结构整合在价值-json标准数据结构中的存储地址映射在以太坊服务器,在完成部署所述验证升级方案的验证逻辑后,由以太坊服务器上发起待升级指令。优选的,包括:S2-1,数据合约从以太坊服务器获取升级请求,每次接收到升级请求信息后,则进行字符串形式的数据结构准备,并对升级请求进行认证校验;生成升级请求的事件结构体,并根据以太坊服务器的请求地址调用的所述事件结构体进行认证校验;数据合约认证校验所述事件结构体之后,根据事件结构体中的升级请求,搭建字符串形式的数据结构,通过所述认证校验过程对本次升级请求执行预设升级操作;S2-2,当以太坊服务器接收到一个升级事件请求时创建的对应的字符串时,在所述事件结构体中对待升级文件数据的文件ID集合,文件名集合、文件类型集合和文件存储容量集合数据结构进行映射;S2-3,如果升级请求中字符串数据结构与带升级文件数据相对应,则进行升级请求的执行指令,如果字符串数据结构与带升级文件数据不对应,则不进行升级请求的执行指令,建立升级请求冗余度阈值,如果超过该阈值则返回数据合约进行重新认证校验,否则继续执行升级请求;S2-4,使用更新后的功能合约执行数据合约的校验工作,当以太坊服务器执行升级请求时,将更新后的功能合约中更新结构数据的任务进行分类处理,从以太坊服务器中删除以前定义的功能合约;在进行功能合约删除操作中,将删除结果广播至每个以太坊服务器,从而形成区块链上的以太坊服务器该功能合约删除操作已执行,避免功能合约删除操作被多次重复执行。S2-5,以太坊服务器将所述待执行的升级请求,使用更新后的功能合约执行对以前定义的功能合约的覆盖操作,若所述覆盖操作校验失败时,所述以太坊服务器将对升级请求从以太坊服务器中进行备注,直到覆盖操作校验成功,所形成的数据合约字符串形式结构数据作为智能合约升级信息,以太坊服务器根据所述升级信息生成的事件结构体,包括:文件ID集合、文件名集合、文件类型集合和文件存储容量集合数据结构,其中经过功能合约更新后文件ID集合、文件名集合、文件类型集合和文件存储容量集合数据结构完成智能合约匹配过程。优选的,包括:S3-1,智能合约通过执行以太坊服务器升级请求,以及广播至区块链任一节点,以太坊服务器所执行的升级请求,通过数据合约和功能合约验证方案可升级完成以太坊服务器的快速升级过程,通过验证逻辑地址调用验证升级请求对所述事件结构体进行校验实现智能合约的升级请求;所述升级请求根据智能合约不同的升级时间可以改变升级请求内容和容量,通过对所述验证逻辑变量进行赋值来更新数据合约和功能合约可升级的验证逻辑,从而实现在灵活更新升级请求,无需切换到新的智能合约;S3-2,智能合约在升级过程中升级请求的执行顺序先后是根据请求时间进行排列,执行顺序以升级请求的具体内容确定,通过获取升级请求中以太坊服务器的智能合约地址,根据所述合约地址生成智能合约部署请求;S3-3,通过部署升级请求接收模块71,用于接收以太坊前置服务器发送的智能合约部署请求,得到验证方案可升级钱包的合约地址;S3-4,通过部署智能合约升级请求从而访问以太坊服务器智能合约地址,并将是否升级广播至其它以太坊服务器;对于智能合约升级更新请求,接收所述以太坊服务器发送的验证逻辑更新请求,得到验证逻辑地址;通过接收所述以太坊服务器发送的升级请求本文档来自技高网...

【技术保护点】
1.一种基于自定义结构数据便于以太坊智能合约快速升级方法,其特征在于,包括如下步骤:/nS1,创建两个智能合约,分别为数据合约和功能合约,数据合约提供一个带映射索引的字符串数组,用于存储自定义结构数据;/nS2,自定义数据结构通过标准化形成字符串,存入数据合约;访问数据合约,取得字符串,通过逆标准化还原为自定义数据结构;用户通过重定义数据结构来更新数据合约的数据结构,也可以重定义标准化和逆标准化的流程来提高存取效率;/nS3,功能合约通过访问数据合约来为用户提供访问接口,替换功能合约即可升级合约部分功能。/n

【技术特征摘要】
1.一种基于自定义结构数据便于以太坊智能合约快速升级方法,其特征在于,包括如下步骤:
S1,创建两个智能合约,分别为数据合约和功能合约,数据合约提供一个带映射索引的字符串数组,用于存储自定义结构数据;
S2,自定义数据结构通过标准化形成字符串,存入数据合约;访问数据合约,取得字符串,通过逆标准化还原为自定义数据结构;用户通过重定义数据结构来更新数据合约的数据结构,也可以重定义标准化和逆标准化的流程来提高存取效率;
S3,功能合约通过访问数据合约来为用户提供访问接口,替换功能合约即可升级合约部分功能。


2.根据权利要求1所述的基于自定义结构数据便于以太坊智能合约快速升级方法,其特征在于,还包括:
S1-1,通过太坊服务器接收来自区块链节点的智能合约升级请求,建立升级智能合约的自定义结构数据请求单元,在请求单元中设置访问信息;
S1-2,对以太坊服务器进行访问信息预留存储地址;保存访问信息、以及存储地址和即将建立升级关系的智能合约字符串。
S1-3,对智能合约中数据合约进行字符串定义,构建文件ID集合,文件名集合、文件类型集合和文件存储容量集合数据结构,
S1-4,形成智能合约中功能合约的标准化形式,将文件ID集合,文件名集合、文件类型集合和文件存储容量集合数据结构整合在价值-json标准数据结构中;
S1-5,智能合约中将数据合约和功能合约进行编译,得到待部署合约的字节数和转换字符串的存储地址空间记录信息,当数据合约和功能合约的记录信息存储完成后,进行智能合约升级标识备注,反馈至以太坊服务器发起部署智能合约升级请求,通过智能合约的函数入口地址表、数据标准化记录集,将智能合约记录的存储状态转换为键值的形式进行存储,
S1-6,以太坊服务器对智能合约中数据合约和功能合约地址进行认证,旨在以信息化方式传播、验证或执行智能合约快速升级的网络协议,根据智能合约升级需求,验证智能合约快速升级的网络协议作为数据合约和功能合约的一个插件模块,部署快速升级的赋值需求从而更新自定义的结构数据;
S1-7,由以太坊服务器上编写所述智能合约升级方案,并设置所述验证升级方案的智能合约存储地址;所述智能合约存储地址参数设置为以太坊服务器访问地址,当以太坊服务器接收所述智能合约部署请求,得到所述验证升级方案的智能合约存储地址,
S1-8,所述以太坊服务器获取待执行智能合约升级事件的事件信息,根据所述事件信息生成事件请求;对智能合约中文件ID集合,文件名集合、文件类型集合和文件存储容量集合数据结构整合在价值-json标准数据结构中的存储地址映射在以太坊服务器,在完成部署所述验证升级方案的验证逻辑后,由以太坊服务器上发起待升级指令。


3.根据权利要求1所述的基于自定义结构数据便于以太坊智能合约快速升级方法,其特征在于,包括:
S2-1,数据合约从以太坊服务器获取升级请求,每次接收到升级请求信息后,则进行字符串形式的数据结构准备,并对升级请求进行认证校验;生成升级请求的事件结构体,并根据以太坊服务器的请求地址调用的所述事件结构体进行认证校验;数据合约认证校验所述事件结构体之后,根据事件结构体中的升级请求,搭建字符串形式的数据结构,通过所述认证校验过程对本次升级请求执行预设升级操作;
S2-2,当以太坊服务器接收到一个升级事件请求时创建的对应的字符串时,在所述事件结构体中对待升级文件数据的文件ID集合,文件名集合、文件类型集合和文件存储容量集合数据结构进行映射;
S2-3,如果升级请求中字符串数据结构与带升级文件数据相对应,则进行升级请求的执行指令,如果字符串数据结构与带升级文件数据不对应,则不进行升级请求的执行指令,建立升级请求冗余度阈值,如果超过该阈值则返回数据合约进行重新认证校验,否则继续执行升级请求;
S2-4,使用更新后的功能合约执行数据合约的校验工作,当以太坊服务器执行升级请求时,将更新后的功能合约中更新结构数据的任务进行分类处理,从以太坊服务器中删除以前定义的功能合约;在进行功能合约删除操作中,将删除结果广播至每个以太坊服务器,从而形成区块链上的以太坊服务器该功能合约删除操作已执行,避免功能合约删除操作被多次重复执行。
S2-5,以太坊服务器将所述待执行的升级请求,使用更新后的功能合约执行对以前定义的功能合约的覆盖操作,若所述覆盖操作校验失败时,所述以太坊服务器将对升级请求从以太坊服务器中进行备注,直到覆盖操作校验成功,所形成的数据合约字符串形式结构数据作为智能合约升级信息,以太坊服务器根据所述升级信息生成的事件结构体,包括:文件ID集合、文件名集合、文件类型集合和文件存储容量集合数据结构,其中经过功能合约更新后文件ID集合、文件名集合、文件类型...

【专利技术属性】
技术研发人员:徐强冯宏伟张博刘铜田文丰
申请(专利权)人:北京易安睿龙科技有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1