73  
开放网络快速上手秘籍
作者: 潘昊 于 2020年04月01日 发布在分类 / 底层框架资料 / XuperChain 下,并于 2020年04月01日 编辑

自建链,开发部署太麻烦?


缺钱少人成本高?


一个超级链开放网络统统解决你的问题。


1月6日,百度超级链开放网络正式上线,为中小企业、开发者赋能。开放网络推出后,部分用户反馈了有关详细了解开放网络的需求。为满足进一步学习及应用开放网络的需求,超级链学院线上公开课推出两期课程助力用户快速上手。


第一期:超级链开放网络快速上手秘籍


第二期:如何基于开放网络开发一款DaPP


本期超级链学院线上公开课教你如何只花1元钱部署智能合约,为你推荐一款最简单、易用、低成本的区块链应用方案。明星讲师超哥主要围绕以下几点展开:


1. 什么是超级链开放网络


2. 作为一个新用户,如何使用开放网络


3. 开放网络的使用费用及具体的计费规则


4. 开发者怎么使用开放网络


5. 一些编译合约阶段常见的问题


6. 用户怎么在开放网络上使用


7. 开发者在开放网络上部署了合约后,自己的链外业务系统怎么跟链上合约打通

干货多多,继续往下看吧!


Q1:能简单介绍下什么是超级链开放网络吗?


好的,首先我介绍下什么是开放网络超级链开放网络是基于百度完全自主研发的开源技术搭建的区块链基础服务网络,由分布在全国的超级联盟节点组成,符合中国标准,为用户提供区块链应用快速部署和运行的环境,以及计算和存储等资源的弹性付费能力,直接降低用户部署和运维成本,让信任链接更加便利。

超级链开放网络具有以下特点:


1. 自主安全高可靠:基于百度完全自主研发且开源的区块链技术搭建,满足中国区块链标准要求。


2. 灵活便捷低门槛:无需建链即可运用区块链技术,丰富的合约模板和强大的功能组件,降低使用门槛。


3. 弹性付费成本低:具备计算和存储等资源的弹性付费能力,可以实现按需按量灵活计费,一分钱即可用。


4. 节点开放公信强:由分布全国的超级联盟节点构成,面向社会开放节点接入,具备极强的公信力。


因此,开放网络适用于不同行业的场景和需求,包括但不限于以下应用场景:


1. 电子存证:利用区块链的不可篡改特性,支撑数字版权、电子合同等电子存证场景。


2. 商品溯源:基于区块链技术,实现商品全流程信息记录,消费者可便捷地进行信息溯源查询。


3. 去中心化游戏:让游戏内的资产所有权真正的归属于用户,同时游戏的运行规则上链,保证游戏运行机制公开透明。


4. 公益:将钱款的来源和流向写入区块链,可以用提高公益事业的信息透明度,提升组织效率。


5. 数字积分:利用区块链技术构建去中心化积分资产的发行、流通、管理体系,让发行更公开透明,提升用户积分消费兴趣,赋能积分生态构建。

 

Q2:作为一个新用户,如何使用开放网络呢?


嗯,新用户的话,首先需要准备一个开放网络账户,具体的流程可以分为这么几个步骤:


1.  使用平台前,请先注册百度账号。若您已有百度账号,登录即可。


2.  点击右上角进入控制台。


3.  进入设置账户安全码页,安全码作为交易密码,请务必牢记。平台无法提供安全码找回功能。设置完成后,点击「下一步」


4.  进入记录超级链账户页,请务必按照页面指引,下载账户私密钥、记下助记词,一旦遗失,会导致无法找回账户。平台无法提供找回私密钥、助记词功能。点击「进入控制台」,进入控制台页,即注册平台账号成功!



使用平台功能前,需完成实名认证。


5. 完成实名认证步骤

方式一:

1.在控制台点击头像,选择「实名认证」,可跳到认证信息填写页


2.进入认证页面,按要求完成认证流程,认证立即生效



方式二:

1.  在控制台相关实名认证弹框内,点击「立即认证」,可跳到认证信息填写页


2.  进入认证页面,按要求完成认证流程,认证立即生效


 


Q3:很多用户关心使用费用问题,那么开放网络贵吗?具体的计费规则是什么呢?


开放网络的一个典型优势就是弹性付费,用户每次调用单独计费,因此使用费用非常的低,现在公测阶段最低1块钱多点就能完成一个合约的部署和调用。

计费规则方面,开放网络数据上链需要根据资源消耗付费,平台采用先充值后使用的计费方式。费用主要分为两部分:一是每次上链请求都需要经过数据合规性背书,背书服务会固定收取0.001元服务费,二是根据上链请求的计算、存储等资源使用量,计算出来的合约调用费用,这部分费用的收费规则如下表(其中合约调用都以典型的C++版counter合约为例,counter合约已经在XuperChain代码库中开源)。



最后介绍下如何充值:

1.进入超级链控制台,点击个人中心->充值按钮,进入余额充值页

https://xchain.baidu.com/n/console#/finance/wallet/recharge



2.进入充值页,输入充值金额,点击「确认充值」进行购买确认


3.进入收银台,选择支付主体“个人账户”或“企业账户”,点击「确认支付」进行订单确认及并完成支付流程


4.完成购买

 

Q4:账号准备好了,也充了值,接下来开发者要怎么使用呢?


接下来就是开发者喜闻乐见的写代码+编译了。


目前,超级链开放网络对外仅支持C++合约的部署、调用。C++合约的编译过程是将C++代码(通常就是一个代码文件,比如test.cc)编译成超级链的WASM虚拟机的字节码(比如test.wasm)。

C++合约需要依赖编译环境,我们已经做好课docker镜像,并打包在了编译脚本中,但开发者需要本地安装docker

并启动。


具体的合约编译步骤如下:


Step1: 通过git拉取远程xuperchain项目,开放网络目前使用v3.4版本,因此我们切换到v3.4分支,并进入cpp合约目录xuperchain/contractsdk/cpp:

git clone 

https://github.com/xuperchain/xuperchain.git

cd xuperchain

git checkout -b v3.4 remotes/origin/v3.4

cd contractsdk/cpp


Step2: 将编写好的用户合约放置到当前目录的example下


Step3: 执行脚本build.sh,具体命令为:sh -x build.sh


Step4: 如果Step3没有问题,我们会发现当前目录的build目录下产生了用户合约对应的wasm文件

 

Q5:有没有一些编译合约阶段常见的问题可以跟大家分享下?


好的,合约编译的常见问题:一般出问题的地方就是step3。举两个典型的例子:


问题1: docker相关,比如报如下错:


原因:mac的docker没有设置共享目录;

解决方法:将当前目录加到mac的共享目录中(Preferences… -> File Sharing)


问题2: 用户代码问题

解决方法:会提示具体哪一行有问题,用户自行定位即可。

 

Q6:合约编译好了,用户怎么才能在开放网络上使用呢?


嗯,编译后的合约需要在开放网络上部署安装后才能使用,我再介绍下怎么部署合约。目前我们可以通过平台界面非常方便的部署一个编译好的WASM合约。


合约需要通过合约账户部署,每个用户可以通过创建不同的合约账户组织不同的智能合约,也可以使用一个合约账户管理所有合约。本文将向您介绍,如何创建、管理合约账户。创建账户后,可以查看、新增、安装、调用当前账户下的所有智能合约


1. 在控制台,选择「基础建设 —> 超级链开放网络」,点击「创建合约账户」



2.进入创建合约账户页,输入安全码后点击「确认创建」,系统自动生成账户名称后,即创建完毕




创建好合约账号之后,就可以部署WASM合约了,步骤如下:


1.在控制台,选择「基础建设 —> 超级链开放网络」,点击「创建智能合约」



2.进入新页面,按要求填写、上传合约信息,填写完成后点击「提交」。注意,这里的合约英文名就是合约的链上ID,需要具有唯一性



3.回到首页后,找到刚才已上传的智能合约,进行安装,点击「安装」



4.进入安装合约页面,根据合约代码填写初始化参数,点击「开始预执行」。执行合约需要等待10S左右。此处的合约参数是用户编写的智能合约中的initialized函数中要求用户输入的初始化参数,以JSON格式组织的Key-Value对,例如counter合约的初始化参数范例:{“creator”:”xchain”}



5.执行成功后,页面显示安装合约预计消耗金额。点击「安装合约」将合约上链,上链过程需要等待10S左右



6.返回首页时,可看到合约状态变更为‘已安装’,即该合约已完成安装。若未看到合约状态变更,请刷新当前页面

 

Q7:开发者在开放网络上部署了合约之后,自己的链外业务系统怎么才能跟链上合约打通呢?


可以通过在业务系统中集成开放网络的SDK发起对开放网络的合约调用。目前,开放网络对外提供的sdk为Go SDK,我们用Go SDK作为例子来说明如何进行C++合约调用操作,这里还是以经典的counter合约作为示范,counter是个计数器合约,每次调用increase接口可以给当前计数器的数值加一。

具体步骤如下(注意:实际用到的合约名、合约账户名以及address均为您在超级链开放网络平台注册获取的数据。):


Step1: 从github下载Go SDK项目到本地

git clone 

https://github.com/xuperchain/xuper-sdk-go.git

cd xuper-sdk-go


Step2: 从开放网络平台将个人私钥下载到sdk目录的keys文件夹中



Step3: 具体的合约调用代码(可用)如下,并且对关键字段进行了标注:



对应上代码进行go build产生二进制sample,运行./sample即发起一个合约调用,结果如下:



百度超级链开放网络正在限时公测,欢迎试用,只要1元+即可完成1个应用部署。期望更好为中小企业和开发者赋能,真正实现区块链触手可及,为区块链产业融合“加速度”。

 

公测时间:2020年1月-2020年3月

公测地址:https://xchain.baidu.com/n/network/survey

活动期间公测资源享受超低优惠,申请后仅花1元即可部署一个智能合约;

且公测为正式网络环境,所有数据均会保留。

 

申请通过后会以邮件方式告知并开通公测权限,即可登录官网相关页面操作体验。


原文链接:https://xuperchain.baidu.com/n/news/03b09bfde5edadcb20e9e67145af4b8b

 




 推荐知识

 历史版本

修改日期 修改人 备注
2020-04-01 10:25:55[当前版本] 潘昊 创建版本

 附件
区块链服务网络发展联盟