企业培训资讯_企业培训干货

当前位置:首页 > 新闻中心

调试CKB脚本的几个技巧

发布时间:2020-11-03    来源:亚博APP网页登录27448

本文摘要:com/nervosnetwork/ckb-system-scripts/wiki/Error-codes留意:少见的错误是误解了lockscript错误和typescript错误。[logger]filter=info,ckb-script=debug还可以自由选择在调试环境下运营脚本:ckb-cli,VMdebugger,ckb-contract-tool。

调试

CKB 中的脚本不一定只是我们在脚本语言中看见的脚本,例如 Ruby,JS,它实质上是所指在 CKB VM 上运营的 RISC-V 格式二进制文件。CKB VM 仿真 RISC-V 指令集,与其他 VM 通过 opcode 软编码功能十分有所不同。考虑到 CKB VM 的标准化特性,每种编程语言和工具链都有一些有所不同。在这篇本章中,CKB 开发者 jjy 将和大家讲解调试 CKB 脚本的几个技巧,慢来查阅吧。

请注意:尽管 CKB 的编程模型现在十分平稳,但目前依然在展开研发,因此可能会有变化。错误码CKB 节点仅有在交易检验告终时报告 exit code,区分错误最必要的方法是用于有所不同的 exit code(-127 和 127 之间)来回应错误。例如,配置文件的 lock script error code:secp256k1 error codeshttps://github.com/nervosnetwork/ckb-system-scripts/wiki/Error-codes留意:少见的错误是误解了lock script 错误和 type script 错误。

非常简单的调试方法是移除 type script,然后新的运营;如果错误依然不存在,可以确认错误是由 lock script 引发的;否则,它是由 type script 引发的。调试 syscall当我们想从脚本中输入额外的信息时,使用 debug syscall 来已完成此市场需求。配置文件情况下,CKB节点不输入调试 syscall 消息,网卓新闻网,可以配备 ckb.toml 来落成它。[logger]filter = info,ckb-script=debug还可以自由选择在调试环境下运营脚本:ckb-cli, VM debugger, ckb-contract-tool。

用于

对于语言 / 工具链构建人员,如果研发语言反对,建议您构建 debug syscall 来打印机错误向后跟踪。例如:如果将 Rust 与 ckb-contract-std 一起用于,您可以看见程序瓦解的方位。用 ckb-cli 分解 mock tx 和检验ckb-cli 反对在调试环境下分解仿真 tx 和检验,步骤如下:1. 分解 mock-tx 模板ckb-cli mock-tx template --lock-arg your lock-arg --output-file debug-tx.json2. 改动模板将你的 script cell 加到到 cell_deps 中,并改动交易结构以用于 lock script 或 type script。

3. 构建模板ckb-cli mock-tx complete --tx-file debug-tx.json此命令根据 lock arg 用于私钥亲笔签名交易。4. 检验交易ckb-cli mock-tx verify --tx-file debug-tx.json你将看见检验结果和调试输入。另外关于如何建构交易可参照 RFC:CKB 的交易结构用于 VM debugger 和 GDB1. Install ckb-standalone-debugger 加装 ckb-standalone-debuggergit clone https://github.com/nervosnetwork/ckb-standalone-debuggercd ckb-standalone-debugger/binscargo build --release2. Start standalone debugger 启动 ckb-standalone-debuggerckb-standalone-debugger 反对 ckb-cli 分解的模板。

要调试一个脚本,我们用 -g script type 来指代 script group 类型,这回应我们想调试哪个 script group,用于提到的 -h script hash。ckb-debugger -l 0.0.0.0:2000 -g type -h type script hash -t debug-tx.json3. 启动 GDBdocker run --rm -it -v pwd:/code nervos/ckb-riscv-gnu-toolchain:bionic-20191012 bash# start gdbriscv64-unknown-elf-gdb path of script binary# connect to debugger servertarget remote ip:2000若想理解更加多,请求参照 CKB 开发者 Xuejie 的文章:CKB 脚本编程概述第一弹头: 检验模型关于递交 bug当您在脚本中找到与安全性涉及的 bug 时,请求不要将其公布在 github public issue。请求在 ckb dev telegram(https://t.me/nervos_ckb_dev) 联系确保人员,这不仅有助确保人员改版,也可以避免用户损失资金。当您在 CKB 官方 script 或 CKB VM 中找到与安全性涉及的 bug 时,青睐重新加入我们的 bug bounty program,我们不会为您的宝贵贡献获取可观奖励!。


本文关键词:亚博APP网页登录,检验,用于,脚本,分解,错误

本文来源:亚博APP网页登录-www.comebacktoayrshire.com

分享到:
相关推荐MORE+
11-24 保罗迈入nba决赛的一战,了解是整肃了13年的命运债:亚博APP网页登录

本文摘要:再有就是火箭队了,和爵士舞抢下赛点以后保罗还被别人问来到当初被火箭弹反转的觉得,CP看著身旁的杜兰特讲到:他事先大大的在骗进攻犯规。保罗搞清楚他离开火箭队的风险性,火箭弹不只仅带著诚挚,也有

11-24 火箭老板蒂尔曼拒绝接受:让保罗离开火箭不好!:亚博APP网页登录

本文摘要:你为什么让其他团队感到尴尬?回答说,费尔蒂塔比现金更喜欢总冠军奖杯。说到现在的火箭队,费尔蒂塔说:我很感动将来的新赛季。费尔蒂塔之后说。至于火箭队总经理达雷尔-莫雷,今天在记者面前点赞新援卡

11-24 新生日记李艾与老公它是做为张徐宁的老婆李艾说道的:亚博APP网页登录

本文摘要:新生日记李艾与老公它是做为张徐宁的老婆李艾说道的,表述她们的婚姻生活方式并不是我们大家所强调的方式,只是女主角外男主角内,女在前男后面的一种运营模式。新生日记李艾李艾毕业于广东工业高校工商局

11-24 女儿们的恋爱2这么优秀的张恒和郑爽两人参加节目后,南北结婚的|亚博APP网页登录

本文摘要:女儿们的恋爱2在《女儿们的恋爱》第二季度,郑爽和张恒两人也参加了,本来没怎么期待两人的恋爱关系的粉丝们,现在看到他们两人在节目中的厚度和很多恋爱观的共享,他们开始讨厌情侣,衷心祝福他们两人当

《007:忙于不屈》出演丹尼尔克雷格、拉米马雷克攀上娱乐周刊-亚博APP网页登录 全世界第一支预告吃惊发布蜘蛛侠宇宙空间重要主人公出场|亚博APP网页登录
热门文章
保罗迈入nba决赛的一战,了解是整肃了13年的命运债:亚博APP网页登录
火箭老板蒂尔曼拒绝接受:让保罗离开火箭不好!:亚博APP网页登录
新生日记李艾与老公它是做为张徐宁的老婆李艾说道的:亚博APP网页登录
女儿们的恋爱2这么优秀的张恒和郑爽两人参加节目后,南北结婚的|亚博APP网页登录
潮流合伙人在日本东京哪儿开实体店:亚博APP网页登录
科技快报两会报导转入智能媒体时代
古时候有趣的事:新婚之夜敲出不来媳妇两腿顶一下(4)80%踩_亚博APP网页登录
挑战吧太空朱正廷首衣着军服情况层出不穷吴宣仪恐高症直喊懵了【亚博APP网页登录】
易登千玺参加音是哪个节目?很快就知道-亚博APP网页登录
液位传感器在无土栽培中怎样检验营养液的成分?|亚博APP网页登录
ONTHEGREENLANDICESHEET—T【亚博APP网页登录】
经济学家对油价暴跌的经济影响也是见仁见智
民族主义是这根竹棒,决不能扔掉孙中山利用这种生动有趣的对话宣|亚博APP网页登录
开国元老赵匡胤能称帝,石守信可以说首功_亚博APP网页登录
谈及长平之战,彻底每个人想到的一个词句便是舍本逐末,而创设出
客户案例
×