https://laisky.notion.site/solana-Tower-BFT-0a519e548d114e4db0dee0c2f332e2be
学习了一下 solana 的 Proof of History(PoH),在解决 Byzantine Fault Tolerance(BFT) 的同时还可以实现 65000 tps。
感觉结构有点 RAFT 的感觉,每轮都会选择一个 leader validator,然后这个中心化的 leader validator 将尽可能多的交易打包,每 400ms 生成一个区块(slot)。
每个 validator 都会为这个 slot 背书,并生成一个 lockout/timeout,这个 timeout 表明 validator 在这个时间内都会支持该 slot 为主 fork 的一员,并且不会改投其他 fork。timeout 以 slot(400ms)为单位,初始值为 2。
每当 validator 生成了一个新的 slot,而且如果新的 slot 的 timeout 和老 slot 的一致,那么就将老 slot 的 timeout 翻倍。如果当前 validator 维护的链中有一个老 slot 的 timeout 达到了 32,那么就认为这个 slot 已经固化,可以将其移出 validator 当前维护的提交链,并发放奖励。
形象地说,validator 就像是在努力地堆塔,每次都试图在旧塔过期前从塔底塞进去一个新的 slot,如果成功在过期前将塔堆到了第五层(timeout 达到 32),那么塔顶的 slot 就成功固化并赢得奖励。所以这一算法也被称为 tower vote,或 tower BFT。
它的性能主要来自 leader validator 可以不需要 peers communication,就专注于打包区块,而其他 validator 可以并行地验证,从而大幅度提高了整个网络的吞吐量。
还没看完就被抓去干其他事了,所以此处仅记录一下 tower BFT 的笔记。 #blockchain
学习了一下 solana 的 Proof of History(PoH),在解决 Byzantine Fault Tolerance(BFT) 的同时还可以实现 65000 tps。
感觉结构有点 RAFT 的感觉,每轮都会选择一个 leader validator,然后这个中心化的 leader validator 将尽可能多的交易打包,每 400ms 生成一个区块(slot)。
每个 validator 都会为这个 slot 背书,并生成一个 lockout/timeout,这个 timeout 表明 validator 在这个时间内都会支持该 slot 为主 fork 的一员,并且不会改投其他 fork。timeout 以 slot(400ms)为单位,初始值为 2。
每当 validator 生成了一个新的 slot,而且如果新的 slot 的 timeout 和老 slot 的一致,那么就将老 slot 的 timeout 翻倍。如果当前 validator 维护的链中有一个老 slot 的 timeout 达到了 32,那么就认为这个 slot 已经固化,可以将其移出 validator 当前维护的提交链,并发放奖励。
形象地说,validator 就像是在努力地堆塔,每次都试图在旧塔过期前从塔底塞进去一个新的 slot,如果成功在过期前将塔堆到了第五层(timeout 达到 32),那么塔顶的 slot 就成功固化并赢得奖励。所以这一算法也被称为 tower vote,或 tower BFT。
它的性能主要来自 leader validator 可以不需要 peers communication,就专注于打包区块,而其他 validator 可以并行地验证,从而大幅度提高了整个网络的吞吐量。
还没看完就被抓去干其他事了,所以此处仅记录一下 tower BFT 的笔记。 #blockchain