用户工具

站点工具


tech:continuous_ledger_close

持续总账关闭

持续总账关闭是为Radar网络选择的总账配时方案。基本上,只要存在未确定的有效交易,网络就一直试图关闭总账。这确保了一有可能我们就有新总账。如果关闭总账需要10秒,那么网络将每10秒关闭一个总账。

操作细节

如果网络是闲置的,将不会进行交易,总账保持10到30秒的开启时间。每个节点将形成基本提案(proposal),这将暗中引起总账关闭。 当一个交易被引进给一个闲置网络,节点会立刻开始关闭与交易相关的总账。这促使网络从闲置到活跃转变。

一旦节点检测到一致共识,它将处理一致交易集合(consensus transaction set)并发布一个验证请求(validation)。该验证将包括一致共识交易集合的哈希值,同时节点将把它作为最终提案,推进所有尚未识别一致性的节点意识到已达成一致。

如果接下来集合中没有交易,当闲置计时器在足够多的节点中到期时,它将关闭。但如果有残余的交易不在先前的一致共识集合中,节点将立刻开始关闭下一个总账。它们将在新关闭时间内宣布新初始提案。

本质上,如果存在未确认的交易,网络将会试图关闭它们。关闭时间将基于关闭上一个总账的时间点和建立一致共识的时间。这个算法将这样设计,以便于在关闭时间很少有分歧。

在所有情况下,网络至少每30秒试图关闭总账(除了非常特殊的情况),从而提供验证者作为网络运行的证明,也向客户端证明交易未发生或余额依旧有效。

优势

由于不再有总账间不确认交易的空闲时间,因而确认时间减少。

没有必要在所有特殊时间窗口内关闭一个总账。这意味着它更加具有适应性。如果有组成大部分UNL的快速节点集群,它们将强迫其它节点快速关闭。如果处在糟糕的网络环境,一致共识将被推迟。不再要求在任意时间达成一致。

一旦总账关闭,交易进程和部分服务器一致共识就不再需要它了,而且它是不可改变的。如果总账经常关闭且速度够快,那么连接这部分服务器的客户端能排他式地操作这些不可变总账。

因此,开放总账只会被服务器上活跃的交易进程访问,直至关闭。在那时,它将变成候补(candidate)总账,只被总账关闭和协商构建的逻辑所使用。一旦关闭,它将成为不可变,只被服务于那部分服务器的客户端所使用。

相关链接

tech/continuous_ledger_close.txt · 最后更改: 2015/03/04 09:55 由 Fate