在 CKB 上如何用最简单的方法构造验证交易|kaiyun体育(中国)官方网站
- 发表时间:2024-10-06
- 来源:
- 人气:
你告诉如何在 CKB 上建构检验交易吗?今天,CKB 开发者 luochao 就来和大家闲谈一聊如何用最少见最简单的方式在 CKB 上建构检验交易,慢来查阅吧。1. Cell Collet在 CKB,任何交易必需包括最少一条 input 和一条 output。
为了结构交易,首先必须定位 input,我们将其称作「cell collect」。我们告诉 CKB 与 UTXO 模型十分类似于,这意味著如果没任何实内存,就无法获知任何地址的当前状态。构成当前状态的信息有可能集中在链上有所不同的 cell 中。
可参照 Cell model 理解 CKB 的数据模型。有两种方法可展开 cell collect:a.用于 ckb indexer 服务这里讲解一种标识登录地址的信息(如 live_cell 数量、交易数量、总容量)的非常简单方法,而不必须任何其他操作者。请注意,由于基于 CKB 节点的 indexer 函数,此方法只限于于基础用法。另外此方法也不反对查询更加详尽的信息(例如,无法定位合约 cell),而且还将消耗 CKB 节点本身的资源。
不过充满著这些缺点,让我们从这个方法开始,以更佳地解读单元搜集是如何工作的。CKB 节点中配置文件重开此功能。要关上它,请求按如下右图手动变更配置文件并重新启动 CKB 节点:在 mckb.toml 中变更以下配备:[rpc]...# List of API modules: ["Net", "Pool", "Miner", "Chain", "Stats", "Subscription", "Indexer", "Experiment"]modules = ["Net", "Pool", "Miner", "Chain", "Stats", "Subscription", "Experiment"]可显现出 indexer 服务配置文件没启动。
要关上该功能,请求向数组 modules 中加到「Indexer」。modules = ["Net", "Pool", "Miner", "Chain", "Stats", "Subscription", "Experiment", "Indexer"]用于 ckb run -Cpath 重新启动 CKB 节点后,通过 RPC 方法 index_lock_hash 登记须要索引的地址。请注意:index_from 参数掌控索引的接续点,null 值从 chain tip(当前块)开始索引,而 0 值从 genesis 块开始索引。现在,等候新的建构 index 服务,然后用于 index 服务的 RPC 模块来查阅适当地址的 live_cell/transaction/capacity 值。
如果仍然必须 index 服务,可以通过 RPC 吊销监控列表,重开服务,并从 ckb.toml 中的数组中移除「Indexer」。b.创立你自己的 Cell 搜集服务创立你自己的 Cell 搜集服务有什么益处?我们都告诉,交易还包括创立和封存给定数量的 cell,这是交易的最简单定义。
由于 cell 用于的灵活性,任何有意义的数据都可以存储在 cell 的 data 字段中,各种类型的合约都可以用 type script 回应。因此,每个用户或用例有可能对 cell 搜集有有所不同的市场需求。实质上有许多问题尚待探寻,每个问题根据有所不同的用例都有可能有有所不同的答案:· cell 搜集的顺序是什么?先进先出,按大小顺序,最佳模型等等· 可以用于哪种 cell?特定的幸运地数字或给定的· 否有任何 cell data 或 type 必须类似处置?· 自由选择 cell 后否必须过滤器/证实?CKB 包括的 index 服务无法很好地符合这些市场需求,并且它无法灵活性兼容未来有可能减少的额外市场需求。
最有效地的方法是自己建构 cell 搜集功能。如何做到?当一个新的区块上链时,区块中作为 input 的 cell 必需从 live cell 集中于去除,而区块中的 output 必需加到到 live cell 集中于。由于在 PoW 区块链中常常再次发生较短末端,当末端使以前接管的区块违宪时,网卓新闻网,必需回滚该块的 input 和 output 以变更。
内存设计可有助加快实时,例如,内存链中的最后 N 个块并移除这些块中用于的 live cell。2. 结构交易现在我们可以开始建构交易了。开始之前你必须理解一些背景科学知识,还包括建构witness,交易酬劳的计算出来和一些小技巧。结构交易所有类型都基于 molecule(一个序列化系统)展开序列化,核心结构体是:table RawTransaction { version:Uint32, cell_deps: CellDepVec, header_deps:Byte32Vec, inputs:CellInputVec, outputs:CellOutputVec, outputs_data: BytesVec,}table Transaction { raw:RawTransaction, witnesses: BytesVec,}cell_deps 和 input 是一系列指向链上 live cell 的指针。
不同之处在于,dep 是一个提到(读入),在交易中用于 input。index 结构为:struct OutPoint { tx_hash:Byte32, index: Uint32,}struct CellDep { out_point: OutPoint, dep_type: byte,}tx_hash 和 outputs_index 用作定位 cell。dep 有一个额外的 dep_type 字段,用作回应 cell 中的 data 是 code 还是 dep_group。
(请注意,可以用于 dep_group 功能人组多个 cell 中的代码)· 用 0 回应 code ,这意味著可以必要用于cell data· 用 1 回应 dep group,这意味著这个 cell 中的 data 是一个重定向字段,必须解析 n 个 cell(此处不容许迭代),dep group data 用 dVector OutPointVec OutPoint 所列所有必须的要点。例如:你可以查阅配置文件的 lock cell,并用于 dep group 功能将 secp256k1 库分为两个 cell 来存储乘法表和代码。
区块大小是受限的,如果数据过于大无法放进一个块中,它可以存储在分开的 cell 中并在运营时一起读取。outputs 和 outputs_data 是两个一对一的列表。output 中只有容量和 type/lock script。输入数据放到与索引对应的 outputs_data 中。
header_dep 是过去区块头哈希的列表,这些区块头的头数据可以通过 CKB scripts 采访。既然早已说明了交易的非常简单结构,现在让我们探寻略为简单一点的结构:scripttable Script { code_hash: Byte32, hash_type: byte, args: Bytes,}code_hash 和 hash_type 用作登录 lock cell,args 是 lock script 所需的参数。hash_type 有两个值:· 「data」用 0 回应,code_hash 意味著,lock cell的 data hash· 「type」用 1 回应,code_hash 意味著 lock cell 的 type script hash很更容易将 hash_type 解读为 code,但是 type 有什么用呢?CKB 的配置文件 lock 是按 type 索引的。
这对合约开发者意味著什么?你可以看见的第 0 个区块的第二个输入的 type script,这是一个 TypeID script,这意味著,如果您公布的库也初始化这个 typeid script,它将分解一个唯一的 id(code hash)用作索引数据,你可以持续改版这个库的内容而不转变typeid。提到库的合约会因库变更而违宪。
这是改版链上库的解决方案。witness现在,所有 RawTransacion 字段早已设置已完成,来看 witness 字段。这个字段是为了保证交易无法伪造其他交易,并且这个字段还容许包括一些合约有可能必须的临时变量。
它由一系列的 witness 构成:table WitnessArgs { lock: BytesOpt, // Lock args input_type:BytesOpt, // Type args for input output_type:BytesOpt, // Type args for output}最初,input 必须一个 witness 来检验,但这是陈旧的,所以当 VM 检验交易时,用于 script group,将交易脚本中完全一致的 input/output cell 拆分到一个 script group 中,并且只继续执行一次检验。script group 的优点是提升了检验速度,增加了检验的消耗,增大了 witness 的大小。适当的缺点是分解 witness 的规则要简单得多。
witness 是所有东西的亲笔签名:还包括 tx_hash、长度和 witness 值、input_group中其他定位的 witness的长度和数值。当 witness 仍未分解时,如何亲笔签名 witness?ckb lock 的方案是设置所有 0 的亲笔签名展开亲笔签名,然后覆盖面积witness。因为亲笔签名消息的长度不能是 65 个字符,所以我们首先对要亲笔签名的内容展开 blake2b-hash,然后对 hash 展开亲笔签名。
明确的亲笔签名过程和关于如何决定有所不同脚本组的亲眼的誓约可参照:如何对交易亲笔签名 url.cn/5yfunBR样式和交易酬劳通过以上过程,我们获得了一个原始的交易结构。此时,如果必须拒绝接受低于费用的交易,我们必须对现有的交易做到一些重返测试和改动。
如何估计交易酬劳?交易酬劳是序列化交易(molecule)的大小和继续执行的指令的消耗的总和。配置文件的大小单位是 1,000 shannons / KB(千字节)。(Shannon 是 1/100,000,000 CKByte)然而,矿工可以改动这个配置文件单元。
如果必须查阅动态事务费用估算,可以用于 hestimate_fee_rate 通过 RPC 展开查阅。如果必须花费低于的费用,可以大大地调整 input capacity 和 output capacity之间的差异,然后用于二分查询方法新的分解交易,直到失望为止。
本文关键词:kaiyun体育(中国)官方网站,开云·kaiyun体育(中国)官方网站-sports
本文来源:kaiyun体育(中国)官方网站-www.yyihh.com
- 2024-10-08kaiyun体育(中国)官方网站:我在北京等你李易峰氧气罩吻是什么?最新预告是什么?
- 2024-10-08kaiyun体育(中国)官方网站|女子分手主动归还70万学区房遭男友拒绝
- 2024-10-08kaiyun体育(中国)官方网站_党员志愿者送技术到田间助力家庭农场发展_图片新闻
- 2024-10-08我国办理建筑许可效率全球排名提升51位_解读-开云·kaiyun体育(中国)官方网站-sports
- 2024-10-08【开云·kaiyun体育(中国)官方网站-sports】英格拉姆节攻防的表现让人满意,5次犯规瑕不掩
- 2024-10-08汤神无视防卫单节轰10分 对飚乐福反抗骑士反扑|kaiyun体育(中国)官方网站
- 2024-10-08【kaiyun体育(中国)官方网站】梅西带伤出战实锤!热身不停摸大腿为巴萨豁出命
- 2024-10-08报复阿扎尔的签约?切尔西欲在夏天支付1.8亿欧摧毁皇马转会计划“开云·kaiyun体育(中国)官方网
- 2024-10-08kaiyun体育(中国)官方网站_原创感谢曼联!卢卡库本赛季进球数与AC米兰全队持平!二弟坑了大哥
- 2024-10-08开云·kaiyun体育(中国)官方网站-sports:小大人,崛起中的消费新势力——2018金投赏极
- 2024-10-08“品效共振,致胜数字经济”有米科技移动营销思享会在京盛大举行_开云·kaiyun体育(中国)官方网站
- 2024-10-07杨颖新剧即将上映,网友:演技赶超周一围了,厉害了baby:开云·kaiyun体育(中国)官方网站-s
- 2024-10-07‘kaiyun体育(中国)官方网站’进博会期间发布的《2020年工业发展报告》显示——工业化仍是成功
- 2024-10-07太神奇了?臂展2米39飙射三分,高效菜鸟这么了?“kaiyun体育(中国)官方网站”
- 2024-10-07‘kaiyun体育(中国)官方网站’原创中超弃将发威!独造3球打爆大巴黎送走他的这支豪门看走眼
- 2024-10-07原创来了!C罗对擅自离场事件做出回应,萨里不用他似乎也没错-开云·kaiyun体育(中国)官方网站-
- 产品中心标题一
用于生产保险粉,磺胺二甲基嘧啶安乃近,己内酰胺等以及氯仿,苯丙砜和苯甲醛的净化。照相工业用作定影剂的配料。香料工业用于生产香草醛。用作酿造工业防腐剂,橡胶凝固剂和
- 产品中心标题二
用于生产保险粉,磺胺二甲基嘧啶安乃近,己内酰胺等以及氯仿,苯丙砜和苯甲醛的净化。照相工业用作定影剂的配料。香料工业用于生产香草醛。用作酿造工业防腐剂,橡胶凝固剂和
- 产品中心标题九
岗亭,英文名字为Watch House,字面理解就是岗哨工作的小房子。在车场管理中,岗亭常常也称之为收费亭,是停车场管理人员收取停车费的工作场所,除此以外还可用作小区保安门卫值
- 产品中心标题八
岗亭,英文名字为Watch House,字面理解就是岗哨工作的小房子。在车场管理中,岗亭常常也称之为收费亭,是停车场管理人员收取停车费的工作场所,除此以外还可用作小区保安门卫值
- 0kaiyun体育(中国)官方网站:我在北京等你李易峰氧气罩吻是什么?最新预告是什么?
- 1kaiyun体育(中国)官方网站|女子分手主动归还70万学区房遭男友拒绝
- 2kaiyun体育(中国)官方网站_党员志愿者送技术到田间助力家庭农场发展_图片新闻
- 3我国办理建筑许可效率全球排名提升51位_解读-开云·kaiyun体育(中国)官方网站-sports
- 4【开云·kaiyun体育(中国)官方网站-sports】英格拉姆节攻防的表现让人满意,5次犯规瑕不掩
- 5汤神无视防卫单节轰10分 对飚乐福反抗骑士反扑|kaiyun体育(中国)官方网站
- 6【kaiyun体育(中国)官方网站】梅西带伤出战实锤!热身不停摸大腿为巴萨豁出命
- 7报复阿扎尔的签约?切尔西欲在夏天支付1.8亿欧摧毁皇马转会计划“开云·kaiyun体育(中国)官方网
- 8kaiyun体育(中国)官方网站_原创感谢曼联!卢卡库本赛季进球数与AC米兰全队持平!二弟坑了大哥
- 9开云·kaiyun体育(中国)官方网站-sports:小大人,崛起中的消费新势力——2018金投赏极
- 0‘开云·kaiyun体育(中国)官方网站-sports’米兰1-0客胜维罗纳,皮亚特克制胜,雷比奇首
- 1kaiyun体育(中国)官方网站:《大江大河》姐姐为了弟弟放弃上大学,带给你什么思考
- 2“开云·kaiyun体育(中国)官方网站-sports”童年阴影造就年少自律,他与梅西并称绝代双骄|
- 3‘kaiyun体育(中国)官方网站’众引传播携手多美滋公益造节 中国宝宝抵抗力日321GO
- 4斯帕莱蒂痛批国米:专注度太差 输球是咎由自取“开云·kaiyun体育(中国)官方网站-sports”
- 5开云·kaiyun体育(中国)官方网站-sports|三节战报:哈登25+10引领追分潮 火箭85-
- 6kaiyun体育(中国)官方网站:“女首富”周群飞分享创业故事 为湖南投资环境“拉票”
- 7开云·kaiyun体育(中国)官方网站-sports-罗桐社区老年电大举行“迎新”联欢活动
- 8李克强离京赴圣彼得堡访问俄罗斯并举行中俄总理第二十四次定期会晤_总理|kaiyun体育(中国)官方网
- 9原创球王6夺FIFA最佳!梅西超越C罗成历史第一人,南美球员共14次得奖:开云·kaiyun体育(中