Commit graph

1724 commits

Author SHA1 Message Date
JukLee0ira
5ad950ea51
all: Remove concept of public/private API definitions #25053 (#1141) 2025-06-24 15:15:25 +08:00
Daniel Liu
937b3d75e0
core, eth, trie: prepare trie sync for path based operation #21504 (#1046) 2025-06-21 08:30:25 +08:00
Daniel Liu
8e6d98e121
eth/downloader: change intial download size #21366 (#1045)
This changes how the downloader works, a little bit. Previously, when block sync started,
we immediately started filling up to 8192 blocks. Usually this is fine, blocks are small
in the early numbers. The threshold then is lowered as we measure the size of the blocks
that are filled.

However, if the node is shut down and restarts syncing while we're in a heavy segment,
that might be bad. This PR introduces a more conservative initial threshold of 2K blocks
instead.

Co-authored-by: Martin Holst Swende <martin@swende.se>
2025-06-20 16:32:47 +08:00
Daniel Liu
67754ff3d4
eth/downloader: save the correct delivery time for state sync #21427 (#1044)
Co-authored-by: Péter Szilágyi <peterke@gmail.com>
2025-06-19 16:34:30 +08:00
Daniel Liu
5e8a096844
eth/fetcher, trie: unit test reliability fixes #23020 #23415 (#1070)
Some tests take quite some time during exit, which I think causes
some appveyor fails like this:

    https://ci.appveyor.com/project/ethereum/go-ethereum/builds/39511210/job/xhom84eg2e4uulq3

One of the things that seem to take time during exit is waiting
(up to 100ms) for the syncbloom to close. This PR changes it to use
a channel, instead of looping with a 100ms wait.

This also includes some unrelated changes improving the reliability of
eth/fetcher tests, which fail a lot because they are time-dependent.

Co-authored-by: Martin Holst Swende <martin@swende.se>
2025-06-17 13:21:18 +08:00
Daniel Liu
45d89bd4d1
trie: faster snapshot generation #22504 (#1062) 2025-06-17 13:13:14 +08:00
Daniel Liu
93c2745b7b
all: disable recording preimage of trie keys #21402 (#1054) 2025-06-17 13:10:47 +08:00
Daniel Liu
e8c9fdde0f
eth/downloader: refactor downloader + queue #21263 (#1041)
* eth/downloader: refactor downloader + queue

downloader, fetcher: throttle-metrics, fetcher filter improvements, standalone resultcache

downloader: more accurate deliverytime calculation, less mem overhead in state requests

downloader/queue: increase underlying buffer of results, new throttle mechanism

eth/downloader: updates to tests

eth/downloader: fix up some review concerns

eth/downloader/queue: minor fixes

eth/downloader: minor fixes after review call

eth/downloader: testcases for queue.go

eth/downloader: minor change, don't set progress unless progress...

eth/downloader: fix flaw which prevented useless peers from being dropped

eth/downloader: try to fix tests

eth/downloader: verify non-deliveries against advertised remote head

eth/downloader: fix flaw with checking closed-status causing hang

eth/downloader: hashing avoidance

eth/downloader: review concerns + simplify resultcache and queue

eth/downloader: add back some locks, address review concerns

downloader/queue: fix remaining lock flaw

* eth/downloader: nitpick fixes

* eth/downloader: remove the *2*3/4 throttling threshold dance

* eth/downloader: print correct throttle threshold in stats

Co-authored-by: Martin Holst Swende <martin@swende.se>
Co-authored-by: Péter Szilágyi <peterke@gmail.com>
2025-06-17 13:01:06 +08:00
wgr523
e13265a7d7
record total minted into smart contract (#1026)
* feat: record total minted into smart contract

* feat: GetCurrentTotalMinted API
2025-06-16 02:31:33 -07:00
Daniel Liu
2dd50b63ed
eth/downloader: improve test (#1043)
* eth/downloader: more context in errors #21067

* eth/downloader: fix spuriously failing tests #21149
2025-05-26 15:16:39 +08:00
Daniel Liu
e581aa5240
eth/downloader: flush state data before exit #16280 (#1042) 2025-05-26 15:15:32 +08:00
Daniel Liu
6395c15280
core/state, eth, trie: stabilize memory use, fix memory leak #21491 (#1040) 2025-05-20 15:14:47 +08:00
Daniel Liu
266cf85510
rpc: remove deprecated method Notifier.Closed #29162 (#1022)
Co-authored-by: Undefinedor <wanghao@imwh.net>
2025-05-06 09:44:20 +08:00
Daniel Liu
d25c6f02a7
all: not copy loop var for golang v1.22 (#1020) 2025-04-29 17:27:36 +08:00
benjamin202410
e1772ce08a
fix: improve timeout message log (#996)
* fix: improve timeout message log

* Update bft_handler.go

---------

Co-authored-by: liam.lai <liam.lai@us>
2025-04-29 01:48:56 -07:00
Daniel Liu
1d3e5cb455 core: prefetch next block state concurrently #19328 2025-04-28 16:57:56 +08:00
Daniel Liu
b628212d8e
rpc: change BlockNumber constant values to match ethclient #27219 (#992) 2025-04-28 10:59:34 +08:00
JukLee0ira
b4308ba733
internal/ethapi: disable sending of non eip155 replay protected tx #22339 (#971)
* internal/ethapi: disable sending of non eip155 replay protected tx #22339

* eth: optimize the initialization logic of EthAPIBackend

* fix
2025-04-25 11:55:52 +08:00
Daniel Liu
94b3ca1eeb
all: remove version field #25096 (#970) 2025-04-24 18:55:15 +08:00
Daniel Liu
4fb622bfd0
all: remove public field from rpc.API #25059 (#969) 2025-04-24 18:53:59 +08:00
JukLee0ira
63b04b4114
eth: some typo mistake (#16802) (#948) 2025-04-21 16:36:20 +08:00
Daniel Liu
b9a6c8c32d
cmd, core, eth, trie: add trie read caching layer (#18087) (#946) 2025-04-16 17:27:43 +08:00
wgr523
6a38aa00aa
Reward float upgrade (#940)
* feat: use float type reward

* feat: add test of float reward
2025-04-16 02:03:41 -07:00
JukLee0ira
b1e08e6642
all: refactor package node #21105 (#923) 2025-04-10 18:52:49 +08:00
Daniel Liu
5b8c267122 trie: use trie.NewStackTrie instead of new(trie.Trie) (#22246) 2025-04-07 16:44:32 +08:00
Daniel Liu
54f73e471f trie: Derivesha with stacktrie (#21407) 2025-04-07 16:44:32 +08:00
Daniel Liu
a4c7d7f458 all: clean duplicate constants in package common 2025-04-07 16:43:01 +08:00
Gerui Wang
6bac06b1e7 feat: fixed reward per node (per capita) 2025-03-25 22:33:49 +08:00
Gerui Wang
84ae914350 feat: add TIPEpochHalving, better style 2025-03-25 22:16:35 +08:00
Wang Gerui
7c4668fa91 style: clean comment 2025-03-25 22:10:03 +08:00
Daniel Liu
a9b9f53701 core, eth, trie: add a prefix to contract code (21080) 2025-03-24 22:31:03 +08:00
Daniel Liu
6285a4fe05 core: improve commit genesis 2025-03-20 14:15:09 +08:00
Daniel Liu
3e4a13d038 rpc: accept finalized as block number 2025-03-19 17:47:52 +08:00
Daniel Liu
ccf8ff2e64 cmd/utils, eth/ethconfig: remove flag docroot 2025-03-19 15:32:57 +08:00
Daniel Liu
5ef815a6c9 eth/gasprice: sanity check ratio values (#31270) 2025-03-14 08:04:02 +08:00
Daniel Liu
8f68af5da0 eth/gasprice: add query limit for FeeHistory to defend DDOS attack (#29644) 2025-03-14 08:04:02 +08:00
Daniel Liu
975cddacc5 eth/gasprice: fix deserialization error for foundry 2025-03-14 08:01:07 +08:00
Daniel Liu
9167867bab eth/downloader: fix peer idleness tracking when restarting statesync (#21260) 2025-03-11 16:37:02 +08:00
Daniel Liu
8d63a56777 eth/downloader: fix data race in downloader (#20204) 2025-03-11 16:35:31 +08:00
Daniel Liu
0273448333 core, eth/downloader: fix validation and downloader printout flaw (#17974) 2025-03-11 13:24:02 +08:00
Miro
2dfa020165 eth/filters: fix TestPendingLogsSubscription (#23619)
The test did not synchronize with per-case goroutines, and thus didn't notice
that some tests were just hanging. This change adds missing synchronization
and fixes the broken tests.
2025-03-10 15:42:59 +08:00
Daniel Liu
2697703c0f core, eth, params: make indexer configurable (#17188) 2025-03-10 15:41:53 +08:00
Daniel Liu
66e73ad32e cmd, les: remove light client code (#28586) 2025-03-10 15:40:07 +08:00
Daniel Liu
f039b26e7a light: CHT and bloom trie indexers working in light mode (#16534) 2025-03-06 15:30:48 +08:00
wgr523
c36e4d54c0
Upgrade reward 2.0 (#865)
* refactor: reward hook gets prepared for upgrade

* feat: new reward hook, config change, unit tests

* add missing code

* feat: filter penalty in reward. add unit test

* update constant and config

---------

Co-authored-by: liam.lai <liam.lai@us>
2025-03-02 02:44:34 -08:00
Daniel Liu
6e8fe5121d eth/downloader: speed up tests by generating chain only once (#17916) 2025-03-01 15:55:27 +08:00
Daniel Liu
588dcd35ce cmd, common, core, eth: optimize rollback by flag 2025-03-01 11:34:32 +08:00
Daniel Liu
bf011986a5 eth/downloader: fixes data race between synchronize and other methods (#21201) 2025-02-26 15:06:08 +08:00
Daniel Liu
2955a988ca eth/downloader: more context in errors (#21067) 2025-02-26 15:06:08 +08:00
Daniel Liu
3ee371454f eth/downloader: make syncing error obvious (#19413) 2025-02-26 15:06:08 +08:00
Daniel Liu
04adabe55c eth/downloader: fix nil droppeer in state sync (#19232) 2025-02-26 15:06:08 +08:00
Daniel Liu
96db952576 downloader: fix edgecase where returned index is OOB for downloader (#18335) 2025-02-26 15:06:08 +08:00
Daniel Liu
3adec81483 downloader: different sync strategy (#18085) 2025-02-26 15:06:08 +08:00
Daniel Liu
9ad4e1d282 downloader: measure successfull deliveries, not failed (#17983) 2025-02-26 15:06:08 +08:00
Daniel Liu
31011d4aa9 eth/downloader: fix invalid hash chain error due to head mini reorg (#17839) 2025-02-26 15:06:08 +08:00
Daniel Liu
e424ff1380 eth/downloader: fix comment typos (#17956) 2025-02-26 15:06:08 +08:00
Daniel Liu
2a8b4501ef eth/downloader: use intermediate variable for better readability (#17510) 2025-02-26 15:06:08 +08:00
Daniel Liu
98cff5d6c2 all: remove network rinkeby 2025-02-19 15:52:29 +08:00
Daniel Liu
2a2711ad64 cmd, common, eth: copy constants after get chain id 2025-02-18 15:16:55 +08:00
Daniel Liu
ff987140dc eth: set networkID to chainId by default (#28250) 2025-02-17 09:17:31 +08:00
Daniel Liu
652c66e9d4 eth/downloader: fix issue #16539 (#16546) 2025-02-11 18:30:17 +08:00
Daniel Liu
3ebf97e721 eth/downloader: wait all fetcher goroutines to exit before terminating (#16509) 2025-02-11 18:30:17 +08:00
Daniel Liu
d8fb27b987 all: clean up and properly abstract database accesses (#19021) 2025-02-11 18:28:50 +08:00
Daniel Liu
0dd3d532fc eth: add eth_blobBaseFee RPC (#29140) 2025-02-10 10:59:45 +08:00
Daniel Liu
ebb2c3b2ea all: new empty trie with types.EmptyRootHash instead of null (#27230) 2025-02-07 13:04:45 +08:00
Daniel Liu
4bbcd988b2 params: remove EIP150Hash from chainconfig (#27087) 2025-02-05 18:16:17 +08:00
Daniel Liu
3f58066879 all: remove debug field from vm config (#27048) 2025-02-05 18:16:17 +08:00
Daniel Liu
bb8324357c params: log chain config a bit saner (#24904) 2025-02-05 18:10:06 +08:00
Daniel Liu
b6f3007af1 core: move genesis alloc types to core/types (#29003) 2025-01-24 16:54:12 +08:00
Daniel Liu
4e951ed8fe all: use github.com/deckarep/golang-set/v2 (generic set) (#26159) 2025-01-24 16:54:11 +08:00
Daniel Liu
cab293859a eth/filters: update Backend interface (#26126) 2025-01-24 16:54:11 +08:00
Daniel Liu
c241fc3574 eth/filters: fix for eth_getLogs failing with tag (#25922) 2025-01-24 16:54:11 +08:00
Daniel Liu
5b10b2441c all: use T.TempDir to create temporary test directories (#24633) 2025-01-24 16:54:08 +08:00
Daniel Liu
d8c9ad3c9f all: replace RWMutex with Mutex in places where RLock is not used (#21622) 2025-01-24 16:18:30 +08:00
Daniel Liu
07935ce124 accounts: support for external signer API (#18079) 2025-01-24 16:18:29 +08:00
Daniel Liu
fe14069bd7 accounts: support for external signer API (#18079) 2025-01-24 16:18:29 +08:00
Daniel Liu
002fac8b14 all: remove the duplicate 'the' in annotations (#17509) 2025-01-24 16:18:28 +08:00
Daniel Liu
2b8b7e68f7 all: avoid storing computable receipt metadata (#19345) 2025-01-24 15:52:43 +08:00
Daniel Liu
92f0d07e6d core: remove unnecessary fields in log (#17106 #19182) 2025-01-24 15:52:43 +08:00
Daniel Liu
1ff36996c0 cmd/XDC: delete copydb command 2025-01-24 14:41:28 +08:00
Daniel Liu
97c50f97bb all: add read-only option to database 2025-01-24 14:24:39 +08:00
Daniel Liu
adba311c5c
Merge pull request #788 from JukLee0ira/Migrate-to-rawdb
core/rawdb: separate raw database access to own package
2025-01-22 15:21:38 +08:00
JukLee0ira
653b59710e core/rawdb: separate raw database access to own package (#16666 #19345) 2025-01-22 15:19:39 +08:00
Daniel Liu
6794504d40 all: update files by 'go generate ./...' 2025-01-22 15:10:52 +08:00
JukLee0ira
412133b977 eth/tracers: add test for contractTracer 2025-01-22 12:37:48 +08:00
JukLee0ira
f7b591ffe3 eth/tracers: add a golang tracer to locate contracts (#23708) 2025-01-22 12:37:37 +08:00
JukLee0ira
7ca83ab0ec eth/tracers: add TracerConfig option to Tracer (#25430) 2025-01-22 11:08:15 +08:00
Daniel Liu
588f61661c build: add imports for go generate tools (#24682) 2025-01-20 11:52:59 +08:00
wanwiset25
44ac46f676 add local xdpos function
add readme

changes to support xdpos2 protocol from block 0
2025-01-01 22:06:09 -05:00
Péter Szilágyi
39e9d8f94d common/prque: generic priority queue (#26290) 2024-12-28 09:06:31 +08:00
Daniel Liu
89c51c5e69 common: improve documentation comments (#16701) 2024-12-28 09:06:30 +08:00
Daniel Liu
240757a1ce all: remove empty function SaveData() 2024-12-28 09:04:02 +08:00
JukLee0ira
48d1f22fde all: simplify function TransitionDb (#20830) 2024-12-28 09:02:48 +08:00
Daniel Liu
82ff8c19a0 all: remove uses of untyped golang-lru 2024-12-21 14:39:26 +08:00
JukLee0ira
7491a7ba74 all: improve EstimateGas API (#20830) 2024-12-21 14:35:44 +08:00
Daniel Liu
6beee27886 metrics, cmd/XDC: change init-process of metrics (#30814)
This PR modifies how the metrics library handles `Enabled`: previously,
the package `init` decided whether to serve real metrics or just
dummy-types.

This has several drawbacks:
- During pkg init, we need to determine whether metrics are enabled or
not. So we first hacked in a check if certain geth-specific
commandline-flags were enabled. Then we added a similar check for
geth-env-vars. Then we almost added a very elaborate check for
toml-config-file, plus toml parsing.

- Using "real" types and dummy types interchangeably means that
everything is hidden behind interfaces. This has a performance penalty,
and also it just adds a lot of code.

This PR removes the interface stuff, uses concrete types, and allows for
the setting of Enabled to happen later. It is still assumed that
`metrics.Enable()` is invoked early on.

The somewhat 'heavy' operations, such as ticking meters and exp-decay,
now checks the enable-flag to prevent resource leak.

The change may be large, but it's mostly pretty trivial, and from the
last time I gutted the metrics, I ensured that we have fairly good test
coverage.

---------

Co-authored-by: Felix Lange <fjl@twurst.com>
2024-12-13 14:00:14 +08:00
Daniel Liu
92fc843683 crypto: switch over to upstream sha3 package (#18390) 2024-12-09 17:48:59 +08:00
Daniel Liu
02a59e8d84 all: replace strings.Replace with string.ReplaceAll (#24835) 2024-12-08 11:51:14 +08:00
benjamin202410
a8560300a4
fix vote test and optimize log (#750)
Co-authored-by: liam.lai <liam.lai@us>
2024-11-29 03:14:25 -08:00
Daniel Liu
ed242b4763 all: implement EIP-1153 transient storage (#26003) 2024-11-15 19:39:18 +08:00
Daniel Liu
ec4ca1ed6a all: replace log15 with slog (#28187) 2024-11-15 10:02:42 +08:00
Daniel Liu
3ed9ce95c1 eth, node: use APPDATA env to support cygwin/msys correctly (#17786) 2024-11-13 09:35:41 +08:00
Daniel Liu
59b06e4a03 eth/gasprice: reduce default gas price for empty block 2024-11-13 09:30:55 +08:00
Daniel Liu
de7203ac88 eth/gasprice: remove default from config (#30080) 2024-11-13 09:30:55 +08:00
Daniel Liu
d3eaeb9381 eth/gasprice: use slices package for sorting (#27490 #27909 #29314) 2024-11-13 09:30:55 +08:00
Daniel Liu
4dbed3582f eth/gasprice: simplify function getBlockValues 2024-11-13 09:30:55 +08:00
Daniel Liu
f9e431888e eth/gasprice: add generic LRU implementation (#26162) 2024-11-13 09:30:54 +08:00
Daniel Liu
179185438f eth/gasprice: sanitize max header and block history (#23886) 2024-11-13 09:30:54 +08:00
Daniel Liu
416e5ac00f eth/tracers,internal/ethapi: use correct baseFee when BlockOverrides is provided in call/traceCall (#29051) 2024-11-01 11:36:53 +08:00
Felix Lange
6b8dd86b52 eth/gasprice: fix percentile validation in eth_feeHistory (#28954) 2024-11-01 11:36:53 +08:00
Daniel Liu
419f81f022 eth/gasprice: change feehistory input type from int to uint64 (#26922) 2024-11-01 11:36:53 +08:00
Daniel Liu
a294c2080d all: fix null effectiveGasPrice 2024-11-01 11:36:53 +08:00
Daniel Liu
9b20ac785e consensus/misc: move eip1559 into a package (#27828) 2024-11-01 11:36:53 +08:00
Daniel Liu
f64aea4ba0 core/vm: implement EIP-3860: Limit and meter initcode (#23847) 2024-11-01 11:36:53 +08:00
Daniel Liu
8b2e8d9b3a all: refactor txpool into it's own package in prep for 4844 (#26038) 2024-11-01 11:36:53 +08:00
Daniel Liu
754c6456af eth/gasprice/feehistory: support finalized block (#25442) 2024-11-01 11:36:53 +08:00
Daniel Liu
c8c43adac0 graphql: fee history fields (#24452) 2024-11-01 11:36:53 +08:00
Daniel Liu
e5fb0b4d73 core: remove unused error from TxPool.Pending (#23720) 2024-11-01 11:36:53 +08:00
Daniel Liu
27071a4219 eth/gasprice: avoid modifying TestChainConfig (#23204) 2024-11-01 11:36:53 +08:00
Daniel Liu
e0a1ef31eb eth/gasprice: feeHistory improvements (#23422) 2024-11-01 11:36:53 +08:00
Daniel Liu
7500b0ac95 Use hexutil.Uint for blockCount parameter and oldestBlock result value in feeHistory method (#23239) 2024-11-01 11:36:52 +08:00
Daniel Liu
5b01b23af6 internal: get pending and queued transaction by address (#22992) 2024-11-01 11:36:52 +08:00
Daniel Liu
5766ca4520 eth/gasprice, internal/ethapi: minor feehistory fixes (#23178) 2024-11-01 11:36:52 +08:00
Daniel Liu
26fe46c008 eth/gasprice: implement feeHistory API (#23033) 2024-11-01 11:36:52 +08:00
Daniel Liu
dbdca11501 accounts/abi/bind: fix bounded contracts and sim backend for 1559 (#23038) 2024-11-01 11:36:52 +08:00
Daniel Liu
4c096de9b0 all: rename internal 1559 gas fields (#23010) 2024-11-01 11:36:52 +08:00
Daniel Liu
5a31888b19 core, eth, miner: enforce configured mining reward post 1559 too (#22995) 2024-11-01 11:36:52 +08:00
Daniel Liu
bfd1c0c9e0 core, eth, internal, les: RPC methods and fields for EIP 1559 (#22964) 2024-11-01 11:36:52 +08:00
Daniel Liu
f6a4769084 EIP-1559 tx pool support (#22898) 2024-11-01 11:36:52 +08:00
Daniel Liu
e18553b855 all: implement eip-1559 (#22837) 2024-11-01 11:36:52 +08:00
Daniel Liu
089a589a81 eth: fix typo balacne 2024-11-01 11:36:52 +08:00
Daniel Liu
af40f2e194 eth/downloader: fix staticcheck warning S1033: unnecessary guard for delete 2024-10-31 21:46:27 +08:00
Daniel Liu
edce9ccb27 all: fix staticcheck warning S1024: not use x.Sub(time.Now()) 2024-10-31 10:49:44 +08:00
Daniel Liu
f9960875cc fix: staticcheck warning SA4003: every value of uint64 >= 0 2024-10-31 10:17:30 +08:00
Daniel Liu
a14e9416fa all: fix staticcheck warning SA4010: append result never used 2024-10-31 10:06:04 +08:00
Daniel Liu
c36642a0e1 all: fix staticcheck warning ST1008: error should be last return value 2024-10-31 09:51:47 +08:00
Daniel Liu
371c3b6874 fix tautological condition: non-nil != nil 2024-10-31 09:01:12 +08:00
liam.icheng.lai
59a7eb1f9f resolve conflict from master 2024-10-30 16:47:26 -07:00
Daniel Liu
a5bc0baba9 all: fix staticcheck warning ST1019: import package twice 2024-10-28 17:45:19 +08:00
Daniel Liu
fbecb8c5a5 all: fix staticcheck warning ST1006: don't use generic name self
The name of a method’s receiver should be a reflection of its identity;
often a one or two letter abbreviation of its type suffices (such as
“c” or “cl” for “Client”). Don’t use generic names such as “me”, “this”
or “self”, identifiers typical of object-oriented languages that place
more emphasis on methods as opposed to functions. The name need not be
as descriptive as that of a method argument, as its role is obvious and
serves no documentary purpose. It can be very short as it will appear
on almost every line of every method of the type; familiarity admits
brevity. Be consistent, too: if you call the receiver “c” in one method,
don’t call it “cl” in another.
2024-10-25 21:30:54 +08:00
Daniel Liu
a79411fa06 all: fix staticcheck warning ST1005: incorrectly formatted error string 2024-10-24 09:48:20 +08:00
Daniel Liu
8c077345d0 all: removed blockhash from statedb (#23126) 2024-10-18 09:24:52 +08:00
Liam Lai
22fc7d0710 fix conflict 2024-10-16 22:42:53 -07:00
Daniel Liu
a8ea86e40c
Merge pull request #644 from gzliudan/format-0x
all: change format 0x%x to %#x
2024-10-17 10:35:34 +08:00
benjamin202410
eb6d53adf6
Fix getCandidateStatus API (#663)
* Fix getCandidateStatus API

* sync vote message and fix test

* update function name

---------

Co-authored-by: Liam Lai <liam@home>
2024-10-09 22:05:14 -07:00
Mr.P
861c7102a2 cherry pick from #664 2024-10-09 17:08:59 +08:00
Mr.P
22c54206bd
add flag rpc-gascap and set RPCGasCap to 50M (#664)
* add gas cap flag

* default gas cap to 50m

* rpc-gascap
2024-10-09 09:28:24 +08:00
Liam
37f2320af6
increase message buffer to keep message (#657)
* increase message buffer to keep message

* update version
2024-09-30 21:13:49 -07:00
Liam
ccbedce27b
relocate broadcast logic (#656)
Co-authored-by: 賴怡誠 <laiyicheng@makotos-MBP.lan>
2024-09-30 20:20:23 -07:00
Liam
9751e41dd5
Mainnet debug (#655)
* intro new timeout (#651)

* intro new timeout

* correct comment

* disable ProcessForensics

* disable ProcessForensics

* change version

* enable periodicProfilingFlag

* fix: ignore old timeout msg

* fix: ignore old timeout msg including equal to the current round

* udpate version file
2024-09-30 20:05:14 -07:00
Liam
450a63fc8c
intro new timeout (#651)
* intro new timeout

* correct comment
2024-09-30 16:48:38 -07:00
Daniel Liu
edace6ac6c all: change format 0x%x to %#x (#25221) 2024-09-27 15:24:31 +08:00
JukLee0ira
47d27fed3b all: replace uses of ioutil with io and os (#24869) 2024-09-27 15:14:17 +08:00
Daniel Liu
5470485450 all: split vm.Context into BlockContext and TxContext (#21672) 2024-09-21 22:18:10 +08:00
wanwiset25
cb792ef34f Revert EIP-2464 2024-08-24 02:31:27 +07:00
JukLee0ira
138ac7c967 internal/ethapi: merge CallArgs and SendTxArgs (#22718) 2024-08-21 15:15:53 +08:00
Liam
e3df8e55a6
remove legacy testnet validate masternode logic (#603)
* remove legacy testnet validate masternode logic

* remove legacy testnet validate masternode logic

* remove legacy testnet validate masternode logic
2024-08-12 00:13:36 -07:00
wgr523
52077f18f3
support for golang tracers + add golang callTracer (#558)
* feat: rename Tracer interface to EVMLogger;
minor changes in API
refine api_tracer.go
refine Tracer interface

* fix: broken tracer tests

* feat: add BenchmarkTransactionTrace

* feat: tracer CaptureEnter CaptureExit in evm

* feat: upgrade js tracers with geth upstream

* chore: clean test

* feat: eth/tracers: support for golang tracers + add golang callTracer
cf. https://github.com/ethereum/go-ethereum/pull/23708

* chore: clean testdata json

* fix: change test due to IntrinsicGas is not upgraded

* feat: make native Tracer the default Tracer

* fix: update tracers.New in api

* fix: addr prefix in callTracer

* fix: remove `native` in BenchmarkTracers

* fix: return consensus error of InsufficientBalance for tx, instead of vmerr

* chore: drop js tracers: call and noop
2024-08-06 00:14:04 -07:00
JukLee0ira
9a40c26bf8 core,eth,light: remove duplicated functions 2024-08-03 10:03:22 +08:00
JukLee0ira
75b18c841a eth: remove chainDb field in FilterAPI 2024-08-03 10:03:22 +08:00
JukLee0ira
bea4431f6f eth/filters: avoid block body retrieval when no matching logs (#25199) 2024-08-03 10:03:22 +08:00
JukLee0ira
17dafcc5a3 eth/filters: add generic LRU implementation (#26162) 2024-08-03 10:03:22 +08:00
JukLee0ira
ad71d706fb all: add global block logs cache (#25459) 2024-08-03 10:03:22 +08:00
JukLee0ira
47b7f4726d eth,les: Remove concept of public/private API definitions (#25053) 2024-08-03 10:03:22 +08:00
JukLee0ira
0c9f2fcceb eth/filters: fix pending for getLogs (#24949) 2024-08-03 10:03:22 +08:00
JukLee0ira
4da6ff17fb eth/filters: remove unused struct fields (#24782) 2024-08-03 10:03:22 +08:00
JukLee0ira
f8a2b00505 core/rawdb,eth: use lightweight accessor for log filtering (#23147) 2024-08-03 10:03:22 +08:00
JukLee0ira
c072bbaac1 eth,les,miner: implement feeHistory API (#23033) 2024-08-03 10:03:22 +08:00
JukLee0ira
acaf943e59 eth/filters: fix potential deadlock in filter timeout loop (#22178) 2024-08-03 10:03:22 +08:00
JukLee0ira
83782e5368 eth/filters: remove use of event.TypeMux for pending logs (#20312) 2024-08-03 10:03:22 +08:00
Daniel Liu
4976b7cbb3
Fix some panic cuased by nil block, statedb, header (#578)
* fix panic during rollback

* eth/hooks: check nil stateDB to fix issue #271

* internal/ethapi: fix eth_call crash

* all: check nil statedb

* eth: check nil block for tracer api

* internal/ethapi: check nil header and block
2024-08-02 17:05:53 -07:00
wanwiset25
82f2f63df4 add explanation 2024-06-28 18:36:02 +04:00
wanwiset25
4be4f2eeb1 fix tests 2024-06-28 18:35:47 +04:00
wanwiset25
829ca9f198 let xdpos22(101) strictly 1 to 1 with eth64(64) protocol 2024-06-28 18:21:07 +04:00
wanwiset25
b5c7bd5cba enable bft and better protocol version check 2024-06-28 11:34:04 +04:00
wanwiset25
ebb9a63107 differentiate xdpos 2.2 protocol version 2024-06-28 11:33:04 +04:00
wanwiset25
57b11ab4c9 try use insertblock in fetcher 2024-06-28 11:33:04 +04:00
wanwiset25
c9ee3240fb fix tests 2024-06-28 11:33:04 +04:00
wanwiset25
9e04fd82cf add xdpos2 protocol condition 2024-06-28 11:33:04 +04:00
wanwiset25
1b781530c6 add xdpos protocol test cases 2024-06-28 11:33:04 +04:00
Péter Szilágyi
1204fa954f eth: check propagated block malformation on receiption (#20546) 2024-06-28 11:33:04 +04:00
Martin Holst Swende
8f4a269437 eth, les: add sanity checks for unbounded block fields (#19573)
This PR adds some hardening in the lower levels of the protocol stack, to bail early on invalid data. Primarily, attacks that this PR protects against are on the "annoyance"-level, which would otherwise write a couple of megabytes of data into the log output, which is a bit resource intensive.
2024-06-28 11:33:04 +04:00
Péter Szilágyi
93b2a23216 core, eth: announce based transaction propagation (#20234) 2024-06-28 11:33:04 +04:00
wanwiset25
ae52ca6e83 eth: eth/64 - extend handshake with with fork id (#20140) 2024-06-28 11:31:06 +04:00
Péter Szilágyi
8e998ecabe core/forkid: implement the forkid EIP, announce via ENR (#19738)
* eth: chain config (genesis + fork) ENR entry

* core/forkid, eth: protocol independent fork ID, update to CRC32 spec

* core/forkid, eth: make forkid a struct, next uint64, enr struct, RLP

* core/forkid: change forkhash rlp encoding from int to [4]byte

* eth: fixup eth entry a bit and update it every block

* eth: fix lint

* eth: fix crash in ethclient tests
2024-06-28 11:30:31 +04:00
Felix Lange
1bdf53662e all: new p2p node representation (#17643)
Package p2p/enode provides a generalized representation of p2p nodes
which can contain arbitrary information in key/value pairs. It is also
the new home for the node database. The "v4" identity scheme is also
moved here from p2p/enr to remove the dependency on Ethereum crypto from
that package.

Record signature handling is changed significantly. The identity scheme
registry is removed and acceptable schemes must be passed to any method
that needs identity. This means records must now be validated explicitly
after decoding.

The enode API is designed to make signature handling easy and safe: most
APIs around the codebase work with enode.Node, which is a wrapper around
a valid record. Going from enr.Record to enode.Node requires a valid
signature.

* p2p/discover: port to p2p/enode

This ports the discovery code to the new node representation in
p2p/enode. The wire protocol is unchanged, this can be considered a
refactoring change. The Kademlia table can now deal with nodes using an
arbitrary identity scheme. This requires a few incompatible API changes:

  - Table.Lookup is not available anymore. It used to take a public key
    as argument because v4 protocol requires one. Its replacement is
    LookupRandom.
  - Table.Resolve takes *enode.Node instead of NodeID. This is also for
    v4 protocol compatibility because nodes cannot be looked up by ID
    alone.
  - Types Node and NodeID are gone. Further commits in the series will be
    fixes all over the the codebase to deal with those removals.

* p2p: port to p2p/enode and discovery changes

This adapts package p2p to the changes in p2p/discover. All uses of
discover.Node and discover.NodeID are replaced by their equivalents from
p2p/enode.

New API is added to retrieve the enode.Node instance of a peer. The
behavior of Server.Self with discovery disabled is improved. It now
tries much harder to report a working IP address, falling back to
127.0.0.1 if no suitable address can be determined through other means.
These changes were needed for tests of other packages later in the
series.

* p2p/simulations, p2p/testing: port to p2p/enode

No surprises here, mostly replacements of discover.Node, discover.NodeID
with their new equivalents. The 'interesting' API changes are:

 - testing.ProtocolSession tracks complete nodes, not just their IDs.
 - adapters.NodeConfig has a new method to create a complete node.

These changes were needed to make swarm tests work.

Note that the NodeID change makes the code incompatible with old
simulation snapshots.

* whisper/whisperv5, whisper/whisperv6: port to p2p/enode

This port was easy because whisper uses []byte for node IDs and
URL strings in the API.

* eth: port to p2p/enode

Again, easy to port because eth uses strings for node IDs and doesn't
care about node information in any way.

* les: port to p2p/enode

Apart from replacing discover.NodeID with enode.ID, most changes are in
the server pool code. It now deals with complete nodes instead
of (Pubkey, IP, Port) triples. The database format is unchanged for now,
but we should probably change it to use the node database later.

* node: port to p2p/enode

This change simply replaces discover.Node and discover.NodeID with their
new equivalents.

* swarm/network: port to p2p/enode

Swarm has its own node address representation, BzzAddr, containing both
an overlay address (the hash of a secp256k1 public key) and an underlay
address (enode:// URL).

There are no changes to the BzzAddr format in this commit, but certain
operations such as creating a BzzAddr from a node ID are now impossible
because node IDs aren't public keys anymore.

Most swarm-related changes in the series remove uses of
NewAddrFromNodeID, replacing it with NewAddr which takes a complete node
as argument. ToOverlayAddr is removed because we can just use the node
ID directly.
2024-06-28 11:30:16 +04:00
Daniel Liu
76ab0b5115 eth/downloader: fix issue #277 2024-06-27 12:51:47 +08:00
Guillaume Ballet
b3e0f70a33 eth/downloader: minor typo fixes in comments (#21035) 2024-06-27 11:28:40 +08:00
Boqin Qin
0673fa1176 eth/downloader: fix possible data race by inconsistent field protection (#20690) 2024-06-27 11:23:49 +08:00
Daniel Liu
f445196dcf eth/gasprice: add configurable threshold to gas price oracle (#22752) 2024-06-20 15:52:32 +08:00
Daniel Liu
2b365e8112 eth/gasprice: improve stability of estimated price (#22722) 2024-06-20 15:52:32 +08:00
Daniel Liu
1521b8a663 eth: move eth.Config to a common package (#22205) 2024-06-20 15:52:32 +08:00
Daniel Liu
2125a1afaa eth/gasprice: offer maxprice flag for overwritting price cap (#21531) 2024-06-20 15:52:32 +08:00
Daniel Liu
56591d37e1 eth/gasprice: lighter gas price oracle for light client (#20409) 2024-06-20 15:52:32 +08:00
Daniel Liu
0063c14ed3 cmd, eth, internal, les: add gasprice cap (#21212) 2024-06-20 15:52:32 +08:00
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
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