在 CKB 上如何用最简单的方法构造验证交易-首页

企业新闻 | 2021-05-02

你能告诉我如何在CKB建立检查交易吗?今天,CKB开发者luochao来,用最难得一见的最简单的方法,跟CKB谈谈如何建立检查交易,慢慢找吧。(大卫亚设,北方执行部队)1。Cell Collet在CKB,所有交易必须至少包含一个input和一个output。为了进行结构交易,首先要定位Inflet,这被称为“Selcollet”。

CKB告诉我们,它与UTXO型号非常相似。也就是说,没有物理内存,地址的当前状态是未知的。

火狐体育直播

构成当前状态的信息可能会集中在链中的其他cell上。CKB的数据模型可以通过参考Cell model来理解。

可以通过两种方式扩展cellcollect。a .这是一种非常简单的方法,用于说明为ckb indexer服务标识登录地址的信息(例如,live_cell数、事务数、总容量)。不需要其他操作员。由于基于CKB节点的indexer函数,此方法仅限于基本使用。

此外,该方法不反对查看更详细的信息(例如,找不到合同cell),还会消耗CKB节点本身的资源。但是却充满了这些缺点。

让我们从这个方法开始,更好地解释单位收集是如何工作的。(大卫亚设,Northern Exposure(美国电视),失败)从CKB节点的配置文件中重新启动此功能。要关闭它,请访问mckb . toml[RPC].# list of API modules :[‘net’,‘pool’,‘pool’]更改配置文件以手动更改配置文件,并请求重新启动ckb节点Indexer’,‘experiment’]modulesmodules=[‘net’,‘pool’,‘miner’,‘chain’,‘stats’,‘subscription’,‘experimes’]null值从chain tip(当前块)开始索引,0值从genesis块开始索引。现在,等待新构建的index服务和用于index服务的RPC模块检查该地址的live_cell/transaction/capacity值。

如果仍然需要index服务,可以通过RPC取消监视列表,重新启动服务,然后从ckb.toml的数组中删除“Indexer”。b .创建自己的Cell收集服务,创建自己的Cell收集服务有什么好处?我们都表示,交易还包括创建和保存指定数量的cell。

这是交易最简单的定义。由于Cell的灵活性,所有有意义的数据都可以存储在cell的数据字段中,所有类型的合同都可以用Type脚本响应。因此,每个用户或使用案例对cell收集的市场要求可能不同。本质上有很多问题需要探索,每个问题可能会因使用案例而异。

CELL收集的顺序是什么?先进先出、大小顺序、最佳模特等可以用于哪些cell?特定的幸运数字或给定的cell data或type需要用类似的方式处理吗?自由选择Cell后需要过滤器/确认吗?CKB中包含的index服务不能很好地满足这些市场要求,并且不能灵活地与未来可能减少的其他市场要求兼容。最有效的方法是自己构建cell收集功能。我该怎么办?建立新区块链后,区块的输入储存格必须集中在live cell中移除,区块的输入必须增加到live cell中。由于PoW区块链中经常会再次出现短端,因此,当末端之前收购的区块违宪时,网台新闻网必须回滚该区块的输入和输出进行更改。

火狐体育

内存设计有助于提高实时速度(如内存链中的最后n个块),并删除该块中使用的live cell。救助交易现在可以开始构建交易了。

在开始之前,要了解witness建设、交易报酬计算和背景科学知识,包括一些提示。(莎士比亚)。 结构交易的所有类型都基于molecule(序列化系统)扩展序列化。

核心结构为table raw transaction { version : uint 32,cell _ deps3360 celldepvec,Input : cellinputvec,outputs :Index结构为: struct outpoint { tx _ hash : byte 32,index : uint 32,} struct cell Dep { out _ point 3360 out point(dep_group功能人员组可以使用多个cell的代码)可以用0响应代码。也就是说,您可以对celldata以1回答dep group。也就是说,此cell的data是重定向字段,因此需要检查N个cell。

例如,您可以查看配置文件中的lock cell,并在dep group功能中将secp256k1库拆分为两个cell,区块大小受到限制,如果数据太大,不能放在一个块中,则可以存储在单独的cell中,以便在操作时一起读取。Outputs和outputs_data是一对一列表。Output只有容量和type/lock脚本。

输入数据放置在与索引对应的outputs_data中。Header_dep是可以通过CKB脚本采访的过去块头散列列表。

火狐体育

交易的非常简单的结构已经说明,现在让我们来探索更简单的结构:脚本表脚本{ code _ hash : byte 32,hash _ type : byte,args : bytes,hash_type有两个值。“data”对应0,code_hash对应lock cell的data hash“type”对应1,code_hash代表le,CKB配置文件lock按type编制索引。对合同开发者来说,这意味着什么?你可以看到的第0个块的第二个输入type script是TypeID script。

也就是说,如果您发布的库也初始化了typeid script,则可以将唯一id(code hash)分解为索引数据,继续修改库,提及图书馆的合同因图书馆的变更而违宪。这是修订链中库的解决方案。现在,所有RawTransacion字段都已设置为可见witness字段。

该字段旨在防止交易伪造其他交易,还可以包含某些合同中可能需要的临时变量。table witness args { lock 3360 bytes opt,//lock args input _ Type 3360 bytes opt,//type args for IP //Type args for适当的缺点是分解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之间的差异,然后用二分查询方法使用新的分割交易,直到失望为止。_火狐体育直播。

本文来源:首页-www.sierrapol.com