WeBASE常见问题

发布时间:2020-09-14 来源:本站

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


本篇收录了关于“WeBASE”的常见问题。WeBASE是由社区伙伴贡献的区块链中间件平台,用以简化区块链应用开发流程,降低企业落地区块链应用的时间成本、人力成本,帮助企业快速搭建区块链应用。


Q1 :是否能同时使用WeBASE和WeCross这两个组件搭建一套跨链的平台呢?

A1 :可以同时使用,是两种不同的功能组件。


Q2 :WeBASE-Collect-Bee子系统只是解析历史区块数据,把历史区块、交易和合约事件数据导出,合约内部存储的数据像mapping之类是没办法导出吗?

A2 :是的。有了交易和事件导出,辅以巧妙定义事件,链下还原mapping数据不是难事。


Q3 :在WeBASE创建了账户,如何在console里面也生成对应的p12私钥文件以方便我在consloe里用这个私钥进行启动呢?

A3 :目前支持在WeBASE- Front导入pem格式私钥,建议单独在一个地方做调试,单个平台管理更方便。1.3.1版本将支持p12私钥文件导入,敬请期待。


Q4 :在WeBASE-Front上部署自己的合约会生成java文件吗?

A4 :不会生成 java 文件,Front界面支持生成java类。


Q5 :WeBASE-Front 配置了webase-sign 地址,但是在WeBase管理平台上新增用户后,没看到webase-sign数据库里有记录。


A5 :这个版本是需要调用webase sign的newUser接口新增一个用户,然后sign通过返回userId去调用。使用webase-sign来管理私钥的话,可以参考webase-node-mgr接口文档的deployWithSign和transWithSign接口。


Q6 :使用macOS操作系统部署webase node manager一直卡在start是怎么回事呢?

A6 :node-manager暂时不支持mac。


Q7 :We-Front 的合约IDE里面编写并编译好了一个合约,复制合约内容保存到本地文件以后,再重新导入这个合约文件编译生成的bytecodeBin为什么后面的一小段不一样呢?windows系统,使用We-Front 1.2.4版本,当合约参数为bytes32类型的时候会报错,但使用webase-front1.2.0就没问题。


unable to create instance of type:org.fisco.bcos.web3j.abi.datatypes.generated.Bytes32


A7 :bytes32要用这种格式输入,长度要一致,在页面加个限制。


0x50cb9fe53daa9737b786ab3646f04d0150dc50ef4e75f59509d83667ad5adb20



Q8 :使用macOS操作系统部署webase node manager一直卡在start是怎么回事呢?

A8 :node-manager暂时不支持mac。


Q9 :想做一个区块链应用,现在已经写好后端和智能合约,web前端开发有什么推荐的吗?

A9 :https://webasedoc.readthedocs.io/zh_CN/latest/docs/WeBASE/install.htm


Q10 :1.3.0版本的情况下,同一个前置上可以配置多个签名服务吗?主备的那种呢?

A10 :可以的,在front的yaml里可以配置多个sign的ip port。主备区分的情况下,需要另外在代码中配置,front是默认访问第一个。


Q11 :通过控制台查询到的部署有3个,为什么在WEBASE部署显示0?


A11 :这里显示的数量是通过WeBASE平台部署的合约。


Q12 :启动WeBASE-Sign: python deploy.py startSign 这个命令是不是无效的?不用启动?


A12 :可以的,在front的yaml里可以配置多个sign的ip port。主备区分的情况下,需要另外在代码中配置,front是默认访问第一个。


Q13 :1.3.0版本的情况下,同一个前置上可以配置多个签名服务吗?主备的那种呢?

A13 :如果想单独启动sign可以到webase-sign目录下,调用start.sh脚本。1.3.1版本增加了这个命令,择日即将发布。


Q14 :在使用WEBASE过程中遇到不能删除文件夹的问题。

A14 :部署的合约是不能删除的,如果要对合约进行调试开发,请使用WeBASE-Front的可视化开发环境。


Q15 :Webase创建了私钥用户,如何导入到console,用该私钥启动控制台?

A15 :front支持导入控制台的pem私钥,建议在单个平台进行操作。


Q16 :用webase-front编译参数为Bytes32时报错无法初始化。

A16 :bytes32需要用0x开头补齐32位的方法。


Q17 :webase-node-manager交易审计里面的异常合约记录该如何消除呢?合约已经上传到webase-node-manager的web ide里面进行了保存和编译。

A17 :需要发笔交易触发才能消除异常合约。


Q18 :webase-front怎么升级solc的版本?

A18 :front的solc目前是引入的js包,文档有相应升级说明。


Q19 :webase-node-manager的区块同步异常问题。


A19 :定时任务串行的问题导致,等一段时间会自动同步成功。


Q20 :WeBASE界面测试合约,view方法会随机生成私钥。部分用户合约查询跟msg.sender有关的话,查询值跟期望值不符。

A20 :只读交易本来就是没有签名,无法保证用户不伪造。建议可以直接用参数指定查询条件。


Q21 :我用WeBASE做了一个应用,要怎么移植到BSN呢?

A21 :使用WeBASE搭建开发环境,开发应用调通后,放到BSN的环境运行;只是网关API替换或者适配一下即可。


Q22 :不同渠道部署的合约,在WeBASE上调用不了。

A22 :导入合约,然后使用合约地址就可以调用。


Q23 :使用国密版webase-front /contract/compile-java接口得到的合约在webase-collect-bee导出失败。

A23 :修改collect-bee为国密版配置。


Q24 :FISCO BCOS2.2WeBASE最新版,solidity编译成java文件时,事件变量如果没有显式指定变量名称,转换过程会报错“not a valid name”,没有详细堆栈输出是怎么回事?

A24 :需要填变量名。


Q25 :nginx配置错误问题 ,导致无法访问web界面。

A25 :文件路径配置错误。


Q26 :区块链游览器,起了两个docker,一个给mysql,一个给浏览器后台+前端。浏览器的docker里面可以通过mysql命令访问到DB,但是后台程序JDBC一直报错。

A26 :数据库版本不匹配,目前manager的mysql版本不支持8.0。


Q27 :调用webase-node-manager合约部署接口时,报错Multipart servlet request IOException。

A27 :使用了node-manager后台接口编译智能合约后,调用部署接口传参格式不正确导致报错。


Q28 :WeBASE界面验证码出不来。


A28 :服务没有启动,检查WeBASE-Node-Manager是否启动。


Q29 :怎么通过回调函数查询几天前一个地址的转账记录呢?

A29 :回调函数是在event被调用后自动触发的。想要主动查询,可以使用WeBASE-Collect-Bee数据导出组件,将链上的数据导出到链下的数据库中,其中包含了所有的event信息。


Q30 :用WeBASE开发合约无法管理合约吗?比如删除合约,重命名?


A30 :WeBASE管理平台不可以修改,WeBASE-Front可以删除。


Q31 :请问如何得到账号私钥?使用WeBASE管理平台的私钥管理如何导入或者导出私钥信息呢?

A31 :私钥是加密存储的,不能导出,建议您可以先生成一个私钥,再在WeBASE里赋权。


Q32 :我已经启动front sign ,然后启动 node;webase单独启动节点,log描述:not found any group ,这个怎么解决?

A32 :添加完前置就能获取到group了。


Q33 :WeBASE的solidity编译器可以切换成高版本的吗比如0.5.0?

A33 :目前还不支持,后面的版本有规划支持切换。


Q34 :交易处理接口(结合WeBASE-Sign)

WeBASE-Front/trans/handleWithSigncontractAbi如果没有传入此字段,则从db或cns获取合约abi;我目前是通过webase-node-manager部署的合约,目前如果不传contractAbi会报错get abi error。请问如何才能不需要传contractAbi参数?从db获取,他是从哪个db获取的?我用的版本是1.3.0。

A34 :1.3移除了cns的逻辑,在front调用合约的话,要传abi。


Q35 :区块数量内外不一致。



A35 :本地保存最新的10000个区块,可以在Yml中设置一下最大值,constant-blockRetainMax。


Q36 :安装WeBASE-Codegen-Monkey,配置文件里有一个要填写合约Java文件的包名system.contractPackName=[编译Solidity合约时指定的包名],我填了自己的但是还一直报错,Invalid java package name. Please make sure your config is equal to your package name.说包名不对。


A36 :这个配置指的是编译成JAVA合约的包名,可以随便打开一个JAVA合约,第一行就是。


Q37 :这个包哪里可以获取?


A37 :如果用0.4.25不用修改,使用0.5就修改build.gradle中的版本号就可以切换。


Q38 :添加权限时报错,VM centos7系统,合约与交易是正常的。



A38 :账户信息是旧账户,需要重新创建一个新的账户。重新安装所有子系统,或做兼容升级。


Q39 :在webase里如何部署library,点击部署,报如上图所示的错误!


A39 :暂不支持单独部署library,可以在合约中引用library。


Q40 :部署1.3.1版本WeBASE后,添加节点前置时出错,请问这是什么原因呢?


A40 :版本兼容性问题,WeBASE1.3.1的链需要配合2.4及以上的节点使用, 可参考:https://webasedoc.readthedocs.io/zh_CN/latest/docs/WeBASE/ChangeLOG.html


Q41 :在安装节点管理子系统时,初始数据库报这个是什么原因?


A41 :老版本的残留数据冲突,需要清理数据库。


Q42 :WeBase-front一直报以下提示是正常的吗?


A42 :这个是收集FISCO BCOS节点日志的定时器,如果不关注,改下 WeBASE-Front 的 application.yml 中的配置就好。


Q43-1 :关于部署WeBase的问题: 使用已有链时需配置,已有链的路径,start_all.sh脚本所在路径,路径下要存在sdk目录,sdk里存放sdk证书(ca.crt、node.crt和node.key)fisco.dir=/data/app/nodes/127.0.0.1;我是参考https://fisco-bcos-documentation.readthedocs.io/zh_CN/latest/docs/enterprise_tools/tutorial_detail_operation_gm.html部署的FISCO BCOS,是在generator/里操作的,上面WeBase里要求的fisco.dir要去哪里找呢?

A43-1  :fisco.dir是你安装的节点的路径,各个字段填写的值在webase的.properties里有注释说明,比如你在build_chain之后,就在nodes目录存放了节点;https://fisco-bcos-documentation.readthedocs.io/zh_CN/latest/docs/enterprise_tools/operation.html#generate-sdk-certificate 参考这个链接生成sdk证书

Q43-2 :看起来是部署成功了,但是通过浏览器访问显示无法加载http://47.115.19.81:5000/,可能是什么原因呢?是在阿里云服务器上部署,然后在本机上浏览器访问。

A43-2  :已有链的话,直接在exist填yes就好了,其他的代码不要注释掉。


Q44  :请问搭WeBase,添加私钥,我的链用的是国密,里面有两个key,一个是gmnode.key,一个是gmennode.key,应该选哪个呢?

A44  :WeBase的私钥是用于外部账户发交易的,不建议使用节点的私钥(node.key),使用私钥可以通过webase直接生成。


Q45  :WeBase上只能导入.txt , .pem, .p12的,应该用什么工具把gm的.key转成符合要求的呢?我看openssl能转rsa的,它能转国密的吗?

A45  :可以导出WeBASE-Front的.txt私钥,按照其格式,输入明文的私钥和用户名即可导入到webase中。可以通过openssl查看.key私钥的明文私钥。


Q46  :在webase中编写的合约运行后在webase中可以显示出input详细信息,在浏览器中只有methodId显示 function data都为空是否正常?


A46 :在浏览器中导入合约,编译一下。


Q47  :该接口的私钥字段怎么生成的?


A47 :可以通过webase-front生成私钥后,导出txt格式的私钥,也可直接通过Openssl生成私钥。



Q48 :web-base中添加前置节点,总是失败。问题可能出在机构名称,如何知道某个节点的机构名称?


A48 :确认一下1.3.x的webase需要2.4.x的FISCO节点。(使用FISCO v2.3.x因为缺少部分动态群组接口,会导致添加失败。暂未支持FISCO 2.5.x)


Q49 :如何获取某个历史区块中的event日志信息?

A49 :推荐  Webase 数据导出组件,可在git上拉去,一键导出,包含区块数据、交易数据、event 数据、账户数据等四个维度的链上所有数据。


参考资料


WeBASE代码仓库

WeBASE技术文档

FISCO BCOS迎来区块链中间件平台WeBASE,应用落地提速

漫谈WeBASE之交易两三事

WeBASE数据导出:助力区块链大数据场景快速落地

在WeBASE的动物园漫步

WeBASE节点前置组件功能解析


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


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


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



分享至: