近期BSN开发常见问题答疑

id:BSN_2021
公众号:BSN研习社
区块链服务网络(Blockchain-based Service Network)(以下称为“BSN”)是一个跨云服务、跨门户、跨底层框架,用于部署和运行区块链应用的全球性公共基础设施网络,由国家信息中心、中国移动通信集团公司、中国银联股份有限公司、北京红枣科技有限公司共同发起。
2019年10月15日,BSN 发布并开启内测。2020年4月25日,BSN正式商用、海外版开启公测。
截止当前,BSN已上线运行两年有余,开发者在使用过程中,也提出了不少的问题。下面是BSN技术支持人员最新总结的常见问题(FAQ)。
问:使用PCNGateway-Java-SDK调用网关进行数据上链时报
“Path:xxxxxprivate_key.pem,Exception:{}”怎么处理?
答:1、直接传递密钥内容,如config.setPrk("密钥内容");
2、配置绝对路径,如:
config.setPrk(Common.readLocalFile("D:\cert\private_key.pem"));
3、配置相对路径,将密钥放在项目中的resource文件下,如文件在
resource/cert/private_key.pem,config.setPuk(Common.readFile("cert/private_key.pem"))
问:文昌链支持使用go语言开发智能合约吗?
答:不支持,目前文昌链wasm合约只支持rust语言。
问:武汉链上传公钥模式下调用合约失败,报“only replay-protected (EIP-155) transactions allowed over RPC”是因为什么?
答:在代码中为交易签名时要指明当前节点所在的ChainID,例如原来使用的是TransactionEncoder.signMessage(rawTransaction, credentials) 这个方法,
替换为这个方法
TransactionEncoder.signMessage(rawTransaction, chainId, credentials)即可调用成功,武汉链的ChainID为5555。
问:BSN增加Fabric2.3.2后在使用上和Fabric1.4.3有什么区别?
答:Fabric2.3.2和Fabric1.4.3的接入城市节点网关API是通用的,智能合约是不通用的,如要使用Fabric2.3.2要重新编写智能合约,可参考BSN提供的Fabric2.3.2预置智能合约
https://github.com/BSNDA/Fabr...
问:使用BSN网关SDK实例调用链码时提示"DApp information does not exist"是因为什么?
答:使用BSN网关SDK实例调用链码时传递的appCode参数值要和我参与的服务页面—查看—应用服务接入配置参数中的appCode保持一致。
问:使用BSN网关SDK实例调用链码时提示"User information does not exist"是因为什么?
答:使用BSN网关SDK实例调用链码时传递的userCode参数值要和我参与的服务页面—查看—应用服务接入配置参数中的userCode保持一致。
问:武汉链和以太坊(ETH)有什么区别?
答:1、共识协议不同。以太坊(ETH)用的是PoW共识而武汉链用的是POA共识。
2、版本不同。武汉链目前只停在以太坊伊斯坦布尔升级版本,没有柏林升级和伦敦升级的版本内容。
问:自己搭建了一套基于FISCO BCOS的单群组四节点的区块链网络环境,还搭建了Webase,在Webase上部署合约,链下业务系统采用http +json方式调用合约接口,能否从自己搭建的Webase+FISCO移植到BSN上进行使用?
答:链上合约相关的文件不需要改动。部署环节从Webase部署改为BSN部署:将合约源码打包为zip上传至BSN;链下服务接口调用环节从调用Webase改为了调用BSN网关,这里了解一下网关调用方式就行了。
问:一个应用总共有4个合约,合约之间部署是否有依赖关系,比如合约ABCD,合约B可否调用合约A,合约C调用合约B,合约D调用合约C?
答:目前BSN不支持单批次部署的合约之间有依赖关系。可以考虑分批次部署(服务升级)例如:合约A部署成功后获取到的合约地址作为参数传到合约B中,依次类推,分批部署;或在合约中开放某个方法将需要的合约地址作为参数传递进去设置合约之间的依赖关系。
问:联盟链FISCO BCOS 和泰安链的区别?
答:虽然泰安链是基于FISCO BCOS改造而成的链,但是两者也是有区别的。
(1) Fisco支持的solidity的版本是0.4+版本的,泰安链支持的solidity的版本是0.6+版本
(2) 泰安链添加了gas消耗机制
【近期BSN开发常见问题答疑】(3) 泰安链所有用户处于同一个群组内,solidity智能合约可以被其他用户调用 ,联盟链Fisco则由网关去控制相关权限

    推荐阅读