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

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

CKB 交易验证初探-亚博App手机版

发布时间:2021-06-13    来源:亚博App手机版48868

本文摘要:我们都告诉 Nervos CKB 是一个以状态为中心的架构,并且用交易回应状态变更和迁入。

我们都告诉 Nervos CKB 是一个以状态为中心的架构,并且用交易回应状态变更和迁入。而且 Nervos CKB 获取基于 Cell Model 和 CKB VM 的编程模型。在这个模型中,去中心化的应用逻辑被分为两个部分:状态分解和状态检验。

亚博App手机版

亚博App手机版

状态分解逻辑在客户端运营,新的状态被包成交易,检验通过后广播到整个网络。非常简单来说 CKB 的编程模型分为如下三部分:· 状态分解:链下· 状态检验:CKB VM· 状态存储:Cell Model之前 CKB 开发者 luochao 给大家讲解了如何用最少见最简单的方法在 CKB 上建构交易——也就是状态分解。在本篇文章中,CKB 开发者 DingWei Zhang 和 luochao 将之后分别为大家介绍状态检验的研发细节:「CKB 交易检验的生命周期」和「CKB VM 检验规则」。

亚博APP

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 中提及的交易。

亚博APP

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 相匹配。


本文关键词:亚博APP,亚博App下载,亚博App手机版

本文来源:亚博APP-www.authenti-cite.com

分享到:
亚博APP|【活动资讯】大广节深化赛制改革——拟更名为上海国际大学生广告创意节 环保部发布1号令 对木材加工业实施轮流停产等举措【亚博App手机版】
热门文章
我国服装业国际品牌战略研究_亚博APP
亚博App手机版:高清视频监控系统选择网络交换机的技巧
亚博App手机版-倍加福积极开拓“轨道交通”应用新的领域
脸书是如何改变用户消费媒体新闻的【亚博APP】
英足总对瓜迪奥拉提出口头警告 并未对此做出处罚
亚博App手机版_S9小组赛:上中野打出窒息节奏 iG晋级八强
河南省高职院校体育师资队伍现状及发展战略研究
激光粒度仪是如何测试粒度分布的?【亚博App下载】
【亚博App手机版】亚马逊Alexa智能头盔是SAFE
亚博App手机版-劝你善良!狐城新援老底被揭 炫富引冲突惹官司
【亚博App下载】阿莱格里谈迪巴拉:足球是一项团队运动
英超俱乐部主席联合抗议!VAR或被迫停止使用:亚博APP
lol转区系统可以免费转区吗?lol每日转区上限是多少?【亚博App下载】
亚博App下载|lol购物狂欢节活动地址 购物狂欢商品介绍
旅游景区何以成为电竞新机会?【亚博App手机版】
客户案例
×