Commit graph

1329 commits

Author SHA1 Message Date
JukLee0ira
2d89951e5b all: use errrors.New instead of empty fmt.Errorf 2024-06-14 19:19:21 +08:00
JukLee0ira
0aab4ced98 common: add binary variables for system contract 2024-06-06 19:33:59 +08:00
Daniel Liu
025213fb1e
Merge pull request #551 from JukLee0ira/nil
remove redundant error check in function getValidators
2024-05-31 17:13:32 +08:00
JukLee0ira
08432b8a0f hook: remove redundant error check in function getValidators 2024-05-29 15:11:01 +08:00
Gary
0245344338 add TraceCall, backend.StateAtBlock(), RPCGasCap
update gen_config.go by tool `gencodec`
2024-05-17 21:34:34 +08:00
Daniel Liu
7a95b4f907 core, eth, internal/ethapi: create access list RPC API (#22550) 2024-05-14 23:27:23 +08:00
Daniel Liu
5cb014b60f core, eth/tracer: initialize tracer statedb in CaptureStart (#22333) 2024-05-14 23:27:23 +08:00
Daniel Liu
b8974be16e eth/state, les/state, et/tracers: properly init statedb accesslist (#22480) 2024-05-14 23:15:35 +08:00
Daniel Liu
01e1728a94 all: add support for EIP-2718, EIP-2930 transactions (#21502) 2024-05-14 23:15:35 +08:00
Daniel Liu
48f9bbed50 core: types: less allocations when hashing and tx handling (#21265) 2024-05-13 22:07:03 +08:00
Daniel Liu
6338a4195b core: kill off managed state, use own tiny noncer for txpool (#19810) 2024-05-10 19:48:10 +08:00
Daniel Liu
ec50ca36d9 core, eth, trie: use common/prque (#17508) 2024-05-09 18:38:27 +08:00
Daniel Liu
56d9a6e39c core, filters: not set log.BlockHash 2024-04-20 16:27:21 +08:00
Daniel Liu
1c9f1d8279 all: change TxPreEvent to TxsPreEvent (#16720) 2024-03-28 11:16:21 +08:00
Daniel Liu
7cffa1d0aa eth/filters: replace fmt.Println with b.Log in tests (#19670) 2024-03-18 10:08:25 +08:00
gary rong
65b48159d1 eth/filters: fix the block range assignment for log filter (#17284) 2024-03-18 10:08:25 +08:00
Daniel Liu
43f038dbac eth/filters: simplify switches (#17267) 2024-03-18 10:08:25 +08:00
Ian Macalinao
40ee6f87f0 eth/filters: improve error message for invalid filter topics (#17234) 2024-03-18 10:08:25 +08:00
Daniel Liu
a4b557b062 accounts, eth, les: blockhash based filtering on all code paths (#16734) 2024-03-18 10:08:25 +08:00
knarfeh
19b84ff36c eth/filters: make filterLogs func more readable (#16920) 2024-03-18 10:08:25 +08:00
Daniel Liu
7197172b09 eth/filter: check nil pointer when unsubscribe (#16682)
* eth/filter: check nil pointer when unsubscribe

* eth/filters, accounts, rpc: abort system if subscribe failed

* eth/filter: add crit log before exit

* eth/filter, event: minor fixes
2024-03-18 10:08:25 +08:00
Liam
bbab326e22
after we use time.Ticker it didn't allow to have 0 time duration (#493)
* after we use time.Ticker it didn't allow to have 0 time duration
2024-03-15 19:07:05 +11:00
Domino Valdano
69b4383528 eth/filters, ethereum: EIP-234 add blockHash param for eth_getLogs 2024-03-14 11:52:42 +08:00
Daniel Liu
b2a767e660 eth: let function HeaderByNumber return error when header is nil 2024-03-12 10:40:03 +08:00
Daniel Liu
f34087534d eth: check err before return in function StateAndHeaderByNumber 2024-03-12 10:40:03 +08:00
Daniel Liu
4616d59935 internal/ethapi: support block number or hash on state-related methods (#19491)
* Support for EIP-1898.
2024-03-12 10:40:03 +08:00
Andrei Maiboroda
b022ba2c5d core/vm: make INVALID a defined opcode (#24017)
* core/vm: Define 0xfe opcode as INVALID

* core/vm: Remove opInvalid as opUndefined handles it

Co-authored-by: Alex Beregszaszi <alex@rtfs.hu>
2024-03-01 14:13:24 +08:00
Daniel Liu
7a55b9f788 core/state: remove unused methods ReturnGas (#23092) 2024-03-01 14:13:23 +08:00
Paweł Bylica
192edc0c63 core/vm: use uint256 in EVM implementation (#20787)
* core/vm: use fixed uint256 library instead of big

* core/vm: remove intpools

* core/vm: upgrade uint256, fixes uint256.NewFromBig

* core/vm: use uint256.Int by value in Stack

* core/vm: upgrade uint256 to v1.0.0

* core/vm: don't preallocate space for 1024 stack items (only 16)

Co-authored-by: Martin Holst Swende <martin@swende.se>
2024-03-01 14:13:23 +08: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
c7a42fd7c9
resolve sync issue by passing right round number (#384) 2023-12-27 22:14:13 +11:00
Daniel Liu
bd3e2600fd eth/downloader: make Broadcast run after Wait (#264) 2023-12-18 10:49:40 +08:00
Liam
b4bd070837
Improve log (#368)
* improve log
2023-11-26 22:04:08 +11:00
Banana-J
92689943a0
Revisit the solution from PR-260, try keep the API consistent by not incrementing the nonce for trading&lending tx (#371) 2023-11-25 00:04:59 +11:00
Liam Lai
824d7b232f resolve conflict 2023-11-20 23:53:49 +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
75661b488b
add notification script (#350)
* add notification script

* skip always test
2023-11-06 20:54:16 +11:00
Daniel Liu
e2359d9b8c filter zero address in function GetCandidates 2023-10-24 12:15:24 +08:00
Daniel Liu
320b358830 replace package sort with common/sort 2023-10-23 22:51:06 +08:00
Daniel Liu
7adb98fbe8 update gas fee 2023-10-16 11:24:47 +08:00
Daniel Liu
726172903b change min and max gas price in SuggestPrice 2023-10-16 11:24:47 +08:00
Daniel Liu
9e860e4c3f eth/filters: fix blockHash in eth_getfilterchanges (#208) 2023-08-31 15:26:33 +08:00
Liam Lai
5623ce8de0 merge from master 2023-07-30 16:50:45 +10:00
Anil Chinchawale
d2ce55ec96
Merge pull request #237 from gzliudan/fix-empty-address
fix empty address
2023-06-16 14:23:44 +05:30
wgr523
2f10aac60f
eth: ensure from<to when tracing chain (credits Chen Nan via bugbounty) (#251)
Co-authored-by: Martin Holst Swende <martin@swende.se>
2023-05-25 14:22:23 +10:00
wgr523
a67b347ba8
fix comment of todo (#267) 2023-05-20 17:46:06 +08: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
Daniel Liu
fd6cbd5df1 fix nonce error for debug trace api (#256) 2023-05-06 09:50:25 +08:00
Daniel Liu
3c21125da5 fix EmptyAddress 2023-03-16 11:47:39 +08:00
Liam
9552500335
xdpos API getV2Block (#227) 2023-03-05 02:17:46 +08:00
span14
eac0e42584 fix typo 2023-02-02 12:13:16 -05:00
span14
5aff0d35db fix typo 2023-01-30 22:22:57 -05:00
span14
abb0dcc48b add confirmed loopup 2023-01-30 22:22:57 -05: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
f57e2c3577
Bug Fix on memory leak when doing send tx, block etc to peers (#212)
* resolve conflict

* update version number
2022-12-09 14:54:27 +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
Jerome
ff6ee67462
Fix memory leak when doing send tx, vote, block etc to peers (#211) 2022-11-28 21:52:36 +11:00
Daniel Liu
42379f530f
internal/ethapi: EstimateGas and Call handle revert error(#173) (#200)
hot fix for EstimateGas and Call handle revert error https://github.com/XinFinOrg/XDPoSChain/issues/173
2022-10-27 17:25:25 +08:00
Liam Lai
30d7958a6f skip process message whenever synchronising 2022-10-15 01:05:38 +08:00
Liam
55d994690a
Xin 248 correct timeout message skip rule (#192)
* test on current devnet issue

* change to times 3 to fit correct dist
2022-10-15 00:29:02 +08:00
Liam
a75c315eb5
fix penalty calculation bug (#189) 2022-10-09 14:06:04 +08:00
Liam
f98d513f88
fix skip snapshot block (#178) 2022-09-26 22:44:20 +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
Liam
765d962d8b
xin-202 fix sync issue on v2 blocks (#108)
* fix sync issue on v2 blocks

* change back to get header method
2022-07-12 16:57:18 +02:00
Liam
e55fca6703
log improvement and some refactor (#110) 2022-07-10 01:11:28 +02:00
Liam
35b964fc16
revert change peer address change (#101) 2022-06-21 00:11:06 +02:00
Liam
2d25b89610
xin-201 skip message while synchronize (#100) 2022-06-19 10:59:23 +02:00
Liam
ac5096d692
upgrade log level and log message (#102) 2022-06-19 10:59:09 +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
ca6a645fca
refactor and improve log (#92)
* refactor and improve log

* fix conflict and test
2022-05-23 02:34:32 +01:00
Jerome
ca336f6029
update the remaining consensus v2 related types to core (#94) 2022-05-22 14:39:04 +10:00
Liam
5fffa0cd43
xin-188 update penalty limit epoch constant for v2 and shorter test (#87) 2022-05-18 11:17:32 -04:00
wgr523
8fde52c512
Xin 145 (#82)
* add HandleProposedBlock() in procFutureBlocks()

* add proposedBlockHandler for downloader
2022-04-22 00:12:44 +08: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
wgr523
b790b077c9
XIN-164 add GapNumber inside Vote, and tests (#74) 2022-03-25 23:22:24 +08:00
Liam
a3d5d82722
xin-168 node stops because dead lock on timeout events (#73)
* fix race condition issue

* add test to prove
2022-03-25 21:24:35 +11: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
7fca1a627a
xin-144 avoid duplicate messages (#68)
* avoid duplicate messages

* update comment
2022-03-08 19:36:02 +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
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
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
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
Jerome
76724b06d7
only broadcast vote, timeout and syncinfo if the peer do not have it (#53) 2022-02-12 10:17:19 +11:00
Liam
da336f53b1
xin-95 add xdpos2 protocol (#47)
* add xdpos2 protocol

* update xdpos2 command
2022-02-05 23:25:23 +03: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
Liam
aab040fd55
adjust lock (#39)
* adjust lock

* change error log

* change error log
2022-01-16 13:31:23 +03: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
Liam
3ac908be8d
xin-104 (#36)
* hand and vote self mined block

* add error log
2022-01-08 10:56:00 +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
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
249d2b5b6d implemente proposeblock handler and SyncInfo handler 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
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
olumuyiwadad
afe58d79fc fix api trace block & Change option pending block. 2021-11-11 18:49:57 +05:30
Jianrong
e34311ff45 Remove unused consensus v1 methods 2021-10-10 16:04:34 +11:00