平台介绍 | 金山云区块链(KBaaS)

西瓜妹 百科
2019-07-06 15:59:27

  KBaaS(Kingsoft Blockchain as a Service)是金山云发布的一款区块链云服务平台产品,旨在帮助开发者快速构建区块链基础设施,提供区块链应用开发、部署、测试和监控的整套解决方案。


金山云区块链(KBaaS)



KBaaS坚持技术研发与自主创新,支持各类主流的联盟链、公有链开发环境,包括Hyperledger Fabric、Zig-Ledger、Ethereum等,并将陆续支持EOS等底层区块链开发环境。KBaaS为开发者提供了简单易用的开发工具,开发者可以在可视化的操作界面下完成区块链的构建与操作,极大地降低了开发门槛,提高了开发效率。 

产品功能

产品优势

开放共赢
秉承开放共赢的设计原则,KBaaS支持各类主流的联盟链、公有链开发环境,包括Hyperledger Fabric、Zig-Ledger、Ethereum,并将陆续支持EOS等。

简单易用
KBaaS以开发者需求为导向,支持区块链产品的免费试用,并提供简单易用的开发者工具与服务,开发者可以在可视化的操作界面下完成区块链的构建与操作,极大地降低了开发门槛,提高了开发效率。

自主创新
KBaaS坚持技术研发与自主创新,提供基于Hyperledger Fabric 1.x自主研发的Zig-Ledger企业级联盟链服务,并持续研究共识算法、密码学算法、跨链交互、去中心化存储等前沿技术,为开发者提供最先进的技术服务。

成熟可靠
KBaaS构建于Kubernetes、Docker之上,自身具备极高的可靠性和扩展性,为开发者提供成熟可靠的企业级区块链基础设施服务。

操作指南

Zig-Ledger

Zig-Ledger是基于Hyperledger Fabric 1.0基础之上自主研发的商用级联盟链底层及配套工具集。包括区块链底层系统、SDK、浏览器、运维平台等产品,在资产登记和流转,共识机制,隐私保护,行为监管,跨链交互等方面做出许多重要改进,使之可覆盖更丰富的企业或消费者场景。

Zig-Ledger的主要特点包括:

· 企业级分布式账本:基于Hyperledger Fabric 1.0 标准自主研发的商用级联盟链底层,适用于大规模企业级应用。
· 高性能:解耦复杂处理环节,消除计算处理瓶颈,实现商用级TPS,满足企业长远发展。
· 灵活的权限管理:身份证书管理,支持多通道特性,提高数据安全性,为企业级应用提供底层权限管理能力。
· 可扩展的系统架构:遵循插件化设计风格,支持可插拔、可扩展的模块配置,包括共识、权限、加解密、手续费等。
· 去中心化账户:新增去中心化的自主匿名账户模块,满足大规模消费者场景下与区块链交互的需求。
· 资产登记与流转:新增数值通证、权限通证等模块,新增Transfer Set记账模型,为联盟链环境中数字资产的登记和高并发流转提供底层支持。

目前金山云KBaaS服务为客户提供了"免费试用版"

免费试用版适用于区块链应用前期开发与调试验证 相关资源资源将在部署后168小时自动释放,请勿将生产环境业务部署在"免费试用版"。

Zig -Ledg er环境构建-免费试用版

Zig-Ledger是基于Hyperledger Fabric 1.0基础之上自主研发的商用级联盟链底层,及配套工具集。包括区块链底层系统、智能合约、SDK、浏览器、运维平台等产品,在共识机制、可扩展性、资产登记和流转、权限管理和隐私保护、跨链交互等方面做出许多重要改进,使之更适用于大规模企业级应用。

以下为您介绍在KBaaS中搭建Zig-Ledger环境并完成链码操作的步骤:

1、环境构建

登录金山云KBaaS控制台,在【我的项目】点击"添加服务",进入服务创建流程,选择区块链配置。

举例:区块链名称为“test”,共识算法选择“solo”,类型选择“高级配置”,点击完成,创建成功,进入我的项目页。
提示:试用版区块链将在部署后168小时自动释放。

2、项目控制台

创建成功的Zig-Ledger将会在我的项目中以卡片形式显示,点击卡片上“进入项目”可进入项目控制台。

项目控制台页面左侧导航栏展示了控制台的功能:区块链浏览器、链码管理、API调用、账户、通证、日志。

· 区块链浏览器:展示区块链账本基本信息,包括区块信息、交易信息、合约数量等;
· 链码管理:查看区块链链码信息,执行链码(智能合约)的安装、实例化等操作;
· API调用:提供Restful API,支持可视化调用并查看调用结果;
· 账户:提供账户管理工具,支持账户的创建、删除、查看资产和资产转账等功能;
· 通证:区块链通证资产查看,支持自定义通证发行;
· 日志:实时查看区块链各节点日志。

3、账户与通证

Zig-Ledger在Hyperledger Fabric基础上新增了账户和通证的功能。 为了便于用户操作和理解,Zig-Ledger区块链在初始化阶段会默认创建1个账户并给这个账户发行1000亿个ZIG Token。 ZIG Token是Zig-Ledger的原生Token,账户发起交易时需耗一定比例的ZIG Token作为手续费。

3.1、添加账户

进入“账户”模块,可以看到当前创建的全部账户,包括初始化生成的默认账户,记为账户1。 点击“添加账户”按钮新增一个账户,此时页面会有2个账户,新增的账户记为账户2。后文将针对账户1和账户2进行操作。

3.2、发行通证

进入“通证”模块,可以看到当前发行的全部通证信息,包括初始化生成的原生通证ZIG。 点击“发行通证”,输入通证名称、个数、小数点个数,发行账户等信息。 举例,名称:AToken;通证个数:100000000;小数点个数:3;账户:账户1。(以上数据代表实际发行通证数量为100000.000)

 

通证发行成功后进入“账户”模块,选择账户1点击“资产”查看当前账户地址下所有通证名称及数量。可以发现账户1已经拥有ZIG和AToken两种通证资产。

3.3、账户间通证转账

在账户1的通证资产页面,点击ZIG通证的“转账”,输入通证个数和转账地址。举例,通证个数:5000.00;转账地址:账户2。 点击“确定”后稍等一段时间,转账交易被确认。同理,可将AToken进行转账操作,通证个数:5000.000;转账地址:账户2。 此时可在账户2的资产页面,查看其资产数额变化信息。

目前,账户2已拥有ZIG和AToken两种资产,在后文将继续介绍账户2如何使用者两种资产。

4、示例链码演示

4. 1、链码部署

“链码管理”模块展示了该区块链上已安装或已部署的链码,用户可以在该模块中为区块链安装部署新的链码。 在“链码管理”模块中点击加号执行链码安装,在“合约中心”中选择“资产挂单交易/asset”示例合约进行安装。 “资产挂单交易/asset”示例合约支持注册新用户,用户可以将资产以Token形式定价挂单,其他用户可以通过指定Token进行资产购买。

安装成功后,在“链码管理”页面会显示该示例链码。点击“部署”执行链码实例化,无需填写参数,点击提交,等待一段时间后,部署成功。

4.2、链码调用

链码部署成功后,进入“API调用”页面,对刚部署成功的示例链码进行API调用。 API调用界面展示了所提供的多种API,包括获取链信息、获取区块信息、获取交易信息、链码调用、账户和通证操作等等。链码的调用方式包括Invoke和Query,分别对应“Invoke Chaincode”和“Query Chaincode”这两个API。用户可点击进入,填写相关参数,执行调用并查看反馈结果。

需要注意的是:在Zig-Ledger中通过Invoke方式调用合约时需要指定账户,每次进行Invoke操作时需要从ZIG账户中扣除一定额度的手续费,费用以当前已经发送的交易字节数来确定。以下继续介绍“资产转移合约”的示例操作步骤: 1) 添加用户U1、用户U2 创建U1,在“Invoke Chaincode”API中,填写链码名称“asset”,链码版本“1.0”,链码函数“addUser”,参数“U1”“15”,调用账户“账户1”,执行调用,获得如下结果:

返回了交易TxHash,代表交易成功。 同理,继续创建用户U2,填写链码名称“asset”,链码版本“1.0”,链码函数“addUser”,参数“U2”“20”,调用账户“账户2”,执行调用,完成创建。

2)查询用户信息 在“Query Chaincode”API中,填写链码名称“asset”,链码版本“1.0”,链码函数“queryUser”,参数“U1”,执行查询,获得如下结果:

返回了U1用户的信息,说明U1成功创建。 同理,在“Query Chaincode”API中,填写链码名称“asset”,链码版本“1.0”,链码函数“queryUser”,参数“U2”,执行查询,返回U2信息,U2成功创建。

3)添加资产-BO O K1 现在我们为U1添加1个挂单资产,该资产设定为一本书,名叫BOOK1,类型是BOOK,描述是Aguidebook,并定价2.00单位的AToken。 在“Invoke Chaincode”API中,填写链码名称“asset”,链码版本“1.0”,链码函数“addAsset”,参数“BOOK1”“BOOK”“A guidebook”“AToken”“200”“U1”(参数200包含了小数点,代表2.00个AToken),调用账户“账户1”,执行调用,获得如下结果:

返回了交易TxHash,代表交易成功。

4)查询资产-BO O K1 在“Query Chaincode”API中,填写链码名称“asset”,链码版本“1.0”,链码函数“readAsset”,参数“BOOK1”,执行查询,获得如下结果:

返回了BOOK1资产的信息,资产成功创建,owner是U1。 同理,也可以使用函数“readAssetByRange”来查询名称在A-Z范围内的所有资产。

5)U2购买资产BO O K1 在“Invoke Chaincode”API中,填写链码名称“asset”,链码版本“1.0”,链码函数“buyAsset”,参数“BOOK1”“U2”,调用账户“账户2”,执行调用,获得如下结果:

6)查询资产-BO O K1 在“Query Chaincode”API中,填写链码名称“asset”,链码版本“1.0”,链码函数“readAsset”,参数“BOOK1”,执行查询,获得如下结果:

可以发现,BOOK1的owner已经变更为U2。

7)查询账户的资产 在“账户”模块中查询账户1和账户2的资产信息,发现资产数量发生变化,账户2的AToken减少了2个,而账户1的AToken增加了2个,验证之前的交易成功执行。

下表汇总了示例合约的操作流程:

4.3、完成调用

调用完成后,返回“区块链浏览器”,发现此时区块链信息已经发生变化,区块和交易数量有所增加。 点击可查看刚才调用所产生的区块和交易详情。

4.4、Restf u l API调用

开发者可以通过可视化的界面完成调用,也可以通过Restful API进行调用。Zig-Ledger构建服务提供了一系列Restful API用于帮助开发者快速构建区块链应用,开发者在调用前需先获取Token令牌来获得调用权限。

5、日志查看

进入“日志”模块,查看区块链网络中节点的运行日志。在Zig-Ledger的高级配置中,可以通过下拉菜单选择查看CA节点、Orderer节点或Peer节点的日志信息。

6、释放区块链

当不需要此链时,进入“我的项目”,选择该区块链并点击“立即释放”。

Hyperiger Fabric

Hyperiger Fabric是一个面向企业的分布式账本平台,具有高度的灵活性、模块化和可扩展性能。Zig-BaaS提供Hyperledger
Fabric网络的快速构建与按需配置,并为开发者提供区块浏览器、链码管理、API调用、日志查看等功能。

Hyp erledg er Fab ric环境构建

本文主要介绍在KBaaS控制台中搭建Hyperledger Fabric环境(免费试用版)并完成链码操作的步骤

1、环境构建

登录金山云KBaaS控制台,在【我的项目】点击"添加服务",进入服务创建流程,选择区块链配置。

举例:区块链名称为“test”,共识算法选择”solo“,类型选择“基础配置”,点击完成,创建成功,进入我的项目页。
提示:试用版区块链将在部署后168小时自动释放。

2、项目控制台

创建成功的Hyperledger Fabric将会在我的项目中以卡片形式显示,点击卡片上“进入项目”可进入项目控制台。

项目控制台页面左侧导航栏展示了控制台的功能:区块链浏览器、链码管理、API调用、日志。

· 区块链浏览器:展示区块链账本基本信息,包括区块信息、交易信息、合约数量等;
· 链码管理:查看区块链链码信息,执行链码(智能合约)的安装、实例化等操作;
· API调用:提供Restful API,支持可视化调用并查看调用结果;
· 日志:实时查看区块链各节点日志。

3、示例链码演示

3.1、链码部署

“链码管理”模块展示了该区块链上已安装或已部署的链码,用户可以在该模块中为区块链安装部署新的链码。 在“链码管理”中点击“安装链码”,在“合约中心”中选择“资产转移合约/trans”示例合约进行安装

安装成功后,在“链码管理”页面会显示该示例链码。点击“部署”执行链码实例化,部署时需输入参数:a,10,b,10,点击提交,等待一段时间后,部署成功。

3.2、链码调用

链码部署成功后,进入“API调用”页面,对刚部署成功的示例链码进行API调用。 API调用界面展示了所提供的多种API,包括获取链信息、获取区块信息、获取交易信息、链码调用等等。链码的调用方式包括Invoke和Query,分别对应“InvokeChaincode”和“Query Chaincode”这两个API。用户可点击进入,填写相关参数,执行调用并查看反馈结果。

以下继续介绍“资产转移合约”的示例操作步骤:

1)查询实体a、实体b的资产 在“Query Chaincode”API中,填写链码名称“trans”,链码版本“1.0”,链码函数“query”,参数“a”,执行查询,获得如下结果:

代表a具有10单位的资产。

同理查询实体b的资产,填写链码名称“trans”,链码版本“1.0”,链码函数“query”,参数“b”,执行查询。查询得到实体b具有10单位的资产。 a、b的资产数量与部署时填写的初始化参数相符。

2)从a向b转移5个单位的资产 在“Invoke Chaincode”API中,填写链码名称“trans”,链码版本“1.0”,链码函数“invoke”,参数“a”“b”“5”,执行查询,获得如下结果:

返回了交易TxHash,代表交易成功。

3)查询实体a、实体b的资产 在“Query Chaincode”API中,填写链码名称“trans”,链码版本“1.0”,链码函数“query”,参数“a”,执行查询,获得如下结果:

代表a具有5单位的资产,因为在上一步,a向b转移了5单位的资产。 同理查询实体b的资产,可以发现实体b拥有15单位的资产,资产转移成功。

下表汇总了示例合约的操作流程:

 

3.3、完成调用

调用完成后,返回“区块链浏览器”,发现此时区块链信息已经发生变化,区块和交易数量有所增加。

点击可查看刚才调用所产生的区块和交易详情。

3.4、Restf u l API调用

开发者可以通过可视化的界面完成调用,也可以通过Restful API进行调用。Hyperledger Fabric构建服务提供了一系列Restful API用于帮助开发者快速构建区块链应用,开发者在调用前需先获取Token令牌来获得调用权限。Restful API接口详见“API调用”模块。具体接口使用方法详见 技术文档 - Hyperledger Fabric Restful API文档。

4、日志查看

进入“日志”模块,查看区块链网络中节点的运行日志。在Hyperledger Fabric的基础配置中,可以通过下拉菜单选择查看CA节点、Orderer节点或Peer节点的日志信息。

5、释放区块链

当不需要此链时,进入“我的项目”,选择该区块链并点击“立即释放”。

 

Ethereum

以太坊(Ethereum)是一个基于智能合约的分布式应用平台。Zig-BaaS提供以太坊测试网络的快速接入功能,并提供基于Remix的IDE,开发者可以在平台内上传智能合约、在线编辑,并完成编译、部署和调试。

Ethereum测试网络接入

1、测试网络接入

登录金山云KBaaS控制台,在【我的项目】点击"添加服务",进入服务创建流程,选择需要接入的区块链网络。 其中,Ropsten和Rinkeby是以太坊官方测试网络,采用不同的共识机制。Kovan是以太坊钱包Parity开发团队发起的测试网络项目。

2、项目控制台

创建成功的Ethereum将会在我的项目中以卡片形式显示,点击卡片上“进入项目”可进入项目控制台。

项目控制台页面左侧导航栏展示了控制台的功能:区块链浏览器、合约IDE。

· 区块链浏览器:展示区块链账本基本信息,包括区块信息、交易信息等;
· 合约IDE:基于Remix的智能合约IDE工具,支持合约的在线编辑、编译、部署和调试等操作。

需注意:本服务提供公共的节点实现以太坊测试网络的接入,请勿将敏感资料和私人密钥等信息上传至该公共节点,也不要使用测试网络环境搭建生产环境的商业应用。

3、智能合约IDE

Remix是面向Solidity Dapp开发者的智能合约在线IDE,集成了一系列套件工具,可以便捷地实现合约管理、编辑、部署和调试。

KBaaS集成了一套Remix开发工具,并与所创建的测试网络相连通,开发者可以基于IDE进行合约开发并完成测试网络的部署和调试。

Remix的更多信息可以参考:https://remix.readthedocs.io/en/latest/

IPFS

IPFS全称InterPlanetary File System,中文名:星际文件系统,是一个旨在创建持久且分布式存储和共享文件的网络传输协议。 它是一种内容可寻址的对等超媒体分发协议。在IPFS网络中的节点将构成一个分布式文件系统。它是一个开放源代码项目,自2014年开始由Protocol Labs (协议实验室)在开源社区的帮助下发展。其最初由Juan Benet设计。IPFS是点对点的超媒体协议,可以让网络更快、更安全、更开放。它是一个面向全球的、点对点的分布式版本文件系统,试图将所有具有相同文件系统的计算设备连接在一起。

Zig-BaaS提供了IPFS公共网络接入,用户可以通过共享的IPFS网络节点访问网络。请注意:由于IPFS是一个公开的网络,且Zig-BaaS提供的是共享的IPFS节点,因此,请勿将重要或敏感的文件信息上传。

IPFS网络接入

1、网络接入

登录金山云KBaaS控制台,在【我的项目】点击"添加服务",进入服务创建流程,选择需要接入的区块链网络-IPFS网络接入。

2、项目控制台

创建成功的IPFS服务将会在我的项目中以卡片形式显示,点击卡片上“进入项目”可进入项目控制台。

项目控制台页面左侧导航栏展示了控制台的功能:节点信息、网络连接、文件上传、文件检索。

· 节点信息:IPFS接入节点信息的可视化展示;
· 网络连接:查看IPFS网络连接状态,节点连接数量等信息;
· 文件上传:将文件通过节点上传至IPFS网络;
· 文件检索:通过节点检索IPFS网络中的文件。

3、IPFS应用开发

进行IPFS应用开发,需要对IPFS RESTful API 有一定程度的了解;可以使用IPFS提供的API接口进行应用开发,也可以使用JS-IPFS-API 调用PIFS服务。

IPFS RESTful API 资料:https://ipfs.io/docs/api/
JS-IPFS-API 资料:https://www.npmjs.com/package/ipfs-api

IPFS RESTf ul API 示例:

curl "http://localhost:5001/api/v0/dag/get?arg="

其中localhost需参考节点信息中的节点IP,例如“106.14.182.200”。
JS-IPFS-API 示例:

const ipfsAPI = require('ipfs-api');
const ipfs = ipfsAPI({host: 'localhost', port: '5001', protocol: 'http'});
exports.get = (hash) =>{
return new Promise((resolve,reject)=>{
try{
ipfs.get(hash,function (err,files) {
if (err || typeof files == "undefined") {
reject(err);
}else{
resolve(files[0].content);
}
})
}catch (ex){
reject(ex);
}
});
}

 


本文地址: https://www.xiguacaijing.com/news/baike/2019/9605.html
声明:本文经授权发布,除注明来源外,均为西瓜财经用户投稿,不代表西瓜财经立场。转载请注明:西瓜财经(xiguacaijing.com)
提醒:投资有风险,入市需谨慎。若内容涉及投资建议,仅供参考勿作为投资依据。谨防以“区块链”名义进行非法集资。
赞助商