Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
YottaChain
YTBP
提交
0bc24405
Y
YTBP
项目概览
YottaChain
/
YTBP
通知
0
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
Y
YTBP
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
未验证
提交
0bc24405
编写于
7月 24, 2018
作者:
W
wanderingbort
提交者:
GitHub
7月 24, 2018
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #4840 from wanderingbort/feature/fix-producer-stall
Resolve stalling producer schedule upgrade due to speculation
上级
fb023b99
f978fd91
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
5 addition
and
3 deletion
+5
-3
plugins/producer_plugin/producer_plugin.cpp
plugins/producer_plugin/producer_plugin.cpp
+5
-3
未找到文件。
plugins/producer_plugin/producer_plugin.cpp
浏览文件 @
0bc24405
...
...
@@ -769,9 +769,11 @@ producer_plugin::greylist_params producer_plugin::get_greylist() const {
optional
<
fc
::
time_point
>
producer_plugin_impl
::
calculate_next_block_time
(
const
account_name
&
producer_name
)
const
{
chain
::
controller
&
chain
=
app
().
get_plugin
<
chain_plugin
>
().
chain
();
const
auto
&
hbs
=
chain
.
head_block_state
();
const
auto
&
active_schedule
=
hbs
->
active_schedule
.
producers
;
const
auto
&
pbs
=
chain
.
pending_block_state
();
const
auto
&
active_schedule
=
pbs
->
active_schedule
.
producers
;
const
auto
&
hbt
=
pbs
->
header
.
timestamp
;
const
auto
&
pbt
=
pbs
->
header
.
timestamp
;
// determine if this producer is in the active schedule and if so, where
auto
itr
=
std
::
find_if
(
active_schedule
.
begin
(),
active_schedule
.
end
(),
[
&
](
const
auto
&
asp
){
return
asp
.
producer_name
==
producer_name
;
});
...
...
@@ -798,7 +800,7 @@ optional<fc::time_point> producer_plugin_impl::calculate_next_block_time(const a
}
// this producers next opportuity to produce is the next time its slot arrives after or at the calculated minimum
uint32_t
minimum_slot
=
h
bt
.
slot
+
minimum_offset
;
uint32_t
minimum_slot
=
p
bt
.
slot
+
minimum_offset
;
size_t
minimum_slot_producer_index
=
(
minimum_slot
%
(
active_schedule
.
size
()
*
config
::
producer_repetitions
))
/
config
::
producer_repetitions
;
if
(
producer_index
==
minimum_slot_producer_index
)
{
// this is the producer for the minimum slot, go with that
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录