45 forks is not normal operation and is a result of bugs in the networking code网络代码. I will have Eric look into the cause when he comes in on Monday.
The issue with forking is not because of slow systems or network problems. It is almost entirely due to implementation bugs. I am fairly certain we have narrowed it down to a blocking socket write that prevents other sockets from being sent data until a TCP timeout.
这些问题用“优化数据库”和调节有效块的方式能一劳永逸的解决么?
目前系统比较稳定了,但仍然不让人放心啊。
这轮测试的一个收获是 fork switch 比较稳定了,也就是当产生分叉后,都能正确的切换到主链上,这很重要。
主要的问题是生产区块效率太低,包括:区块广播延迟大,因为延迟又导致分叉,还有很多代理没正常产生区块。
今天的测试结果,网络延迟似乎已经解决了,可用以下命令查看,我看到的延迟最大是3秒。
delegate (unlocked) >>> blockchain_list_blocks 1960 800
分叉似乎也没有再产生了,我这看到最后的分叉是1866, 从1960块之后没有分叉
delegate (unlocked) >>> blockchain_list_forks
代理不生产区块的问题还没解决,bm好像正在处理。