Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
whqwjb
go-ethereum
提交
7efb12d2
G
go-ethereum
项目概览
whqwjb
/
go-ethereum
与 Fork 源项目一致
从无法访问的项目Fork
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
G
go-ethereum
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
未验证
提交
7efb12d2
编写于
9月 17, 2018
作者:
M
Martin Holst Swende
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
ethash: documentation + cleanup
上级
3df7df03
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
13 addition
and
8 deletion
+13
-8
consensus/ethash/consensus.go
consensus/ethash/consensus.go
+13
-8
未找到文件。
consensus/ethash/consensus.go
浏览文件 @
7efb12d2
...
...
@@ -46,13 +46,16 @@ var (
// calcDifficultyConstantinople is the difficulty adjustment algorithm for Constantinople.
// It returns the difficulty that a new block should have when created at time given the
// parent block's time and difficulty. The calculation uses the Byzantium rules, but with bomb offset 5M.
calcDifficultyConstantinople
=
makeDifficultyCalculator
(
big
.
NewInt
(
4999999
))
// parent block's time and difficulty. The calculation uses the Byzantium rules, but with
// bomb offset 5M.
// Specification EIP-1234: https://eips.ethereum.org/EIPS/eip-1234
calcDifficultyConstantinople
=
makeDifficultyCalculator
(
big
.
NewInt
(
5000000
))
// calcDifficultyByzantium is the difficulty adjustment algorithm. It returns
// the difficulty that a new block should have when created at time given the
// parent block's time and difficulty. The calculation uses the Byzantium rules.
calcDifficultyByzantium
=
makeDifficultyCalculator
(
big
.
NewInt
(
2999999
))
// Specification EIP-649: https://eips.ethereum.org/EIPS/eip-649
calcDifficultyByzantium
=
makeDifficultyCalculator
(
big
.
NewInt
(
3000000
))
)
// Various error messages to mark blocks invalid. These should be private to
...
...
@@ -335,6 +338,9 @@ var (
// the difficulty is calculated with Byzantium rules, which differs from Homestead in
// how uncles affect the calculation
func
makeDifficultyCalculator
(
bombDelay
*
big
.
Int
)
func
(
time
uint64
,
parent
*
types
.
Header
)
*
big
.
Int
{
// Note, the calculations below looks at the parent number, which is 1 below
// the block number. Thus we remove one from the delay given
bombDelayFromParent
:=
new
(
big
.
Int
)
.
Sub
(
bombDelay
,
big1
)
return
func
(
time
uint64
,
parent
*
types
.
Header
)
*
big
.
Int
{
// https://github.com/ethereum/EIPs/issues/100.
// algorithm:
...
...
@@ -370,12 +376,11 @@ func makeDifficultyCalculator(bombDelay *big.Int) func(time uint64, parent *type
if
x
.
Cmp
(
params
.
MinimumDifficulty
)
<
0
{
x
.
Set
(
params
.
MinimumDifficulty
)
}
// calculate a fake block number for the ice-age delay:
// https://github.com/ethereum/EIPs/pull/669
// fake_block_number = max(0, block.number - 3_000_000)
// calculate a fake block number for the ice-age delay
// Specification: https://eips.ethereum.org/EIPS/eip-1234
fakeBlockNumber
:=
new
(
big
.
Int
)
if
parent
.
Number
.
Cmp
(
bombDelay
)
>=
0
{
fakeBlockNumber
=
fakeBlockNumber
.
Sub
(
parent
.
Number
,
bombDelay
)
// Note, parent is 1 less than the actual block number
if
parent
.
Number
.
Cmp
(
bombDelay
FromParent
)
>=
0
{
fakeBlockNumber
=
fakeBlockNumber
.
Sub
(
parent
.
Number
,
bombDelay
FromParent
)
}
// for the exponential factor
periodCount
:=
fakeBlockNumber
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录