繁體中文
  • 繁体
    简体中文
  • 繁体
    繁體中文

青苹果

守护您的资产安全

添加客服微信号向客服提问咨询

EOS:区块链交易信息详解(上)

2018-12-18 06:36:56 148 引领区块链+电商发展,青苹果带来无限可能

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

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

 

查看EOS交易的工具

推荐用如下几个EOS浏览器来查看:

EOS Park

https://eospark.com

青苹果链 EOS:交易结构详解(上)

 

Bloks

https://bloks.io/
由EOS CafeBlock和EOS HK一起创建。现在也提供了亚洲版:
https://bloks.asia/ 

青苹果链 EOS:交易结构详解(上)

 

EOSFlare

https://eosflare.io

青苹果链 EOS:交易结构详解(上)

 

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

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

 

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

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

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

 

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

 

我们以id为0936c0a15c89caa6d1ac1c7551f9cc9400e06b90656175ea8ec2360a878b2550的这一笔交易为例,介绍一下一笔交易之中所常见的一些信息代表了什么意思。

 

EOSFlare的链接

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

青苹果链 EOS:交易结构详解(上)

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

一笔交易的交易ID

在这里,就是

0936c0a15c89caa6d1ac1c7551f9cc9400e06b90656175ea8ec2360a878b2550

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

例如,下图是在eospark所查询的结果:
青苹果链 EOS:交易结构详解(上)

 

交易的状态

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

青苹果链 EOS:交易结构详解(上)

交易时间

青苹果链 EOS:交易结构详解(上)

分为区块时间,与过期时间。区块时间是指,交易所处的区块 31027365 的时间,而过期时间是在该笔交易发起之后,如果由于网络等原因导致交易被执行的时候超过了这一时间,则交易就会成为无效状态,无法计入到区块链上。

 

交易的参考区块

青苹果链 EOS:交易结构详解(上)

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

在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浏览器, 其中列出了一笔交易所消耗的资源详情。

青苹果链 EOS:交易结构详解(上)

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

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

在EOSFlare之中的显示是:

青苹果链 EOS:交易结构详解(上)

 

交易是否为延时交易

青苹果链 EOS:交易结构详解(上)

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

 

交易头部的原始信息

来自EOSPark所展示的原始信息

青苹果链 EOS:交易结构详解(上)

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

交易之中的Action的细节

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

青苹果链 EOS:交易结构详解(上)