发布时间:2023-09-14 来源:本站
学习区块链就是不断踩坑积累的过程,为方便大家更好地从前人中总结经验,我们将FISCO BCOS社群中高频次、高质量的技术提问与探讨沉淀下来,集合成常见FAQ,作为一手学习材料,供大家随时查阅。
本篇收录了关于“WeBASE”的常见问题。WeBASE是由社区伙伴贡献的区块链中间件平台,用以简化区块链应用开发流程,降低企业落地区块链应用的时间成本、人力成本,帮助企业快速搭建区块链应用。
A1 :可以同时使用,是两种不同的功能组件。
A2 :是的。有了交易和事件导出,辅以巧妙定义事件,链下还原mapping数据不是难事。
A3 :目前支持在WeBASE- Front导入pem格式私钥,建议单独在一个地方做调试,单个平台管理更方便。1.3.1版本将支持p12私钥文件导入,敬请期待。
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接口。
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
A8 :node-manager暂时不支持mac。
A9 :https://webasedoc.readthedocs.io/zh_CN/latest/docs/WeBASE/install.htm
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是默认访问第一个。
A13 :如果想单独启动sign可以到webase-sign目录下,调用start.sh脚本。1.3.1版本增加了这个命令,择日即将发布。
A14 :部署的合约是不能删除的,如果要对合约进行调试开发,请使用WeBASE-Front的可视化开发环境。
A15 :front支持导入控制台的pem私钥,建议在单个平台进行操作。
A16 :bytes32需要用0x开头补齐32位的方法。
A17 :需要发笔交易触发才能消除异常合约。
A18 :front的solc目前是引入的js包,文档有相应升级说明。
Q19 :webase-node-manager的区块同步异常问题。
A19 :定时任务串行的问题导致,等一段时间会自动同步成功。
A20 :只读交易本来就是没有签名,无法保证用户不伪造。建议可以直接用参数指定查询条件。
A21 :使用WeBASE搭建开发环境,开发应用调通后,放到BSN的环境运行;只是网关API替换或者适配一下即可。
A22 :导入合约,然后使用合约地址就可以调用。
Q23 :使用国密版webase-front /contract/compile-java接口得到的合约在webase-collect-bee导出失败。
A23 :修改collect-bee为国密版配置。
A24 :需要填变量名。
A25 :文件路径配置错误。
A26 :数据库版本不匹配,目前manager的mysql版本不支持8.0。
A27 :使用了node-manager后台接口编译智能合约后,调用部署接口传参格式不正确导致报错。
Q28 :WeBASE界面验证码出不来。
A28 :服务没有启动,检查WeBASE-Node-Manager是否启动。
A29 :回调函数是在event被调用后自动触发的。想要主动查询,可以使用WeBASE-Collect-Bee数据导出组件,将链上的数据导出到链下的数据库中,其中包含了所有的event信息。
Q30 :用WeBASE开发合约无法管理合约吗?比如删除合约,重命名?
A30 :WeBASE管理平台不可以修改,WeBASE-Front可以删除。
A31 :私钥是加密存储的,不能导出,建议您可以先生成一个私钥,再在WeBASE里赋权。
A32 :添加完前置就能获取到group了。
A33 :目前还不支持,后面的版本有规划支持切换。
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 中的配置就好。
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就好了,其他的代码不要注释掉。
A44 :WeBase的私钥是用于外部账户发交易的,不建议使用节点的私钥(node.key),使用私钥可以通过webase直接生成。
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)
A49 :推荐 Webase 数据导出组件,可在git上拉去,一键导出,包含区块数据、交易数据、event 数据、账户数据等四个维度的链上所有数据。
参考资料
公众号对话框回复【学习资料】可获得FISCO BCOS全套学习材料。
如果在FAQ中未能找到您的问题,可以添加小助手微信(FISCOBCOS010)进技术群提问交流,点击下方“阅读原文”,告诉我们您对内容的意见与建议。
如果您发现平台中有错误或是想提出功能请求,欢迎进入项目GitHub界面,提issue反馈遇到的问题和建议;如果只是小问题,您也可以顺手提PR进行修改。提交issue/PR的流程请参考《揭秘FISCO BCOS开源项目开发协作》。