-
【ku游官网】CKB 交易验证初探
- 时间:2024-02-17 来源:ku游官网 人气:
本文摘要:我们都告诉 Nervos CKB 是一个以状态为中心的架构,并且用交易回应状态变更和迁入。而且 Nervos CKB 获取基于 Cell Model 和 CKB VM 的编程模型。在这个模型中,去中心化的应用逻辑被分为两个部分:状态分解和状态检验。 状态分解逻辑在客户端运营,新的状态被包成交易,检验通过后广播到整个网络。
我们都告诉 Nervos CKB 是一个以状态为中心的架构,并且用交易回应状态变更和迁入。而且 Nervos CKB 获取基于 Cell Model 和 CKB VM 的编程模型。在这个模型中,去中心化的应用逻辑被分为两个部分:状态分解和状态检验。
状态分解逻辑在客户端运营,新的状态被包成交易,检验通过后广播到整个网络。非常简单来说 CKB 的编程模型分为如下三部分:· 状态分解:链下· 状态检验:CKB VM· 状态存储:Cell Model之前 CKB 开发者 luochao 给大家讲解了如何用最少见最简单的方法在 CKB 上建构交易——也就是状态分解。
在本篇文章中,CKB 开发者 DingWei Zhang 和 luochao 将之后分别为大家介绍状态检验的研发细节:「CKB 交易检验的生命周期」和「CKB VM 检验规则」。CKB 交易检验生命周期RPC首先,发送到方会结构一笔交易,通过 RPC 递交。
交易由递交到的 outputs_validator (从 0.27.0 版本引进)展开检验。配置文件的检验逻辑还包括检查各种东西:transaction.outputs.all{ |output|let script = output.script(script.code_hash == secp256k1_blake160_sighash_allscript.hash_type == "type"script.args.size == 20) ||(script.code_hash == secp256k1_blake160_multisig_allscript.hash_type == "type"(script.args.size == 20 || (script.args.size == 28script.args[20..28].is_valid_since_format))}transaction.outputs.all{ |output|let script = output.typescript.is_null || script.code_hash == daoscript.hash_type == "type"|| (script.has_lock_period()since.is_absolute())}此检验目的避免格式不准确的交易,例如在 Common Gotchas 中提及的交易。
https://github.com/nervosnetwork/ckb/wiki/Common-Gotchas#nervos-dao此外,可以将其配备为 passthrough 以跳过此检验。交易递交到本地节点后,节点还不会输入交易 id,您可以用于该 id 追踪交易的状态。检验在广播交易并转入 mempool 之前,交易将在本地检验和继续执行。步骤 1——Resolve本质上,交易 input 只是指针,如下右图:struct OutPoint {tx_hash:Byte32,index: Uint32,}我们在交易继续执行之前通过指针搜集提到的数据,这个过程称作「解析交易」。
我们还必须检查这个交易的所有输出都是有效地的(没反复或双花)。步骤 2——检验检验步骤必须检查如下要素:1、版本(目前必需是 0)2、serialized_size 必需大于如下容许:pub fn serialized_size(self) - usize {// the offset in TransactionVec header is u32self.as_slice().len() + molecule::NUMBER_SIZE// molecule::NUMBER_SIZE = size_of::u32() 4}3、inputs 不是机的inputs().is_empty() || outputs().is_empty()4、inputs 是成熟期的对于每个 input 和 dep,如果提到的 output 交易是 cellbase,那么它必需最少经过 4 个 epoch 证实。
5、capacityinput capacity 的和必需大于或相等 output capacity6、duplicate_depsdeps 无法反复7、outputs_data_verifier「output data」字段的数量必需相等 outputs 的数量8、sincesince 值必需遵循 RFC:Transaction valid sincehttps://github.com/nervosnetwork/rfcs/blob/master/rfcs/0017-tx-valid-since/0017-tx-valid-since.mdCKB VM 将继续执行交易脚本,并输入所消耗的 cycles 个数。向网络广播如果检验顺利,当前节点将交易(具有 cycles 值)广播给它的所有对等节点(它所相连的节点)。在检验告终的情况下,将仍然广播交易。
交易流经各个「原始节点」,这些节点反复前面步骤中叙述的检验过程,并检查 cycle 值否与检验交易时用于的实际 cycle 相匹配。
本文关键词:【,游官,网,】,CKB,交易,验证,初探,ku游官网,我们,都
本文来源:ku游官网-www.tjysygb.com
相关文章
-
The FBI paid more than $1.4m to hackers who developed a way to gain access to the iPhone used by one of the San Bernardino attackers, leading the law enforcement agency to drop litigation against Apple...2024-02-17 12.02.02
-
很多人对于新买的锂电池难以捉摸,笔者看见有资深玩家总结了关于锂电池的用于方法,和大家共享下,期望能带给协助。 1、新买的锂电池如何用?是再...2024-02-16 12.02.01
-
虽然大多数生物牵涉到3D打印机的医学研究项目必须极大的经济支出,但是日前来自德州的一个学生团队证明,即使是低成本的桌面3D打印机技术也能对医疗...2024-02-16 12.02.01
-
钛合金仪器旋压技术 旋压成形技术生产的薄壁转弯体壳体构件解决问题了在车削加工时不存在的刚性较低、颤抖大、加工精度低等技术问题或根本无法加工...2024-02-16 12.02.01
-
雄安建设5G创新示范网中国电信、高通携手推动商用|ku游官网
近日,雄安国家骨干网暨5G创意样板网启动大会在雄县举办。期间,中国电信宣告5G创意样板网月启动建设,并公布了《中国电信5G创意样板网白皮书》,力...2024-02-16 12.02.01