树图区块链基本结构

1.每个区块只有一条父边指向父区块;

2.每个区块可能有多条关联边指向“happen-before” 关系的区块;

image-20210106203404464

确定区块链的主链

1.从创世区块开始;

2.迭代深入选择最重的分支作为主链。

image-20210106203724307

比如这个区块链中,子树A所在分支即为区块链主链。

创建一个新的区块到区块链中

1.选择主链中最新的区块作为父区块;

2.对所有还未引用的区块(没有任何的入边)创建引用边

image-20210106204741965

利用局部顺序确定总体顺序

先是将每个区块划分到epoch中:

1.每一个主链上的块构成一个epoch;

2.每个非主链的块属于第一个在该块之后生成的主链块的epoch;

例如:

image-20210106205445962

确定总体顺序:

1.对区块链划分epoch,区块所在epoch越早,整体顺序越靠前;

2.对每个epoch内部的区块排序,根据“happen-before” ,即引用边的关系;

image-20210106210507786

确定所有交易顺序:

1.所有区块顺序确定后即可排出所有交易顺序;

2.去除所有交易中的冲突交易和重复交易;

image-20210106210721963