Daniel Liu
01e1728a94
all: add support for EIP-2718, EIP-2930 transactions ( #21502 )
2024-05-14 23:15:35 +08:00
Wanwiset Peerapatanapokin
2bbecdcbbc
revert https://github.com/XinFinOrg/XDPoSChain/pull/497 behavior for v1 engine ( #531 )
2024-05-13 19:26:26 +08:00
Daniel Liu
ec50ca36d9
core, eth, trie: use common/prque ( #17508 )
2024-05-09 18:38:27 +08:00
Wanwiset Peerapatanapokin
3fe54e28d3
remove uncle block handling ( #523 )
2024-04-23 09:44:49 +04:00
Liam
5d4ea760d5
revert rename change as change db field name and stops block chain reading from db ( #517 )
2024-04-08 20:40:20 +08:00
wgr523
c16bd66a8d
Merge pull request #498 from XinFinOrg/ppx-01
...
PPX-01 add verification of vote signer belonging to masternodes
2024-04-01 20:48:16 +08:00
Liam
d76a573cf2
PPX-01 rename NextEpochMasterNodes to NextEpochCandidates ( #510 )
2024-03-31 07:27:13 +11:00
Wanwiset Peerapatanapokin
77390d30ce
consensus/clique: add some missing checks ( #22836 ) and updated to latest go-eth code ( #474 )
2024-03-26 13:22:24 +04:00
Banana-J
816dce9527
drop peer if received bad block data which does not include the validator field ( #494 )
...
Co-authored-by: wjrjerome <wjrjerome@babylonchain.io>
2024-03-23 09:18:21 +11:00
Gary
04c3f483b8
fix: add verification of vote signer belonging to masternodes
2024-03-19 20:40:00 +08:00
Banana-J
3051b2de41
use rlock instead of lock in v1 consensus engine ( #483 )
...
Co-authored-by: wjrjerome <wjrjerome@babylonchain.io>
2024-03-10 09:51:05 +11:00
Banana-J
c7cb63dd09
fix: error handling on x.getEpochSwitchInfo in sendTimeout should return error ( #444 )
...
Co-authored-by: wjrjerome <wjrjerome@babylonchain.io>
2024-03-09 16:25:47 +11:00
Banana-J
07d40a0038
fix: add lock for haserror variable in timeout.go ( #443 )
...
Co-authored-by: wjrjerome <wjrjerome@babylonchain.io>
2024-03-04 22:05:19 +11:00
Banana-J
e324d7d18f
fix: race condition of x.signer in v1 consensus ( #445 )
...
Co-authored-by: wjrjerome <wjrjerome@babylonchain.io>
2024-03-03 22:27:01 +11:00
Banana-J
a54a645cda
fix: always check for error value and return nil, err where possible ( #426 )
...
Co-authored-by: wjrjerome <wjrjerome@babylonchain.io>
2024-02-11 20:32:24 +11:00
Liam
54b254e25c
lower log level for pretty log ( #420 )
...
Co-authored-by: Liam Lai <liam.lai@datameshgroup.com.au>
2024-02-11 20:27:37 +11:00
Banana-J
2504961a33
fix: replace all time.after with the time.newtimer ( #400 )
2024-01-27 21:01:24 +11:00
Wanwiset Peerapatanapokin
aaa246f60e
PDF-01 ( #397 )
...
* replace deprecated ioutil lib calls
* fix for FileInfo type required
* fix for ioutil.Discard
* fix .Discard
* fix for go-bindata generated files
2024-01-19 15:05:03 +04:00
Liam Lai
4446931e9e
change vote log level
2023-12-29 22:49:52 +11:00
Jianrong
8e1f71e86e
Fix the typo missied to missed
2023-12-28 23:03:53 +11:00
Jianrong
e83c0a0954
Add tests to cover the new GetMissiedRoundsInEpochByBlockNum API
2023-12-28 17:37:30 +11:00
Jianrong
6740545358
change the API to be block num based
2023-12-28 15:13:05 +11:00
Jianrong
e28b550a24
Add a new API to help debug when there are missed rounds
2023-12-28 15:13:05 +11:00
Liam
c7a42fd7c9
resolve sync issue by passing right round number ( #384 )
2023-12-27 22:14:13 +11:00
Banana-J
e30d909643
Add config into network information API ( #381 )
2023-12-19 19:02:32 +11:00
Liam
47bfdf7635
Move masternode in v2 config ( #372 )
...
* move masternode in v2 config
* update number to meet 7 vote for current setup
* add test
* update all failed test
* fix test
* remove comment
* remove comment
* fix test
2023-11-29 11:11:58 +11:00
Liam
b4bd070837
Improve log ( #368 )
...
* improve log
2023-11-26 22:04:08 +11:00
Liam Lai
824d7b232f
resolve conflict
2023-11-20 23:53:49 +11:00
Liam
c215316744
Make masternode dynamic ( #356 )
...
* make masternode dynamic
* fix all the tests
* remove cmt
* fix test again
2023-11-16 23:59:19 +11:00
Liam
84994df759
Merge pull request #351 from XinFinOrg/bump-golang-1.21
...
Bump golang 1.21
2023-11-07 10:35:42 +11:00
Liam
24d02fe2b4
check v2 switch block is epoch number ( #342 )
...
* check v2 switch block is epoch number
* revert sync pr
* add test
* make default block number valid
* fix log
* fix test
2023-10-30 19:03:34 +11:00
Daniel Liu
0b06bc3a5d
not compare strings in func CompareSignersLists
2023-10-23 22:51:06 +08:00
Liam
45c1518ea1
Devnet fix on ci improvement ( #314 )
...
* fix ci
* update pr template
2023-08-21 10:07:00 +10:00
Liam
938db0afcc
Bug Fix: V2 getSigner API ( #313 )
2023-08-20 10:56:08 +10:00
Liam Lai
69c38ac490
fix broken the tests and one bug
2023-08-02 09:27:46 +10:00
Wanwiset Peerapatanapokin
a959bea092
add standbynodes in GetMasternodesByNumber similar way to subnet
2023-07-21 10:07:05 +04:00
Banana-J
2c1aba814e
add timestamp in v2 block response ( #290 )
2023-07-15 11:33:36 +10:00
Liam
96f28b8bc6
enhance api for subnet project ( #289 )
2023-07-14 20:04:01 +10:00
wgr523
d578e092cd
stop reorg at committed blocks ( #276 )
...
This PR makes committed blocks non-reorg-able inside `Blockchain` struct. This ensures V2 consensus safety property in the aspect of blockchain head: committed blocks' state will not be reorg and users will always see committed blocks (or their child blocks) as current head of the blockchain.
* stop reorg at committed blocks
* fix tests
* fix tests
2023-06-08 01:16:13 +08:00
Liam
2df16bbd37
merge waitPeriod into minePeriod ( #274 )
...
* merge waitperiod into mindePeriod
* merge waitperiod into mindePeriod
2023-05-31 23:40:50 +10:00
Liam
706292e1a1
Add debug msg and reset devnet config ( #270 )
...
* add debug msg
* remove all devnet config since we need to reset devnet
2023-05-24 14:52:58 +10:00
wgr523
cd74061ac2
Extend masternode candidate ( #261 )
...
* V2 truncate MaxMasternodes from candidates after penalty,
V1 same as before
TestUpdateMultipleMasterNodes: test V2, in snapshot we have all candidates, but at epoch switch, we pick MaxMasternodes
* code looks better
2023-05-16 21:43:56 +08:00
Liam
153f8d296d
Fix API penalty bug and add more info in api ( #262 )
...
* fix api bug
* remove cmd
2023-05-16 21:23:02 +10:00
Liam
7b657f0c4e
API: getMasternode and getPoolStatus ( #258 )
...
* API: getMasternode and getPoolStatus
* fix test
2023-05-01 23:01:39 +10:00
Liam
9552500335
xdpos API getV2Block ( #227 )
2023-03-05 02:17:46 +08:00
Liam Lai
814a276ae3
remove test files
2023-02-23 14:22:59 +08:00
Liam Lai
65ffdcd0a9
fix test
2023-02-23 14:22:30 +08:00
Jerome
1430b74a98
Add more log info during updateM1 and change log level on devnet to 3 ( #223 )
2023-01-22 22:53:22 +11:00
Jerome
2ca1d0461d
Fix issue when resync is not getting the right consensus config values ( #221 )
...
* Fix issue when resync is not getting the right consensus config values
* add test and fix log bug
* fix test
* delete temp file
Co-authored-by: Liam Lai <liam.icheng.lai@gmail.com>
2023-01-17 21:34:42 +08:00
Liam
c4f9a552e5
Multi config bug fix ( #216 )
...
* refactor multi config
remove pool cleaner
correct message and log level
2022-12-17 20:23:46 +08:00
Liam
6ffbd3e141
Xin 259 support multi v2 config ( #210 )
...
* update timeout period and waittime
* remove wrong comment
* update config for preparing test
2022-12-06 20:08:56 +08:00
Liam
f9c0c40515
change devnet switch block for large scale test ( #205 )
...
* change switch block
* use mainnet masternode
* update mining and timeout time
* add timer on round number
* remove bug code
2022-11-12 12:19:28 +08:00
Liam
a75c315eb5
fix penalty calculation bug ( #189 )
2022-10-09 14:06:04 +08:00
Liam
2b3e059abf
xin-244 re-snyc blocks from v1 to v2 ( #186 )
...
* xin-244 re-snyc blocks from v1 to v2
* remove log
* correct log
* constant value
* remove comment
2022-10-04 23:33:13 +08:00
Liam
dad7eff036
Xin 231 sync issues - too far messages should omit and skip to process ( #177 )
...
* omit too far v2 messages
* update error msg
* improve log
* fix test
* remove useless file
2022-09-05 10:38:45 +08:00
Jerome
c710bd98a5
Xin-200 Vote Equivocation ( #111 ) ( #172 )
...
* Xin-200 Vote Equivocation (#111 )
* add vote same round detection
add test for vote same round detect
finish process equivocate (not finish report)
* finish vote equivocation report, refactor code (vote -> forensics)
* finish process equivocate and report, and test
* add return err
Co-authored-by: wgr523 <wgr523@gmail.com>
2022-08-13 11:50:56 +05:30
Jerome
4eea723717
Add API to get latest committed blockInfo, also send it via 'block' message type to stats server ( #113 )
2022-07-16 16:14:36 +10:00
Liam
833f70bdb7
xin-203 fix wrong config hash and update v2 params on mainnet ( #109 )
...
* fix wrong config hash and update v2 params on mainnet
* update config and all the test
* hard code binary into code
* add default config for testing
* update test timestamp
2022-07-12 16:56:55 +02:00
Liam
90395f5423
add initial in verifyheader ( #112 )
2022-07-11 17:32:22 +02:00
Liam
e55fca6703
log improvement and some refactor ( #110 )
2022-07-10 01:11:28 +02:00
Jerome
cfb5c6ce39
pass the forensics Id at root level ( #107 )
2022-07-05 22:01:36 +10:00
Jerome
533fe250db
forensics shall send unique id ( #106 )
2022-07-05 00:31:09 +02:00
Jerome
86ec908091
add DivergingBlockNumber in forensics report ( #105 )
2022-06-30 15:07:09 +02:00
Jerome
3ebaea1945
update forensics proof data structure to accomedate vote type ( #104 )
...
* update forensics proof data structure to accomedate vote type
* refactor log
* change blocknum type to uint64
* fix test
Co-authored-by: Liam Lai <liam.icheng.lai@gmail.com>
2022-06-29 23:58:18 +02:00
Liam
ac5096d692
upgrade log level and log message ( #102 )
2022-06-19 10:59:09 +02:00
Liam
1cac82825d
xin-176 use local masternode to verify signature ( #98 )
...
* use local masternode to verify signature
* refactor verify header
2022-06-05 12:53:50 +02:00
Liam
50ae0c95fd
xin-197 xin-198 fix devnet issues ( #99 )
...
* xin-197 xin-198 fix devnet issues
* update log
2022-06-05 11:06:32 +02:00
Liam
0317e871d4
add initial function during load latest block from db ( #96 )
2022-05-29 11:28:08 +02:00
Jerome
7effc71547
allow forensics send msg to stats server ( #95 )
...
* allow forensics send msg to stats server
* add test for forensics reporting mechanism
2022-05-25 19:42:30 +10:00
Liam
ca6a645fca
refactor and improve log ( #92 )
...
* refactor and improve log
* fix conflict and test
2022-05-23 02:34:32 +01:00
Liam
882add50f5
bug fix for snapshot failed to load from db ( #91 )
2022-05-22 19:15:25 -05:00
Jerome
455cacc1b7
move XDC consensus types into core ( #93 )
2022-05-22 11:43:25 +10:00
wgr523
727202cac9
remove verifyQC from ProposedBlockHandler since verifyQC is already in verifyHeader ( #88 )
2022-05-18 11:18:10 -04:00
Liam
2b40d1337f
initial snapshot when there is no snapshot ( #86 )
2022-05-18 11:17:49 -04:00
Liam
5fffa0cd43
xin-188 update penalty limit epoch constant for v2 and shorter test ( #87 )
2022-05-18 11:17:32 -04:00
Jerome
2f40b63ca8
Re-define the forensics report format and complete the internal forensics logic ( #90 )
2022-05-16 17:30:45 +10:00
Jerome
ba144d898f
process forensics ( #84 )
...
* process forensics
* Found common signers at same round for forensics
* find attackers
* add test for forensics
* run setCommittedQCs after processForensics
2022-05-03 21:18:28 +10:00
Liam
98621f0993
Merge branch 'dev-upgrade' into xin-176
2022-05-02 21:55:12 -06:00
wgr523
49cecaa9af
XIN-176 fix ( #85 )
...
* fix bug in isEpochSwitchAtRound, fix penalty test TestHookPenaltyV2Mining
* fix authorised test
* fix things
* revert a test
2022-05-02 22:46:55 -05:00
Jerome
eb35d4e32e
Add set committed QC function in forensics ( #83 )
2022-04-23 10:33:56 +10:00
Liam Lai
d0cde5c51e
fix new masternode bug
2022-04-14 02:07:26 -06:00
Jerome
6c48d5be6c
Xin 181 178 ( #80 )
...
* add skeleton forensics
* remove duplicated penalty check in verify header
2022-04-10 09:40:32 +10:00
Liam
92857e50e5
xin-177 check penalty only on epoch switch block and Add Hook on initial ( #78 )
...
* check penalty only on epoch switch block
* skip calculate penalty on first v2 block
* clean code, its doing same thing
2022-04-02 22:59:39 -06:00
Jerome
0ded664f0c
add highestSelfMinedRound to make sure we mine once per round ( #79 )
2022-04-03 12:45:25 +10:00
Jerome
0241d40699
verify headers shall use parent block if not present in the chain ( #77 )
2022-04-01 00:11:04 -06:00
Jerome
cb67e8e26a
Xin 163 ( #76 )
...
* clean up the pool old round
* add unit test to cover the vote key format
* add gapNumber to the vote pool key
* fix race condition in pool
* remove verify gap number in vote handler
2022-04-01 14:59:16 +11:00
Jerome
b98005a8dd
Xin 166 ( #75 )
...
* typo and checkYourturnWithinFinalisedMasternodes func name to yourturn
* remove redundant code from verifyQC
* Verify QC to optionally pass parent header. This is used to help verifyHeaders
* move difficulty into its own file
2022-03-27 20:39:40 +11:00
wgr523
b790b077c9
XIN-164 add GapNumber inside Vote, and tests ( #74 )
2022-03-25 23:22:24 +08:00
Jerome
ee025383c1
check yourturn again during prepare ( #72 )
2022-03-25 21:03:37 +11:00
Jerome
d55229677d
verify header including validator ( #71 )
...
* verify header including validator
* re-structure v1 v2 tests
* remove unused test function
* add test to check coinbase and validator address matches
* refactor engine v2 to group private functions into same file
2022-03-20 21:14:35 +11:00
Liam
fbb9e87251
fix error log ( #70 )
2022-03-14 00:14:47 +01:00
Jerome
9bb1a6e1b3
XIN-159, 160 and 161 ( #69 )
...
* XIN-159, 160 and 161
* update the bft handler to make sure we don't process dis-qualified messages
* add verify header missing checks and its tests
2022-03-13 22:00:26 +11:00
Liam
a4b362ae9a
Xin 147 initial for both first v2 block and further, also introduce getExtraField function ( #64 )
...
* refactor initial and introduce getExtraField function
* add test for initial
* refactor snapshot
* initial first snapshot only
2022-03-08 20:34:11 +01:00
Jerome
8363641b2c
check against master node list before sending out anything ( #67 )
...
* check against master node list before sending out anything
* remove duplicated signatures from QC
* add break when checking allowed to send
2022-03-08 09:12:52 +11:00
Jerome
6090b7f02e
XIN-154 fix verify header bug on Validators ( #66 )
2022-03-07 18:53:55 +08:00
Liam
d975ba4014
xin-153 Broadcast syncInfo when consecutive timeouts of same round ( #65 )
...
* Broadcast syncInfo when consecutive timeouts of same round
* add test
* revert test period
2022-03-05 01:52:20 +01:00
Jerome
e493ddfd6d
add verifyTC and verifyTimeoutMessage ( #63 )
...
* add verifyTC and verifyTimeoutMessage
* remove v2 func from adaptor
2022-03-02 09:17:57 +11:00
Jerome
d773e15ca8
Xin 137 ( #62 )
...
* add GapNumber
* fix broken countdown test
* add gapNumber to existing tests
2022-02-28 18:51:42 +11:00
Jerome
97985fda85
move verify QC into verify header, fix broken tests etc ( #61 )
2022-02-27 10:25:26 +11:00
Jerome
431c870fa0
verify vote ( #50 )
...
* verify vote
* fix vote tests and add temporary solution for initialize
* remove the drop peer comment
2022-02-26 17:42:08 +11:00
Liam
0ab7bfbcbd
Merge pull request #58 from hash-laboratories-au/XIN-125-happy-path-fix
...
Xin 125 happy path fix
2022-02-21 02:51:48 +03:00
Liam Lai
491dc911f3
refactor big int compare and fix 1 bug on headers
2022-02-21 01:16:33 +03:00
Jianrong
221326aafc
remove isemptyhash
2022-02-20 22:10:23 +11:00
Jianrong
c77a641638
add verify blockInfo function
2022-02-20 21:06:05 +11:00
Jianrong
cddeaf2db1
add v2 verify header
2022-02-19 19:36:32 +11:00
Jianrong
5733474c14
add v1 snapshot fix
2022-02-19 16:50:00 +11:00
Jianrong
125f8a8957
Split initialise v2 into two scenarios
2022-02-19 16:17:27 +11:00
wgr523
89acbdd742
XIN-121 Reward hook ( #57 )
...
* v2 Hook Reward, need test
* test reward
* fix RewardHook due to modifying params config directly (#56 )
* more test
* finish test
Co-authored-by: Jerome <wjrjerome@gmail.com>
2022-02-19 15:31:19 +11:00
wgr523
9b47146120
add calcMasternodes, HookPenalty for v2, tests ( #52 )
2022-02-13 22:15:23 +08:00
Liam
5a3acd173d
Xin-124 Deal with Block Time mine time ( #55 )
...
* add wait v2 period in miner
* add perido initial
* add mine and wait time
* update todo
* merge all xdc test config into 1
2022-02-13 11:40:47 +11:00
Liam
4424c7d01e
move config into code ( #54 )
...
* move config into code
* set devnet switch block number very high
* increase timeout and certThreshold for devnet config
Co-authored-by: Jianrong <wjrjerome@gmail.com>
2022-02-12 13:36:08 +11:00
Jerome
23cbf68307
fix vote and block insertion race condition ( #51 )
...
* fix vote and block insertion race condition
* fix race condition in the vote handler using multiple go routine
* check go routine race condition during ci cd
* remove race check as there are eth code that is failing
* remove unused signature list variable
2022-02-03 23:27:50 +11:00
Jerome
7cc2bef2d3
update adaptor for verify headers and fix vote handler to include +1 distance when checking rounds ( #48 )
2022-01-30 14:26:05 +11:00
Jerome
328d555b9b
Xin 138 ( #49 )
...
* check block header after vote pool reached
* refactor test_helper to fix issues with tests randomly failing
2022-01-30 13:00:24 +11:00
Jerome
dc15891d1f
add comment for verify steps ( #45 )
2022-01-27 21:15:09 +11:00
Liam
ff0fcd3951
add test and fix issue on happy path ( #46 )
...
* add test and fix issue on happy path
* add prepare test
* update comment
2022-01-25 10:51:17 +03:00
wgr523
05d315d2e3
finish YourTurn handling v1->v2 switch, add test ( #44 )
2022-01-23 14:26:37 +11:00
Jerome
e063f67f34
implement verify functions ( #43 )
...
* implement verify functions
* Use go routine to call verifyMsgSignature
* verify timeout msg shall use round from the msg
* add comment for verifyQC
2022-01-21 21:10:44 +11:00
Liam
646042a651
Xin 127 initial v2 function and snapshot ( #42 )
...
* initial v2 and v2 snapshot
* update based on pr feedback
* add test for initial v2 parameters
* remove comment
2022-01-20 18:27:51 +08:00
Liam
e72d4866df
Xin 118 refactor yourturn in v1 and miner ( #41 )
...
* refactor wait log into adaptor
* refactor v1 yourturn
2022-01-20 02:28:15 +11:00
Liam
aab040fd55
adjust lock ( #39 )
...
* adjust lock
* change error log
* change error log
2022-01-16 13:31:23 +03:00
Jerome
38c3582841
Add v2 yourturn ( #38 )
...
* Add v2 yourturn
* add isEpochSwitchByRound into YourTurn
Co-authored-by: Gerui Wang <wgr523@gmail.com>
2022-01-16 19:18:01 +11:00
Jerome
f8d3f9f8c6
Xin 113 is epoch switch ( #37 )
...
* add isEpochSwitch function and refactor utils
* fix broken first v2 epoch switch block
* use adaptor epoch switch function to determine v1 v2 epoch swtich block
* add test for the GetMasternodesByNumber and GetCurrentEpochSwitchBlock function
* add v2 test for isAuthroisedAddress
* Use GetCurrentEpochSwitchBlock in findNearestSignedBlock api
2022-01-14 21:38:38 +11:00
wgr523
5c326961ce
isEpochSwitch, getMasternodes ( #35 )
...
* isEpochSwitch, getMasternodes
* recursive getEpochSwitchInfo, getMasternodes
* more log, make getEpochSwitchInfo clearer
2022-01-08 00:17:21 +08:00
Jerome
ebbbf26127
add isAuthorisedAddress function for v2 consensus ( #34 )
...
* add isAuthorisedAddress function for v2 consensus
* update isAuthorisedAddress log messages
2022-01-03 17:06:04 +11:00
Jianrong
15275ded65
Commit grand grand parent block(continous rounds) if enough votes or by proposedBlockHandler
2022-01-01 16:20:33 +11:00
Liam
35eebabae0
xin-106 add generated message into its pool ( #32 )
...
* add debug log and change to contain or add for cache
* add generated message into its pool
2021-12-30 11:45:22 +11:00
Jianrong
e0d66d4ea8
add syncInfo test
2021-12-30 11:45:22 +11:00
Jianrong
5f9fd80733
add more propose block handler test
2021-12-30 11:45:22 +11:00
Jianrong
2a94cdebe5
XIN-109: Add more proposed block handler tests
2021-12-30 11:45:22 +11:00
Liam
6c5fe34615
v2 miner function implementation and happy path ( #22 )
...
* 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 v2 engine functions placeholder
* typo fix on the consensus v2 function placeholders
* add countdown timer
* make initilised private to countdown
* add v2 specific config struct
* rename some config variables
* 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>
* generate and verify timeout message
* 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
* vote and timeout handlers
* fix pool test
* bft miner preparation
* review comment improvement
* update
* relocate tests
* add and remove comment
* fix the syntax error
* update network layer and add handler functions (#23 )
* update network layer and add handler functions
* fix test syntax error
* add ProcessQC implementation
* add ProcessQC tests
* add snapshot test
* add wait qc process
* remove testing files
* add route snapshot
* fix merge issue
* add default v2 behaviour (#24 )
* add v2 ecrecover functions and refactor test
* fix all the tests
* put minimun lock variable
* debugging prepare and seal v2 blocks
* Trigger proposeBlockHandler after v2 block received and verified in fetcher
* skip snapshot apply related tests
* update test check
* rename bfter to bft handler and ignore normal behviour
* fix bugs during local 4 node run
* fix test
* fix sync info test
* fix bugs during local 4 node run
* rebase and fix bug
* remove hook validators function"
Co-authored-by: wgr523 <wgr523@gmail.com>
Co-authored-by: Jianrong <wjrjerome@gmail.com>
2021-12-30 11:45:18 +11:00
Jianrong
6e13b4d6a2
fix proposed block handler based on review comments
2021-12-30 11:12:21 +11:00
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