-
CKB 的交易结构
- 时间:2023-05-27 来源:大发BET 人气:
本文摘要:在本篇文章中,让我们和 CKB 开发者 Ian 一起了解探究 CKB 基本的数据结构——交易。这篇文章分为两个部分。第一个部分包括了核心的交易特征,而第二部分讲解一些拓展内容。在编写本文时,对应的 CKB 版本是 v0.25.0,在未来的版本中交易结构还有可能有所变动。 您可以页面读者原文,查阅近期版本。右图是关于交易结构的概览。 大同小异逐字逐句的说明各个名词,我将不会讲解 CKB 账户需要获取的各种类似结构,以及这些名词在其中的明确意思。
在本篇文章中,让我们和 CKB 开发者 Ian 一起了解探究 CKB 基本的数据结构——交易。这篇文章分为两个部分。第一个部分包括了核心的交易特征,而第二部分讲解一些拓展内容。在编写本文时,对应的 CKB 版本是 v0.25.0,在未来的版本中交易结构还有可能有所变动。
您可以页面读者原文,查阅近期版本。右图是关于交易结构的概览。
大同小异逐字逐句的说明各个名词,我将不会讲解 CKB 账户需要获取的各种类似结构,以及这些名词在其中的明确意思。Part I:核心特征价值储存CKB 使用的是 UTXO 模型。一笔交易封存了一些在先前交易下创立的输入(作为输出),并且创立一些新的输入,我们在 CKB 中将此交易输入称作一个 Cell。因此在这里的 Cell 和交易输入是可以更换的。
右图表明了在此层中不会经常出现的专有名词。此交易封存了 inputs 中的 Cell,同时创立了在 outputs 中的 Cell。CKB 主链将交易包成块。
我们可以在区块中利用从零(也就是创世纪区块)开始递减的非负整数(编号),作为区块编号来关联链上的区块。在区块中的交易也是按照顺序排列的。
我们可以说道编号较小的区块是较早于(old)的区块,如果一个交易在较早于的区块上,或者它所在的区块的方位早于于其它区块,那么它也不会是较为早于的交易。在下面的示例中,区块 i 比区块 i+1 早于。交易 tx1 要比 tx2 早于,也比 tx3 早于。在所有先前的交易中,一个能用(Live)的 Cell 不会以输入而非输出的形式经常出现。
一个被封存(Dead)的 Cell 代表它是以输出的形式在其它较早于的交易中被用于过。一个交易不能以能用的 Cell 作为输出。我们可以从除了 witnesses 之外的所有交易字段计算出来交易的哈希。关于如何计算出来交易哈希的更好信息,可以参看序言 A。
交易哈希是独一无二的。因为一个 Cell 总是被一个交易创立出来,而每个新的 Cell 在交易输入的数组中都有他自己的方位,所以我们可以通过交易哈希以及输入索引去指向一个 Cell。OutPoint 结构是一种提到类型。
交易在输出时会用于 OutPoint 来指向先前被创立的 Cell,而非映射其中。Cell 将 CKB 代币存储在字段 capacity 中。一个交易不需要凭空铸 capacity,所以交易终将合乎以下规则:sum(cell's capacity for each cell in inputs)≥ sum(cell's capacity for each cell in outputs)在输出中每个 Cell 容量的总和要小于相等在输入中每个 Cell 容量的总和。矿工可以缴纳这两者之间的价差当作手续费。
fee = sum(cell's capacity for each cell in inputs)- sum(cell's capacity for each cell in outputs)如果你熟知比特币,那么就不会找到在价值储存层都是相近的,但是比特币缺少瞄准脚本来维护交易输入的所有权。CKB 正好有这个特征,但是在我们探究这个话题之前,让我们再行来谈谈 Cell Data 和 Code Locating 层吧,这是任何 CKB 中脚本特征的依据。Cell Data除了需要存储价值通证以外,CKB Cell 还能储存给定数据。
字段 outputs_data 是输入的分段数组。在 outputs 中第 i 个 Cell 的数据对应的是 outputs_data 中的第 i 项。
Cell 中的 capacity 不只代表通证的数量,也代表需要存储数据的容许。这也是它如此命名的原因,因为它代表 Cell 的存储容量。
capacity 不仅能用作存储数据,它还必须涵括 Cell 中的所有字段,还包括 data、 lock、type 以及 capacity 本身。计算出来闲置容量的规范请求参照:https://github.com/nervosnetwork/ckb/wiki/Occupied-Capacity交易势必会创立一个闲置容量大于(输出) Cell 容量的输入 Cell。
occupied(cell) ≤ cell's capacity代码定位Cell 中有两个字段的类型是 Script。CKB-VM 不会运营所有输出 Cell 中的 lock 脚本,还不会运营所有输出和输入 Cell 中的 type 脚本。我们区分了代码和脚本这两种术语:· 脚本具备脚本结构· 代码是 RISC-V (可运营的)二进制· 一个代码 Cell 是其数据为代码的 Cell脚本并没必要包括代码。
想到下面的脚本结构。现在我们可以忽视哈希类型的 Type 以及 args 字段。
本文关键词:CKB,的,交易,结构,在,本篇,文章,中,让,我们,大发BET,和
本文来源:大发BET-www.parisestmontreuil.com
相关文章
-
潘多拉(Pandora)宣布为Apple Watch用户推出全新的“独立”应用程序
据外媒报导,Apple Watch公布了新版Pandora应用于,用于此新的应用程序,用户仍然必须iPhone、iPad或任何智能手机的协助就能在手表上运营,可以在旅途中喜爱...2023-05-27 04.05.01 -
作为无人机行业的顶级玩家之一,亿航智能12月12日月登岸纳斯达克。相对于盘据在珠三角的另一家无人机巨无霸大疆来说,亿航显著对上市要热衷得多。这...2023-05-27 04.05.01
-
Japanese entrepreneur Takahito Iguchi wants people to see the world through other people’s eyes. But as a less ambitious jumping off point, he’ll kick it off with a world that looks like a Japanese...2023-05-25 04.05.01
-
“我的身体沈重如潜水钟,内心却渴求像蝴蝶般权利飞翔。”这句来自电影《潜水钟与蝴蝶》的台词,也是前《ELLE》杂志主编、记者让·多米尼克的现实经...2023-05-23 04.05.01
-
在南非,有10.7%的成年人享有某种加密货币,尼日利亚和喀麦隆持有人加密货币的成年人占到比分别是7.8%和7.3%,加密货币正在第三世界国家引发热潮,早已...2023-05-23 04.05.01