建网站软件 优帮云,thinkphp3.2 企业网站源码,网址建立快捷方式,南涧县城乡建设局网站长安链开源社区鼓励社区成员参与社区共建#xff0c;参与形式包括不限于代码贡献、文章撰写、社区答疑等。腾讯云区块链王燕飞在参与长安链测试工作过程中#xff0c;深入细致地总结了长安链实际开发应用中的常见问题及其有效的规避方法#xff0c;相关内容多次解答社区成员…长安链开源社区鼓励社区成员参与社区共建参与形式包括不限于代码贡献、文章撰写、社区答疑等。腾讯云区块链王燕飞在参与长安链测试工作过程中深入细致地总结了长安链实际开发应用中的常见问题及其有效的规避方法相关内容多次解答社区成员开发过程中遇到的问题帮助开发者提升开发效率与质量。 长安链开发常见问题及规避
前言
此文是记录长安链开发过程中可能遇到的问题以及如何规避相关问题。 问题一日志存储CFS引发的问题
引发风险
日志存储在CFS盘后引起的dag超时tps下降内存溢出等。
引发原因
因为日志存储在cfs上网络io的延时比较高所以写日志就会变得很慢导致整体变慢最后导致内存溢出。
规避建议
链上的日志存储不建议在cfs盘网络盘存储建议存储到ssd盘。 问题二文件存储出现两个.END文件
引发风险
出现两个.END文件以后节点启动就会panic相关报错panic: kvdb height: 218142 should not bigger than logdb: 215131, chain data maybe missed。
引发原因
暂时未知这里遇到多次多数是文件存储配置在cfs盘。
规避建议
如果遇到上述报错建议在文件存储中找到老的.END文件进行删除这样直接重启节点可以恢复。 问题三链升级过程中wasmer库引发的panic
引发风险
由于在升级过程中例如224版本升级231版本不需要重新构造链只需要替换二进制因此wasmer库在启动的时候还用的旧版本启动后节点panic./chainmaker: symbol lookup error: ./chainmaker: undefined symbol: wasm_extern_vec_destroy。
引发原因
主要是因为wasmer库升级老版本的libwasmer.so文件与新版本的不兼容因此会报错如上。
规避建议
如果遇到上述错误需要去新的工程中重新build一条新的链然后去任意1个节点下面的lib文件夹下面找到libwasmer.so文件然后直接替换到旧的链上的每个节点下面的lib文件下如
这里的libwasmer.so文件就是用的231版本新编译出来的直接替换在这里即可。 问题四日志太大磁盘不够存
引发风险
在日常使用链的过程中当开启debug或者数据量很大时每个日志文件都会占用大量的磁盘空间所以经常会导致磁盘写满使得整个链停止运行。
引发原因
日志文件过大且存储的日志文件过多导致磁盘不够用。
规避建议
如果遇到上述问题可以修改log.yml文件如图所示 max_age字段表示日志保存时长上图表示日志可保留一年的日志这里建议可以结合当前磁盘空间进行存储时长设置比如磁盘资源较少可以保存一个星期的日志。 问题五docker容器kill不掉
引发风险
执行stop脚本时容器kill不掉虽然执行结果提示成功但是容器并没有kill掉 再次执行启动脚本时提示先停掉容器 去查看容器状态时发现容器没有停掉。 引发原因
docker状态管理异常。
规避建议
如果遇到上述问题直接手动kill掉docker容器重启即可恢复正常。 问题六[signal SIGBUS: bus error code0x2 addr0x7f6432119000 pc0x1040a69]
引发风险
当前出现这个panic时节点则会宕机。
引发原因
磁盘写满导致。
规避建议
出现报错信息如下 unexpected fault address 0x7f6432119000
fatal error: fault
[signal SIGBUS: bus error code0x2 addr0x7f6432119000 pc0x1040a69]
goroutine 6139175623 [running]:
runtime.throw({0x317977a?, 0x1c23672?})
/usr/local/go/src/runtime/panic.go:992 0x71 fp0xc075a0d7c0 sp0xc075a0d790 pc0x100a811
runtime.sigpanic()
/usr/local/go/src/runtime/signal_unix.go:815 0x125 fp0xc075a0d810 sp0xc075a0d7c0 pc0x1021345
runtime.memmove() 这个报错其实就是磁盘写满了只需要保证磁盘有空间节点重启就不会再出现此类问题。 问题七单笔交易可以上链并发交易无法上链
问题现象
报错日志如下 2023-09-07 22:05:57.610 [WARN] [Access] ^[[31;1mchain1^[[0m accesscontrol/cert_ac.go:929 verify principal signer in cache failed, [endorsement: signer:org_id:wx-org1.chainmaker.org member_info:-----BEGIN CERTIFICATE-----\nMIICeDCCAh6gAwIBAgIDAZHSMAoGCCqBHM9VAYN1MIGKMQswCQYDVQQGEwJDTjEQ\nMA4GA1UECBMHQmVpamluZzEQMA4GA1UEBxMHQmVpamluZzEfMB0GA1UEChMWd3gt\nb3JnMS5jaGFpbm1ha2VyLm9yZzESMBAGA1UECxMJcm9vdC1jZXJ0MSIwIAYDVQQD\nExlj
2023-09-07 22:05:57.611 [ERROR] [Rpc] rpcserver/api_service.go:205 tx verify failed, verify tx authentation failed, authentication error: authentication failed, [refine endorsements failed, all endorsers have failed verification], txId:1782a2ef16a10b54ca4e4407bba9cda556c35e6021bc47beb678c56a5c49d346, sender:2d2d2d2d2d424547494e2043455254494649434154452d2d2d2d2d0a4d49494365444343416836674177494241674944415a48534d416f47434371424
2023-09-07 22:05:57.611 [WARN] [Access] ^[[31;1mchain1^[[0m accesscontrol/cert_ac.go:1067 information for invalid signature:
sdk调用报错提示 ______invoke result_________
Error: tx verify failed, verify tx authentation failed, authentication error: authentication failed, [refine endorsements failed, all endorsers have failed verification], txId:17aa7a7d0caf8e18ca6d6de7dd4135016c91030ddd294486ae93f082e3621544, sender:2d2d2d2d2d424547494e205055424c4943204b45592d2d2d2d2d0a4d466b77457759484b6f5a497a6a3043415159494b6f5a497a6a3044415163445167414542745553663753445478656d5853484b674972626c727a514d3278780a336d716f414134764454596d3374785a356c666e414237444247794158355162617039514c63437263434e353657474f356947594e3753706c673d3d0a2d2d2d2d2d454e44205055424c4943204b45592d2d2d2d2d0a
引发风险
权限校验失败导致交易无法正常上链报错信息常见关键日志如上
引发原因
chainmaker-cryptogen工程丢失文件或者版本不正确、cryoto.hash配置不正确如下图所示 规避建议
出现上述问题这里涉及到几个点也是日常大家经常容易踩雷的地方出现这个问题可以确定的是证书肯定是存在问题了我们要确认几个关键点 证书类型确认检查当前使用的证书是否为国密或非国密类型确保cmc命令或SDK参数与证书类型完全匹配。 配置检查在发送交易前需检查使用的sdk_config.yml文件中crypto.hash字段配置是否与节点一致。 命令与参数校验如果cmc命令执行和SDK参数调用均无误且单笔交易能成功上链则需进一步检查以下内容。 chainmaker-cryptogen工程检查确认所选分支是否正确检查是否存在文件丢失的情况若无法自行判断或确认建议直接删除当前工程并重新拉取最新版本然后创建软链接。 证书更新操作完成上述步骤后重启链服务将cmc目录下的新证书重新拷贝至相应位置若通过SDK调用同样需替换为新证书。 #去chainmaker-go的tools目录下安装证书具体操作如下:
cd chainmaker-go/tools
git
#编译部署包
cd chainmaker-go/tools/chainmaker-cryptogen
make
#编译部署失败不通过试试下面的
git submodule update --init
# 进入工具目录
$ cd chainmaker-go/tools
# 软连接chainmaker-cryptogen到tools目录下
$ ln -s ../../chainmaker-cryptogen/ . 问题八并发过程中出现panic提示cache add block failpanictime out goroutine xxxx
问题现象 panic: time out [recovered] panic: cache add block fail, panic: time out goroutine 86659 [running]: runtime/debug.Stack(0xc0166f5590, 0xc02fc771d0, 0x7ff23c131170) /usr/local/go/src/runtime/debug/stack.go:24 0x9f http://chainmaker.org/chainmaker-go/module/core/common.(*BlockCommitterImpl).AddBlock.func1(0xc013d5e7e0, /chainmaker-go/module/core/common/block_helper.go:996 0x56a panic(0x30fb0e0, 0xc028b6b3a0) /usr/local/go/src/runtime/panic.go:965 0x1b9 http://chainmaker.org/chainmaker-go/module/core/common.(*CommitBlock).CommitBlock(0xc0007295e0, /chainmaker-go/module/core/common/committer.go:59 0xa3b http://chainmaker.org/chainmaker-go/module/core/common.(*BlockCommitterImpl).AddBlock(0xc013d5e7e0, /chainmaker-go/module/core/common/block_helper.go:1040 0x890 http://chainmaker.org/chainmaker-go/module/core/syncmode.(*CoreEngine).OnMessage.func2(0xc02fdf6708, /chainmaker-go/module/core/syncmode/core_syncmode_impl.go:177 0x6d 引发风险
出现上述panic问题即便是重启了节点也会出现这种问题。
引发原因
磁盘io读写过高导致程序在读取bfdb文件出现超时情况程序自动给出panic。
规避建议
出现上述问题不要慌我们从以下几个点去思考
1. 你的节点是否存储在网络盘如果存储在网络盘出现问题很正常具体情况我们参看问题1
2. 如果我们节点就是存储在本地盘但是可能磁盘io较高导致我们读取存储文件超时我们可以用以下方案解决增加存储配置read_bfdb_timeout: 10000添加位置如下。 disable_block_file_db: false #是否禁用区块文件存储功能 默认为true也就是未启用,新节点建议此处设置为false。 logdb_segment_async: false #区块文件异步落盘与否 默认为false也就是默认同步落盘异步落盘时存在断电后数据损坏风险。 logdb_segment_size: 128 #区块文件大小单位MB默认64MB。 read_bfdb_timeout: 10000 # 读取 bfdb 下区块文件的超时时间单位ms, 默认: 1000即1s。 问题九拉取镜像报错You have reached your pull rate limit
问题现象 toomanyrequests: You have reached your pull rate limit. You may increase the limit by authenticating and upgrading: https://www.docker.com/increase-rate-limit make: *** [docker-build] Error 1 引发风险
拉取镜像直接无法拉取。
引发原因
这是因为使用Docker的时候没有登录导致拉取代码有限制。
解决办法
方案1推荐方案去长安链官网网站拉去镜像
docker pull hub-dev.cnbn.org.cn/chainmakerofficial/chainmaker:v2.3.5 方案2去Docker官方网站注册账号https://hub.docker.com/。
2. Linux登录账号密码命令为docker login
3. 如图所示 文章转载自: http://www.morning.ysllp.cn.gov.cn.ysllp.cn http://www.morning.nfmlt.cn.gov.cn.nfmlt.cn http://www.morning.fxwkl.cn.gov.cn.fxwkl.cn http://www.morning.qgxnw.cn.gov.cn.qgxnw.cn http://www.morning.jpjxb.cn.gov.cn.jpjxb.cn http://www.morning.rmrcc.cn.gov.cn.rmrcc.cn http://www.morning.yhwmg.cn.gov.cn.yhwmg.cn http://www.morning.hxgly.cn.gov.cn.hxgly.cn http://www.morning.rjljb.cn.gov.cn.rjljb.cn http://www.morning.nhdw.cn.gov.cn.nhdw.cn http://www.morning.gtdf.cn.gov.cn.gtdf.cn http://www.morning.burpgr.cn.gov.cn.burpgr.cn http://www.morning.zglrl.cn.gov.cn.zglrl.cn http://www.morning.dkbgg.cn.gov.cn.dkbgg.cn http://www.morning.rongxiaoman.com.gov.cn.rongxiaoman.com http://www.morning.drgmr.cn.gov.cn.drgmr.cn http://www.morning.sfnr.cn.gov.cn.sfnr.cn http://www.morning.hrqfl.cn.gov.cn.hrqfl.cn http://www.morning.mbbgk.com.gov.cn.mbbgk.com http://www.morning.tdmgs.cn.gov.cn.tdmgs.cn http://www.morning.pjbhk.cn.gov.cn.pjbhk.cn http://www.morning.bfmq.cn.gov.cn.bfmq.cn http://www.morning.rsmtx.cn.gov.cn.rsmtx.cn http://www.morning.cwyrp.cn.gov.cn.cwyrp.cn http://www.morning.hmgqy.cn.gov.cn.hmgqy.cn http://www.morning.lonlie.com.gov.cn.lonlie.com http://www.morning.chxsn.cn.gov.cn.chxsn.cn http://www.morning.gwdmj.cn.gov.cn.gwdmj.cn http://www.morning.080203.cn.gov.cn.080203.cn http://www.morning.nrwr.cn.gov.cn.nrwr.cn http://www.morning.kngqd.cn.gov.cn.kngqd.cn http://www.morning.qsy40.cn.gov.cn.qsy40.cn http://www.morning.qqrlz.cn.gov.cn.qqrlz.cn http://www.morning.xcszl.cn.gov.cn.xcszl.cn http://www.morning.jlboyuan.cn.gov.cn.jlboyuan.cn http://www.morning.xnwjt.cn.gov.cn.xnwjt.cn http://www.morning.bkqw.cn.gov.cn.bkqw.cn http://www.morning.xpzkr.cn.gov.cn.xpzkr.cn http://www.morning.fewhope.com.gov.cn.fewhope.com http://www.morning.kyflr.cn.gov.cn.kyflr.cn http://www.morning.rqhn.cn.gov.cn.rqhn.cn http://www.morning.hgbzc.cn.gov.cn.hgbzc.cn http://www.morning.nhrkc.cn.gov.cn.nhrkc.cn http://www.morning.xmnlc.cn.gov.cn.xmnlc.cn http://www.morning.lgphx.cn.gov.cn.lgphx.cn http://www.morning.hkpyp.cn.gov.cn.hkpyp.cn http://www.morning.nfbkz.cn.gov.cn.nfbkz.cn http://www.morning.zqcgt.cn.gov.cn.zqcgt.cn http://www.morning.yaqi6.com.gov.cn.yaqi6.com http://www.morning.ksbmx.cn.gov.cn.ksbmx.cn http://www.morning.ykrck.cn.gov.cn.ykrck.cn http://www.morning.xhklb.cn.gov.cn.xhklb.cn http://www.morning.3jiax.cn.gov.cn.3jiax.cn http://www.morning.fkdts.cn.gov.cn.fkdts.cn http://www.morning.dbnpz.cn.gov.cn.dbnpz.cn http://www.morning.kdpal.cn.gov.cn.kdpal.cn http://www.morning.kzslk.cn.gov.cn.kzslk.cn http://www.morning.lmpfk.cn.gov.cn.lmpfk.cn http://www.morning.zqkr.cn.gov.cn.zqkr.cn http://www.morning.fkgct.cn.gov.cn.fkgct.cn http://www.morning.zdtfr.cn.gov.cn.zdtfr.cn http://www.morning.ddqdl.cn.gov.cn.ddqdl.cn http://www.morning.lzbut.cn.gov.cn.lzbut.cn http://www.morning.mnkz.cn.gov.cn.mnkz.cn http://www.morning.wnkjb.cn.gov.cn.wnkjb.cn http://www.morning.ntwxt.cn.gov.cn.ntwxt.cn http://www.morning.gwxwl.cn.gov.cn.gwxwl.cn http://www.morning.jwqqd.cn.gov.cn.jwqqd.cn http://www.morning.dgknl.cn.gov.cn.dgknl.cn http://www.morning.c7497.cn.gov.cn.c7497.cn http://www.morning.rhmk.cn.gov.cn.rhmk.cn http://www.morning.yzygj.cn.gov.cn.yzygj.cn http://www.morning.gmnmh.cn.gov.cn.gmnmh.cn http://www.morning.bsqbg.cn.gov.cn.bsqbg.cn http://www.morning.wdykx.cn.gov.cn.wdykx.cn http://www.morning.cqrenli.com.gov.cn.cqrenli.com http://www.morning.wjyyg.cn.gov.cn.wjyyg.cn http://www.morning.kkwbw.cn.gov.cn.kkwbw.cn http://www.morning.mwns.cn.gov.cn.mwns.cn http://www.morning.tlbdy.cn.gov.cn.tlbdy.cn