Jianrong
249d2b5b6d
implemente proposeblock handler and SyncInfo handler
2021-12-30 11:12:21 +11:00
Liam
17eb4c6c65
add default v2 behaviour ( #24 )
2021-12-30 11:12:21 +11:00
Jianrong
163ed0fab3
add ProcessQC tests
2021-12-30 11:12:18 +11:00
Jianrong
bd60e1b0cf
add ProcessQC implementation
2021-12-30 11:00:20 +11:00
Liam
b9068974f5
update network layer and add handler functions ( #23 )
...
* update network layer and add handler functions
* fix test syntax error
2021-12-30 11:00:20 +11:00
Jianrong
17f6e67f58
review comment improvement
2021-12-30 11:00:20 +11:00
Jianrong
98014936c3
fix pool test
2021-12-30 11:00:20 +11:00
Jianrong
a39612e540
vote and timeout handlers
2021-12-30 11:00:20 +11:00
wgr523
d47d9a2a99
Consensus V2 variable, timeout pool ( #19 )
...
* fill in XDPoS_v2 variables and processQC/TC
* add timeout pool, refine engine variables
* refactor type functions
* solve a small pointer bug
* create general pool and its test, refine engine
* refine pool, add xdpos v2 config cert threshold
* refine config
2021-12-30 11:00:20 +11:00
Jianrong
4addb69561
generate and verify timeout message
2021-12-30 11:00:20 +11:00
Liam
a1b77f3ca8
Implement BFT Message receiver ( #13 )
...
* fix or skip tests due to PR-136 changes
* add bft receiver functions
* add bft receiver functions
* rename tc to TimeoutCert
* implement more functions
* New struct in consensus/XDPoS/utils/types.go, util functions, and test. (#14 )
* define vote, timeout, sync info, qc, tc, extra fields in types.go, add test in types_test.go
* add json tag in types.go, refine encoder decoder of extra fields
* refactor types.go utils.go
* re-write types, comments
* add Hash SigHash for types, and tests
* define Round type
* remove unnecessary logs
* add temp functions
* add v2 engine functions placeholder
* typo fix on the consensus v2 function placeholders
* add countdown timer
* make initilised private to countdown
* push verify function
* add test on receiving vote
* revert type change
* add async on broadcast function
* add quit initial
* fix test
Co-authored-by: Jianrong <wjrjerome@gmail.com>
Co-authored-by: wgr523 <wgr523@gmail.com>
2021-12-30 11:00:20 +11:00
Jianrong
521b703207
rename some config variables
2021-12-30 11:00:20 +11:00
Jianrong
1d48ed7d06
add v2 specific config struct
2021-12-30 11:00:20 +11:00
Jianrong
bcb1fea280
add countdown timer
2021-12-30 11:00:20 +11:00
Jianrong
8891cd167b
typo fix on the consensus v2 function placeholders
2021-12-30 11:00:20 +11:00
Jianrong
1da080a371
add v2 engine functions placeholder
2021-12-30 11:00:20 +11:00
wgr523
4453a1e257
New struct in consensus/XDPoS/utils/types.go, util functions, and test. ( #14 )
...
* define vote, timeout, sync info, qc, tc, extra fields in types.go, add test in types_test.go
* add json tag in types.go, refine encoder decoder of extra fields
* refactor types.go utils.go
* re-write types, comments
* add Hash SigHash for types, and tests
* define Round type
* remove unnecessary logs
2021-12-30 11:00:20 +11:00
Liam Lai
5061dd9841
add few comments in code
2021-12-21 08:47:23 +03:00
Gerui Wang
db58081b8d
refine race condition solution
2021-12-21 10:19:17 +08:00
Jianrong
d901d1df6e
race condition caused by old eth bug where read before write. We fixing it by passing down header in the snapshot to avoid touching ETH code. This is just a precaution to avoid undiscovered bugs in XDC as a result of fundmental ETH implementation change
2021-12-21 10:32:55 +11:00
olumuyiwadad
afe58d79fc
fix api trace block & Change option pending block.
2021-11-11 18:49:57 +05:30
olumuyiwadad
420a589599
ignoreSignerBlockList added.
2021-11-11 18:48:50 +05:30
Jianrong
ce4e16c7c3
replace c to x in XDPos pakage
2021-10-17 11:37:55 +11:00
Jianrong
e5a9a5ddbc
replace consensus int config with string const
2021-10-17 11:31:49 +11:00
Jianrong
0eb2504db3
Add 1 test for adaptor to switch from v1 to v2
2021-10-17 11:20:57 +11:00
Jianrong
c8ee8e1936
add a simple test to verify DB is the same across different engine versions
2021-10-16 13:22:48 +11:00
Jianrong
ce106abffe
fix tests related to consensus
2021-10-10 22:05:32 +11:00
Jianrong
e34311ff45
Remove unused consensus v1 methods
2021-10-10 16:04:34 +11:00
Jianrong
48be4e4ca7
Move consensus hooks to its own package
2021-10-10 16:04:32 +11:00
Jianrong
0aec2a1e9e
Seperate hooks from XDPoS adaptor
2021-10-10 16:02:19 +11:00
Jianrong
fcbc5a28e1
refactor XDPoS to accommodate multiple consensus engine versions
2021-10-10 16:02:16 +11:00
olumuyiwadad
cf18ceba33
Merge branch 'forking-incident-fix' of https://github.com/hash-laboratories-au/XDPoSChain into hash-laboratories-au-forking-incident-fix
2021-09-23 17:01:19 +05:30
olumuyiwadad
b5abbfed79
new EVM Upgrade
...
- Solidity Upgraded up to v0.8.0
- Fixed and Added eth_chainId
- Fix error in TransactionRecipet
- Reward halving issue fixed
2021-09-21 16:53:46 +05:30
olumuyiwadad
92ffe69ab4
Work around for the issue "return wrong list signers from snapshot"
...
Update signers in snapshot
Ignore signerCheck at checkpoint block 27307800
due to wrong snapshot at gap 27307799
2021-09-17 18:45:46 +05:30
olumuyiwadad
571c41f891
FIx Bad block error.
2021-09-17 17:59:06 +05:30
Jianrong
9efb89dffb
fix simulator functions to choose between XDC faker and eth faker
2021-08-30 14:56:14 +10:00
Jianrong
fa2b341c9a
resolving broken eth tests
2021-08-29 17:14:10 +10:00
Jianrong
7b7e34ae00
Fix XDC forking incident with tests
2021-08-29 14:20:01 +10:00
Jianrong
4d88ba22e5
rebase from dev-upgrade
2021-08-07 14:29:18 +10:00
Jianrong
0fdab2027c
add linting as the first CI task
2021-08-07 14:27:08 +10:00
AnilChinchawale
916b16de71
fix masternode stop block production.
2021-01-18 10:57:22 +05:30
AnilChinchawale
a8fc240b29
remove logs & add list of authorized signers
2020-12-30 18:00:37 +05:30
dev-vadim
dbe8c9d984
upgrade XDC.Network with v1.8.27.
2020-12-23 16:32:06 +05:30
diglspacedavid
474cc37036
upgrade codebase with ethereum:v1.8.13
2020-11-23 13:40:30 +05:30
parmarrushabh
3e5f4d54a8
Hot_Fix Bad block Error
2019-04-25 12:11:30 +05:30
Martin Holst Swende
af401d03a3
all: simplify timestamps to uint64 ( #19372 )
...
* all: simplify timestamps to uint64
* tests: update definitions
* clef, faucet, mobile: leftover uint64 fixups
* ethash: fix tests
* graphql: update schema for timestamp
* ethash: remove unused variable
2019-04-08 12:00:42 +03:00
parmarrushabh
3456368fdc
XDPoS unit test fixed
2019-03-27 17:18:37 +05:30
parmarrushabh
a6238b785d
test output corrected
2019-03-26 14:50:50 +05:30
AnilChinchawale
8000ce3c93
move m2 for unit test
2019-03-26 14:46:39 +05:30
parmarrushabh
2d046cc16a
tip block randomize
2019-03-26 14:28:13 +05:30
parmarrushabh
36d9bea7e9
created unit test for XDPoS
2019-03-25 14:20:56 +05:30
AnilChinchawale
4679c9fc74
updated xdpos.go
2019-03-25 14:15:09 +05:30
parmarrushabh
4af57cc070
case m2 down affect to m1.
2019-03-25 12:19:25 +05:30
parmarrushabh
a47c0b94e7
allow signing with m1 = m2
2019-03-25 11:38:52 +05:30
AnilChinchawale
8e89efe6a9
File Updated | XDPoS Consensus updated
2019-03-14 15:59:10 +05:30
parmarrushabh
147e1f0baf
create new func penalties for hard fork
2019-02-19 17:25:31 +05:30
AnilChinchawale
b15708af5b
Changes added console.
2019-01-09 08:33:22 +05:30
AnilChinchawale
bc15c48163
Fixed issue in clique | File updated
2019-01-07 08:32:55 +05:30
AnilChinchawale
cd9734b34a
Fixed issue XDPoS | File updated
2019-01-07 08:32:29 +05:30
Dave McGregor
33d233d3e1
vendor, crypto, swarm: switch over to upstream sha3 package
2019-01-04 09:26:07 +02:00
parmarrushabh
4a12d746ff
tmp fix ethash unittests
2018-12-04 14:25:55 +05:30
parmarrushabh
2b7010d51f
add state variable to verifyHeader(), verifyHeaders() in the consensus
2018-12-02 12:21:48 +05:30
parmarrushabh
9f36d37558
Parallel process block from fetcher
2018-11-17 12:02:43 +05:30
mr_franklin
9a000601c6
consensus/clique: fix comment typo ( #18103 )
2018-11-14 14:50:30 +02:00
parmarrushabh
176b51f1f8
ignore faster with block no validator m2
2018-11-12 15:41:24 +05:30
AnilChinchwale
53e39d77ac
fix error double validation
2018-11-09 16:42:45 +05:30
gary rong
144c1c6c52
consensus: extend getWork API with block number ( #18038 )
2018-11-08 17:08:57 +02:00
parmarrushabh
b0e95fcc58
fix reduce change code
2018-10-31 11:14:32 +05:30
AnilChinchawale
9bc7680c02
remove rinkby and discovery in bootnode
2018-10-31 10:56:58 +05:30
parmarrushabh
cb5a55a904
change config from flag to toml file; fix tag listenaddr
2018-10-31 10:30:25 +05:30
parmarrushabh
2e7323fdd1
Delete snapshot_test.go
2018-10-30 18:36:29 +05:30
AnilChinchwale
ae97e8e202
add again code directory clique from commit
2018-10-28 12:10:56 +05:30
parmarrushabh
ce89b6b92d
making XDPoS as a separate package
2018-10-28 11:58:50 +05:30
MestryOmkar
1dba188d1d
by pass difficulty check in some scenes
2018-10-28 10:45:17 +05:30
AnilChinchwale
7a7abd4f75
directly set mns to snapshot
2018-10-28 10:40:26 +05:30
parmmarrushabh
dccf2ca3e9
Add signers and finality to block status rpc api.
2018-10-27 16:28:04 +05:30
MestryOmkar
7e33e27642
hotfix: signed recently issue
2018-10-25 15:27:34 +05:30
MestryOmkar
ec421b98b1
masternode should also count to his turn in case some of his friends are down
2018-10-22 10:53:15 +05:30
AnilChinchawale
e3eeaf8807
masternode[0] will create block 1
2018-10-18 15:38:38 +05:30
AnilChinchawale
f319f5c1df
in case a masternode resigns, let him continue until end of the current epoch
2018-10-14 15:08:02 +05:30
MestryOmkar
f814908442
get masternodes set from latest checkpoint block header instead of fr… …
2018-10-10 14:15:15 +05:30
parmarrushabh
9f5cba7dc7
update new set of masternodes at end of each epoch (distance = m1Gap)
2018-09-30 12:00:33 +05:30
gary rong
d6254f827b
all: protect self-mined block during reorg ( #17656 )
2018-09-20 15:09:30 +03:00
gary rong
0b477712a1
consensus/clique: hide no transaction error ( #17614 )
2018-09-19 12:06:55 +03:00
gary rong
5d1d1a808d
consensus, ethdb, metrics: implement forced-meter ( #17667 )
2018-09-17 15:32:34 +03:00
Péter Szilágyi
41ac8dd803
Merge pull request #17675 from holiman/eip1234
...
Eip1234
2018-09-17 15:18:17 +03:00
Martin Holst Swende
7efb12d29b
ethash: documentation + cleanup
2018-09-17 11:53:36 +02:00
Martin Holst Swende
3df7df0386
ethash: less copy-paste for EIP 1234
2018-09-15 23:54:16 +02:00
EOS Classic
0732617b65
consensus: implement Constantinople EIP 1234
2018-09-12 20:02:34 +09:00
Péter Szilágyi
4bb25042eb
consensus/clique, core: chain maker clique + error tests
2018-09-11 16:40:00 +03:00
Péter Szilágyi
bcfb7f58b9
consensus/clique: only trust snapshot for genesis or les checkpoint
2018-09-10 15:00:54 +03:00
Anton Evangelatov
cc2b39bbd1
consensus/ethash: increase timeout in test ( #17526 )
...
This is an attempt to fix the flaky consensus/ethash tests under macOS.
2018-09-03 16:59:23 +02:00
ult-bobonovski
992b77992f
consensus: fix comment typo ( #17562 )
2018-09-03 16:49:00 +02:00
gary rong
c1c003e4ff
consensus, miner: stale block mining support ( #17506 )
...
* consensus, miner: stale block supporting
* consensus, miner: refactor seal signature
* cmd, consensus, eth: add miner noverify flag
* cmd, consensus, miner: polish
2018-08-28 16:59:05 +03:00
Mymskmkt
c64d72bea2
consensus/ethash: remove unnecessary type declaration ( #17529 )
2018-08-28 10:05:25 +03:00
gary rong
40a71f28cf
miner: fix state commit, track old work packages too ( #17490 )
...
* miner: commit state which is relative with sealing result
* consensus, core, miner, mobile: introduce sealHash interface
* miner: evict pending task with threshold
* miner: go fmt
2018-08-23 16:02:57 +03:00
Péter Szilágyi
9f036647e4
consensus/clique, light: light client snapshots on Rinkeby
2018-08-21 15:21:59 +03:00
Péter Szilágyi
251c868008
consensus/ethash: reduce notify test aggressiveness
2018-08-17 18:12:39 +03:00
Péter Szilágyi
d8541a9f99
consensus/ethash: use DAGs for remote mining, generate async
2018-08-15 14:38:39 +03:00
Péter Szilágyi
f0998415ba
cmd, consensus/ethash, eth: miner push notifications
2018-08-10 09:06:59 +03:00
parmarrushabh
bbd132c1a3
Refine comments for feature add reward to validators and signers block.
2018-08-09 14:24:16 +05:30
MestryOmkar
831626de23
Add reward for signers and validators for reward checkpoint.
2018-08-04 14:11:24 +05:30
gary rong
51db5975cc
consensus/ethash: move remote agent logic to ethash internal ( #15853 )
...
* consensus/ethash: start remote ggoroutine to handle remote mining
* consensus/ethash: expose remote miner api
* consensus/ethash: expose submitHashrate api
* miner, ethash: push empty block to sealer without waiting execution
* consensus, internal: add getHashrate API for ethash
* consensus: add three method for consensus interface
* miner: expose consensus engine running status to miner
* eth, miner: specify etherbase when miner created
* miner: commit new work when consensus engine is started
* consensus, miner: fix some logics
* all: delete useless interfaces
* consensus: polish a bit
2018-08-03 11:33:37 +03:00
parmarrushabh
a88d49b1a8
Fixed only send tx sign for validators.
2018-07-24 16:54:17 +05:30
hadv
49f63deb24
consensus/clique: replace bubble sort by golang stable sort
2018-07-24 14:56:53 +07:00
Wenbiao Zheng
f6206efe5b
consensus: move test use only var/func to test( #17004 )
2018-07-24 02:14:15 +02:00
Ralph Caraveo III
5d30be412b
all: switch out defunct set library to different one ( #16873 )
...
* keystore, ethash, eth, miner, rpc, whisperv6: tech debt with now defunct set.
* whisperv5: swap out gopkg.in/fatih/set.v0 with supported set
2018-07-16 10:54:19 +03:00
AnilChinchawale
80d66cb264
Fixed minor warning of go lint and rename checkpoint config parameter.
2018-07-15 16:47:41 +05:30
AnilChinchawale
1e59069d3a
reuse Clique voting strategy for now, leave header.Coinbase empty
2018-07-12 16:24:50 +05:30
Kwuaint
facf1bc9d6
consensus/ethash: fix the algorithm of fakeBlockNumber in comments ( #17166 )
...
correct the algorithm in the comments for fakeBlockNumber, from "min" to "max".
2018-07-12 13:32:23 +03:00
AnilChinchawale
2fb2d7404d
block 1 - all masternodes race to create
2018-07-10 16:20:55 +05:30
LeoLiao
0b20b1a050
consensus/clique: fixed documentation copy-paste issue ( #17137 )
2018-07-09 11:39:43 +03:00
AnilChinchawale
91aa7c65ef
masternode takes turn (circle) to propose block
2018-07-07 16:11:13 +05:30
Zak Cole
eb794af833
consensus/ethash: fixed documentation typo ( #17121 )
...
"proot-of-work" to "proof-of-work"
2018-07-04 11:20:58 +03:00
AnilChinchawale
d06703c251
added NON-ZERO COINBASE IN BLOCK HEADER
2018-06-20 10:53:31 +05:30
AnilChinchawale
2a089900f5
added MINER-VALIDATOR
2018-06-18 10:46:57 +05:30
AnilChinchawale
aa511fb523
add BLOCK REWARD TO CLIQUE CONFIG
2018-06-09 17:20:53 +05:30
Felix Lange
3f33a7c8ce
consensus/ethash: reduce keccak hash allocations ( #16857 )
...
Use Read instead of Sum to avoid internal allocations and
copying the state.
name old time/op new time/op delta
CacheGeneration-8 764ms ± 1% 579ms ± 1% -24.22% (p=0.000 n=20+17)
SmallDatasetGeneration-8 75.2ms ±12% 60.6ms ±10% -19.37% (p=0.000 n=20+20)
HashimotoLight-8 1.58ms ±11% 1.55ms ± 8% ~ (p=0.322 n=20+19)
HashimotoFullSmall-8 4.90µs ± 1% 4.88µs ± 1% -0.31% (p=0.013 n=19+18)
2018-06-04 10:32:32 +03:00
hadv
f2fdb75dd9
core, consensus: fix some typos in comment code and output log
2018-05-19 15:44:36 +07:00
gary rong
7beccb29be
all: get rid of error when creating memory database ( #16716 )
...
* all: get rid of error when create mdb
* core: clean up variables definition
* all: inline mdb definition
2018-05-09 15:24:25 +03:00
Péter Szilágyi
6cf0ab38bd
core/rawdb: separate raw database access to own package ( #16666 )
2018-05-07 14:35:06 +03:00
YH-Zhou
fd3da7c69d
consensus/ethash: fixed typo ( #16665 )
2018-05-03 12:44:47 +03:00
thomasmodeneis
ba1030b6b8
build: enable goimports and varcheck linters ( #16446 )
2018-04-18 00:53:50 +02:00
Kyuntae Ethan Kim
d429a92f09
consensus/ethash: fixed typo ( #16253 )
2018-03-05 11:32:56 +02:00
Péter Szilágyi
17b0e226d3
travis, build, consensus: drop support for Go 1.7
2018-02-27 18:25:56 +02:00
Anton Evangelatov
ae9f97221a
metrics: pull library and introduce ResettingTimer and InfluxDB reporter ( #15910 )
...
* go-metrics: fork library and introduce ResettingTimer and InfluxDB reporter.
* vendor: change nonsense/go-metrics to ethersphere/go-metrics
* go-metrics: add tests. move ResettingTimer logic from reporter to type.
* all, metrics: pull in metrics package in go-ethereum
* metrics/test: make sure metrics are enabled for tests
* metrics: apply gosimple rules
* metrics/exp, internal/debug: init expvar endpoint when starting pprof server
* internal/debug: tiny comment formatting fix
2018-02-23 11:56:08 +02:00
Péter Szilágyi
55599ee95d
core, trie: intermediate mempool between trie and database ( #15857 )
...
This commit reduces database I/O by not writing every state trie to disk.
2018-02-05 17:40:32 +01:00
Felix Lange
924065e19d
consensus/ethash: improve cache/dataset handling ( #15864 )
...
* consensus/ethash: add maxEpoch constant
* consensus/ethash: improve cache/dataset handling
There are two fixes in this commit:
Unmap the memory through a finalizer like the libethash wrapper did. The
release logic was incorrect and freed the memory while it was being
used, leading to crashes like in #14495 or #14943 .
Track caches and datasets using simplelru instead of reinventing LRU
logic. This should make it easier to see whether it's correct.
* consensus/ethash: restore 'future item' logic in lru
* consensus/ethash: use mmap even in test mode
This makes it possible to shorten the time taken for TestCacheFileEvict.
* consensus/ethash: shuffle func calc*Size comments around
* consensus/ethash: ensure future cache/dataset is in the lru cache
* consensus/ethash: add issue link to the new test
* consensus/ethash: fix vet
* consensus/ethash: fix test
* consensus: tiny issue + nitpick fixes
2018-01-23 12:05:30 +02:00
gary rong
3a5a5599dd
consensus/ethash: fix byzantium difficulty comment typo ( #15842 )
2018-01-10 10:58:03 +02:00
Péter Szilágyi
6f69cdd109
all: switch gas limits from big.Int to uint64
2018-01-03 14:45:35 +02:00
sunxiaojun2014
908faf8cd7
consensus/ethash: fix overdue link ( #15786 )
2017-12-31 13:38:39 +02:00
gary rong
5f8888e116
accounts, consensus, core, eth: make chain maker consensus agnostic ( #15497 )
...
* accounts, consensus, core, eth: make chain maker consensus agnostic
* consensus, core: move CalcDifficulty to Engine interface
* consensus: add docs for calcDifficulty function
* consensus, core: minor comment fixups
2017-12-22 14:37:50 +02:00
Péter Szilágyi
5129ef22c2
Merge pull request #15629 from holiman/relax_futuretime
...
consensus/ethash: relax requirements when determining future-blocks
2017-12-14 11:28:42 +02:00
Zach
3da1bf8ca1
all: use gometalinter.v2, fix new gosimple issues ( #15650 )
2017-12-12 19:05:47 +01:00
Martin Holst Swende
79d5e5593f
consensus/ethash: relax requirements when determining future-blocks
2017-12-08 10:06:16 +01:00
gary rong
f14047dae5
cmd, consensus, eth: split ethash related config to it own ( #15520 )
...
* cmd, consensus, eth: split ethash related config to it own
* eth, consensus: minor polish
* eth, consenus, console: compress pow testing config field to single one
* consensus, eth: document pow mode
2017-11-24 16:10:27 +02:00
Péter Szilágyi
1e0c336d29
cmd/puppeth: etherchain light block explorer for PoW nets
2017-11-21 15:09:34 +02:00
ferhat elmas
86f6568f66
build: enable unconvert linter ( #15456 )
...
* build: enable unconvert linter
- fixes #15453
- update code base for failing cases
* cmd/puppeth: replace syscall.Stdin with os.Stdin.Fd() for unconvert linter
2017-11-10 19:06:45 +02:00
Péter Szilágyi
6d6a5a9337
cmd, consensus, core, miner: instatx clique for --dev ( #15323 )
...
* cmd, consensus, core, miner: instatx clique for --dev
* cmd, consensus, clique: support configurable --dev block times
* cmd, core: allow --dev to use persistent storage too
2017-10-24 13:40:42 +03:00
Ernesto del Toro
2e83c82f80
ethash: fix typo
2017-10-13 01:13:52 -04:00
Péter Szilágyi
d3beff7e20
consensus/clique: add fork hash enforcement ( #15236 )
2017-10-10 10:54:47 +02:00
Péter Szilágyi
5bbd7fb390
consensus, core, params: rebrand Metro to Byzantium
2017-09-14 10:10:46 +03:00
Péter Szilágyi
b872961ec8
consensus, core, tests: implement Metropolis EIP 649
2017-08-24 17:16:39 +03:00
Egon Elbre
80de4dc72c
consensus: revert time.Until change
2017-08-07 14:32:03 +03:00
Egon Elbre
aee70ae30b
consensus: fix megacheck warnings
2017-08-07 13:18:08 +03:00
Péter Szilágyi
c65f10a17b
Merge pull request #14733 from karalabe/metro-eip100
...
consensus/ethash, core: implement Metropolis EIP 100
2017-07-17 12:43:13 +03:00
Felix Lange
225de7ca0a
tests: update tests and implement general state tests ( #14734 )
...
Tests are now included as a submodule. This should make updating easier
and removes ~60MB of JSON data from the working copy.
State tests are replaced by General State Tests, which run the same test
with multiple fork configurations.
With the new test runner, consensus tests are run as subtests by walking
json files. Many hex issues have been fixed upstream since the last
update and most custom parsing code is replaced by existing JSON hex
types. Tests can now be marked as 'expected failures', ensuring that
fixes for those tests will trigger an update to test configuration. The
new test runner also supports parallel execution and the -short flag.
2017-07-11 13:49:14 +02:00
Péter Szilágyi
8c313eed26
consensus, core: EIP 100 polishes, fix chain maker diff
...
This PR polishes the EIP 100 difficulty adjustment algorithm
to match the same mechanisms as the Homestead was implemented
to keep the code uniform. It also avoids a few memory allocs
by reusing big1 and big2, pulling it out of the common package
and into ethash.
The commit also fixes chain maker to forward the uncle hash
when creating a simulated chain (it wasn't needed until now
so we just skipped a copy there).
2017-06-30 16:42:09 +03:00
Jeffrey Wilcke
c4d28aee9b
consensus/ethash: implement Metropolis EIP 100
2017-06-30 16:41:25 +03:00
Péter Szilágyi
cd88f69715
Merge pull request #14596 from markya0616/valid_clique_vote
...
consensus/clique: choose valid votes
2017-06-23 11:21:38 +03:00
Péter Szilágyi
514659a023
consensus/clique: minor cleanups
2017-06-23 11:06:38 +03:00
mark.lin
5c53a5be66
consensus/clique: fix typo and don't add snapshot into recents again
2017-06-20 10:20:45 +08:00
mark.lin
db6e695002
consensus/clique: choose valid votes
2017-06-14 16:49:33 +08:00
S. Matthew English
061889d4ea
rlp, trie, contracts, compression, consensus: improve comments ( #14580 )
2017-06-12 14:45:17 +02:00
Konrad Feldmeier
2fefe4baa0
consensus: Fix makedag epoch
...
`geth makedag <blocknumber> <path>` was creating DAGs for
`<blocknumber>/<epoch_length> + 1`, hence
it was impossible to create an epoch 0 DAG.
This fixes the calculations in `consensus/ethash/ethash.go` for
`MakeDataset` and `MakeCache`, and applies `gofmt`.
2017-06-12 11:15:16 +02:00
Péter Szilágyi
309da541de
consensus/clique: cache block signatures for fast checks
2017-05-29 22:07:02 +03:00
Felix Lange
11cf5b7ead
consensus/ethash: fix TestCalcDifficulty
2017-05-24 15:40:54 +02:00
Jeffrey Wilcke
a5f6a1cb7c
consensus, core, core/vm, parems: review fixes
2017-05-18 09:05:58 +02:00
Jeffrey Wilcke
8a4c1fb799
consensus/ethash: set time to current instead of parent time
2017-05-18 09:05:58 +02:00
Jeffrey Wilcke
10a57fc3d4
consensus, core/*, params: metropolis preparation refactor
...
This commit is a preparation for the upcoming metropolis hardfork. It
prepares the state, core and vm packages such that integration with
metropolis becomes less of a hassle.
* Difficulty calculation requires header instead of individual
parameters
* statedb.StartRecord renamed to statedb.Prepare and added Finalise
method required by metropolis, which removes unwanted accounts from
the state (i.e. selfdestruct)
* State keeps record of destructed objects (in addition to dirty
objects)
* core/vm pre-compiles may now return errors
* core/vm pre-compiles gas check now take the full byte slice as argument
instead of just the size
* core/vm now keeps several hard-fork instruction tables instead of a
single instruction table and removes the need for hard-fork checks in
the instructions
* core/vm contains a empty restruction function which is added in
preparation of metropolis write-only mode operations
* Adds the bn256 curve
* Adds and sets the metropolis chain config block parameters (2^64-1)
2017-05-18 09:05:58 +02:00
Péter Szilágyi
36a800a1d2
common/bitutil, consensus/ethash: reusable bitutil package
2017-05-05 16:00:11 +03:00
Martin Holst Swende
14cc40a31a
Hive-test fixes ( #14419 )
...
* core: Fix for consensus test gasLimit > 2^63-1 https://github.com/ethereum/tests/blob/develop/BlockchainTests/bcInvalidHeaderTest.json#L238
* core: fix testcase for uncle gasUsage > gasLimit : https://github.com/ethereum/tests/blob/develop/BlockchainTests/EIP150/bcUncleHeaderValiditiy.json#L986
* math/big: rename TTM63m1 -> MaxBig63, + go fmt
* core: documentation
2017-05-04 13:53:42 +03:00
Péter Szilágyi
bcf2465b0b
consensus/clique: fix overflow on recent signer check around genesis
2017-05-03 11:01:06 +03:00
Péter Szilágyi
f8acc0af7e
consensus/ethash: fix a timestamp update race
2017-05-02 16:48:36 +03:00
Péter Szilágyi
65e1095c3f
consensus/ethash: close mmap before rename, windows limitation
2017-04-14 11:32:47 +03:00
Felix Lange
b27589517a
consensus/ethash: simplify concurrency in VerifyHeaders
...
This change removes a convoluted use of sync/atomic from VerifyHeaders.
It also fixes the annoying error about future blocks.
2017-04-12 19:38:30 +02:00
Péter Szilágyi
a7b9e484d0
consensus, core, ethstats: use engine specific block beneficiary ( #14318 )
...
* consensus, core, ethstats: use engine specific block beneficiary
* core, eth, les, miner: use explicit beneficiary during mining
2017-04-12 16:38:31 +03:00
Péter Szilágyi
6b7ae4e751
consensus/clique, internal/web3ext: support hash based API queries ( #14321 )
...
* consensus/clique, internal/web3ext: support hash based API queries
* consensus/clique: make RPC return types public
2017-04-12 15:37:10 +03:00
Péter Szilágyi
feeccdf4ec
consensus/clique: Proof of Authority ( #3753 )
...
This PR is a prototype implementation of plugable consensus engines and the
Clique PoA protocol ethereum/EIPs#225
2017-04-10 12:24:12 +02:00
Péter Szilágyi
b801be99d4
consensus, eth: don't CPU mine by default during remote mining
2017-04-07 17:22:06 +03:00
Péter Szilágyi
158d603528
consensus, core: drop all the legacy custom core error types
2017-04-06 17:34:19 +03:00
Péter Szilágyi
09777952ee
core, consensus: pluggable consensus engines ( #3817 )
...
This commit adds pluggable consensus engines to go-ethereum. In short, it
introduces a generic consensus interface, and refactors the entire codebase to
use this interface.
2017-04-05 00:16:29 +02:00