Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
YottaChain
YTBP
提交
6e9b4419
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,发现更多精彩内容 >>
提交
6e9b4419
编写于
12月 17, 2018
作者:
A
arhag
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
initial setup of billing CPU for signatures recovered earlier
上级
3e733f57
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
14 addition
and
4 deletion
+14
-4
libraries/chain/controller.cpp
libraries/chain/controller.cpp
+14
-2
libraries/chain/include/eosio/chain/transaction_context.hpp
libraries/chain/include/eosio/chain/transaction_context.hpp
+0
-1
libraries/chain/transaction_context.cpp
libraries/chain/transaction_context.cpp
+0
-1
未找到文件。
libraries/chain/controller.cpp
浏览文件 @
6e9b4419
...
...
@@ -998,7 +998,20 @@ struct controller_impl {
transaction_trace_ptr
trace
;
try
{
transaction_context
trx_context
(
self
,
trx
->
trx
,
trx
->
id
);
auto
start
=
fc
::
time_point
::
now
();
if
(
!
explicit_billed_cpu_time
)
{
int64_t
cpu_per_signature_us
=
10
;
// TODO: plumb in producer configuration for this value.
auto
already_consumed_time
=
fc
::
microseconds
(
cpu_per_signature_us
*
trx
->
trx
.
signatures
.
size
()
);
// Alternatively store actual time to recover keys in transaction_metadata and use that as already_consumed_time (makes more sense if recovery cache was removed).
if
(
start
.
time_since_epoch
()
<
already_consumed_time
)
{
start
=
fc
::
time_point
();
}
else
{
start
-=
already_consumed_time
;
}
}
transaction_context
trx_context
(
self
,
trx
->
trx
,
trx
->
id
,
start
);
if
((
bool
)
subjective_cpu_leeway
&&
pending
->
_block_status
==
controller
::
block_status
::
incomplete
)
{
trx_context
.
leeway
=
*
subjective_cpu_leeway
;
}
...
...
@@ -1014,7 +1027,6 @@ struct controller_impl {
bool
skip_recording
=
replay_head_time
&&
(
time_point
(
trx
->
trx
.
expiration
)
<=
*
replay_head_time
);
trx_context
.
init_for_input_trx
(
trx
->
packed_trx
->
get_unprunable_size
(),
trx
->
packed_trx
->
get_prunable_size
(),
trx
->
trx
.
signatures
.
size
(),
skip_recording
);
}
...
...
libraries/chain/include/eosio/chain/transaction_context.hpp
浏览文件 @
6e9b4419
...
...
@@ -33,7 +33,6 @@ namespace eosio { namespace chain {
void
init_for_input_trx
(
uint64_t
packed_trx_unprunable_size
,
uint64_t
packed_trx_prunable_size
,
uint32_t
num_signatures
,
bool
skip_recording
);
void
init_for_deferred_trx
(
fc
::
time_point
published
);
...
...
libraries/chain/transaction_context.cpp
浏览文件 @
6e9b4419
...
...
@@ -284,7 +284,6 @@ namespace bacc = boost::accumulators;
void
transaction_context
::
init_for_input_trx
(
uint64_t
packed_trx_unprunable_size
,
uint64_t
packed_trx_prunable_size
,
uint32_t
num_signatures
,
bool
skip_recording
)
{
const
auto
&
cfg
=
control
.
get_global_properties
().
configuration
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录