SDK常见问题

Date: 2020-09-14 Source: 本站


学习区块链就是不断踩坑积累的过程,为方便大家更好地从前人中总结经验,我们将FISCO BCOS社群中高频次、高质量的技术提问与探讨沉淀下来,集合成常见FAQ,作为一手学习材料,供开发者随时查阅。


本篇收录了关于“SDK”的常见问题。SDK帮助用户快速访问区块链,开发测试智能合约,实现业务逻辑。FISCO BCOS目前支持Python-SDK、Nodejs-SDK和Java-SDK等多语言SDK。


Q1 这里都是直接返回了回执,请问SDK调用合约交易是同步的吗?



A1 这个接口是同步的,也有异步的接口。


Q2 sdk连接节点不稳定是什么原因呢 ?本地测试经常有 no active connection available network exception requset send failed! please check the log file content for reasons.这个错误。

A2 节点都断开了,本地测试网络应该是稳定的,看下log日志里面的信息,日志里会有ChannelHandler.userEventTriggered(30) | idle state event:WRITER_IDLE connect172.18.0.2:20200 long time Inactive,disconnect。


Q3 控制台中的账户和SDK的证书、密钥之间是什么关系?

A3 SDK的证书用于与节点建立连接,是网络这一层的;账户是发交易的身份,是应用层的;两个完全独立,没有联系。


Python-SDK


Q1 python-sdk中的账户(bin/accounts/***.keystore)可以使用webase中间件平台中私钥管理创建的用户吗?如何操作?

A1 本质都是私钥,可以读下account里的代码,改几行就引入了。


Node-js SDK


Q1 想在html页面调用js文件,然后调用智能合约或者查看块高等信息,比如想调用web3jService.js 里面的函数,怎么使用呢?

A1 Node-js SDK只有channel一种连接方式,不可以在浏览器中执行,解决方案有两个:一是可以使用ajax之类的工具直接向节点的RPC接口发POST请求获得相应;二是在节点RPC接口不对外的情况下,使用Node-js SDK搭建一个server,网页通过访问这个server来间接调用节点的相关接口。


Java SDK


Q1 按照“手把手教你在Eclipse中使用JavaSDK”在本机配置了工程,在虚拟机启动4个节点,确保虚拟机和本机可以互ping通的情况下,启动sample工程,提示链接节点失败。



A1 不要在虚拟机中安装FISCO BCOS,会出现很多问题;ping通不意味着端口通,这是两回事。


Q2 如何通过SDK发布我的合约, 没有发现 deployByCNS 这个方法,是这个类部署合约?

A2 通过SDK发布合约,需要调用java合约类的deploy静态方法。和deployByCNS无关。


Q3 ailedto connect to nodes: [ ssl handshake failed:/49.233.33.20:20200, ssl handshake failed:/49.233.33.20:20201]

A3 检查下节点证书是否放置到 conf 目录。


Q4 请问下web3sdk不支持通过域名连接节点的原因是什么?

A4 因为没有做域名解析的功能,如果需要的话可以自己修改下代码。


Q5 出现如图问题是什么原因?

A5 可能端口配错了,要channel_port。


Q6 我使用java web3sd示例项目,copy了sdk的证书,改了配置后,启动项目,报ssl连接错误。https://github.com/FISCO-BCOS/spring-boot-starter

A6 Ngnix对SSL的反向代理应该不是只做端口映射就行了。比较复杂,建议去掉代理再试。具体在节点目录下修改config.ini的channel端口,重启节点就可以了。


Q7 按官方javaSDK步骤来随机创建外部账户时遇到create keypair of ECDSA failed, error msg:org.bouncycastle.jce.provider.JCEECPrivateKey cannot be cast to org.bouncycastle.jcajce.provider.asymmetric.ec.BCECPrivateKey。

A7 项目里面bc库有多个版本,出现了冲突,可以自行检查下。


Q8 在配置控制台这个阶段,我没有配置Java环境,配置了python-SDK,那么下面的命令还可以执行吗?

A8 需要配置 java 环境,不然控制台无法使用。


Go SDK


Q1 FISCO BCOS的go sdk能在生产环境使用吗?

A1 严谨测试后,再在生成环境使用


RPC接口


Q1 如果想只通过channel控制客户端与节点交互的权限,channel协议通信和 RPC通信中可以选择配置关闭RPC通信的吗?

A1 RPC配置成127.0.0.1就行,外部调用不到;2.3版本rpc和channel的监听分离了,2.3之前的版本在网络防火墙关掉8545端口即可。

参考资料
SDK技术文档:http://www.fisco-bcos.org/developer/docs/sdk/index.html

《麻雀虽小五脏俱全 | 从Python-SDK谈谈FISCO BCOS多语言SDK》

《Python SDK的前世今生》

《一文快速入门FISCO BCOS Node.js SDK

《手把手教你在Eclipse中使用JavaSDK》


公众号对话框回复【学习资料】可获得FISCO BCOS全套学习材料。


如果在FAQ中未能找到您的问题,可以添加小助手微信(FISCOBCOS010)进技术群提问交流,点击下方“阅读原文”,告诉我们您对内容的意见与建议。


如果您发现平台中有错误或是想提出功能请求,欢迎进入项目GitHub界面,提issue反馈遇到的问题和建议;如果只是小问题,您也可以顺手提PR进行修改。提交issue/PR的流程请参考《揭秘FISCO BCOS开源项目开发协作》

Share: