检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
息发送的封装类。 ContractAction:对应ContractRawMessage封装的消息的发送。 QueryAction:对应QueryRawMessage中封装的消息的发送。 EventAction:主要用于监听消息的最终状态,因为参数仅包含交易ID,消息封装的方法直
集群可用但节点状态为“不可用”时,如何排查解决?。 ECS云服务器状态排查。 登录ECS控制台,单击“弹性云服务器”,查看异常区块链所在ECS云服务器状态,云服务器节点一般命名为:区块链服务所在集群名称-随机数。 若云服务器状态为“关机”,开机后请等待大约5min再次尝试。 网盘存储资源状态排查。
进入BCS控制台,单击“实例管理”,单击交易异常的实例名称,查看版本信息。 根据“版本信息”显示的Hyperledger Fabric版本,排查客户端所使用的fabric-sdk是否与其一致。如果版本不一致,会导致交易失败、交易超时等情况发生。 解决方案 根据实际的Hyperledger Fabr
交易时可以调用交易准备函数生成具有隐私保护的交易数据。 链代码端对应的逻辑过程是: 保存用户公钥与地址的映射关系。 验证初始余额的有效性并生成初始交易。 验证交易数据的有效性并生成交易结果。 链码端可以通过调用初始余额校验函数来验证初始余额的有效性。 调用交易校验函数来验证交易数据的有效性。 安装链代码。
registry 国内镜像源地址 执行如下命令,利用编译器提供的脚手架设置新项目 npx asinit . 参考示例Demo完成合约文件contract.ts编写与合约SDK文件index.ts引用后,执行build命令编译AssemblyScript类型的合约文件,编译成功后在build目录下生成optimized
满足规范的强密码,强密码设要求参照:https://bbs.huaweicloud.com/blogs/87a98385ec6411e79fc57ca23e93a89f。 启动安全组白名单策略,根据业务需求对外开放端口,对于特殊业务端口,建议设置固定的来源IP或使用VPN、堡垒机建立自己的运维通道。
Wasm合约开发(AssemblyScript) 合约结构 合约相关的API 示例Demo 父主题: 合约开发
单击当前BCS实例的baas-agent容器,在实例列表中查看其边缘节点。 图2 查询边缘节点 单击节点详情,查看主机名。 在弹性云服务中搜索主机名,查询纳管该边缘节点的弹性云服务器的IP(弹性公网)。 图3 查询弹性云服务器的IP 通过该地址https://IP:30603 访问区块链管理页面。
加安全组规则时的规则参数如表1所示。 表1 安全组规则参数表 参数 值 说明 协议 TCP 网络协议。 方向 入方向 安全组规则生效的方向,入方向指从外部访问安全组规则下的弹性云服务器。 端口范围 创建1条规则,填写8080。 规则的端口范围。 源地址 选择IP地址,0.0.0.0/0
使用公网IP地址创建实例。 为保证网络连通,创建基于边缘集群的BCS实例时使用公网IP地址,即填写纳管边缘集群的云服务器所绑定的弹性公网IP地址。 图1 边缘节点IP 查看弹性公网IP地址。 进入ECS服务页面,查看弹性云服务器列表。 图2 查看弹性云服务器列表 对于已有的边
合约结构 AssemblyScript语言合约主要包括index.ts和contract.ts两个文件,其中index.ts为开发智能合约文件(contract.ts)依赖的合约SDK,合约涉及的业务相关开发仅在contract.ts文件,智能合约文件contract.ts需要根据实际业务进行开发。
登录区块链控制台,单击界面上方的“费用”进入费用中心界面。 在“续费资源”项下单击“立即续费”,进入续费管理界面,选择需要续费的目标资源,单击“续费”并支付。 续费完成后,在ECS控制台,查看目标区块链所在ECS云服务器状态(云服务器节点一般命名为:区块链服务所在集群名称-随机数),若云服务器状态为“
func Add(cipher1, cipher2 string) (cipher string, err error) 功能描述 同态加法。 输入说明 参数名 类型 描述 是否必须 cipher1 string 被加密的密文1 是 cipher2 string 被加密的密文2 是 输出说明
是否使用CCE集群节点弹性IP 选择“是”,则将集群中绑定的弹性IP地址作为区块链网络访问地址,如果集群没有弹性IP,请先给集群绑定弹性IP后,再购买区块链实例; 选择“否”,则将使用集群内部地址作为区块链网络访问地址,应用需要和集群内部网络互通才能正常工作。 区块链服务支持EIP开启IPv6转换
合约开发和调测可参考合约示例Demo,单击链接获取AssemblyScript语言合约工程Demo。 build目录下optimized.wasm为合约编译后对应的wasm字节码文件(最终合约类型文件为optimized.wasm压缩成的*.zip包,合约示例Demo)。 assembly/index
根据合约安装时选择的背书策略进行配置。 若为任意组织背书,则配置任意组织下的某一节点即可; 若为全部组织背书,则配置时选择每个组织的一个节点进行配置。 ChainID 链ID,配置为链配置文件中yaml中chain_id字段对应的值。 运行程序,示例中的send函数调用合约的insert函数,向区块链存入一对键值对<a
点管理页面获取节点的弹性公网ip,该弹性公网ip为RESTAPI服务访问IP,端口固定为32621。 Path RESTAPI服务的访问路径,保持不变。 CryptoMethod 加密算法,如果是ECDSA算法填写“SW”。 SignCert 用户下载的证书中的签名证书路径。 PrvKey
业务端调用的示例,客户端的初始化配置。 Contract.java 通过合约对业务数据交互。对数据有修改的操作如插入和删除,需要调用其中的send方法。对数据的查询操作如查询某个键的历史,需要调用其中的query方法。 BlockUtil.java BlockUtil用于从区块上获取数据。 TxUtil
示例Demo 合约编译 Demo工程目录 父主题: Wasm合约开发(AssemblyScript)
aa73c757c9026fb623495d7058ca177f6152bcea 其中-b后的参数为接收方的地址。示例中为注册B用户时的返回值,即B用户注册数据的地址信息。 返回值为A账户的地址:2efc4639bc281060ce013dfea33a47b647b6f4a20103a6321c33d67d5xxxx