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