Go implementation of the Ethereum protocol
Find a file
Daniel Liu 81d0db2344
fix(common): fix race condition in countdown timer StopTimer method (#2014)
The TestCountdownShouldBeAbleToStop test was failing intermittently due to
a race condition in the StopTimer() implementation. Previously, the goroutine
used defer to set initilised=false, which executed after close(q) signaled
completion to StopTimer(). This allowed StopTimer() to return before the
state was properly cleaned up, causing isInitilised() checks to occasionally
see stale true values.

Fixed by explicitly calling setInitilised(false) before close(q), ensuring
the state is updated atomically before StopTimer() returns. This eliminates
the race condition and makes the test pass consistently.

Verified by running the test 30 times consecutively with no failures.
2026-02-10 16:51:42 +05:30
.github ci: improve github pull request template (#2026) 2026-02-07 00:15:01 +05:30
accounts fix(accounts): not use magic numbers for rpc.BlockNumber (#2016) 2026-02-05 11:53:11 +05:30
assets/images update README and include a logo photo 2022-07-24 21:44:58 +10:00
beacon beacon/types: add beacon chain data types (#27292) 2024-12-28 09:06:31 +08:00
bmt all: fix unnecessary whitespace (#1800) 2025-12-08 15:07:11 +05:30
build build: move tidy check to doTidy() (#2023) 2026-02-06 14:44:07 +05:30
cicd all: make nodes publish coinbase address to stats server (#1967) 2026-02-05 18:59:00 +07:00
cmd fix(cmd): fix disabling discovery through config file #33279 (#2003) 2026-02-10 16:49:55 +05:30
common fix(common): fix race condition in countdown timer StopTimer method (#2014) 2026-02-10 16:51:42 +05:30
consensus fix(core): fix genesis error in #2019 (#2034) 2026-02-10 12:22:17 +08:00
console console/prompt: use PromptInput in PromptConfirm method #33445 (#1953) 2026-01-19 12:15:27 +05:30
contracts all: replace Div/Mul with Rsh/Lsh if possible #29911 (#1966) 2026-01-29 11:31:58 +05:30
core core/vm: implement EIP-7939: CLZ opcode #31989 (#2012) 2026-02-10 16:51:20 +05:30
crypto feat(crypto): use the ziren keccak precompile and implement ziren keccak state #32816 #32996 (#1991) 2026-02-05 14:43:53 +05:30
docker all: normalize flag's name 2024-11-25 16:39:29 +08:00
docs docs: udpate solidity version for mainnet (#2024) 2026-02-06 14:44:21 +05:30
eth refactor(core): clean up EVM environmental structure #31061 (#1985) 2026-02-10 16:40:54 +05:30
ethclient feat(ethclient): add support for eth_simulateV1 #32856 (#1992) 2026-02-05 11:46:44 +05:30
ethdb all: use slices.Sort() to sort strings (#1712) 2025-12-07 15:49:13 +05:30
ethstats fix(core): fix genesis error in #2019 (#2034) 2026-02-10 12:22:17 +08:00
event all: move main transaction pool into a subpool #27463 (#1890) 2026-01-05 15:43:50 +05:30
genesis consensus, params: remove SkipV2Validation, close XFN-151 (#1730) 2025-11-14 21:53:05 +05:30
internal perf(all): use big.Int.Sign() to compare with 0 (#1969) 2026-02-05 11:45:44 +05:30
log all: use 0x-prefix string for type Address in log message (#1874) 2025-12-19 08:55:21 +04:00
metrics cmd/XDC, metrics/prometheus: fix staticcheck QF1012 (#1713) 2025-12-07 16:03:06 +05:30
miner all: set gas limit dynamically (#1945) 2026-01-21 10:49:20 +05:30
node fix(cmd): fix disabling discovery through config file #33279 (#2003) 2026-02-10 16:49:55 +05:30
p2p fix(p2p): don't discard reason sent by Disconnect() #16559 (#2009) 2026-02-10 16:50:37 +05:30
params test(params): move params.V2TestsGasLimit to engine_v2_tests package (#2028) 2026-02-06 14:44:54 +05:30
rlp rlp: finalize listIterator on parse error to prevent non-advancing loops#33245 (#1854) 2025-12-11 16:51:46 +05:30
rpc rpc: fix limitedBuffer.Write to properly enforce size limit (#33545) (#1948) 2026-01-19 12:13:15 +05:30
tests refactor(core): clean up EVM environmental structure #31061 (#1985) 2026-02-10 16:40:54 +05:30
trie fix(core, trie): revert error removal in (*state.Trie).Commit #27544 (#1168) 2026-02-05 11:43:33 +05:30
version all: upgrade package version #30638 (#1745) 2025-11-15 16:46:54 +05:30
XDCx fix(core, trie): revert error removal in (*state.Trie).Commit #27544 (#1168) 2026-02-05 11:43:33 +05:30
XDCxDAO all: fix whitespace error of golangci-lint, remove extra empty lines (#1676) 2025-11-17 11:16:09 +05:30
XDCxlending fix(core, trie): revert error removal in (*state.Trie).Commit #27544 (#1168) 2026-02-05 11:43:33 +05:30
.dockerignore dockerignore, internal/build: forward correct git folder 2017-11-12 22:52:41 +02:00
.gitattributes FIx Bad block error. 2021-09-17 17:59:06 +05:30
.gitignore build: support golangci-lint v1.63.4 2025-01-11 23:56:59 +08:00
.golangci.yml build: upgrade golangci-lint to v2.0.2 #31530 (#1466) 2025-09-10 17:22:29 +08:00
.pre-commit-config.yaml chore: add conventional-pre-commit hook (#2027) 2026-02-07 00:12:08 +05:30
COPYING all: update license information 2015-07-07 14:12:44 +02:00
COPYING.LESSER all: update license information 2015-07-07 14:12:44 +02:00
go.mod refactor(node): use standalone flock dependency #19376 #26633 (#1993) 2026-02-10 16:41:27 +05:30
go.sum refactor(node): use standalone flock dependency #19376 #26633 (#1993) 2026-02-10 16:41:27 +05:30
interfaces.go feat(ethclient): add support for eth_simulateV1 #32856 (#1992) 2026-02-05 11:46:44 +05:30
Makefile Makefile, build: remove unused xgo (#1812) 2025-12-08 12:58:22 +05:30
README.md docs: add document for JSONRPC API (#1027) 2025-05-19 15:30:52 +08:00

XDPoSChain

XinFin XDPoSchain
Enterprise ready hybrid blockchain for global trade and finance


XinFin Hybrid Blockchain

XinFin Hybrid Blockchain is an Enterprise ready Blockchain for global trade and finance

Visit: XinFin.org Contribute: Developer Docs

XinFin Network XDPoS is community driven project to achieve the following

  • XinFin DPOS (XDPoS) consensus that selects 108 set of Masternodes to achieve a high throughput Energy efficient consensus with instant block finality

  • KYC Enforcement on Masternodes for Enterprise Adoption and compliance

  • Ability to port/relay limited set of data and transactions from privacy channels to public channel

  • Interoperability between applications hosted on Private Blockchains like Corda, Hyperledger, Quorum(JP Morgan) using relayers to XinFin Network

  • Customer Centric and consortium driven Governance to equally benefit the validators as well as providing comfort for large scale enterprise applications to be hosted on the Network. This achieves

    • Rapid Upgradability

    • DApps Standardisation for rapid commercialisation

    • Compliance with major global jurisdictions.

KYC for masternodes

OVERVIEW

To add a layer of KYC for masternodes in the current system and a sense of ownership amongst the masternodes hence tying such a cluster of masternodes to physical entity which can held accountable for its actions.

Design

We established a bidirectional connection between a candidate and its owner inorder to retrieve a candidate belonging to a specific owner & vice versa.

All the masternodes are recognized by the KYC of their owners and hence are considered as a single verified entity ( for eg. while voting for invalid KYC, only one vote is considered per such cluster )

The contract is very strict in handing out penalty for invalid KYC, it results loss of all funds invested in all of its candidates.

For eg. say A proposes condidates B,C,D by paying for its proposal cost. If at a later stage if some predecided amount of owners ( investors ) vote that a KYC for a A is invalid then A & all of its candidates (B,C,D) will lose their position & all their funds will be lost ( will remain with contract wallet ).

Documents

Document

For developers

Continues integration & delivery

See https://github.com/XinFinOrg/XDPoSChain/tree/dev-upgrade/cicd

To contribute

Simple create a pull request along with proper reasoning, we'll get back to you.

Our Channels : Telegram Developer Group or XDC.Dev