关于区块链:Aptos概念交易和状态

9次阅读

共计 1627 个字符,预计需要花费 5 分钟才能阅读完成。

Aptos 区块链中,最根本的两个概念,就是 交易(transaction) 状态(state)

  • 交易:交易是指在 Aptos 链上,两个账户之间的数据(比方 Aptos 币,或者 NFT 都是数据)替换
  • 状态:这里指 Aptos 链上账户的状态,比方记账簿(ledger)的状态

    ! 执行一笔交易,就会扭转 Aptos 链上记账簿的状态

记账簿状态

所谓 Aptos 链上记账簿状态,也称为全局状态,是指链上所有账户的状态。任意一个验证节点,只有在晓得全局状态最新版本的状况下,能力执行一笔交易。
任何人都能够提交一笔交易,来扭转链上的记账簿状态。在该交易执行期间,会产生交易输入;交易输入可能会蕴含多项批改记账簿状态的操作(也可能不含)。这些操作被称为写入汇合(write sets):产生事件的向量(a vector of resulting events),被耗费的 gas 费,以及执行交易后的状态(status)。

版本化数据库

每个状态总是有一个相干的版本号,用 64 位无符号整数,记录零碎中交易被执行的次数。这个版本化的数据库,让验证节点能够做到:

  • 总是基于记账簿状态的最终版本,来执行一笔交易
  • 在客户端查问的时候,总是能返回以后或历史版本

    交易变更状态

    后面的图,展现了交易 Ti 是如何把链上状态,从 Si-1,变成 Si 的:

  • 有两个账户,A 和 B:别离代表 Alice 和 Bob 的账户
  • Si-1:示意链上的第 i - 1 个状态,在此状态中,Alice 的账户有 100 个 APT(Aptos coins),Bob 的账户中有 52 个 APT
  • Ti:链上执行的第 i 笔交易,在本示例中,Alice 筹备给 Bob 10 APT
  • Apply():这是一个确定性函数,保障在特定的初始状态和指定交易下,肯定会返回同样的最终状态。如果以后链上状态是 Si-1,那么执行过 Ti 交易之后,链上状态就肯定会变为 Si。Aptos 链应用 Move 语言 来实现确定性函数 Apply()
  • Si:示意链上的第 i 个状态,当交易 Ti 被执行结束后,状态 Si 就生成了(也就是 Apply(Si-1, Ti) 函数的输入后果)。这会让 Alice 的账户缩小 10 APT,变为 100 APT,而 Bob 的账户减少 10 APT,成为 62 APT。最新的 Si 状态会体现出更新过的账户余额

    交易

    客户端提交一笔交易到链上之后,如果该交易被胜利执行,记账簿状态就会被更新。
    一笔签订过的交易,应该蕴含下列信息:

  • 签名:发送人通过一个数字签名,示意他们签订了交易
  • 发送人地址:发送人的账户地址
  • 发送人公钥:公钥和私钥组成一个秘钥对,用于签订交易,其中公钥将附带在交易信息中,用于让验证节点实现身份验证
  • 程序:程序包含:

    • 一个 Move 模块和函数名,或者一段 Move 字节码示意的脚本
    • 一组可选的输出信息。对于端对端的交易,这些输出蕴含接管人的地址 和 须要发送的 货币数量
  • Gas 费价格(单位价格):这是发送人打算领取的每单位 gas 费。Gas 费用于领取交易中须要的消耗的计算和存储资源。一个 gas 单位,是形象的度量规范,并不对应实体世界的价值。
  • 最大 Gas 费:发送人筹备领取 gas 费的最大下限
  • 序列号:这是一个无符号整数,必须等于发送人执行交易的次数
  • 过期工夫:示意交易生效的工夫点,是个工夫戳类型的数据

    证实

    Aptos 链应用 证实 (proof)来确认链上数据的真实性和正确性。
    所有的链上数据,都存在一个单版本的分布式数据库中。每个验证器和全节点,都负责把共识和执行交易的后果存储到数据库中。
    整个区块链能够看做一颗不停增长的默克尔树,树上的每个叶子节点,都代表了一笔执行过的交易。
    所有的链上操作和账户状态,都能够通过加密的形式进行验证。这些加密证实,保障了:

  • 所有验证节点对状态达成统一
  • 客户端不须要信赖它获取数据的起源。例如,如果一个客户端从某个账户查问最初 n 笔交易,加密证实能帮它确信:返回的后果集没有被增加、疏忽或者批改任何信息。同样,客户端也能够查问账户的状态,查问一笔特定的交易是否执行结束等等,这些信息都是牢靠的。

原文链接:《Aptos 概念——交易和状态》

正文完
 0