关于solo模式实现的源码的问题

来源:4-7 区块切割和solo模式源码阅读

ihkhlkjhkjhlkjhlkj

2018-10-11

请问老师:
if ok && len(batches) == 0 && timer == nil {
timer = time.After(ch.support.SharedConfig().BatchTimeout())
continue
}
这一段代码中的 多维度 if 判断中 timer == nil 这里不是很理解,
如果 timer 为 nil,就定义一个定时器并且 continue 掉,
那么这个 if 判断是不是永远只会执行一次,第二次就定时器不为空了。
接下去的流程就是区块切割,
结果就是一个区块只会存放两笔交易?
不知道这样理解是哪里出了问题

写回答

1回答

自游蜗牛

2018-10-11

亲,你好。

//img.mukewang.com/szimg/5bbf5fc70001fb9a14650740.jpg

你截取的这一段是说,如果没有新的区块产生并且定时器现在还没有开始就重新定义一个定时器。

但是看我截图的后面,如果发现有新的区块产生,或者之前设定的定时器到时间了,都会先把定时器置空。所以,if不是只会执行一次。一旦有新的交易或者超过时间,后续还是会执行的。

然后你的第二个问题,一个区块只会存放两笔交易这个结论是怎么得出来的呢?我没看明白,你能再详细阐述下吗?

祝你学习愉快!

0
2
ihkhlkjhkjhlkjhlkj
非常感谢!
2018-10-18
共2条回复

Hyperledger Fabric实战联盟链-企业端区块链原理精讲

兼顾区块链应用层和底层 进击区块链工程师

787 学习 · 564 问题

查看课程