00:00
大家好,这里是深蓝说区块。前面我们已经介绍了区块链的一些基础概念,接下来我们开始进入技术细节。首先,我们要介绍的是交易的生命周期。前面我们已经讲到,交易是区块链里面非常核心的一个数据结构,通过交易才能够把我们想要进行的一个操作和数据,然后写入到区块链中。那交易是怎么样进行一个广播,然后最后怎么样打包,然后又怎么样写入到区块中了呢?我们可以看下面这样一个示例图。假如说用户A想进行一笔转账,那么他就可以用自己的钱包或者是他的其他的客户端发起一笔转账交易,当然发起这笔交易之后,一定是要用自己的私钥进行签名,因为我们前面一直在强调交易里面一定要包含签名才是一个合法的一个交易。好,我们把签名的交易。
01:00
先广播到其中的一个节点。那么这个节点他在收到一个广播的交易之后,都是要先验证这个交易是否合法。验证合法之后,才会将这笔交易写入到本地的交易池中。交易词是一种特殊的一个内存的一个数据结构,这里面包含的是所有的收到的未打包的一些交易的列表。然后同时因为我们这是一个P的一个网络结构,所以他同时也会把这笔交易进一步的进行广播,那么我们可以看到它一方面是广播给了这个节点,另外一方面也会播到用户B的这个节点上,那么这里用户B节点在收到这笔交易后也会进行验证,验证合法,那么他也会放入到他的交易中,这边这个记账节点也是同样的道理,也会验证合法后,将这笔交易放到他的交易池中。那从用户B的角度来看,他就会看到A给B的这笔转账交易,已经能够看到这笔交易了,但同时这笔交易的状态是未打包。
02:10
所以说用户B现在是知道A有这么一个行为,但是这个行为还没有得到网络的一个确认。好,进一步的过了一段时间,呃,轮到这个记账节点出块的时候,那么他就要把他这里面他自己的交易池里面的未打包的交易啊,打包到一个区块里面去,但是具体打包多少笔交易,或者说里面具体打包哪些交易,是由这个记账节点自己决定的,如果只要条件允许的情况下,他可以把所有的未打包交易都打包到这个区块中,当然他也可以说我只打包其中的一笔交易,或者说我只打包其中的某几笔交易都可以的,这是他自己的一个自由的权利。他打包了这个交易之后,那么最终形成了一个新的区块,那么新的区块的结构我们前面已经介绍到了,这里面就包含了大量的交易和一个区块头。
03:05
这个新的区块打包完成之后,那么接下来再进一步的进行广播,我们看因为前面说了还是他P的一个结构,所以我们的广播呢,也是广播给了其他的节点。那么广播这些,呃,区块在这些节点收到之后,他们也是需要去验证区块的这个信息,验证这个区块的是区块头是否合法,验证这个区块里面的所有交易是否合法,如果都确认没有问题,整个验证通过,那么他就可以更新自己本地的一个账本和本地的交易词,同样的用户币这边也是一样。会把本地的账本和交易词都进行一个更新,那么从用户B的角度来看,就可以看到用户A的这笔转账已经被确认了。已经被打包在这个区块中。从用户A的角度来看,因为用户A是连接的是这么一个全节点,所以说他也能够通过这个全节点发现自己的交易,自己的这笔转账交易已经被正确的打包。
04:11
好,这就是完整的区块链中交易的一个生命周期的一个过程。
我来说两句