第17章:EOS中交易,包含什么内容

可能是最靠谱不忽悠的区块链资讯平台

导读

交易是属于待确认状态,还是已经确认的状态(即不可逆转)。交易广播到区块链中之后,需要经过两轮的节点确认(大致最长时间为3分钟左右,336个区块),然后一笔交易才会成为不可逆的状态。

在EOS 区块链之中,交易与账户是密不可分的.之前我们已经对于账户创建,账户和密钥,账户权限等内容进行了介绍,今天,聊一聊EOS的交易结构是什么样子的。

这一篇文章中的内容,可能对你来说略微陌生一些,我们会一起看看在一笔转账交易的背后,在区块链中所记录的信息会是什么样子,会包含哪些部分。

查看EOS交易的工具

最早的时候,一个网站是eostracker,可以查看EOS的交易,网址是: http://eostracker.io/,算是最早的一批EOS浏览器之一了。

当时EOS还没有上线,工具及相应网站并不多,不过现在,你可以有更多的选择了。

如果感兴趣这个史前时期的网站是什么样子,今年三月的时候,我曾经写了一篇帖子,提供了 eostracker 的更多的细节: 想直观了解EOS长什么样? 这个网站不可错过

目前而言,推荐用如下几个EOS浏览器来查看:

EOS Park

https://eospark.com

Bloks

https://bloks.io/

由EOS CafeBlock和EOS HK一起创建。现在也提供了亚洲版:

https://bloks.asia/

EOSFlare

https://eosflare.io

交易(transaction)的结构,长什么样子

介绍了上面的工具之后,我们就可以学习如何用这些工具来查看一笔交易的结构之中包含什么内容了。

一笔交易,会包含两个主要部分:

交易的头部信息,包含了该交易的一些概况信息

交易的细节,包含了其中具体的动作的记录

由于篇幅所限,我们拆解为两个部分。今天这篇文章所提到的这些信息,主要来自于交易结构之中头部。

为了便于理解, 在这篇文章里面我们就不用原始格式的交易的信息,而是以在浏览器中经过解析之后的信息来表示,这部分是更多的非技术读者所经常遇见的。这篇文章中的概括,如果能够帮你理解这些分别代表着什么内容,就达到目的了。

在文章末尾,会附上原始的记录。看看在区块链上,这些信息是以什么样子来呈现的。不必深究,更常见的情况下,你是通过EOS浏览器来查看的解析之后的结构数据。

EOSFlare的链接

EOSFlare的信息表示,比较适合此处的表述,因此,这里主要用eosflare来介绍。

如上图所示,我们可以看到包含了如下的内容:

一笔交易的交易ID

在这里,就是

在任何一个EOS浏览器中输入这一串ID,即可以找到区块链上这一笔交易所相关的信息了。

例如,下图是在eospark所查询的结果:

交易的状态

交易是属于待确认状态,还是已经确认的状态(即不可逆转)。交易广播到区块链中之后,需要经过两轮的节点确认(大致最长时间为3分钟左右,336个区块),然后一笔交易才会成为不可逆的状态。

交易时间

交易的参考区块

你可能会好奇,这是代表了什么意思呢?实际上,这是代表了一个以往的区块。

在EOS的设计之中,采用了名为TaPoS(Transaction as Proof of Stake)的机制, 简单来说,就是每一笔交易的信息之中,都会包含了一个区块的信息记录,实际上,在交易结构之中的表述是ref_block_num和ref_block_prefix这两个字段。不过这两者只是表示方式不同而已,仍然指的是同一个区块。

这里的ref_block_num和ref_block_prefix并不一定是指的最近一个区块的区块头,而是指所引用的区块编号(数字),以及区块头的前缀(hash值的一部分).

ref_block_num(参考区块号,即此例中的28831), ref_block_prefix(参考区块的前缀)和expiration(过期时间)三者是用作TaPOS(Transaction as Proof of Stake, 交易作为权益证明)算法,是为了确保一笔交易在所引用的区块之后和交易过期日期之前能够发生.在steem跟bts中,也有相同的设计.

交易所消耗的资源状况

EOS Cafelock和EOS HK节点所创建的Bloks是一个很流行的EOS浏览器, 其中列出了一笔交易所消耗的资源详情。

可以看到,这一笔交易中,消耗了CPU: 1.839ms, NET: 192字节。另外,RAM的消耗也计算了出来。由于在交易的原始数据之中,并不会列出RAM的消耗情况,这里应该是Bloks所另外做的计算。至于RAM的消耗的计算机制,还需要请教Cafe的同学解释了。

(另外值得注意的一点是,此处Bloks所列出的NET的字节消耗量,跟EOSFlare和交易元数据之中所列出的数据有所差异,感兴趣的可以继续去探索。)

在EOSFlare之中的显示是:

交易是否为延时交易

由于EOSPark与EOSFlare之中,对于非延时的交易并没有相应的表示,所以此处用了来自Bloks的页面,其中列出来,该笔交易的延时时间为0,就是说,这是一笔即时的交易。

交易头部的原始信息

来自EOSPark所展示的原始信息

这里列出了交易的头部结构之中的相对应的信息结构。可以看出,我们前面所提到的在EOS浏览器中所展示的一些信息,绝大部分都是来自于这一原始记录。

后续: 交易之中的Action的细节

下一篇,我们继续解读余下的部分,并且介绍什么是内联交易(inline transaction)。

EOS42 开创去中心化的未来

EOS42的账号为: eos42freedom。

请为EOS42投票,支持我们继续不停开拓去中心化解决方案的未来。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181216B149NQ00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券