Cross-chain hub for Crypto Asset on Polkadot

Overview

ChainX

License: GPL v3 CI

ChainX is a community-driven project built on the next-generation blockchain framework substrate, the largest Layer-2 network of Bitcoin using the Light-client protocol with smart contract support, will evolve into the Polkadot network as a secondary relay chain in the future.

Documentation

Please refer to the docs for building and developing on ChainX platform.

Contribution

Any kinds of contributions are highly welcome. Feel free to file an issue if you have any question or run into any issues.

License

GPL v3

Comments
  • ChainX 节点 logo 收集

    ChainX 节点 logo 收集

    ChainX桌面钱包在投票选举页面会展示各个节点logo。 在此收集各节点logo,不定期更新(每周一次)到桌面钱包到展示中,若节点不提供则会展示默认logo。 请需要展示logo的节点在本issue回复。

    回复格式如下 节点名: logo:上传大小为 80*80, 格式为 PNG 的 logo 图片, 也可以选择直接给出 logo 的 URL 地址。

    ChainX desktop wallet will display a logo of each node in the staking page in the future version. The default logo will be used instead if some node doesn't provide one.

    Please comment as follows:

    node name: logo: upload a 80*80 PNG for your logo, or post the URL to your logo directly.

    opened by liuchengxu 91
  • 社区同步节点征集

    社区同步节点征集

    为了缓解钱包连接单一节点访问压力过大,造成用户体验不佳。现向社区征集可用的同步节点,为用户提供数据来源,我们将定期选择优质的同步节点供用户选择。

    同步节点征集格式:

    节点名|同步节点IP| WebSocket端口 :----: | :----: | :----:


    同步活动征集活动结束通知

    请大家在issue中标明在ChainX上注册的节点名,议会将会对以下参与的14个节点发放10PCX的生态奖励,奖励将直接发放到节点账户。为期一个月的同步节点征集活动于2019年7月18日正式结束,感谢大家的参与,也希望大家未来继续参与ChainX的生态建设。

    opened by liuchengxu 18
  • 长期招募BTC信托人计划

    长期招募BTC信托人计划

    什么是BTC信托人

    ChainX的跨链技术实现采用了去中心化的轻节点方案。由于比特币扩展性受限原因,在比特币链侧只能采用多签托管资产来实现去中心化。因此需要在ChainX验证人中选择一批验证人通过多签技术来共同托管用户BTC资产保障资产安全。被选中的这批验证人成为信托人。

    为什么要当BTC信托人

    信托人承担资产托管的重任,需要做到绝对安全的账户相关管理,同时需要有能力在日常运营中7*24小时支持用户BTC提现请求。作为对信托人工作的回报,信托人可以获得如下可能好处:

    1. 获得任职期间的议会收入的20%作为奖励
    2. 信托节点在ChainX相关产品和社区上获得最大限度的曝光,得到信托人的特殊标签,可以获得社区广大用户的信任和投票,从而获得更高的分红收益
    3. 随着BTC跨链交易增多,用户BTC提现手续费可能会出现结余利润,届时信托人优先获得分配权利
    4. 获得未来其他跨链信托人身份的优先权利
    5. 获得行业良好信誉的背书
    6. 其他可能的收益

    如何选举BTC信托人

    信托人基于公开、公平、公正的原则进行选择。信托人不定期进行换届。新任信托人的选择采取禅让制度,由议会和上一届信托人共同决定并执行,不符合条件的老信托人也会被淘汰。选择标准包括但不限于:

    1. 总得票率名列前茅
    2. 深度参与ChainX链运营
    3. 团队或机构运作
    4. 有行业经验
    5. 有背书人
    6. 有技术运维能力、有运营服务能力
    7. 具备安全防御技术
    8. 有较多社区用户支持
    9. 具备安全硬件冷存储的能力 ...

    如何成为BTC信托人

    如有意愿积极参与ChainX社区建设的验证人,欢迎报名。请在本issue中回复报名。报名信息建议包括以下内容:

    1. 节点名
    2. 官网
    3. 团队/机构介绍(负责人/行业经验/背书人/优势/技术运维能力等等)
    4. ChainX参与情况(主网参与情况/节点硬件条件/带宽/网络/位置等等)
    5. 服务支持能力(服务承诺如提现处理时间、社区服务通道等等)
    6. 硬件冷存储设备情况
    7. 其他(能展示验证人优势的信息)

    在ChainX主网上线创世会选择3-4名验证人承担第一届信任。随着主网持续稳定运行,会在换届中逐步增加信托人,因此本招募计划长期有效。具备条件的验证人只要有意愿承担信托责任深度参与跨链运营,即可报名参加!

    即使报名此刻,报名验证人未满足条件,但随着时间推移能不断进步,最终达成信托人条件,也会优先考虑将其加入!

    欢迎各位节点踊跃报名!

    opened by toxotguo 14
  • Error mapping SDOT to ChainX address

    Error mapping SDOT to ChainX address

    I followed all the instructions at https://github.com/chainx-org/ChainX/wiki/Map-DOT, as follows, but it doesn't work:

    1. Created a ChainX Address (to be mapped to SDOT) at https://wallet.chainx.org > New Account
    2. Sent a transaction successfully from an account with DOT tokens (from the Polkadot ICO) to another Ethereum address with a value of 0 ETH, and using the ChainX Address (e.g. 0x5xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx) as the value. Copied the Transaction ID for the next step.
    3. Clicked the "Map" button at https://wallet.chainx.org/asset?address=MY_CHAINX_ADDRESS_WITHOUT_0x_PREFIX for the cross-chain asset "Shadow DOT (SDOT)", then pasted the Transaction ID from the previous step (which was also used to check that the transaction had gone through successfully on Blockscout/Etherscan), and pressed the "Confirm" button.

    But it displayed the following error below the "Confirm" button stating "Wallets with Data support currently:ImToken、Parity、MyEtherWallet、Jaxx、MyCrypto、Trust、bitpie、coinomi,etc", as shown in the screenshot below.

    Then a popup appeared stating "BadLength", as shown in the screenshot below.

    Screenshot from 2019-05-27 18-11-08-1

    opened by ltfschoen 9
  • Unable to claim mining rewards L-BTC

    Unable to claim mining rewards L-BTC

    Hi there, I've locked up btc for some time now but for some reason I am unable to claim the PCX mining reward, which I haven't claimed for some time. In mathwallet I can claim them, it seems, after entering password etc. but rewards don't show. In the desktop wallet the claim button remains greyed out, so Im unable to claim. What have I missed? How can I fix it.

    opened by Majosk100 7
  • 信托提现花费UTXO Proposals

    信托提现花费UTXO Proposals

    基本策略:

    1. 太小的UTXO永远不会被花费,因为还不够手续费,提现时应过滤掉。
    2. 太小的提现不会被处理,链上已有相应逻辑。

    使用UTXO策略:

    1. 从小到大花费UTXO

    cons:

    • 前期每构造一笔提现,可能会用到很多小的UTXO,手续费会比较高。
    • 后期大UTXO占比大的情况下,提现也可能产生小的UTXO。

    pros:

    • 总体趋势小的UTXO占比会越来越小。

    相对而言对一下提现场景不友好:

    • 一次提现的总量比较小,但这种情况相对较少,因为会集中处理提现。
    1. 从大到小花费UTXO

    cons:

    • 会不断破坏掉相对大的UTXO,后期大的UTXO占比会越来越小。

    pros:

    • 相对靠前的时间段之内,手续费相对比较少。

    相对而言对一下提现场景不友好:

    • 后期一次的提现总量比较大,可能需要更多的UTXO
    1. 每次找与提现总量最接近的UTXO

    cons:

    • 有生成比较小UTXO的趋势

    pros:

    • 不破坏大的UTXO,利于后期大额提现
    • 不会花费太小的UTXO,相对而言省手续费
    no-issue-activity 
    opened by wliyongfeng 7
  • PCX Tokens frozen

    PCX Tokens frozen

    Hi there, I have some PCX tokens that are frozen and I can't access them to transfer. I've been using Math Wallet to custody and was staking for a while but then I thought I cancelled staking and just had tokens sitting in my wallet. However, they don't appear there anymore..?? Any help would be gratefully received, please. Thank you

    opened by ghost 6
  • Debug: slash  exception from upgrade ChainX v4.0.0

    Debug: slash exception from upgrade ChainX v4.0.0

    Issue:

    Since ChainX has been upgraded to v4.0.0 (runtime 11 -> 12), many validators have been slashed for no reason

    Analyze:

    Before the end of each session, pallet-im-online will submit offline validators to xstaking, and they will all be slashed. There are two conditions for pallet-im-online to determine whether the validator is online:

    • (1) Whether to send heartbeat transactions in this session
    • (2) Whether to produce block in this session

    We also notice that the node that should be slashed is not slashed

    Root Cause:

    we tracked this pr Force the validators in the waiting list to run an authority node

    the XStaking::active_validator_set().collect() return validators which the order is not fixed.

    and in pallet-im-online, mark whether to be online in the order of validator, And this is the root cause

    let session_index = T::ValidatorSet::session_index();
    let keys = Keys::<T>::get();
    let current_validators = T::ValidatorSet::validators();
    
    let offenders = current_validators
    			.into_iter()
    			.enumerate()
    			.filter(|(index, id)| !Self::is_online_aux(*index as u32, id))
    			.filter_map(|(_, id)| {
    				<T::ValidatorSet as ValidatorSetWithIdentification<T::AccountId>>::IdentificationOf::convert(
    					id.clone()
    				).map(|full_id| (id, full_id))
    			})
    			.collect::<Vec<IdentificationTuple<T>>>();
    

    Fix:

    Fix slash exception

    /// Returns all the validators and candidates by order
        #[inline]
        pub fn active_candidates() -> Vec<T::AccountId> {
            let mut candidates = Self::active_validator_set()
                .map(|v| (Self::total_votes_of(&v), v))
                .collect::<Vec<_>>();
    
            candidates.sort_by(|&(ref b1, _), &(ref b2, _)| b2.cmp(b1));
    
            candidates.into_iter().map(|(_, v)| v).collect()
        }
    

    More rewards for validators

    For the security of the ChainX mainnet and to encourage more community users to participate in the ChainX validators selection, we have decided to increase the proportion of system rewards to validators from 10% to 20% Rewards: 20% for validator and 80% for the reward pot.

    opened by icodezjb 5
  • Violation of GPL License

    Violation of GPL License

    Substrate-based blockchain project ChainX is violating GPL license by releasing its binary without publishing the latest source code: https://github.com/chainx-org/ChainX/releases

    opened by ChainXUser 3
  • The tag v0.9.8 at commit is not the same as the release version

    The tag v0.9.8 at commit is not the same as the release version

    The commit you have tagged for v0.9.8 is at https://github.com/chainx-org/ChainX/commit/c1ca876f252aefbc10e523d0b4075ad9ac038af6 but the binary you upload is at 78a8763. Please fix this as the commit will be wrong if I checkout with the tag. And I think you haven't pushed the commits to GH.

    image

    opened by kwunyeung 3
  • Storage root must match that calculated

    Storage root must match that calculated

    0.9.8测试网验证者节点在高度25951的位置产生问题。节点会重复打印如下日志:

    stack backtrace:
       0: substrate_panic_handler::set::{{closure}}::h6151f83348fe5cb3 (0x564ac756131f)
       1: rust_panic_with_hook (0x564ac77481e8)
                 at src/libstd/panicking.rs:478
       2: std::panicking::begin_panic::ha17c276b68ef3911 (0x564ac7321ad4)
       3: <chainx_runtime::xexecutive::Executive<System, Block, Context, Payment, AllModules>>::execute_block::hf28d0b5901e8ead2 (0x564ac7384ef7)
       4: chainx_runtime::api::dispatch::hbd978dc53fe9f7c9 (0x564ac72baa52)
       5: std::panicking::try::do_call::h7ae11b3d4cdfbdfb (0x564ac6d47e11)
       6: __rust_maybe_catch_panic (0x564ac774e579)
                 at src/libpanic_unwind/lib.rs:87
       7: substrate_executor::native_executor::safe_call::h13303d24dfa76ef7 (0x564ac6d47af2)
       8: <std::thread::local::LocalKey<T>>::with::hf324c8a2d7642d9b (0x564ac6d47516)
       9: <chainx_executor::Executor as substrate_executor::native_executor::NativeExecutionDispatch>::dispatch::hffd4afadc7f37f13 (0x564ac6d46e7c)
      10: <std::thread::local::LocalKey<T>>::with::he29e68a370bece3e (0x564ac6a77316)
      11: <substrate_state_machine::StateMachine<'a, H, B, T, O, Exec>>::execute_aux::h10a9eb4603a2b4ce (0x564ac68c3ca2)
      12: <substrate_state_machine::StateMachine<'a, H, B, T, O, Exec>>::execute_call_with_native_else_wasm_strategy::h01e29a7158eeac09 (0x564ac694c4b2)
      13: <substrate_state_machine::StateMachine<'a, H, B, T, O, Exec>>::execute_using_consensus_failure_handler::hb71ec0f91bbf6eca (0x564ac6928f11)
      14: <substrate_client::call_executor::LocalCallExecutor<B, E> as substrate_client::call_executor::CallExecutor<Block, substrate_primitives::hasher::blake2::Blake2Hasher>>::call_at_state::h39de45a6d010cf78 (0x564ac69f6de1)
      15: <substrate_client::client::Client<B, E, Block, RA>>::lock_import_and_run::{{closure}}::h576be5145f13c396 (0x564ac6bf82be)
      16: <substrate_client::client::Client<B, E, Block, RA> as substrate_consensus_common::block_import::BlockImport<Block>>::import_block::h6e2b74ee4ad6ffc3 (0x564ac6bc9371)
      17: <substrate_finality_grandpa::import::GrandpaBlockImport<B, E, Block, RA, PRA> as substrate_consensus_common::block_import::BlockImport<Block>>::import_block::hbc25775dd83ec082 (0x564ac6add6f2)
      18: <substrate_consensus_common::import_queue::BlockImportWorker<B, V>>::import_a_batch_of_blocks::h6640ccd940ec190c (0x564ac684b62b)
      19: std::sys_common::backtrace::__rust_begin_short_backtrace::hc46b607889d60a21 (0x564ac6cdc9fe)
      20: std::panicking::try::do_call::hefc70362a4239358 (0x564ac668487d)
      21: __rust_maybe_catch_panic (0x564ac774e579)
                 at src/libpanic_unwind/lib.rs:87
      22: <F as alloc::boxed::FnBox<A>>::call_box::hdf3f10eb1475be8f (0x564ac669f99e)
      23: call_once<(),()> (0x564ac774d8bd)
                 at /rustc/a9da8fc9c267c08cfdb8cf5b39da14f154d12939/src/liballoc/boxed.rs:759
          start_thread
                 at src/libstd/sys_common/thread.rs:14
          thread_start
                 at src/libstd/sys/unix/thread.rs:80
      24: start_thread (0x7f120ca2d6da)
      25: __clone (0x7f120c53e88e)
      26: <unknown> (0x0)
    
    Thread 'ImportQueueWorker' panicked at 'Storage root must match that calculated.', runtime/src/xexecutive.rs:265
    
    This is a bug. Please report it at:
    
    	https://github.com/chainx-org/ChainX
    
    2019-04-13 09:32:19.557 INFO [runtime|xrml_xsystem] height:25951, blockproducer: 0b257ad398a034bec8e2020bf0d8f8102cdeb8a0ba21455e11d8df9a44636791 (5CKKWyrD...)|name:Amazon
    Runtime: Cannot nominate if greater than your avaliable free balance.
    Hash: given=64235d7dd78d74819d15055b1165b1bae7b7feeb88de41d7e1304795fbc669ef, expected=46c2a5652dd2c05a7ecd67c92b58a0839c47333d7f54d4d4a710fdca69ccf2ce
    
    genesis competition ➕ 
    opened by hulatown 3
  • Bump decode-uri-component from 0.2.0 to 0.2.2 in /contracts/ENS

    Bump decode-uri-component from 0.2.0 to 0.2.2 in /contracts/ENS

    Bumps decode-uri-component from 0.2.0 to 0.2.2.

    Release notes

    Sourced from decode-uri-component's releases.

    v0.2.2

    • Prevent overwriting previously decoded tokens 980e0bf

    https://github.com/SamVerschueren/decode-uri-component/compare/v0.2.1...v0.2.2

    v0.2.1

    • Switch to GitHub workflows 76abc93
    • Fix issue where decode throws - fixes #6 746ca5d
    • Update license (#1) 486d7e2
    • Tidelift tasks a650457
    • Meta tweaks 66e1c28

    https://github.com/SamVerschueren/decode-uri-component/compare/v0.2.0...v0.2.1

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies javascript 
    opened by dependabot[bot] 0
Releases(v4.4.0)
Owner
ChainX
Cross-chain Asset Management Platform
ChainX
Official implementation of the YeeCo Root Chain (Layer 1)

yeeroot Official implementation of the YeeCo Root Chain (Layer 1) YeeCo is a permissionless, secure, high performance and scalable public blockchain p

YeeCo 29 Sep 20, 2022
Cross-chain hub for Crypto Asset on Polkadot

ChainX ChainX is a community-driven project built on the next-generation blockchain framework substrate, the largest Layer-2 network of Bitcoin using

ChainX 261 Dec 28, 2022
Rust client for the huggingface hub aiming for minimal subset of features over `huggingface-hub` python package

This crates aims to emulate and be compatible with the huggingface_hub python package. compatible means the Api should reuse the same files skipping d

Hugging Face 9 Jul 20, 2023
ARYA Network is a polkadot/substrate based chain for Non-fungible Token platform on which we can own sell and buy the NFT's on polkadot network.

ARYA Network ARYA Network is a polkadot/substrate based chain for Non-fungible Token platform on which we can own sell and buy the NFT's on polkadot n

Pankaj Chaudhary 6 Dec 20, 2022
Easy c̵̰͠r̵̛̠ö̴̪s̶̩̒s̵̭̀-t̶̲͝h̶̯̚r̵̺͐e̷̖̽ḁ̴̍d̶̖̔ ȓ̵͙ė̶͎ḟ̴͙e̸̖͛r̶̖͗ë̶̱́ṉ̵̒ĉ̷̥e̷͚̍ s̷̹͌h̷̲̉a̵̭͋r̷̫̊ḭ̵̊n̷̬͂g̵̦̃ f̶̻̊ơ̵̜ṟ̸̈́ R̵̞̋ù̵̺s̷̖̅ţ̸͗!̸̼͋

Rust S̵̓i̸̓n̵̉ I̴n̴f̶e̸r̵n̷a̴l mutability! Howdy, friendly Rust developer! Ever had a value get m̵̯̅ð̶͊v̴̮̾ê̴̼͘d away right under your nose just when

null 294 Dec 23, 2022
Astar Network is an interoperable blockchain based the Substrate framework and the hub for dApps within the Polkadot Ecosystem

Astar Network is an interoperable blockchain based the Substrate framework and the hub for dApps within the Polkadot Ecosystem. With Astar Network and

Astar Network (Plasm) 43 Dec 14, 2022
The protocol are designed and made for the future of cross-IP, cross-chain metaverse.

Avatar-protocol 化身协议 This project demonstrates how to use the Solana Javascript API to interact with programs on the Solana blockchain. The project co

Wind-protocol 1 Jan 10, 2022
A real-time event-oriented data-hub

Redcar A real-time event-oriented data-hub, inspired by the data hub. It is: Universal: the front end uses gRPC to provide services. Fast: benchmarked

null 6 Mar 2, 2022
Um Web Scrapper para extrair as soluções dos exercícios do Driven HUB com seus respectivos enunciados

hub_scrapper Um Web Scrapper para extrair as soluções dos exercícios do Driven HUB com seus respectivos enunciados, convertendo-os para Markdown. ⚠️ A

Davi Feliciano 4 Oct 7, 2023
Following "ZK HACK III - Building On-chain Apps Off-chain Using RISC Zero"

RISC Zero Rust Starter Template Welcome to the RISC Zero Rust Starter Template! This template is intended to give you a starting point for building a

drCathieSo.eth 3 Dec 22, 2022
Cross-platform, cross-browser, cross-search-engine duckduckgo-like bangs

localbang Cross-platform, cross-browser, cross-search-engine duckduckgo-like bangs What are "bangs"?? Bangs are a way to define where to search inside

Jakob Kruse 7 Nov 23, 2022
Bevy plugin helping with asset loading and organisation

Bevy asset loader This Bevy plugin reduces boilerplate when loading game assets. The crate offers the AssetCollection trait and can automatically load

Niklas Eicker 205 Jan 2, 2023
Bevy asset loader that transparently supports loading over http(s)

Bevy Web Asset This is a tiny crate that that wraps the standard bevy asset loader, and adds the ability to load assets from http and https urls. Supp

Johan Klokkhammer Helsing 28 Jan 2, 2023
Asset-Pool is a decentralized lending protocol and enables users to lend through their social networks

Run If you need to, set up your Substrate development environment . Then, build and run a development chain: $ cargo run -- --dev --tmp Once the node

antimatter-repo 11 Oct 22, 2022
A Rust library for reading asset files and resource packs for any version of Minecraft

minecraft-assets A Rust library for reading asset files and resource packs for any version of Minecraft. Example use minecraft_assets::api::AssetPack;

Ben Reeves 7 Aug 14, 2022
An asset that provides 2d collision detector and kinematics, build from scratch in bevy

Busturi A physics engine An asset that provides 2d collision detector and kinematics, build from scratch in bevy How to use Add PhysicsPlugin to the p

NemuiSen 2 Jun 22, 2022
Rust implementation of Namada, a sovereign proof-of-stake blockchain that enables asset-agnostic private transfers

Namada Overview Namada is a sovereign proof-of-stake blockchain, using Tendermint BFT consensus, that enables multi-asset private transfers for any na

anoma 144 Jan 2, 2023
Simple rust asset handling derive macro for enums, and a proc-macro learning resource!

asset-derive Summary • Todos • Docs Summary Simple Rust asset loading derive macro for Enums, and a resource for learning proc-macros! Please feel fre

Shadorain 5 Feb 9, 2023
An open source, high performance limit order book for the Seaport smart contracts. Implemented in Rust using ethers-rs, this offers a turnkey option for digital asset marketplaces.

Quay Quay is an open source, high performance backend for the Seaport smart contracts. The project is implemented in Rust, using Postgres as a storage

Valorem Labs Inc. 169 Jun 23, 2023
An asset for HardHat C2 written in Rust as an example/demo

Rivet An asset for HardHat C2 written in Rust as an example/demo Installation and Use Download cargo for the operating system the team server will be

HardHat Toolbox 5 Oct 24, 2023