用于基于区块链的去中心化应用开发的系统和方法技术方案

技术编号:24808068 阅读:21 留言:0更新日期:2020-07-07 22:43
提供了用于基于区块链的去中心化应用开发的方法、系统和装置,包括编码在计算机存储介质上的计算机程序。所述方法之一包括:基于多个第一输入生成区块链合约和与所述区块链合约相关联的接口规范;在区块链上部署所述区块链合约;基于多个第二输入和与所述区块链合约相关联的所述接口规范来生成客户端应用,其中,所述客户端应用可执行以调用部署在所述区块链上的所述区块链合约;将所述客户端应用存储于在线存储系统中。

【技术实现步骤摘要】
【国外来华专利技术】用于基于区块链的去中心化应用开发的系统和方法
本文通常涉及用于基于区块链的去中心化应用开发的方法和设备。
技术介绍
诸如基于区块链的虚拟机和智能合约之类的区块链技术的发展,使基于区块链技术的去中心化应用的创建成为可能。去中心化应用可以包括前端应用和后端基于区块链的逻辑。前端应用可以提供用户接口、接收用户输入、并向用户提供输出。后端基于区块链的逻辑可以执行与去中心化应用的功能相关的计算、处理和数据存储任务。尽管与传统的服务器或基于云的系统相比,区块链系统可能会享有诸如安全性、可信度和透明性之类的优势,但区块链系统仍存在计算效率和网络容量不足等缺点。由区块链系统的特性引起的这些和其他缺点给去中心化应用的开发和使用造成了各种障碍。例如,一些区块链系统的低计算效率或高处理成本可能会驱使去中心化应用的一些开发人员在与开发人员相关联的私有服务器上实现至少部分后端逻辑。这种方法可能会通过损害其安全性和可信度来破坏基于区块链的解决方案的初衷。作为另一示例,区块链系统的容量的限制可能会延迟前端应用对相关数据的查询的响应时间。区块链的数据结构也可能限制使用复杂数据查询的灵活性。作为另一示例,开发人员可能需要针对每个去中心化应用基于区块链系统创建用户身份管理系统,这可能是繁重且昂贵的。作为另一示例,区块链系统可能不提供与用于存储可能与去中心化应用相关的数据的外部系统的接口。作为另一示例,用于开发、测试、编译和发布基于区块链的逻辑和前端应用的开发环境可能对开发人员不可用。现有的开发环境可能不允许集成基于区块链的逻辑的开发和前端应用的开发。这两个组件之间的接口可能很复杂,并且难以编程和测试。
技术实现思路
本文的各种实施例包括但不限于用于基于区块链的去中心化应用开发的系统、方法、和非暂态计算机可读介质。根据一些实施例,一种计算机实现的用于基于区块链的去中心化应用的方法包括:基于多个第一输入生成区块链合约和与所述区块链合约相关联的接口规范;在区块链上部署所述区块链合约;基于多个第二输入和与所述区块链合约相关联的所述接口规范来生成客户端应用,其中,所述客户端应用可被执行以调用部署在所述区块链上的所述区块链合约;将所述客户端应用存储于在线存储系统中。在一些实施例中,所述方法还包括:提供用于区块链合约开发和应用开发的集成开发环境(IDE);在所述集成开发环境中接收所述多个第一输入;以及在所述集成开发环境中接收所述多个第二输入。在一些实施例中,生成区块链合约包括:基于所述多个第一输入来获得与所述区块链合约相关联的源代码,并编译所述获得的源代码以生成与所述区块链合约相关联的字节码。在一些实施例中,生成所述区块链合约还包括:在编译所述获得的源代码以生成字节码之前,分析所述获得的源代码以识别一个或多个语法问题,或者分析所述获得的源代码以识别与所述区块链合约相关联的一个或多个安全问题。在一些实施例中,与所述区块链合约相关联的接口规范包括与所述区块链合约相关联的应用二进制接口(ABI)的规范,其中,所述应用二进制接口的规范包括对与所述区块链合约相关联的一个或多个接口函数中的每个接口函数的说明。在一些实施例中,生成区块链合约包括:基于多个第三输入生成与所述区块链合约相关联的一个或多个单元测试用例,以及执行所述一个或多个单元测试用例以测试所述区块链合约。在一些实施例中,生成客户端应用包括:基于所述接口规范生成与所述区块链合约相关联的对象,其中,所述对象包括与所述接口规范相关联的一种或多种方法;获得所述多个第二输入,其中,一个或多个所述第二输入包括调用与所述接口规范相关联的所述一种或多种方法的源代码;以及将与所述区块链合约相关联的所述对象和所述源代码包括在所述客户端应用中。在一些实施例中,生成客户端应用包括将与所述区块链相关联的软件开发工具包(SDK)集成在客户端应用中。在一些实施例中,一个或多个所述第二输入包括对与所述区块链相关联的一个或多个基于区块链的程序的一个或多个引用。所述客户端应用可被执行以调用所述一个或多个基于区块链的程序。在一些实施例中,生成客户端应用包括将与所述一个或多个基于区块链的程序相关联的一个或多个软件开发工具包集成在所述客户端应用中。在一些实施例中,生成客户端应用包括提供用于测试所述区块链合约或所述客户端应用的一个或多个仿真器,并使用所述一个或多个仿真器来执行所述客户端应用或所述区块链合约,以识别与所述客户端应用或所述区块链合约相关联的一个或多个问题。在一些实施例中,所述在线存储系统包括根据星际文件系统(IPFS)协议的分布式文件系统或基于云的存储系统。根据其他实施例,一种用于基于区块链的去中心化应用开发的系统包括一个或多个处理器,以及耦接到所述一个或多个处理器且其上存储有指令的一个或多个计算机可读存储器,所述指令能由所述一个或多个处理器执行以执行前述实施例中任一项所述的方法。根据又一其他实施例,一种非暂态计算机可读存储介质配置有可由一个或多个处理器执行以促使所述一个或多个处理器执行前述实施例中任一项所述的方法的指令。根据再一其他实施例,一种用于基于区块链的去中心化应用开发的装置包括用于执行前述实施例中任一项所述的方法的多个模块。根据一些实施例,一种用于基于区块链的去中心化应用开发的系统包括一个或多个处理器,以及耦接到所述一个或多个处理器且其上存储有指令的一个或多个计算机可读存储器,所述指令可由所述一个或多个处理器执行以执行包括以下的操作:基于多个第一输入生成区块链合约和与所述区块链合约相关联的接口规范;在区块链上部署所述区块链合约;基于多个第二输入和与所述区块链合约相关联的所述接口规范来生成客户端应用,其中,所述客户端应用可被执行以调用部署在所述区块链上的所述区块链合约;将所述客户端应用存储于在线存储系统中。根据其他实施例,一种非暂态计算机可读介质配置有可由一个或多个处理器执行以促使所述一个或多个处理器执行包括以下操作的指令:基于多个第一输入生成区块链合约和与所述区块链合约相关联的接口规范;在区块链上部署所述区块链合约;基于多个第二输入和与所述区块链合约相关联的所述接口规范来生成客户端应用,其中,所述客户端应用可被执行以调用部署在所述区块链上的所述区块链合约;将所述客户端应用存储于在线存储系统中。根据又一些其他实施例,一种用于基于区块链的去中心化应用开发的装置包括:第一生成模块,用于基于多个第一输入生成区块链合约和与所述区块链合约相关联的接口规范;部署模块,用于在区块链上部署所述区块链合约;第二生成模块,用于基于多个第二输入和与所述区块链合约相关联的所述接口规范来生成客户端应用,其中,所述客户端应用可被执行以调用部署在所述区块链上的所述区块链合约;存储模块,用于将所述客户端应用存储于在线存储系统中。本文公开的实施例具有一个或多个技术效果。在一些实施例中,在线平台向去中心化应用提供各种基于区块链的服务。这允许将去中心化应用的各种功能外包,并使轻量且易于实现的去中心化应用的开发成为可能。在其他实施例中本文档来自技高网
...

【技术保护点】
1.一种计算机实现的用于基于区块链的去中心化应用开发的方法,包括:/n基于多个第一输入生成区块链合约和与所述区块链合约相关联的接口规范;/n在区块链上部署所述区块链合约;/n基于多个第二输入和与所述区块链合约相关联的所述接口规范来生成客户端应用,其中,所述客户端应用能够被执行以调用部署在所述区块链上的所述区块链合约;以及/n将所述客户端应用存储于在线存储系统中。/n

【技术特征摘要】
【国外来华专利技术】1.一种计算机实现的用于基于区块链的去中心化应用开发的方法,包括:
基于多个第一输入生成区块链合约和与所述区块链合约相关联的接口规范;
在区块链上部署所述区块链合约;
基于多个第二输入和与所述区块链合约相关联的所述接口规范来生成客户端应用,其中,所述客户端应用能够被执行以调用部署在所述区块链上的所述区块链合约;以及
将所述客户端应用存储于在线存储系统中。


2.根据权利要求1所述的方法,还包括:
提供用于区块链合约开发和应用开发的集成开发环境IDE;
在所述集成开发环境中接收所述多个第一输入;以及
在所述集成开发环境中接收所述多个第二输入。


3.根据权利要求1-2中任一项所述的方法,其中,所述生成区块链合约包括:
基于所述多个第一输入来获得与所述区块链合约相关联的源代码;以及
编译所述获得的源代码以生成与所述区块链合约相关联的字节码。


4.根据权利要求3所述的方法,其中,所述生成区块链合约还包括,在编译所述获得的源代码以生成字节码之前:
分析所述获得的源代码以识别一个或多个语法问题;或者
分析所述获得的源代码以识别与所述区块链合约相关联的一个或多个安全问题。


5.根据权利要求1-4中任一项所述的方法,其中,与所述区块链合约相关联的所述接口规范包括:
与所述区块链合约相关联的应用二进制接口ABI的规范,其中,所述应用二进制接口的规范包括对与所述区块链合约相关联的一个或多个接口函数中的每个接口函数的说明。


6.根据权利要求1-5中任一项所述的方法,其中,所述生成区块链合约包括:
基于多个第三输入生成与所述区块链合约相关联的一个或多个单元测试用例;以及
执行所述一个或多个单元测试用例以测试所述区块链合约。


7.根据权利要求1-6中任一项所述的方法,其中,所述生成客户端应用包括:
基于所述接口规范生成与所述区块链合约相关联的对象,其中,所述对象包括与所述接口规范相关联的一种或多种方法;
获...

【专利技术属性】
技术研发人员:孙善禄李书博
申请(专利权)人:支付宝杭州信息技术有限公司
类型:发明
国别省市:浙江;33

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

1