CN110517020A - 基于区块链网络的项目开发方法及区块链网络的节点 - Google Patents
基于区块链网络的项目开发方法及区块链网络的节点 Download PDFInfo
- Publication number
- CN110517020A CN110517020A CN201910793929.7A CN201910793929A CN110517020A CN 110517020 A CN110517020 A CN 110517020A CN 201910793929 A CN201910793929 A CN 201910793929A CN 110517020 A CN110517020 A CN 110517020A
- Authority
- CN
- China
- Prior art keywords
- node
- block chain
- project
- chain network
- information
- 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
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/10—Office automation; Time management
- G06Q10/103—Workflow collaboration or project management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3829—Payment protocols; Details thereof insuring higher security of transaction involving key management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
Landscapes
- Business, Economics & Management (AREA)
- Engineering & Computer Science (AREA)
- Strategic Management (AREA)
- Accounting & Taxation (AREA)
- Theoretical Computer Science (AREA)
- Finance (AREA)
- General Physics & Mathematics (AREA)
- Human Resources & Organizations (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- Entrepreneurship & Innovation (AREA)
- Economics (AREA)
- Marketing (AREA)
- Tourism & Hospitality (AREA)
- Quality & Reliability (AREA)
- Computer Security & Cryptography (AREA)
- Operations Research (AREA)
- Data Mining & Analysis (AREA)
- Development Economics (AREA)
- Technology Law (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明提供了一种基于区块链网络的项目开发方法、区块链网络的节点及存储介质;基于区块链网络的项目开发方法包括:获取提供者节点发送的项目信息,将所述项目信息存储至区块链网络,其中,所述项目信息包括需求信息及评测数据集;响应于开发者节点发送的对所述项目信息的查询请求,将所述项目信息发送至所述开发者节点,以使所述开发者节点根据所述需求信息进行项目开发;获取所述开发者节点发送的项目代码;根据所述评测数据集对所述项目代码进行评测,并将评测结果存储至所述区块链网络。通过本发明,能够在多人协同开发的场景中,提升项目开发的效率及代码评测的准确率。
Description
技术领域
本发明涉及计算机和区块链技术,尤其涉及一种基于区块链网络的项目开发方法、区块链网络的节点及存储介质。
背景技术
随着计算机技术的快速发展,软件已成为人们生活中不可或缺的一部分,例如利用安装于终端设备的即时通讯软件进行聊天,利用新闻软件浏览新闻等。而在软件项目的开发过程中,由于开发工作量较大,故通常应用协同开发的形式,即多个开发人员同时对项目进行开发。
在相关技术提供的方案中,通常是将项目分发给多个开发人员,在开发人员编写完毕代码后,项目的评测人员以人为检验的方式对代码的质量进行评测。但是,随着软件功能的复杂化,对应项目的开发工作量日趋浩大,所需的开发人员也越来越多,相关技术提供的方案在评测时无法满足效率和准确率的需求,容易导致开发进度被拖慢。
发明内容
本发明实施例提供一种基于区块链网络的项目开发方法、区块链网络的节点及存储介质,能够在多人协同开发的场景中,提升开发效率以及评测的准确率。
本发明实施例的技术方案是这样实现的:
本发明实施例提供一种基于区块链网络的项目开发方法,包括:
获取提供者节点发送的项目信息,将所述项目信息存储至区块链网络,其中,所述项目信息包括需求信息及评测数据集;
响应于开发者节点发送的对所述项目信息的查询请求,将所述项目信息发送至所述开发者节点,以使所述开发者节点根据所述需求信息进行项目开发;
获取所述开发者节点发送的项目代码;
根据所述评测数据集对所述项目代码进行评测,并将评测结果存储至所述区块链网络。
本发明实施例提供一种区块链网络的节点,包括:
项目存储模块,用于获取提供者节点发送的项目信息,将所述项目信息存储至区块链网络,其中,所述项目信息包括需求信息及评测数据集;
项目发送模块,用于响应于开发者节点发送的对所述项目信息的查询请求,将所述项目信息发送至所述开发者节点,以使所述开发者节点根据所述需求信息进行项目开发;
代码获取模块,用于获取所述开发者节点发送的项目代码;
评测模块,用于根据所述评测数据集对所述项目代码进行评测,并将评测结果存储至所述区块链网络。
本发明实施例提供一种区块链网络的节点,包括:
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令时,实现本发明实施例提供的基于区块链网络的项目开发方法。
本发明实施例提供一种存储介质,存储有可执行指令,用于引起处理器执行时,实现本发明实施例提供的基于区块链网络的项目开发方法。
本发明实施例具有以下有益效果:
本发明实施例通过区块链网络实现项目开发,具体将提供者节点发送的项目信息进行入链,并将项目信息发送至开发者节点,然后,根据项目信息包括的评测数据集,对开发者节点发送的项目代码进行评测,并对评测结果进行入链,本发明实施例提升了项目开发的效率,且通过评测数据集对代码进行自动评测,提升了评测的准确性,适用于多人协同开发的场景。
附图说明
图1是本发明实施例提供的基于区块链网络的项目开发系统的一个可选的结构示意图;
图2是本发明实施例提供的区块链网络的一个可选的结构示意图;
图3是本发明实施例提供的区块链网络的节点的一个可选的结构示意图;
图4A是本发明实施例提供的基于区块链网络的项目开发方法的一个可选的流程示意图;
图4B是本发明实施例提供的基于区块链网络的项目开发方法的另一个可选的流程示意图;
图5是本发明实施例提供的交易验证的流程示意图;
图6是本发明实施例提供的区块链网络的另一个可选的结构示意图;
图7是本发明实施例提供的子项目示意图;
图8是本发明实施例提供的与子项目相关的内容示意图;
图9是本发明实施例提供的基于区块链网络的项目开发方法的另一个可选的流程示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,所描述的实施例不应视为对本发明的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
在以下的描述中,所涉及的术语“第一\第二\第三”仅仅是是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二\第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本发明实施例能够以除了在这里图示或描述的以外的顺序实施。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本发明实施例的目的,不是旨在限制本发明。
对本发明实施例进行进一步详细说明之前,对本发明实施例中涉及的名词和术语进行说明,本发明实施例中涉及的名词和术语适用于如下的解释。
1)交易(Transaction),等同于计算机术语“事务”,交易包括了需要提交到区块链网络执行的操作,并非单指商业语境中的交易,鉴于在区块链技术中约定俗成地使用了“交易”这一术语,本发明实施例遵循了这一习惯。
例如,部署(Deploy)交易用于向区块链网络中的节点安装指定的智能合约并准备好被调用;调用(Invoke)交易用于通过调用智能合约在区块链中追加交易的记录,并对区块链的状态数据库进行操作,包括更新操作(包括增加、删除和修改状态数据库中的键值对)和查询操作(即查询状态数据库中的键值对)。
2)区块链(Blockchain),是由区块(Block)形成的加密的、链式的交易的存储结构。
例如,每个区块的头部既可以包括区块中所有交易的哈希值,同时也包含前一个区块中所有交易的哈希值,从而基于哈希值实现区块中交易的防篡改和防伪造;新产生的交易被填充到区块并经过区块链网络中节点的共识后,会被追加到区块链的尾部从而形成链式的增长。
3)区块链网络(Blockchain Network),通过共识的方式将新区块纳入区块链的一系列的节点的集合。
4)账本(Ledger),是区块链(也称为账本数据)和与区块链同步的状态数据库的统称。
其中,区块链是以文件系统中的文件的形式来记录交易;状态数据库是以不同类型的键(Key)值(Value)对的形式来记录区块链中的交易,用于支持对区块链中交易的快速查询。
5)智能合约(Smart Contracts),也称为链码(Chaincode)或应用代码,部署在区块链网络的节点中的程序,节点执行接收的交易中所调用的智能合约,来对账本数据库的键值对数据进行更新或查询的操作。
6)共识(Consensus),是区块链网络中的一个过程,用于在涉及的多个节点之间对区块中的交易达成一致,达成一致的区块将被追加到区块链的尾部,实现共识的机制包括工作量证明(PoW,Proof of Work)、权益证明(PoS,Proof of Stake)、股份授权证明(DPoS,Delegated Proof-of-Stake)、消逝时间量证明(PoET,Proof of Elapsed Time)等。
下面说明本发明实施例提供的区块链网络的示例性应用,参见图1,图1是本发明实施例提供的基于区块链网络的项目开发系统100的架构示意图,包括区块链网络200(示例性示出了包括节点210-1至节点210-3)、提供者系统400(示例性示出归属于提供者系统400的终端600-1及其图形界面610-1)和开发者系统500(示例性示出归属于开发者系统500的终端600-2及其图形界面610-2),下面分别进行说明。
区块链网络200的类型是灵活多样的,例如可以为公有链、私有链或联盟链中的任意一种。以公有链为例,任何业务主体的电子设备例如用户终端和服务器,都可以在不需要授权的情况下接入区块链网络200;以联盟链为例,业务主体在获得授权后其下辖的电子设备(例如终端/服务器)可以接入区块链网络200,此时,成为区块链网络200中的一类特殊的节点即客户端节点。
需要指出地,客户端节点可以只提供支持业务主体发起交易(例如,用于上链存储数据或查询链上数据)功能,对于区块链网络200的常规(原生)节点210的功能,例如下文所述的排序功能、共识服务和账本功能等,客户端节点可以缺省或者有选择性(例如,取决于业务主体的具体业务需求)地实现。从而,可以将业务主体的数据和业务处理逻辑最大程度迁移到区块链网络200中,通过区块链网络200实现数据和业务处理过程的可信和可追溯。
区块链网络200接收来自不同业务主体(例如图1中示出的提供者系统400和开发者系统500)的终端(例如,图1中示出的归属于提供者系统400的终端600-1、以及归属于开发者系统500的终端600-2)提交的交易,执行交易以更新账本或者查询账本,并在终端的用户界面(例如,终端600-1的图形界面610-1、终端600-2的图形界面610-2)显示执行交易的各种中间结果或最终结果。可以理解地,上文中接收交易并执行交易的区块链网络200而言,具体是指区块链网络200中的原生的节点210,当然,在业务主体的客户端节点具有区块链网络200中原生节点210的功能(例如共识功能、账本功能)时,也可以包括相应的客户端节点。
下文以多个业务主体接入区块链网络以实现项目开发为例说明区块链网络的示例性应用。
参见图1,项目开发环节涉及到多个业务主体,如提供者系统400和开发者系统500,提供者系统400的终端600-1接入区块链网络200,成为区块链网络中的客户端节点,即提供者节点;开发者系统400的终端600-2接入区块链网络200,成为区块链网络中的客户端节点,即开发者节点。
提供者系统400的业务人员在终端600-1的图形界面610-1中登录提供者系统400,输入项目信息/转账请求,其中,该转账请求的接收方地址是区块链网络200中设定的保障金账户。终端600-1根据项目信息生成对应更新操作/转账操作的交易,在交易中指定了实现更新操作/转账操作需要调用的智能合约、以及向智能合约传递的参数,交易还携带了提供者系统400签署的数字签名(例如,使用提供者系统400的数字证书中的私钥,对交易的摘要进行加密得到),并将交易广播到区块链网络200。
区块链网络200中的节点210中接收到交易时,对交易携带的数字签名进行验证,数字签名验证成功后,根据交易中携带的提供者系统400的身份,确认提供者系统400是否是具有交易权限,数字签名和权限验证中的任何一个验证判断都将导致交易失败。验证成功后签署节点210自己的数字签名(例如,使用节点210-1的私钥对交易的摘要进行加密得到),并继续在区块链网络200中广播。
区块链网络200中具有排序功能的节点210接收到验证成功的交易后,将交易填充到新的区块中,并广播到区块链网络中200提供共识服务的节点。
区块链200中的提供共识服务的节点210对新区块进行共识过程以达成一致,提供账本功能的节点210将新区块追加到区块链的尾部,并执行新区块中的交易:对于提交项目信息的交易,在账本数据库中更新项目信息对应的键值对;对于提交转账请求的交易,在账本数据库中更新提供者节点的账户余额以及保障金账户的账户余额,如转账请求为向保障金账户转账20元,则在账本数据库中,将提供者节点的账户余额减去20元,将保障金账户的账户余额增加20元。
同理,开发者系统500侧的业务人员可以在终端600-2的图形界面610-2中登录开发者系统500,输入项目信息查询请求/项目代码,由终端600-2根据项目信息查询请求/项目代码生成对应查询操作/更新操作的交易,在交易中指定了实现查询操作/更新操作需要调用的智能合约、以及向智能合约传递的参数,交易还携带了开发者系统400签署的数字签名,并将交易广播到区块链网络200。
区块链网络200中的节点210经过验证、区块填充及共识一致后,将新区块追加到区块链的尾部,并执行新区块中的交易:对于查询项目信息交易,从账本数据库中查询项目信息对应的键值对,并返回查询结果;对于提交项目代码的交易,更新账本数据库中项目代码对应的键值对。
此外,区块链网络200中的具有评测功能的节点210根据提供者节点部署的智能合约,根据项目信息中的评测数据集,对区块链网络中存储的项目代码进行评测,得到评测结果。具有评测功能的节点210生成提交评测结果的交易,并将交易广播到区块链网络200,区块链网络200中的节点210对该交易经过验证、区块填充及共识一致后,将包括评测结果的新区块追加到区块链的尾部,并执行新区块中的交易,即更新账本数据库中评测结果对应的键值对。
此外,区块链网络200中的具有结算功能的节点210根据提供者节点部署的智能合约,在当前的本地时间到达项目信息中的结算时间时,从区块链网络中获取评测结果,确定其中符合奖励条件的评测结果,并从项目奖励中,确定分配至评测结果对应的开发者节点的节点奖励,例如对在评测结果为准确率的情况下,对准确率从高到低进行排序,对前3名对应的开发者节点按照50%、30%及20%的比例分配项目奖励。具有结算功能的节点210根据节点奖励,生成从保障金账户到对应开发者节点的账户的转账请求,将提交转账请求的交易在区块链网络200中进行广播。区块链网络200中的节点210经过验证、区块填充及共识一致后,将新区块追加到区块链的尾部,并执行新区块中的交易,即在账本数据库中更新开发者节点的账户余额以及保障金账户的账户余额,如转账请求为保障金账户向开发者节点的账户转账20元,则在账本数据库中,将保障金账户的账户余额减去20元,将开发者节点的账户余额增加20元。
可以理解地,业务主体在区块链网络200中能够查询/更新的数据的类型,可以通过约束业务主体能够发起的交易的权限来实现,例如,当提供者系统400具有发起更新项目信息的交易的权限时,提供者系统400的业务人员可以在终端600-1的图形界面610-1中输入项目信息,并由终端600-1生成用于更新项目信息的交易广播到区块链网络200中,以在区块链网络200中存储项目信息;
当开发者系统500具有发起查询项目信息的交易的权限时,开发者系统500侧的业务人员可以在终端600-2的图形界面610-2中输入项目信息查询请求,并由终端600-2生成用于查询项目信息的交易广播到区块链网络200中,以从区块链网络200中获取相应的项目信息。
下面说明本发明实施例提供的区块链网络的示例性的功能架构,参见图2,图2是本发明实施例提供的区块链网络200的功能架构示意图,包括应用层201、共识层202、网络层203、数据层204和资源层205,下面分别进行说明。
资源层205封装了实现区块链网路200中的各个节点210的计算资源、存储资源和通信资源,例如计算机、服务器/集群和云中的计算资源、存储资源和通信资源,进行抽象并向数据层204提供统一的接口以屏蔽实现资源层205的底层硬件的差异性。
计算资源包括各种形式的处理器,例如中央处理器(CPU)、应用专用集成电路(ASIC,Application Specific Integrated Circuit)、专用集成电路和现场可编程门阵列(FPGA,Field-Programmable Gate Array)的各种形式的处理器。
存储资源包括各种易失性存储器和非易失性存储器等各种类型的存储介质。其中,非易失性存储器可以是只读存储器(ROM,Read Only Memory)、可编程只读存储器(PROM,Programmable Read-Only Memory)。易失性存储器可以是随机存取存储器(RAM,Random Access Memory),其用作外部高速缓存。
通信资源包括用于供区块链网络的节点210之间、区块链网络200与业务主体之间通信的各种链路。
数据层204封装了实现账本的各种数据结构,包括以文件系统中的文件实现的区块链,键值型的状态数据库和存在性证明(例如区块中交易的哈希树)。
网络层203封装了点对点(P2P,Point to Point)网络协议、数据传播机制和数据验证机制、接入认证机制和业务主体身份管理的功能。
其中,P2P网络协议实现区块链网络200中节点210之间的通信,数据传播机制保证了交易在区块链网络200中的传播,数据验证机制用于基于加密学方法(例如数字证书、数字签名、公/私钥对)实现节点210之间传输数据的可靠性;接入认证机制用于根据实际的业务场景对加入区块链网络200的业务主体的身份进行认证,并在认证通过时赋予业务主体接入区块链网络200的权限;业务主体身份管理用于存储允许接入区块链网络200的业务主体的身份、以及权限(例如能够发起的交易的类型)。
共识层202封装了区块链网络200中的节点210对区块达成一致性的机制(即共识机制)、交易管理和账本管理的功能。
共识机制包括POS、POW和DPOS等共识算法,支持共识算法的可插拔。
交易管理用于验证节点210接收到的交易中携带的数字签名,验证业务主体的身份信息,并根据身份信息判断确认其是否具有权限进行交易(从业务主体身份管理读取相关信息);对于获得接入区块链网络200的授权的业务主体而言,均拥有认证中心颁发的数字证书,业务主体利用自己的数字证书中的私钥对提交的交易进行签名,从而声明自己的合法身份。
账本管理:用于维护区块链和账本数据库。对于取得共识的区块,追加到区块链的尾部;执行取得共识的区块中的交易,当交易包括更新操作时更新状态数据库中的键值对,当交易包括查询操作时查询账本数据库中的键值对并向业务主体返回查询结果。支持对账本数据库的多种维度的查询操作,包括:根据区块序列号(例如交易的哈希值)查询区块;根据区块哈希值查询区块;根据交易序列号查询区块;根据交易序列号查询交易;根据业务主体的账号(序列号)查询业务主体的账号数据;根据通道名称查询通道中的区块链。
应用层201封装了区块链网络能够实现的各种业务,包括交易的溯源、存证和验证等。
下面说明实现本发明实施例的区块链网络的节点的示例性结构,可以理解地,区块链网络200中的任一类型的节点的硬件结构可以根据下文说明的硬件结构而实施。
参见图3,图3是本发明实施例提供的区块链网络200中的节点210的结构示意图,图3所示的节点210包括:至少一个处理器2110、存储器2140和至少一个网络接口2120。节点210中的各个组件通过总线系统2130耦合在一起。可理解,总线系统2130用于实现这些组件之间的连接通信。总线系统2130除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图3中将各种总线都标为总线系统2130。
处理器2110可以是一种集成电路芯片,具有信号的处理能力,例如通用处理器、数字信号处理器(DSP,Digital Signal Processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理器等。
存储器2140可以是可移除的,不可移除的或其组合。示例性的硬件设备包括固态存储器,硬盘驱动器,光盘驱动器等。存储器2140可选地包括在物理位置上远离处理器2110的一个或多个存储设备。
存储器2140包括易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。非易失性存储器可以是只读存储器(ROM,Read Only Memory),易失性存储器可以是随机存取存储器(RAM,Random Access Memory)。本发明实施例描述的存储器2140旨在包括任意适合类型的存储器。
在一些实施例中,存储器2140能够存储数据以支持各种操作,这些数据的示例包括程序、模块和数据结构或者其子集或超集,下面示例性说明。
操作系统2141,包括用于处理各种基本系统服务和执行硬件相关任务的系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务;
网络通信模块2142,用于经由一个或多个(有线或无线)网络接口2120到达其他计算设备,示例性的网络接口2120包括:蓝牙、无线相容性认证(WiFi)、和通用串行总线(USB,Universal Serial Bus)等;
在一些实施例中,本发明实施例提供的区块链网络的节点可以采用软件方式实现,图3示出了存储在存储器2140中的软件模块2143,其可以是程序和插件等形式的软件,包括以下子模块:项目存储模块21431、项目发送模块21432、代码获取模块21433及评测模块21434,这些模块是逻辑上的,因此根据所实现的功能可以进行任意的组合或进一步拆分。
将在下文中说明各个模块的功能。
将结合本发明实施例提供的区块链网络的示例性应用和实施,说明本发明实施例提供的基于区块链网络的项目开发方法。
参见图4A,图4A是本发明实施例提供的基于区块链网络的项目开发方法的一个可选的流程示意图,将结合图4A示出的步骤进行说明。
在步骤101中,区块链网络获取提供者节点发送的项目信息,将所述项目信息进行存储,其中,所述项目信息包括需求信息及评测数据集。
提供者节点及开发者节点是业务主体下辖的电子设备接入区块链网络而成为的客户端节点。根据区块链网络类型的不同,业务主体的接入情况也不同,例如在区块链网络为公有链的情况下,业务主体可不经验证,直接接入区块链网络;在区块链网络为联盟链的情况,可设置接入条件,只有在业务主体满足接入条件时,才允许业务主体的电子设备接入,成为区块链网络中的客户端节点,例如,接入条件为业务主体的名称包括特定标识。区块链网络的节点获取提供者节点发送的项目信息,并将项目信息存储至区块链网络中,其中,项目信息包括需求信息及评测数据集,需求信息即为项目的开发需求,如开发对多个数值进行大小排序的项目。
在一些实施例中,可以通过这样的方式实现上述的将所述项目信息进行存储:所述区块链网络将所述项目信息进行广播,以使所述区块链网络的节点将所述项目信息填充至更新区块,并在对所述更新区块共识一致时,将所述更新区块追加至区块链的尾部。
提供者节点向区块链网络发起提交项目信息的交易,交易携带有提供者节点的数字证书以及提供者节点对于交易的数字签名。区块链网络中的节点中接收到交易时,对交易携带的数字证书及数字签名进行验证,并在对数字证书及数字签名验证成功的基础上,在交易中携带该节点自身的数字签名及自身的数字证书,继续在区块链网络中广播交易。区块链网络中具有排序功能的节点接收到验证成功的交易后,将交易填充到新的区块中,并广播到区块链网络中提供共识服务的节点。区块链网络中的提供共识服务的节点对新区块进行共识过程以达成一致,提供账本功能的节点将新区块追加到区块链的尾部,并执行新区块中的交易:即对于提交项目信息的交易,在账本中更新机器学习模型对应的键值对。值得说明的是,可以是区块链网络中全部的节点(包括提供者节点及开发者节点)来进行上述的共识和维护区块链的功能,也可以是区块链网络的除了提供者节点与开发者节点之外的节点,利用这些节点来实现区块链网络的功能,避免因完全依赖提供者节点与开发者节点,导致的区块链网络的性能波动。
在一些实施例中,可以通过这样的方式实现上述的将所述项目信息进行存储:所述区块链网络通过所述提供者节点部署至所述区块链网络的智能合约,将所述项目信息拆分为至少两个子项目信息,其中,所述子项目信息包括需求信息及评测数据集;将所述子项目信息进行存储,以使开发者节点从所述区块链网络中查询所述子项目信息,并进行项目开发。
对于一个项目来说,可能包括多个子项目,每个子项目对应一个功能,例如一个即时通讯的软件项目可能包括文字聊天的子项目以及语音通话的子项目。对于该情况,区块链网络的节点通过提供者节点部署的智能合约,将项目信息拆分为至少两个子项目信息,其中,每个子项目信息同样包括需求信息及评测数据集,提供者节点部署的智能合约包括对项目信息的拆分规则。区块链网络中的节点将各子项目信息存储于区块链网络中,以使开发者节点从区块链网络中查询子项目信息,并进行项目开发。通过上述方式,提升了存储项目信息的灵活性。
在一些实施例中,可以通过这样的方式实现上述的将所述项目信息进行存储:所述区块链网络包括用于统一存储不同类型的项目信息的区块链,将所述项目信息存储至所述区块链网络的所述区块链中;或者,所述区块链网络包括多个与不同类型的项目信息对应的通道,将所述项目信息存储至对应类型通道的区块链中。
本发明实施例提供了两种存储机制,在一种存储机制中,区块链网络包括用于统一存储不同类型的项目信息的区块链,在获取到提供者节点发送的项目信息时,将该项目信息存储至该区块链。在另一种存储机制中,在区块链网络中设置多个通道,每个通道对应一种类型的项目信息,并且,每个通道内包括与项目信息相关,即提交项目信息及参与项目开发的节点。区块链网络的节点在获取到提供者节点发送的项目信息后,经过广播、区块填充及共识,在共识一致时,将该项目信息存储至与该项目信息对应类型通道的区块链中,以使该通道内的开发者节点对项目信息进行查询及更新。值得说明的是,提供者节点和开发者节点可以是多个通道共有的成员节点,取决于节点根据哪些项目信息进行项目开发,即一个开发者节点可能同时位于通道A和通道B。一个开发者节点退出一个通道时,仍然可以根据其他通道的项目信息进行项目开发。通过上述方式,提升了存储项目信息的灵活性,可根据实际应用场景确定区块链网络的存储机制。
在一些实施例中,在任意步骤之间,所述基于区块链网络的项目开发方法还包括:所述区块链网络响应于开发者节点发送的对所述项目信息的查询请求之前,获取所述项目信息中的授权节点信息;在所述授权节点信息中,查询发送所述查询请求的开发者节点的信息;当查询到发送所述查询请求的开发者节点的信息时,确定响应所述查询请求。
提供者节点发送的项目信息除了需求信息和评测数据集之外,还可包括授权节点信息。区块链网络的节点在获取到开发者节点发送的查询请求时,在授权节点信息中查询该开发者节点的信息。当查询到该开发者节点的信息时,确定响应查询请求;当未查询到该开发者节点的信息时,确定不响应查询请求。通过上述的授权机制实现了对查询请求的针对性响应,同时提升了项目信息的安全性,即仅响应有权限的开发者节点的查询请求。
在一些实施例中,在任意步骤之间,所述基于区块链网络的项目开发方法还包括:所述区块链网络响应于开发者节点发送的对所述项目信息的查询请求之前,获取所述区块链网络中与所述项目信息对应的评测结果;当未出现满足项目结束条件的评测结果时,确定响应所述查询请求。
这里,区块链网络的节点获取到开发者节点发送的查询请求时,获取区块链网络中存储的与项目信息对应的评测结果,该项目信息是查询请求所请求的项目信息。当未出现满足项目结束条件的评测结果时,确定响应查询请求;当出现满足项目结束条件的评测结果时,证明项目开发的目的已达到,故确定不响应查询请求。例如,在评测结果为准确率的情况下,项目结束条件为准确率达到90%,则当区块链网络中未出现达到90%的准确率时,确定响应查询请求;当区块链网络中出现达到90%的准确率时,确定不响应查询请求。通过上述方式,在项目结束时,禁止响应查询请求,节省了通信资源以及开发者节点的处理资源。
在一些实施例中,在任意步骤之间,所述基于区块链网络的项目开发方法还包括:所述区块链网络响应于开发者节点发送的对所述项目信息的查询请求之前,确定所述开发者节点在查询有效期内的查询次数;当所述查询次数未超过查询限制次数时,确定响应所述查询请求。
这里,区块链网络的节点获取到开发者节点发送的查询请求时,确定开发者节点在查询有效期内对项目信息的查询次数。其中,由于开发者节点历史发送的查询请求都存储于区块链网络中,故可基于区块链网络确定开发者节点在查询有效期内的查询次数。查询有效期可根据实际应用场景确定,如为24小时。当开发者节点的查询次数未超过查询限制次数时,确定响应查询请求;当开发者节点的查询次数超过查询限制次数时,确定不响应查询请求,其中,查询限制次数可预先设置,如设置为3次,或根据其他方式得到,本发明实施例对此不做限定。通过上述方式限制开发者节点对项目信息的查询,有效地避免了恶意查询。
在一些实施例中,在任意步骤之间,所述基于区块链网络的项目开发方法还包括:所述区块链网络获取所述开发者节点对应的评测结果,所述评测结果对应历史的项目信息;对各所述评测结果进行区间分析,确定落入不同结果区间的评测结果的比例;对各所述比例进行融合处理,得到所述开发者节点对应的查询限制次数。
这里,区块链网络的节点获取开发者节点对应的评测结果,该评测结果存储于区块链网络中,且评测结果对应历史的项目信息。设置多个评测结果的结果区间,例如,在评测结果为准确率的情况下,设置结果区间包括(0,50%)、[50%,75%)及[75%,100%],(0,50%)区间对应的权重为0,[50%,75%)区间对应的权值为5,[75%,100%]区间对应的权重为10。对开发者节点对应的各评测结果进行区间分析,确定落入不同结果区间的评测结果的比例,并按照各结果区间的权重,对各比例进行加权求和,得到开发者节点对应的查询限制次数。例如,开发者节点对应的评测结果落入(0,50%)区间的比例为50%,落入[50%,75%)区间的比例为20%,落入[75%,100%]区间的比例为30%,则可得到该开发者节点的查询限制次数为4次。上述方式通过开发者节点的历史开发情况确定查询限制次数,保证开发情况良好的开发者节点能够获得更多的查询限制次数,鼓励开发者节点的业务人员提升开发质量。
为了便于理解对数字证书及数字签名进行验证的过程,本发明实施例提供了如图5所示的交易验证的流程示意图,将结合图5示出的步骤进行说明。
在步骤201中,提供者节点向认证中心发送证书请求,其中,所述证书请求包括节点公钥及所述提供者节点的身份信息。
本发明实施例以提供者节点与区块链网络的原生节点之间的交易验证过程进行举例说明。提供者节点在初始化时,向认证中心发送证书请求,该证书请求包括提供者节点的身份信息,以及提供者节点生成的密钥对中的公钥,该密钥对通过非对称加密算法生成,为了便于区分,将该密钥对中的公钥命名为节点公钥,将该密钥对中的私钥命名为节点私钥。
在步骤202中,认证中心对身份信息及节点公钥进行哈希加密得到第一身份信息摘要,并根据中心私钥对第一身份信息摘要进行加密得到证书内签名。
认证中心同样根据非对称加密算法生成一个密钥对,为了便于区分,将该密钥对中的公钥命名为中心公钥,将该密钥对中的私钥命名为中心私钥。认证中心在获取到证书请求后,对证书请求包括的身份信息及节点公钥进行哈希加密,得到第一身份信息摘要,并根据中心私钥对第一身份信息摘要进行加密得到证书内签名,该证书内签名是数字证书内部的数字签名,命名不同仅是为了便于区分。
在步骤203中,所述认证中心向所述提供者节点颁发根证书及数字证书,其中,根证书包括中心公钥,数字证书包括节点公钥、身份信息及证书内签名。
认证中心基于节点公钥、身份信息及证书内签名生成数字证书,基于中心公钥生成根证书,将根证书及数字证书发送至提供者节点,完成证书颁发。值得说明的是,区块链网络中的原生节点的证书颁发过程与步骤201至步骤203同理,此处不进行赘述。
在步骤204中,所述提供者节点对项目信息进行哈希加密得到第一项目信息摘要,根据节点私钥对所述第一项目信息摘要进行加密得到数字签名。
在步骤205中,所述提供者节点向所述区块链网络发送所述项目信息、所述数字签名及所述数字证书。
提供者节点向区块链网络发起提交项目信息的交易,并在交易中携带数字签名及数字证书。
在步骤206中,所述区块链网络根据根证书中的中心公钥,对所述提供者节点发送的所述数字证书的证书内签名进行解密,得到所述数字证书中的第一身份信息摘要。
这里,区块链网络中的原生节点同样持有认证中心颁发的根证书。在交易验证的过程中,首先对数字证书进行验证,具体地,原生节点根据根证书中的中心公钥,对提供者节点发送的数字证书的证书内签名进行解密,得到第一身份信息摘要。
在步骤207中,所述区块链网络对所述数字证书中的节点公钥及身份信息进行哈希加密,得到第二身份信息摘要。
在步骤208中,当第一身份信息摘要与第二身份信息摘要相同时,所述区块链网络根据节点公钥,对所述提供者节点发送的所述数字签名进行解密,得到所述数字签名中的第一项目信息摘要。
当第一身份信息摘要与第二身份信息摘要相同时,区块链网络的原生节点确定节点公钥来自于数字证书所声称的提供者节点的用户,然后,区块链网络的原生节点根据数字证书内的节点公钥,对提供者节点发送的数字签名进行解密,得到数字签名中的第一项目信息摘要。另外,当第一身份信息摘要与第二身份信息摘要不同时,区块链网络的原生节点确定验证失败。
在步骤209中,所述区块链网络对所述项目信息进行哈希加密,得到第二项目信息摘要。
在步骤210中,当第一项目信息摘要与第二项目信息摘要相同时,所述区块链网络确定对所述项目信息验证成功。
当第一项目信息摘要与第二项目信息摘要相同时,区块链网络中的原生节点确定提供者节点发起交易中的信息并未被篡改,完成验证,并可对交易进行广播、区块填充及共识等后续操作。通过上述的验证数字证书及数字签名的方式,保证了信息的可信度。
下面继续说明图4A示出的步骤。
在步骤102中,所述区块链网络响应于开发者节点发送的对所述项目信息的查询请求,将所述项目信息发送至所述开发者节点,以使所述开发者节点根据所述需求信息进行项目开发。
开发者节点可向区块链网络发送对项目信息的查询请求,区块链网络的节点对该查询请求进行广播、区块填充及共识等操作,在共识一致时,区块链网络的节点根据该查询请求,将存储于区块链网络的项目信息发送至开发者节点本地。
在步骤103中,所述区块链网络获取所述开发者节点发送的项目代码。
开发者节点的业务人员根据需求信息进行项目开发,并将得到的项目代码通过开发者节点发送至区块链网络。区块链网络的节点获取开发者节点发送的项目代码,并在经过广播、区块填充及共识一致后,将项目代码存储至区块链网络中。
在一些实施例中,步骤103之后,还包括:所述区块链网络响应于所述提供者节点发送的对所述项目代码的查询请求,将所述项目代码发送至所述提供者节点。
在区块链网络的节点将项目代码存储至区块链网络之后,提供者节点可向区块链网络发送对项目代码的查询请求,区块链网络的节点在对该查询请求进行广播、区块填充及共识一致后,将项目代码发送至提供者节点。通过上述方式实现了对项目代码的查询。
在步骤104中,所述区块链网络根据所述评测数据集对所述项目代码进行评测,并将评测结果进行存储。
区块链网络的节点根据项目信息中的评测数据集,对开发者发送的项目代码进行评测,得到评测结果,并将评测结果存储至区块链网络。
在一些实施例中,可以通过这样的方式实现上述的根据所述评测数据集对所述项目代码进行评测:根据所述评测数据集中的输入数据对所述项目代码进行测试处理,得到所述项目代码的输出数据;将所述输出数据与所述评测数据集中的预期输出数据进行对比,得到评测结果。
这里,评测数据集以测试用例的形式体现,即评测数据集包括输入数据及预期输出数据。在进行评测时,区块链网络的节点评测数据集中的输入数据对项目代码进行测试处理,得到项目代码的输出数据,并将输出数据与评测数据集中的预期输出数据进行对比,得到评测结果。评测结果可为准确率,例如,项目信息包括的需求信息为对10个方程组进行计算,区块链网络的节点将项目代码的输出数据与预期输出数据进行对比后,确定项目代码的输出数据中7个方程组的计算结果正确,则可得到评测结果(准确率)为70%。通过上述方式,以对比的方式实现了评测结果的量化。
通过发明实施例对于图4A的上述示例性实施可知,本发明实施例通过区块链网络实现项目开发,在多人协同开发的场景中,提升了项目开发的效率,且通过评测数据集对代码进行自动评测,提升了评测的准确性。
在一些实施例中,参见图4B,图4B是本发明实施例提供的基于区块链网络的项目开发方法的另一个可选的流程示意图,基于图4A,在步骤102之前,还可以在步骤105中,所述区块链网络获取提供者节点发送的转账请求,所述转账请求的接收地址为保障金账户。
这里,保障金账户可以是区块链网络中某个设定节点的账户。
在一些实施例中,步骤105之前,还包括:所述区块链网络获取所述提供者节点发送的智能合约以及数字签名,所述智能合约包括项目奖励及奖励条件;所述区块链网络验证所述数字签名;当验证通过时,所述区块链网络将所述智能合约进行部署。
提供者节点除了向区块链网络发起提交项目信息的交易外,还发起对智能合约的部署交易,该智能合约包括项目奖励及奖励条件,该部署交易还携带有数字签名。值得说明的是,项目奖励可为虚拟资产或电子货币,虚拟资产如游戏中的道具或代金币等,电子货币如电子化的法币或基于数字加密学的货币等。除此之外,项目奖励还可为开发者节点在项目开发中的权限,例如在项目信息中可查看的已有代码量,或者如上述的查询限制次数等。同样地,在部署智能合约的过程中,还涉及到对提供者节点发送的数字证书及数字签名的验证,此处不再赘述。当对数字证书及数字签名验证成功时,区块链网络的节点将智能合约进行部署。通过部署智能合约,提升了奖励分配的自动化程度。
在步骤106中,当通过所述提供者节点部署的智能合约,确定所述转账请求中的转账金额与所述智能合约中的项目奖励匹配时,所述区块链网络查询所述提供者节点的账户余额。
区块链网络的节点通过提供者节点部署的智能合约,确定转账请求中的转账金额是否与项目奖励匹配。当转账金额与项目奖励匹配时,查询提供者节点的账户余额,判断账户余额是否能够支持本次转账。
在步骤107中,当所述转账金额未超过所述账户余额时,所述区块链网络将所述转账请求进行存储。
当转账请求中的转账金额未超过提供者节点的账户余额时,区块链网络的节点将转账请求存储至区块链网络中,即完成转账。值得说明的是,在存储转账请求之前,同样要经过广播、区块填充及共识一致的过程。
对于图4B,在步骤104之后,还可以在步骤108中,通过所述智能合约,所述区块链网络确定符合所述智能合约中的奖励条件的评测结果,并从所述项目奖励中,确定分配至所述评测结果对应的开发者节点的节点奖励。
区块链网络的节点通过提供者节点部署的智能合约,在区块链网络已存储的评测结果中,确定符合奖励条件的评测结果。例如,在评测结果为准确率的情况下,奖励条件为选取前3名的评测结果,并按照50%、30%及20%的比例,分别为前3名的评测结果对应的开发者节点分配项目奖励;在评测结果包括准确率和代码量的情况下,以准确率作为优先选取条件,在准确率相同的情况下,优先选取代码量较少的评测结果。为了便于区分,将分配至开发者节点的奖励命名为节点奖励。
在一些实施例中,步骤108之前,还包括:获取所述项目信息中设定的结算时间;当达到所述结算时间时,获取所述区块链网络中存储的与所述项目信息对应的评测结果。
在本发明实施例中,项目信息还可包括结算时间,结算时间如某年某月某日的中午十二点。在当前时间达到结算时间时,区块链网络的节点获取区块链网络存储的评测结果,以确定符合奖励条件的评测结果。通过上述方式实现了奖励的定时结算,提升了项目结算的有序性。
在步骤109中,所述区块链网络根据所述节点奖励生成转账请求,所述转账请求的发送地址为保障金账户,接收地址为所述开发者节点的账户。
对于每个节点奖励,区块链网络的节点生成包括节点奖励的转账请求,该转账请求的发送地址为保障金账户,接收地址为节点奖励对应的开发者节点的账户。
在步骤110中,当所述节点奖励未超过所述保障金账户的账户余额时,所述区块链网络将所述转账请求存储至所述区块链网络。
由于保障金账户为支出账户,故区块链网络的节点验证节点奖励是否超过保障金账户的账户余额。当节点奖励未超过保障金账户的账户余额时,区块链网络的节点将转账请求存储至区块链网络,完成转账。其中,在存储转账请求之前,同样经过广播、区块填充及共识一致的过程。由于转账请求存储于区块链网络,故区块链网络的节点可响应于提供者节点或开发者节点发起的对转账请求的查询请求,从而将转账请求发送至提供者节点或开发者节点,使提供者节点或开发者节点的业务人员知晓奖励情况。
通过发明实施例对于图4B的上述示例性实施可知,本发明实施例通过对项目代码进行评测,并对评测结果较好的开发者节点分配节点奖励,实现了奖励的自动分配,鼓励开发者节点提升开发质量。
下面,将说明本发明实施例在一个实际的应用场景中的示例性应用。
参见图6,图6是本发明实施例提供的区块链网络的另一个可选的结构示意图,在图6中示例性地示出了区块链网络包括的开发者节点1、开发者节点2及开发者节点3,区块链网络还包括提供者节点1及提供者节点2,提供者节点用于提供项目信息,区块链网络还包括保障金账户,该保障金账户是区块链网络中特定节点的账户,用于管理项目奖励。
对于待开发的项目来说,由于其可能具有至少两个功能,故可将其拆分为至少两个子项目,参见图7,在图7中,示例性地将项目拆分为了五个子项目,每个子项目对应一个功能。图8为本发明实施例提供的与子项目相关的内容示意图,在图8中,每个子项目对应一个项目信息,项目信息包括需求信息及评测数据集,需求信息即为功能描述,如输入形式为100个数值,输出形式为排序好的100个数值;评测数据集以测试用例的形式体现,包括具体的输入数据及预期输出数据。除此之外,每个子项目还对应奖励内容,奖励内容包括项目奖励及奖励条件,项目奖励可为虚拟资产或电子货币。
参见图9,图9是本发明实施例提供的基于区块链网络的项目开发方法的另一个可选的流程示意图。为了便于理解,以编号形式进行说明。
(1)项目信息以及保障金入链。提供者节点向区块链网络发送项目信息,区块链网络的节点在对项目信息进行广播、区块填充及共识一致后,将项目信息以区块形式存储于区块链网络中。同时,提供者节点向区块链网络发送包括项目奖励和奖励条件的智能合约,区块链网络的节点同样将智能合约部署至区块链网络中。项目奖励由提供者节点提供,具体地,提供者节点向区块链网络发送转账请求,该转账请求的接收地址为保障金账户。区块链网络的节点根据智能合约,验证转账请求中的转账金额是否与项目奖励匹配,在转账金额与项目奖励匹配的基础上,验证转账金额是否超过提供者节点的账户余额。当转账金额未超过账户余额时,区块链网络的节点将转账请求存储至区块链网络,完成对保障金(项目奖励)的入链。其中,当项目包括至少两个子项目时,可对项目信息进行拆分得到至少两个子项目信息,并将至少两个子项目信息入链,拆分规则可根据实际应用场景确定。
(2)开发者节点获取项目信息,开始开发。
开发者节点向区块链网络发送对项目信息的查询请求,区块链网络的节点响应于该查询请求,将项目信息发送至开发者节点,以使开发者节点的业务人员根据项目信息中的需求信息进行项目开发。
(3)开发者节点提交项目代码,区块链网络自动通过评测数据集进行评测。
在开发完成后,业务人员可通过开发者节点,将项目代码发送至区块链网络。区块链网络中具有评测功能的节点根据评测数据集中的输入数据对项目代码进行测试处理,得到项目代码的输出数据,并将输出数据与评测数据集中的预期输出数据进行对比,得到评测结果。然后,经广播、区块填充及共识一致的过程,将评测结果存储至区块链网络中。
(4)按照指定的结算时间,汇总各开发者节点的评测结果。
项目信息中包括项目的结算时间,在当前时间达到结算时间时,区块链网络中具有结算功能的节点汇总各开发者节点对于该项目的评测结果。当项目包括至少两个子项目,各子项目的结算时间可设置为一致,也可设置为不一致,根据实际应用场景确定。
(5)按照智能合约进行结算奖励。
区块链网络中具有结算功能的节点按照智能合约中的奖励条件,为开发者节点分配项目奖励。例如,在评测结果为准确率的情况下,奖励条件为按照准确率从高到低的顺序进行排序,确定排名中前3名对应的开发者节点,并按照50%、30%及20%的比例分别分配项目奖励。为了便于区分,将分配给开发者节点的奖励命名为节点奖励,则在发送节点奖励的过程中,根据节点奖励生成转账请求,该转账请求的发送地址为保障金账户,接收地址为开发者节点的账户。当验证出转账请求内的节点奖励未超过保障金账户的账户余额时,将转账请求存储至区块链网络,完成结算。
通过发明实施例对于图9的上述示例性实施可知,本发明实施例通过区块链网络实现项目开发,在多人协同开发的场景中,提升了项目开发的效率,且通过评测数据集对代码进行自动评测,提升了评测及结算的准确性。
下面继续说明本发明实施例提供的区块链网络200中的节点210实施为软件模块的示例性结构,在一些实施例中,如图3所示,存储在存储器2140的软件模块2143可以包括:
项目存储模块21431,用于获取提供者节点发送的项目信息,将所述项目信息存储至区块链网络,其中,所述项目信息包括需求信息及评测数据集;
项目发送模块21432,用于响应于开发者节点发送的对所述项目信息的查询请求,将所述项目信息发送至所述开发者节点,以使所述开发者节点根据所述需求信息进行项目开发;
代码获取模块21433,用于获取所述开发者节点发送的项目代码;
评测模块21434,用于根据所述评测数据集对所述项目代码进行评测,并将评测结果存储至所述区块链网络。
在一些实施例中,软件模块2143还包括:合约获取模块,用于获取所述提供者节点发送的智能合约以及数字签名,所述智能合约包括项目奖励及奖励条件;合约验证模块,用于验证所述数字签名;合约部署模块,用于当验证通过时,在所述区块链网络中部署所述智能合约。
在一些实施例中,软件模块2143还包括:转账请求获取模块,用于获取提供者节点发送的转账请求,所述转账请求的接收地址为保障金账户;余额查询模块,用于当通过所述智能合约,确定所述转账请求中的转账金额与所述项目奖励匹配时,查询所述提供者节点的账户余额;第一转账请求存储模块,用于当所述转账金额未超过所述账户余额时,将所述转账请求存储至所述区块链网络。
在一些实施例中,软件模块2143还包括:节点奖励确定模块,用于通过所述智能合约,确定符合所述奖励条件的评测结果,并从所述项目奖励中,确定分配至所述评测结果对应的开发者节点的节点奖励;转账请求生成模块,用于根据所述节点奖励生成转账请求,所述转账请求的发送地址为保障金账户,接收地址为所述开发者节点的账户;第二转账请求存储模块,用于当所述节点奖励未超过所述保障金账户的账户余额时,将所述转账请求存储至所述区块链网络。
在一些实施例中,软件模块2143还包括:结算时间获取模块,用于获取所述项目信息中设定的结算时间;评测结果获取模块,用于当达到所述结算时间时,获取所述区块链网络中存储的与所述项目信息对应的评测结果。
在一些实施例中,评测模块21434还用于:根据所述评测数据集中的输入数据对所述项目代码进行测试处理,得到所述项目代码的输出数据;将所述输出数据与所述评测数据集中的预期输出数据进行对比,得到评测结果。
在一些实施例中,项目存储模块21431还用于:将所述项目信息在所述区块链网络中进行广播,以使所述区块链网络中的节点将所述项目信息填充至更新区块,并在对所述更新区块共识一致时,将所述更新区块追加至区块链的尾部。
在一些实施例中,软件模块2143还包括:授权获取模块,用于响应于开发者节点发送的对所述项目信息的查询请求之前,获取所述项目信息中的授权节点信息;授权查询模块,用于在所述授权节点信息中,查询发送所述查询请求的开发者节点的信息;确定响应模块,用于当查询到发送所述查询请求的开发者节点的信息时,确定响应所述查询请求。
本发明实施例提供一种存储有可执行指令的存储介质,其中存储有可执行指令,当可执行指令被处理器执行时,将引起处理器执行本发明实施例提供的方法,例如,如图4A或图4B示出的基于区块链网络的项目开发方法。
在一些实施例中,存储介质可以是FRAM、ROM、PROM、EPROM、EEPROM、闪存、磁表面存储器、光盘、或CD-ROM等存储器;也可以是包括上述存储器之一或任意组合的各种设备。
在一些实施例中,可执行指令可以采用程序、软件、软件模块、脚本或代码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件、子例程或者适合在计算环境中使用的其它单元。
作为示例,可执行指令可以但不一定对应于文件系统中的文件,可以可被存储在保存其它程序或数据的文件的一部分,例如,存储在超文本标记语言(HTML,Hyper TextMarkup Language)文档中的一个或多个脚本中,存储在专用于所讨论的程序的单个文件中,或者,存储在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。
作为示例,可执行指令可被部署为在一个计算设备上执行,或者在位于一个地点的多个计算设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算设备上执行。
综上所述,通过本发明实施例,以区块链网络作为交互平台,在多人协同开发项目的场景中,提升了项目开发的效率,且通过评测数据集对代码进行自动评测,提升了评测及项目结算的准确性,能够鼓励开发者节点的业务人员提升开发质量。
以上所述,仅为本发明的实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本发明的保护范围之内。
Claims (10)
1.一种基于区块链网络的项目开发方法,其特征在于,包括:
获取提供者节点发送的项目信息,将所述项目信息存储至区块链网络,其中,所述项目信息包括需求信息及评测数据集;
响应于开发者节点发送的对所述项目信息的查询请求,将所述项目信息发送至所述开发者节点,以使所述开发者节点根据所述需求信息进行项目开发;
获取所述开发者节点发送的项目代码;
根据所述评测数据集对所述项目代码进行评测,并将评测结果存储至所述区块链网络。
2.根据权利要求1所述的项目开发方法,其特征在于,还包括:
获取所述提供者节点发送的智能合约以及数字签名,所述智能合约包括项目奖励及奖励条件;
验证所述数字签名;
当验证通过时,在所述区块链网络中部署所述智能合约。
3.根据权利要求2所述的项目开发方法,其特征在于,还包括:
获取提供者节点发送的转账请求,所述转账请求的接收地址为保障金账户;
当通过所述智能合约,确定所述转账请求中的转账金额与所述项目奖励匹配时,查询所述提供者节点的账户余额;
当所述转账金额未超过所述账户余额时,将所述转账请求存储至所述区块链网络。
4.根据权利要求2所述的项目开发方法,其特征在于,还包括:
通过所述智能合约,确定符合所述奖励条件的评测结果,并从所述项目奖励中,确定分配至所述评测结果对应的开发者节点的节点奖励;
根据所述节点奖励生成转账请求,所述转账请求的发送地址为保障金账户,接收地址为所述开发者节点的账户;
当所述节点奖励未超过所述保障金账户的账户余额时,将所述转账请求存储至所述区块链网络。
5.根据权利要求4所述的项目开发方法,其特征在于,还包括:
获取所述项目信息中设定的结算时间;
当达到所述结算时间时,获取所述区块链网络中存储的与所述项目信息对应的评测结果。
6.根据权利要求1至5任一项所述的项目开发方法,其特征在于,所述根据所述评测数据集对所述项目代码进行评测,包括:
根据所述评测数据集中的输入数据对所述项目代码进行测试处理,得到所述项目代码的输出数据;
将所述输出数据与所述评测数据集中的预期输出数据进行对比,得到评测结果。
7.根据权利要求1至5任一项所述的项目开发方法,其特征在于,所述将所述项目信息存储至区块链网络,包括:
将所述项目信息在所述区块链网络中进行广播,以使
所述区块链网络中的节点将所述项目信息填充至更新区块,并在对所述更新区块共识一致时,将所述更新区块追加至区块链的尾部。
8.根据权利要求1至5任一项所述的项目开发方法,其特征在于,还包括:
响应于开发者节点发送的对所述项目信息的查询请求之前,获取所述项目信息中的授权节点信息;
在所述授权节点信息中,查询发送所述查询请求的开发者节点的信息;
当查询到发送所述查询请求的开发者节点的信息时,确定响应所述查询请求。
9.一种区块链网络的节点,其特征在于,包括:
项目存储模块,用于获取提供者节点发送的项目信息,将所述项目信息存储至区块链网络,其中,所述项目信息包括需求信息及评测数据集;
项目发送模块,用于响应于开发者节点发送的对所述项目信息的查询请求,将所述项目信息发送至所述开发者节点,以使所述开发者节点根据所述需求信息进行项目开发;
代码获取模块,用于获取所述开发者节点发送的项目代码;
评测模块,用于根据所述评测数据集对所述项目代码进行评测,并将评测结果存储至所述区块链网络。
10.一种区块链网络的节点,其特征在于,包括:
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令时,实现权利要求1至8任一项所述的项目开发方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910793929.7A CN110517020A (zh) | 2019-08-27 | 2019-08-27 | 基于区块链网络的项目开发方法及区块链网络的节点 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910793929.7A CN110517020A (zh) | 2019-08-27 | 2019-08-27 | 基于区块链网络的项目开发方法及区块链网络的节点 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110517020A true CN110517020A (zh) | 2019-11-29 |
Family
ID=68628095
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910793929.7A Pending CN110517020A (zh) | 2019-08-27 | 2019-08-27 | 基于区块链网络的项目开发方法及区块链网络的节点 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110517020A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111611165A (zh) * | 2020-05-22 | 2020-09-01 | 厦门理工学院 | 持续集成的自动化测试平台的实现与应用 |
CN111723152A (zh) * | 2020-06-18 | 2020-09-29 | 中国银行股份有限公司 | 一种基于区块链的数据处理方法及系统 |
CN112286984A (zh) * | 2020-09-29 | 2021-01-29 | 卓尔智联(武汉)研究院有限公司 | 区块数据处理方法、装置、计算机设备和存储介质 |
CN112633922A (zh) * | 2020-12-15 | 2021-04-09 | 网易(杭州)网络有限公司 | 游戏需求迭代方法、装置、设备及存储介质 |
CN112990481A (zh) * | 2021-03-12 | 2021-06-18 | 北京航空航天大学 | 一种基于区块链的机器学习模型自动化评测方法 |
CN113344535A (zh) * | 2021-06-21 | 2021-09-03 | 上海计算机软件技术开发中心 | 一种基于区块链的软件开发外包控制系统及实现方法 |
-
2019
- 2019-08-27 CN CN201910793929.7A patent/CN110517020A/zh active Pending
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111611165A (zh) * | 2020-05-22 | 2020-09-01 | 厦门理工学院 | 持续集成的自动化测试平台的实现与应用 |
CN111611165B (zh) * | 2020-05-22 | 2023-04-07 | 厦门理工学院 | 持续集成的自动化测试平台的实现与应用 |
CN111723152A (zh) * | 2020-06-18 | 2020-09-29 | 中国银行股份有限公司 | 一种基于区块链的数据处理方法及系统 |
CN112286984A (zh) * | 2020-09-29 | 2021-01-29 | 卓尔智联(武汉)研究院有限公司 | 区块数据处理方法、装置、计算机设备和存储介质 |
CN112633922A (zh) * | 2020-12-15 | 2021-04-09 | 网易(杭州)网络有限公司 | 游戏需求迭代方法、装置、设备及存储介质 |
CN112633922B (zh) * | 2020-12-15 | 2023-07-25 | 网易(杭州)网络有限公司 | 游戏需求迭代方法、装置、设备及存储介质 |
CN112990481A (zh) * | 2021-03-12 | 2021-06-18 | 北京航空航天大学 | 一种基于区块链的机器学习模型自动化评测方法 |
CN112990481B (zh) * | 2021-03-12 | 2022-10-28 | 北京航空航天大学 | 一种基于区块链的机器学习模型自动化评测方法 |
CN113344535A (zh) * | 2021-06-21 | 2021-09-03 | 上海计算机软件技术开发中心 | 一种基于区块链的软件开发外包控制系统及实现方法 |
CN113344535B (zh) * | 2021-06-21 | 2023-02-28 | 上海计算机软件技术开发中心 | 一种基于区块链的软件开发外包控制系统及实现方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110517020A (zh) | 基于区块链网络的项目开发方法及区块链网络的节点 | |
Pasdar et al. | Connect api with blockchain: A survey on blockchain oracle implementation | |
CN110490305A (zh) | 基于区块链网络的机器学习模型处理方法及节点 | |
CN108959621B (zh) | 一种区块链网络的实现方法、装置、设备及存储介质 | |
CN110532323A (zh) | 区块链网络中的学生身份信息处理方法、装置、电子设备及存储介质 | |
CN110493007A (zh) | 一种基于区块链的信息验证方法、装置、设备及存储介质 | |
CN110348830A (zh) | 一种基于区块链的网络系统、认证方法、设备及存储介质 | |
Debe et al. | Monetization of services provided by public fog nodes using blockchain and smart contracts | |
CN110226168A (zh) | 用于提供区块链云服务的接口的系统和方法 | |
CN112200571B (zh) | 基于区块链的资源发放方法、装置及电子设备 | |
CN110516474A (zh) | 区块链网络中的用户信息处理方法、装置、电子设备及存储介质 | |
Pasdar et al. | Blockchain oracle design patterns | |
Shivers | Toward a secure and decentralized blockchain-based ride-hailing platform for autonomous vehicles | |
US20200097961A1 (en) | Decentralized smart resource sharing between different resource providers | |
CN109003185A (zh) | 一种智能合约的建立方法、装置、计算设备及存储介质 | |
CN112200568B (zh) | 基于区块链的账户创建方法、装置及电子设备 | |
CN112200567A (zh) | 基于区块链的资源管理方法、装置及电子设备 | |
CN113221191B (zh) | 基于区块链的数据存证方法、装置、设备和存储介质 | |
CN109711840A (zh) | 一种交易数据处理方法、装置及存储介质 | |
CN116157818A (zh) | 允许虚拟货币到期日期的电子钱包 | |
Dolenc et al. | Distributed ledger technologies for IoT and business DApps | |
Gaur et al. | Blockchain with hyperledger fabric: Build decentralized applications using hyperledger fabric 2 | |
Kirkman et al. | Using smart contracts and blockchains to support consumer trust across distributed clouds | |
Shi et al. | AWESOME: an auction and witness enhanced SLA model for decentralized cloud marketplaces | |
Gómez et al. | Blockverse: A cloud blockchain-based platform for tracking in affiliate systems |
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 |