Go implementation of the Ethereum protocol
Find a file
Daniel Liu ba053a5468 accounts/usbwallet: mitigate ledger app chunking issue (#26773)
This PR mitigates an issue with Ledger's on-device RLP deserialization, see
https://github.com/LedgerHQ/app-ethereum/issues/409

Ledger's RLP deserialization code does not validate the length of the RLP list received,
and it may prematurely enter the signing flow when a APDU chunk boundary falls immediately
before the EIP-155 chain_id when deserializing a transaction. Since the chain_id is
uninitialized, it is 0 during this signing flow. This may cause the user to accidentally
sign the transaction with chain_id = 0. That signature would be returned from the device 1
packet earlier than expected by the communication loop. The device blocks the
second-to-last packet waiting for the signer flow, and then errors on the successive
packet (which contains the chain_id, zeroed r, and zeroed s)

Since the signature's early arrival causes successive errors during the communication
process, geth does not parse the improper signature produced by the device, and therefore
no improperly-signed transaction can be created. User funds are not at risk.

We mitigate by selecting the highest chunk size that leaves at least 4 bytes in the
final chunk.
2025-01-24 16:54:11 +08:00
.github make deploy command ignore deployment not found 2025-01-16 13:12:08 +04:00
accounts accounts/usbwallet: mitigate ledger app chunking issue (#26773) 2025-01-24 16:54:11 +08:00
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 crypto: switch over to upstream sha3 package (#18390) 2024-12-09 17:48:59 +08:00
build build: add imports for go generate tools (#24682) 2025-01-20 11:52:59 +08:00
cicd cicd: update bootnodes for mainet 2025-01-21 16:08:53 +08:00
cmd cmd/abigen: change --exc to exclude by type name (#22620) 2025-01-24 16:54:11 +08:00
common all: remove the duplicate 'the' in annotations (#17509) 2025-01-24 16:18:28 +08:00
compression/rle compression/rle: fix staticcheck warning SA9004: constant has no explicit type 2024-10-30 21:12:32 +08:00
consensus all: use github.com/deckarep/golang-set/v2 (generic set) (#26159) 2025-01-24 16:54:11 +08:00
console all: use T.TempDir to create temporary test directories (#24633) 2025-01-24 16:54:08 +08:00
containers/docker containers: drop vagrant support, noone's maintaining it 2018-03-14 13:23:40 +02:00
contracts accounts/abi: ABI explicit difference between Unpack and UnpackIntoInterface (#21091) 2025-01-24 16:18:30 +08:00
core all: use T.TempDir to create temporary test directories (#24633) 2025-01-24 16:54:08 +08:00
crypto crypto/secp256k1: remove external LGPL dependencies (#17239) 2025-01-24 16:18:28 +08:00
docker all: normalize flag's name 2024-11-25 16:39:29 +08:00
eth all: use github.com/deckarep/golang-set/v2 (generic set) (#26159) 2025-01-24 16:54:11 +08:00
ethclient common: remove usage of deprecated function (#21610) 2024-12-28 09:06:30 +08:00
ethdb all: add read-only option to database 2025-01-24 14:24:39 +08:00
ethstats all: remove empty function SaveData() 2024-12-28 09:04:02 +08:00
event all: fix staticcheck warning ST1006: don't use generic name self 2024-10-25 21:30:54 +08:00
genesis xin-203 fix wrong config hash and update v2 params on mainnet (#109) 2022-07-12 16:56:55 +02:00
internal eth/filters: update Backend interface (#26126) 2025-01-24 16:54:11 +08:00
les all: replace RWMutex with Mutex in places where RLock is not used (#21622) 2025-01-24 16:18:30 +08:00
light core: improve contextual information on core errors (#21869) 2025-01-24 16:18:30 +08:00
log log: fix issues with benchmarks (#30667) 2024-11-15 10:02:43 +08:00
metrics metrics, cmd/XDC: change init-process of metrics (#30814) 2024-12-13 14:00:14 +08:00
miner all: use github.com/deckarep/golang-set/v2 (generic set) (#26159) 2025-01-24 16:54:11 +08:00
node all: use T.TempDir to create temporary test directories (#24633) 2025-01-24 16:54:08 +08:00
p2p all: use T.TempDir to create temporary test directories (#24633) 2025-01-24 16:54:08 +08:00
params accounts/abi/bind: fix test 2025-01-24 16:18:29 +08:00
rlp all: get rid of custom MaxUint64 and MaxUint64 (#30636) 2024-12-28 09:06:31 +08:00
rpc all: use github.com/deckarep/golang-set/v2 (generic set) (#26159) 2025-01-24 16:54:11 +08:00
swarm remove swarm as unused like eth 2024-05-13 21:34:40 +08:00
tests accounts/abi: ABI explicit difference between Unpack and UnpackIntoInterface (#21091) 2025-01-24 16:18:30 +08:00
trie all: use T.TempDir to create temporary test directories (#24633) 2025-01-24 16:54:08 +08:00
XDCx accounts/abi: ABI explicit difference between Unpack and UnpackIntoInterface (#21091) 2025-01-24 16:18:30 +08:00
XDCxDAO all: add read-only option to database 2025-01-24 14:24:39 +08:00
XDCxlending common/prque: generic priority queue (#26290) 2024-12-28 09:06:31 +08:00
.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: support golangci-lint v1.63.4 2025-01-11 23:56:59 +08:00
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
Dockerfile upgrade to golang 1.22 (#763) 2024-12-25 22:59:24 -08:00
Dockerfile.bootnode upgrade to golang 1.22 (#763) 2024-12-25 22:59:24 -08:00
Dockerfile.node upgrade to golang 1.22 (#763) 2024-12-25 22:59:24 -08:00
go.mod all: use github.com/deckarep/golang-set/v2 (generic set) (#26159) 2025-01-24 16:54:11 +08:00
go.sum all: use github.com/deckarep/golang-set/v2 (generic set) (#26159) 2025-01-24 16:54:11 +08:00
interfaces.go ethclient: add FeeHistory support (#25403) 2024-11-01 11:36:53 +08:00
Makefile build: add 'go generate' checker 2025-01-16 08:21:42 +08:00
README.md merge from master 2023-07-30 16:50:45 +10: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 ).

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