Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
YottaChain
YTBP
提交
3e733f57
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,发现更多精彩内容 >>
提交
3e733f57
编写于
12月 17, 2018
作者:
K
Kevin Heifner
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Fix overflow of deadline and deadline check
上级
9270c9cb
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
4 addition
and
5 deletion
+4
-5
libraries/chain/transaction.cpp
libraries/chain/transaction.cpp
+2
-4
libraries/chain/transaction_metadata.cpp
libraries/chain/transaction_metadata.cpp
+2
-1
未找到文件。
libraries/chain/transaction.cpp
浏览文件 @
3e733f57
...
...
@@ -88,14 +88,12 @@ flat_set<public_key_type> transaction::get_signature_keys( const vector<signatur
constexpr
size_t
recovery_cache_size
=
1000
;
static
thread_local
recovery_cache_type
recovery_cache
;
fc
::
time_point
start
=
fc
::
time_point
::
now
();
const
digest_type
digest
=
sig_digest
(
chain_id
,
cfd
);
flat_set
<
public_key_type
>
recovered_pub_keys
;
for
(
const
signature_type
&
sig
:
signatures
)
{
auto
now
=
fc
::
time_point
::
now
();
EOS_ASSERT
(
start
+
now
<=
deadline
,
tx_cpu_usage_exceeded
,
"transaction signature verification executed for too long"
,
(
"now"
,
now
)(
"deadline"
,
deadline
)(
"start"
,
start
)
);
EOS_ASSERT
(
fc
::
time_point
::
now
()
<
deadline
,
tx_cpu_usage_exceeded
,
"transaction signature verification executed for too long"
,
(
"now"
,
fc
::
time_point
::
now
())(
"deadline"
,
deadline
)
);
public_key_type
recov
;
recovery_cache_type
::
index
<
by_sig
>::
type
::
iterator
it
=
recovery_cache
.
get
<
by_sig
>
().
find
(
sig
);
const
auto
&
tid
=
id
();
...
...
libraries/chain/transaction_metadata.cpp
浏览文件 @
3e733f57
...
...
@@ -26,7 +26,8 @@ void transaction_metadata::create_signing_keys_future( const transaction_metadat
std
::
weak_ptr
<
transaction_metadata
>
mtrx_wp
=
mtrx
;
mtrx
->
signing_keys_future
=
async_thread_pool
(
thread_pool
,
[
timelimit
,
chain_id
,
mtrx_wp
]()
{
fc
::
time_point
deadline
=
fc
::
time_point
::
now
()
+
timelimit
;
fc
::
time_point
deadline
=
timelimit
==
fc
::
microseconds
::
maximum
()
?
fc
::
time_point
::
maximum
()
:
fc
::
time_point
::
now
()
+
timelimit
;
auto
mtrx
=
mtrx_wp
.
lock
();
return
mtrx
?
std
::
make_pair
(
chain_id
,
mtrx
->
trx
.
get_signature_keys
(
chain_id
,
deadline
)
)
:
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录